@digitalbazaar/vc 5.0.0 → 6.0.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.
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Verifiable Credentials JS Library _(@digitalbazaar/vc)_
2
2
 
3
- [![Build Status](https://img.shields.io/github/workflow/status/digitalbazaar/vc-js/Node.js%20CI)](https://github.com/digitalbazaar/vc-js/actions?query=workflow%3A%22Node.js+CI%22)
3
+ [![Build Status](https://img.shields.io/github/workflow/status/digitalbazaar/vc/Node.js%20CI)](https://github.com/digitalbazaar/vc/actions?query=workflow%3A%22Node.js+CI%22)
4
4
  [![NPM Version](https://img.shields.io/npm/v/@digitalbazaar/vc.svg)](https://npm.im/@digitalbazaar/vc)
5
5
 
6
6
  > A Javascript library for issuing and verifying Verifiable Credentials.
@@ -59,8 +59,8 @@ npm install @digitalbazaar/vc
59
59
  To install locally (for development):
60
60
 
61
61
  ```
62
- git clone https://github.com/digitalbazaar/vc-js.git
63
- cd vc-js
62
+ git clone https://github.com/digitalbazaar/vc.git
63
+ cd vc
64
64
  npm install
65
65
  ```
66
66
 
@@ -1,8 +1,8 @@
1
1
  /*!
2
- * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.
2
+ * Copyright (c) 2019-2023 Digital Bazaar, Inc. All rights reserved.
3
3
  */
4
- import jsonld from 'jsonld';
5
4
  import jsigs from 'jsonld-signatures';
5
+ import jsonld from 'jsonld';
6
6
 
7
7
  const {purposes: {AssertionProofPurpose}} = jsigs;
8
8
 
@@ -40,7 +40,6 @@ export class CredentialIssuancePurpose extends AssertionProofPurpose {
40
40
  * @param {string} options.verificationMethod - Key id URL to the paired
41
41
  * public key.
42
42
  * @param {object} [options.documentLoader] - A document loader.
43
- * @param {object} [options.expansionMap] - An expansion map.
44
43
  *
45
44
  * @throws {Error} If verification method not authorized by controller.
46
45
  * @throws {Error} If proof's created timestamp is out of range.
@@ -48,11 +47,11 @@ export class CredentialIssuancePurpose extends AssertionProofPurpose {
48
47
  * @returns {Promise<{valid: boolean, error: Error}>} Resolves on completion.
49
48
  */
50
49
  async validate(proof, {
51
- document, suite, verificationMethod, documentLoader, expansionMap
50
+ document, suite, verificationMethod, documentLoader
52
51
  }) {
53
52
  try {
54
53
  const result = await super.validate(proof, {
55
- document, suite, verificationMethod, documentLoader, expansionMap
54
+ document, suite, verificationMethod, documentLoader
56
55
  });
57
56
 
58
57
  if(!result.valid) {
@@ -1,23 +1,12 @@
1
1
  /*!
2
- * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.
2
+ * Copyright (c) 2019-2023 Digital Bazaar, Inc. All rights reserved.
3
3
  */
4
4
  import {
5
5
  contexts as credentialContexts
6
6
  } from 'credentials-context';
7
- import {
8
- CONTEXT as vcExamplesV1Context,
9
- CONTEXT_URL as vcExamplesV1ContextUrl
10
- } from './vc-examples-v1.js';
11
- import {
12
- CONTEXT as odrlContext,
13
- CONTEXT_URL as odrlContextUrl
14
- } from './odrl.js';
15
-
16
- export const contexts = {};
17
7
 
18
- contexts[vcExamplesV1ContextUrl] = vcExamplesV1Context;
19
- contexts[odrlContextUrl] = odrlContext;
8
+ export const contexts = new Map();
20
9
 
21
10
  for(const [url, context] of credentialContexts.entries()) {
22
- contexts[url] = context;
11
+ contexts.set(url, context);
23
12
  }
@@ -1,11 +1,11 @@
1
1
  /*!
2
- * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.
2
+ * Copyright (c) 2019-2023 Digital Bazaar, Inc. All rights reserved.
3
3
  */
4
4
  // load locally embedded contexts
5
5
  import {contexts} from './contexts/index.js';
6
6
 
7
7
  export async function documentLoader(url) {
8
- const context = contexts[url];
8
+ const context = contexts.get(url);
9
9
  if(context !== undefined) {
10
10
  return {
11
11
  contextUrl: null,
package/lib/index.js CHANGED
@@ -5,7 +5,7 @@
5
5
  * @author David I. Lehn
6
6
  *
7
7
  * @license BSD 3-Clause License
8
- * Copyright (c) 2017-2022 Digital Bazaar, Inc.
8
+ * Copyright (c) 2017-2023 Digital Bazaar, Inc.
9
9
  * All rights reserved.
10
10
  *
11
11
  * Redistribution and use in source and binary forms, with or without
@@ -34,10 +34,10 @@
34
34
  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
35
  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
36
  */
37
- import jsonld from 'jsonld';
38
- import jsigs from 'jsonld-signatures';
39
- import {CredentialIssuancePurpose} from './CredentialIssuancePurpose.js';
40
37
  import {documentLoader as _documentLoader} from './documentLoader.js';
38
+ import {CredentialIssuancePurpose} from './CredentialIssuancePurpose.js';
39
+ import jsigs from 'jsonld-signatures';
40
+ import jsonld from 'jsonld';
41
41
  export const defaultDocumentLoader =
42
42
  jsigs.extendContextLoader(_documentLoader);
43
43
  import * as credentialsContext from 'credentials-context';
@@ -106,7 +106,6 @@ export const dateRegex = new RegExp('^(\\d{4})-(0[1-9]|1[0-2])-' +
106
106
  *
107
107
  * Other optional params passed to `sign()`:
108
108
  * @param {object} [options.documentLoader] - A document loader.
109
- * @param {object} [options.expansionMap] - An expansion map.
110
109
  * @param {string|Date} [options.now] - A string representing date time in
111
110
  * ISO 8601 format or an instance of Date. Defaults to current date time.
112
111
  *
@@ -115,7 +114,7 @@ export const dateRegex = new RegExp('^(\\d{4})-(0[1-9]|1[0-2])-' +
115
114
  * @returns {Promise<VerifiableCredential>} Resolves on completion.
116
115
  */
117
116
  export async function issue({
118
- credential, suite, expansionMap,
117
+ credential, suite,
119
118
  purpose = new CredentialIssuancePurpose(),
120
119
  documentLoader = defaultDocumentLoader,
121
120
  now
@@ -142,7 +141,7 @@ export async function issue({
142
141
  // run common credential checks
143
142
  _checkCredential({credential, now});
144
143
 
145
- return jsigs.sign(credential, {purpose, documentLoader, suite, expansionMap});
144
+ return jsigs.sign(credential, {purpose, documentLoader, suite});
146
145
  }
147
146
 
148
147
  /**
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@digitalbazaar/vc",
3
- "version": "5.0.0",
3
+ "version": "6.0.0",
4
4
  "description": "Verifiable Credentials JavaScript library.",
5
- "homepage": "https://github.com/digitalbazaar/vc-js",
5
+ "homepage": "https://github.com/digitalbazaar/vc",
6
6
  "author": {
7
7
  "name": "Digital Bazaar, Inc.",
8
8
  "email": "support@digitalbazaar.com",
@@ -15,10 +15,10 @@
15
15
  ],
16
16
  "repository": {
17
17
  "type": "git",
18
- "url": "https://github.com/digitalbazaar/vc-js"
18
+ "url": "https://github.com/digitalbazaar/vc"
19
19
  },
20
20
  "bugs": {
21
- "url": "https://github.com/digitalbazaar/vc-js/issues",
21
+ "url": "https://github.com/digitalbazaar/vc/issues",
22
22
  "email": "support@digitalbazaar.com"
23
23
  },
24
24
  "license": "BSD-3-Clause",
@@ -29,33 +29,35 @@
29
29
  ],
30
30
  "dependencies": {
31
31
  "credentials-context": "^2.0.0",
32
- "jsonld": "^8.0.0",
32
+ "jsonld": "^8.1.0",
33
33
  "jsonld-signatures": "^11.0.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@digitalbazaar/ed25519-signature-2018": "^3.0.0",
36
+ "@digitalbazaar/ed25519-signature-2018": "^4.0.0",
37
37
  "@digitalbazaar/ed25519-verification-key-2018": "^4.0.0",
38
- "c8": "^7.11.3",
39
- "chai": "^4.3.6",
38
+ "@digitalbazaar/credentials-examples-context": "^1.0.0",
39
+ "@digitalbazaar/odrl-context": "^1.0.0",
40
+ "c8": "^7.12.0",
41
+ "chai": "^4.3.7",
40
42
  "cross-env": "^7.0.3",
41
43
  "did-context": "^3.1.1",
42
- "did-veres-one": "^15.0.0",
43
- "eslint": "^8.17.0",
44
- "eslint-config-digitalbazaar": "^3.0.0",
45
- "eslint-plugin-jsdoc": "^39.3.2",
46
- "eslint-plugin-unicorn": "^42.0.0",
47
- "karma": "^6.4.0",
44
+ "did-veres-one": "^16.0.0",
45
+ "eslint": "^8.32.0",
46
+ "eslint-config-digitalbazaar": "^4.2.0",
47
+ "eslint-plugin-jsdoc": "^39.6.4",
48
+ "eslint-plugin-unicorn": "^45.0.2",
49
+ "karma": "^6.4.1",
48
50
  "karma-chai": "^0.1.0",
49
51
  "karma-chrome-launcher": "^3.1.1",
50
52
  "karma-mocha": "^2.0.1",
51
53
  "karma-mocha-reporter": "^2.2.5",
52
54
  "karma-sourcemap-loader": "^0.3.8",
53
55
  "karma-webpack": "^5.0.0",
54
- "mocha": "^10.0.0",
56
+ "mocha": "^10.2.0",
55
57
  "mocha-lcov-reporter": "^1.3.0",
56
- "uuid": "^8.3.2",
58
+ "uuid": "^9.0.0",
57
59
  "veres-one-context": "^12.0.0",
58
- "webpack": "^5.73.0"
60
+ "webpack": "^5.75.0"
59
61
  },
60
62
  "c8": {
61
63
  "reporter": [
@@ -1,206 +0,0 @@
1
- /*!
2
- * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.
3
- */
4
-
5
- export const CONTEXT_URL = 'https://www.w3.org/ns/odrl.jsonld';
6
- /* eslint-disable quote-props, key-spacing, max-len */
7
- export const CONTEXT = {
8
- '@context': {
9
- 'odrl': 'http://www.w3.org/ns/odrl/2/',
10
- 'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
11
- 'rdfs': 'http://www.w3.org/2000/01/rdf-schema#',
12
- 'owl': 'http://www.w3.org/2002/07/owl#',
13
- 'skos': 'http://www.w3.org/2004/02/skos/core#',
14
- 'dct': 'http://purl.org/dc/terms/',
15
- 'xsd': 'http://www.w3.org/2001/XMLSchema#',
16
- 'vcard': 'http://www.w3.org/2006/vcard/ns#',
17
- 'foaf': 'http://xmlns.com/foaf/0.1/',
18
- 'schema': 'http://schema.org/',
19
- 'cc': 'http://creativecommons.org/ns#',
20
-
21
- 'uid': '@id',
22
- 'type': '@type',
23
-
24
- 'Policy': 'odrl:Policy',
25
- 'Rule': 'odrl:Rule',
26
- 'profile': {'@type': '@id', '@id': 'odrl:profile'},
27
-
28
- 'inheritFrom': {'@type': '@id', '@id': 'odrl:inheritFrom'},
29
-
30
- 'ConflictTerm': 'odrl:ConflictTerm',
31
- 'conflict': {'@type': '@vocab', '@id': 'odrl:conflict'},
32
- 'perm': 'odrl:perm',
33
- 'prohibit': 'odrl:prohibit',
34
- 'invalid': 'odrl:invalid',
35
-
36
- 'Agreement': 'odrl:Agreement',
37
- 'Assertion': 'odrl:Assertion',
38
- 'Offer': 'odrl:Offer',
39
- 'Privacy': 'odrl:Privacy',
40
- 'Request': 'odrl:Request',
41
- 'Set': 'odrl:Set',
42
- 'Ticket': 'odrl:Ticket',
43
-
44
- 'Asset': 'odrl:Asset',
45
- 'AssetCollection': 'odrl:AssetCollection',
46
- 'relation': {'@type': '@id', '@id': 'odrl:relation'},
47
- 'hasPolicy': {'@type': '@id', '@id': 'odrl:hasPolicy'},
48
-
49
- 'target': {'@type': '@id', '@id': 'odrl:target'},
50
- 'output': {'@type': '@id', '@id': 'odrl:output'},
51
-
52
- 'partOf': {'@type': '@id', '@id': 'odrl:partOf'},
53
- 'source': {'@type': '@id', '@id': 'odrl:source'},
54
-
55
- 'Party': 'odrl:Party',
56
- 'PartyCollection': 'odrl:PartyCollection',
57
- 'function': {'@type': '@vocab', '@id': 'odrl:function'},
58
- 'PartyScope': 'odrl:PartyScope',
59
-
60
- 'assignee': {'@type': '@id', '@id': 'odrl:assignee'},
61
- 'assigner': {'@type': '@id', '@id': 'odrl:assigner'},
62
- 'assigneeOf': {'@type': '@id', '@id': 'odrl:assigneeOf'},
63
- 'assignerOf': {'@type': '@id', '@id': 'odrl:assignerOf'},
64
- 'attributedParty': {'@type': '@id', '@id': 'odrl:attributedParty'},
65
- 'attributingParty': {'@type': '@id', '@id': 'odrl:attributingParty'},
66
- 'compensatedParty': {'@type': '@id', '@id': 'odrl:compensatedParty'},
67
- 'compensatingParty': {'@type': '@id', '@id': 'odrl:compensatingParty'},
68
- 'consentingParty': {'@type': '@id', '@id': 'odrl:consentingParty'},
69
- 'consentedParty': {'@type': '@id', '@id': 'odrl:consentedParty'},
70
- 'informedParty': {'@type': '@id', '@id': 'odrl:informedParty'},
71
- 'informingParty': {'@type': '@id', '@id': 'odrl:informingParty'},
72
- 'trackingParty': {'@type': '@id', '@id': 'odrl:trackingParty'},
73
- 'trackedParty': {'@type': '@id', '@id': 'odrl:trackedParty'},
74
- 'contractingParty': {'@type': '@id', '@id': 'odrl:contractingParty'},
75
- 'contractedParty': {'@type': '@id', '@id': 'odrl:contractedParty'},
76
-
77
- 'Action': 'odrl:Action',
78
- 'action': {'@type': '@vocab', '@id': 'odrl:action'},
79
- 'includedIn': {'@type': '@id', '@id': 'odrl:includedIn'},
80
- 'implies': {'@type': '@id', '@id': 'odrl:implies'},
81
-
82
- 'Permission': 'odrl:Permission',
83
- 'permission': {'@type': '@id', '@id': 'odrl:permission'},
84
-
85
- 'Prohibition': 'odrl:Prohibition',
86
- 'prohibition': {'@type': '@id', '@id': 'odrl:prohibition'},
87
-
88
- 'obligation': {'@type': '@id', '@id': 'odrl:obligation'},
89
-
90
- 'use': 'odrl:use',
91
- 'grantUse': 'odrl:grantUse',
92
- 'aggregate': 'odrl:aggregate',
93
- 'annotate': 'odrl:annotate',
94
- 'anonymize': 'odrl:anonymize',
95
- 'archive': 'odrl:archive',
96
- 'concurrentUse': 'odrl:concurrentUse',
97
- 'derive': 'odrl:derive',
98
- 'digitize': 'odrl:digitize',
99
- 'display': 'odrl:display',
100
- 'distribute': 'odrl:distribute',
101
- 'execute': 'odrl:execute',
102
- 'extract': 'odrl:extract',
103
- 'give': 'odrl:give',
104
- 'index': 'odrl:index',
105
- 'install': 'odrl:install',
106
- 'modify': 'odrl:modify',
107
- 'move': 'odrl:move',
108
- 'play': 'odrl:play',
109
- 'present': 'odrl:present',
110
- 'print': 'odrl:print',
111
- 'read': 'odrl:read',
112
- 'reproduce': 'odrl:reproduce',
113
- 'sell': 'odrl:sell',
114
- 'stream': 'odrl:stream',
115
- 'textToSpeech': 'odrl:textToSpeech',
116
- 'transfer': 'odrl:transfer',
117
- 'transform': 'odrl:transform',
118
- 'translate': 'odrl:translate',
119
-
120
- 'Duty': 'odrl:Duty',
121
- 'duty': {'@type': '@id', '@id': 'odrl:duty'},
122
- 'consequence': {'@type': '@id', '@id': 'odrl:consequence'},
123
- 'remedy': {'@type': '@id', '@id': 'odrl:remedy'},
124
-
125
- 'acceptTracking': 'odrl:acceptTracking',
126
- 'attribute': 'odrl:attribute',
127
- 'compensate': 'odrl:compensate',
128
- 'delete': 'odrl:delete',
129
- 'ensureExclusivity': 'odrl:ensureExclusivity',
130
- 'include': 'odrl:include',
131
- 'inform': 'odrl:inform',
132
- 'nextPolicy': 'odrl:nextPolicy',
133
- 'obtainConsent': 'odrl:obtainConsent',
134
- 'reviewPolicy': 'odrl:reviewPolicy',
135
- 'uninstall': 'odrl:uninstall',
136
- 'watermark': 'odrl:watermark',
137
-
138
- 'Constraint': 'odrl:Constraint',
139
- 'LogicalConstraint': 'odrl:LogicalConstraint',
140
- 'constraint': {'@type': '@id', '@id': 'odrl:constraint'},
141
- 'refinement': {'@type': '@id', '@id': 'odrl:refinement'},
142
- 'Operator': 'odrl:Operator',
143
- 'operator': {'@type': '@vocab', '@id': 'odrl:operator'},
144
- 'RightOperand': 'odrl:RightOperand',
145
- 'rightOperand': 'odrl:rightOperand',
146
- 'rightOperandReference':{'@type': 'xsd:anyURI', '@id': 'odrl:rightOperandReference'},
147
- 'LeftOperand': 'odrl:LeftOperand',
148
- 'leftOperand': {'@type': '@vocab', '@id': 'odrl:leftOperand'},
149
- 'unit': 'odrl:unit',
150
- 'dataType': {'@type': 'xsd:anyType', '@id': 'odrl:datatype'},
151
- 'status': 'odrl:status',
152
-
153
- 'absolutePosition': 'odrl:absolutePosition',
154
- 'absoluteSpatialPosition': 'odrl:absoluteSpatialPosition',
155
- 'absoluteTemporalPosition':'odrl:absoluteTemporalPosition',
156
- 'absoluteSize': 'odrl:absoluteSize',
157
- 'count': 'odrl:count',
158
- 'dateTime': 'odrl:dateTime',
159
- 'delayPeriod': 'odrl:delayPeriod',
160
- 'deliveryChannel': 'odrl:deliveryChannel',
161
- 'elapsedTime': 'odrl:elapsedTime',
162
- 'event': 'odrl:event',
163
- 'fileFormat': 'odrl:fileFormat',
164
- 'industry': 'odrl:industry:',
165
- 'language': 'odrl:language',
166
- 'media': 'odrl:media',
167
- 'meteredTime': 'odrl:meteredTime',
168
- 'payAmount': 'odrl:payAmount',
169
- 'percentage': 'odrl:percentage',
170
- 'product': 'odrl:product',
171
- 'purpose': 'odrl:purpose',
172
- 'recipient': 'odrl:recipient',
173
- 'relativePosition': 'odrl:relativePosition',
174
- 'relativeSpatialPosition': 'odrl:relativeSpatialPosition',
175
- 'relativeTemporalPosition':'odrl:relativeTemporalPosition',
176
- 'relativeSize': 'odrl:relativeSize',
177
- 'resolution': 'odrl:resolution',
178
- 'spatial': 'odrl:spatial',
179
- 'spatialCoordinates': 'odrl:spatialCoordinates',
180
- 'systemDevice': 'odrl:systemDevice',
181
- 'timeInterval': 'odrl:timeInterval',
182
- 'unitOfCount': 'odrl:unitOfCount',
183
- 'version': 'odrl:version',
184
- 'virtualLocation': 'odrl:virtualLocation',
185
-
186
- 'eq': 'odrl:eq',
187
- 'gt': 'odrl:gt',
188
- 'gteq': 'odrl:gteq',
189
- 'lt': 'odrl:lt',
190
- 'lteq': 'odrl:lteq',
191
- 'neq': 'odrl:neg',
192
- 'isA': 'odrl:isA',
193
- 'hasPart': 'odrl:hasPart',
194
- 'isPartOf': 'odrl:isPartOf',
195
- 'isAllOf': 'odrl:isAllOf',
196
- 'isAnyOf': 'odrl:isAnyOf',
197
- 'isNoneOf': 'odrl:isNoneOf',
198
- 'or': 'odrl:or',
199
- 'xone': 'odrl:xone',
200
- 'and': 'odrl:and',
201
- 'andSequence': 'odrl:andSequence',
202
-
203
- 'policyUsage': 'odrl:policyUsage'
204
-
205
- }
206
- };
@@ -1,62 +0,0 @@
1
- /*!
2
- * Copyright (c) 2019-2022 Digital Bazaar, Inc. All rights reserved.
3
- */
4
-
5
- export const CONTEXT_URL = 'https://www.w3.org/2018/credentials/examples/v1';
6
- /* eslint-disable quote-props */
7
- export const CONTEXT = {
8
- '@context': [
9
- {
10
- '@version': 1.1
11
- },
12
- 'https://www.w3.org/ns/odrl.jsonld',
13
- {
14
- 'ex': 'https://example.org/examples#',
15
- 'schema': 'http://schema.org/',
16
- 'rdf': 'http://www.w3.org/1999/02/22-rdf-syntax-ns#',
17
-
18
- '3rdPartyCorrelation': 'ex:3rdPartyCorrelation',
19
- 'AllVerifiers': 'ex:AllVerifiers',
20
- 'AlumniCredential': 'ex:AlumniCredential',
21
- 'Archival': 'ex:Archival',
22
- 'BachelorDegree': 'ex:BachelorDegree',
23
- 'Child': 'ex:Child',
24
- 'CLCredentialDefinition2019': 'ex:CLCredentialDefinition2019',
25
- 'CLSignature2019': 'ex:CLSignature2019',
26
- 'DisputeCredential': 'ex:DisputeCredential',
27
- 'IssuerPolicy': 'ex:IssuerPolicy',
28
- 'HolderPolicy': 'ex:HolderPolicy',
29
- 'Mother': 'ex:Mother',
30
- 'PrescriptionCredential': 'ex:PrescriptionCredential',
31
- 'RelationshipCredential': 'ex:RelationshipCredential',
32
- 'UniversityDegreeCredential': 'ex:UniversityDegreeCredential',
33
- 'ZkpExampleSchema2018': 'ex:ZkpExampleSchema2018',
34
-
35
- 'alumniOf': {'@id': 'schema:alumniOf', '@type': 'rdf:HTML'},
36
- 'attributes': 'ex:attributes',
37
- 'child': {'@id': 'ex:child', '@type': '@id'},
38
- 'college': 'ex:college',
39
- 'currentStatus': 'ex:currentStatus',
40
- 'degree': 'ex:degree',
41
- 'degreeSchool': 'ex:degreeSchool',
42
- 'degreeType': 'ex:degreeType',
43
- 'familyName': 'schema:familyName',
44
- 'givenName': 'schema:givenName',
45
- 'issuerData': 'ex:issuerData',
46
- 'name': {'@id': 'schema:name', '@type': 'rdf:HTML'},
47
- 'nonRevocationProof': 'ex:nonRevocationProof',
48
- 'parent': {'@id': 'ex:parent', '@type': '@id'},
49
- 'prescription': 'ex:prescription',
50
- 'primaryProof': 'ex:primaryProof',
51
- 'referenceId': 'ex:referenceId',
52
- 'documentPresence': 'ex:documentPresence',
53
- 'evidenceDocument': 'ex:evidenceDocument',
54
- 'signature': 'ex:signature',
55
- 'signatureCorrectnessProof': 'ex:signatureCorrectnessProof',
56
- 'spouse': 'schema:spouse',
57
- 'statusReason': 'ex:statusReason',
58
- 'subjectPresence': 'ex:subjectPresence',
59
- 'verifier': {'@id': 'ex:verifier', '@type': '@id'},
60
- }
61
- ]
62
- };