@sphereon/ssi-sdk.vc-status-list-issuer-drivers 0.32.1-next.54 → 0.33.1-feature.vcdm2.4

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
@@ -1,226 +1,221 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.AgentDataSourceStatusListDriver = void 0;
13
- exports.getOptions = getOptions;
14
- exports.getDriver = getDriver;
15
- const ssi_sdk_agent_config_1 = require("@sphereon/ssi-sdk.agent-config");
16
- const ssi_sdk_data_store_1 = require("@sphereon/ssi-sdk.data-store");
17
- const ssi_sdk_vc_status_list_1 = require("@sphereon/ssi-sdk.vc-status-list");
18
- const ssi_types_1 = require("@sphereon/ssi-types");
19
- function getOptions(args) {
1
+ import { DataSources } from '@sphereon/ssi-sdk.agent-config';
2
+ import { StatusListStore, } from '@sphereon/ssi-sdk.data-store';
3
+ import { statusListCredentialToDetails, } from '@sphereon/ssi-sdk.vc-status-list';
4
+ import { StatusListCredentialIdMode, StatusListDriverType } from '@sphereon/ssi-types';
5
+ import { statusListResultToEntity } from './status-list-adapters';
6
+ import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities';
7
+ export function getOptions(args) {
20
8
  return {
21
9
  id: args.id,
22
10
  correlationId: args.correlationId,
23
- driverType: ssi_types_1.StatusListDriverType.AGENT_TYPEORM,
11
+ driverType: StatusListDriverType.AGENT_TYPEORM,
24
12
  driverOptions: { dbName: args.dbName },
25
13
  };
26
14
  }
27
- function getDriver(args) {
28
- return __awaiter(this, void 0, void 0, function* () {
29
- var _a, _b, _c, _d;
30
- const dbName = (_a = args.dbName) !== null && _a !== void 0 ? _a : (_b = args.dataSource) === null || _b === void 0 ? void 0 : _b.name;
31
- if (!dbName) {
32
- throw Error(`Please provide either a DB name or data source`);
33
- }
34
- const dataSources = (_c = args.dataSources) !== null && _c !== void 0 ? _c : ssi_sdk_agent_config_1.DataSources.singleInstance();
35
- return yield AgentDataSourceStatusListDriver.init(getOptions(Object.assign(Object.assign({}, args), { dbName })), { dataSource: (_d = args.dataSource) !== null && _d !== void 0 ? _d : (yield dataSources.getDbConnection(dbName)), dataSources });
36
- });
15
+ export async function getDriver(args) {
16
+ const dbName = args.dbName ?? args.dataSource?.name;
17
+ if (!dbName) {
18
+ throw Error(`Please provide either a DB name or data source`);
19
+ }
20
+ const dataSources = args.dataSources ?? DataSources.singleInstance();
21
+ return await AgentDataSourceStatusListDriver.init(getOptions({
22
+ ...args,
23
+ dbName,
24
+ }), { dataSource: args.dataSource ?? (await dataSources.getDbConnection(dbName)), dataSources });
37
25
  }
38
- class AgentDataSourceStatusListDriver {
26
+ export class AgentDataSourceStatusListDriver {
27
+ _dataSource;
28
+ _statusListStore;
29
+ options;
30
+ _statusListLength;
39
31
  constructor(_dataSource, _statusListStore, options) {
40
32
  this._dataSource = _dataSource;
41
33
  this._statusListStore = _statusListStore;
42
34
  this.options = options;
43
35
  }
44
- static init(options, dbArgs) {
45
- return __awaiter(this, void 0, void 0, function* () {
46
- if (options.driverType !== ssi_types_1.StatusListDriverType.AGENT_TYPEORM) {
47
- throw Error(`TypeORM driver can only be used when the TypeORM driver type is selected in the configuration. Got: ${options.driverType}`);
48
- }
49
- else if (!options.driverOptions) {
50
- throw Error(`TypeORM driver can only be used when the TypeORM options are provided.`);
51
- }
52
- let dataSource;
53
- let statusListStore;
54
- if (dbArgs === null || dbArgs === void 0 ? void 0 : dbArgs.dataSource) {
55
- dataSource = dbArgs.dataSource;
56
- }
57
- else if (options.driverOptions.dbName) {
58
- if (dbArgs === null || dbArgs === void 0 ? void 0 : dbArgs.dataSources) {
59
- dataSource = yield dbArgs.dataSources.getDbConnection(options.driverOptions.dbName);
60
- }
61
- else {
62
- dataSource = yield ssi_sdk_agent_config_1.DataSources.singleInstance().getDbConnection(options.driverOptions.dbName);
63
- }
36
+ static async init(options, dbArgs) {
37
+ if (options.driverType !== StatusListDriverType.AGENT_TYPEORM) {
38
+ throw Error(`TypeORM driver can only be used when the TypeORM driver type is selected in the configuration. Got: ${options.driverType}`);
39
+ }
40
+ else if (!options.driverOptions) {
41
+ throw Error(`TypeORM driver can only be used when the TypeORM options are provided.`);
42
+ }
43
+ let dataSource;
44
+ let statusListStore;
45
+ if (dbArgs?.dataSource) {
46
+ dataSource = dbArgs.dataSource;
47
+ }
48
+ else if (options.driverOptions.dbName) {
49
+ if (dbArgs?.dataSources) {
50
+ dataSource = await dbArgs.dataSources.getDbConnection(options.driverOptions.dbName);
64
51
  }
65
52
  else {
66
- return Promise.reject(Error(`Either a datasource or dbName needs to be provided`));
53
+ dataSource = await DataSources.singleInstance().getDbConnection(options.driverOptions.dbName);
67
54
  }
68
- statusListStore = new ssi_sdk_data_store_1.StatusListStore(dataSource);
69
- return new AgentDataSourceStatusListDriver(dataSource, statusListStore, options);
70
- });
55
+ }
56
+ else {
57
+ return Promise.reject(Error(`Either a datasource or dbName needs to be provided`));
58
+ }
59
+ statusListStore = new StatusListStore(dataSource);
60
+ return new AgentDataSourceStatusListDriver(dataSource, statusListStore, options);
71
61
  }
72
62
  get dataSource() {
73
- var _a;
74
63
  if (!this._dataSource) {
75
- throw Error(`Datasource not available yet for ${(_a = this.options.driverOptions) === null || _a === void 0 ? void 0 : _a.dbName}`);
64
+ throw Error(`Datasource not available yet for ${this.options.driverOptions?.dbName}`);
76
65
  }
77
66
  return this._dataSource;
78
67
  }
79
68
  get statusListStore() {
80
69
  if (!this._statusListStore) {
81
- this._statusListStore = new ssi_sdk_data_store_1.StatusListStore(this.dataSource);
70
+ this._statusListStore = new StatusListStore(this.dataSource);
82
71
  }
83
72
  return this._statusListStore;
84
73
  }
85
74
  getOptions() {
86
- var _a;
87
- return (_a = this.options.driverOptions) !== null && _a !== void 0 ? _a : {};
75
+ return this.options.driverOptions ?? {};
88
76
  }
89
77
  getType() {
90
78
  return this.options.driverType;
91
79
  }
92
- createStatusList(args) {
93
- return __awaiter(this, void 0, void 0, function* () {
94
- var _a, _b;
95
- const correlationId = (_a = args.correlationId) !== null && _a !== void 0 ? _a : this.options.correlationId;
96
- if (!correlationId) {
97
- 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');
98
- }
99
- const credentialIdMode = (_b = args.credentialIdMode) !== null && _b !== void 0 ? _b : ssi_types_1.StatusListCredentialIdMode.ISSUANCE;
100
- 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;
115
- yield this.statusListStore.addStatusList(Object.assign(Object.assign({}, details), { credentialIdMode,
116
- correlationId, driverType: this.getType() }));
117
- return details;
80
+ async createStatusList(args) {
81
+ const correlationId = args.correlationId ?? this.options.correlationId;
82
+ if (!correlationId) {
83
+ 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');
84
+ }
85
+ const credentialIdMode = args.credentialIdMode ?? StatusListCredentialIdMode.ISSUANCE;
86
+ const details = await statusListCredentialToDetails({ ...args, correlationId, driverType: this.getType() });
87
+ // (StatusListStore does the duplicate entity check)
88
+ await this.statusListStore.addStatusList({
89
+ ...details,
90
+ credentialIdMode,
91
+ correlationId,
92
+ driverType: this.getType(),
118
93
  });
119
- }
120
- updateStatusList(args) {
121
- return __awaiter(this, void 0, void 0, function* () {
122
- var _a;
123
- const correlationId = (_a = args.correlationId) !== null && _a !== void 0 ? _a : this.options.correlationId;
124
- 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({
126
- where: [
127
- {
128
- id: details.id,
129
- },
130
- {
131
- correlationId,
132
- },
133
- ],
134
- });
135
- if (!entity) {
136
- throw Error(`Status list ${details.id}, correlationId ${args.correlationId} could not be found`);
137
- }
138
- yield this.statusListStore.updateStatusList(Object.assign(Object.assign(Object.assign({}, entity), details), { correlationId, driverType: this.getType() }));
139
- this._statusListLength = details.length;
140
- return Object.assign(Object.assign({}, entity), details);
94
+ this._statusListLength = details.length;
95
+ return details;
96
+ }
97
+ async updateStatusList(args) {
98
+ const correlationId = args.correlationId ?? this.options.correlationId;
99
+ const details = await statusListCredentialToDetails({ ...args, correlationId, driverType: this.getType() });
100
+ const entity = await (await this.statusListStore.getStatusListRepo(args.type)).findOne({
101
+ where: [
102
+ {
103
+ id: details.id,
104
+ },
105
+ {
106
+ correlationId,
107
+ },
108
+ ],
141
109
  });
142
- }
143
- deleteStatusList() {
144
- return __awaiter(this, void 0, void 0, function* () {
145
- yield this.statusListStore.removeStatusList({ id: this.options.id, correlationId: this.options.correlationId });
146
- return Promise.resolve(true);
110
+ if (!entity) {
111
+ throw Error(`Status list ${details.id}, correlationId ${args.correlationId} could not be found`);
112
+ }
113
+ await this.statusListStore.updateStatusList({
114
+ ...entity,
115
+ ...details,
116
+ correlationId,
117
+ driverType: this.getType(),
147
118
  });
148
- }
149
- updateStatusListEntry(args) {
150
- return __awaiter(this, void 0, void 0, function* () {
151
- 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,
119
+ this._statusListLength = details.length;
120
+ return { ...entity, ...details };
121
+ }
122
+ async deleteStatusList() {
123
+ await this.statusListStore.removeStatusList({ id: this.options.id, correlationId: this.options.correlationId });
124
+ return Promise.resolve(true);
125
+ }
126
+ isStatusList2021Entity(statusList) {
127
+ return statusList instanceof StatusList2021Entity;
128
+ }
129
+ isOAuthStatusListEntity(statusList) {
130
+ return statusList instanceof OAuthStatusListEntity;
131
+ }
132
+ async updateStatusListEntry(args) {
133
+ const statusList = args.statusList ? args.statusList : statusListResultToEntity(await this.getStatusList());
134
+ const statusListEntry = await this.statusListStore.updateStatusListEntry({ ...args, statusListId: statusList.id });
135
+ if (this.isStatusList2021Entity(statusList)) {
136
+ return {
137
+ credentialStatus: {
138
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
139
+ type: 'StatusList2021Entry',
140
+ statusPurpose: statusList.statusPurpose ?? 'revocation',
141
+ statusListIndex: '' + statusListEntry.statusListIndex,
142
+ statusListCredential: statusList.id,
143
+ },
144
+ statusListEntry,
160
145
  };
161
- return { credentialStatus, statusListEntry };
162
- });
163
- }
164
- getStatusListEntryByCredentialId(args) {
165
- return __awaiter(this, void 0, void 0, function* () {
166
- return yield this.statusListStore.getStatusListEntryByCredentialId(args);
167
- });
146
+ }
147
+ else if (this.isOAuthStatusListEntity(statusList)) {
148
+ return {
149
+ credentialStatus: {
150
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
151
+ type: 'OAuthStatusListEntry',
152
+ bitsPerStatus: statusList.bitsPerStatus,
153
+ statusListIndex: '' + statusListEntry.statusListIndex,
154
+ statusListCredential: statusList.id,
155
+ expiresAt: statusList.expiresAt,
156
+ },
157
+ statusListEntry,
158
+ };
159
+ }
160
+ throw new Error(`Unsupported status list type: ${typeof statusList}`);
168
161
  }
169
- getStatusListEntryByIndex(args) {
170
- return __awaiter(this, void 0, void 0, function* () {
171
- return yield this.statusListStore.getStatusListEntryByIndex(args);
172
- });
162
+ async getStatusListEntryByCredentialId(args) {
163
+ return await this.statusListStore.getStatusListEntryByCredentialId(args);
173
164
  }
174
- getRandomNewStatusListIndex(args) {
175
- return __awaiter(this, void 0, void 0, function* () {
176
- let result = -1;
177
- let tries = 0;
178
- while (result < 0) {
179
- // no tries guard, because we will throw an error when they are exhausted anyway
180
- result = yield this.getRandomNewStatusListIndexImpl(tries++, args);
181
- }
182
- return result;
183
- });
165
+ async getStatusListEntryByIndex(args) {
166
+ return await this.statusListStore.getStatusListEntryByIndex(args);
184
167
  }
185
- getRandomNewStatusListIndexImpl(tries, args) {
186
- return __awaiter(this, void 0, void 0, function* () {
187
- var _a;
188
- const statusListId = this.options.id;
189
- const correlationId = (_a = args === null || args === void 0 ? void 0 : args.correlationId) !== null && _a !== void 0 ? _a : this.options.correlationId;
190
- if (tries >= 10) {
191
- throw Error(`We could not find any random status list index that is available in the statuslist ${statusListId}`);
192
- }
193
- // TODO: Check against DB
194
- const length = yield this.getStatusListLength(args);
195
- const statusListIndex = Array.from({ length: 20 }, () => Math.floor(Math.random() * length));
196
- const available = yield this.statusListStore.availableStatusListEntries(Object.assign(Object.assign({ statusListId }, (correlationId && { correlationId })), { statusListIndex }));
197
- if (available.length > 0) {
198
- return available[0]; // doesn't matter we pick the first element, as they are all random anyway
199
- }
200
- return -1;
201
- });
168
+ async getRandomNewStatusListIndex(args) {
169
+ let result = -1;
170
+ let tries = 0;
171
+ while (result < 0) {
172
+ // no tries guard, because we will throw an error when they are exhausted anyway
173
+ result = await this.getRandomNewStatusListIndexImpl(tries++, args);
174
+ }
175
+ return result;
202
176
  }
203
- getStatusListLength(args) {
204
- return __awaiter(this, void 0, void 0, function* () {
205
- if (!this._statusListLength) {
206
- this._statusListLength = yield this.getStatusList(args).then((details) => details.length);
207
- }
208
- return this._statusListLength;
177
+ async getRandomNewStatusListIndexImpl(tries, args) {
178
+ const statusListId = this.options.id;
179
+ const correlationId = args?.correlationId ?? this.options.correlationId;
180
+ if (tries >= 10) {
181
+ throw Error(`We could not find any random status list index that is available in the statuslist ${statusListId}`);
182
+ }
183
+ // TODO: Check against DB
184
+ const length = await this.getStatusListLength(args);
185
+ const statusListIndex = Array.from({ length: 20 }, () => Math.floor(Math.random() * length));
186
+ const available = await this.statusListStore.availableStatusListEntries({
187
+ statusListId,
188
+ ...(correlationId && { correlationId }),
189
+ statusListIndex,
209
190
  });
191
+ if (available.length > 0) {
192
+ return available[0]; // doesn't matter we pick the first element, as they are all random anyway
193
+ }
194
+ return -1;
210
195
  }
211
- getStatusList(args) {
212
- return __awaiter(this, void 0, void 0, function* () {
213
- var _a;
214
- const id = this.options.id;
215
- const correlationId = (_a = args === null || args === void 0 ? void 0 : args.correlationId) !== null && _a !== void 0 ? _a : this.options.correlationId;
216
- return yield this.statusListStore
217
- .getStatusList({ id, correlationId })
218
- .then((statusListEntity) => (0, ssi_sdk_vc_status_list_1.statusListCredentialToDetails)({ statusListCredential: statusListEntity.statusListCredential }));
219
- });
196
+ async getStatusListLength(args) {
197
+ if (!this._statusListLength) {
198
+ this._statusListLength = await this.getStatusList(args).then((details) => details.length);
199
+ }
200
+ return this._statusListLength;
201
+ }
202
+ async getStatusList(args) {
203
+ const id = this.options.id;
204
+ const correlationId = args?.correlationId ?? this.options.correlationId;
205
+ return await this.statusListStore
206
+ .getStatusList({ id, correlationId })
207
+ .then((statusListEntity) => statusListCredentialToDetails({ statusListCredential: statusListEntity.statusListCredential }));
208
+ }
209
+ async getStatusLists() {
210
+ const statusLists = await this.statusListStore.getStatusLists({});
211
+ return Promise.all(statusLists.map(async (statusListEntity) => {
212
+ return statusListCredentialToDetails({
213
+ statusListCredential: statusListEntity.statusListCredential,
214
+ });
215
+ }));
220
216
  }
221
217
  isStatusListIndexInUse() {
222
218
  return Promise.resolve(false);
223
219
  }
224
220
  }
225
- exports.AgentDataSourceStatusListDriver = AgentDataSourceStatusListDriver;
226
221
  //# sourceMappingURL=drivers.js.map
@@ -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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"}
package/dist/index.js CHANGED
@@ -1,22 +1,6 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
1
  /**
18
2
  * @public
19
3
  */
20
- __exportStar(require("./types"), exports);
21
- __exportStar(require("./drivers"), exports);
4
+ export * from './types';
5
+ export * from './drivers';
22
6
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;GAEG;AACH,0CAAuB;AACvB,4CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,cAAc,SAAS,CAAA;AACvB,cAAc,WAAW,CAAA"}
@@ -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,37 @@
1
+ import { StatusListType } from '@sphereon/ssi-types';
2
+ import { OAuthStatusListEntity, StatusList2021Entity } from '@sphereon/ssi-sdk.data-store/dist/entities/statusList/StatusListEntities';
3
+ export function statusListResultToEntity(result) {
4
+ const baseFields = {
5
+ id: result.id,
6
+ correlationId: result.correlationId,
7
+ driverType: result.driverType,
8
+ credentialIdMode: result.credentialIdMode,
9
+ length: result.length,
10
+ issuer: result.issuer,
11
+ type: result.type,
12
+ proofFormat: result.proofFormat,
13
+ statusListCredential: result.statusListCredential,
14
+ };
15
+ if (result.type === StatusListType.StatusList2021) {
16
+ if (!result.statusList2021) {
17
+ throw new Error('Missing statusList2021 details');
18
+ }
19
+ return Object.assign(new StatusList2021Entity(), {
20
+ ...baseFields,
21
+ indexingDirection: result.statusList2021.indexingDirection,
22
+ statusPurpose: result.statusList2021.statusPurpose,
23
+ });
24
+ }
25
+ else if (result.type === StatusListType.OAuthStatusList) {
26
+ if (!result.oauthStatusList) {
27
+ throw new Error('Missing oauthStatusList details');
28
+ }
29
+ return Object.assign(new OAuthStatusListEntity(), {
30
+ ...baseFields,
31
+ bitsPerStatus: result.oauthStatusList.bitsPerStatus,
32
+ expiresAt: result.oauthStatusList.expiresAt,
33
+ });
34
+ }
35
+ throw new Error(`Unsupported status list type: ${result.type}`);
36
+ }
37
+ //# 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":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,MAAM,0EAA0E,CAAA;AAGtI,MAAM,UAAU,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,cAAc,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,oBAAoB,EAAE,EAAE;YAC/C,GAAG,UAAU;YACb,iBAAiB,EAAE,MAAM,CAAC,cAAc,CAAC,iBAAiB;YAC1D,aAAa,EAAE,MAAM,CAAC,cAAc,CAAC,aAAa;SACnD,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,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,qBAAqB,EAAE,EAAE;YAChD,GAAG,UAAU;YACb,aAAa,EAAE,MAAM,CAAC,eAAe,CAAC,aAAa;YACnD,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,SAAS;SAC5C,CAAC,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/dist/types.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
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.54+3b988a2b",
4
+ "version": "0.33.1-feature.vcdm2.4+9f634bdb",
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.54+3b988a2b",
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.54+3b988a2b",
17
- "@sphereon/ssi-sdk.core": "0.32.1-next.54+3b988a2b",
18
- "@sphereon/ssi-sdk.data-store": "0.32.1-next.54+3b988a2b",
19
- "@sphereon/ssi-sdk.vc-status-list": "0.32.1-next.54+3b988a2b",
20
- "@sphereon/ssi-types": "0.32.1-next.54+3b988a2b",
13
+ "@sphereon/ssi-express-support": "0.33.1-feature.vcdm2.4+9f634bdb",
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.33.1-feature.vcdm2.4+9f634bdb",
17
+ "@sphereon/ssi-sdk.core": "0.33.1-feature.vcdm2.4+9f634bdb",
18
+ "@sphereon/ssi-sdk.data-store": "0.33.1-feature.vcdm2.4+9f634bdb",
19
+ "@sphereon/ssi-sdk.vc-status-list": "0.33.1-feature.vcdm2.4+9f634bdb",
20
+ "@sphereon/ssi-types": "0.33.1-feature.vcdm2.4+9f634bdb",
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": "3b988a2bb62a7c4534a2670ea3a0985fd93d00f2"
52
+ "gitHead": "9f634bdb714061141e277508c124b08d626f6036"
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