@docknetwork/wallet-sdk-core 1.7.6 → 1.9.0

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 (76) hide show
  1. package/lib/cloud-wallet.d.ts +79 -3
  2. package/lib/cloud-wallet.d.ts.map +1 -1
  3. package/lib/cloud-wallet.js +147 -14
  4. package/lib/cloud-wallet.js.map +1 -1
  5. package/lib/credential-provider.d.ts.map +1 -1
  6. package/lib/credential-provider.js +10 -4
  7. package/lib/credential-provider.js.map +1 -1
  8. package/lib/delegation/delegation-chain.d.ts +8 -0
  9. package/lib/delegation/delegation-chain.d.ts.map +1 -0
  10. package/lib/delegation/delegation-chain.js +33 -0
  11. package/lib/delegation/delegation-chain.js.map +1 -0
  12. package/lib/delegation/delegation-fixtures.d.ts +69 -0
  13. package/lib/delegation/delegation-fixtures.d.ts.map +1 -0
  14. package/lib/delegation/delegation-fixtures.js +553 -0
  15. package/lib/delegation/delegation-fixtures.js.map +1 -0
  16. package/lib/delegation/delegation-issuance.d.ts +19 -0
  17. package/lib/delegation/delegation-issuance.d.ts.map +1 -0
  18. package/lib/delegation/delegation-issuance.js +60 -0
  19. package/lib/delegation/delegation-issuance.js.map +1 -0
  20. package/lib/delegation/delegation-offer.d.ts +84 -0
  21. package/lib/delegation/delegation-offer.d.ts.map +1 -0
  22. package/lib/delegation/delegation-offer.js +349 -0
  23. package/lib/delegation/delegation-offer.js.map +1 -0
  24. package/lib/delegation/delegation-policy-validation.d.ts +28 -0
  25. package/lib/delegation/delegation-policy-validation.d.ts.map +1 -0
  26. package/lib/delegation/delegation-policy-validation.js +170 -0
  27. package/lib/delegation/delegation-policy-validation.js.map +1 -0
  28. package/lib/delegation/delegation-policy.d.ts +21 -0
  29. package/lib/delegation/delegation-policy.d.ts.map +1 -0
  30. package/lib/delegation/delegation-policy.js +73 -0
  31. package/lib/delegation/delegation-policy.js.map +1 -0
  32. package/lib/delegation/delegation-tree.d.ts +17 -0
  33. package/lib/delegation/delegation-tree.d.ts.map +1 -0
  34. package/lib/delegation/delegation-tree.js +58 -0
  35. package/lib/delegation/delegation-tree.js.map +1 -0
  36. package/lib/delegation/delegation-types.d.ts +56 -0
  37. package/lib/delegation/delegation-types.d.ts.map +1 -0
  38. package/lib/delegation/delegation-types.js +3 -0
  39. package/lib/delegation/delegation-types.js.map +1 -0
  40. package/lib/delegation/delegation-utils.d.ts +3 -0
  41. package/lib/delegation/delegation-utils.d.ts.map +1 -0
  42. package/lib/delegation/delegation-utils.js +10 -0
  43. package/lib/delegation/delegation-utils.js.map +1 -0
  44. package/lib/did-provider.d.ts +2 -1
  45. package/lib/did-provider.d.ts.map +1 -1
  46. package/lib/did-provider.js +11 -7
  47. package/lib/did-provider.js.map +1 -1
  48. package/lib/message-provider.js +1 -1
  49. package/lib/message-provider.js.map +1 -1
  50. package/lib/verification-controller.d.ts +30 -11
  51. package/lib/verification-controller.d.ts.map +1 -1
  52. package/lib/verification-controller.js +372 -68
  53. package/lib/verification-controller.js.map +1 -1
  54. package/package.json +3 -3
  55. package/src/cloud-wallet.test.js +369 -0
  56. package/src/cloud-wallet.ts +206 -18
  57. package/src/credential-provider.ts +13 -4
  58. package/src/delegation/delegation-chain.test.ts +64 -0
  59. package/src/delegation/delegation-chain.ts +34 -0
  60. package/src/delegation/delegation-fixtures.ts +552 -0
  61. package/src/delegation/delegation-issuance.ts +92 -0
  62. package/src/delegation/delegation-offer.ts +488 -0
  63. package/src/delegation/delegation-policy-validation.test.ts +237 -0
  64. package/src/delegation/delegation-policy-validation.ts +281 -0
  65. package/src/delegation/delegation-policy.ts +100 -0
  66. package/src/delegation/delegation-tree.test.ts +110 -0
  67. package/src/delegation/delegation-tree.ts +60 -0
  68. package/src/delegation/delegation-types.ts +65 -0
  69. package/src/delegation/delegation-utils.ts +10 -0
  70. package/src/did-provider.ts +10 -6
  71. package/src/globals.d.ts +6 -0
  72. package/src/message-provider.ts +1 -1
  73. package/src/verification-controller.test.ts +23 -0
  74. package/src/verification-controller.ts +534 -82
  75. package/tsconfig.build.json +2 -1
  76. package/tsconfig.build.tsbuildinfo +1 -1
@@ -23,9 +23,6 @@ var VerificationStatus;
23
23
  VerificationStatus["NoCredentialsInTheWallet"] = "NoCredentialsInTheWallet";
24
24
  VerificationStatus["SelectingCredentials"] = "SelectingCredentials";
25
25
  })(VerificationStatus || (exports.VerificationStatus = VerificationStatus = {}));
26
- function isRangeProofTemplate(templateJSON) {
27
- return templateJSON.proving_key;
28
- }
29
26
  function createVerificationController({ wallet, credentialProvider, didProvider, }) {
30
27
  const emitter = new events_1.EventEmitter();
31
28
  let templateJSON = null;
@@ -36,31 +33,15 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
36
33
  */
37
34
  let statusData = null;
38
35
  let filteredCredentials = [];
36
+ let filteredMatches = [];
39
37
  let selectedCredentials = new Map();
40
38
  let selectedDID = null;
41
- let provingKey = null;
42
39
  if (!credentialProvider) {
43
40
  credentialProvider = (0, credential_provider_1.createCredentialProvider)({ wallet });
44
41
  }
45
42
  if (!didProvider) {
46
43
  didProvider = (0, did_provider_1.createDIDProvider)({ wallet });
47
44
  }
48
- async function fetchProvingKey(templateJSON) {
49
- if (templateJSON.proving_key) {
50
- setState(VerificationStatus.FetchingProvingKey);
51
- try {
52
- provingKey = await axios_1.default
53
- .get(templateJSON.proving_key)
54
- .then(res => res.data);
55
- }
56
- catch (err) {
57
- setState(VerificationStatus.Error, {
58
- message: 'failed_to_fetch_proving_key',
59
- });
60
- throw err;
61
- }
62
- }
63
- }
64
45
  async function start({ template }) {
65
46
  setState(VerificationStatus.LoadingTemplate);
66
47
  // check for dids
@@ -74,7 +55,6 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
74
55
  // the application needs to verify if there are more DIDs available, and allow the user to change this selection before creating a presentation
75
56
  selectedDID = dids[0].didDocument.id;
76
57
  templateJSON = await (0, helpers_1.getJSON)(template);
77
- await fetchProvingKey(templateJSON);
78
58
  await loadCredentials();
79
59
  setState(VerificationStatus.SelectingCredentials);
80
60
  }
@@ -98,6 +78,7 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
98
78
  holderDIDs: [],
99
79
  });
100
80
  filteredCredentials = result.verifiableCredential;
81
+ filteredMatches = result.matches || [];
101
82
  }
102
83
  catch (err) {
103
84
  console.error(`Unable to filter credentials using the template: \n ${JSON.stringify(templateJSON, null, 2)}`);
@@ -115,58 +96,257 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
115
96
  async function isKvacCredential(credential) {
116
97
  return credential_1.credentialServiceRPC.isKvacCredential({ credential });
117
98
  }
118
- async function createPresentation() {
119
- (0, assert_1.default)(!!selectedDID, 'No DID selected');
120
- (0, assert_1.default)(!!selectedCredentials.size, 'No credentials selected');
121
- if (isRangeProofTemplate(templateJSON)) {
122
- // TODO: Implement proving key usage for range-proofs
123
- (0, assert_1.default)(!!provingKey, 'No proving key found');
124
- }
99
+ async function deriveNonBbsCredentials(sdJwtSelections, regularSelections) {
125
100
  const credentials = [];
126
- for (const credentialSelection of selectedCredentials.values()) {
127
- const isBBS = await isBBSPlusCredential(credentialSelection.credential);
128
- const isKVAC = await isKvacCredential(credentialSelection.credential);
129
- if (credentialSelection.credential._sd_jwt) {
130
- const derivedCredential = await credential_1.credentialServiceRPC.createSDJWTPresentation({
131
- attributesToReveal: credentialSelection.attributesToReveal,
132
- credential: credentialSelection.credential._sd_jwt.encoded,
133
- });
134
- credentials.push(derivedCredential);
101
+ for (const sel of sdJwtSelections) {
102
+ const derived = await credential_1.credentialServiceRPC.createSDJWTPresentation({
103
+ attributesToReveal: sel.attributesToReveal,
104
+ credential: sel.credential._sd_jwt.encoded,
105
+ });
106
+ credentials.push(derived);
107
+ }
108
+ for (const sel of regularSelections) {
109
+ credentials.push(sel.credential);
110
+ }
111
+ return credentials;
112
+ }
113
+ function getKeyId(keyDoc) {
114
+ return keyDoc.controller.startsWith('did:key:')
115
+ ? keyDoc.id
116
+ : `${keyDoc.controller}#keys-1`;
117
+ }
118
+ async function assembleSignedPresentation(credentials, keyDoc) {
119
+ return credential_1.credentialServiceRPC.createPresentation({
120
+ credentials,
121
+ challenge: templateJSON.nonce,
122
+ keyDoc,
123
+ id: getKeyId(keyDoc),
124
+ domain: 'dock.io',
125
+ });
126
+ }
127
+ function getRequirementGroups() {
128
+ if (filteredMatches.length === 0) {
129
+ return [
130
+ {
131
+ descriptorKey: 'default',
132
+ descriptorName: 'default',
133
+ candidates: [...filteredCredentials],
134
+ },
135
+ ];
136
+ }
137
+ const groups = [];
138
+ const groupKeyFn = match => match.from ? JSON.stringify(match.from) : match.name || match.id || '';
139
+ const seen = new Map();
140
+ for (const match of filteredMatches) {
141
+ const key = groupKeyFn(match);
142
+ const candidateIndices = [];
143
+ for (const path of match.vc_path || []) {
144
+ const indexMatch = path.match(/\[(\d+)\]/);
145
+ if (indexMatch) {
146
+ candidateIndices.push(parseInt(indexMatch[1], 10));
147
+ }
135
148
  }
136
- else if (isBBS || isKVAC) {
137
- // derive credential
138
- const derivedCredentials = await credential_1.credentialServiceRPC.deriveVCFromPresentation({
139
- proofRequest: templateJSON,
140
- credentials: [
141
- {
142
- credential: credentialSelection.credential,
143
- witness: await credentialProvider.getMembershipWitness(credentialSelection.credential.id),
144
- attributesToReveal: [
145
- ...(credentialSelection.attributesToReveal || []),
146
- 'id',
147
- ],
148
- },
149
- ],
149
+ const candidates = candidateIndices
150
+ .map(idx => filteredCredentials[idx])
151
+ .filter(Boolean);
152
+ if (match.from || !seen.has(key)) {
153
+ seen.set(key, groups.length);
154
+ groups.push({
155
+ descriptorKey: key,
156
+ descriptorName: match.name || match.id || key,
157
+ candidates,
150
158
  });
151
- console.log('Credential derived');
152
- credentials.push(derivedCredentials[0]);
153
159
  }
154
160
  else {
155
- credentials.push(credentialSelection.credential);
161
+ const existing = groups[seen.get(key)];
162
+ for (const cred of candidates) {
163
+ if (!existing.candidates.some(c => c.id === cred.id)) {
164
+ existing.candidates.push(cred);
165
+ }
166
+ }
156
167
  }
157
168
  }
169
+ return groups;
170
+ }
171
+ async function filterValidCredentials(candidates) {
172
+ const results = await Promise.all(candidates.map(async (cred) => {
173
+ const statusResult = await credentialProvider.getCredentialStatus(cred);
174
+ return {
175
+ credential: cred,
176
+ status: statusResult.status,
177
+ };
178
+ }));
179
+ return results
180
+ .filter(r => r.status !== credential_provider_1.CredentialStatus.Revoked &&
181
+ r.status !== credential_provider_1.CredentialStatus.Invalid &&
182
+ r.status !== credential_provider_1.CredentialStatus.Expired)
183
+ .map(r => r.credential);
184
+ }
185
+ async function createDefaultPresentation() {
186
+ (0, assert_1.default)(filteredCredentials.length > 0, 'No filtered credentials available');
187
+ selectedCredentials.clear();
188
+ const groups = getRequirementGroups();
189
+ for (const group of groups) {
190
+ const validCandidates = await filterValidCredentials(group.candidates);
191
+ const chosen = validCandidates.find(cred => !selectedCredentials.has(cred.id)) ||
192
+ validCandidates[0];
193
+ if (chosen) {
194
+ selectedCredentials.set(chosen.id, { credential: chosen });
195
+ }
196
+ }
197
+ (0, assert_1.default)(selectedCredentials.size > 0, 'No credentials could be selected for the presentation');
198
+ return createPresentation();
199
+ }
200
+ function getSelectedCredentialsByDescriptor() {
201
+ const groups = getRequirementGroups();
202
+ return groups.map(group => {
203
+ const selected = group.candidates.find(cred => selectedCredentials.has(cred.id)) || null;
204
+ const alternatives = group.candidates.filter(cred => !selected || cred.id !== selected.id);
205
+ return {
206
+ descriptorId: group.descriptorKey,
207
+ descriptorName: group.descriptorName,
208
+ selected,
209
+ alternatives,
210
+ };
211
+ });
212
+ }
213
+ async function getCredentialOptionsForDescriptor(credentialId) {
214
+ const groups = getRequirementGroups();
215
+ const group = groups.find(g => g.candidates.some(c => c.id === credentialId));
216
+ (0, assert_1.default)(group, `Credential ${credentialId} not found in any descriptor group`);
217
+ const selected = group.candidates.find(c => c.id === credentialId);
218
+ const allAlternatives = group.candidates.filter(c => c.id !== credentialId);
219
+ const alternatives = await filterValidCredentials(allAlternatives);
220
+ return {
221
+ descriptorId: group.descriptorKey,
222
+ descriptorName: group.descriptorName,
223
+ selected,
224
+ alternatives,
225
+ };
226
+ }
227
+ async function switchCredential(currentCredentialId, replacementCredentialId) {
228
+ (0, assert_1.default)(selectedCredentials.has(currentCredentialId), `Credential ${currentCredentialId} is not currently selected`);
229
+ const options = await getCredentialOptionsForDescriptor(currentCredentialId);
230
+ const replacement = options.alternatives.find(c => c.id === replacementCredentialId);
231
+ (0, assert_1.default)(replacement, `Credential ${replacementCredentialId} is not a valid replacement for ${currentCredentialId}`);
232
+ selectedCredentials.delete(currentCredentialId);
233
+ selectedCredentials.set(replacementCredentialId, { credential: replacement });
234
+ return createPresentation();
235
+ }
236
+ function getAttributesToRevealFromTemplate(credential) {
237
+ const definition = getPresentationDefinition();
238
+ if (!definition?.input_descriptors) {
239
+ return ['id'];
240
+ }
241
+ const attributes = ['id'];
242
+ for (const descriptor of definition.input_descriptors) {
243
+ const fields = descriptor.constraints?.fields || [];
244
+ for (const field of fields) {
245
+ if (!field.path) {
246
+ continue;
247
+ }
248
+ const paths = Array.isArray(field.path) ? field.path : [field.path];
249
+ for (const p of paths) {
250
+ const attr = p.replace('$.', '');
251
+ if (attr &&
252
+ !attributes.includes(attr) &&
253
+ !attr.startsWith('type') &&
254
+ !attr.startsWith('issuer') &&
255
+ !attr.startsWith('@context') &&
256
+ !attr.startsWith('proof') &&
257
+ !attr.startsWith('credentialSchema') &&
258
+ !attr.startsWith('issuanceDate')) {
259
+ // Only include if the credential actually has this attribute
260
+ const value = attr
261
+ .split('.')
262
+ .reduce((obj, key) => obj?.[key], credential);
263
+ if (value !== undefined) {
264
+ attributes.push(attr);
265
+ }
266
+ break;
267
+ }
268
+ }
269
+ }
270
+ }
271
+ return attributes;
272
+ }
273
+ function ensureDescriptorMap(presentation) {
274
+ if (presentation?.presentation_submission?.descriptor_map?.length > 0) {
275
+ return presentation;
276
+ }
277
+ const definition = getPresentationDefinition();
278
+ if (!definition?.input_descriptors) {
279
+ return presentation;
280
+ }
281
+ const descriptorMap = definition.input_descriptors.map((descriptor, idx) => ({
282
+ id: descriptor.id,
283
+ format: 'ldp_vp',
284
+ path: `$.verifiableCredential[${idx}]`,
285
+ }));
286
+ presentation.presentation_submission = {
287
+ ...presentation.presentation_submission,
288
+ definition_id: definition.id,
289
+ descriptor_map: descriptorMap,
290
+ };
291
+ return presentation;
292
+ }
293
+ async function createPresentation() {
294
+ (0, assert_1.default)(!!selectedDID, 'No DID selected');
295
+ (0, assert_1.default)(!!selectedCredentials.size, 'No credentials selected');
158
296
  const didKeyPairList = await didProvider.getDIDKeyPairs();
159
297
  const keyDoc = didKeyPairList.find(doc => doc.controller === selectedDID);
160
298
  (0, assert_1.default)(keyDoc, `No key pair found for the selected DID ${selectedDID}`);
161
- const presentation = await credential_1.credentialServiceRPC.createPresentation({
162
- credentials,
163
- challenge: templateJSON.nonce,
164
- keyDoc,
165
- id: keyDoc.controller.startsWith('did:key:')
166
- ? keyDoc.id
167
- : `${keyDoc.controller}#keys-1`,
168
- domain: 'dock.io',
169
- });
299
+ const sdJwtSelections = [];
300
+ const bbsKvacSelections = [];
301
+ const regularSelections = [];
302
+ for (const credentialSelection of selectedCredentials.values()) {
303
+ if (credentialSelection.credential._sd_jwt) {
304
+ sdJwtSelections.push(credentialSelection);
305
+ }
306
+ else {
307
+ const isBBS = await isBBSPlusCredential(credentialSelection.credential);
308
+ const isKVAC = await isKvacCredential(credentialSelection.credential);
309
+ if (isBBS || isKVAC) {
310
+ bbsKvacSelections.push(credentialSelection);
311
+ }
312
+ else {
313
+ regularSelections.push(credentialSelection);
314
+ }
315
+ }
316
+ }
317
+ if (bbsKvacSelections.length > 0) {
318
+ // When attributesToReveal is undefined, the credential-sdk will automatically
319
+ // determine which attributes to reveal based on the PEX template requirements.
320
+ // This enables generating a default presentation without manual attribute selection.
321
+ const credentialsWithWitness = await Promise.all(bbsKvacSelections.map(async (sel) => {
322
+ return {
323
+ credential: sel.credential,
324
+ witness: await credentialProvider.getMembershipWitness(sel.credential.id),
325
+ attributesToReveal: sel.attributesToReveal ||
326
+ getAttributesToRevealFromTemplate(sel.credential),
327
+ };
328
+ }));
329
+ // Derive each BBS+/KVAC credential separately, then assemble into a signed presentation.
330
+ // This approach uses deriveVCFromPresentation which properly handles range proof
331
+ // bound checks and produces presentations that the Truvera API can verify.
332
+ const derivedResults = await Promise.all(credentialsWithWitness.map(c => credential_1.credentialServiceRPC.deriveVCFromPresentation({
333
+ proofRequest: templateJSON,
334
+ credentials: [
335
+ {
336
+ credential: c.credential,
337
+ witness: c.witness,
338
+ attributesToReveal: c.attributesToReveal,
339
+ },
340
+ ],
341
+ })));
342
+ const derivedCredentials = derivedResults.flat();
343
+ const nonBbsCredentials = await deriveNonBbsCredentials(sdJwtSelections, regularSelections);
344
+ const presentation = await assembleSignedPresentation([...derivedCredentials, ...nonBbsCredentials], keyDoc);
345
+ return presentation;
346
+ }
347
+ // No BBS+/KVAC: handle SD-JWT and regular only
348
+ const credentials = await deriveNonBbsCredentials(sdJwtSelections, regularSelections);
349
+ const presentation = await assembleSignedPresentation(credentials, keyDoc);
170
350
  return presentation;
171
351
  }
172
352
  /**
@@ -191,7 +371,7 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
191
371
  */
192
372
  function evaluatePresentation(presentation) {
193
373
  const definition = getPresentationDefinition();
194
- const result = credential_1.credentialServiceRPC.evaluatePresentation({
374
+ const result = pex_1.pexService.evaluatePresentation({
195
375
  presentation,
196
376
  presentationDefinition: definition,
197
377
  });
@@ -201,10 +381,126 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
201
381
  warnings: result.warnings,
202
382
  };
203
383
  }
204
- function submitPresentation(presentation) {
205
- return axios_1.default
206
- .post(templateJSON.response_url, presentation)
207
- .then(res => res.data);
384
+ function getRequestedAttributes(credentialId) {
385
+ const definition = getPresentationDefinition();
386
+ if (!definition?.input_descriptors) {
387
+ return [];
388
+ }
389
+ const groups = getRequirementGroups();
390
+ const group = groups.find(g => g.candidates.some(c => c.id === credentialId));
391
+ if (!group) {
392
+ return [];
393
+ }
394
+ const credential = group.candidates.find(c => c.id === credentialId);
395
+ if (!credential) {
396
+ return [];
397
+ }
398
+ const descriptor = definition.input_descriptors.find(d => (d.name || d.id) === group.descriptorName);
399
+ if (!descriptor?.constraints?.fields) {
400
+ return [];
401
+ }
402
+ const attributesToSkip = [
403
+ /^type/,
404
+ /^issuer/,
405
+ /^@context/,
406
+ /^proof/,
407
+ /^credentialSchema/,
408
+ /^issuanceDate/,
409
+ /^credentialStatus/,
410
+ /^cryptoVersion/,
411
+ ];
412
+ return descriptor.constraints.fields
413
+ .map(field => {
414
+ const paths = Array.isArray(field.path) ? field.path : [field.path];
415
+ let resolvedPath = null;
416
+ let value;
417
+ for (const p of paths) {
418
+ const cleanPath = p.replace('$.', '');
419
+ const pathParts = cleanPath.split('.');
420
+ let current = credential;
421
+ let found = true;
422
+ for (const part of pathParts) {
423
+ if (current && typeof current === 'object' && part in current) {
424
+ current = current[part];
425
+ }
426
+ else {
427
+ found = false;
428
+ break;
429
+ }
430
+ }
431
+ if (found) {
432
+ resolvedPath = cleanPath;
433
+ value = current;
434
+ break;
435
+ }
436
+ }
437
+ if (!resolvedPath) {
438
+ return null;
439
+ }
440
+ if (attributesToSkip.some(regex => regex.test(resolvedPath))) {
441
+ return null;
442
+ }
443
+ const isRangeProof = !!(field.filter &&
444
+ (field.filter.minimum !== undefined ||
445
+ field.filter.maximum !== undefined ||
446
+ field.filter.exclusiveMinimum !== undefined ||
447
+ field.filter.exclusiveMaximum !== undefined ||
448
+ field.filter.formatMinimum !== undefined ||
449
+ field.filter.formatMaximum !== undefined));
450
+ return {
451
+ name: resolvedPath,
452
+ value: isRangeProof ? null : value,
453
+ isRangeProof,
454
+ isOptional: field.optional === true,
455
+ ...(isRangeProof && {
456
+ min: field.filter.minimum ??
457
+ field.filter.exclusiveMinimum ??
458
+ field.filter.formatMinimum,
459
+ max: field.filter.maximum ??
460
+ field.filter.exclusiveMaximum ??
461
+ field.filter.formatMaximum,
462
+ }),
463
+ };
464
+ })
465
+ .filter(Boolean);
466
+ }
467
+ async function getCredentialStatus(credentialId) {
468
+ const groups = getRequirementGroups();
469
+ let credential = null;
470
+ for (const group of groups) {
471
+ credential = group.candidates.find(c => c.id === credentialId);
472
+ if (credential) {
473
+ break;
474
+ }
475
+ }
476
+ (0, assert_1.default)(credential, `Credential ${credentialId} not found in any descriptor group`);
477
+ return credentialProvider.isValid(credential);
478
+ }
479
+ async function canSwitchCredential(credentialId) {
480
+ try {
481
+ const options = await getCredentialOptionsForDescriptor(credentialId);
482
+ return options.alternatives.length > 0;
483
+ }
484
+ catch {
485
+ return false;
486
+ }
487
+ }
488
+ async function submitPresentation(presentation, maxRetries = 3) {
489
+ for (let attempt = 0; attempt < maxRetries; attempt++) {
490
+ try {
491
+ const res = await axios_1.default.post(templateJSON.response_url, presentation);
492
+ return res.data;
493
+ }
494
+ catch (err) {
495
+ const httpStatus = err?.response?.status;
496
+ const isRetryable = !httpStatus || httpStatus === 429 || httpStatus >= 500;
497
+ if (!isRetryable || attempt === maxRetries - 1) {
498
+ throw err;
499
+ }
500
+ const delay = Math.min(1000 * 2 ** attempt, 8000);
501
+ await new Promise(resolve => setTimeout(resolve, delay));
502
+ }
503
+ }
208
504
  }
209
505
  return {
210
506
  emitter,
@@ -220,8 +516,16 @@ function createVerificationController({ wallet, credentialProvider, didProvider,
220
516
  isBBSPlusCredential,
221
517
  loadCredentials,
222
518
  getFilteredCredentials,
519
+ createDefaultPresentation,
223
520
  createPresentation,
224
521
  evaluatePresentation,
522
+ getRequirementGroups,
523
+ getSelectedCredentialsByDescriptor,
524
+ getCredentialOptionsForDescriptor,
525
+ switchCredential,
526
+ getRequestedAttributes,
527
+ getCredentialStatus,
528
+ canSwitchCredential,
225
529
  getTemplateJSON() {
226
530
  return templateJSON;
227
531
  },
@@ -1 +1 @@
1
- {"version":3,"file":"verification-controller.js","sourceRoot":"","sources":["../src/verification-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification-controller.js","sourceRoot":"","sources":["../src/verification-controller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docknetwork/wallet-sdk-core",
3
- "version": "1.7.6",
3
+ "version": "1.9.0",
4
4
  "license": "https://github.com/docknetwork/wallet-sdk/LICENSE",
5
5
  "repository": {
6
6
  "type": "git",
@@ -22,13 +22,13 @@
22
22
  "typeorm": "^0.3.15"
23
23
  },
24
24
  "dependencies": {
25
- "@docknetwork/wallet-sdk-wasm": "^1.7.6",
25
+ "@docknetwork/wallet-sdk-wasm": "1.9.0",
26
26
  "futoin-hkdf": "^1.5.3"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@babel/parser": "^7.28.4",
30
30
  "@babel/preset-typescript": "^7.27.1",
31
- "@docknetwork/wallet-sdk-data-store": "^1.7.6",
31
+ "@docknetwork/wallet-sdk-data-store": "1.9.0",
32
32
  "better-docs": "^2.7.3",
33
33
  "jest": "29.1.0",
34
34
  "jsdoc": "^4.0.2",