@sphereon/ssi-sdk.vc-status-list-issuer-drivers 0.32.1-next.20 → 0.32.1-next.291

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.
package/dist/drivers.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { DataSources } from '@sphereon/ssi-sdk.agent-config';
2
2
  import { IAddStatusListEntryArgs, IGetStatusListEntryByCredentialIdArgs, IGetStatusListEntryByIndexArgs, IStatusListEntryEntity, StatusListStore } from '@sphereon/ssi-sdk.data-store';
3
- import { StatusList2021EntryCredentialStatus, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list';
4
- import { OriginalVerifiableCredential, StatusListCredentialIdMode, StatusListDriverType } from '@sphereon/ssi-types';
3
+ import { StatusList2021EntryCredentialStatus, StatusListOAuthEntryCredentialStatus, StatusListResult } from '@sphereon/ssi-sdk.vc-status-list';
4
+ import { StatusListCredentialIdMode, StatusListDriverType, StatusListType, StatusListCredential } from '@sphereon/ssi-types';
5
5
  import { DataSource } from 'typeorm';
6
6
  import { IStatusListDriver } from './types';
7
7
  export interface StatusListManagementOptions {
@@ -44,17 +44,20 @@ export declare class AgentDataSourceStatusListDriver implements IStatusListDrive
44
44
  getOptions(): DriverOptions;
45
45
  getType(): StatusListDriverType;
46
46
  createStatusList(args: {
47
- statusListCredential: OriginalVerifiableCredential;
47
+ statusListCredential: StatusListCredential;
48
48
  correlationId?: string;
49
49
  credentialIdMode?: StatusListCredentialIdMode;
50
- }): Promise<StatusListDetails>;
50
+ }): Promise<StatusListResult>;
51
51
  updateStatusList(args: {
52
- statusListCredential: OriginalVerifiableCredential;
52
+ statusListCredential: StatusListCredential;
53
53
  correlationId: string;
54
- }): Promise<StatusListDetails>;
54
+ type: StatusListType;
55
+ }): Promise<StatusListResult>;
55
56
  deleteStatusList(): Promise<boolean>;
57
+ private isStatusList2021Entity;
58
+ private isOAuthStatusListEntity;
56
59
  updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
57
- credentialStatus: StatusList2021EntryCredentialStatus;
60
+ credentialStatus: StatusList2021EntryCredentialStatus | StatusListOAuthEntryCredentialStatus;
58
61
  statusListEntry: IStatusListEntryEntity;
59
62
  }>;
60
63
  getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined>;
@@ -68,7 +71,8 @@ export declare class AgentDataSourceStatusListDriver implements IStatusListDrive
68
71
  }): Promise<number>;
69
72
  getStatusList(args?: {
70
73
  correlationId?: string;
71
- }): Promise<StatusListDetails>;
74
+ }): Promise<StatusListResult>;
75
+ getStatusLists(): Promise<Array<StatusListResult>>;
72
76
  isStatusListIndexInUse(): Promise<boolean>;
73
77
  }
74
78
  //# sourceMappingURL=drivers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drivers.d.ts","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
package/dist/drivers.js CHANGED
@@ -16,6 +16,8 @@ const ssi_sdk_agent_config_1 = require("@sphereon/ssi-sdk.agent-config");
16
16
  const ssi_sdk_data_store_1 = require("@sphereon/ssi-sdk.data-store");
17
17
  const ssi_sdk_vc_status_list_1 = require("@sphereon/ssi-sdk.vc-status-list");
18
18
  const ssi_types_1 = require("@sphereon/ssi-types");
19
+ const status_list_adapters_1 = require("./status-list-adapters");
20
+ const StatusListEntities_1 = require("@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities");
19
21
  function getOptions(args) {
20
22
  return {
21
23
  id: args.id,
@@ -98,22 +100,10 @@ class AgentDataSourceStatusListDriver {
98
100
  }
99
101
  const credentialIdMode = (_b = args.credentialIdMode) !== null && _b !== void 0 ? _b : ssi_types_1.StatusListCredentialIdMode.ISSUANCE;
100
102
  const details = yield (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)(Object.assign(Object.assign({}, args), { correlationId, driverType: this.getType() }));
101
- const entity = yield (yield this.statusListStore.getStatusListRepo()).findOne({
102
- where: [
103
- {
104
- id: details.id,
105
- },
106
- {
107
- correlationId,
108
- },
109
- ],
110
- });
111
- if (entity) {
112
- throw Error(`Status list ${details.id}, correlationId ${args.correlationId} already exists`);
113
- }
114
- this._statusListLength = details.length;
103
+ // (StatusListStore does the duplicate entity check)
115
104
  yield this.statusListStore.addStatusList(Object.assign(Object.assign({}, details), { credentialIdMode,
116
105
  correlationId, driverType: this.getType() }));
106
+ this._statusListLength = details.length;
117
107
  return details;
118
108
  });
119
109
  }
@@ -122,7 +112,7 @@ class AgentDataSourceStatusListDriver {
122
112
  var _a;
123
113
  const correlationId = (_a = args.correlationId) !== null && _a !== void 0 ? _a : this.options.correlationId;
124
114
  const details = yield (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)(Object.assign(Object.assign({}, args), { correlationId, driverType: this.getType() }));
125
- const entity = yield (yield this.statusListStore.getStatusListRepo()).findOne({
115
+ const entity = yield (yield this.statusListStore.getStatusListRepo(args.type)).findOne({
126
116
  where: [
127
117
  {
128
118
  id: details.id,
@@ -146,19 +136,43 @@ class AgentDataSourceStatusListDriver {
146
136
  return Promise.resolve(true);
147
137
  });
148
138
  }
139
+ isStatusList2021Entity(statusList) {
140
+ return statusList instanceof StatusListEntities_1.StatusList2021Entity;
141
+ }
142
+ isOAuthStatusListEntity(statusList) {
143
+ return statusList instanceof StatusListEntities_1.OAuthStatusListEntity;
144
+ }
149
145
  updateStatusListEntry(args) {
150
146
  return __awaiter(this, void 0, void 0, function* () {
151
147
  var _a;
152
- const statusList = typeof args.statusList === 'string' ? yield this.getStatusList() : args.statusList;
153
- const statusListEntry = yield this.statusListStore.updateStatusListEntry(Object.assign(Object.assign({}, args), { statusList: statusList.id }));
154
- const credentialStatus = {
155
- id: `${statusList.id}#${statusListEntry.statusListIndex}`,
156
- type: 'StatusList2021Entry',
157
- statusPurpose: (_a = statusList.statusPurpose) !== null && _a !== void 0 ? _a : 'revocation',
158
- statusListIndex: '' + statusListEntry.statusListIndex,
159
- statusListCredential: statusList.id,
160
- };
161
- return { credentialStatus, statusListEntry };
148
+ const statusList = args.statusList ? args.statusList : (0, status_list_adapters_1.statusListResultToEntity)(yield this.getStatusList());
149
+ const statusListEntry = yield this.statusListStore.updateStatusListEntry(Object.assign(Object.assign({}, args), { statusListId: statusList.id }));
150
+ if (this.isStatusList2021Entity(statusList)) {
151
+ return {
152
+ credentialStatus: {
153
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
154
+ type: 'StatusList2021Entry',
155
+ statusPurpose: (_a = statusList.statusPurpose) !== null && _a !== void 0 ? _a : 'revocation',
156
+ statusListIndex: '' + statusListEntry.statusListIndex,
157
+ statusListCredential: statusList.id,
158
+ },
159
+ statusListEntry,
160
+ };
161
+ }
162
+ else if (this.isOAuthStatusListEntity(statusList)) {
163
+ return {
164
+ credentialStatus: {
165
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
166
+ type: 'OAuthStatusListEntry',
167
+ bitsPerStatus: statusList.bitsPerStatus,
168
+ statusListIndex: '' + statusListEntry.statusListIndex,
169
+ statusListCredential: statusList.id,
170
+ expiresAt: statusList.expiresAt,
171
+ },
172
+ statusListEntry,
173
+ };
174
+ }
175
+ throw new Error(`Unsupported status list type: ${typeof statusList}`);
162
176
  });
163
177
  }
164
178
  getStatusListEntryByCredentialId(args) {
@@ -218,6 +232,16 @@ class AgentDataSourceStatusListDriver {
218
232
  .then((statusListEntity) => (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)({ statusListCredential: statusListEntity.statusListCredential }));
219
233
  });
220
234
  }
235
+ getStatusLists() {
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ const statusLists = yield this.statusListStore.getStatusLists({});
238
+ return Promise.all(statusLists.map((statusListEntity) => __awaiter(this, void 0, void 0, function* () {
239
+ return (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)({
240
+ statusListCredential: statusListEntity.statusListCredential,
241
+ });
242
+ })));
243
+ });
244
+ }
221
245
  isStatusListIndexInUse() {
222
246
  return Promise.resolve(false);
223
247
  }
@@ -1 +1 @@
1
- {"version":3,"file":"drivers.js","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"drivers.js","sourceRoot":"","sources":["../src/drivers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities';
2
+ import { StatusListResult } from '@sphereon/ssi-sdk.vc-status-list';
3
+ export declare function statusListResultToEntity(result: StatusListResult): StatusList2021Entity | OAuthStatusListEntity;
4
+ //# sourceMappingURL=status-list-adapters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-list-adapters.d.ts","sourceRoot":"","sources":["../src/status-list-adapters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0EAA0E,CAAA;AACtI,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AAEnE,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,qBAAqB,CAiC/G"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusListResultToEntity = statusListResultToEntity;
4
+ const ssi_types_1 = require("@sphereon/ssi-types");
5
+ const StatusListEntities_1 = require("@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities");
6
+ function statusListResultToEntity(result) {
7
+ const baseFields = {
8
+ id: result.id,
9
+ correlationId: result.correlationId,
10
+ driverType: result.driverType,
11
+ credentialIdMode: result.credentialIdMode,
12
+ length: result.length,
13
+ issuer: result.issuer,
14
+ type: result.type,
15
+ proofFormat: result.proofFormat,
16
+ statusListCredential: result.statusListCredential,
17
+ };
18
+ if (result.type === ssi_types_1.StatusListType.StatusList2021) {
19
+ if (!result.statusList2021) {
20
+ throw new Error('Missing statusList2021 details');
21
+ }
22
+ return Object.assign(new StatusListEntities_1.StatusList2021Entity(), Object.assign(Object.assign({}, baseFields), { indexingDirection: result.statusList2021.indexingDirection, statusPurpose: result.statusList2021.statusPurpose }));
23
+ }
24
+ else if (result.type === ssi_types_1.StatusListType.OAuthStatusList) {
25
+ if (!result.oauthStatusList) {
26
+ throw new Error('Missing oauthStatusList details');
27
+ }
28
+ return Object.assign(new StatusListEntities_1.OAuthStatusListEntity(), Object.assign(Object.assign({}, baseFields), { bitsPerStatus: result.oauthStatusList.bitsPerStatus, expiresAt: result.oauthStatusList.expiresAt }));
29
+ }
30
+ throw new Error(`Unsupported status list type: ${result.type}`);
31
+ }
32
+ //# sourceMappingURL=status-list-adapters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status-list-adapters.js","sourceRoot":"","sources":["../src/status-list-adapters.ts"],"names":[],"mappings":";;AAIA,4DAiCC;AArCD,mDAAoD;AACpD,iHAAsI;AAGtI,SAAgB,wBAAwB,CAAC,MAAwB;IAC/D,MAAM,UAAU,GAAG;QACjB,EAAE,EAAE,MAAM,CAAC,EAAE;QACb,aAAa,EAAE,MAAM,CAAC,aAAa;QACnC,UAAU,EAAE,MAAM,CAAC,UAAU;QAC7B,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;QACzC,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,MAAM,EAAE,MAAM,CAAC,MAAM;QACrB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;QAC/B,oBAAoB,EAAE,MAAM,CAAC,oBAAoB;KAClD,CAAA;IAED,IAAI,MAAM,CAAC,IAAI,KAAK,0BAAc,CAAC,cAAc,EAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,yCAAoB,EAAE,kCAC1C,UAAU,KACb,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,iBAAiB,EAC1D,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,aAAa,IAClD,CAAA;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,0BAAc,CAAC,eAAe,EAAE,CAAC;QAC1D,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;QACpD,CAAC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,0CAAqB,EAAE,kCAC3C,UAAU,KACb,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa,EACnD,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,SAAS,IAC3C,CAAA;IACJ,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,iCAAiC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAA;AACjE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
2
2
  import { IAddStatusListEntryArgs, IGetStatusListEntryByCredentialIdArgs, IGetStatusListEntryByIndexArgs, IStatusListEntryEntity, StatusListStore } from '@sphereon/ssi-sdk.data-store';
3
- import { IStatusListPlugin, StatusList2021EntryCredentialStatus, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list';
4
- import { OriginalVerifiableCredential, StatusListDriverType } from '@sphereon/ssi-types';
3
+ import { IStatusListPlugin, StatusList2021EntryCredentialStatus, StatusListOAuthEntryCredentialStatus, StatusListResult } from '@sphereon/ssi-sdk.vc-status-list';
4
+ import { StatusListCredential, StatusListDriverType } from '@sphereon/ssi-types';
5
5
  import { IAgentContext, ICredentialIssuer, ICredentialPlugin, ICredentialVerifier, IDataStoreORM, IDIDManager, IKeyManager, IResolver } from '@veramo/core';
6
6
  import { DriverOptions } from './drivers';
7
7
  export type IRequiredPlugins = IDataStoreORM & IDIDManager & IKeyManager & IIdentifierResolution & ICredentialIssuer & ICredentialVerifier & ICredentialPlugin & IStatusListPlugin & IResolver;
@@ -14,21 +14,22 @@ export interface IStatusListDriver {
14
14
  correlationId?: string;
15
15
  }): Promise<number>;
16
16
  createStatusList(args: {
17
- statusListCredential: OriginalVerifiableCredential;
17
+ statusListCredential: StatusListCredential;
18
18
  correlationId?: string;
19
- }): Promise<StatusListDetails>;
19
+ }): Promise<StatusListResult>;
20
20
  getStatusList(args?: {
21
21
  correlationId?: string;
22
- }): Promise<StatusListDetails>;
22
+ }): Promise<StatusListResult>;
23
+ getStatusLists(): Promise<Array<StatusListResult>>;
23
24
  updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
24
- credentialStatus: StatusList2021EntryCredentialStatus;
25
+ credentialStatus: StatusList2021EntryCredentialStatus | StatusListOAuthEntryCredentialStatus;
25
26
  statusListEntry: IStatusListEntryEntity;
26
27
  }>;
27
28
  getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined>;
28
29
  getStatusListEntryByIndex(args: IGetStatusListEntryByIndexArgs): Promise<IStatusListEntryEntity | undefined>;
29
30
  updateStatusList(args: {
30
- statusListCredential: OriginalVerifiableCredential;
31
- }): Promise<StatusListDetails>;
31
+ statusListCredential: StatusListCredential;
32
+ }): Promise<StatusListResult>;
32
33
  deleteStatusList(): Promise<boolean>;
33
34
  getRandomNewStatusListIndex(args?: {
34
35
  correlationId?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EACL,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAAE,iBAAiB,EAAE,mCAAmC,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AAC5H,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AACxF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAC1C,WAAW,GACX,WAAW,GACX,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,SAAS,CAAA;AACX,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAEhC,OAAO,IAAI,oBAAoB,CAAA;IAE/B,UAAU,IAAI,aAAa,CAAA;IAE3B,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEvE,gBAAgB,CAAC,IAAI,EAAE;QAAE,oBAAoB,EAAE,4BAA4B,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAElI,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAE5E,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC;QAC5D,gBAAgB,EAAE,mCAAmC,CAAA;QACrD,eAAe,EAAE,sBAAsB,CAAA;KACxC,CAAC,CAAA;IAEF,gCAAgC,CAAC,IAAI,EAAE,qCAAqC,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAE1H,yBAAyB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAE5G,gBAAgB,CAAC,IAAI,EAAE;QAAE,oBAAoB,EAAE,4BAA4B,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAE1G,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpC,2BAA2B,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/E,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EACL,uBAAuB,EACvB,qCAAqC,EACrC,8BAA8B,EAC9B,sBAAsB,EACtB,eAAe,EAChB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,iBAAiB,EACjB,mCAAmC,EACnC,oCAAoC,EACpC,gBAAgB,EACjB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAChF,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,WAAW,EACX,SAAS,EACV,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAEzC,MAAM,MAAM,gBAAgB,GAAG,aAAa,GAC1C,WAAW,GACX,WAAW,GACX,qBAAqB,GACrB,iBAAiB,GACjB,mBAAmB,GACnB,iBAAiB,GACjB,iBAAiB,GACjB,SAAS,CAAA;AACX,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAA;AAE9D,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,eAAe,CAAA;IAEhC,OAAO,IAAI,oBAAoB,CAAA;IAE/B,UAAU,IAAI,aAAa,CAAA;IAE3B,mBAAmB,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAEvE,gBAAgB,CAAC,IAAI,EAAE;QAAE,oBAAoB,EAAE,oBAAoB,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEzH,aAAa,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE3E,cAAc,IAAI,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAElD,qBAAqB,CAAC,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC;QAC5D,gBAAgB,EAAE,mCAAmC,GAAG,oCAAoC,CAAA;QAC5F,eAAe,EAAE,sBAAsB,CAAA;KACxC,CAAC,CAAA;IAEF,gCAAgC,CAAC,IAAI,EAAE,qCAAqC,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAE1H,yBAAyB,CAAC,IAAI,EAAE,8BAA8B,GAAG,OAAO,CAAC,sBAAsB,GAAG,SAAS,CAAC,CAAA;IAE5G,gBAAgB,CAAC,IAAI,EAAE;QAAE,oBAAoB,EAAE,oBAAoB,CAAA;KAAE,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEjG,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;IAEpC,2BAA2B,CAAC,IAAI,CAAC,EAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAE/E,sBAAsB,IAAI,OAAO,CAAC,OAAO,CAAC,CAAA;CAC3C"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.vc-status-list-issuer-drivers",
3
3
  "description": "Sphereon SSI-SDK plugin for Status List management, like StatusList2021. Issuer drivers module",
4
- "version": "0.32.1-next.20+a497783e",
4
+ "version": "0.32.1-next.291+bef8bb12",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -10,18 +10,18 @@
10
10
  "build:clean": "tsc --build --clean && tsc --build"
11
11
  },
12
12
  "dependencies": {
13
- "@sphereon/ssi-express-support": "0.32.1-next.20+a497783e",
14
- "@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
15
- "@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
16
- "@sphereon/ssi-sdk.agent-config": "0.32.1-next.20+a497783e",
17
- "@sphereon/ssi-sdk.core": "0.32.1-next.20+a497783e",
18
- "@sphereon/ssi-sdk.data-store": "0.32.1-next.20+a497783e",
19
- "@sphereon/ssi-sdk.vc-status-list": "0.32.1-next.20+a497783e",
20
- "@sphereon/ssi-types": "0.32.1-next.20+a497783e",
13
+ "@sphereon/ssi-express-support": "0.32.1-next.291+bef8bb12",
14
+ "@sphereon/ssi-sdk-ext.did-utils": "0.28.0",
15
+ "@sphereon/ssi-sdk-ext.identifier-resolution": "0.28.0",
16
+ "@sphereon/ssi-sdk.agent-config": "0.32.1-next.291+bef8bb12",
17
+ "@sphereon/ssi-sdk.core": "0.32.1-next.291+bef8bb12",
18
+ "@sphereon/ssi-sdk.data-store": "0.32.1-next.291+bef8bb12",
19
+ "@sphereon/ssi-sdk.vc-status-list": "0.32.1-next.291+bef8bb12",
20
+ "@sphereon/ssi-types": "0.32.1-next.291+bef8bb12",
21
21
  "@sphereon/vc-status-list": "7.0.0-next.0",
22
22
  "@veramo/core": "4.2.0",
23
23
  "debug": "^4.3.5",
24
- "typeorm": "^0.3.20",
24
+ "typeorm": "^0.3.21",
25
25
  "uint8arrays": "^3.1.1"
26
26
  },
27
27
  "devDependencies": {
@@ -49,5 +49,5 @@
49
49
  "StatusList2021"
50
50
  ],
51
51
  "nx": {},
52
- "gitHead": "a497783ef1be19ede414915a6d0af3c60d251ff0"
52
+ "gitHead": "bef8bb123f197ecb66da7edff9d2cb55492af7ef"
53
53
  }
package/src/drivers.ts CHANGED
@@ -5,12 +5,20 @@ import {
5
5
  IGetStatusListEntryByIndexArgs,
6
6
  IStatusListEntity,
7
7
  IStatusListEntryEntity,
8
+ StatusListEntity,
8
9
  StatusListStore,
9
10
  } from '@sphereon/ssi-sdk.data-store'
10
- import { StatusList2021EntryCredentialStatus, statusListCredentialToDetails, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list'
11
- import { OriginalVerifiableCredential, StatusListCredentialIdMode, StatusListDriverType } from '@sphereon/ssi-types'
11
+ import {
12
+ StatusList2021EntryCredentialStatus,
13
+ statusListCredentialToDetails,
14
+ StatusListOAuthEntryCredentialStatus,
15
+ StatusListResult,
16
+ } from '@sphereon/ssi-sdk.vc-status-list'
17
+ import { StatusListCredentialIdMode, StatusListDriverType, StatusListType, StatusListCredential } from '@sphereon/ssi-types'
12
18
  import { DataSource } from 'typeorm'
13
19
  import { IStatusListDriver } from './types'
20
+ import { statusListResultToEntity } from './status-list-adapters'
21
+ import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities'
14
22
 
15
23
  export interface StatusListManagementOptions {
16
24
  id?: string
@@ -121,46 +129,37 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
121
129
  }
122
130
 
123
131
  async createStatusList(args: {
124
- statusListCredential: OriginalVerifiableCredential
132
+ statusListCredential: StatusListCredential
125
133
  correlationId?: string
126
134
  credentialIdMode?: StatusListCredentialIdMode
127
- }): Promise<StatusListDetails> {
135
+ }): Promise<StatusListResult> {
128
136
  const correlationId = args.correlationId ?? this.options.correlationId
129
137
  if (!correlationId) {
130
138
  throw Error('Either a correlationId needs to be set as an option, or it needs to be provided when creating a status list. None found')
131
139
  }
132
140
  const credentialIdMode = args.credentialIdMode ?? StatusListCredentialIdMode.ISSUANCE
133
141
  const details = await statusListCredentialToDetails({ ...args, correlationId, driverType: this.getType() })
134
- const entity = await (
135
- await this.statusListStore.getStatusListRepo()
136
- ).findOne({
137
- where: [
138
- {
139
- id: details.id,
140
- },
141
- {
142
- correlationId,
143
- },
144
- ],
145
- })
146
- if (entity) {
147
- throw Error(`Status list ${details.id}, correlationId ${args.correlationId} already exists`)
148
- }
149
- this._statusListLength = details.length
142
+
143
+ // (StatusListStore does the duplicate entity check)
150
144
  await this.statusListStore.addStatusList({
151
145
  ...details,
152
146
  credentialIdMode,
153
147
  correlationId,
154
148
  driverType: this.getType(),
155
149
  })
150
+ this._statusListLength = details.length
156
151
  return details
157
152
  }
158
153
 
159
- async updateStatusList(args: { statusListCredential: OriginalVerifiableCredential; correlationId: string }): Promise<StatusListDetails> {
154
+ async updateStatusList(args: {
155
+ statusListCredential: StatusListCredential
156
+ correlationId: string
157
+ type: StatusListType
158
+ }): Promise<StatusListResult> {
160
159
  const correlationId = args.correlationId ?? this.options.correlationId
161
160
  const details = await statusListCredentialToDetails({ ...args, correlationId, driverType: this.getType() })
162
161
  const entity = await (
163
- await this.statusListStore.getStatusListRepo()
162
+ await this.statusListStore.getStatusListRepo(args.type)
164
163
  ).findOne({
165
164
  where: [
166
165
  {
@@ -189,21 +188,47 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
189
188
  return Promise.resolve(true)
190
189
  }
191
190
 
191
+ private isStatusList2021Entity(statusList: StatusListEntity): statusList is StatusList2021Entity {
192
+ return statusList instanceof StatusList2021Entity
193
+ }
194
+
195
+ private isOAuthStatusListEntity(statusList: StatusListEntity): statusList is OAuthStatusListEntity {
196
+ return statusList instanceof OAuthStatusListEntity
197
+ }
198
+
192
199
  async updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
193
- credentialStatus: StatusList2021EntryCredentialStatus
200
+ credentialStatus: StatusList2021EntryCredentialStatus | StatusListOAuthEntryCredentialStatus
194
201
  statusListEntry: IStatusListEntryEntity
195
202
  }> {
196
- const statusList = typeof args.statusList === 'string' ? await this.getStatusList() : args.statusList
203
+ const statusList: StatusListEntity = args.statusList ? args.statusList : statusListResultToEntity(await this.getStatusList())
204
+ const statusListEntry = await this.statusListStore.updateStatusListEntry({ ...args, statusListId: statusList.id })
197
205
 
198
- const statusListEntry = await this.statusListStore.updateStatusListEntry({ ...args, statusList: statusList.id })
199
- const credentialStatus: StatusList2021EntryCredentialStatus = {
200
- id: `${statusList.id}#${statusListEntry.statusListIndex}`,
201
- type: 'StatusList2021Entry',
202
- statusPurpose: statusList.statusPurpose ?? 'revocation',
203
- statusListIndex: '' + statusListEntry.statusListIndex,
204
- statusListCredential: statusList.id,
206
+ if (this.isStatusList2021Entity(statusList)) {
207
+ return {
208
+ credentialStatus: {
209
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
210
+ type: 'StatusList2021Entry',
211
+ statusPurpose: statusList.statusPurpose ?? 'revocation',
212
+ statusListIndex: '' + statusListEntry.statusListIndex,
213
+ statusListCredential: statusList.id,
214
+ },
215
+ statusListEntry,
216
+ }
217
+ } else if (this.isOAuthStatusListEntity(statusList)) {
218
+ return {
219
+ credentialStatus: {
220
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
221
+ type: 'OAuthStatusListEntry',
222
+ bitsPerStatus: statusList.bitsPerStatus,
223
+ statusListIndex: '' + statusListEntry.statusListIndex,
224
+ statusListCredential: statusList.id,
225
+ expiresAt: statusList.expiresAt,
226
+ },
227
+ statusListEntry,
228
+ }
205
229
  }
206
- return { credentialStatus, statusListEntry }
230
+
231
+ throw new Error(`Unsupported status list type: ${typeof statusList}`)
207
232
  }
208
233
 
209
234
  async getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined> {
@@ -251,7 +276,7 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
251
276
  return this._statusListLength!
252
277
  }
253
278
 
254
- async getStatusList(args?: { correlationId?: string }): Promise<StatusListDetails> {
279
+ async getStatusList(args?: { correlationId?: string }): Promise<StatusListResult> {
255
280
  const id = this.options.id
256
281
  const correlationId = args?.correlationId ?? this.options.correlationId
257
282
  return await this.statusListStore
@@ -259,6 +284,17 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
259
284
  .then((statusListEntity: IStatusListEntity) => statusListCredentialToDetails({ statusListCredential: statusListEntity.statusListCredential! }))
260
285
  }
261
286
 
287
+ async getStatusLists(): Promise<Array<StatusListResult>> {
288
+ const statusLists = await this.statusListStore.getStatusLists({})
289
+ return Promise.all(
290
+ statusLists.map(async (statusListEntity) => {
291
+ return statusListCredentialToDetails({
292
+ statusListCredential: statusListEntity.statusListCredential!,
293
+ })
294
+ }),
295
+ )
296
+ }
297
+
262
298
  isStatusListIndexInUse(): Promise<boolean> {
263
299
  return Promise.resolve(false)
264
300
  }
@@ -0,0 +1,38 @@
1
+ import { StatusListType } from '@sphereon/ssi-types'
2
+ import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities'
3
+ import { StatusListResult } from '@sphereon/ssi-sdk.vc-status-list'
4
+
5
+ export function statusListResultToEntity(result: StatusListResult): StatusList2021Entity | OAuthStatusListEntity {
6
+ const baseFields = {
7
+ id: result.id,
8
+ correlationId: result.correlationId,
9
+ driverType: result.driverType,
10
+ credentialIdMode: result.credentialIdMode,
11
+ length: result.length,
12
+ issuer: result.issuer,
13
+ type: result.type,
14
+ proofFormat: result.proofFormat,
15
+ statusListCredential: result.statusListCredential,
16
+ }
17
+
18
+ if (result.type === StatusListType.StatusList2021) {
19
+ if (!result.statusList2021) {
20
+ throw new Error('Missing statusList2021 details')
21
+ }
22
+ return Object.assign(new StatusList2021Entity(), {
23
+ ...baseFields,
24
+ indexingDirection: result.statusList2021.indexingDirection,
25
+ statusPurpose: result.statusList2021.statusPurpose,
26
+ })
27
+ } else if (result.type === StatusListType.OAuthStatusList) {
28
+ if (!result.oauthStatusList) {
29
+ throw new Error('Missing oauthStatusList details')
30
+ }
31
+ return Object.assign(new OAuthStatusListEntity(), {
32
+ ...baseFields,
33
+ bitsPerStatus: result.oauthStatusList.bitsPerStatus,
34
+ expiresAt: result.oauthStatusList.expiresAt,
35
+ })
36
+ }
37
+ throw new Error(`Unsupported status list type: ${result.type}`)
38
+ }
package/src/types.ts CHANGED
@@ -6,8 +6,13 @@ import {
6
6
  IStatusListEntryEntity,
7
7
  StatusListStore,
8
8
  } from '@sphereon/ssi-sdk.data-store'
9
- import { IStatusListPlugin, StatusList2021EntryCredentialStatus, StatusListDetails } from '@sphereon/ssi-sdk.vc-status-list'
10
- import { OriginalVerifiableCredential, StatusListDriverType } from '@sphereon/ssi-types'
9
+ import {
10
+ IStatusListPlugin,
11
+ StatusList2021EntryCredentialStatus,
12
+ StatusListOAuthEntryCredentialStatus,
13
+ StatusListResult,
14
+ } from '@sphereon/ssi-sdk.vc-status-list'
15
+ import { StatusListCredential, StatusListDriverType } from '@sphereon/ssi-types'
11
16
  import {
12
17
  IAgentContext,
13
18
  ICredentialIssuer,
@@ -40,12 +45,14 @@ export interface IStatusListDriver {
40
45
 
41
46
  getStatusListLength(args?: { correlationId?: string }): Promise<number>
42
47
 
43
- createStatusList(args: { statusListCredential: OriginalVerifiableCredential; correlationId?: string }): Promise<StatusListDetails>
48
+ createStatusList(args: { statusListCredential: StatusListCredential; correlationId?: string }): Promise<StatusListResult>
49
+
50
+ getStatusList(args?: { correlationId?: string }): Promise<StatusListResult>
44
51
 
45
- getStatusList(args?: { correlationId?: string }): Promise<StatusListDetails>
52
+ getStatusLists(): Promise<Array<StatusListResult>>
46
53
 
47
54
  updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
48
- credentialStatus: StatusList2021EntryCredentialStatus
55
+ credentialStatus: StatusList2021EntryCredentialStatus | StatusListOAuthEntryCredentialStatus
49
56
  statusListEntry: IStatusListEntryEntity
50
57
  }>
51
58
 
@@ -53,7 +60,7 @@ export interface IStatusListDriver {
53
60
 
54
61
  getStatusListEntryByIndex(args: IGetStatusListEntryByIndexArgs): Promise<IStatusListEntryEntity | undefined>
55
62
 
56
- updateStatusList(args: { statusListCredential: OriginalVerifiableCredential }): Promise<StatusListDetails>
63
+ updateStatusList(args: { statusListCredential: StatusListCredential }): Promise<StatusListResult>
57
64
 
58
65
  deleteStatusList(): Promise<boolean>
59
66