@sphereon/ssi-sdk.vc-status-list-issuer-drivers 0.32.1-next.13 → 0.32.1-next.141

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,7 @@ export declare class AgentDataSourceStatusListDriver implements IStatusListDrive
68
71
  }): Promise<number>;
69
72
  getStatusList(args?: {
70
73
  correlationId?: string;
71
- }): Promise<StatusListDetails>;
74
+ }): Promise<StatusListResult>;
72
75
  isStatusListIndexInUse(): Promise<boolean>;
73
76
  }
74
77
  //# 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;
148
+ const statusList = typeof args.statusList === 'string' ? (0, status_list_adapters_1.statusListResultToEntity)(yield this.getStatusList()) : args.statusList;
153
149
  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 };
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) {
@@ -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":";;;;;;;;;;;;AAuCA,gCAOC;AAED,8BAmBC;AAnED,yEAA4D;AAC5D,qEAQqC;AACrC,6EAKyC;AACzC,mDAA4H;AAG5H,iEAAiE;AACjE,iHAAsI;AAmBtI,SAAgB,UAAU,CAAC,IAA6D;IACtF,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,UAAU,EAAE,gCAAoB,CAAC,aAAa;QAC9C,aAAa,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;KACvC,CAAA;AACH,CAAC;AAED,SAAsB,SAAS,CAAC,IAM/B;;;QACC,MAAM,MAAM,GAAG,MAAA,IAAI,CAAC,MAAM,mCAAI,MAAA,IAAI,CAAC,UAAU,0CAAE,IAAI,CAAA;QACnD,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC/D,CAAC;QACD,MAAM,WAAW,GAAG,MAAA,IAAI,CAAC,WAAW,mCAAI,kCAAW,CAAC,cAAc,EAAE,CAAA;QACpE,OAAO,MAAM,+BAA+B,CAAC,IAAI,CAC/C,UAAU,iCACL,IAAI,KACP,MAAM,IACN,EACF,EAAE,UAAU,EAAE,MAAA,IAAI,CAAC,UAAU,mCAAI,CAAC,MAAM,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,CAC5F,CAAA;IACH,CAAC;CAAA;AAED,MAAa,+BAA+B;IAG1C,YACU,WAAuB,EACvB,gBAAiC,EACjC,OAAoC;QAFpC,gBAAW,GAAX,WAAW,CAAY;QACvB,qBAAgB,GAAhB,gBAAgB,CAAiB;QACjC,YAAO,GAAP,OAAO,CAA6B;IAC3C,CAAC;IAEG,MAAM,CAAO,IAAI,CACtB,OAAoC,EACpC,MAGC;;YAED,IAAI,OAAO,CAAC,UAAU,KAAK,gCAAoB,CAAC,aAAa,EAAE,CAAC;gBAC9D,MAAM,KAAK,CAAC,uGAAuG,OAAO,CAAC,UAAU,EAAE,CAAC,CAAA;YAC1I,CAAC;iBAAM,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAClC,MAAM,KAAK,CAAC,wEAAwE,CAAC,CAAA;YACvF,CAAC;YACD,IAAI,UAAsB,CAAA;YAC1B,IAAI,eAAgC,CAAA;YACpC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU,EAAE,CAAC;gBACvB,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;YAChC,CAAC;iBAAM,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;gBACxC,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,EAAE,CAAC;oBACxB,UAAU,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBACrF,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,MAAM,kCAAW,CAAC,cAAc,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;gBAC/F,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oDAAoD,CAAC,CAAC,CAAA;YACpF,CAAC;YAED,eAAe,GAAG,IAAI,oCAAe,CAAC,UAAU,CAAC,CAAA;YACjD,OAAO,IAAI,+BAA+B,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAA;QAClF,CAAC;KAAA;IAED,IAAI,UAAU;;QACZ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,KAAK,CAAC,oCAAoC,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,0CAAE,MAAM,EAAE,CAAC,CAAA;QACvF,CAAC;QACD,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,IAAI,eAAe;QACjB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC3B,IAAI,CAAC,gBAAgB,GAAG,IAAI,oCAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9D,CAAC;QACD,OAAO,IAAI,CAAC,gBAAgB,CAAA;IAC9B,CAAC;IAED,UAAU;;QACR,OAAO,MAAA,IAAI,CAAC,OAAO,CAAC,aAAa,mCAAI,EAAE,CAAA;IACzC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAA;IAChC,CAAC;IAEK,gBAAgB,CAAC,IAItB;;;YACC,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;YACtE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,KAAK,CAAC,yHAAyH,CAAC,CAAA;YACxI,CAAC;YACD,MAAM,gBAAgB,GAAG,MAAA,IAAI,CAAC,gBAAgB,mCAAI,sCAA0B,CAAC,QAAQ,CAAA;YACrF,MAAM,OAAO,GAAG,MAAM,IAAA,sDAA6B,kCAAM,IAAI,KAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAG,CAAA;YAE3G,oDAAoD;YACpD,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,iCACnC,OAAO,KACV,gBAAgB;gBAChB,aAAa,EACb,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAC1B,CAAA;YACF,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAA;YACvC,OAAO,OAAO,CAAA;QAChB,CAAC;KAAA;IAEK,gBAAgB,CAAC,IAItB;;;YACC,MAAM,aAAa,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;YACtE,MAAM,OAAO,GAAG,MAAM,IAAA,sDAA6B,kCAAM,IAAI,KAAE,aAAa,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAAG,CAAA;YAC3G,MAAM,MAAM,GAAG,MAAM,CACnB,MAAM,IAAI,CAAC,eAAe,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CACxD,CAAC,OAAO,CAAC;gBACR,KAAK,EAAE;oBACL;wBACE,EAAE,EAAE,OAAO,CAAC,EAAE;qBACf;oBACD;wBACE,aAAa;qBACd;iBACF;aACF,CAAC,CAAA;YACF,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,KAAK,CAAC,eAAe,OAAO,CAAC,EAAE,mBAAmB,IAAI,CAAC,aAAa,qBAAqB,CAAC,CAAA;YAClG,CAAC;YACD,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,+CACtC,MAAM,GACN,OAAO,KACV,aAAa,EACb,UAAU,EAAE,IAAI,CAAC,OAAO,EAAE,IAC1B,CAAA;YACF,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,MAAM,CAAA;YACvC,uCAAY,MAAM,GAAK,OAAO,EAAE;QAClC,CAAC;KAAA;IAEK,gBAAgB;;YACpB,MAAM,IAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAA;YAC/G,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC9B,CAAC;KAAA;IAEO,sBAAsB,CAAC,UAA4B;QACzD,OAAO,UAAU,YAAY,yCAAoB,CAAA;IACnD,CAAC;IAEO,uBAAuB,CAAC,UAA4B;QAC1D,OAAO,UAAU,YAAY,0CAAqB,CAAA;IACpD,CAAC;IAEK,qBAAqB,CAAC,IAA6B;;;YAIvD,MAAM,UAAU,GAAqB,OAAO,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAA,+CAAwB,EAAC,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAA;YAEjJ,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,qBAAqB,iCAAM,IAAI,KAAE,UAAU,EAAE,UAAU,CAAC,EAAE,IAAG,CAAA;YAEhH,IAAI,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC5C,OAAO;oBACL,gBAAgB,EAAE;wBAChB,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,eAAe,CAAC,eAAe,EAAE;wBACzD,IAAI,EAAE,qBAAqB;wBAC3B,aAAa,EAAE,MAAA,UAAU,CAAC,aAAa,mCAAI,YAAY;wBACvD,eAAe,EAAE,EAAE,GAAG,eAAe,CAAC,eAAe;wBACrD,oBAAoB,EAAE,UAAU,CAAC,EAAE;qBACpC;oBACD,eAAe;iBAChB,CAAA;YACH,CAAC;iBAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;gBACpD,OAAO;oBACL,gBAAgB,EAAE;wBAChB,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,eAAe,CAAC,eAAe,EAAE;wBACzD,IAAI,EAAE,sBAAsB;wBAC5B,aAAa,EAAE,UAAU,CAAC,aAAa;wBACvC,eAAe,EAAE,EAAE,GAAG,eAAe,CAAC,eAAe;wBACrD,oBAAoB,EAAE,UAAU,CAAC,EAAE;wBACnC,SAAS,EAAE,UAAU,CAAC,SAAS;qBAChC;oBACD,eAAe;iBAChB,CAAA;YACH,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,iCAAiC,OAAO,UAAU,EAAE,CAAC,CAAA;QACvE,CAAC;KAAA;IAEK,gCAAgC,CAAC,IAA2C;;YAChF,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,gCAAgC,CAAC,IAAI,CAAC,CAAA;QAC1E,CAAC;KAAA;IAEK,yBAAyB,CAAC,IAAoC;;YAClE,OAAO,MAAM,IAAI,CAAC,eAAe,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAA;QACnE,CAAC;KAAA;IAEK,2BAA2B,CAAC,IAAiC;;YACjE,IAAI,MAAM,GAAG,CAAC,CAAC,CAAA;YACf,IAAI,KAAK,GAAG,CAAC,CAAA;YACb,OAAO,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,gFAAgF;gBAChF,MAAM,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,CAAA;YACpE,CAAC;YACD,OAAO,MAAM,CAAA;QACf,CAAC;KAAA;IAEa,+BAA+B,CAAC,KAAa,EAAE,IAAiC;;;YAC5F,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;YACpC,MAAM,aAAa,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;YACvE,IAAI,KAAK,IAAI,EAAE,EAAE,CAAC;gBAChB,MAAM,KAAK,CAAC,sFAAsF,YAAY,EAAE,CAAC,CAAA;YACnH,CAAC;YACD,yBAAyB;YACzB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;YACnD,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,CAAC,CAAA;YAC5F,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,0BAA0B,+BACrE,YAAY,IACT,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,CAAC,KACvC,eAAe,IACf,CAAA;YACF,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,SAAS,CAAC,CAAC,CAAC,CAAA,CAAC,0EAA0E;YAChG,CAAC;YACD,OAAO,CAAC,CAAC,CAAA;QACX,CAAC;KAAA;IAEK,mBAAmB,CAAC,IAAiC;;YACzD,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,IAAI,CAAC,iBAAiB,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;YAC3F,CAAC;YACD,OAAO,IAAI,CAAC,iBAAkB,CAAA;QAChC,CAAC;KAAA;IAEK,aAAa,CAAC,IAAiC;;;YACnD,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAA;YAC1B,MAAM,aAAa,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,mCAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAA;YACvE,OAAO,MAAM,IAAI,CAAC,eAAe;iBAC9B,aAAa,CAAC,EAAE,EAAE,EAAE,aAAa,EAAE,CAAC;iBACpC,IAAI,CAAC,CAAC,gBAAmC,EAAE,EAAE,CAAC,IAAA,sDAA6B,EAAC,EAAE,oBAAoB,EAAE,gBAAgB,CAAC,oBAAqB,EAAE,CAAC,CAAC,CAAA;QACnJ,CAAC;KAAA;IAED,sBAAsB;QACpB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC/B,CAAC;CACF;AA7ND,0EA6NC"}
@@ -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,21 @@ 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
23
  updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
24
- credentialStatus: StatusList2021EntryCredentialStatus;
24
+ credentialStatus: StatusList2021EntryCredentialStatus | StatusListOAuthEntryCredentialStatus;
25
25
  statusListEntry: IStatusListEntryEntity;
26
26
  }>;
27
27
  getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined>;
28
28
  getStatusListEntryByIndex(args: IGetStatusListEntryByIndexArgs): Promise<IStatusListEntryEntity | undefined>;
29
29
  updateStatusList(args: {
30
- statusListCredential: OriginalVerifiableCredential;
31
- }): Promise<StatusListDetails>;
30
+ statusListCredential: StatusListCredential;
31
+ }): Promise<StatusListResult>;
32
32
  deleteStatusList(): Promise<boolean>;
33
33
  getRandomNewStatusListIndex(args?: {
34
34
  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,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.13+886ea5b6",
4
+ "version": "0.32.1-next.141+5862bf90",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -10,14 +10,14 @@
10
10
  "build:clean": "tsc --build --clean && tsc --build"
11
11
  },
12
12
  "dependencies": {
13
- "@sphereon/ssi-express-support": "0.32.1-next.13+886ea5b6",
13
+ "@sphereon/ssi-express-support": "0.32.1-next.141+5862bf90",
14
14
  "@sphereon/ssi-sdk-ext.did-utils": "0.27.0",
15
15
  "@sphereon/ssi-sdk-ext.identifier-resolution": "0.27.0",
16
- "@sphereon/ssi-sdk.agent-config": "0.32.1-next.13+886ea5b6",
17
- "@sphereon/ssi-sdk.core": "0.32.1-next.13+886ea5b6",
18
- "@sphereon/ssi-sdk.data-store": "0.32.1-next.13+886ea5b6",
19
- "@sphereon/ssi-sdk.vc-status-list": "0.32.1-next.13+886ea5b6",
20
- "@sphereon/ssi-types": "0.32.1-next.13+886ea5b6",
16
+ "@sphereon/ssi-sdk.agent-config": "0.32.1-next.141+5862bf90",
17
+ "@sphereon/ssi-sdk.core": "0.32.1-next.141+5862bf90",
18
+ "@sphereon/ssi-sdk.data-store": "0.32.1-next.141+5862bf90",
19
+ "@sphereon/ssi-sdk.vc-status-list": "0.32.1-next.141+5862bf90",
20
+ "@sphereon/ssi-types": "0.32.1-next.141+5862bf90",
21
21
  "@sphereon/vc-status-list": "7.0.0-next.0",
22
22
  "@veramo/core": "4.2.0",
23
23
  "debug": "^4.3.5",
@@ -49,5 +49,5 @@
49
49
  "StatusList2021"
50
50
  ],
51
51
  "nx": {},
52
- "gitHead": "886ea5b60c8ca5709ada1b053ee3baf5363861d9"
52
+ "gitHead": "5862bf90d03a6d50882f12d5e4be150a3d53f823"
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,48 @@ 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 = typeof args.statusList === 'string' ? statusListResultToEntity(await this.getStatusList()) : args.statusList
197
204
 
198
205
  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
+
207
+ if (this.isStatusList2021Entity(statusList)) {
208
+ return {
209
+ credentialStatus: {
210
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
211
+ type: 'StatusList2021Entry',
212
+ statusPurpose: statusList.statusPurpose ?? 'revocation',
213
+ statusListIndex: '' + statusListEntry.statusListIndex,
214
+ statusListCredential: statusList.id,
215
+ },
216
+ statusListEntry,
217
+ }
218
+ } else if (this.isOAuthStatusListEntity(statusList)) {
219
+ return {
220
+ credentialStatus: {
221
+ id: `${statusList.id}#${statusListEntry.statusListIndex}`,
222
+ type: 'OAuthStatusListEntry',
223
+ bitsPerStatus: statusList.bitsPerStatus,
224
+ statusListIndex: '' + statusListEntry.statusListIndex,
225
+ statusListCredential: statusList.id,
226
+ expiresAt: statusList.expiresAt,
227
+ },
228
+ statusListEntry,
229
+ }
205
230
  }
206
- return { credentialStatus, statusListEntry }
231
+
232
+ throw new Error(`Unsupported status list type: ${typeof statusList}`)
207
233
  }
208
234
 
209
235
  async getStatusListEntryByCredentialId(args: IGetStatusListEntryByCredentialIdArgs): Promise<IStatusListEntryEntity | undefined> {
@@ -251,7 +277,7 @@ export class AgentDataSourceStatusListDriver implements IStatusListDriver {
251
277
  return this._statusListLength!
252
278
  }
253
279
 
254
- async getStatusList(args?: { correlationId?: string }): Promise<StatusListDetails> {
280
+ async getStatusList(args?: { correlationId?: string }): Promise<StatusListResult> {
255
281
  const id = this.options.id
256
282
  const correlationId = args?.correlationId ?? this.options.correlationId
257
283
  return await this.statusListStore
@@ -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,12 @@ 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>
44
49
 
45
- getStatusList(args?: { correlationId?: string }): Promise<StatusListDetails>
50
+ getStatusList(args?: { correlationId?: string }): Promise<StatusListResult>
46
51
 
47
52
  updateStatusListEntry(args: IAddStatusListEntryArgs): Promise<{
48
- credentialStatus: StatusList2021EntryCredentialStatus
53
+ credentialStatus: StatusList2021EntryCredentialStatus | StatusListOAuthEntryCredentialStatus
49
54
  statusListEntry: IStatusListEntryEntity
50
55
  }>
51
56
 
@@ -53,7 +58,7 @@ export interface IStatusListDriver {
53
58
 
54
59
  getStatusListEntryByIndex(args: IGetStatusListEntryByIndexArgs): Promise<IStatusListEntryEntity | undefined>
55
60
 
56
- updateStatusList(args: { statusListCredential: OriginalVerifiableCredential }): Promise<StatusListDetails>
61
+ updateStatusList(args: { statusListCredential: StatusListCredential }): Promise<StatusListResult>
57
62
 
58
63
  deleteStatusList(): Promise<boolean>
59
64