@sphereon/ssi-sdk.data-store 0.18.2-unstable.89 → 0.18.2-unstable.95

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/digitalCredential/AbstractDigitalCredentialStore.d.ts +6 -6
  2. package/dist/digitalCredential/AbstractDigitalCredentialStore.d.ts.map +1 -1
  3. package/dist/digitalCredential/DigitalCredentialStore.d.ts +6 -6
  4. package/dist/digitalCredential/DigitalCredentialStore.d.ts.map +1 -1
  5. package/dist/digitalCredential/DigitalCredentialStore.js +25 -16
  6. package/dist/digitalCredential/DigitalCredentialStore.js.map +1 -1
  7. package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.d.ts +19 -16
  8. package/dist/types/digitalCredential/IAbstractDigitalCredentialStore.d.ts.map +1 -1
  9. package/dist/utils/SortingUtils.d.ts +3 -0
  10. package/dist/utils/SortingUtils.d.ts.map +1 -0
  11. package/dist/utils/SortingUtils.js +18 -0
  12. package/dist/utils/SortingUtils.js.map +1 -0
  13. package/dist/utils/contact/MappingUtils.d.ts.map +1 -1
  14. package/dist/utils/contact/MappingUtils.js.map +1 -1
  15. package/dist/utils/digitalCredential/MappingUtils.d.ts +2 -4
  16. package/dist/utils/digitalCredential/MappingUtils.d.ts.map +1 -1
  17. package/dist/utils/digitalCredential/MappingUtils.js +35 -25
  18. package/dist/utils/digitalCredential/MappingUtils.js.map +1 -1
  19. package/package.json +4 -4
  20. package/src/__tests__/digitalCredential.entities.test.ts +6 -2
  21. package/src/__tests__/digitalCredential.store.test.ts +106 -35
  22. package/src/digitalCredential/AbstractDigitalCredentialStore.ts +11 -11
  23. package/src/digitalCredential/DigitalCredentialStore.ts +32 -24
  24. package/src/types/digitalCredential/IAbstractDigitalCredentialStore.ts +14 -13
  25. package/src/utils/SortingUtils.ts +16 -0
  26. package/src/utils/contact/MappingUtils.ts +2 -1
  27. package/src/utils/digitalCredential/MappingUtils.ts +36 -23
@@ -1,10 +1,10 @@
1
- import { AddDigitalCredentialArgs, GetDigitalCredentialArgs, GetDigitalCredentialsArgs, GetDigitalCredentialsResponse, RemoveDigitalCredentialArgs, UpdateDigitalCredentialStateArgs } from '../types/digitalCredential/IAbstractDigitalCredentialStore';
1
+ import { AddCredentialArgs, GetCredentialArgs, GetCredentialsArgs, GetCredentialsResponse, RemoveCredentialArgs, UpdateCredentialStateArgs } from '../types/digitalCredential/IAbstractDigitalCredentialStore';
2
2
  import { DigitalCredentialEntity } from '../entities/digitalCredential/DigitalCredentialEntity';
3
3
  export declare abstract class AbstractDigitalCredentialStore {
4
- abstract getDigitalCredential(args: GetDigitalCredentialArgs): Promise<DigitalCredentialEntity>;
5
- abstract getDigitalCredentials(args?: GetDigitalCredentialsArgs): Promise<GetDigitalCredentialsResponse>;
6
- abstract addDigitalCredential(args: AddDigitalCredentialArgs): Promise<DigitalCredentialEntity>;
7
- abstract updateDigitalCredentialState(args: UpdateDigitalCredentialStateArgs): Promise<DigitalCredentialEntity>;
8
- abstract removeDigitalCredential(args: RemoveDigitalCredentialArgs): Promise<boolean>;
4
+ abstract getCredential(args: GetCredentialArgs): Promise<DigitalCredentialEntity>;
5
+ abstract getCredentials(args?: GetCredentialsArgs): Promise<GetCredentialsResponse>;
6
+ abstract addCredential(args: AddCredentialArgs): Promise<DigitalCredentialEntity>;
7
+ abstract updateCredentialState(args: UpdateCredentialStateArgs): Promise<DigitalCredentialEntity>;
8
+ abstract removeCredential(args: RemoveCredentialArgs): Promise<boolean>;
9
9
  }
10
10
  //# sourceMappingURL=AbstractDigitalCredentialStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractDigitalCredentialStore.d.ts","sourceRoot":"","sources":["../../src/digitalCredential/AbstractDigitalCredentialStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,4DAA4D,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAE/F,8BAAsB,8BAA8B;IAClD,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC/F,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,6BAA6B,CAAC;IACxG,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC/F,QAAQ,CAAC,4BAA4B,CAAC,IAAI,EAAE,gCAAgC,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC/G,QAAQ,CAAC,uBAAuB,CAAC,IAAI,EAAE,2BAA2B,GAAG,OAAO,CAAC,OAAO,CAAC;CACtF"}
1
+ {"version":3,"file":"AbstractDigitalCredentialStore.d.ts","sourceRoot":"","sources":["../../src/digitalCredential/AbstractDigitalCredentialStore.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4DAA4D,CAAA;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAE/F,8BAAsB,8BAA8B;IAClD,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACjF,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IACnF,QAAQ,CAAC,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACjF,QAAQ,CAAC,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IACjG,QAAQ,CAAC,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;CACxE"}
@@ -1,15 +1,15 @@
1
1
  import { AbstractDigitalCredentialStore } from './AbstractDigitalCredentialStore';
2
- import { AddDigitalCredentialArgs, GetDigitalCredentialArgs, GetDigitalCredentialsArgs, GetDigitalCredentialsResponse, RemoveDigitalCredentialArgs, UpdateDigitalCredentialStateArgs } from '../types/digitalCredential/IAbstractDigitalCredentialStore';
2
+ import { AddCredentialArgs, GetCredentialArgs, GetCredentialsArgs, GetCredentialsResponse, RemoveCredentialArgs, UpdateCredentialStateArgs } from '../types/digitalCredential/IAbstractDigitalCredentialStore';
3
3
  import { OrPromise } from '@sphereon/ssi-types';
4
4
  import { DataSource } from 'typeorm';
5
5
  import { DigitalCredentialEntity } from '../entities/digitalCredential/DigitalCredentialEntity';
6
6
  export declare class DigitalCredentialStore extends AbstractDigitalCredentialStore {
7
7
  private readonly dbConnection;
8
8
  constructor(dbConnection: OrPromise<DataSource>);
9
- addDigitalCredential: (args: AddDigitalCredentialArgs) => Promise<DigitalCredentialEntity>;
10
- getDigitalCredential: (args: GetDigitalCredentialArgs) => Promise<DigitalCredentialEntity>;
11
- getDigitalCredentials: (args?: GetDigitalCredentialsArgs) => Promise<GetDigitalCredentialsResponse>;
12
- removeDigitalCredential: (args: RemoveDigitalCredentialArgs) => Promise<boolean>;
13
- updateDigitalCredentialState: (args: UpdateDigitalCredentialStateArgs) => Promise<DigitalCredentialEntity>;
9
+ addCredential: (args: AddCredentialArgs) => Promise<DigitalCredentialEntity>;
10
+ getCredential: (args: GetCredentialArgs) => Promise<DigitalCredentialEntity>;
11
+ getCredentials: (args?: GetCredentialsArgs) => Promise<GetCredentialsResponse>;
12
+ removeCredential: (args: RemoveCredentialArgs) => Promise<boolean>;
13
+ updateCredentialState: (args: UpdateCredentialStateArgs) => Promise<DigitalCredentialEntity>;
14
14
  }
15
15
  //# sourceMappingURL=DigitalCredentialStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DigitalCredentialStore.d.ts","sourceRoot":"","sources":["../../src/digitalCredential/DigitalCredentialStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EACL,wBAAwB,EACxB,wBAAwB,EACxB,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,gCAAgC,EACjC,MAAM,4DAA4D,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAc,MAAM,SAAS,CAAA;AAEhD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAO/F,qBAAa,sBAAuB,SAAQ,8BAA8B;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;gBAExC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;IAK/C,oBAAoB,SAAgB,wBAAwB,KAAG,QAAQ,uBAAuB,CAAC,CAM9F;IAED,oBAAoB,SAAgB,wBAAwB,KAAG,QAAQ,uBAAuB,CAAC,CAS9F;IAED,qBAAqB,UAAiB,yBAAyB,KAAG,QAAQ,6BAA6B,CAAC,CAgBvG;IAED,uBAAuB,SAAgB,2BAA2B,KAAG,QAAQ,OAAO,CAAC,CAsBpF;IAED,4BAA4B,SAAgB,gCAAgC,KAAG,QAAQ,uBAAuB,CAAC,CA0B9G;CACF"}
1
+ {"version":3,"file":"DigitalCredentialStore.d.ts","sourceRoot":"","sources":["../../src/digitalCredential/DigitalCredentialStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAA;AACjF,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,4DAA4D,CAAA;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAC/C,OAAO,EAAE,UAAU,EAAgC,MAAM,SAAS,CAAA;AAElE,OAAO,EAAE,uBAAuB,EAAE,MAAM,uDAAuD,CAAA;AAQ/F,qBAAa,sBAAuB,SAAQ,8BAA8B;IACxE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAuB;gBAExC,YAAY,EAAE,SAAS,CAAC,UAAU,CAAC;IAK/C,aAAa,SAAgB,iBAAiB,KAAG,QAAQ,uBAAuB,CAAC,CAMhF;IAED,aAAa,SAAgB,iBAAiB,KAAG,QAAQ,uBAAuB,CAAC,CAShF;IAED,cAAc,UAAiB,kBAAkB,KAAG,QAAQ,sBAAsB,CAAC,CAalF;IAED,gBAAgB,SAAgB,oBAAoB,KAAG,QAAQ,OAAO,CAAC,CAsBtE;IAED,qBAAqB,SAAgB,yBAAyB,KAAG,QAAQ,uBAAuB,CAAC,CAoChG;CACF"}
@@ -18,18 +18,19 @@ const debug_1 = __importDefault(require("debug"));
18
18
  const DigitalCredentialEntity_1 = require("../entities/digitalCredential/DigitalCredentialEntity");
19
19
  const MappingUtils_1 = require("../utils/digitalCredential/MappingUtils");
20
20
  const digitalCredential_1 = require("../types/digitalCredential/digitalCredential");
21
+ const SortingUtils_1 = require("../utils/SortingUtils");
21
22
  const debug = (0, debug_1.default)('sphereon:ssi-sdk:credential-store');
22
23
  class DigitalCredentialStore extends AbstractDigitalCredentialStore_1.AbstractDigitalCredentialStore {
23
24
  constructor(dbConnection) {
24
25
  super();
25
- this.addDigitalCredential = (args) => __awaiter(this, void 0, void 0, function* () {
26
+ this.addCredential = (args) => __awaiter(this, void 0, void 0, function* () {
26
27
  debug('Adding credential', args);
27
28
  const digitalCredentialEntityRepository = (yield this.dbConnection).getRepository(DigitalCredentialEntity_1.DigitalCredentialEntity);
28
29
  const credentialEntity = (0, MappingUtils_1.nonPersistedDigitalCredentialEntityFromAddArgs)(args);
29
30
  const createdResult = yield digitalCredentialEntityRepository.save(credentialEntity);
30
31
  return Promise.resolve(createdResult);
31
32
  });
32
- this.getDigitalCredential = (args) => __awaiter(this, void 0, void 0, function* () {
33
+ this.getCredential = (args) => __awaiter(this, void 0, void 0, function* () {
33
34
  const result = yield (yield this.dbConnection).getRepository(DigitalCredentialEntity_1.DigitalCredentialEntity).findOne({
34
35
  where: args,
35
36
  });
@@ -38,24 +39,21 @@ class DigitalCredentialStore extends AbstractDigitalCredentialStore_1.AbstractDi
38
39
  }
39
40
  return result;
40
41
  });
41
- this.getDigitalCredentials = (args) => __awaiter(this, void 0, void 0, function* () {
42
- const { filter = {}, skip, take, order = { createdAt: 'DESC' } } = args !== null && args !== void 0 ? args : {};
42
+ this.getCredentials = (args) => __awaiter(this, void 0, void 0, function* () {
43
+ const { filter = {}, offset, limit, order = 'id.asc' } = args !== null && args !== void 0 ? args : {};
44
+ const sortOptions = (0, SortingUtils_1.parseAndValidateOrderOptions)(order);
43
45
  const [result, total] = yield (yield this.dbConnection).getRepository(DigitalCredentialEntity_1.DigitalCredentialEntity).findAndCount({
44
46
  where: filter,
45
- skip,
46
- take,
47
- order,
47
+ skip: offset,
48
+ take: limit,
49
+ order: sortOptions,
48
50
  });
49
- if (!result) {
50
- return Promise.reject(Error(`No credential found for arg: ${args === null || args === void 0 ? void 0 : args.toString()}`));
51
- }
52
51
  return {
53
52
  data: result,
54
53
  total,
55
- hasMore: total > (skip || 0) + (take || 0),
56
54
  };
57
55
  });
58
- this.removeDigitalCredential = (args) => __awaiter(this, void 0, void 0, function* () {
56
+ this.removeCredential = (args) => __awaiter(this, void 0, void 0, function* () {
59
57
  if (!args) {
60
58
  return false;
61
59
  }
@@ -79,23 +77,34 @@ class DigitalCredentialStore extends AbstractDigitalCredentialStore_1.AbstractDi
79
77
  return false;
80
78
  }
81
79
  });
82
- this.updateDigitalCredentialState = (args) => __awaiter(this, void 0, void 0, function* () {
83
- var _a, _b;
80
+ this.updateCredentialState = (args) => __awaiter(this, void 0, void 0, function* () {
84
81
  const credentialRepository = (yield this.dbConnection).getRepository(DigitalCredentialEntity_1.DigitalCredentialEntity);
85
82
  const whereClause = {};
86
83
  if ('id' in args) {
87
84
  whereClause.id = args.id;
88
85
  }
89
- if ('hash' in args) {
86
+ else if ('hash' in args) {
90
87
  whereClause.hash = args.hash;
91
88
  }
89
+ else {
90
+ throw new Error('No id or hash param is provided.');
91
+ }
92
+ if (!args.verifiedState) {
93
+ throw new Error('No verifiedState param is provided.');
94
+ }
95
+ if (args.verifiedState === digitalCredential_1.CredentialStateType.REVOKED && !args.revokedAt) {
96
+ throw new Error('No revokedAt param is provided.');
97
+ }
98
+ if (args.verifiedState !== digitalCredential_1.CredentialStateType.REVOKED && !args.verifiedAt) {
99
+ throw new Error('No verifiedAt param is provided.');
100
+ }
92
101
  const credential = yield credentialRepository.findOne({
93
102
  where: whereClause,
94
103
  });
95
104
  if (!credential) {
96
105
  return Promise.reject(Error(`No credential found for args: ${whereClause}`));
97
106
  }
98
- const updatedCredential = Object.assign(Object.assign(Object.assign(Object.assign({}, credential), { verifiedAt: (_a = args.verificationDate) !== null && _a !== void 0 ? _a : new Date(), lastUpdatedAt: new Date() }), (args.verifiedState === digitalCredential_1.CredentialStateType.REVOKED && { revocationDate: (_b = args.verificationDate) !== null && _b !== void 0 ? _b : new Date() })), { verifiedState: args.verifiedState });
107
+ const updatedCredential = Object.assign(Object.assign(Object.assign(Object.assign({}, credential), (args.verifiedState !== digitalCredential_1.CredentialStateType.REVOKED && { verifiedAt: args.verifiedAt })), (args.verifiedState === digitalCredential_1.CredentialStateType.REVOKED && { revokedAt: args.revokedAt })), { lastUpdatedAt: new Date(), verifiedState: args.verifiedState });
99
108
  debug('Updating credential', credential);
100
109
  const updatedResult = yield credentialRepository.save(updatedCredential, { transaction: true });
101
110
  return updatedResult;
@@ -1 +1 @@
1
- {"version":3,"file":"DigitalCredentialStore.js","sourceRoot":"","sources":["../../src/digitalCredential/DigitalCredentialStore.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qFAAiF;AAWjF,kDAAyB;AACzB,mGAA+F;AAC/F,0EAAwG;AAExG,oFAAoI;AAEpI,MAAM,KAAK,GAAmB,IAAA,eAAK,EAAC,mCAAmC,CAAC,CAAA;AAExE,MAAa,sBAAuB,SAAQ,+DAA8B;IAGxE,YAAY,YAAmC;QAC7C,KAAK,EAAE,CAAA;QAIT,yBAAoB,GAAG,CAAO,IAA8B,EAAoC,EAAE;YAChG,KAAK,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAA;YAChC,MAAM,iCAAiC,GAAwC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,iDAAuB,CAAC,CAAA;YAC/I,MAAM,gBAAgB,GAAkC,IAAA,6DAA8C,EAAC,IAAI,CAAC,CAAA;YAC5G,MAAM,aAAa,GAA4B,MAAM,iCAAiC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;YAC7G,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAA;QACvC,CAAC,CAAA,CAAA;QAED,yBAAoB,GAAG,CAAO,IAA8B,EAAoC,EAAE;YAChG,MAAM,MAAM,GAAmC,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,iDAAuB,CAAC,CAAC,OAAO,CAAC;gBAC5H,KAAK,EAAE,IAAI;aACZ,CAAC,CAAA;YAEF,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;aAChF;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAA,CAAA;QAED,0BAAqB,GAAG,CAAO,IAAgC,EAA0C,EAAE;YACzG,MAAM,EAAE,MAAM,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAA;YAC7E,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,iDAAuB,CAAC,CAAC,YAAY,CAAC;gBAC1G,KAAK,EAAE,MAAM;gBACb,IAAI;gBACJ,IAAI;gBACJ,KAAK;aACN,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,EAAE;gBACX,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,EAAE,CAAC,CAAC,CAAA;aACjF;YACD,OAAO;gBACL,IAAI,EAAE,MAAM;gBACZ,KAAK;gBACL,OAAO,EAAE,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;aAC3C,CAAA;QACH,CAAC,CAAA,CAAA;QAED,4BAAuB,GAAG,CAAO,IAAiC,EAAoB,EAAE;YACtF,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO,KAAK,CAAA;aACb;YAED,IAAI,KAAK,GAA8C,EAAE,CAAA;YAEzD,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;aACnB;iBAAM,IAAI,MAAM,IAAI,IAAI,EAAE;gBACzB,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;aACvB;iBAAM;gBACL,OAAO,KAAK,CAAA;aACb;YACD,IAAI;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAA;gBAC1C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,aAAa,CAAC,iDAAuB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACpF,OAAO,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAA;aAC7B;YAAC,OAAO,KAAK,EAAE;gBACd,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAA;gBAC1D,OAAO,KAAK,CAAA;aACb;QACH,CAAC,CAAA,CAAA;QAED,iCAA4B,GAAG,CAAO,IAAsC,EAAoC,EAAE;;YAChH,MAAM,oBAAoB,GAAwC,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,CAAC,aAAa,CAAC,iDAAuB,CAAC,CAAA;YAClI,MAAM,WAAW,GAAwB,EAAE,CAAA;YAC3C,IAAI,IAAI,IAAI,IAAI,EAAE;gBAChB,WAAW,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;aACzB;YACD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAClB,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;aAC7B;YACD,MAAM,UAAU,GAAmC,MAAM,oBAAoB,CAAC,OAAO,CAAC;gBACpF,KAAK,EAAE,WAAW;aACnB,CAAC,CAAA;YAEF,IAAI,CAAC,UAAU,EAAE;gBACf,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,WAAW,EAAE,CAAC,CAAC,CAAA;aAC7E;YACD,MAAM,iBAAiB,+DAClB,UAAU,KACb,UAAU,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,IAAI,IAAI,EAAE,EAC/C,aAAa,EAAE,IAAI,IAAI,EAAE,KACtB,CAAC,IAAI,CAAC,aAAa,KAAK,uCAAmB,CAAC,OAAO,IAAI,EAAE,cAAc,EAAE,MAAA,IAAI,CAAC,gBAAgB,mCAAI,IAAI,IAAI,EAAE,EAAE,CAAC,KAClH,aAAa,EAAE,IAAI,CAAC,aAAa,GAClC,CAAA;YACD,KAAK,CAAC,qBAAqB,EAAE,UAAU,CAAC,CAAA;YACxC,MAAM,aAAa,GAA4B,MAAM,oBAAoB,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;YACxH,OAAO,aAAa,CAAA;QACtB,CAAC,CAAA,CAAA;QA1FC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAA;IAClC,CAAC;CA0FF;AAhGD,wDAgGC"}
1
+ {"version":3,"file":"DigitalCredentialStore.js","sourceRoot":"","sources":["../../src/digitalCredential/DigitalCredentialStore.ts"],"names":[],"mappings":"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"}
@@ -1,24 +1,22 @@
1
1
  import { CredentialCorrelationType, CredentialStateType, DigitalCredential } from './digitalCredential';
2
- export type GetDigitalCredentialArgs = {
2
+ import { Hasher } from '@sphereon/ssi-types';
3
+ export type GetCredentialArgs = {
3
4
  id: string;
4
5
  } | {
5
6
  hash: string;
6
7
  };
7
8
  export type FindDigitalCredentialArgs = Array<Partial<DigitalCredential>>;
8
- export type GetDigitalCredentialsArgs = {
9
+ export type GetCredentialsArgs = {
9
10
  filter?: FindDigitalCredentialArgs;
10
- skip?: number;
11
- take?: number;
12
- order?: {
13
- [key in keyof DigitalCredential]: 'ASC' | 'DESC';
14
- };
11
+ offset?: number;
12
+ limit?: number;
13
+ order?: string;
15
14
  };
16
- export type GetDigitalCredentialsResponse = {
17
- data: DigitalCredential[];
15
+ export type GetCredentialsResponse = {
16
+ data: Array<DigitalCredential>;
18
17
  total: number;
19
- hasMore: boolean;
20
18
  };
21
- export type AddDigitalCredentialArgs = {
19
+ export type AddCredentialArgs = {
22
20
  raw: string;
23
21
  issuerCorrelationType: CredentialCorrelationType;
24
22
  subjectCorrelationType?: CredentialCorrelationType;
@@ -26,12 +24,17 @@ export type AddDigitalCredentialArgs = {
26
24
  subjectCorrelationId?: string;
27
25
  tenantId?: string;
28
26
  state?: CredentialStateType;
29
- verificationDate?: Date;
30
- revocationDate?: Date;
27
+ verifiedAt?: Date;
28
+ revokedAt?: Date;
29
+ opts?: {
30
+ maxTimeSkewInMS?: number;
31
+ hasher?: Hasher;
32
+ };
31
33
  };
32
- export type UpdateDigitalCredentialStateArgs = GetDigitalCredentialArgs & {
34
+ export type UpdateCredentialStateArgs = GetCredentialArgs & {
33
35
  verifiedState: CredentialStateType;
34
- verificationDate?: Date;
36
+ verifiedAt?: Date;
37
+ revokedAt?: Date;
35
38
  };
36
- export type RemoveDigitalCredentialArgs = GetDigitalCredentialArgs;
39
+ export type RemoveCredentialArgs = GetCredentialArgs;
37
40
  //# sourceMappingURL=IAbstractDigitalCredentialStore.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IAbstractDigitalCredentialStore.d.ts","sourceRoot":"","sources":["../../../src/types/digitalCredential/IAbstractDigitalCredentialStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvG,MAAM,MAAM,wBAAwB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAExE,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,yBAAyB,GAAG;IACtC,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE;SAAG,GAAG,IAAI,MAAM,iBAAiB,GAAG,KAAK,GAAG,MAAM;KAAE,CAAA;CAC7D,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,IAAI,EAAE,iBAAiB,EAAE,CAAA;IACzB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB,EAAE,yBAAyB,CAAA;IAChD,sBAAsB,CAAC,EAAE,yBAAyB,CAAA;IAClD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,gBAAgB,CAAC,EAAE,IAAI,CAAA;IACvB,cAAc,CAAC,EAAE,IAAI,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG,wBAAwB,GAAG;IAAE,aAAa,EAAE,mBAAmB,CAAC;IAAC,gBAAgB,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAEzI,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,CAAA"}
1
+ {"version":3,"file":"IAbstractDigitalCredentialStore.d.ts","sourceRoot":"","sources":["../../../src/types/digitalCredential/IAbstractDigitalCredentialStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvG,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAEjE,MAAM,MAAM,yBAAyB,GAAG,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAA;AAEzE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,yBAAyB,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,KAAK,CAAC,iBAAiB,CAAC,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,GAAG,EAAE,MAAM,CAAA;IACX,qBAAqB,EAAE,yBAAyB,CAAA;IAChD,sBAAsB,CAAC,EAAE,yBAAyB,CAAA;IAClD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,mBAAmB,CAAA;IAC3B,UAAU,CAAC,EAAE,IAAI,CAAA;IACjB,SAAS,CAAC,EAAE,IAAI,CAAA;IAChB,IAAI,CAAC,EAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG,iBAAiB,GAAG;IAAE,aAAa,EAAE,mBAAmB,CAAC;IAAC,UAAU,CAAC,EAAE,IAAI,CAAC;IAAC,SAAS,CAAC,EAAE,IAAI,CAAA;CAAE,CAAA;AAEvI,MAAM,MAAM,oBAAoB,GAAG,iBAAiB,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { BaseEntity, FindOptionsOrder } from 'typeorm';
2
+ export declare const parseAndValidateOrderOptions: <T extends BaseEntity>(order: string) => FindOptionsOrder<T>;
3
+ //# sourceMappingURL=SortingUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortingUtils.d.ts","sourceRoot":"","sources":["../../src/utils/SortingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAEtD,eAAO,MAAM,4BAA4B,gCAAiC,MAAM,wBAa/E,CAAA"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseAndValidateOrderOptions = void 0;
4
+ const parseAndValidateOrderOptions = (order) => {
5
+ const orderPairs = order.split(',').map((pair) => pair.trim().split('.'));
6
+ const orderOptions = {};
7
+ orderPairs.forEach(([field, direction]) => {
8
+ const dir = direction.toUpperCase();
9
+ if (dir !== 'ASC' && dir !== 'DESC') {
10
+ throw new Error(`Invalid order direction: '${direction}'. Must be 'asc' or 'desc'.`);
11
+ }
12
+ ;
13
+ orderOptions[field] = dir;
14
+ });
15
+ return orderOptions;
16
+ };
17
+ exports.parseAndValidateOrderOptions = parseAndValidateOrderOptions;
18
+ //# sourceMappingURL=SortingUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortingUtils.js","sourceRoot":"","sources":["../../src/utils/SortingUtils.ts"],"names":[],"mappings":";;;AAEO,MAAM,4BAA4B,GAAG,CAAuB,KAAa,EAAuB,EAAE;IACvG,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAA;IACzE,MAAM,YAAY,GAAwB,EAAE,CAAA;IAE5C,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,SAAS,CAAC,WAAW,EAAE,CAAA;QACnC,IAAI,GAAG,KAAK,KAAK,IAAI,GAAG,KAAK,MAAM,EAAE;YACnC,MAAM,IAAI,KAAK,CAAC,6BAA6B,SAAS,6BAA6B,CAAC,CAAA;SACrF;QACD,CAAC;QAAC,YAAoB,CAAC,KAAK,CAAC,GAAG,GAAG,CAAA;IACrC,CAAC,CAAC,CAAA;IAEF,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAbY,QAAA,4BAA4B,gCAaxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/contact/MappingUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/contact/MappingUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/contact/MappingUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/contact/MappingUtils.ts"],"names":[],"mappings":";;;AAgCA,oEAAgE;AAChE,0EAAsE;AACtE,4FAAwF;AACxF,4FAAwF;AAExF,oFAAgF;AAChF,kFAA8E;AAC9E,8EAA0E;AAE1E,oGAAgG;AAChG,oFAAgF;AAChF,kGAA8F;AAC9F,kFAA8E;AAC9E,4EAAwE;AACxE,wFAAoF;AAE7E,MAAM,eAAe,GAAG,CAAC,KAAwB,EAAe,EAAE;IACvE,MAAM,WAAW,GAAgB,IAAI,yBAAW,EAAE,CAAA;IAClD,WAAW,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAA;IAC3B,WAAW,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAA8B,EAAE,EAAE,CAAC,IAAA,0BAAkB,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACvI,WAAW,CAAC,mBAAmB,GAAG,KAAK,CAAC,mBAAmB;QACzD,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,iBAAgD,EAAE,EAAE,CAAC,IAAA,mCAA2B,EAAC,iBAAiB,CAAC,CAAC;QACrI,CAAC,CAAC,EAAE,CAAA;IACN,WAAW,CAAC,iBAAiB,GAAG,KAAK,CAAC,iBAAiB;QACrD,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,eAA4C,EAAE,EAAE,CAAC,IAAA,iCAAyB,EAAC,eAAe,CAAC,CAAC;QAC3H,CAAC,CAAC,EAAE,CAAA;IACN,WAAW,CAAC,SAAS,GAAG,IAAA,2BAAmB,EAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IAC5D,WAAW,CAAC,OAAO,GAAG,IAAA,yBAAiB,EAAC,KAAK,CAAC,OAAO,CAAC,CAAA;IAEtD,OAAO,WAAW,CAAA;AACpB,CAAC,CAAA;AAdY,QAAA,eAAe,mBAc3B;AAEM,MAAM,SAAS,GAAG,CAAC,KAAkB,EAAS,EAAE;;IACrD,OAAO;QACL,EAAE,EAAE,KAAK,CAAC,EAAE;QACZ,GAAG,EAAE,KAAK,CAAC,GAAG;QACd,KAAK,EAAE,MAAA,CAAC,GAAG,IAAI,GAAG,CAAC,MAAA,KAAK,CAAC,UAAU,0CAAE,OAAO,CAAC,CAAC,QAAwB,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,mCAAI,EAAE;QAClG,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,QAAwB,EAAE,EAAE,CAAC,IAAA,oBAAY,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QAC9G,mBAAmB,EAAE,KAAK,CAAC,mBAAmB;YAC5C,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC,iBAA0C,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,iBAAiB,CAAC,CAAC;YACzH,CAAC,CAAC,EAAE;QACN,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;YACxC,CAAC,CAAC,KAAK,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,eAAsC,EAAE,EAAE,CAAC,IAAA,2BAAmB,EAAC,eAAe,CAAC,CAAC;YAC/G,CAAC,CAAC,EAAE;QACN,aAAa,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,YAAqC,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;QACjJ,SAAS,EAAE,IAAA,qBAAa,EAAC,KAAK,CAAC,SAAS,CAAC;QACzC,OAAO,EAAE,IAAA,mBAAW,EAAC,KAAK,CAAC,OAAO,CAAC;QACnC,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,aAAa,EAAE,KAAK,CAAC,aAAa;KACnC,CAAA;AACH,CAAC,CAAA;AAlBY,QAAA,SAAS,aAkBrB;AAEM,MAAM,iBAAiB,GAAG,CAAC,OAA4B,EAAqB,EAAE;IACnF,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,EAAE;QAC5B,OAAO,IAAA,+BAAuB,EAA4B,OAAO,CAAC,CAAA;KACnE;SAAM,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE;QAClC,OAAO,IAAA,8BAAsB,EAA2B,OAAO,CAAC,CAAA;KACjE;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC1C,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,WAAW,GAAG,CAAC,OAA0B,EAAW,EAAE;IACjE,IAAI,IAAA,uBAAe,EAAC,OAAO,CAAC,EAAE;QAC5B,OAAO,IAAA,yBAAiB,EAAsB,OAAO,CAAC,CAAA;KACvD;SAAM,IAAI,IAAA,sBAAc,EAAC,OAAO,CAAC,EAAE;QAClC,OAAO,IAAA,wBAAgB,EAAqB,OAAO,CAAC,CAAA;KACrD;IAED,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;AAC1C,CAAC,CAAA;AARY,QAAA,WAAW,eAQvB;AAEM,MAAM,eAAe,GAAG,CAAC,OAAgD,EAA8D,EAAE,CAC9I,WAAW,IAAI,OAAO,IAAI,UAAU,IAAI,OAAO,CAAA;AADpC,QAAA,eAAe,mBACqB;AAE1C,MAAM,cAAc,GAAG,CAAC,OAAgD,EAA4D,EAAE,CAC3I,WAAW,IAAI,OAAO,CAAA;AADX,QAAA,cAAc,kBACH;AAEjB,MAAM,oBAAoB,GAAG,CAAC,UAAkC,EAAoB,EAAE;IAC3F,MAAM,gBAAgB,GAAqB,IAAI,mCAAgB,EAAE,CAAA;IACjE,gBAAgB,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IACvC,gBAAgB,CAAC,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IAE7D,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AANY,QAAA,oBAAoB,wBAMhC;AAEM,MAAM,cAAc,GAAG,CAAC,UAA4B,EAAc,EAAE;IACzE,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,MAAM,EAAE,IAAA,kBAAU,EAAC,UAAU,CAAC,MAAM,CAAC;KACtC,CAAA;AACH,CAAC,CAAA;AANY,QAAA,cAAc,kBAM1B;AAED,MAAM,gBAAgB,GAAG,CAAC,MAAoC,EAAoB,EAAE;IAClF,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,IAAA,8BAAsB,EAA2B,MAAM,CAAC,CAAA;KAChE;SAAM,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,EAAE;QAClC,OAAO,IAAA,+BAAuB,EAA4B,MAAM,CAAC,CAAA;KAClE;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,CAAC,CAAA;AAEM,MAAM,+BAA+B,GAAG,CAAC,UAA6C,EAA+B,EAAE;IAC5H,MAAM,gBAAgB,GAAgC,IAAI,yDAA2B,EAAE,CAAA;IACvF,gBAAgB,CAAC,IAAI,GAAG,UAAU,CAAC,IAAI,CAAA;IACvC,gBAAgB,CAAC,aAAa,GAAG,UAAU,CAAC,aAAa,CAAA;IAEzD,OAAO,gBAAgB,CAAA;AACzB,CAAC,CAAA;AANY,QAAA,+BAA+B,mCAM3C;AAEM,MAAM,yBAAyB,GAAG,CAAC,UAAuC,EAAyB,EAAE;IAC1G,OAAO;QACL,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,IAAI,EAAE,UAAU,CAAC,IAAI;QACrB,aAAa,EAAE,UAAU,CAAC,aAAa;KACxC,CAAA;AACH,CAAC,CAAA;AANY,QAAA,yBAAyB,6BAMrC;AAEM,MAAM,uBAAuB,GAAG,CAAC,MAAiC,EAAuB,EAAE;IAChG,MAAM,aAAa,GAAwB,IAAI,yCAAmB,EAAE,CAAA;IACpE,aAAa,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAA;IAChD,aAAa,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IAC9C,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAA;IAE1C,OAAO,aAAa,CAAA;AACtB,CAAC,CAAA;AAPY,QAAA,uBAAuB,2BAOnC;AAEM,MAAM,2BAA2B,GAAG,CAAC,iBAAgD,EAA2B,EAAE;IACvH,MAAM,uBAAuB,GAA4B,IAAI,iDAAuB,EAAE,CAAA;IACtF,uBAAuB,CAAC,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAA;IACrD,uBAAuB,CAAC,iBAAiB,GAAG,iBAAiB,CAAC,iBAAiB,CAAA;IAE/E,OAAO,uBAAuB,CAAA;AAChC,CAAC,CAAA;AANY,QAAA,2BAA2B,+BAMvC;AAEM,MAAM,qBAAqB,GAAG,CAAC,iBAA0C,EAAqB,EAAE;IACrG,OAAO;QACL,EAAE,EAAE,iBAAiB,CAAC,EAAE;QACxB,IAAI,EAAE,iBAAiB,CAAC,IAAI;QAC5B,iBAAiB,EAAE,iBAAiB,CAAC,iBAAiB;QACtD,SAAS,EAAE,iBAAiB,CAAC,SAAS;QACtC,aAAa,EAAE,iBAAiB,CAAC,aAAa;KAC/C,CAAA;AACH,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC;AAEM,MAAM,yBAAyB,GAAG,CAAC,eAA4C,EAAyB,EAAE;IAC/G,MAAM,qBAAqB,GAA0B,IAAI,6CAAqB,EAAE,CAAA;IAChF,qBAAqB,CAAC,IAAI,GAAG,eAAe,CAAC,IAAI,CAAA;IACjD,qBAAqB,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;IAC7D,qBAAqB,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAA;IACjE,qBAAqB,CAAC,UAAU,GAAG,eAAe,CAAC,UAAU,CAAA;IAC7D,qBAAqB,CAAC,QAAQ,GAAG,eAAe,CAAC,QAAQ,CAAA;IACzD,qBAAqB,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAA;IACjE,qBAAqB,CAAC,WAAW,GAAG,eAAe,CAAC,WAAW,CAAA;IAC/D,qBAAqB,CAAC,YAAY,GAAG,eAAe,CAAC,YAAY,CAAA;IAEjE,OAAO,qBAAqB,CAAA;AAC9B,CAAC,CAAA;AAZY,QAAA,yBAAyB,6BAYrC;AAEM,MAAM,mBAAmB,GAAG,CAAC,eAAsC,EAAmB,EAAE;IAC7F,OAAO;QACL,EAAE,EAAE,eAAe,CAAC,EAAE;QACtB,IAAI,EAAE,eAAe,CAAC,IAAI;QAC1B,UAAU,EAAE,eAAe,CAAC,UAAU;QACtC,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,UAAU,EAAE,eAAe,CAAC,UAAU;QACtC,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,WAAW,EAAE,eAAe,CAAC,WAAW;QACxC,YAAY,EAAE,eAAe,CAAC,YAAY;QAC1C,SAAS,EAAE,eAAe,CAAC,SAAS;QACpC,aAAa,EAAE,eAAe,CAAC,aAAa;KAC7C,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,mBAAmB,uBAc/B;AAEM,MAAM,kBAAkB,GAAG,CAAC,IAA0B,EAAkB,EAAE;IAC/E,MAAM,cAAc,GAAmB,IAAI,+BAAc,EAAE,CAAA;IAC3D,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACjC,cAAc,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACjC,cAAc,CAAC,UAAU,GAAG,IAAA,uCAA+B,EAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IAC5E,cAAc,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,4BAAoB,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC/F,cAAc,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAA8B,EAAE,EAAE,CAAC,IAAA,8BAAsB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAElI,OAAO,cAAc,CAAA;AACvB,CAAC,CAAA;AATY,QAAA,kBAAkB,sBAS9B;AAEM,MAAM,YAAY,GAAG,CAAC,QAAwB,EAAY,EAAE;IACjE,qCACE,EAAE,EAAE,QAAQ,CAAC,EAAE,EACf,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,UAAU,EAAE,IAAA,iCAAyB,EAAC,QAAQ,CAAC,UAAU,CAAC,IACvD,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,UAAU,EAAE,IAAA,sBAAc,EAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC,KAC/E,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAgC,EAAE,EAAE,CAAC,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EACtH,SAAS,EAAE,QAAQ,CAAC,SAAS,EAC7B,aAAa,EAAE,QAAQ,CAAC,SAAS,IAClC;AACH,CAAC,CAAA;AAXY,QAAA,YAAY,gBAWxB;AAEM,MAAM,sBAAsB,GAAG,CAAC,IAA8B,EAA8B,EAAE;IACnG,MAAM,kBAAkB,GAA+B,IAAI,uDAA0B,EAAE,CAAA;IACvF,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IACrC,kBAAkB,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;IAErC,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA;AANY,QAAA,sBAAsB,0BAMlC;AAEM,MAAM,gBAAgB,GAAG,CAAC,IAAgC,EAAgB,EAAE;IACjF,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAA;AACH,CAAC,CAAA;AANY,QAAA,gBAAgB,oBAM5B;AAEM,MAAM,uBAAuB,GAAG,CAAC,aAAwC,EAAuB,EAAE;IACvG,MAAM,mBAAmB,GAAwB,IAAI,yCAAmB,EAAE,CAAA;IAC1E,mBAAmB,CAAC,SAAS,GAAG,aAAa,CAAC,SAAS,CAAA;IACvD,mBAAmB,CAAC,UAAU,GAAG,aAAa,CAAC,UAAU,CAAA;IACzD,mBAAmB,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAA;IACrD,mBAAmB,CAAC,WAAW,GAAG,aAAa,CAAC,WAAW,CAAA;IAE3D,OAAO,mBAAmB,CAAA;AAC5B,CAAC,CAAA;AARY,QAAA,uBAAuB,2BAQnC;AAEM,MAAM,iBAAiB,GAAG,CAAC,aAAkC,EAAiB,EAAE;IACrF,OAAO;QACL,EAAE,EAAE,aAAa,CAAC,EAAE;QACpB,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,UAAU,EAAE,aAAa,CAAC,UAAU;QACpC,QAAQ,EAAE,aAAa,CAAC,QAAQ;QAChC,WAAW,EAAE,aAAa,CAAC,WAAW;QACtC,SAAS,EAAE,aAAa,CAAC,SAAS;QAClC,aAAa,EAAE,aAAa,CAAC,aAAa;KAC3C,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,iBAAiB,qBAU7B;AAEM,MAAM,sBAAsB,GAAG,CAAC,MAAgC,EAAsB,EAAE;IAC7F,MAAM,YAAY,GAAuB,IAAI,uCAAkB,EAAE,CAAA;IACjE,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IACvC,YAAY,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAA;IAC/C,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IACnC,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAA;IACnC,YAAY,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;IAC7C,YAAY,CAAC,oCAAoC,GAAG,MAAM,CAAC,oCAAoC,CAAA;IAC/F,YAAY,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAA;IAEvD,OAAO,YAAY,CAAA;AACrB,CAAC,CAAA;AAXY,QAAA,sBAAsB,0BAWlC;AAEM,MAAM,sBAAsB,GAAG,CAAC,YAAsC,EAAsB,EAAE;IACnG,MAAM,kBAAkB,GAAuB,IAAI,uCAAkB,EAAE,CAAA;IACvE,kBAAkB,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAA;IACrD,kBAAkB,CAAC,WAAW,GAAG,YAAY,CAAC,WAAW,CAAA;IAEzD,OAAO,kBAAkB,CAAA;AAC3B,CAAC,CAAA;AANY,QAAA,sBAAsB,0BAMlC;AAEM,MAAM,gBAAgB,GAAG,CAAC,YAAgC,EAAgB,EAAE;IACjF,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,EAAE;QACnB,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,WAAW,EAAE,YAAY,CAAC,WAAW;QACrC,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,aAAa,EAAE,YAAY,CAAC,aAAa;KAC1C,CAAA;AACH,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B;AAEM,MAAM,2BAA2B,GAAG,CAAC,YAA2C,EAA2B,EAAE;IAClH,MAAM,uBAAuB,GAA4B,IAAI,iDAAuB,EAAE,CAAA;IACtF,uBAAuB,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,CAAA;IACpD,uBAAuB,CAAC,OAAO,GAAG,YAAY,CAAC,OAAO,CAAA;IAEtD,OAAO,uBAAuB,CAAA;AAChC,CAAC,CAAA;AANY,QAAA,2BAA2B,+BAMvC;AAEM,MAAM,qBAAqB,GAAG,CAAC,YAAqC,EAAqB,EAAE;IAChG,OAAO;QACL,EAAE,EAAE,YAAY,CAAC,EAAE;QACnB,MAAM,EAAE,YAAY,CAAC,MAAM;QAC3B,OAAO,EAAE,YAAY,CAAC,OAAO;QAC7B,SAAS,EAAE,YAAY,CAAC,SAAS;QACjC,aAAa,EAAE,YAAY,CAAC,aAAa;KAC1C,CAAA;AACH,CAAC,CAAA;AARY,QAAA,qBAAqB,yBAQjC;AAEM,MAAM,mBAAmB,GAAG,CAAC,IAA2B,EAAmB,EAAE;IAClF,MAAM,eAAe,GAAoB,IAAI,iCAAe,EAAE,CAAA;IAC9D,IAAI,IAAI,CAAC,EAAE,EAAE;QACX,eAAe,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAA;KAC7B;IACD,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAChC,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAA;IAChC,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IAC9C,eAAe,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAExC,OAAO,eAAe,CAAA;AACxB,CAAC,CAAA;AAXY,QAAA,mBAAmB,uBAW/B;AAEM,MAAM,aAAa,GAAG,CAAC,SAA0B,EAAa,EAAE;IACrE,OAAO;QACL,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,WAAW,EAAE,SAAS,CAAC,WAAW;QAClC,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,aAAa,EAAE,SAAS,CAAC,aAAa;KACvC,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,aAAa,iBAUzB;AAEM,MAAM,UAAU,GAAG,CAAC,MAAwB,EAAoB,EAAE;IACvE,IAAI,IAAA,sBAAc,EAAC,MAAM,CAAC,EAAE;QAC1B,OAAO,IAAA,wBAAgB,EAAqB,MAAM,CAAC,CAAA;KACpD;SAAM,IAAI,IAAA,uBAAe,EAAC,MAAM,CAAC,EAAE;QAClC,OAAO,IAAA,yBAAiB,EAAsB,MAAM,CAAC,CAAA;KACtD;IAED,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;AAC9C,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB;AAEM,MAAM,gBAAgB,GAAG,CAAC,MAA0B,EAAgB,EAAE;IAC3E,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,YAAY,EAAE,MAAM,CAAC,YAAY;QACjC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oCAAoC,EAAE,MAAM,CAAC,oCAAoC;QACjF,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;KAC1C,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,gBAAgB,oBAW5B;AAEM,MAAM,iBAAiB,GAAG,CAAC,MAA2B,EAAiB,EAAE;IAC9E,OAAO;QACL,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,UAAU,EAAE,EAAE,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC5E,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,SAAS,EAAE,MAAM,CAAC,SAAS;KAC5B,CAAA;AACH,CAAC,CAAA;AARY,QAAA,iBAAiB,qBAQ7B;AAEM,MAAM,cAAc,GAAG,CAAC,MAAuD,EAA+C,EAAE,CACrI,cAAc,IAAI,MAAM,IAAI,QAAQ,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,CAAA;AAD9D,QAAA,cAAc,kBACgD;AAEpE,MAAM,eAAe,GAAG,CAAC,MAAuD,EAAiD,EAAE,CACxI,YAAY,IAAI,MAAM,IAAI,aAAa,IAAI,MAAM,IAAI,WAAW,IAAI,MAAM,CAAA;AAD/D,QAAA,eAAe,mBACgD"}
@@ -1,9 +1,7 @@
1
- import { AddDigitalCredentialArgs } from '../../types/digitalCredential/IAbstractDigitalCredentialStore';
1
+ import { AddCredentialArgs } from '../../types/digitalCredential/IAbstractDigitalCredentialStore';
2
2
  import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity';
3
- import { SdJwtDecodedVerifiableCredentialPayload } from '@sphereon/ssi-types';
4
3
  import { DigitalCredential, NonPersistedDigitalCredential } from '../../types/digitalCredential/digitalCredential';
5
- export declare const handleSdJwt: (rawCredential: string) => SdJwtDecodedVerifiableCredentialPayload;
6
- export declare const nonPersistedDigitalCredentialEntityFromAddArgs: (addCredentialArgs: AddDigitalCredentialArgs) => NonPersistedDigitalCredential;
4
+ export declare const nonPersistedDigitalCredentialEntityFromAddArgs: (addCredentialArgs: AddCredentialArgs) => NonPersistedDigitalCredential;
7
5
  export declare const digitalCredentialFrom: (credentialEntity: DigitalCredentialEntity) => DigitalCredential;
8
6
  export declare const digitalCredentialsFrom: (credentialEntities: Array<DigitalCredentialEntity>) => DigitalCredential[];
9
7
  //# sourceMappingURL=MappingUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,+DAA+D,CAAA;AACxG,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAA;AAClG,OAAO,EAML,uCAAuC,EACxC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAGL,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,iDAAiD,CAAA;AAyDxD,eAAO,MAAM,WAAW,kBAAmB,MAAM,KAAG,uCAKnD,CAAA;AAED,eAAO,MAAM,8CAA8C,sBAAuB,wBAAwB,KAAG,6BAsB5G,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAAsB,uBAAuB,KAAG,iBAIjF,CAAA;AAED,eAAO,MAAM,sBAAsB,uBAAwB,MAAM,uBAAuB,CAAC,KAAG,iBAAiB,EAE5G,CAAA"}
1
+ {"version":3,"file":"MappingUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,+DAA+D,CAAA;AACjG,OAAO,EAAE,uBAAuB,EAAE,MAAM,0DAA0D,CAAA;AAWlG,OAAO,EAGL,iBAAiB,EACjB,6BAA6B,EAC9B,MAAM,iDAAiD,CAAA;AAwExD,eAAO,MAAM,8CAA8C,sBAAuB,iBAAiB,KAAG,6BAyBrG,CAAA;AAED,eAAO,MAAM,qBAAqB,qBAAsB,uBAAuB,KAAG,iBAIjF,CAAA;AAED,eAAO,MAAM,sBAAsB,uBAAwB,MAAM,uBAAuB,CAAC,KAAG,iBAAiB,EAE5G,CAAA"}
@@ -1,29 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.digitalCredentialsFrom = exports.digitalCredentialFrom = exports.nonPersistedDigitalCredentialEntityFromAddArgs = exports.handleSdJwt = void 0;
3
+ exports.digitalCredentialsFrom = exports.digitalCredentialFrom = exports.nonPersistedDigitalCredentialEntityFromAddArgs = void 0;
4
4
  const ssi_types_1 = require("@sphereon/ssi-types");
5
5
  const digitalCredential_1 = require("../../types/digitalCredential/digitalCredential");
6
6
  const utils_1 = require("@veramo/utils");
7
- const crypto_1 = require("crypto");
8
7
  function determineCredentialType(raw) {
9
- if (ssi_types_1.CredentialMapper.hasProof(raw)) {
10
- if (ssi_types_1.CredentialMapper.isCredential(raw)) {
11
- return digitalCredential_1.CredentialType.VC;
12
- }
13
- else if (ssi_types_1.CredentialMapper.isPresentation(raw)) {
14
- return digitalCredential_1.CredentialType.VP;
15
- }
16
- }
17
- else {
18
- if (ssi_types_1.CredentialMapper.isCredential(raw)) {
19
- return digitalCredential_1.CredentialType.C;
20
- }
21
- else if (ssi_types_1.CredentialMapper.isPresentation(raw)) {
22
- return digitalCredential_1.CredentialType.P;
23
- }
8
+ const rawDocument = parseRawDocument(raw);
9
+ if (!rawDocument) {
10
+ throw new Error(`Couldn't parse the credential: ${raw}`);
11
+ }
12
+ const hasProof = ssi_types_1.CredentialMapper.hasProof(rawDocument);
13
+ const isCredential = ssi_types_1.CredentialMapper.isCredential(rawDocument);
14
+ const isPresentation = ssi_types_1.CredentialMapper.isPresentation(rawDocument);
15
+ if (isCredential) {
16
+ return hasProof ? digitalCredential_1.CredentialType.VC : digitalCredential_1.CredentialType.C;
17
+ }
18
+ else if (isPresentation) {
19
+ return hasProof ? digitalCredential_1.CredentialType.VP : digitalCredential_1.CredentialType.P;
24
20
  }
25
21
  throw new Error(`Couldn't determine the type of the credential: ${raw}`);
26
22
  }
23
+ function parseRawDocument(raw) {
24
+ if (ssi_types_1.CredentialMapper.isJwtEncoded(raw) || ssi_types_1.CredentialMapper.isSdJwtEncoded(raw)) {
25
+ return raw;
26
+ }
27
+ try {
28
+ return JSON.parse(raw);
29
+ }
30
+ catch (e) {
31
+ throw new Error(`Can't parse the raw credential: ${raw}`);
32
+ }
33
+ }
27
34
  function determineCredentialDocumentFormat(documentFormat) {
28
35
  switch (documentFormat) {
29
36
  case 1 /* DocumentFormat.JSONLD */:
@@ -40,6 +47,9 @@ function getExpiresAt(uniformDocument) {
40
47
  if ('expirationDate' in uniformDocument) {
41
48
  return new Date(uniformDocument.expirationDate);
42
49
  }
50
+ else if ('validUntil' in uniformDocument) {
51
+ return new Date(uniformDocument.validUntil);
52
+ }
43
53
  else if ('exp' in uniformDocument) {
44
54
  return new Date(uniformDocument.exp);
45
55
  }
@@ -55,23 +65,23 @@ function getIssuedAt(uniformDocument) {
55
65
  else if ('validFrom' in uniformDocument) {
56
66
  return new Date(uniformDocument['validFrom']);
57
67
  }
68
+ else if ('nbf' in uniformDocument) {
69
+ return new Date(uniformDocument['nbf'] * 1000);
70
+ }
58
71
  else if ('iat' in uniformDocument) {
59
72
  return new Date(uniformDocument['iat'] * 1000);
60
73
  }
61
74
  return undefined;
62
75
  }
63
- const handleSdJwt = (rawCredential) => {
64
- // todo ask about the hasher
65
- return ssi_types_1.CredentialMapper.isSdJwtEncoded(rawCredential)
66
- ? (0, ssi_types_1.decodeSdJwtVc)(rawCredential, (data, algorithm) => (0, crypto_1.createHash)(algorithm).update(data).digest()).decodedPayload
67
- : JSON.parse(rawCredential);
68
- };
69
- exports.handleSdJwt = handleSdJwt;
70
76
  const nonPersistedDigitalCredentialEntityFromAddArgs = (addCredentialArgs) => {
77
+ var _a;
71
78
  const credentialType = determineCredentialType(addCredentialArgs.raw);
72
79
  const documentFormat = ssi_types_1.CredentialMapper.detectDocumentType(addCredentialArgs.raw);
80
+ if (documentFormat === 2 /* DocumentFormat.SD_JWT_VC */ && !((_a = addCredentialArgs.opts) === null || _a === void 0 ? void 0 : _a.hasher)) {
81
+ throw new Error('No hasher function is provided for SD_JWT credential.');
82
+ }
73
83
  const uniformDocument = documentFormat === 2 /* DocumentFormat.SD_JWT_VC */
74
- ? (0, exports.handleSdJwt)(addCredentialArgs.raw)
84
+ ? (0, ssi_types_1.decodeSdJwtVc)(addCredentialArgs.raw, addCredentialArgs.opts.hasher).decodedPayload
75
85
  : credentialType === digitalCredential_1.CredentialType.VC || credentialType === digitalCredential_1.CredentialType.C
76
86
  ? ssi_types_1.CredentialMapper.toUniformCredential(addCredentialArgs.raw)
77
87
  : ssi_types_1.CredentialMapper.toUniformPresentation(addCredentialArgs.raw);
@@ -1 +1 @@
1
- {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MappingUtils.js","sourceRoot":"","sources":["../../../src/utils/digitalCredential/MappingUtils.ts"],"names":[],"mappings":";;;AAEA,mDAS4B;AAC5B,uFAKwD;AACxD,yCAAgD;AAEhD,SAAS,uBAAuB,CAAC,GAAW;IAC1C,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAA;IACzC,IAAI,CAAC,WAAW,EAAE;QAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,EAAE,CAAC,CAAA;KACzD;IAED,MAAM,QAAQ,GAAG,4BAAgB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IACvD,MAAM,YAAY,GAAG,4BAAgB,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IAC/D,MAAM,cAAc,GAAG,4BAAgB,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;IAEnE,IAAI,YAAY,EAAE;QAChB,OAAO,QAAQ,CAAC,CAAC,CAAC,kCAAc,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAc,CAAC,CAAC,CAAA;KACvD;SAAM,IAAI,cAAc,EAAE;QACzB,OAAO,QAAQ,CAAC,CAAC,CAAC,kCAAc,CAAC,EAAE,CAAC,CAAC,CAAC,kCAAc,CAAC,CAAC,CAAA;KACvD;IACD,MAAM,IAAI,KAAK,CAAC,kDAAkD,GAAG,EAAE,CAAC,CAAA;AAC1E,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAI,4BAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,4BAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;QAC9E,OAAO,GAAG,CAAA;KACX;IACD,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;KACvB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,mCAAmC,GAAG,EAAE,CAAC,CAAA;KAC1D;AACH,CAAC;AAED,SAAS,iCAAiC,CAAC,cAA8B;IACvE,QAAQ,cAAc,EAAE;QACtB;YACE,OAAO,4CAAwB,CAAC,OAAO,CAAA;QACzC;YACE,OAAO,4CAAwB,CAAC,GAAG,CAAA;QACrC;YACE,OAAO,4CAAwB,CAAC,MAAM,CAAA;QACxC;YACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,cAAc,EAAE,CAAC,CAAA;KACtE;AACH,CAAC;AAED,SAAS,YAAY,CAAC,eAA0G;IAC9H,IAAI,gBAAgB,IAAI,eAAe,EAAE;QACvC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,CAAA;KAChD;SAAM,IAAI,YAAY,IAAI,eAAe,EAAE;QAC1C,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAA;KAC5C;SAAM,IAAI,KAAK,IAAI,eAAe,EAAE;QACnC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAA;KACrC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,SAAS,WAAW,CAAC,eAA0G;IAC7H,IAAI,cAAc,IAAI,eAAe,EAAE;QACrC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,CAAA;KAC9C;SAAM,IAAI,eAAe,CAAC,KAAK,IAAI,4BAAgB,CAAC,aAAa,CAAC,eAAkE,CAAC,EAAE;QACtI,OAAO,IAAI,IAAI,CAAC,4BAAgB,CAAC,aAAa,CAAC,eAAkE,CAAE,CAAC,OAAO,CAAC,CAAA;KAC7H;SAAM,IAAI,WAAW,IAAI,eAAe,EAAE;QACzC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;KAC9C;SAAM,IAAI,KAAK,IAAI,eAAe,EAAE;QACnC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;KAC/C;SAAM,IAAI,KAAK,IAAI,eAAe,EAAE;QACnC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;KAC/C;IAED,OAAO,SAAS,CAAA;AAClB,CAAC;AAEM,MAAM,8CAA8C,GAAG,CAAC,iBAAoC,EAAiC,EAAE;;IACpI,MAAM,cAAc,GAAmB,uBAAuB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACrF,MAAM,cAAc,GAAmB,4BAAgB,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACjG,IAAI,cAAc,qCAA6B,IAAI,CAAC,CAAA,MAAA,iBAAiB,CAAC,IAAI,0CAAE,MAAM,CAAA,EAAE;QAClF,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAA;KACzE;IACD,MAAM,eAAe,GACnB,cAAc,qCAA6B;QACzC,CAAC,CAAC,IAAA,yBAAa,EAAC,iBAAiB,CAAC,GAAG,EAAE,iBAAiB,CAAC,IAAK,CAAC,MAAO,CAAC,CAAC,cAAc;QACtF,CAAC,CAAC,cAAc,KAAK,kCAAc,CAAC,EAAE,IAAI,cAAc,KAAK,kCAAc,CAAC,CAAC;YAC7E,CAAC,CAAC,4BAAgB,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,GAAG,CAAC;YAC7D,CAAC,CAAC,4BAAgB,CAAC,qBAAqB,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAA;IACnE,MAAM,QAAQ,GAAqB,WAAW,CAAC,eAAe,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAqB,YAAY,CAAC,eAAe,CAAC,CAAA;IACjE,uCACK,iBAAiB,KACpB,cAAc,EACd,cAAc,EAAE,iCAAiC,CAAC,cAAc,CAAC,EACjE,SAAS,EAAE,IAAI,IAAI,EAAE,EACrB,IAAI,EAAE,IAAA,wBAAgB,EAAC,iBAAiB,CAAC,GAAG,CAAC,EAC7C,eAAe,EAAE,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAChD,QAAQ;QACR,SAAS,EACT,aAAa,EAAE,IAAI,IAAI,EAAE,IAC1B;AACH,CAAC,CAAA;AAzBY,QAAA,8CAA8C,kDAyB1D;AAEM,MAAM,qBAAqB,GAAG,CAAC,gBAAyC,EAAqB,EAAE;IACpG,yBACK,gBAAgB,EACpB;AACH,CAAC,CAAA;AAJY,QAAA,qBAAqB,yBAIjC;AAEM,MAAM,sBAAsB,GAAG,CAAC,kBAAkD,EAAuB,EAAE;IAChH,OAAO,kBAAkB,CAAC,GAAG,CAAC,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,gBAAgB,CAAC,CAAC,CAAA;AAC9F,CAAC,CAAA;AAFY,QAAA,sBAAsB,0BAElC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.data-store",
3
- "version": "0.18.2-unstable.89+7520c543",
3
+ "version": "0.18.2-unstable.95+a02b1a48",
4
4
  "source": "src/index.ts",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -13,8 +13,8 @@
13
13
  "typeorm-postgres:migration:run": "pnpm run typeorm -- migration:run -c migration-postgres"
14
14
  },
15
15
  "dependencies": {
16
- "@sphereon/ssi-sdk.core": "0.18.2-unstable.89+7520c543",
17
- "@sphereon/ssi-types": "0.18.2-unstable.89+7520c543",
16
+ "@sphereon/ssi-sdk.core": "0.18.2-unstable.95+a02b1a48",
17
+ "@sphereon/ssi-types": "0.18.2-unstable.95+a02b1a48",
18
18
  "@veramo/core": "4.2.0",
19
19
  "@veramo/utils": "4.2.0",
20
20
  "class-validator": "^0.14.0",
@@ -44,5 +44,5 @@
44
44
  "PostgreSQL",
45
45
  "Contact Store"
46
46
  ],
47
- "gitHead": "7520c5433f4045401619b638b8e425434247c45c"
47
+ "gitHead": "a02b1a483a716d6b2ebd31e865b7a607a83a3704"
48
48
  }
@@ -9,8 +9,9 @@ import {
9
9
  NonPersistedDigitalCredential,
10
10
  } from '../types/digitalCredential/digitalCredential'
11
11
  import { computeEntryHash } from '@veramo/utils'
12
- import { AddDigitalCredentialArgs } from '../types/digitalCredential/IAbstractDigitalCredentialStore'
12
+ import { AddCredentialArgs } from '../types/digitalCredential/IAbstractDigitalCredentialStore'
13
13
  import { nonPersistedDigitalCredentialEntityFromAddArgs } from '../utils/digitalCredential/MappingUtils'
14
+ import { createHash } from 'crypto'
14
15
 
15
16
  describe('Database entities tests', (): void => {
16
17
  let dbConnection: DataSource
@@ -36,7 +37,7 @@ describe('Database entities tests', (): void => {
36
37
  it('should save digital credential to database', async (): Promise<void> => {
37
38
  const rawCredential: string =
38
39
  'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw'
39
- const digitalCredential: AddDigitalCredentialArgs = {
40
+ const digitalCredential: AddCredentialArgs = {
40
41
  raw: rawCredential,
41
42
  issuerCorrelationType: CredentialCorrelationType.DID,
42
43
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -238,6 +239,9 @@ describe('Database entities tests', (): void => {
238
239
  issuerCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
239
240
  subjectCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
240
241
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
242
+ opts: {
243
+ hasher: (data, algorithm) => createHash(algorithm).update(data).digest(),
244
+ },
241
245
  })
242
246
  expect(digitalCredential.credentialType).toEqual(CredentialType.VC)
243
247
  expect(digitalCredential.issuedAt).toEqual(new Date('2023-10-24T12:45:32.000Z'))
@@ -2,13 +2,16 @@ import { DataSource } from 'typeorm'
2
2
  import { DataStoreDigitalCredentialMigrations } from '../migrations'
3
3
  import { DataStoreDigitalCredentialEntities } from '../index'
4
4
  import { DigitalCredentialStore } from '../digitalCredential/DigitalCredentialStore'
5
- import { CredentialCorrelationType, CredentialStateType, CredentialType, DigitalCredential } from '../types/digitalCredential/digitalCredential'
6
5
  import {
7
- AddDigitalCredentialArgs,
8
- GetDigitalCredentialsArgs,
9
- GetDigitalCredentialsResponse,
10
- } from '../types/digitalCredential/IAbstractDigitalCredentialStore'
6
+ CredentialCorrelationType,
7
+ CredentialDocumentFormat,
8
+ CredentialStateType,
9
+ CredentialType,
10
+ DigitalCredential,
11
+ } from '../types/digitalCredential/digitalCredential'
12
+ import { AddCredentialArgs, GetCredentialsArgs, GetCredentialsResponse } from '../types/digitalCredential/IAbstractDigitalCredentialStore'
11
13
  import { IVerifiablePresentation } from '@sphereon/ssi-types'
14
+ import { createHash } from 'crypto'
12
15
 
13
16
  describe('Database entities tests', (): void => {
14
17
  let dbConnection: DataSource
@@ -36,7 +39,7 @@ describe('Database entities tests', (): void => {
36
39
  it('should store digital credential', async (): Promise<void> => {
37
40
  const rawCredential: string =
38
41
  'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw'
39
- const digitalCredential: AddDigitalCredentialArgs = {
42
+ const digitalCredential: AddCredentialArgs = {
40
43
  raw: rawCredential,
41
44
  issuerCorrelationType: CredentialCorrelationType.DID,
42
45
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -45,12 +48,27 @@ describe('Database entities tests', (): void => {
45
48
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
46
49
  }
47
50
 
48
- const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addDigitalCredential(digitalCredential)
51
+ const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addCredential(digitalCredential)
49
52
  expect(savedDigitalCredential).toBeDefined()
50
53
  })
51
54
 
55
+ it('should throw error on storing digital credential sd_jwt with not-provided hasher', async (): Promise<void> => {
56
+ const digitalCredential: AddCredentialArgs = {
57
+ raw: 'eyJhbGciOiJFZERTQSIsInR5cCI6InZjK3NkLWp3dCIsImtpZCI6IiN6Nk1rdHF0WE5HOENEVVk5UHJydG9TdEZ6ZUNuaHBNbWd4WUwxZ2lrY1czQnp2TlcifQ.eyJ2Y3QiOiJJZGVudGl0eUNyZWRlbnRpYWwiLCJmYW1pbHlfbmFtZSI6IkRvZSIsInBob25lX251bWJlciI6IisxLTIwMi01NTUtMDEwMSIsImFkZHJlc3MiOnsic3RyZWV0X2FkZHJlc3MiOiIxMjMgTWFpbiBTdCIsImxvY2FsaXR5IjoiQW55dG93biIsIl9zZCI6WyJOSm5tY3QwQnFCTUUxSmZCbEM2alJRVlJ1ZXZwRU9OaVl3N0E3TUh1SnlRIiwib201Wnp0WkhCLUdkMDBMRzIxQ1ZfeE00RmFFTlNvaWFPWG5UQUpOY3pCNCJdfSwiY25mIjp7Imp3ayI6eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5IiwieCI6Im9FTlZzeE9VaUg1NFg4d0pMYVZraWNDUmswMHdCSVE0c1JnYms1NE44TW8ifX0sImlzcyI6ImRpZDprZXk6ejZNa3RxdFhORzhDRFVZOVBycnRvU3RGemVDbmhwTW1neFlMMWdpa2NXM0J6dk5XIiwiaWF0IjoxNjk4MTUxNTMyLCJfc2RfYWxnIjoic2hhLTI1NiIsIl9zZCI6WyIxQ3VyMmsyQTJvSUI1Q3NoU0lmX0FfS2ctbDI2dV9xS3VXUTc5UDBWZGFzIiwiUjF6VFV2T1lIZ2NlcGowakh5cEdIejlFSHR0VktmdDB5c3diYzlFVFBiVSIsImVEcVFwZFRYSlhiV2hmLUVzSTd6dzVYNk92WW1GTi1VWlFRTWVzWHdLUHciLCJwZERrMl9YQUtIbzdnT0Fmd0YxYjdPZENVVlRpdDJrSkhheFNFQ1E5eGZjIiwicHNhdUtVTldFaTA5bnUzQ2w4OXhLWGdtcFdFTlpsNXV5MU4xbnluX2pNayIsInNOX2dlMHBIWEY2cW1zWW5YMUE5U2R3SjhjaDhhRU5reGJPRHNUNzRZd0kiXX0.coOK8NzJmEWz4qx-qRhjo-RK7aejrSkQM9La9Cw3eWmzcja9DXrkBoQZKbIJtNoSzSPLjwK2V71W78z0miZsDQ~WyJzYWx0IiwiaXNfb3Zlcl82NSIsdHJ1ZV0~WyJzYWx0IiwiaXNfb3Zlcl8yMSIsdHJ1ZV0~WyJzYWx0IiwiZW1haWwiLCJqb2huZG9lQGV4YW1wbGUuY29tIl0~WyJzYWx0IiwiY291bnRyeSIsIlVTIl0~WyJzYWx0IiwiZ2l2ZW5fbmFtZSIsIkpvaG4iXQ~eyJhbGciOiJFZERTQSIsInR5cCI6ImtiK2p3dCJ9.eyJpYXQiOjE2OTgxNTE1MzIsIm5vbmNlIjoic2FsdCIsImF1ZCI6ImRpZDprZXk6elVDNzRWRXFxaEVIUWNndjR6YWdTUGtxRkp4dU5XdW9CUEtqSnVIRVRFVWVITG9TcVd0OTJ2aVNzbWFXank4MnkiLCJfc2RfaGFzaCI6Ii1kTUd4OGZhUnpOQm91a2EwU0R6V2JkS3JYckw1TFVmUlNQTHN2Q2xPMFkifQ.TQQLqc4ZzoKjQfAghAzC_4aaU3KCS8YqzxAJtzT124guzkv9XSHtPN8d3z181_v-ca2ATXjTRoRciozitE6wBA',
58
+ issuerCorrelationType: CredentialCorrelationType.DID,
59
+ subjectCorrelationType: CredentialCorrelationType.DID,
60
+ issuerCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
61
+ subjectCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
62
+ tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
63
+ }
64
+
65
+ await expect(digitalCredentialStore.addCredential(digitalCredential)).rejects.toThrowError(
66
+ 'No hasher function is provided for SD_JWT credential.'
67
+ )
68
+ })
69
+
52
70
  it('should get all digital credentials', async (): Promise<void> => {
53
- const addCredentialArgs1: AddDigitalCredentialArgs = {
71
+ const addCredentialArgs1: AddCredentialArgs = {
54
72
  raw: 'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw',
55
73
  issuerCorrelationType: CredentialCorrelationType.DID,
56
74
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -58,7 +76,7 @@ describe('Database entities tests', (): void => {
58
76
  subjectCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
59
77
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
60
78
  }
61
- const addCredentialArgs2: AddDigitalCredentialArgs = {
79
+ const addCredentialArgs2: AddCredentialArgs = {
62
80
  raw: 'eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE3MDkyMTQxNzgsInZjIjp7IkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJHdWVzdENyZWRlbnRpYWwiXSwiY3JlZGVudGlhbFN1YmplY3QiOnsiZmlyc3ROYW1lIjoiUyIsImxhc3ROYW1lIjoiSyIsIkUtbWFpbCI6IiIsInR5cGUiOiJTcGhlcmVvbiBHdWVzdCIsImlkIjoiZGlkOmp3azpleUpoYkdjaU9pSkZVekkxTmtzaUxDSjFjMlVpT2lKemFXY2lMQ0pyZEhraU9pSkZReUlzSW1OeWRpSTZJbk5sWTNBeU5UWnJNU0lzSW5naU9pSldjWGhIZVhWUk5WUTBXVEpzZGpKSFkybE9TaTFEYURCVWFGVm1kVk5RWm0wdFJYVlNZbGRNWlVOM0lpd2llU0k2SW01T1FWQnBiR0V5VDBRNGRXOXBXbk5LVm1aUmFrbDJTMUZUZWxBelFqVlBXbVZSYkVoQ1VUbHliVFFpZlEifX0sIkBjb250ZXh0IjpbImh0dHBzOi8vd3d3LnczLm9yZy8yMDE4L2NyZWRlbnRpYWxzL3YxIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJHdWVzdENyZWRlbnRpYWwiXSwiZXhwaXJhdGlvbkRhdGUiOiIyMDI0LTAyLTI5VDEzOjQyOjU4LjgzNVoiLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiRS1tYWlsIjoiIiwidHlwZSI6IlNwaGVyZW9uIEd1ZXN0IiwiaWQiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOa3NpTENKMWMyVWlPaUp6YVdjaUxDSnJkSGtpT2lKRlF5SXNJbU55ZGlJNkluTmxZM0F5TlRack1TSXNJbmdpT2lKV2NYaEhlWFZSTlZRMFdUSnNkakpIWTJsT1NpMURhREJVYUZWbWRWTlFabTB0UlhWU1lsZE1aVU4zSWl3aWVTSTZJbTVPUVZCcGJHRXlUMFE0ZFc5cFduTktWbVpSYWtsMlMxRlRlbEF6UWpWUFdtVlJiRWhDVVRseWJUUWlmUSJ9LCJpc3N1ZXIiOiJkaWQ6andrOmV5SmhiR2NpT2lKRlV6STFOaUlzSW5WelpTSTZJbk5wWnlJc0ltdDBlU0k2SWtWRElpd2lZM0oySWpvaVVDMHlOVFlpTENKNElqb2lWRWN5U0RKNE1tUlhXRTR6ZFVOeFduQnhSakY1YzBGUVVWWkVTa1ZPWDBndFEwMTBZbWRxWWkxT1p5SXNJbmtpT2lJNVRUaE9lR1F3VUU0eU1rMDViRkJFZUdSd1JIQnZWRXg2TVRWM1pubGFTbk0yV21oTFNWVktNek00SW4wIiwiaXNzdWFuY2VEYXRlIjoiMjAyNC0wMi0yMlQxMzo0Mjo1OC44MzVaIiwic3ViIjoiZGlkOmp3azpleUpoYkdjaU9pSkZVekkxTmtzaUxDSjFjMlVpT2lKemFXY2lMQ0pyZEhraU9pSkZReUlzSW1OeWRpSTZJbk5sWTNBeU5UWnJNU0lzSW5naU9pSldjWGhIZVhWUk5WUTBXVEpzZGpKSFkybE9TaTFEYURCVWFGVm1kVk5RWm0wdFJYVlNZbGRNWlVOM0lpd2llU0k2SW01T1FWQnBiR0V5VDBRNGRXOXBXbk5LVm1aUmFrbDJTMUZUZWxBelFqVlBXbVZSYkVoQ1VUbHliVFFpZlEiLCJuYmYiOjE3MDg2MDkzNzgsImlzcyI6ImRpZDpqd2s6ZXlKaGJHY2lPaUpGVXpJMU5pSXNJblZ6WlNJNkluTnBaeUlzSW10MGVTSTZJa1ZESWl3aVkzSjJJam9pVUMweU5UWWlMQ0o0SWpvaVZFY3lTREo0TW1SWFdFNHpkVU54V25CeFJqRjVjMEZRVVZaRVNrVk9YMGd0UTAxMFltZHFZaTFPWnlJc0lua2lPaUk1VFRoT2VHUXdVRTR5TWswNWJGQkVlR1J3UkhCdlZFeDZNVFYzWm5sYVNuTTJXbWhMU1ZWS016TTRJbjAifQ.GgLRWHO674wu6QF_xUGbCi_2zDD8jNf_xoWNvH5K605xvBoz6qKx0ndmxLeGQWWUA-4VuAkznf3ROcp9wpgbEw',
63
81
  issuerCorrelationType: CredentialCorrelationType.DID,
64
82
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -67,17 +85,17 @@ describe('Database entities tests', (): void => {
67
85
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
68
86
  }
69
87
 
70
- const digitalCredential1: DigitalCredential = await digitalCredentialStore.addDigitalCredential(addCredentialArgs1)
88
+ const digitalCredential1: DigitalCredential = await digitalCredentialStore.addCredential(addCredentialArgs1)
71
89
  expect(digitalCredential1).toBeDefined()
72
- const digitalCredential2: DigitalCredential = await digitalCredentialStore.addDigitalCredential(addCredentialArgs2)
90
+ const digitalCredential2: DigitalCredential = await digitalCredentialStore.addCredential(addCredentialArgs2)
73
91
  expect(digitalCredential2).toBeDefined()
74
92
 
75
- const result: GetDigitalCredentialsResponse = await digitalCredentialStore.getDigitalCredentials()
93
+ const result: GetCredentialsResponse = await digitalCredentialStore.getCredentials()
76
94
  expect(result.total).toEqual(2)
77
95
  })
78
96
 
79
97
  it('should get digital credentials by filters and pagination', async (): Promise<void> => {
80
- const addCredentialArgs1: AddDigitalCredentialArgs = {
98
+ const addCredentialArgs1: AddCredentialArgs = {
81
99
  raw: 'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw',
82
100
  issuerCorrelationType: CredentialCorrelationType.DID,
83
101
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -124,7 +142,7 @@ describe('Database entities tests', (): void => {
124
142
  verificationMethod: 'did:example:holder#key-1',
125
143
  },
126
144
  }
127
- const addCredentialArgs2: AddDigitalCredentialArgs = {
145
+ const addCredentialArgs2: AddCredentialArgs = {
128
146
  raw: JSON.stringify(sampleVP),
129
147
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
130
148
  issuerCorrelationType: CredentialCorrelationType.DID,
@@ -132,42 +150,49 @@ describe('Database entities tests', (): void => {
132
150
  subjectCorrelationType: CredentialCorrelationType.DID,
133
151
  subjectCorrelationId: 'did:example:holder',
134
152
  }
135
- const addCredentialArgs3: AddDigitalCredentialArgs = {
153
+ const addCredentialArgs3: AddCredentialArgs = {
136
154
  raw: 'eyJhbGciOiJFZERTQSIsInR5cCI6InZjK3NkLWp3dCIsImtpZCI6IiN6Nk1rdHF0WE5HOENEVVk5UHJydG9TdEZ6ZUNuaHBNbWd4WUwxZ2lrY1czQnp2TlcifQ.eyJ2Y3QiOiJJZGVudGl0eUNyZWRlbnRpYWwiLCJmYW1pbHlfbmFtZSI6IkRvZSIsInBob25lX251bWJlciI6IisxLTIwMi01NTUtMDEwMSIsImFkZHJlc3MiOnsic3RyZWV0X2FkZHJlc3MiOiIxMjMgTWFpbiBTdCIsImxvY2FsaXR5IjoiQW55dG93biIsIl9zZCI6WyJOSm5tY3QwQnFCTUUxSmZCbEM2alJRVlJ1ZXZwRU9OaVl3N0E3TUh1SnlRIiwib201Wnp0WkhCLUdkMDBMRzIxQ1ZfeE00RmFFTlNvaWFPWG5UQUpOY3pCNCJdfSwiY25mIjp7Imp3ayI6eyJrdHkiOiJPS1AiLCJjcnYiOiJFZDI1NTE5IiwieCI6Im9FTlZzeE9VaUg1NFg4d0pMYVZraWNDUmswMHdCSVE0c1JnYms1NE44TW8ifX0sImlzcyI6ImRpZDprZXk6ejZNa3RxdFhORzhDRFVZOVBycnRvU3RGemVDbmhwTW1neFlMMWdpa2NXM0J6dk5XIiwiaWF0IjoxNjk4MTUxNTMyLCJfc2RfYWxnIjoic2hhLTI1NiIsIl9zZCI6WyIxQ3VyMmsyQTJvSUI1Q3NoU0lmX0FfS2ctbDI2dV9xS3VXUTc5UDBWZGFzIiwiUjF6VFV2T1lIZ2NlcGowakh5cEdIejlFSHR0VktmdDB5c3diYzlFVFBiVSIsImVEcVFwZFRYSlhiV2hmLUVzSTd6dzVYNk92WW1GTi1VWlFRTWVzWHdLUHciLCJwZERrMl9YQUtIbzdnT0Fmd0YxYjdPZENVVlRpdDJrSkhheFNFQ1E5eGZjIiwicHNhdUtVTldFaTA5bnUzQ2w4OXhLWGdtcFdFTlpsNXV5MU4xbnluX2pNayIsInNOX2dlMHBIWEY2cW1zWW5YMUE5U2R3SjhjaDhhRU5reGJPRHNUNzRZd0kiXX0.coOK8NzJmEWz4qx-qRhjo-RK7aejrSkQM9La9Cw3eWmzcja9DXrkBoQZKbIJtNoSzSPLjwK2V71W78z0miZsDQ~WyJzYWx0IiwiaXNfb3Zlcl82NSIsdHJ1ZV0~WyJzYWx0IiwiaXNfb3Zlcl8yMSIsdHJ1ZV0~WyJzYWx0IiwiZW1haWwiLCJqb2huZG9lQGV4YW1wbGUuY29tIl0~WyJzYWx0IiwiY291bnRyeSIsIlVTIl0~WyJzYWx0IiwiZ2l2ZW5fbmFtZSIsIkpvaG4iXQ~eyJhbGciOiJFZERTQSIsInR5cCI6ImtiK2p3dCJ9.eyJpYXQiOjE2OTgxNTE1MzIsIm5vbmNlIjoic2FsdCIsImF1ZCI6ImRpZDprZXk6elVDNzRWRXFxaEVIUWNndjR6YWdTUGtxRkp4dU5XdW9CUEtqSnVIRVRFVWVITG9TcVd0OTJ2aVNzbWFXank4MnkiLCJfc2RfaGFzaCI6Ii1kTUd4OGZhUnpOQm91a2EwU0R6V2JkS3JYckw1TFVmUlNQTHN2Q2xPMFkifQ.TQQLqc4ZzoKjQfAghAzC_4aaU3KCS8YqzxAJtzT124guzkv9XSHtPN8d3z181_v-ca2ATXjTRoRciozitE6wBA',
137
155
  issuerCorrelationType: CredentialCorrelationType.DID,
138
156
  subjectCorrelationType: CredentialCorrelationType.DID,
139
157
  issuerCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
140
158
  subjectCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
141
159
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
160
+ opts: {
161
+ hasher: (data, algorithm) => createHash(algorithm).update(data).digest(),
162
+ },
142
163
  }
143
164
 
144
- const savedDigitalCredential1: DigitalCredential = await digitalCredentialStore.addDigitalCredential(addCredentialArgs1)
165
+ const savedDigitalCredential1: DigitalCredential = await digitalCredentialStore.addCredential(addCredentialArgs1)
145
166
  expect(savedDigitalCredential1).toBeDefined()
146
- const savedDigitalCredential2: DigitalCredential = await digitalCredentialStore.addDigitalCredential(addCredentialArgs2)
167
+ const savedDigitalCredential2: DigitalCredential = await digitalCredentialStore.addCredential(addCredentialArgs2)
147
168
  expect(savedDigitalCredential2).toBeDefined()
148
- const savedDigitalCredential3: DigitalCredential = await digitalCredentialStore.addDigitalCredential(addCredentialArgs3)
169
+ const savedDigitalCredential3: DigitalCredential = await digitalCredentialStore.addCredential(addCredentialArgs3)
149
170
  expect(savedDigitalCredential3).toBeDefined()
150
- const args1: GetDigitalCredentialsArgs = {
171
+ const args1: GetCredentialsArgs = {
151
172
  filter: [{ credentialType: CredentialType.VP }],
152
173
  }
153
- const result1: GetDigitalCredentialsResponse = await digitalCredentialStore.getDigitalCredentials(args1)
174
+ const result1: GetCredentialsResponse = await digitalCredentialStore.getCredentials(args1)
154
175
  expect(result1.total).toEqual(1)
155
- expect(result1.hasMore).toEqual(true)
156
- const args2: GetDigitalCredentialsArgs = {
157
- skip: 1,
158
- take: 10,
176
+ const args2: GetCredentialsArgs = {
177
+ offset: 1,
178
+ limit: 10,
159
179
  }
160
- const result2: GetDigitalCredentialsResponse = await digitalCredentialStore.getDigitalCredentials(args2)
180
+ const result2: GetCredentialsResponse = await digitalCredentialStore.getCredentials(args2)
161
181
  expect(result2.data.length).toEqual(2)
162
182
  expect(result2.total).toEqual(3)
163
- expect(result2.hasMore).toEqual(false)
183
+ const args3: GetCredentialsArgs = {
184
+ order: 'createdAt.DESC',
185
+ }
186
+ const result3: GetCredentialsResponse = await digitalCredentialStore.getCredentials(args3)
187
+ expect(result3.data.length).toEqual(3)
188
+ expect(result3.data[1].documentFormat).toEqual(CredentialDocumentFormat.JSON_LD)
164
189
  })
165
190
 
166
191
  it('should return no digital credentials if filter does not match', async (): Promise<void> => {
167
- const args: GetDigitalCredentialsArgs = {
192
+ const args: GetCredentialsArgs = {
168
193
  filter: [{ issuerCorrelationId: 'unknown_id' }],
169
194
  }
170
- const result: GetDigitalCredentialsResponse = await digitalCredentialStore.getDigitalCredentials(args)
195
+ const result: GetCredentialsResponse = await digitalCredentialStore.getCredentials(args)
171
196
 
172
197
  expect(result.data.length).toEqual(0)
173
198
  expect(result.total).toEqual(0)
@@ -176,7 +201,7 @@ describe('Database entities tests', (): void => {
176
201
  it('should delete stored digital credential', async (): Promise<void> => {
177
202
  const rawCredential: string =
178
203
  'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw'
179
- const digitalCredential: AddDigitalCredentialArgs = {
204
+ const digitalCredential: AddCredentialArgs = {
180
205
  raw: rawCredential,
181
206
  issuerCorrelationType: CredentialCorrelationType.DID,
182
207
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -185,20 +210,20 @@ describe('Database entities tests', (): void => {
185
210
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
186
211
  }
187
212
 
188
- const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addDigitalCredential(digitalCredential)
189
- let result = await digitalCredentialStore.removeDigitalCredential({ id: savedDigitalCredential.id })
213
+ const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addCredential(digitalCredential)
214
+ let result = await digitalCredentialStore.removeCredential({ id: savedDigitalCredential.id })
190
215
  expect(result).toEqual(true)
191
216
  })
192
217
 
193
218
  it('should not delete stored digital credential if id not found', async (): Promise<void> => {
194
- const result = await digitalCredentialStore.removeDigitalCredential({ id: 'unknown_id' })
219
+ const result = await digitalCredentialStore.removeCredential({ id: 'unknown_id' })
195
220
  expect(result).toEqual(false)
196
221
  })
197
222
 
198
223
  it('should update stored digital credential', async (): Promise<void> => {
199
224
  const rawCredential: string =
200
225
  'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw'
201
- const digitalCredential: AddDigitalCredentialArgs = {
226
+ const digitalCredential: AddCredentialArgs = {
202
227
  raw: rawCredential,
203
228
  issuerCorrelationType: CredentialCorrelationType.DID,
204
229
  subjectCorrelationType: CredentialCorrelationType.DID,
@@ -207,12 +232,58 @@ describe('Database entities tests', (): void => {
207
232
  tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
208
233
  }
209
234
 
210
- const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addDigitalCredential(digitalCredential)
235
+ const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addCredential(digitalCredential)
236
+
237
+ const result = await digitalCredentialStore.updateCredentialState({
238
+ id: savedDigitalCredential.id,
239
+ verifiedState: CredentialStateType.VERIFIED,
240
+ verifiedAt: new Date(),
241
+ })
242
+ expect(result.verifiedState).toEqual(CredentialStateType.VERIFIED)
243
+ })
244
+
245
+ it('should throw exception on updating stored digital credential to revoked', async (): Promise<void> => {
246
+ const rawCredential: string =
247
+ 'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw'
248
+ const digitalCredential: AddCredentialArgs = {
249
+ raw: rawCredential,
250
+ issuerCorrelationType: CredentialCorrelationType.DID,
251
+ subjectCorrelationType: CredentialCorrelationType.DID,
252
+ issuerCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
253
+ subjectCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
254
+ tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
255
+ }
256
+
257
+ const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addCredential(digitalCredential)
258
+
259
+ await expect(
260
+ digitalCredentialStore.updateCredentialState({
261
+ id: savedDigitalCredential.id,
262
+ verifiedState: CredentialStateType.REVOKED,
263
+ })
264
+ ).rejects.toThrowError('No revokedAt param is provided.')
265
+ })
266
+
267
+ it('should revoke stored digital credential', async (): Promise<void> => {
268
+ const rawCredential: string =
269
+ 'eyJraWQiOiJkaWQ6a2V5Ono2TWtyaGt5M3B1c20yNk1laUZhWFUzbjJuZWtyYW13RlVtZ0dyZUdHa0RWNnpRaiN6Nk1rcmhreTNwdXNtMjZNZWlGYVhVM24ybmVrcmFtd0ZVbWdHcmVHR2tEVjZ6UWoiLCJhbGciOiJFZERTQSIsInR5cCI6IkpXVCJ9.eyJ2YyI6eyJAY29udGV4dCI6WyJodHRwczovL3d3dy53My5vcmcvMjAxOC9jcmVkZW50aWFscy92MSIsImh0dHBzOi8vc3BoZXJlb24tb3BlbnNvdXJjZS5naXRodWIuaW8vc3NpLW1vYmlsZS13YWxsZXQvY29udGV4dC9zcGhlcmVvbi13YWxsZXQtaWRlbnRpdHktdjEuanNvbmxkIl0sInR5cGUiOlsiVmVyaWZpYWJsZUNyZWRlbnRpYWwiLCJTcGhlcmVvbldhbGxldElkZW50aXR5Q3JlZGVudGlhbCJdLCJjcmVkZW50aWFsU3ViamVjdCI6eyJmaXJzdE5hbWUiOiJTIiwibGFzdE5hbWUiOiJLIiwiZW1haWxBZGRyZXNzIjoic0BrIn19LCJzdWIiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJqdGkiOiJ1cm46dXVpZDpkZGE3YmYyNC04ZTdhLTQxZjgtYjY2Yy1hNDhkYmM1YjEwZmEiLCJuYmYiOjE3MDg0NDA4MDgsImlzcyI6ImRpZDprZXk6ejZNa3Joa3kzcHVzbTI2TWVpRmFYVTNuMm5la3JhbXdGVW1nR3JlR0drRFY2elFqIn0.G0M84XVAxSmzGY-NQuB9NBofNrINSn6lvxW6761Vlq6ypvYgtc2xNdpiRmw8ryVNfnpzrr4Z5cB1RlrC05rJAw'
270
+ const digitalCredential: AddCredentialArgs = {
271
+ raw: rawCredential,
272
+ issuerCorrelationType: CredentialCorrelationType.DID,
273
+ subjectCorrelationType: CredentialCorrelationType.DID,
274
+ issuerCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
275
+ subjectCorrelationId: 'did:key:z6Mkrhky3pusm26MeiFaXU3n2nekramwFUmgGreGGkDV6zQj',
276
+ tenantId: 'urn:uuid:nnag4b43-1e7a-98f8-a32c-a48dbc5b10mj',
277
+ }
211
278
 
212
- const result = await digitalCredentialStore.updateDigitalCredentialState({
279
+ const savedDigitalCredential: DigitalCredential = await digitalCredentialStore.addCredential(digitalCredential)
280
+ const currentDate = new Date()
281
+ const result = await digitalCredentialStore.updateCredentialState({
213
282
  id: savedDigitalCredential.id,
214
283
  verifiedState: CredentialStateType.REVOKED,
284
+ revokedAt: currentDate,
215
285
  })
216
286
  expect(result.verifiedState).toEqual(CredentialStateType.REVOKED)
287
+ expect(result.revokedAt).toEqual(currentDate)
217
288
  })
218
289
  })
@@ -1,17 +1,17 @@
1
1
  import {
2
- AddDigitalCredentialArgs,
3
- GetDigitalCredentialArgs,
4
- GetDigitalCredentialsArgs,
5
- GetDigitalCredentialsResponse,
6
- RemoveDigitalCredentialArgs,
7
- UpdateDigitalCredentialStateArgs,
2
+ AddCredentialArgs,
3
+ GetCredentialArgs,
4
+ GetCredentialsArgs,
5
+ GetCredentialsResponse,
6
+ RemoveCredentialArgs,
7
+ UpdateCredentialStateArgs,
8
8
  } from '../types/digitalCredential/IAbstractDigitalCredentialStore'
9
9
  import { DigitalCredentialEntity } from '../entities/digitalCredential/DigitalCredentialEntity'
10
10
 
11
11
  export abstract class AbstractDigitalCredentialStore {
12
- abstract getDigitalCredential(args: GetDigitalCredentialArgs): Promise<DigitalCredentialEntity>
13
- abstract getDigitalCredentials(args?: GetDigitalCredentialsArgs): Promise<GetDigitalCredentialsResponse>
14
- abstract addDigitalCredential(args: AddDigitalCredentialArgs): Promise<DigitalCredentialEntity>
15
- abstract updateDigitalCredentialState(args: UpdateDigitalCredentialStateArgs): Promise<DigitalCredentialEntity>
16
- abstract removeDigitalCredential(args: RemoveDigitalCredentialArgs): Promise<boolean>
12
+ abstract getCredential(args: GetCredentialArgs): Promise<DigitalCredentialEntity>
13
+ abstract getCredentials(args?: GetCredentialsArgs): Promise<GetCredentialsResponse>
14
+ abstract addCredential(args: AddCredentialArgs): Promise<DigitalCredentialEntity>
15
+ abstract updateCredentialState(args: UpdateCredentialStateArgs): Promise<DigitalCredentialEntity>
16
+ abstract removeCredential(args: RemoveCredentialArgs): Promise<boolean>
17
17
  }
@@ -1,19 +1,20 @@
1
1
  import { AbstractDigitalCredentialStore } from './AbstractDigitalCredentialStore'
2
2
  import {
3
- AddDigitalCredentialArgs,
4
- GetDigitalCredentialArgs,
5
- GetDigitalCredentialsArgs,
6
- GetDigitalCredentialsResponse,
7
- RemoveDigitalCredentialArgs,
8
- UpdateDigitalCredentialStateArgs,
3
+ AddCredentialArgs,
4
+ GetCredentialArgs,
5
+ GetCredentialsArgs,
6
+ GetCredentialsResponse,
7
+ RemoveCredentialArgs,
8
+ UpdateCredentialStateArgs,
9
9
  } from '../types/digitalCredential/IAbstractDigitalCredentialStore'
10
10
  import { OrPromise } from '@sphereon/ssi-types'
11
- import { DataSource, Repository } from 'typeorm'
11
+ import { DataSource, FindOptionsOrder, Repository } from 'typeorm'
12
12
  import Debug from 'debug'
13
13
  import { DigitalCredentialEntity } from '../entities/digitalCredential/DigitalCredentialEntity'
14
14
  import { nonPersistedDigitalCredentialEntityFromAddArgs } from '../utils/digitalCredential/MappingUtils'
15
15
  import { FindOptionsWhere } from 'typeorm/find-options/FindOptionsWhere'
16
16
  import { CredentialStateType, DigitalCredential, NonPersistedDigitalCredential } from '../types/digitalCredential/digitalCredential'
17
+ import { parseAndValidateOrderOptions } from '../utils/SortingUtils'
17
18
 
18
19
  const debug: Debug.Debugger = Debug('sphereon:ssi-sdk:credential-store')
19
20
 
@@ -25,7 +26,7 @@ export class DigitalCredentialStore extends AbstractDigitalCredentialStore {
25
26
  this.dbConnection = dbConnection
26
27
  }
27
28
 
28
- addDigitalCredential = async (args: AddDigitalCredentialArgs): Promise<DigitalCredentialEntity> => {
29
+ addCredential = async (args: AddCredentialArgs): Promise<DigitalCredentialEntity> => {
29
30
  debug('Adding credential', args)
30
31
  const digitalCredentialEntityRepository: Repository<DigitalCredentialEntity> = (await this.dbConnection).getRepository(DigitalCredentialEntity)
31
32
  const credentialEntity: NonPersistedDigitalCredential = nonPersistedDigitalCredentialEntityFromAddArgs(args)
@@ -33,7 +34,7 @@ export class DigitalCredentialStore extends AbstractDigitalCredentialStore {
33
34
  return Promise.resolve(createdResult)
34
35
  }
35
36
 
36
- getDigitalCredential = async (args: GetDigitalCredentialArgs): Promise<DigitalCredentialEntity> => {
37
+ getCredential = async (args: GetCredentialArgs): Promise<DigitalCredentialEntity> => {
37
38
  const result: DigitalCredentialEntity | null = await (await this.dbConnection).getRepository(DigitalCredentialEntity).findOne({
38
39
  where: args,
39
40
  })
@@ -44,25 +45,22 @@ export class DigitalCredentialStore extends AbstractDigitalCredentialStore {
44
45
  return result
45
46
  }
46
47
 
47
- getDigitalCredentials = async (args?: GetDigitalCredentialsArgs): Promise<GetDigitalCredentialsResponse> => {
48
- const { filter = {}, skip, take, order = { createdAt: 'DESC' } } = args ?? {}
48
+ getCredentials = async (args?: GetCredentialsArgs): Promise<GetCredentialsResponse> => {
49
+ const { filter = {}, offset, limit, order = 'id.asc' } = args ?? {}
50
+ const sortOptions: FindOptionsOrder<DigitalCredentialEntity> = parseAndValidateOrderOptions<DigitalCredentialEntity>(order)
49
51
  const [result, total] = await (await this.dbConnection).getRepository(DigitalCredentialEntity).findAndCount({
50
52
  where: filter,
51
- skip,
52
- take,
53
- order,
53
+ skip: offset,
54
+ take: limit,
55
+ order: sortOptions,
54
56
  })
55
- if (!result) {
56
- return Promise.reject(Error(`No credential found for arg: ${args?.toString()}`))
57
- }
58
57
  return {
59
58
  data: result,
60
59
  total,
61
- hasMore: total > (skip || 0) + (take || 0),
62
60
  }
63
61
  }
64
62
 
65
- removeDigitalCredential = async (args: RemoveDigitalCredentialArgs): Promise<boolean> => {
63
+ removeCredential = async (args: RemoveCredentialArgs): Promise<boolean> => {
66
64
  if (!args) {
67
65
  return false
68
66
  }
@@ -86,14 +84,24 @@ export class DigitalCredentialStore extends AbstractDigitalCredentialStore {
86
84
  }
87
85
  }
88
86
 
89
- updateDigitalCredentialState = async (args: UpdateDigitalCredentialStateArgs): Promise<DigitalCredentialEntity> => {
87
+ updateCredentialState = async (args: UpdateCredentialStateArgs): Promise<DigitalCredentialEntity> => {
90
88
  const credentialRepository: Repository<DigitalCredentialEntity> = (await this.dbConnection).getRepository(DigitalCredentialEntity)
91
89
  const whereClause: Record<string, any> = {}
92
90
  if ('id' in args) {
93
91
  whereClause.id = args.id
94
- }
95
- if ('hash' in args) {
92
+ } else if ('hash' in args) {
96
93
  whereClause.hash = args.hash
94
+ } else {
95
+ throw new Error('No id or hash param is provided.')
96
+ }
97
+ if (!args.verifiedState) {
98
+ throw new Error('No verifiedState param is provided.')
99
+ }
100
+ if (args.verifiedState === CredentialStateType.REVOKED && !args.revokedAt) {
101
+ throw new Error('No revokedAt param is provided.')
102
+ }
103
+ if (args.verifiedState !== CredentialStateType.REVOKED && !args.verifiedAt) {
104
+ throw new Error('No verifiedAt param is provided.')
97
105
  }
98
106
  const credential: DigitalCredentialEntity | null = await credentialRepository.findOne({
99
107
  where: whereClause,
@@ -104,9 +112,9 @@ export class DigitalCredentialStore extends AbstractDigitalCredentialStore {
104
112
  }
105
113
  const updatedCredential: DigitalCredential = {
106
114
  ...credential,
107
- verifiedAt: args.verificationDate ?? new Date(),
115
+ ...(args.verifiedState !== CredentialStateType.REVOKED && { verifiedAt: args.verifiedAt }),
116
+ ...(args.verifiedState === CredentialStateType.REVOKED && { revokedAt: args.revokedAt }),
108
117
  lastUpdatedAt: new Date(),
109
- ...(args.verifiedState === CredentialStateType.REVOKED && { revocationDate: args.verificationDate ?? new Date() }),
110
118
  verifiedState: args.verifiedState,
111
119
  }
112
120
  debug('Updating credential', credential)
@@ -1,23 +1,23 @@
1
1
  import { CredentialCorrelationType, CredentialStateType, DigitalCredential } from './digitalCredential'
2
+ import { Hasher } from '@sphereon/ssi-types'
2
3
 
3
- export type GetDigitalCredentialArgs = { id: string } | { hash: string }
4
+ export type GetCredentialArgs = { id: string } | { hash: string }
4
5
 
5
6
  export type FindDigitalCredentialArgs = Array<Partial<DigitalCredential>>
6
7
 
7
- export type GetDigitalCredentialsArgs = {
8
+ export type GetCredentialsArgs = {
8
9
  filter?: FindDigitalCredentialArgs
9
- skip?: number
10
- take?: number
11
- order?: { [key in keyof DigitalCredential]: 'ASC' | 'DESC' }
10
+ offset?: number
11
+ limit?: number
12
+ order?: string
12
13
  }
13
14
 
14
- export type GetDigitalCredentialsResponse = {
15
- data: DigitalCredential[]
15
+ export type GetCredentialsResponse = {
16
+ data: Array<DigitalCredential>
16
17
  total: number
17
- hasMore: boolean
18
18
  }
19
19
 
20
- export type AddDigitalCredentialArgs = {
20
+ export type AddCredentialArgs = {
21
21
  raw: string
22
22
  issuerCorrelationType: CredentialCorrelationType
23
23
  subjectCorrelationType?: CredentialCorrelationType
@@ -25,10 +25,11 @@ export type AddDigitalCredentialArgs = {
25
25
  subjectCorrelationId?: string
26
26
  tenantId?: string
27
27
  state?: CredentialStateType
28
- verificationDate?: Date
29
- revocationDate?: Date
28
+ verifiedAt?: Date
29
+ revokedAt?: Date
30
+ opts?: { maxTimeSkewInMS?: number; hasher?: Hasher }
30
31
  }
31
32
 
32
- export type UpdateDigitalCredentialStateArgs = GetDigitalCredentialArgs & { verifiedState: CredentialStateType; verificationDate?: Date }
33
+ export type UpdateCredentialStateArgs = GetCredentialArgs & { verifiedState: CredentialStateType; verifiedAt?: Date; revokedAt?: Date }
33
34
 
34
- export type RemoveDigitalCredentialArgs = GetDigitalCredentialArgs
35
+ export type RemoveCredentialArgs = GetCredentialArgs
@@ -0,0 +1,16 @@
1
+ import { BaseEntity, FindOptionsOrder } from 'typeorm'
2
+
3
+ export const parseAndValidateOrderOptions = <T extends BaseEntity>(order: string): FindOptionsOrder<T> => {
4
+ const orderPairs = order.split(',').map((pair) => pair.trim().split('.'))
5
+ const orderOptions: FindOptionsOrder<T> = {}
6
+
7
+ orderPairs.forEach(([field, direction]) => {
8
+ const dir = direction.toUpperCase()
9
+ if (dir !== 'ASC' && dir !== 'DESC') {
10
+ throw new Error(`Invalid order direction: '${direction}'. Must be 'asc' or 'desc'.`)
11
+ }
12
+ ;(orderOptions as any)[field] = dir
13
+ })
14
+
15
+ return orderOptions
16
+ }
@@ -27,7 +27,8 @@ import {
27
27
  Organization,
28
28
  Party,
29
29
  PartyRelationship,
30
- PartyType, PhysicalAddress
30
+ PartyType,
31
+ PhysicalAddress,
31
32
  } from '../../types'
32
33
  import { PartyEntity } from '../../entities/contact/PartyEntity'
33
34
  import { IdentityEntity } from '../../entities/contact/IdentityEntity'
@@ -1,4 +1,4 @@
1
- import { AddDigitalCredentialArgs } from '../../types/digitalCredential/IAbstractDigitalCredentialStore'
1
+ import { AddCredentialArgs } from '../../types/digitalCredential/IAbstractDigitalCredentialStore'
2
2
  import { DigitalCredentialEntity } from '../../entities/digitalCredential/DigitalCredentialEntity'
3
3
  import {
4
4
  CredentialMapper,
@@ -6,6 +6,8 @@ import {
6
6
  DocumentFormat,
7
7
  IVerifiableCredential,
8
8
  IVerifiablePresentation,
9
+ OriginalVerifiableCredential,
10
+ OriginalVerifiablePresentation,
9
11
  SdJwtDecodedVerifiableCredentialPayload,
10
12
  } from '@sphereon/ssi-types'
11
13
  import {
@@ -15,25 +17,36 @@ import {
15
17
  NonPersistedDigitalCredential,
16
18
  } from '../../types/digitalCredential/digitalCredential'
17
19
  import { computeEntryHash } from '@veramo/utils'
18
- import { createHash } from 'crypto'
19
20
 
20
21
  function determineCredentialType(raw: string): CredentialType {
21
- if (CredentialMapper.hasProof(raw)) {
22
- if (CredentialMapper.isCredential(raw)) {
23
- return CredentialType.VC
24
- } else if (CredentialMapper.isPresentation(raw)) {
25
- return CredentialType.VP
26
- }
27
- } else {
28
- if (CredentialMapper.isCredential(raw)) {
29
- return CredentialType.C
30
- } else if (CredentialMapper.isPresentation(raw)) {
31
- return CredentialType.P
32
- }
22
+ const rawDocument = parseRawDocument(raw)
23
+ if (!rawDocument) {
24
+ throw new Error(`Couldn't parse the credential: ${raw}`)
25
+ }
26
+
27
+ const hasProof = CredentialMapper.hasProof(rawDocument)
28
+ const isCredential = CredentialMapper.isCredential(rawDocument)
29
+ const isPresentation = CredentialMapper.isPresentation(rawDocument)
30
+
31
+ if (isCredential) {
32
+ return hasProof ? CredentialType.VC : CredentialType.C
33
+ } else if (isPresentation) {
34
+ return hasProof ? CredentialType.VP : CredentialType.P
33
35
  }
34
36
  throw new Error(`Couldn't determine the type of the credential: ${raw}`)
35
37
  }
36
38
 
39
+ function parseRawDocument(raw: string): OriginalVerifiableCredential | OriginalVerifiablePresentation {
40
+ if (CredentialMapper.isJwtEncoded(raw) || CredentialMapper.isSdJwtEncoded(raw)) {
41
+ return raw
42
+ }
43
+ try {
44
+ return JSON.parse(raw)
45
+ } catch (e) {
46
+ throw new Error(`Can't parse the raw credential: ${raw}`)
47
+ }
48
+ }
49
+
37
50
  function determineCredentialDocumentFormat(documentFormat: DocumentFormat): CredentialDocumentFormat {
38
51
  switch (documentFormat) {
39
52
  case DocumentFormat.JSONLD:
@@ -50,6 +63,8 @@ function determineCredentialDocumentFormat(documentFormat: DocumentFormat): Cred
50
63
  function getExpiresAt(uniformDocument: IVerifiableCredential | IVerifiablePresentation | SdJwtDecodedVerifiableCredentialPayload): Date | undefined {
51
64
  if ('expirationDate' in uniformDocument) {
52
65
  return new Date(uniformDocument.expirationDate)
66
+ } else if ('validUntil' in uniformDocument) {
67
+ return new Date(uniformDocument.validUntil)
53
68
  } else if ('exp' in uniformDocument) {
54
69
  return new Date(uniformDocument.exp)
55
70
  }
@@ -63,6 +78,8 @@ function getIssuedAt(uniformDocument: IVerifiableCredential | IVerifiablePresent
63
78
  return new Date(CredentialMapper.getFirstProof(uniformDocument as IVerifiableCredential | IVerifiablePresentation)!.created)
64
79
  } else if ('validFrom' in uniformDocument) {
65
80
  return new Date(uniformDocument['validFrom'])
81
+ } else if ('nbf' in uniformDocument) {
82
+ return new Date(uniformDocument['nbf'] * 1000)
66
83
  } else if ('iat' in uniformDocument) {
67
84
  return new Date(uniformDocument['iat'] * 1000)
68
85
  }
@@ -70,19 +87,15 @@ function getIssuedAt(uniformDocument: IVerifiableCredential | IVerifiablePresent
70
87
  return undefined
71
88
  }
72
89
 
73
- export const handleSdJwt = (rawCredential: string): SdJwtDecodedVerifiableCredentialPayload => {
74
- // todo ask about the hasher
75
- return CredentialMapper.isSdJwtEncoded(rawCredential)
76
- ? decodeSdJwtVc(rawCredential, (data, algorithm) => createHash(algorithm).update(data).digest()).decodedPayload
77
- : JSON.parse(rawCredential)
78
- }
79
-
80
- export const nonPersistedDigitalCredentialEntityFromAddArgs = (addCredentialArgs: AddDigitalCredentialArgs): NonPersistedDigitalCredential => {
90
+ export const nonPersistedDigitalCredentialEntityFromAddArgs = (addCredentialArgs: AddCredentialArgs): NonPersistedDigitalCredential => {
81
91
  const credentialType: CredentialType = determineCredentialType(addCredentialArgs.raw)
82
92
  const documentFormat: DocumentFormat = CredentialMapper.detectDocumentType(addCredentialArgs.raw)
93
+ if (documentFormat === DocumentFormat.SD_JWT_VC && !addCredentialArgs.opts?.hasher) {
94
+ throw new Error('No hasher function is provided for SD_JWT credential.')
95
+ }
83
96
  const uniformDocument =
84
97
  documentFormat === DocumentFormat.SD_JWT_VC
85
- ? handleSdJwt(addCredentialArgs.raw)
98
+ ? decodeSdJwtVc(addCredentialArgs.raw, addCredentialArgs.opts!.hasher!).decodedPayload
86
99
  : credentialType === CredentialType.VC || credentialType === CredentialType.C
87
100
  ? CredentialMapper.toUniformCredential(addCredentialArgs.raw)
88
101
  : CredentialMapper.toUniformPresentation(addCredentialArgs.raw)