@cooperation/vc-storage 1.0.43 → 1.0.45

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.
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Ed25519 signer compatible with @wallet.storage/fetch-client.
3
+ * Uses @digitalcredentials packages instead of @digitalbazaar.
4
+ */
5
+ import { Ed25519VerificationKey2020 } from '@digitalcredentials/ed25519-verification-key-2020';
6
+ export class Ed25519Signer {
7
+ keyPair;
8
+ verificationMethod;
9
+ algorithm = 'Ed25519';
10
+ constructor(keyPair, verificationMethod) {
11
+ this.keyPair = keyPair;
12
+ this.verificationMethod = verificationMethod;
13
+ }
14
+ static async generate() {
15
+ const keyPair = await Ed25519VerificationKey2020.generate();
16
+ const fingerprint = keyPair.fingerprint();
17
+ const controller = `did:key:${fingerprint}`;
18
+ keyPair.controller = controller;
19
+ keyPair.id = `${controller}#${fingerprint}`;
20
+ const verificationMethod = {
21
+ id: keyPair.id,
22
+ type: 'Ed25519VerificationKey2020',
23
+ controller,
24
+ publicKeyMultibase: keyPair.publicKeyMultibase,
25
+ };
26
+ return new Ed25519Signer(keyPair, verificationMethod);
27
+ }
28
+ static async fromJSON(json) {
29
+ const object = JSON.parse(json);
30
+ const { publicKeyMultibase, privateKeyMultibase, controller } = object;
31
+ if (typeof controller !== 'string') {
32
+ throw new Error('json object must have controller string', { cause: { parsedJson: object } });
33
+ }
34
+ if (typeof publicKeyMultibase !== 'string') {
35
+ throw new Error('json object must have publicKeyMultibase string', { cause: object });
36
+ }
37
+ if (typeof privateKeyMultibase !== 'string') {
38
+ throw new Error('json object must have privateKeyMultibase string', { cause: object });
39
+ }
40
+ const keyPair = await Ed25519VerificationKey2020.from({
41
+ type: 'Ed25519VerificationKey2020',
42
+ controller,
43
+ publicKeyMultibase,
44
+ privateKeyMultibase,
45
+ });
46
+ const fingerprint = keyPair.fingerprint();
47
+ const verificationMethod = {
48
+ id: `${controller}#${fingerprint}`,
49
+ type: 'Ed25519VerificationKey2020',
50
+ controller,
51
+ publicKeyMultibase: keyPair.publicKeyMultibase,
52
+ };
53
+ return new Ed25519Signer(keyPair, verificationMethod);
54
+ }
55
+ get controller() {
56
+ return this.keyPair.controller;
57
+ }
58
+ get id() {
59
+ return this.verificationMethod.id;
60
+ }
61
+ get publicKeyMultibase() {
62
+ return this.keyPair.publicKeyMultibase;
63
+ }
64
+ async sign({ data }) {
65
+ const signature = await this.keyPair.signer().sign({ data });
66
+ return signature;
67
+ }
68
+ toJSON() {
69
+ return this.keyPair.export({ publicKey: true, privateKey: true });
70
+ }
71
+ }
@@ -166,6 +166,37 @@ export const volunteeringCredentialContext = {
166
166
  evidenceDescription: 'https://schema.org/description'
167
167
  }
168
168
  };
169
+ export const VC_V2_CONTEXT = 'https://www.w3.org/ns/credentials/v2';
170
+ export const OB_V3_CONTEXT = 'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json';
171
+ export const HR_V1_CONTEXT = 'https://w3id.org/hr/v1';
172
+ export const ED25519_2020_CONTEXT = 'https://w3id.org/security/suites/ed25519-2020/v1';
173
+ /** @context array for SkillClaimCredential signing (single source of truth). */
174
+ export const skillClaimCredentialContexts = [
175
+ VC_V2_CONTEXT,
176
+ OB_V3_CONTEXT,
177
+ HR_V1_CONTEXT,
178
+ ED25519_2020_CONTEXT,
179
+ ];
180
+ /** JSON-LD terms for RecommendationCredential (schema.org + VC v2). */
181
+ export const recommendationCredentialContext = {
182
+ '@context': {
183
+ recipientName: 'https://schema.org/name',
184
+ howKnow: 'https://schema.org/howKnow',
185
+ recommendationText: 'https://schema.org/recommendationText',
186
+ qualifications: 'https://schema.org/qualifications',
187
+ explainAnswer: 'https://schema.org/explainAnswer',
188
+ portfolio: 'https://schema.org/portfolio',
189
+ skillsEndorsed: 'https://schema.org/skillsEndorsed',
190
+ },
191
+ };
192
+ /** @context array for RecommendationCredential signing (single source of truth). */
193
+ export const recommendationCredentialContexts = [
194
+ VC_V2_CONTEXT,
195
+ OB_V3_CONTEXT,
196
+ HR_V1_CONTEXT,
197
+ recommendationCredentialContext,
198
+ ED25519_2020_CONTEXT,
199
+ ];
169
200
  // 3. Performance Review Credential Context
170
201
  export const performanceReviewCredentialContext = {
171
202
  '@context': {
@@ -196,541 +227,3 @@ export const performanceReviewCredentialContext = {
196
227
  evidenceDescription: 'https://schema.org/description'
197
228
  }
198
229
  };
199
- const localOBContext = {
200
- '@context': {
201
- '@protected': true,
202
- id: '@id',
203
- type: '@type',
204
- OpenBadgeCredential: {
205
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#OpenBadgeCredential',
206
- },
207
- Achievement: {
208
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Achievement',
209
- '@context': {
210
- '@protected': true,
211
- id: '@id',
212
- type: '@type',
213
- achievementType: {
214
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#achievementType',
215
- },
216
- alignment: {
217
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#alignment',
218
- '@container': '@set',
219
- },
220
- creator: {
221
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#creator',
222
- },
223
- creditsAvailable: {
224
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#creditsAvailable',
225
- '@type': 'https://www.w3.org/2001/XMLSchema#float',
226
- },
227
- criteria: {
228
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Criteria',
229
- '@type': '@id',
230
- },
231
- fieldOfStudy: {
232
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#fieldOfStudy',
233
- },
234
- humanCode: {
235
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#humanCode',
236
- },
237
- image: {
238
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#image',
239
- '@type': '@id',
240
- },
241
- otherIdentifier: {
242
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#otherIdentifier',
243
- '@container': '@set',
244
- },
245
- related: {
246
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#related',
247
- '@container': '@set',
248
- },
249
- resultDescription: {
250
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#resultDescription',
251
- '@container': '@set',
252
- },
253
- specialization: {
254
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#specialization',
255
- },
256
- tag: {
257
- '@id': 'https://schema.org/keywords',
258
- '@container': '@set',
259
- },
260
- version: {
261
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#version',
262
- },
263
- inLanguage: {
264
- '@id': 'https://schema.org/inLanguage',
265
- },
266
- },
267
- },
268
- AchievementCredential: {
269
- '@id': 'OpenBadgeCredential',
270
- },
271
- AchievementSubject: {
272
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#AchievementSubject',
273
- '@context': {
274
- '@protected': true,
275
- id: '@id',
276
- type: '@type',
277
- achievement: {
278
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#achievement',
279
- },
280
- activityEndDate: {
281
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#activityEndDate',
282
- '@type': 'https://www.w3.org/2001/XMLSchema#date',
283
- },
284
- activityStartDate: {
285
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#activityStartDate',
286
- '@type': 'https://www.w3.org/2001/XMLSchema#date',
287
- },
288
- creditsEarned: {
289
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#creditsEarned',
290
- '@type': 'https://www.w3.org/2001/XMLSchema#float',
291
- },
292
- identifier: {
293
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identifier',
294
- '@container': '@set',
295
- },
296
- image: {
297
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#image',
298
- '@type': '@id',
299
- },
300
- licenseNumber: {
301
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#licenseNumber',
302
- },
303
- result: {
304
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#result',
305
- '@container': '@set',
306
- },
307
- role: {
308
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#role',
309
- },
310
- source: {
311
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#source',
312
- '@type': '@id',
313
- },
314
- term: {
315
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#term',
316
- },
317
- },
318
- },
319
- Address: {
320
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Address',
321
- '@context': {
322
- '@protected': true,
323
- id: '@id',
324
- type: '@type',
325
- addressCountry: {
326
- '@id': 'https://schema.org/addressCountry',
327
- },
328
- addressCountryCode: {
329
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#CountryCode',
330
- },
331
- addressLocality: {
332
- '@id': 'https://schema.org/addressLocality',
333
- },
334
- addressRegion: {
335
- '@id': 'https://schema.org/addressRegion',
336
- },
337
- geo: {
338
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#GeoCoordinates',
339
- },
340
- postOfficeBoxNumber: {
341
- '@id': 'https://schema.org/postOfficeBoxNumber',
342
- },
343
- postalCode: {
344
- '@id': 'https://schema.org/postalCode',
345
- },
346
- streetAddress: {
347
- '@id': 'https://schema.org/streetAddress',
348
- },
349
- },
350
- },
351
- Alignment: {
352
- '@id': 'https://schema.org/AlignmentObject',
353
- '@context': {
354
- '@protected': true,
355
- id: '@id',
356
- type: '@type',
357
- targetCode: {
358
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#targetCode',
359
- },
360
- targetDescription: {
361
- '@id': 'https://schema.org/targetDescription',
362
- },
363
- targetFramework: {
364
- '@id': 'https://schema.org/targetFramework',
365
- },
366
- targetName: {
367
- '@id': 'https://schema.org/targetName',
368
- },
369
- targetType: {
370
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#targetType',
371
- },
372
- targetUrl: {
373
- '@id': 'https://schema.org/targetUrl',
374
- '@type': 'https://www.w3.org/2001/XMLSchema#anyURI',
375
- },
376
- },
377
- },
378
- Criteria: {
379
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Criteria',
380
- },
381
- EndorsementCredential: {
382
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#EndorsementCredential',
383
- },
384
- EndorsementSubject: {
385
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#EndorsementSubject',
386
- '@context': {
387
- '@protected': true,
388
- id: '@id',
389
- type: '@type',
390
- endorsementComment: {
391
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#endorsementComment',
392
- },
393
- },
394
- },
395
- Evidence: {
396
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Evidence',
397
- '@context': {
398
- '@protected': true,
399
- id: '@id',
400
- type: '@type',
401
- audience: {
402
- '@id': 'https://schema.org/audience',
403
- },
404
- genre: {
405
- '@id': 'https://schema.org/genre',
406
- },
407
- },
408
- },
409
- GeoCoordinates: {
410
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#GeoCoordinates',
411
- '@context': {
412
- '@protected': true,
413
- id: '@id',
414
- type: '@type',
415
- latitude: {
416
- '@id': 'https://schema.org/latitude',
417
- },
418
- longitude: {
419
- '@id': 'https://schema.org/longitude',
420
- },
421
- },
422
- },
423
- IdentifierEntry: {
424
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#IdentifierEntry',
425
- '@context': {
426
- '@protected': true,
427
- id: '@id',
428
- type: '@type',
429
- identifier: {
430
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identifier',
431
- },
432
- identifierType: {
433
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identifierType',
434
- },
435
- },
436
- },
437
- IdentityObject: {
438
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#IdentityObject',
439
- '@context': {
440
- '@protected': true,
441
- id: '@id',
442
- type: '@type',
443
- hashed: {
444
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#hashed',
445
- '@type': 'https://www.w3.org/2001/XMLSchema#boolean',
446
- },
447
- identityHash: {
448
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identityHash',
449
- },
450
- identityType: {
451
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identityType',
452
- },
453
- salt: {
454
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#salt',
455
- },
456
- },
457
- },
458
- Image: {
459
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Image',
460
- '@context': {
461
- '@protected': true,
462
- id: '@id',
463
- type: '@type',
464
- caption: {
465
- '@id': 'https://schema.org/caption',
466
- },
467
- },
468
- },
469
- Profile: {
470
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Profile',
471
- '@context': {
472
- '@protected': true,
473
- id: '@id',
474
- type: '@type',
475
- additionalName: {
476
- '@id': 'https://schema.org/additionalName',
477
- },
478
- address: {
479
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#address',
480
- '@type': '@id',
481
- },
482
- dateOfBirth: {
483
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#dateOfBirth',
484
- '@type': 'https://www.w3.org/2001/XMLSchema#date',
485
- },
486
- email: {
487
- '@id': 'https://schema.org/email',
488
- },
489
- familyName: {
490
- '@id': 'https://schema.org/familyName',
491
- },
492
- familyNamePrefix: {
493
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#familyNamePrefix',
494
- },
495
- givenName: {
496
- '@id': 'https://schema.org/givenName',
497
- },
498
- honorificPrefix: {
499
- '@id': 'https://schema.org/honorificPrefix',
500
- },
501
- honorificSuffix: {
502
- '@id': 'https://schema.org/honorificSuffix',
503
- },
504
- image: {
505
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#image',
506
- '@type': '@id',
507
- },
508
- otherIdentifier: {
509
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#otherIdentifier',
510
- '@container': '@set',
511
- },
512
- parentOrg: {
513
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#parentOrg',
514
- '@type': '@id',
515
- },
516
- patronymicName: {
517
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#patronymicName',
518
- },
519
- phone: {
520
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#phone',
521
- },
522
- official: {
523
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#official',
524
- },
525
- },
526
- },
527
- Related: {
528
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Related',
529
- '@context': {
530
- '@protected': true,
531
- id: '@id',
532
- type: '@type',
533
- version: {
534
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#version',
535
- },
536
- inLanguage: {
537
- '@id': 'https://schema.org/inLanguage',
538
- },
539
- },
540
- },
541
- Result: {
542
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#Result',
543
- '@context': {
544
- '@protected': true,
545
- id: '@id',
546
- type: '@type',
547
- achievedLevel: {
548
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#achievedLevel',
549
- '@type': 'https://www.w3.org/2001/XMLSchema#anyURI',
550
- },
551
- resultDescription: {
552
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#resultDescription',
553
- '@type': 'https://www.w3.org/2001/XMLSchema#anyURI',
554
- },
555
- status: {
556
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#status',
557
- },
558
- value: {
559
- '@id': 'https://schema.org/value',
560
- },
561
- },
562
- },
563
- ResultDescription: {
564
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#ResultDescription',
565
- '@context': {
566
- '@protected': true,
567
- id: '@id',
568
- type: '@type',
569
- allowedValue: {
570
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#allowedValue',
571
- '@container': '@list',
572
- },
573
- requiredLevel: {
574
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#requiredLevel',
575
- '@type': 'https://www.w3.org/2001/XMLSchema#anyURI',
576
- },
577
- requiredValue: {
578
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#requiredValue',
579
- },
580
- resultType: {
581
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#resultType',
582
- },
583
- rubricCriterionLevel: {
584
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#rubricCriterionLevel',
585
- '@container': '@set',
586
- },
587
- valueMax: {
588
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#valueMax',
589
- },
590
- valueMin: {
591
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#valueMin',
592
- },
593
- },
594
- },
595
- RubricCriterionLevel: {
596
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#RubricCriterionLevel',
597
- '@context': {
598
- '@protected': true,
599
- id: '@id',
600
- type: '@type',
601
- level: {
602
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#level',
603
- },
604
- points: {
605
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#points',
606
- },
607
- },
608
- },
609
- alignment: {
610
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#alignment',
611
- '@container': '@set',
612
- },
613
- description: {
614
- '@id': 'https://schema.org/description',
615
- },
616
- endorsement: {
617
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#endorsement',
618
- '@container': '@set',
619
- },
620
- image: {
621
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#image',
622
- '@type': '@id',
623
- },
624
- inLanguage: {
625
- '@id': 'https://schema.org/inLanguage',
626
- },
627
- name: {
628
- '@id': 'https://schema.org/name',
629
- },
630
- narrative: {
631
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#narrative',
632
- },
633
- url: {
634
- '@id': 'https://schema.org/url',
635
- '@type': 'https://www.w3.org/2001/XMLSchema#anyURI',
636
- },
637
- awardedDate: {
638
- '@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#awardedDate',
639
- '@type': 'xsd:dateTime',
640
- },
641
- },
642
- };
643
- const localED25519Context = {
644
- '@context': {
645
- id: '@id',
646
- type: '@type',
647
- '@protected': true,
648
- proof: {
649
- '@id': 'https://w3id.org/security#proof',
650
- '@type': '@id',
651
- '@container': '@graph',
652
- },
653
- Ed25519VerificationKey2020: {
654
- '@id': 'https://w3id.org/security#Ed25519VerificationKey2020',
655
- '@context': {
656
- '@protected': true,
657
- id: '@id',
658
- type: '@type',
659
- controller: {
660
- '@id': 'https://w3id.org/security#controller',
661
- '@type': '@id',
662
- },
663
- revoked: {
664
- '@id': 'https://w3id.org/security#revoked',
665
- '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
666
- },
667
- publicKeyMultibase: {
668
- '@id': 'https://w3id.org/security#publicKeyMultibase',
669
- '@type': 'https://w3id.org/security#multibase',
670
- },
671
- },
672
- },
673
- Ed25519Signature2020: {
674
- '@id': 'https://w3id.org/security#Ed25519Signature2020',
675
- '@context': {
676
- '@protected': true,
677
- id: '@id',
678
- type: '@type',
679
- challenge: 'https://w3id.org/security#challenge',
680
- created: {
681
- '@id': 'http://purl.org/dc/terms/created',
682
- '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
683
- },
684
- domain: 'https://w3id.org/security#domain',
685
- expires: {
686
- '@id': 'https://w3id.org/security#expiration',
687
- '@type': 'http://www.w3.org/2001/XMLSchema#dateTime',
688
- },
689
- nonce: 'https://w3id.org/security#nonce',
690
- proofPurpose: {
691
- '@id': 'https://w3id.org/security#proofPurpose',
692
- '@type': '@vocab',
693
- '@context': {
694
- '@protected': true,
695
- id: '@id',
696
- type: '@type',
697
- assertionMethod: {
698
- '@id': 'https://w3id.org/security#assertionMethod',
699
- '@type': '@id',
700
- '@container': '@set',
701
- },
702
- authentication: {
703
- '@id': 'https://w3id.org/security#authenticationMethod',
704
- '@type': '@id',
705
- '@container': '@set',
706
- },
707
- capabilityInvocation: {
708
- '@id': 'https://w3id.org/security#capabilityInvocationMethod',
709
- '@type': '@id',
710
- '@container': '@set',
711
- },
712
- capabilityDelegation: {
713
- '@id': 'https://w3id.org/security#capabilityDelegationMethod',
714
- '@type': '@id',
715
- '@container': '@set',
716
- },
717
- keyAgreement: {
718
- '@id': 'https://w3id.org/security#keyAgreementMethod',
719
- '@type': '@id',
720
- '@container': '@set',
721
- },
722
- },
723
- },
724
- proofValue: {
725
- '@id': 'https://w3id.org/security#proofValue',
726
- '@type': 'https://w3id.org/security#multibase',
727
- },
728
- verificationMethod: {
729
- '@id': 'https://w3id.org/security#verificationMethod',
730
- '@type': '@id',
731
- },
732
- },
733
- },
734
- },
735
- };
736
- export { localOBContext, localED25519Context };