@nuggetslife/vc 0.0.30 → 0.2.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/Cargo.toml +11 -0
- package/W3C_CONFORMANCE.md +6 -5
- package/bench/frame_compare.mjs +203 -0
- package/bench/v2_internals.mjs +115 -0
- package/bench/vc_ops.mjs +308 -0
- package/interop-allowlist.json +3 -0
- package/interop-smoke-allowlist.json +3 -0
- package/package.json +8 -7
- package/scripts/fetch-w3c-tests.sh +8 -0
- package/src/jsonld.rs +211 -140
- package/src/ld_signatures.rs +11 -2
- package/test-fixtures/interop/README.md +46 -0
- package/test-fixtures/interop/_contexts/README.md +51 -0
- package/test-fixtures/interop/_contexts/bbs-bound-v1.jsonld +92 -0
- package/test-fixtures/interop/_contexts/citizenship-v1.jsonld +58 -0
- package/test-fixtures/interop/_contexts/credentials-v1.jsonld +316 -0
- package/test-fixtures/interop/_contexts/elm-edc-ap.jsonld +809 -0
- package/test-fixtures/interop/_contexts/essif-schemas-vc-2020-v1.jsonld +47 -0
- package/test-fixtures/interop/_contexts/identity-v2.jsonld +195 -0
- package/test-fixtures/interop/_contexts/nuggets-identity-v1.jsonld +175 -0
- package/test-fixtures/interop/_contexts/nuggets-kyb-v1.jsonld +333 -0
- package/test-fixtures/interop/_contexts/openbadges-v3.jsonld +445 -0
- package/test-fixtures/interop/_contexts/security-bbs-v1.jsonld +93 -0
- package/test-fixtures/interop/ebsi/diploma-elm/README.md +29 -0
- package/test-fixtures/interop/ebsi/diploma-elm/expected.nq +70 -0
- package/test-fixtures/interop/ebsi/diploma-elm/frame.jsonld +24 -0
- package/test-fixtures/interop/ebsi/diploma-elm/input.jsonld +444 -0
- package/test-fixtures/interop/ebsi/diploma-simple/README.md +19 -0
- package/test-fixtures/interop/ebsi/diploma-simple/expected.nq +9 -0
- package/test-fixtures/interop/ebsi/diploma-simple/frame.jsonld +13 -0
- package/test-fixtures/interop/ebsi/diploma-simple/input.jsonld +24 -0
- package/test-fixtures/interop/idv2/full-disclosure/README.md +9 -0
- package/test-fixtures/interop/idv2/full-disclosure/expected.nq +59 -0
- package/test-fixtures/interop/idv2/full-disclosure/frame.jsonld +9 -0
- package/test-fixtures/interop/idv2/full-disclosure/input.jsonld +82 -0
- package/test-fixtures/interop/nuggets/identity-v1/README.md +17 -0
- package/test-fixtures/interop/nuggets/identity-v1/expected.nq +21 -0
- package/test-fixtures/interop/nuggets/identity-v1/frame.jsonld +17 -0
- package/test-fixtures/interop/nuggets/identity-v1/input.jsonld +31 -0
- package/test-fixtures/interop/nuggets/kyb-v1/README.md +15 -0
- package/test-fixtures/interop/nuggets/kyb-v1/expected.nq +18 -0
- package/test-fixtures/interop/nuggets/kyb-v1/frame.jsonld +24 -0
- package/test-fixtures/interop/nuggets/kyb-v1/input.jsonld +60 -0
- package/test-fixtures/interop/openbadges-v3/basic-achievement/README.md +17 -0
- package/test-fixtures/interop/openbadges-v3/basic-achievement/expected.nq +12 -0
- package/test-fixtures/interop/openbadges-v3/basic-achievement/frame.jsonld +17 -0
- package/test-fixtures/interop/openbadges-v3/basic-achievement/input.jsonld +25 -0
- package/test-fixtures/interop/openbadges-v3/with-allowed-values/README.md +11 -0
- package/test-fixtures/interop/openbadges-v3/with-allowed-values/expected.nq +25 -0
- package/test-fixtures/interop/openbadges-v3/with-allowed-values/frame.jsonld +22 -0
- package/test-fixtures/interop/openbadges-v3/with-allowed-values/input.jsonld +40 -0
- package/test-fixtures/interop/vp/single-vc-wrap/README.md +6 -0
- package/test-fixtures/interop/vp/single-vc-wrap/expected.nq +7 -0
- package/test-fixtures/interop/vp/single-vc-wrap/frame.jsonld +17 -0
- package/test-fixtures/interop/vp/single-vc-wrap/input.jsonld +27 -0
- package/test-fixtures/interop/w3c-vc-v1/permanent-resident-card/README.md +5 -0
- package/test-fixtures/interop/w3c-vc-v1/permanent-resident-card/expected.nq +13 -0
- package/test-fixtures/interop/w3c-vc-v1/permanent-resident-card/frame.jsonld +14 -0
- package/test-fixtures/interop/w3c-vc-v1/permanent-resident-card/input.jsonld +29 -0
- package/test_interop.mjs +184 -0
- package/test_interop_smoke.mjs +388 -0
- package/test_jsonld_crossverify.mjs +8 -2
- package/test_w3c_conformance.mjs +80 -7
- package/tools/regen_expected.mjs +108 -0
- package/w3c-baseline.json +881 -263
- package/w3c-denylist.json +6 -1
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://www.w3.org/2018/credentials/v1",
|
|
4
|
+
"http://data.europa.eu/snb/model/context/edc-ap"
|
|
5
|
+
],
|
|
6
|
+
"type": ["VerifiableCredential", "EuropeanDigitalCredential"],
|
|
7
|
+
"credentialSubject": {
|
|
8
|
+
"@explicit": true,
|
|
9
|
+
"type": "Person",
|
|
10
|
+
"familyName": {},
|
|
11
|
+
"givenName": {},
|
|
12
|
+
"hasClaim": {
|
|
13
|
+
"@explicit": true,
|
|
14
|
+
"type": "LearningActivity",
|
|
15
|
+
"title": {},
|
|
16
|
+
"specifiedBy": {
|
|
17
|
+
"@explicit": true,
|
|
18
|
+
"type": "LearningActivitySpecification",
|
|
19
|
+
"title": {},
|
|
20
|
+
"supplementaryDocument": {}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,444 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "urn:credential:43662fb0-c31c-4afb-b501-e85aea91c0a8",
|
|
3
|
+
"type": [
|
|
4
|
+
"VerifiableCredential",
|
|
5
|
+
"EuropeanDigitalCredential"
|
|
6
|
+
],
|
|
7
|
+
"credentialProfiles": {
|
|
8
|
+
"id": "http://data.europa.eu/snb/credential/e34929035b",
|
|
9
|
+
"type": "Concept",
|
|
10
|
+
"inScheme": {
|
|
11
|
+
"id": "http://data.europa.eu/snb/credential/25831c2",
|
|
12
|
+
"type": "ConceptScheme"
|
|
13
|
+
},
|
|
14
|
+
"prefLabel": {
|
|
15
|
+
"en": "Generic"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"displayParameter": {
|
|
19
|
+
"id": "urn:epass:displayParameter:1",
|
|
20
|
+
"type": "DisplayParameter",
|
|
21
|
+
"individualDisplay": {
|
|
22
|
+
"id": "urn:epass:individualDisplay:1",
|
|
23
|
+
"type": "IndividualDisplay",
|
|
24
|
+
"displayDetail": {
|
|
25
|
+
"id": "urn:epass:displayDetail:1",
|
|
26
|
+
"type": "DisplayDetail",
|
|
27
|
+
"page": 1
|
|
28
|
+
},
|
|
29
|
+
"language": {
|
|
30
|
+
"id": "http://publications.europa.eu/resource/authority/language/ENG",
|
|
31
|
+
"type": "Concept",
|
|
32
|
+
"inScheme": {
|
|
33
|
+
"id": "http://publications.europa.eu/resource/authority/language",
|
|
34
|
+
"type": "ConceptScheme"
|
|
35
|
+
},
|
|
36
|
+
"notation": "language",
|
|
37
|
+
"prefLabel": {
|
|
38
|
+
"en": "English"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"primaryLanguage": {
|
|
43
|
+
"id": "http://publications.europa.eu/resource/authority/language/ENG",
|
|
44
|
+
"type": "Concept",
|
|
45
|
+
"inScheme": {
|
|
46
|
+
"id": "http://publications.europa.eu/resource/authority/language",
|
|
47
|
+
"type": "ConceptScheme"
|
|
48
|
+
},
|
|
49
|
+
"notation": "language",
|
|
50
|
+
"prefLabel": {
|
|
51
|
+
"en": "English"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"description": {
|
|
55
|
+
"en": "has attended the EDC Updates webinar"
|
|
56
|
+
},
|
|
57
|
+
"language": {
|
|
58
|
+
"id": "http://publications.europa.eu/resource/authority/language/ENG",
|
|
59
|
+
"type": "Concept",
|
|
60
|
+
"inScheme": {
|
|
61
|
+
"id": "http://publications.europa.eu/resource/authority/language",
|
|
62
|
+
"type": "ConceptScheme"
|
|
63
|
+
},
|
|
64
|
+
"notation": "language",
|
|
65
|
+
"prefLabel": {
|
|
66
|
+
"en": "English"
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"title": {
|
|
70
|
+
"en": "Certificate of Participation"
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
"credentialSchema": {
|
|
74
|
+
"id": "http://data.europa.eu/snb/model/ap/edc-generic-full",
|
|
75
|
+
"type": "ShaclValidator2017"
|
|
76
|
+
},
|
|
77
|
+
"credentialSubject": {
|
|
78
|
+
"id": "urn:epass:person:1",
|
|
79
|
+
"type": "Person",
|
|
80
|
+
"citizenshipCountry": {
|
|
81
|
+
"id": "http://publications.europa.eu/resource/authority/country/ITA",
|
|
82
|
+
"type": "Concept",
|
|
83
|
+
"inScheme": {
|
|
84
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
85
|
+
"type": "ConceptScheme"
|
|
86
|
+
},
|
|
87
|
+
"notation": "country",
|
|
88
|
+
"prefLabel": {
|
|
89
|
+
"en": "Italy"
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
"contactPoint": {
|
|
93
|
+
"id": "urn:epass:contactPoint:1",
|
|
94
|
+
"type": "ContactPoint",
|
|
95
|
+
"address": {
|
|
96
|
+
"id": "urn:epass:address:2",
|
|
97
|
+
"type": "Address",
|
|
98
|
+
"countryCode": {
|
|
99
|
+
"id": "http://publications.europa.eu/resource/authority/country/ESP",
|
|
100
|
+
"type": "Concept",
|
|
101
|
+
"inScheme": {
|
|
102
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
103
|
+
"type": "ConceptScheme"
|
|
104
|
+
},
|
|
105
|
+
"notation": "country",
|
|
106
|
+
"prefLabel": {
|
|
107
|
+
"en": "Spain"
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"fullAddress": {
|
|
111
|
+
"id": "urn:epass:note:1",
|
|
112
|
+
"type": "Note",
|
|
113
|
+
"noteLiteral": {
|
|
114
|
+
"en": "Calle Iglesia 16, 17242 Girona"
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
"emailAddress": {
|
|
119
|
+
"id": "mailto:ana.andromeda.4edc@gmail.com",
|
|
120
|
+
"type": "Mailbox"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"dateOfBirth": "1999-10-01T22:00:00Z",
|
|
124
|
+
"gender": {
|
|
125
|
+
"id": "http://publications.europa.eu/resource/authority/human-sex/FEMALE",
|
|
126
|
+
"type": "Concept",
|
|
127
|
+
"inScheme": {
|
|
128
|
+
"id": "http://publications.europa.eu/resource/authority/human-sex",
|
|
129
|
+
"type": "ConceptScheme"
|
|
130
|
+
},
|
|
131
|
+
"notation": "human-sex",
|
|
132
|
+
"prefLabel": {
|
|
133
|
+
"en": "female"
|
|
134
|
+
}
|
|
135
|
+
},
|
|
136
|
+
"hasClaim": {
|
|
137
|
+
"id": "urn:epass:activity:1",
|
|
138
|
+
"type": "LearningActivity",
|
|
139
|
+
"awardedBy": {
|
|
140
|
+
"id": "urn:epass:awardingProcess:1",
|
|
141
|
+
"type": "AwardingProcess",
|
|
142
|
+
"awardingBody": {
|
|
143
|
+
"id": "urn:epass:org:1",
|
|
144
|
+
"type": "Organisation",
|
|
145
|
+
"location": {
|
|
146
|
+
"id": "urn:epass:location:1",
|
|
147
|
+
"type": "Location",
|
|
148
|
+
"address": {
|
|
149
|
+
"id": "urn:epass:address:1",
|
|
150
|
+
"type": "Address",
|
|
151
|
+
"countryCode": {
|
|
152
|
+
"id": "http://publications.europa.eu/resource/authority/country/BEL",
|
|
153
|
+
"type": "Concept",
|
|
154
|
+
"inScheme": {
|
|
155
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
156
|
+
"type": "ConceptScheme"
|
|
157
|
+
},
|
|
158
|
+
"notation": "country",
|
|
159
|
+
"prefLabel": {
|
|
160
|
+
"en": "Belgium"
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"altLabel": {
|
|
166
|
+
"en": "EDC Support Team"
|
|
167
|
+
},
|
|
168
|
+
"legalName": {
|
|
169
|
+
"en": "European Digital Credentials for Learning Support Team"
|
|
170
|
+
},
|
|
171
|
+
"registration": {
|
|
172
|
+
"id": "urn:epass:legalIdentifier:1",
|
|
173
|
+
"type": "LegalIdentifier",
|
|
174
|
+
"spatial": {
|
|
175
|
+
"id": "http://publications.europa.eu/resource/authority/country/BEL",
|
|
176
|
+
"type": "Concept",
|
|
177
|
+
"inScheme": {
|
|
178
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
179
|
+
"type": "ConceptScheme"
|
|
180
|
+
},
|
|
181
|
+
"notation": "country",
|
|
182
|
+
"prefLabel": {
|
|
183
|
+
"en": "Belgium"
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"notation": "0000"
|
|
187
|
+
},
|
|
188
|
+
"homepage": {
|
|
189
|
+
"id": "urn:epass:webResource:1",
|
|
190
|
+
"type": "WebResource",
|
|
191
|
+
"contentURL": "https://europa.eu/europass/en/europass-tools/digital-credentials"
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
},
|
|
195
|
+
"directedBy": {
|
|
196
|
+
"id": "urn:epass:org:1",
|
|
197
|
+
"type": "Organisation",
|
|
198
|
+
"location": {
|
|
199
|
+
"id": "urn:epass:location:1",
|
|
200
|
+
"type": "Location",
|
|
201
|
+
"address": {
|
|
202
|
+
"id": "urn:epass:address:1",
|
|
203
|
+
"type": "Address",
|
|
204
|
+
"countryCode": {
|
|
205
|
+
"id": "http://publications.europa.eu/resource/authority/country/BEL",
|
|
206
|
+
"type": "Concept",
|
|
207
|
+
"inScheme": {
|
|
208
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
209
|
+
"type": "ConceptScheme"
|
|
210
|
+
},
|
|
211
|
+
"notation": "country",
|
|
212
|
+
"prefLabel": {
|
|
213
|
+
"en": "Belgium"
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
"altLabel": {
|
|
219
|
+
"en": "EDC Support Team"
|
|
220
|
+
},
|
|
221
|
+
"legalName": {
|
|
222
|
+
"en": "European Digital Credentials for Learning Support Team"
|
|
223
|
+
},
|
|
224
|
+
"registration": {
|
|
225
|
+
"id": "urn:epass:legalIdentifier:1",
|
|
226
|
+
"type": "LegalIdentifier",
|
|
227
|
+
"spatial": {
|
|
228
|
+
"id": "http://publications.europa.eu/resource/authority/country/BEL",
|
|
229
|
+
"type": "Concept",
|
|
230
|
+
"inScheme": {
|
|
231
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
232
|
+
"type": "ConceptScheme"
|
|
233
|
+
},
|
|
234
|
+
"notation": "country",
|
|
235
|
+
"prefLabel": {
|
|
236
|
+
"en": "Belgium"
|
|
237
|
+
}
|
|
238
|
+
},
|
|
239
|
+
"notation": "0000"
|
|
240
|
+
},
|
|
241
|
+
"homepage": {
|
|
242
|
+
"id": "urn:epass:webResource:1",
|
|
243
|
+
"type": "WebResource",
|
|
244
|
+
"contentURL": "https://europa.eu/europass/en/europass-tools/digital-credentials"
|
|
245
|
+
}
|
|
246
|
+
},
|
|
247
|
+
"specifiedBy": {
|
|
248
|
+
"id": "urn:epass:learningActivitySpec:1",
|
|
249
|
+
"type": "LearningActivitySpecification",
|
|
250
|
+
"mode": {
|
|
251
|
+
"id": "http://data.europa.eu/snb/learning-assessment/920fbb3cbe",
|
|
252
|
+
"type": "Concept",
|
|
253
|
+
"inScheme": {
|
|
254
|
+
"id": "http://data.europa.eu/snb/learning-assessment/25831c2",
|
|
255
|
+
"type": "ConceptScheme"
|
|
256
|
+
},
|
|
257
|
+
"prefLabel": {
|
|
258
|
+
"en": "Online"
|
|
259
|
+
}
|
|
260
|
+
},
|
|
261
|
+
"supplementaryDocument": [
|
|
262
|
+
{
|
|
263
|
+
"id": "urn:epass:webResource:2",
|
|
264
|
+
"type": "WebResource",
|
|
265
|
+
"contentURL": "https://op.europa.eu/en/web/eu-vocabularies/europass",
|
|
266
|
+
"title": {
|
|
267
|
+
"en": "Common European Skills Data Space"
|
|
268
|
+
}
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"id": "urn:epass:webResource:3",
|
|
272
|
+
"type": "WebResource",
|
|
273
|
+
"contentURL": "https://europa.eu/europass/en/news/updates-european-digital-credential-infrastructure",
|
|
274
|
+
"title": {
|
|
275
|
+
"en": "Updates to the European Digital Credential Infrastructure"
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
{
|
|
279
|
+
"id": "urn:epass:webResource:4",
|
|
280
|
+
"type": "WebResource",
|
|
281
|
+
"contentURL": "https://github.com/european-commission-empl/European-Learning-Model",
|
|
282
|
+
"title": {
|
|
283
|
+
"en": "ELM on Github"
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
"volumeOfLearning": "P2M",
|
|
288
|
+
"language": {
|
|
289
|
+
"id": "http://publications.europa.eu/resource/authority/language/ENG",
|
|
290
|
+
"type": "Concept",
|
|
291
|
+
"inScheme": {
|
|
292
|
+
"id": "http://publications.europa.eu/resource/authority/language",
|
|
293
|
+
"type": "ConceptScheme"
|
|
294
|
+
},
|
|
295
|
+
"notation": "language",
|
|
296
|
+
"prefLabel": {
|
|
297
|
+
"en": "English"
|
|
298
|
+
}
|
|
299
|
+
},
|
|
300
|
+
"title": {
|
|
301
|
+
"en": "EDC Updates Webinar"
|
|
302
|
+
},
|
|
303
|
+
"dcType": {
|
|
304
|
+
"id": "http://data.europa.eu/snb/learning-activity/efff75e10a",
|
|
305
|
+
"type": "Concept",
|
|
306
|
+
"inScheme": {
|
|
307
|
+
"id": "http://data.europa.eu/snb/learning-activity/25831c2",
|
|
308
|
+
"type": "ConceptScheme"
|
|
309
|
+
},
|
|
310
|
+
"prefLabel": {
|
|
311
|
+
"en": "workshop, seminar or conference"
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
"homepage": {
|
|
315
|
+
"id": "urn:epass:webResource:1",
|
|
316
|
+
"type": "WebResource",
|
|
317
|
+
"contentURL": "https://europa.eu/europass/en/europass-tools/digital-credentials"
|
|
318
|
+
}
|
|
319
|
+
},
|
|
320
|
+
"workload": "PT2H",
|
|
321
|
+
"description": {
|
|
322
|
+
"en": "The newest version of the European Digital Credential for Learning (EDC) infrastructure was released in June 2023. The purpose of this online webinar was to inform implementers and other interested parties about the changes, and demonstrate how the newly introduced features improve overall usability and EDC's interoperability with other existing initiatives."
|
|
323
|
+
},
|
|
324
|
+
"temporal": {
|
|
325
|
+
"id": "urn:epass:period:1",
|
|
326
|
+
"type": "PeriodOfTime",
|
|
327
|
+
"endDate": "2023-06-28T14:00:00Z",
|
|
328
|
+
"startDate": "2023-06-28T12:00:00Z"
|
|
329
|
+
},
|
|
330
|
+
"title": {
|
|
331
|
+
"en": "EDC Updates Webinar"
|
|
332
|
+
}
|
|
333
|
+
},
|
|
334
|
+
"nationalID": {
|
|
335
|
+
"id": "urn:epass:legalIdentifier:2",
|
|
336
|
+
"type": "LegalIdentifier",
|
|
337
|
+
"spatial": {
|
|
338
|
+
"id": "http://publications.europa.eu/resource/authority/country/ITA",
|
|
339
|
+
"type": "Concept",
|
|
340
|
+
"inScheme": {
|
|
341
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
342
|
+
"type": "ConceptScheme"
|
|
343
|
+
},
|
|
344
|
+
"notation": "country",
|
|
345
|
+
"prefLabel": {
|
|
346
|
+
"en": "Italy"
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
"notation": "LA-234218"
|
|
350
|
+
},
|
|
351
|
+
"placeOfBirth": {
|
|
352
|
+
"id": "urn:epass:location:2",
|
|
353
|
+
"type": "Location",
|
|
354
|
+
"address": {
|
|
355
|
+
"id": "urn:epass:address:3",
|
|
356
|
+
"type": "Address",
|
|
357
|
+
"countryCode": {
|
|
358
|
+
"id": "http://publications.europa.eu/resource/authority/country/ITA",
|
|
359
|
+
"type": "Concept",
|
|
360
|
+
"inScheme": {
|
|
361
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
362
|
+
"type": "ConceptScheme"
|
|
363
|
+
},
|
|
364
|
+
"notation": "country",
|
|
365
|
+
"prefLabel": {
|
|
366
|
+
"en": "Italy"
|
|
367
|
+
}
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"identifier": {
|
|
372
|
+
"id": "urn:epass:identifier:2",
|
|
373
|
+
"type": "Identifier",
|
|
374
|
+
"schemeName": "Student ID",
|
|
375
|
+
"notation": "97168A"
|
|
376
|
+
},
|
|
377
|
+
"familyName": {
|
|
378
|
+
"en": "Andromeda"
|
|
379
|
+
},
|
|
380
|
+
"fullName": {
|
|
381
|
+
"en": "Ana Andromeda"
|
|
382
|
+
},
|
|
383
|
+
"givenName": {
|
|
384
|
+
"en": "Ana"
|
|
385
|
+
}
|
|
386
|
+
},
|
|
387
|
+
"issuer": {
|
|
388
|
+
"id": "urn:epass:org:1",
|
|
389
|
+
"type": "Organisation",
|
|
390
|
+
"location": {
|
|
391
|
+
"id": "urn:epass:location:1",
|
|
392
|
+
"type": "Location",
|
|
393
|
+
"address": {
|
|
394
|
+
"id": "urn:epass:address:1",
|
|
395
|
+
"type": "Address",
|
|
396
|
+
"countryCode": {
|
|
397
|
+
"id": "http://publications.europa.eu/resource/authority/country/BEL",
|
|
398
|
+
"type": "Concept",
|
|
399
|
+
"inScheme": {
|
|
400
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
401
|
+
"type": "ConceptScheme"
|
|
402
|
+
},
|
|
403
|
+
"notation": "country",
|
|
404
|
+
"prefLabel": {
|
|
405
|
+
"en": "Belgium"
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
},
|
|
410
|
+
"altLabel": {
|
|
411
|
+
"en": "EDC Support Team"
|
|
412
|
+
},
|
|
413
|
+
"legalName": {
|
|
414
|
+
"en": "European Digital Credentials for Learning Support Team"
|
|
415
|
+
},
|
|
416
|
+
"registration": {
|
|
417
|
+
"id": "urn:epass:legalIdentifier:1",
|
|
418
|
+
"type": "LegalIdentifier",
|
|
419
|
+
"spatial": {
|
|
420
|
+
"id": "http://publications.europa.eu/resource/authority/country/BEL",
|
|
421
|
+
"type": "Concept",
|
|
422
|
+
"inScheme": {
|
|
423
|
+
"id": "http://publications.europa.eu/resource/authority/country",
|
|
424
|
+
"type": "ConceptScheme"
|
|
425
|
+
},
|
|
426
|
+
"notation": "country",
|
|
427
|
+
"prefLabel": {
|
|
428
|
+
"en": "Belgium"
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
"notation": "0000"
|
|
432
|
+
},
|
|
433
|
+
"homepage": {
|
|
434
|
+
"id": "urn:epass:webResource:1",
|
|
435
|
+
"type": "WebResource",
|
|
436
|
+
"contentURL": "https://europa.eu/europass/en/europass-tools/digital-credentials"
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
"validFrom": "2023-06-28T14:30:00Z",
|
|
440
|
+
"@context": [
|
|
441
|
+
"https://www.w3.org/2018/credentials/v1",
|
|
442
|
+
"http://data.europa.eu/snb/model/context/edc-ap"
|
|
443
|
+
]
|
|
444
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# EBSI — diploma-simple
|
|
2
|
+
|
|
3
|
+
EBSI4Austria's TU Graz diploma sample — the canonical "small" EBSI diploma reference, distributed under EUPL by danubetech as part of the EBSI4Austria pilot. Verbatim copy of the upstream sample with the `proof` field stripped (the harness frames the unsigned input).
|
|
4
|
+
|
|
5
|
+
- Upstream: `https://github.com/danubetech/ebsi4austria-examples/blob/main/verifiablecredentials/diploma-tu-graz.jsonld`
|
|
6
|
+
- Upstream context: `https://essif.europa.eu/schemas/vc/2020/v1` (essif schemas v1, sourced from the same repo's `context/essif-schemas-vc-2020-v1.jsonld`)
|
|
7
|
+
- Retrieval date: 2026-05-06
|
|
8
|
+
|
|
9
|
+
## What this fixture exercises
|
|
10
|
+
|
|
11
|
+
- The EBSI/ESSIF v1 type stack (`VerifiableAttestation`, `DiplomaCredential`, `Student`-typed credential subject) layered on top of W3C VC v1.
|
|
12
|
+
- A flat `Student` credential subject — a minimal real-world EBSI shape that is the closest published analogue of the W3C `PermanentResidentCard` baseline (no nested objects, no `@list` containers).
|
|
13
|
+
- Reveal frame discloses `studyProgram` + `learningAchievement` only, hiding `dateOfAchievement`, `eqfLevel`, and `targetFrameworkName`.
|
|
14
|
+
|
|
15
|
+
Note: EBSI does not publish a JSON-LD-context-bearing `VerifiableId` (Natural Person) sample — its identity attestations are JWT-encoded plain JSON in production. The `Student`-typed diploma here stands in as the closest real EBSI flat-credential reference.
|
|
16
|
+
|
|
17
|
+
## Expected status
|
|
18
|
+
|
|
19
|
+
**Pass.** Baseline; if it diverges, the EBSI/ESSIF context bundle or essif's flat `Student` shape is broken before more interesting EBSI features can be tested.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
<did:key:z6MkqyYXcBQZ5hZ9BFHBiVnmrZ1C1HCpesgZQoTdgjLdU6Ah> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://essif.europa.eu/schemas/vc/2020/v1#Student> .
|
|
2
|
+
<did:key:z6MkqyYXcBQZ5hZ9BFHBiVnmrZ1C1HCpesgZQoTdgjLdU6Ah> <https://essif.europa.eu/schemas/vc/2020/v1#learningAchievement> "Master of Science" .
|
|
3
|
+
<did:key:z6MkqyYXcBQZ5hZ9BFHBiVnmrZ1C1HCpesgZQoTdgjLdU6Ah> <https://essif.europa.eu/schemas/vc/2020/v1#studyProgram> "Master Studies in Computer Science" .
|
|
4
|
+
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://essif.europa.eu/schemas/vc/2020/v1#DiplomaCredential> .
|
|
5
|
+
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://essif.europa.eu/schemas/vc/2020/v1#VerifiableAttestation> .
|
|
6
|
+
_:c14n0 <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <https://www.w3.org/2018/credentials#VerifiableCredential> .
|
|
7
|
+
_:c14n0 <https://www.w3.org/2018/credentials#credentialSubject> <did:key:z6MkqyYXcBQZ5hZ9BFHBiVnmrZ1C1HCpesgZQoTdgjLdU6Ah> .
|
|
8
|
+
_:c14n0 <https://www.w3.org/2018/credentials#issuanceDate> "2021-10-17T12:50:56Z"^^<http://www.w3.org/2001/XMLSchema#dateTime> .
|
|
9
|
+
_:c14n0 <https://www.w3.org/2018/credentials#issuer> <did:ebsi:zuoS6VfnmNLduF2dynhsjBU> .
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://www.w3.org/2018/credentials/v1",
|
|
4
|
+
"https://essif.europa.eu/schemas/vc/2020/v1"
|
|
5
|
+
],
|
|
6
|
+
"type": ["VerifiableCredential", "VerifiableAttestation", "DiplomaCredential"],
|
|
7
|
+
"credentialSubject": {
|
|
8
|
+
"@explicit": true,
|
|
9
|
+
"type": "Student",
|
|
10
|
+
"studyProgram": {},
|
|
11
|
+
"learningAchievement": {}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"@context": [
|
|
3
|
+
"https://www.w3.org/2018/credentials/v1",
|
|
4
|
+
"https://essif.europa.eu/schemas/vc/2020/v1"
|
|
5
|
+
],
|
|
6
|
+
"issuer": "did:ebsi:zuoS6VfnmNLduF2dynhsjBU",
|
|
7
|
+
"type": [
|
|
8
|
+
"VerifiableCredential",
|
|
9
|
+
"VerifiableAttestation",
|
|
10
|
+
"DiplomaCredential"
|
|
11
|
+
],
|
|
12
|
+
"credentialSubject": {
|
|
13
|
+
"id": "did:key:z6MkqyYXcBQZ5hZ9BFHBiVnmrZ1C1HCpesgZQoTdgjLdU6Ah",
|
|
14
|
+
"type": [
|
|
15
|
+
"Student"
|
|
16
|
+
],
|
|
17
|
+
"studyProgram": "Master Studies in Computer Science",
|
|
18
|
+
"learningAchievement": "Master of Science",
|
|
19
|
+
"dateOfAchievement": "2021-03-18T00:00:00.000Z",
|
|
20
|
+
"eqfLevel": "http://data.europa.eu/snb/eqf/7",
|
|
21
|
+
"targetFrameworkName": "European Qualifications Framework for lifelong learning - (2008/C 111/01)"
|
|
22
|
+
},
|
|
23
|
+
"issuanceDate": "2021-10-17T12:50:56Z"
|
|
24
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
# IDv2 — full disclosure (DrivingLicence)
|
|
2
|
+
|
|
3
|
+
`DrivingLicence`-subtype Nuggets identity VC (162 KB), used in desktop performance benchmarks (`vc/js/bench/vc_ops.mjs`). The credential's primary type from `input.jsonld` is `["VerifiableCredential","DrivingLicence"]`. Reveal frame requests every property, exercising the full canonical form including embedded JPEG evidence images. If this fixture diverges, it's a deep regression in either expand or canonize.
|
|
4
|
+
|
|
5
|
+
## Provenance
|
|
6
|
+
|
|
7
|
+
- `input.jsonld`: copied from `nuggets-v1/montpellier-v1/packages/bbs-signatures/src/__test__/identity-verifiable-credential-v2.json` (external repo) with the `proof` field stripped.
|
|
8
|
+
- Bundled contexts referenced by this input: see `vc/js/test-fixtures/interop/_contexts/README.md` for sync targets in the Rust codebase.
|
|
9
|
+
- `expected.nq`: regenerate with `node tools/regen_expected.mjs test-fixtures/interop/idv2/full-disclosure` from `vc/js/`. Do not hand-edit.
|