@sphereon/ssi-sdk.vc-status-list 0.32.1-feature.MWALL.717.jwt.decode.crash.15 → 0.32.1-feature.SDK.56.oauth.status.list.39

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/functions.d.ts +13 -13
  2. package/dist/functions.d.ts.map +1 -1
  3. package/dist/functions.js +38 -108
  4. package/dist/functions.js.map +1 -1
  5. package/dist/impl/IStatusList.d.ts +22 -0
  6. package/dist/impl/IStatusList.d.ts.map +1 -0
  7. package/dist/impl/IStatusList.js +3 -0
  8. package/dist/impl/IStatusList.js.map +1 -0
  9. package/dist/impl/OAuthStatusList.d.ts +21 -0
  10. package/dist/impl/OAuthStatusList.d.ts.map +1 -0
  11. package/dist/impl/OAuthStatusList.js +142 -0
  12. package/dist/impl/OAuthStatusList.js.map +1 -0
  13. package/dist/impl/StatusList2021.d.ts +14 -0
  14. package/dist/impl/StatusList2021.d.ts.map +1 -0
  15. package/dist/impl/StatusList2021.js +152 -0
  16. package/dist/impl/StatusList2021.js.map +1 -0
  17. package/dist/impl/StatusListFactory.d.ts +11 -0
  18. package/dist/impl/StatusListFactory.d.ts.map +1 -0
  19. package/dist/impl/StatusListFactory.js +32 -0
  20. package/dist/impl/StatusListFactory.js.map +1 -0
  21. package/dist/impl/encoding/cbor.d.ts +6 -0
  22. package/dist/impl/encoding/cbor.d.ts.map +1 -0
  23. package/dist/impl/encoding/cbor.js +132 -0
  24. package/dist/impl/encoding/cbor.js.map +1 -0
  25. package/dist/impl/encoding/common.d.ts +12 -0
  26. package/dist/impl/encoding/common.d.ts.map +1 -0
  27. package/dist/impl/encoding/common.js +26 -0
  28. package/dist/impl/encoding/common.js.map +1 -0
  29. package/dist/impl/encoding/jwt.d.ts +7 -0
  30. package/dist/impl/encoding/jwt.d.ts.map +1 -0
  31. package/dist/impl/encoding/jwt.js +56 -0
  32. package/dist/impl/encoding/jwt.js.map +1 -0
  33. package/dist/types/index.d.ts +107 -29
  34. package/dist/types/index.d.ts.map +1 -1
  35. package/dist/types/index.js +12 -0
  36. package/dist/types/index.js.map +1 -1
  37. package/dist/utils.d.ts +17 -0
  38. package/dist/utils.d.ts.map +1 -0
  39. package/dist/utils.js +87 -0
  40. package/dist/utils.js.map +1 -0
  41. package/package.json +11 -3
  42. package/src/functions.ts +57 -164
  43. package/src/impl/IStatusList.ts +36 -0
  44. package/src/impl/OAuthStatusList.ts +165 -0
  45. package/src/impl/StatusList2021.ts +194 -0
  46. package/src/impl/StatusListFactory.ts +34 -0
  47. package/src/impl/encoding/cbor.ts +160 -0
  48. package/src/impl/encoding/common.ts +25 -0
  49. package/src/impl/encoding/jwt.ts +54 -0
  50. package/src/types/index.ts +123 -41
  51. package/src/utils.ts +91 -0
@@ -1,11 +1,11 @@
1
1
  import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
2
- import { OriginalVerifiableCredential, StatusListDriverType, StatusListType, StatusPurpose2021 } from '@sphereon/ssi-types';
2
+ import { StatusListDriverType, StatusListType, StatusListCredential, StatusPurpose2021 } from '@sphereon/ssi-types';
3
3
  import { IAgentContext, ICredentialPlugin } from '@veramo/core';
4
4
  import { StatusMethod } from 'credential-status';
5
- import { CreateNewStatusListFuncArgs, StatusList2021ToVerifiableCredentialArgs, StatusListDetails, StatusListResult, UpdateStatusListFromEncodedListArgs, UpdateStatusListFromStatusListCredentialArgs } from './types';
5
+ import { CreateNewStatusListFuncArgs, Status2021, StatusList2021ToVerifiableCredentialArgs, StatusListResult, StatusOAuth, UpdateStatusListFromEncodedListArgs, UpdateStatusListFromStatusListCredentialArgs } from './types';
6
6
  export declare function fetchStatusListCredential(args: {
7
7
  statusListCredential: string;
8
- }): Promise<OriginalVerifiableCredential>;
8
+ }): Promise<StatusListCredential>;
9
9
  export declare function statusPluginStatusFunction(args: {
10
10
  documentLoader: any;
11
11
  suite: any;
@@ -24,7 +24,7 @@ export declare function vcLibCheckStatusFunction(args: {
24
24
  verifyMatchingIssuers?: boolean;
25
25
  errorUnknownListType?: boolean;
26
26
  }): (args: {
27
- credential: OriginalVerifiableCredential;
27
+ credential: StatusListCredential;
28
28
  documentLoader: any;
29
29
  suite: any;
30
30
  }) => Promise<{
@@ -32,7 +32,7 @@ export declare function vcLibCheckStatusFunction(args: {
32
32
  error?: any;
33
33
  }>;
34
34
  export declare function checkStatusForCredential(args: {
35
- credential: OriginalVerifiableCredential;
35
+ credential: StatusListCredential;
36
36
  documentLoader: any;
37
37
  suite: any;
38
38
  mandatoryCredentialStatus?: boolean;
@@ -49,21 +49,21 @@ export declare function simpleCheckStatusFromStatusListUrl(args: {
49
49
  type?: StatusListType | 'StatusList2021Entry';
50
50
  id?: string;
51
51
  statusListIndex: string;
52
- }): Promise<boolean>;
52
+ }): Promise<number | Status2021 | StatusOAuth>;
53
53
  export declare function checkStatusIndexFromStatusListCredential(args: {
54
- statusListCredential: OriginalVerifiableCredential;
54
+ statusListCredential: StatusListCredential;
55
55
  statusPurpose?: StatusPurpose2021;
56
56
  type?: StatusListType | 'StatusList2021Entry';
57
57
  id?: string;
58
58
  statusListIndex: string | number;
59
- }): Promise<boolean>;
59
+ }): Promise<number | Status2021 | StatusOAuth>;
60
60
  export declare function createNewStatusList(args: CreateNewStatusListFuncArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
61
- export declare function updateStatusIndexFromStatusListCredential(args: UpdateStatusListFromStatusListCredentialArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListDetails>;
61
+ export declare function updateStatusIndexFromStatusListCredential(args: UpdateStatusListFromStatusListCredentialArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
62
62
  export declare function statusListCredentialToDetails(args: {
63
- statusListCredential: OriginalVerifiableCredential;
63
+ statusListCredential: StatusListCredential;
64
64
  correlationId?: string;
65
65
  driverType?: StatusListDriverType;
66
- }): Promise<StatusListDetails>;
67
- export declare function updateStatusListIndexFromEncodedList(args: UpdateStatusListFromEncodedListArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListDetails>;
68
- export declare function statusList2021ToVerifiableCredential(args: StatusList2021ToVerifiableCredentialArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<OriginalVerifiableCredential>;
66
+ }): Promise<StatusListResult>;
67
+ export declare function updateStatusListIndexFromEncodedList(args: UpdateStatusListFromEncodedListArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
68
+ export declare function statusList2021ToVerifiableCredential(args: StatusList2021ToVerifiableCredentialArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListCredential>;
69
69
  //# sourceMappingURL=functions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.d.ts","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
package/dist/functions.js CHANGED
@@ -22,14 +22,15 @@ exports.updateStatusListIndexFromEncodedList = updateStatusListIndexFromEncodedL
22
22
  exports.statusList2021ToVerifiableCredential = statusList2021ToVerifiableCredential;
23
23
  const ssi_types_1 = require("@sphereon/ssi-types");
24
24
  const vc_status_list_1 = require("@sphereon/vc-status-list");
25
+ const utils_1 = require("./utils");
26
+ const StatusListFactory_1 = require("./impl/StatusListFactory");
25
27
  function fetchStatusListCredential(args) {
26
28
  return __awaiter(this, void 0, void 0, function* () {
27
- const url = getAssertedValue('statusListCredential', args.statusListCredential);
29
+ const url = (0, utils_1.getAssertedValue)('statusListCredential', args.statusListCredential);
28
30
  try {
29
31
  const response = yield fetch(url);
30
32
  if (!response.ok) {
31
- const error = `Fetching status list ${url} resulted in an error: ${response.status} : ${response.statusText}`;
32
- throw Error(error);
33
+ throw Error(`Fetching status list ${url} resulted in an error: ${response.status} : ${response.statusText}`);
33
34
  }
34
35
  const responseAsText = yield response.text();
35
36
  if (responseAsText.trim().startsWith('{')) {
@@ -38,7 +39,7 @@ function fetchStatusListCredential(args) {
38
39
  return responseAsText;
39
40
  }
40
41
  catch (error) {
41
- console.log(`Fetching status list ${url} resulted in an unexpected error: ${error instanceof Error ? error.message : JSON.stringify(error)}`);
42
+ console.error(`Fetching status list ${url} resulted in an unexpected error: ${error instanceof Error ? error.message : JSON.stringify(error)}`);
42
43
  throw error;
43
44
  }
44
45
  });
@@ -99,118 +100,66 @@ function simpleCheckStatusFromStatusListUrl(args) {
99
100
  }
100
101
  function checkStatusIndexFromStatusListCredential(args) {
101
102
  return __awaiter(this, void 0, void 0, function* () {
102
- var _a;
103
- const requestedType = getAssertedStatusListType((_a = args.type) === null || _a === void 0 ? void 0 : _a.replace('Entry', ''));
104
- const uniform = ssi_types_1.CredentialMapper.toUniformCredential(args.statusListCredential);
105
- const { issuer, type, credentialSubject, id } = uniform;
106
- getAssertedValue('issuer', issuer); // We are only checking the value here
107
- getAssertedValue('credentialSubject', credentialSubject);
108
- if (args.statusPurpose && 'statusPurpose' in credentialSubject) {
109
- if (args.statusPurpose !== credentialSubject.statusPurpose) {
110
- throw Error(`Status purpose in StatusList credential with id ${id} and value ${credentialSubject.statusPurpose} does not match supplied purpose: ${args.statusPurpose}`);
111
- }
112
- }
113
- else if (args.id && args.id !== id) {
114
- throw Error(`Status list id ${id} did not match required supplied id: ${args.id}`);
115
- }
116
- if (!type || !(type.includes(requestedType) || type.includes(requestedType + 'Credential'))) {
117
- throw Error(`Credential type ${JSON.stringify(type)} does not contain requested type ${requestedType}`);
118
- }
119
- // @ts-ignore
120
- const encodedList = getAssertedValue('encodedList', credentialSubject['encodedList']);
121
- const statusList = yield vc_status_list_1.StatusList.decode({ encodedList });
122
- const status = statusList.getStatus(typeof args.statusListIndex === 'number' ? args.statusListIndex : Number.parseInt(args.statusListIndex));
123
- return status;
103
+ const statusListType = (0, utils_1.determineStatusListType)(args.statusListCredential);
104
+ const implementation = (0, StatusListFactory_1.getStatusListImplementation)(statusListType);
105
+ return implementation.checkStatusIndex(args);
124
106
  });
125
107
  }
126
108
  function createNewStatusList(args, context) {
127
109
  return __awaiter(this, void 0, void 0, function* () {
128
- var _a, _b, _c;
129
- const length = (_a = args === null || args === void 0 ? void 0 : args.length) !== null && _a !== void 0 ? _a : 250000;
130
- const proofFormat = (_b = args === null || args === void 0 ? void 0 : args.proofFormat) !== null && _b !== void 0 ? _b : 'lds';
131
- const { issuer, type, id } = getAssertedValues(args);
132
- const correlationId = getAssertedValue('correlationId', args.correlationId);
133
- const list = new vc_status_list_1.StatusList({ length });
134
- const encodedList = yield list.encode();
135
- const statusPurpose = (_c = args.statusPurpose) !== null && _c !== void 0 ? _c : 'revocation';
136
- const statusListCredential = yield statusList2021ToVerifiableCredential(Object.assign(Object.assign({}, args), { type,
137
- proofFormat,
138
- encodedList }), context);
139
- return {
140
- encodedList,
141
- statusListCredential,
142
- length,
143
- type,
144
- proofFormat,
145
- id,
146
- correlationId,
147
- issuer,
148
- statusPurpose,
149
- indexingDirection: 'rightToLeft',
150
- };
110
+ const { type } = (0, utils_1.getAssertedValues)(args);
111
+ const implementation = (0, StatusListFactory_1.getStatusListImplementation)(type);
112
+ return implementation.createNewStatusList(args, context);
151
113
  });
152
114
  }
153
115
  function updateStatusIndexFromStatusListCredential(args, context) {
154
116
  return __awaiter(this, void 0, void 0, function* () {
155
- return updateStatusListIndexFromEncodedList(Object.assign(Object.assign({}, (yield statusListCredentialToDetails(args))), { statusListIndex: args.statusListIndex, value: args.value }), context);
117
+ const credential = (0, utils_1.getAssertedValue)('statusListCredential', args.statusListCredential);
118
+ const statusListType = (0, utils_1.determineStatusListType)(credential);
119
+ const implementation = (0, StatusListFactory_1.getStatusListImplementation)(statusListType);
120
+ return implementation.updateStatusListIndex(args, context);
156
121
  });
157
122
  }
123
+ // Keeping helper function for backward compatibility
158
124
  function statusListCredentialToDetails(args) {
159
125
  return __awaiter(this, void 0, void 0, function* () {
160
- const credential = getAssertedValue('statusListCredential', args.statusListCredential);
126
+ const credential = (0, utils_1.getAssertedValue)('statusListCredential', args.statusListCredential);
161
127
  const uniform = ssi_types_1.CredentialMapper.toUniformCredential(credential);
162
- const { issuer, type, credentialSubject } = uniform;
163
- if (!type.includes('StatusList2021Credential')) {
164
- throw Error('StatusList2021Credential type should be present in the Verifiable Credential');
128
+ const type = uniform.type.find((t) => t.includes('StatusList2021') || t.includes('OAuth2StatusList'));
129
+ if (!type) {
130
+ throw new Error('Invalid status list credential type');
165
131
  }
166
- const id = getAssertedValue('id', uniform.id);
167
- // @ts-ignore
168
- const { encodedList, statusPurpose } = credentialSubject;
169
- const proofFormat = ssi_types_1.CredentialMapper.detectDocumentType(credential) === 0 /* DocumentFormat.JWT */ ? 'jwt' : 'lds';
170
- return Object.assign(Object.assign({ id,
171
- encodedList,
172
- issuer, type: ssi_types_1.StatusListType.StatusList2021, proofFormat, indexingDirection: 'rightToLeft', length: (yield vc_status_list_1.StatusList.decode({ encodedList })).length, statusPurpose, statusListCredential: credential }, (args.correlationId && { correlationId: args.correlationId })), (args.driverType && { driverType: args.driverType }));
132
+ const statusListType = type.replace('Credential', '');
133
+ const implementation = (0, StatusListFactory_1.getStatusListImplementation)(statusListType);
134
+ return implementation.updateStatusListIndex({
135
+ statusListCredential: args.statusListCredential,
136
+ statusListIndex: 0,
137
+ value: 0,
138
+ }, {});
173
139
  });
174
140
  }
175
141
  function updateStatusListIndexFromEncodedList(args, context) {
176
142
  return __awaiter(this, void 0, void 0, function* () {
177
- var _a;
178
- const { issuer, type, id } = getAssertedValues(args);
179
- const proofFormat = (_a = args === null || args === void 0 ? void 0 : args.proofFormat) !== null && _a !== void 0 ? _a : 'lds';
180
- const origEncodedList = getAssertedValue('encodedList', args.encodedList);
181
- const index = getAssertedValue('index', typeof args.statusListIndex === 'number' ? args.statusListIndex : Number.parseInt(args.statusListIndex));
182
- const value = getAssertedValue('value', args.value);
183
- const statusPurpose = getAssertedValue('statusPurpose', args.statusPurpose);
184
- const statusList = yield vc_status_list_1.StatusList.decode({ encodedList: origEncodedList });
185
- statusList.setStatus(index, value);
186
- const encodedList = yield statusList.encode();
187
- const statusListCredential = yield statusList2021ToVerifiableCredential(Object.assign(Object.assign({}, args), { type,
188
- proofFormat,
189
- encodedList }), context);
190
- return {
191
- encodedList,
192
- statusListCredential,
193
- length: statusList.length - 1,
194
- type,
195
- proofFormat,
196
- id,
197
- issuer,
198
- statusPurpose,
199
- indexingDirection: 'rightToLeft',
200
- };
143
+ const { type } = (0, utils_1.getAssertedValue)('type', args);
144
+ const implementation = (0, StatusListFactory_1.getStatusListImplementation)(type);
145
+ return implementation.updateStatusListFromEncodedList(args, context);
201
146
  });
202
147
  }
148
+ // TODO Is this still in use? Or do we need to redesign this after having multiple status list types?
203
149
  function statusList2021ToVerifiableCredential(args, context) {
204
150
  return __awaiter(this, void 0, void 0, function* () {
205
151
  var _a;
206
- const { issuer, id, type } = getAssertedValues(args);
152
+ const { issuer, id, type } = (0, utils_1.getAssertedValues)(args);
207
153
  const identifier = yield context.agent.identifierManagedGet({
208
154
  identifier: typeof issuer === 'string' ? issuer : issuer.id,
209
155
  vmRelationship: 'assertionMethod',
210
156
  offlineWhenNoDIDRegistered: true, // FIXME Fix identifier resolution for EBSI
211
157
  });
212
- const encodedList = getAssertedValue('encodedList', args.encodedList);
213
- const statusPurpose = getAssertedValue('statusPurpose', args.statusPurpose);
158
+ const proofFormat = (_a = args === null || args === void 0 ? void 0 : args.proofFormat) !== null && _a !== void 0 ? _a : 'lds';
159
+ (0, utils_1.assertValidProofType)(ssi_types_1.StatusListType.StatusList2021, proofFormat);
160
+ const vmoProofFormat = proofFormat;
161
+ const encodedList = (0, utils_1.getAssertedValue)('encodedList', args.encodedList);
162
+ const statusPurpose = (0, utils_1.getAssertedValue)('statusPurpose', args.statusPurpose);
214
163
  const credential = {
215
164
  '@context': ['https://www.w3.org/2018/credentials/v1', 'https://w3id.org/vc/status-list/2021/v1'],
216
165
  id,
@@ -228,29 +177,10 @@ function statusList2021ToVerifiableCredential(args, context) {
228
177
  const verifiableCredential = yield context.agent.createVerifiableCredential({
229
178
  credential,
230
179
  keyRef: identifier.kmsKeyRef,
231
- proofFormat: (_a = args.proofFormat) !== null && _a !== void 0 ? _a : 'lds',
180
+ proofFormat: vmoProofFormat,
232
181
  fetchRemoteContexts: true,
233
182
  });
234
183
  return ssi_types_1.CredentialMapper.toWrappedVerifiableCredential(verifiableCredential).original;
235
184
  });
236
185
  }
237
- function getAssertedStatusListType(type) {
238
- const assertedType = type !== null && type !== void 0 ? type : ssi_types_1.StatusListType.StatusList2021;
239
- if (assertedType !== ssi_types_1.StatusListType.StatusList2021) {
240
- throw Error(`StatusList type ${assertedType} is not supported (yet)`);
241
- }
242
- return assertedType;
243
- }
244
- function getAssertedValue(name, value) {
245
- if (value === undefined || value === null) {
246
- throw Error(`Missing required ${name} value`);
247
- }
248
- return value;
249
- }
250
- function getAssertedValues(args) {
251
- const type = getAssertedStatusListType(args === null || args === void 0 ? void 0 : args.type);
252
- const id = getAssertedValue('id', args.id);
253
- const issuer = getAssertedValue('issuer', args.issuer);
254
- return { id, issuer, type };
255
- }
256
186
  //# sourceMappingURL=functions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../src/functions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { IAgentContext, ICredentialPlugin } from '@veramo/core';
2
+ import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
3
+ import { CheckStatusIndexArgs, CreateStatusListArgs, Status2021, StatusListResult, StatusOAuth, UpdateStatusListFromEncodedListArgs, UpdateStatusListIndexArgs } from '../types';
4
+ export interface IStatusList {
5
+ /**
6
+ * Creates a new status list of the specific type
7
+ */
8
+ createNewStatusList(args: CreateStatusListArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
9
+ /**
10
+ * Updates a status at the given index in the status list
11
+ */
12
+ updateStatusListIndex(args: UpdateStatusListIndexArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
13
+ /**
14
+ * Updates a status list using a base64 encoded list of statuses
15
+ */
16
+ updateStatusListFromEncodedList(args: UpdateStatusListFromEncodedListArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
17
+ /**
18
+ * Checks the status at a given index in the status list
19
+ */
20
+ checkStatusIndex(args: CheckStatusIndexArgs): Promise<number | Status2021 | StatusOAuth>;
21
+ }
22
+ //# sourceMappingURL=IStatusList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IStatusList.d.ts","sourceRoot":"","sources":["../../src/impl/IStatusList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,mCAAmC,EACnC,yBAAyB,EAC1B,MAAM,UAAU,CAAA;AAEjB,MAAM,WAAW,WAAW;IAC1B;;OAEG;IACH,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,aAAa,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE7I;;OAEG;IACH,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,aAAa,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAEpJ;;OAEG;IACH,+BAA+B,CAC7B,IAAI,EAAE,mCAAmC,EACzC,OAAO,EAAE,aAAa,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAE5B;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,GAAG,WAAW,CAAC,CAAA;CACzF"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IStatusList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IStatusList.js","sourceRoot":"","sources":["../../src/impl/IStatusList.ts"],"names":[],"mappings":""}
@@ -0,0 +1,21 @@
1
+ import { IAgentContext, ICredentialPlugin } from '@veramo/core';
2
+ import { ProofFormat } from '@sphereon/ssi-types';
3
+ import { CheckStatusIndexArgs, CreateStatusListArgs, StatusListResult, StatusOAuth, UpdateStatusListFromEncodedListArgs, UpdateStatusListIndexArgs } from '../types';
4
+ import { IStatusList } from './IStatusList';
5
+ import { StatusListJWTHeaderParameters } from '@sd-jwt/jwt-status-list';
6
+ import { IJwtService } from '@sphereon/ssi-sdk-ext.jwt-service';
7
+ import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
8
+ type IRequiredContext = IAgentContext<ICredentialPlugin & IJwtService & IIdentifierResolution>;
9
+ export declare const BITS_PER_STATUS_DEFAULT = 2;
10
+ export declare const DEFAULT_LIST_LENGTH = 250000;
11
+ export declare const DEFAULT_PROOF_FORMAT: ProofFormat;
12
+ export declare const STATUS_LIST_JWT_HEADER: StatusListJWTHeaderParameters;
13
+ export declare class OAuthStatusListImplementation implements IStatusList {
14
+ createNewStatusList(args: CreateStatusListArgs, context: IRequiredContext): Promise<StatusListResult>;
15
+ updateStatusListIndex(args: UpdateStatusListIndexArgs, context: IRequiredContext): Promise<StatusListResult>;
16
+ updateStatusListFromEncodedList(args: UpdateStatusListFromEncodedListArgs, context: IRequiredContext): Promise<StatusListResult>;
17
+ checkStatusIndex(args: CheckStatusIndexArgs): Promise<number | StatusOAuth>;
18
+ private createSignedStatusList;
19
+ }
20
+ export {};
21
+ //# sourceMappingURL=OAuthStatusList.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthStatusList.d.ts","sourceRoot":"","sources":["../../src/impl/OAuthStatusList.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,WAAW,EAAkB,MAAM,qBAAqB,CAAA;AACjE,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EAEpB,gBAAgB,EAChB,WAAW,EACX,mCAAmC,EACnC,yBAAyB,EAC1B,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAc,6BAA6B,EAAE,MAAM,yBAAyB,CAAA;AACnF,OAAO,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAInF,KAAK,gBAAgB,GAAG,aAAa,CAAC,iBAAiB,GAAG,WAAW,GAAG,qBAAqB,CAAC,CAAA;AAE9F,eAAO,MAAM,uBAAuB,IAAI,CAAA;AACxC,eAAO,MAAM,mBAAmB,SAAS,CAAA;AACzC,eAAO,MAAM,oBAAoB,EAAY,WAAW,CAAA;AACxD,eAAO,MAAM,sBAAsB,EAAE,6BAGpC,CAAA;AAED,qBAAa,6BAA8B,YAAW,WAAW;IACzD,mBAAmB,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6BrG,qBAAqB,CAAC,IAAI,EAAE,yBAAyB,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAuC5G,+BAA+B,CAAC,IAAI,EAAE,mCAAmC,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8BhI,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC;YAiBnE,sBAAsB;CAmBrC"}
@@ -0,0 +1,142 @@
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.OAuthStatusListImplementation = exports.STATUS_LIST_JWT_HEADER = exports.DEFAULT_PROOF_FORMAT = exports.DEFAULT_LIST_LENGTH = exports.BITS_PER_STATUS_DEFAULT = void 0;
13
+ const ssi_types_1 = require("@sphereon/ssi-types");
14
+ const utils_1 = require("../utils");
15
+ const jwt_status_list_1 = require("@sd-jwt/jwt-status-list");
16
+ const jwt_1 = require("./encoding/jwt");
17
+ const cbor_1 = require("./encoding/cbor");
18
+ exports.BITS_PER_STATUS_DEFAULT = 2; // 2 bits are sufficient for 0x00 - "VALID" 0x01 - "INVALID" & 0x02 - "SUSPENDED"
19
+ exports.DEFAULT_LIST_LENGTH = 250000;
20
+ exports.DEFAULT_PROOF_FORMAT = 'jwt';
21
+ exports.STATUS_LIST_JWT_HEADER = {
22
+ alg: 'EdDSA',
23
+ typ: 'statuslist+jwt',
24
+ };
25
+ class OAuthStatusListImplementation {
26
+ createNewStatusList(args, context) {
27
+ return __awaiter(this, void 0, void 0, function* () {
28
+ var _a, _b, _c;
29
+ if (!args.oauthStatusList) {
30
+ throw new Error('OAuthStatusList options are required for type OAuthStatusList');
31
+ }
32
+ const proofFormat = (_a = args === null || args === void 0 ? void 0 : args.proofFormat) !== null && _a !== void 0 ? _a : exports.DEFAULT_PROOF_FORMAT;
33
+ const { issuer, id, keyRef } = args;
34
+ const length = (_b = args.length) !== null && _b !== void 0 ? _b : exports.DEFAULT_LIST_LENGTH;
35
+ const bitsPerStatus = (_c = args.oauthStatusList.bitsPerStatus) !== null && _c !== void 0 ? _c : exports.BITS_PER_STATUS_DEFAULT;
36
+ const issuerString = typeof issuer === 'string' ? issuer : issuer.id;
37
+ const correlationId = (0, utils_1.getAssertedValue)('correlationId', args.correlationId);
38
+ const statusList = new jwt_status_list_1.StatusList(new Array(length).fill(0), bitsPerStatus);
39
+ const encodedList = statusList.compressStatusList();
40
+ const { statusListCredential } = yield this.createSignedStatusList(proofFormat, context, statusList, issuerString, id, keyRef);
41
+ return {
42
+ encodedList,
43
+ statusListCredential,
44
+ oauthStatusList: { bitsPerStatus },
45
+ length,
46
+ type: ssi_types_1.StatusListType.OAuthStatusList,
47
+ proofFormat,
48
+ id,
49
+ correlationId,
50
+ issuer,
51
+ };
52
+ });
53
+ }
54
+ updateStatusListIndex(args, context) {
55
+ return __awaiter(this, void 0, void 0, function* () {
56
+ const { statusListCredential, value, keyRef } = args;
57
+ if (typeof statusListCredential !== 'string') {
58
+ return Promise.reject('statusListCredential in neither JWT nor CWT');
59
+ }
60
+ const proofFormat = (0, utils_1.determineProofFormat)(statusListCredential);
61
+ const decoded = proofFormat === 'jwt' ? (0, jwt_1.decodeStatusListJWT)(statusListCredential) : (0, cbor_1.decodeStatusListCWT)(statusListCredential);
62
+ const { statusList, issuer, id } = decoded;
63
+ const index = typeof args.statusListIndex === 'number' ? args.statusListIndex : parseInt(args.statusListIndex);
64
+ if (index < 0 || index >= statusList.statusList.length) {
65
+ throw new Error('Status list index out of bounds');
66
+ }
67
+ statusList.setStatus(index, value);
68
+ const { statusListCredential: signedCredential, encodedList } = yield this.createSignedStatusList(proofFormat, context, statusList, issuer, id, keyRef);
69
+ return {
70
+ statusListCredential: signedCredential,
71
+ encodedList,
72
+ oauthStatusList: {
73
+ bitsPerStatus: statusList.getBitsPerStatus(),
74
+ },
75
+ length: statusList.statusList.length,
76
+ type: ssi_types_1.StatusListType.OAuthStatusList,
77
+ proofFormat,
78
+ id,
79
+ issuer,
80
+ };
81
+ });
82
+ }
83
+ updateStatusListFromEncodedList(args, context) {
84
+ return __awaiter(this, void 0, void 0, function* () {
85
+ var _a, _b;
86
+ if (!args.oauthStatusList) {
87
+ throw new Error('OAuthStatusList options are required for type OAuthStatusList');
88
+ }
89
+ const proofFormat = (_a = args.proofFormat) !== null && _a !== void 0 ? _a : exports.DEFAULT_PROOF_FORMAT;
90
+ const { issuer, id } = (0, utils_1.getAssertedValues)(args);
91
+ const bitsPerStatus = (_b = args.oauthStatusList.bitsPerStatus) !== null && _b !== void 0 ? _b : exports.BITS_PER_STATUS_DEFAULT;
92
+ const issuerString = typeof issuer === 'string' ? issuer : issuer.id;
93
+ const listToUpdate = jwt_status_list_1.StatusList.decompressStatusList(args.encodedList, bitsPerStatus);
94
+ const index = typeof args.statusListIndex === 'number' ? args.statusListIndex : parseInt(args.statusListIndex);
95
+ listToUpdate.setStatus(index, args.value ? 1 : 0);
96
+ const { statusListCredential, encodedList } = yield this.createSignedStatusList(proofFormat, context, listToUpdate, issuerString, id, args.keyRef);
97
+ return {
98
+ encodedList,
99
+ statusListCredential,
100
+ oauthStatusList: {
101
+ bitsPerStatus,
102
+ },
103
+ length: listToUpdate.statusList.length,
104
+ type: ssi_types_1.StatusListType.OAuthStatusList,
105
+ proofFormat,
106
+ id,
107
+ issuer,
108
+ };
109
+ });
110
+ }
111
+ checkStatusIndex(args) {
112
+ return __awaiter(this, void 0, void 0, function* () {
113
+ const { statusListCredential, statusListIndex } = args;
114
+ if (typeof statusListCredential !== 'string') {
115
+ return Promise.reject('statusListCredential in neither JWT nor CWT');
116
+ }
117
+ const proofFormat = (0, utils_1.determineProofFormat)(statusListCredential);
118
+ const { statusList } = proofFormat === 'jwt' ? (0, jwt_1.decodeStatusListJWT)(statusListCredential) : (0, cbor_1.decodeStatusListCWT)(statusListCredential);
119
+ const index = typeof statusListIndex === 'number' ? statusListIndex : parseInt(statusListIndex);
120
+ if (index < 0 || index >= statusList.statusList.length) {
121
+ throw new Error('Status list index out of bounds');
122
+ }
123
+ return statusList.getStatus(index);
124
+ });
125
+ }
126
+ createSignedStatusList(proofFormat, context, statusList, issuerString, id, keyRef) {
127
+ return __awaiter(this, void 0, void 0, function* () {
128
+ switch (proofFormat) {
129
+ case 'jwt': {
130
+ return yield (0, jwt_1.createSignedJwt)(context, statusList, issuerString, id, keyRef);
131
+ }
132
+ case 'cbor': {
133
+ return yield (0, cbor_1.createSignedCbor)(context, statusList, issuerString, id, keyRef);
134
+ }
135
+ default:
136
+ throw new Error(`Invalid proof format '${proofFormat}' for OAuthStatusList`);
137
+ }
138
+ });
139
+ }
140
+ }
141
+ exports.OAuthStatusListImplementation = OAuthStatusListImplementation;
142
+ //# sourceMappingURL=OAuthStatusList.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OAuthStatusList.js","sourceRoot":"","sources":["../../src/impl/OAuthStatusList.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import { IAgentContext, ICredentialPlugin, ProofFormat as VmoProofFormat } from '@veramo/core';
2
+ import { IIdentifierResolution } from '@sphereon/ssi-sdk-ext.identifier-resolution';
3
+ import { IStatusList } from './IStatusList';
4
+ import { CheckStatusIndexArgs, CreateStatusListArgs, Status2021, StatusListResult, UpdateStatusListFromEncodedListArgs, UpdateStatusListIndexArgs } from '../types';
5
+ export declare const DEFAULT_LIST_LENGTH = 250000;
6
+ export declare const DEFAULT_PROOF_FORMAT: VmoProofFormat;
7
+ export declare class StatusList2021Implementation implements IStatusList {
8
+ createNewStatusList(args: CreateStatusListArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
9
+ updateStatusListIndex(args: UpdateStatusListIndexArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
10
+ updateStatusListFromEncodedList(args: UpdateStatusListFromEncodedListArgs, context: IAgentContext<ICredentialPlugin & IIdentifierResolution>): Promise<StatusListResult>;
11
+ checkStatusIndex(args: CheckStatusIndexArgs): Promise<number | Status2021>;
12
+ private createVerifiableCredential;
13
+ }
14
+ //# sourceMappingURL=StatusList2021.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusList2021.d.ts","sourceRoot":"","sources":["../../src/impl/StatusList2021.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,cAAc,CAAA;AAC9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AAInF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,UAAU,EACV,gBAAgB,EAChB,mCAAmC,EACnC,yBAAyB,EAC1B,MAAM,UAAU,CAAA;AAGjB,eAAO,MAAM,mBAAmB,SAAS,CAAA;AACzC,eAAO,MAAM,oBAAoB,EAAY,cAAc,CAAA;AAE3D,qBAAa,4BAA6B,YAAW,WAAW;IACxD,mBAAmB,CACvB,IAAI,EAAE,oBAAoB,EAC1B,OAAO,EAAE,aAAa,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC;IAsCtB,qBAAqB,CACzB,IAAI,EAAE,yBAAyB,EAC/B,OAAO,EAAE,aAAa,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC;IAsCtB,+BAA+B,CACnC,IAAI,EAAE,mCAAmC,EACzC,OAAO,EAAE,aAAa,CAAC,iBAAiB,GAAG,qBAAqB,CAAC,GAChE,OAAO,CAAC,gBAAgB,CAAC;IAwCtB,gBAAgB,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,GAAG,UAAU,CAAC;YAUlE,0BAA0B;CAsCzC"}