@learncard/credential-library 2.0.3 → 2.0.5
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 +2 -1
- package/dist/bundles/index.d.ts +5 -0
- package/dist/bundles/index.d.ts.map +1 -0
- package/dist/bundles/student.d.ts +3 -0
- package/dist/bundles/student.d.ts.map +1 -0
- package/dist/bundles/types.d.ts +24 -0
- package/dist/bundles/types.d.ts.map +1 -0
- package/dist/credential-library.cjs.development.js +10865 -611
- package/dist/credential-library.cjs.development.js.map +4 -4
- package/dist/credential-library.cjs.production.min.js +11 -1
- package/dist/credential-library.cjs.production.min.js.map +4 -4
- package/dist/credential-library.esm.js +10854 -598
- package/dist/credential-library.esm.js.map +4 -4
- package/dist/fixtures/clr/achievement-id-associations.d.ts +3 -0
- package/dist/fixtures/clr/achievement-id-associations.d.ts.map +1 -0
- package/dist/fixtures/clr/employment-record.d.ts +8 -0
- package/dist/fixtures/clr/employment-record.d.ts.map +1 -0
- package/dist/fixtures/clr/licensing-regulatory-record.d.ts +8 -0
- package/dist/fixtures/clr/licensing-regulatory-record.d.ts.map +1 -0
- package/dist/fixtures/clr/military-training-record.d.ts +8 -0
- package/dist/fixtures/clr/military-training-record.d.ts.map +1 -0
- package/dist/fixtures/clr/mixed-career-record.d.ts +8 -0
- package/dist/fixtures/clr/mixed-career-record.d.ts.map +1 -0
- package/dist/fixtures/clr/professional-organization-record.d.ts +8 -0
- package/dist/fixtures/clr/professional-organization-record.d.ts.map +1 -0
- package/dist/fixtures/clr/provisional-transcript.d.ts +7 -1
- package/dist/fixtures/clr/provisional-transcript.d.ts.map +1 -1
- package/dist/fixtures/clr/student-official-academic-transcript.d.ts +3 -0
- package/dist/fixtures/clr/student-official-academic-transcript.d.ts.map +1 -0
- package/dist/fixtures/clr/training-provider-record.d.ts +8 -0
- package/dist/fixtures/clr/training-provider-record.d.ts.map +1 -0
- package/dist/fixtures/index.d.ts +12 -1
- package/dist/fixtures/index.d.ts.map +1 -1
- package/dist/fixtures/obv3/rubric-aligned-badge.d.ts +3 -0
- package/dist/fixtures/obv3/rubric-aligned-badge.d.ts.map +1 -0
- package/dist/fixtures/obv3/student-additional-credentials.d.ts +3 -0
- package/dist/fixtures/obv3/student-additional-credentials.d.ts.map +1 -0
- package/dist/fixtures/obv3/student-sample-badges.d.ts +586 -0
- package/dist/fixtures/obv3/student-sample-badges.d.ts.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/prepare.d.ts +0 -18
- package/dist/prepare.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/__tests__/bundles.test.ts +234 -0
- package/src/__tests__/clr-non-academic.test.ts +220 -0
- package/src/__tests__/registry.test.ts +74 -0
- package/src/bundles/index.ts +19 -0
- package/src/bundles/student.ts +251 -0
- package/src/bundles/types.ts +25 -0
- package/src/fixtures/clr/README.md +142 -0
- package/src/fixtures/clr/achievement-id-associations.ts +342 -0
- package/src/fixtures/clr/employment-record.ts +487 -0
- package/src/fixtures/clr/licensing-regulatory-record.ts +388 -0
- package/src/fixtures/clr/military-training-record.ts +468 -0
- package/src/fixtures/clr/mixed-career-record.ts +814 -0
- package/src/fixtures/clr/professional-organization-record.ts +403 -0
- package/src/fixtures/clr/provisional-transcript.ts +16 -3
- package/src/fixtures/clr/student-official-academic-transcript.ts +3202 -0
- package/src/fixtures/clr/training-provider-record.ts +510 -0
- package/src/fixtures/index.ts +44 -0
- package/src/fixtures/obv3/rubric-aligned-badge.ts +105 -0
- package/src/fixtures/obv3/student-additional-credentials.ts +3912 -0
- package/src/fixtures/obv3/student-sample-badges.ts +424 -0
- package/src/index.ts +2 -0
- package/src/prepare.ts +70 -11
- package/dist/__tests__/docs-json.test.d.ts +0 -2
- package/dist/__tests__/docs-json.test.d.ts.map +0 -1
- package/dist/__tests__/issuance.test.d.ts +0 -2
- package/dist/__tests__/issuance.test.d.ts.map +0 -1
- package/dist/__tests__/registry.test.d.ts +0 -2
- package/dist/__tests__/registry.test.d.ts.map +0 -1
- package/dist/__tests__/sd-jwt-vc.test.d.ts +0 -2
- package/dist/__tests__/sd-jwt-vc.test.d.ts.map +0 -1
|
@@ -0,0 +1,510 @@
|
|
|
1
|
+
import type { CredentialFixture } from '../../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* LC-2184: synthetic, unsigned CLR display/issuance template.
|
|
5
|
+
* Both the outer record and embedded achievements intentionally have no proof.
|
|
6
|
+
* Sign/rebind children before the outer CLR for cryptographic verification tests.
|
|
7
|
+
*/
|
|
8
|
+
export const clrTrainingProviderRecord: CredentialFixture = {
|
|
9
|
+
id: 'clr/training-provider-record',
|
|
10
|
+
name: 'Training & Development Record — Cedar Technical Training',
|
|
11
|
+
description:
|
|
12
|
+
'Explores non-credit training, explicit participation hours, score thresholds, completion certificates, and ongoing participation without GPA or academic terms. Unsigned display/issuance template; child proofs must be issued separately for a fully verifiable CLR.',
|
|
13
|
+
spec: 'clr-v2',
|
|
14
|
+
profile: 'learner-record',
|
|
15
|
+
features: ['nested-credentials', 'associations', 'results', 'evidence', 'alignment', 'source'],
|
|
16
|
+
source: 'synthetic',
|
|
17
|
+
signed: false,
|
|
18
|
+
validity: 'valid',
|
|
19
|
+
tags: [
|
|
20
|
+
'lc-2184',
|
|
21
|
+
'non-academic',
|
|
22
|
+
'synthetic',
|
|
23
|
+
'training-provider',
|
|
24
|
+
'training',
|
|
25
|
+
'hours',
|
|
26
|
+
'completion',
|
|
27
|
+
'in-progress',
|
|
28
|
+
],
|
|
29
|
+
credential: {
|
|
30
|
+
'@context': [
|
|
31
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
32
|
+
'https://purl.imsglobal.org/spec/clr/v2p0/context.json',
|
|
33
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
34
|
+
{
|
|
35
|
+
partial: {
|
|
36
|
+
'@id': 'https://purl.imsglobal.org/spec/vc/clr/vocab.html#partial',
|
|
37
|
+
'@type': 'http://www.w3.org/2001/XMLSchema#boolean',
|
|
38
|
+
},
|
|
39
|
+
identifier: {
|
|
40
|
+
'@id': 'https://purl.imsglobal.org/spec/vc/ob/vocab.html#identifier',
|
|
41
|
+
'@container': '@set',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
],
|
|
45
|
+
id: 'urn:uuid:c474810b-5e8d-5e3d-873e-def68a09f6bb',
|
|
46
|
+
type: ['VerifiableCredential', 'ClrCredential'],
|
|
47
|
+
name: 'Training & Development Record — Cedar Technical Training',
|
|
48
|
+
description:
|
|
49
|
+
'Synthetic demonstration record as of September 1, 2026. Explores non-credit training, explicit participation hours, score thresholds, completion certificates, and ongoing participation without GPA or academic terms.',
|
|
50
|
+
issuer: {
|
|
51
|
+
id: 'did:example:lc2184-cedar-training',
|
|
52
|
+
type: ['Profile'],
|
|
53
|
+
name: 'Cedar Technical Training',
|
|
54
|
+
url: 'https://cedar-training.example',
|
|
55
|
+
description: 'Fictional organization used only for LearnCard display tests.',
|
|
56
|
+
},
|
|
57
|
+
validFrom: '2026-09-01T12:00:00Z',
|
|
58
|
+
partial: true,
|
|
59
|
+
credentialSubject: {
|
|
60
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
61
|
+
type: ['ClrSubject'],
|
|
62
|
+
identifier: [
|
|
63
|
+
{
|
|
64
|
+
type: 'IdentityObject',
|
|
65
|
+
hashed: false,
|
|
66
|
+
identityType: 'name',
|
|
67
|
+
identityHash: 'Alex Morgan (Synthetic)',
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
verifiableCredential: [
|
|
71
|
+
{
|
|
72
|
+
'@context': [
|
|
73
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
74
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
75
|
+
],
|
|
76
|
+
id: 'urn:uuid:ce28f882-7ccf-5433-b38b-547276c159ee',
|
|
77
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
78
|
+
name: 'Applied Data Operations Workshop',
|
|
79
|
+
description:
|
|
80
|
+
'A workplace training course with participation hours rather than academic credits.',
|
|
81
|
+
issuer: {
|
|
82
|
+
id: 'did:example:lc2184-cedar-training',
|
|
83
|
+
type: ['Profile'],
|
|
84
|
+
name: 'Cedar Technical Training',
|
|
85
|
+
url: 'https://cedar-training.example',
|
|
86
|
+
description:
|
|
87
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
88
|
+
},
|
|
89
|
+
validFrom: '2026-03-16T12:00:00Z',
|
|
90
|
+
credentialSubject: {
|
|
91
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
92
|
+
type: ['AchievementSubject'],
|
|
93
|
+
achievement: {
|
|
94
|
+
id: 'urn:uuid:248e9bf0-ac3d-5d64-873f-5f26f3cb8edc',
|
|
95
|
+
type: ['Achievement'],
|
|
96
|
+
achievementType: 'Course',
|
|
97
|
+
name: 'Applied Data Operations Workshop',
|
|
98
|
+
description:
|
|
99
|
+
'A workplace training course with participation hours rather than academic credits.',
|
|
100
|
+
criteria: {
|
|
101
|
+
narrative:
|
|
102
|
+
'Attend at least 32 instructor-led hours and complete the practical exercises.',
|
|
103
|
+
},
|
|
104
|
+
creator: {
|
|
105
|
+
id: 'did:example:lc2184-cedar-standards',
|
|
106
|
+
type: ['Profile'],
|
|
107
|
+
name: 'Cedar Skills Council',
|
|
108
|
+
url: 'https://cedar-standards.example',
|
|
109
|
+
description:
|
|
110
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
111
|
+
},
|
|
112
|
+
humanCode: 'SYN-TRAINING-COURSE',
|
|
113
|
+
version: '1.0',
|
|
114
|
+
inLanguage: 'en',
|
|
115
|
+
tag: ['synthetic', 'lc-2184'],
|
|
116
|
+
resultDescription: [
|
|
117
|
+
{
|
|
118
|
+
id: 'urn:uuid:65a6a2c1-8ea3-58f4-b66c-a09b8ec02ffb',
|
|
119
|
+
type: ['ResultDescription'],
|
|
120
|
+
name: 'Instructor-led participation (hours)',
|
|
121
|
+
resultType: 'RawScore',
|
|
122
|
+
valueMin: '0',
|
|
123
|
+
valueMax: '40',
|
|
124
|
+
requiredValue: '32',
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
id: 'urn:uuid:3ff5b035-6745-51fa-9160-8c7c13f931cf',
|
|
128
|
+
type: ['ResultDescription'],
|
|
129
|
+
name: 'Training completion',
|
|
130
|
+
resultType: 'Status',
|
|
131
|
+
},
|
|
132
|
+
],
|
|
133
|
+
alignment: [
|
|
134
|
+
{
|
|
135
|
+
type: ['Alignment'],
|
|
136
|
+
targetName: 'Operates a data workflow',
|
|
137
|
+
targetCode: 'DATA-101',
|
|
138
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
139
|
+
targetUrl: 'https://skills.example/framework/data-101',
|
|
140
|
+
targetDescription:
|
|
141
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
142
|
+
targetType: 'CFItem',
|
|
143
|
+
},
|
|
144
|
+
],
|
|
145
|
+
fieldOfStudy: 'Data operations',
|
|
146
|
+
specialization: 'Operational quality',
|
|
147
|
+
},
|
|
148
|
+
activityStartDate: '2026-03-02T09:00:00Z',
|
|
149
|
+
activityEndDate: '2026-03-13T17:00:00Z',
|
|
150
|
+
role: 'Participant',
|
|
151
|
+
source: {
|
|
152
|
+
id: 'did:example:lc2184-cedar-training',
|
|
153
|
+
type: ['Profile'],
|
|
154
|
+
name: 'Cedar Technical Training',
|
|
155
|
+
url: 'https://cedar-training.example',
|
|
156
|
+
description:
|
|
157
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
158
|
+
},
|
|
159
|
+
result: [
|
|
160
|
+
{
|
|
161
|
+
type: ['Result'],
|
|
162
|
+
resultDescription: 'urn:uuid:3ff5b035-6745-51fa-9160-8c7c13f931cf',
|
|
163
|
+
status: 'Completed',
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
type: ['Result'],
|
|
167
|
+
resultDescription: 'urn:uuid:65a6a2c1-8ea3-58f4-b66c-a09b8ec02ffb',
|
|
168
|
+
value: '36',
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
},
|
|
172
|
+
awardedDate: '2026-03-16T12:00:00Z',
|
|
173
|
+
evidence: [
|
|
174
|
+
{
|
|
175
|
+
type: ['Evidence'],
|
|
176
|
+
name: 'Participation and exercise log',
|
|
177
|
+
description: 'Synthetic assessment evidence.',
|
|
178
|
+
narrative:
|
|
179
|
+
'The fictional learner attended 36 hours and completed six practical exercises.',
|
|
180
|
+
genre: 'Assessment record',
|
|
181
|
+
audience: 'Learner and authorized reviewer',
|
|
182
|
+
},
|
|
183
|
+
],
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
'@context': [
|
|
187
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
188
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
189
|
+
],
|
|
190
|
+
id: 'urn:uuid:06a114b2-fee9-5093-8a7f-d6c2ce138b49',
|
|
191
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
192
|
+
name: 'Data Workflow Practical Assessment',
|
|
193
|
+
description:
|
|
194
|
+
'An assessment with the achieved score, its scale, and an explicit required score.',
|
|
195
|
+
issuer: {
|
|
196
|
+
id: 'did:example:lc2184-cedar-training',
|
|
197
|
+
type: ['Profile'],
|
|
198
|
+
name: 'Cedar Technical Training',
|
|
199
|
+
url: 'https://cedar-training.example',
|
|
200
|
+
description:
|
|
201
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
202
|
+
},
|
|
203
|
+
validFrom: '2026-03-16T12:00:00Z',
|
|
204
|
+
credentialSubject: {
|
|
205
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
206
|
+
type: ['AchievementSubject'],
|
|
207
|
+
achievement: {
|
|
208
|
+
id: 'urn:uuid:c66210ee-6afa-59e6-91c1-750cfdc644f0',
|
|
209
|
+
type: ['Achievement'],
|
|
210
|
+
achievementType: 'Assessment',
|
|
211
|
+
name: 'Data Workflow Practical Assessment',
|
|
212
|
+
description:
|
|
213
|
+
'An assessment with the achieved score, its scale, and an explicit required score.',
|
|
214
|
+
criteria: {
|
|
215
|
+
narrative:
|
|
216
|
+
'Score at least 75 out of 100 in the practical assessment.',
|
|
217
|
+
},
|
|
218
|
+
creator: {
|
|
219
|
+
id: 'did:example:lc2184-cedar-standards',
|
|
220
|
+
type: ['Profile'],
|
|
221
|
+
name: 'Cedar Skills Council',
|
|
222
|
+
url: 'https://cedar-standards.example',
|
|
223
|
+
description:
|
|
224
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
225
|
+
},
|
|
226
|
+
humanCode: 'SYN-TRAINING-ASSESSMENT',
|
|
227
|
+
version: '1.0',
|
|
228
|
+
inLanguage: 'en',
|
|
229
|
+
tag: ['synthetic', 'lc-2184'],
|
|
230
|
+
resultDescription: [
|
|
231
|
+
{
|
|
232
|
+
id: 'urn:uuid:d2f3bc37-90bf-5dde-8e90-043c37f53ebf',
|
|
233
|
+
type: ['ResultDescription'],
|
|
234
|
+
name: 'Practical assessment score',
|
|
235
|
+
resultType: 'RawScore',
|
|
236
|
+
valueMin: '0',
|
|
237
|
+
valueMax: '100',
|
|
238
|
+
requiredValue: '75',
|
|
239
|
+
},
|
|
240
|
+
{
|
|
241
|
+
id: 'urn:uuid:38317465-32de-5e76-86bc-063024cf30d2',
|
|
242
|
+
type: ['ResultDescription'],
|
|
243
|
+
name: 'Assessment completion',
|
|
244
|
+
resultType: 'Status',
|
|
245
|
+
},
|
|
246
|
+
],
|
|
247
|
+
alignment: [
|
|
248
|
+
{
|
|
249
|
+
type: ['Alignment'],
|
|
250
|
+
targetName: 'Checks workflow quality',
|
|
251
|
+
targetCode: 'DATA-102',
|
|
252
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
253
|
+
targetUrl: 'https://skills.example/framework/data-102',
|
|
254
|
+
targetDescription:
|
|
255
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
256
|
+
targetType: 'CFItem',
|
|
257
|
+
},
|
|
258
|
+
],
|
|
259
|
+
},
|
|
260
|
+
activityStartDate: '2026-03-13T13:00:00Z',
|
|
261
|
+
activityEndDate: '2026-03-13T16:00:00Z',
|
|
262
|
+
role: 'Candidate',
|
|
263
|
+
source: {
|
|
264
|
+
id: 'did:example:lc2184-harbor-assessment',
|
|
265
|
+
type: ['Profile'],
|
|
266
|
+
name: 'Harbor Systems — Assessment Team',
|
|
267
|
+
url: 'https://harbor-assessment.example',
|
|
268
|
+
description:
|
|
269
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
270
|
+
},
|
|
271
|
+
result: [
|
|
272
|
+
{
|
|
273
|
+
type: ['Result'],
|
|
274
|
+
resultDescription: 'urn:uuid:d2f3bc37-90bf-5dde-8e90-043c37f53ebf',
|
|
275
|
+
value: '86',
|
|
276
|
+
},
|
|
277
|
+
{
|
|
278
|
+
type: ['Result'],
|
|
279
|
+
resultDescription: 'urn:uuid:38317465-32de-5e76-86bc-063024cf30d2',
|
|
280
|
+
status: 'Completed',
|
|
281
|
+
},
|
|
282
|
+
],
|
|
283
|
+
},
|
|
284
|
+
awardedDate: '2026-03-16T12:00:00Z',
|
|
285
|
+
evidence: [
|
|
286
|
+
{
|
|
287
|
+
type: ['Evidence'],
|
|
288
|
+
name: 'Assessor observation',
|
|
289
|
+
description: 'Synthetic assessment evidence.',
|
|
290
|
+
narrative:
|
|
291
|
+
'The assessor awarded 86 of 100 possible points on the practical exercise.',
|
|
292
|
+
genre: 'Assessment record',
|
|
293
|
+
audience: 'Learner and authorized reviewer',
|
|
294
|
+
},
|
|
295
|
+
],
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
'@context': [
|
|
299
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
300
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
301
|
+
],
|
|
302
|
+
id: 'urn:uuid:1b82d22c-071c-59cf-83e5-23427750f517',
|
|
303
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
304
|
+
name: 'Applied Data Operations Completion',
|
|
305
|
+
description:
|
|
306
|
+
'A certificate of completion linking course participation and assessment.',
|
|
307
|
+
issuer: {
|
|
308
|
+
id: 'did:example:lc2184-cedar-training',
|
|
309
|
+
type: ['Profile'],
|
|
310
|
+
name: 'Cedar Technical Training',
|
|
311
|
+
url: 'https://cedar-training.example',
|
|
312
|
+
description:
|
|
313
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
314
|
+
},
|
|
315
|
+
validFrom: '2026-03-16T12:00:00Z',
|
|
316
|
+
credentialSubject: {
|
|
317
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
318
|
+
type: ['AchievementSubject'],
|
|
319
|
+
achievement: {
|
|
320
|
+
id: 'urn:uuid:f0fd8b1a-13c2-5c1b-8cb6-eaa12c893e8f',
|
|
321
|
+
type: ['Achievement'],
|
|
322
|
+
achievementType: 'CertificateOfCompletion',
|
|
323
|
+
name: 'Applied Data Operations Completion',
|
|
324
|
+
description:
|
|
325
|
+
'A certificate of completion linking course participation and assessment.',
|
|
326
|
+
criteria: {
|
|
327
|
+
narrative: 'Complete the workshop and practical assessment.',
|
|
328
|
+
},
|
|
329
|
+
creator: {
|
|
330
|
+
id: 'did:example:lc2184-cedar-training',
|
|
331
|
+
type: ['Profile'],
|
|
332
|
+
name: 'Cedar Technical Training',
|
|
333
|
+
url: 'https://cedar-training.example',
|
|
334
|
+
description:
|
|
335
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
336
|
+
},
|
|
337
|
+
humanCode: 'SYN-TRAINING-COMPLETION',
|
|
338
|
+
version: '1.0',
|
|
339
|
+
inLanguage: 'en',
|
|
340
|
+
tag: ['synthetic', 'lc-2184'],
|
|
341
|
+
resultDescription: [
|
|
342
|
+
{
|
|
343
|
+
id: 'urn:uuid:daac2cb1-3724-514c-845f-320d57c33be8',
|
|
344
|
+
type: ['ResultDescription'],
|
|
345
|
+
name: 'Completion status',
|
|
346
|
+
resultType: 'Status',
|
|
347
|
+
},
|
|
348
|
+
],
|
|
349
|
+
alignment: [
|
|
350
|
+
{
|
|
351
|
+
type: ['Alignment'],
|
|
352
|
+
targetName: 'Operates a data workflow',
|
|
353
|
+
targetCode: 'DATA-101',
|
|
354
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
355
|
+
targetUrl: 'https://skills.example/framework/data-101',
|
|
356
|
+
targetDescription:
|
|
357
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
358
|
+
targetType: 'CFItem',
|
|
359
|
+
},
|
|
360
|
+
],
|
|
361
|
+
},
|
|
362
|
+
source: {
|
|
363
|
+
id: 'did:example:lc2184-cedar-training',
|
|
364
|
+
type: ['Profile'],
|
|
365
|
+
name: 'Cedar Technical Training',
|
|
366
|
+
url: 'https://cedar-training.example',
|
|
367
|
+
description:
|
|
368
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
369
|
+
},
|
|
370
|
+
result: [
|
|
371
|
+
{
|
|
372
|
+
type: ['Result'],
|
|
373
|
+
resultDescription: 'urn:uuid:daac2cb1-3724-514c-845f-320d57c33be8',
|
|
374
|
+
status: 'Completed',
|
|
375
|
+
},
|
|
376
|
+
],
|
|
377
|
+
},
|
|
378
|
+
awardedDate: '2026-03-16T12:00:00Z',
|
|
379
|
+
evidence: [
|
|
380
|
+
{
|
|
381
|
+
type: ['Evidence'],
|
|
382
|
+
name: 'Completion decision',
|
|
383
|
+
description: 'Synthetic assessment evidence.',
|
|
384
|
+
narrative:
|
|
385
|
+
'The training provider recorded workshop and assessment completion.',
|
|
386
|
+
genre: 'Assessment record',
|
|
387
|
+
audience: 'Learner and authorized reviewer',
|
|
388
|
+
},
|
|
389
|
+
],
|
|
390
|
+
},
|
|
391
|
+
{
|
|
392
|
+
'@context': [
|
|
393
|
+
'https://www.w3.org/ns/credentials/v2',
|
|
394
|
+
'https://purl.imsglobal.org/spec/ob/v3p0/context-3.0.3.json',
|
|
395
|
+
],
|
|
396
|
+
id: 'urn:uuid:2bd7ed50-58d3-5a24-9a7e-778d26cb4094',
|
|
397
|
+
type: ['VerifiableCredential', 'AchievementCredential'],
|
|
398
|
+
name: 'Advanced Data Operations Practice',
|
|
399
|
+
description:
|
|
400
|
+
'An in-progress program with a start date and intentionally no end date.',
|
|
401
|
+
issuer: {
|
|
402
|
+
id: 'did:example:lc2184-cedar-training',
|
|
403
|
+
type: ['Profile'],
|
|
404
|
+
name: 'Cedar Technical Training',
|
|
405
|
+
url: 'https://cedar-training.example',
|
|
406
|
+
description:
|
|
407
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
408
|
+
},
|
|
409
|
+
validFrom: '2026-09-01T12:00:00Z',
|
|
410
|
+
credentialSubject: {
|
|
411
|
+
id: 'did:example:lc2184-alex-morgan',
|
|
412
|
+
type: ['AchievementSubject'],
|
|
413
|
+
achievement: {
|
|
414
|
+
id: 'urn:uuid:9c523c2f-d87d-582e-909f-c47b3763227a',
|
|
415
|
+
type: ['Achievement'],
|
|
416
|
+
achievementType: 'LearningProgram',
|
|
417
|
+
name: 'Advanced Data Operations Practice',
|
|
418
|
+
description:
|
|
419
|
+
'An in-progress program with a start date and intentionally no end date.',
|
|
420
|
+
criteria: {
|
|
421
|
+
narrative:
|
|
422
|
+
'Complete the advanced practice activities and a final assessment.',
|
|
423
|
+
},
|
|
424
|
+
creator: {
|
|
425
|
+
id: 'did:example:lc2184-cedar-training',
|
|
426
|
+
type: ['Profile'],
|
|
427
|
+
name: 'Cedar Technical Training',
|
|
428
|
+
url: 'https://cedar-training.example',
|
|
429
|
+
description:
|
|
430
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
431
|
+
},
|
|
432
|
+
humanCode: 'SYN-TRAINING-PROGRESS',
|
|
433
|
+
version: '1.0',
|
|
434
|
+
inLanguage: 'en',
|
|
435
|
+
tag: ['synthetic', 'lc-2184'],
|
|
436
|
+
resultDescription: [
|
|
437
|
+
{
|
|
438
|
+
id: 'urn:uuid:f019000e-b53c-5ce7-bc8a-0ad81106512a',
|
|
439
|
+
type: ['ResultDescription'],
|
|
440
|
+
name: 'Participation status',
|
|
441
|
+
resultType: 'Status',
|
|
442
|
+
},
|
|
443
|
+
],
|
|
444
|
+
alignment: [
|
|
445
|
+
{
|
|
446
|
+
type: ['Alignment'],
|
|
447
|
+
targetName: 'Advanced data operations',
|
|
448
|
+
targetCode: 'DATA-201',
|
|
449
|
+
targetFramework: 'Synthetic Workplace Capability Framework',
|
|
450
|
+
targetUrl: 'https://skills.example/framework/data-201',
|
|
451
|
+
targetDescription:
|
|
452
|
+
'Fictional framework node for testing explicit alignment display; not a real qualification equivalence.',
|
|
453
|
+
targetType: 'CFItem',
|
|
454
|
+
},
|
|
455
|
+
],
|
|
456
|
+
},
|
|
457
|
+
activityStartDate: '2026-08-03T09:00:00Z',
|
|
458
|
+
role: 'Participant',
|
|
459
|
+
source: {
|
|
460
|
+
id: 'did:example:lc2184-cedar-training',
|
|
461
|
+
type: ['Profile'],
|
|
462
|
+
name: 'Cedar Technical Training',
|
|
463
|
+
url: 'https://cedar-training.example',
|
|
464
|
+
description:
|
|
465
|
+
'Fictional organization used only for LearnCard display tests.',
|
|
466
|
+
},
|
|
467
|
+
result: [
|
|
468
|
+
{
|
|
469
|
+
type: ['Result'],
|
|
470
|
+
resultDescription: 'urn:uuid:f019000e-b53c-5ce7-bc8a-0ad81106512a',
|
|
471
|
+
status: 'InProgress',
|
|
472
|
+
},
|
|
473
|
+
],
|
|
474
|
+
},
|
|
475
|
+
evidence: [
|
|
476
|
+
{
|
|
477
|
+
type: ['Evidence'],
|
|
478
|
+
name: 'Progress narrative',
|
|
479
|
+
description: 'Synthetic assessment evidence.',
|
|
480
|
+
narrative:
|
|
481
|
+
'Two of four practice activities were completed at the snapshot date; no completion is asserted.',
|
|
482
|
+
genre: 'Assessment record',
|
|
483
|
+
audience: 'Learner and authorized reviewer',
|
|
484
|
+
},
|
|
485
|
+
],
|
|
486
|
+
},
|
|
487
|
+
],
|
|
488
|
+
association: [
|
|
489
|
+
{
|
|
490
|
+
type: ['Association'],
|
|
491
|
+
associationType: 'isRelatedTo',
|
|
492
|
+
sourceId: 'urn:uuid:248e9bf0-ac3d-5d64-873f-5f26f3cb8edc',
|
|
493
|
+
targetId: 'urn:uuid:c66210ee-6afa-59e6-91c1-750cfdc644f0',
|
|
494
|
+
},
|
|
495
|
+
{
|
|
496
|
+
type: ['Association'],
|
|
497
|
+
associationType: 'precedes',
|
|
498
|
+
sourceId: 'urn:uuid:248e9bf0-ac3d-5d64-873f-5f26f3cb8edc',
|
|
499
|
+
targetId: 'urn:uuid:f0fd8b1a-13c2-5c1b-8cb6-eaa12c893e8f',
|
|
500
|
+
},
|
|
501
|
+
{
|
|
502
|
+
type: ['Association'],
|
|
503
|
+
associationType: 'precedes',
|
|
504
|
+
sourceId: 'urn:uuid:f0fd8b1a-13c2-5c1b-8cb6-eaa12c893e8f',
|
|
505
|
+
targetId: 'urn:uuid:9c523c2f-d87d-582e-909f-c47b3763227a',
|
|
506
|
+
},
|
|
507
|
+
],
|
|
508
|
+
},
|
|
509
|
+
},
|
|
510
|
+
};
|
package/src/fixtures/index.ts
CHANGED
|
@@ -23,11 +23,26 @@ import { obv3CourseCompletion } from './obv3/course-completion';
|
|
|
23
23
|
import { obv3StandaloneFullCourse } from './obv3/standalone-full-course';
|
|
24
24
|
import { obv3K12Diploma } from './obv3/k12-diploma';
|
|
25
25
|
import { obv3EndorsementCredential } from './obv3/endorsement';
|
|
26
|
+
import {
|
|
27
|
+
obv3StudentAfterschoolProgramMentor,
|
|
28
|
+
obv3StudentEnvironmentBadge,
|
|
29
|
+
obv3StudentRockClimbingMentor,
|
|
30
|
+
obv3StudentParkCleanupHelper,
|
|
31
|
+
} from './obv3/student-sample-badges';
|
|
32
|
+
import { obv3StudentAdditionalCredentials } from './obv3/student-additional-credentials';
|
|
33
|
+
import { obv3RubricAlignedBadge } from './obv3/rubric-aligned-badge';
|
|
26
34
|
|
|
27
35
|
// CLR v2
|
|
28
36
|
import { clrMinimal } from './clr/minimal';
|
|
29
37
|
import { clrMultiAchievement } from './clr/multi-achievement';
|
|
30
38
|
import { clrUniversityTranscript } from './clr/university-transcript';
|
|
39
|
+
import { clrStudentOfficialAcademicTranscript } from './clr/student-official-academic-transcript';
|
|
40
|
+
import { clrEmploymentRecord } from './clr/employment-record';
|
|
41
|
+
import { clrTrainingProviderRecord } from './clr/training-provider-record';
|
|
42
|
+
import { clrMilitaryTrainingRecord } from './clr/military-training-record';
|
|
43
|
+
import { clrProfessionalOrganizationRecord } from './clr/professional-organization-record';
|
|
44
|
+
import { clrLicensingRegulatoryRecord } from './clr/licensing-regulatory-record';
|
|
45
|
+
import { clrMixedCareerRecord } from './clr/mixed-career-record';
|
|
31
46
|
|
|
32
47
|
// LearnCard Boosts
|
|
33
48
|
import { boostBasic } from './boost/basic';
|
|
@@ -56,6 +71,7 @@ import { vcV2LicenseCredential } from './vc-v2/license-credential';
|
|
|
56
71
|
import { clrGreatPlainsFull } from './clr/great-plains-full';
|
|
57
72
|
import { clrWestbridgeFull } from './clr/westbridge-full';
|
|
58
73
|
import { clrCompetencyAligned } from './clr/competency-aligned';
|
|
74
|
+
import { clrAchievementIdAssociations } from './clr/achievement-id-associations';
|
|
59
75
|
import {
|
|
60
76
|
clrProvisionalTranscript,
|
|
61
77
|
buildFinalTranscriptVariant,
|
|
@@ -94,11 +110,24 @@ export const ALL_FIXTURES: LibraryFixture[] = [
|
|
|
94
110
|
obv3StandaloneFullCourse,
|
|
95
111
|
obv3K12Diploma,
|
|
96
112
|
obv3EndorsementCredential,
|
|
113
|
+
obv3StudentAfterschoolProgramMentor,
|
|
114
|
+
obv3StudentEnvironmentBadge,
|
|
115
|
+
obv3StudentRockClimbingMentor,
|
|
116
|
+
obv3StudentParkCleanupHelper,
|
|
117
|
+
...obv3StudentAdditionalCredentials,
|
|
118
|
+
obv3RubricAlignedBadge,
|
|
97
119
|
|
|
98
120
|
// CLR v2
|
|
99
121
|
clrMinimal,
|
|
100
122
|
clrMultiAchievement,
|
|
101
123
|
clrUniversityTranscript,
|
|
124
|
+
clrStudentOfficialAcademicTranscript,
|
|
125
|
+
clrEmploymentRecord,
|
|
126
|
+
clrTrainingProviderRecord,
|
|
127
|
+
clrMilitaryTrainingRecord,
|
|
128
|
+
clrProfessionalOrganizationRecord,
|
|
129
|
+
clrLicensingRegulatoryRecord,
|
|
130
|
+
clrMixedCareerRecord,
|
|
102
131
|
|
|
103
132
|
// Boosts
|
|
104
133
|
boostBasic,
|
|
@@ -125,6 +154,7 @@ export const ALL_FIXTURES: LibraryFixture[] = [
|
|
|
125
154
|
clrGreatPlainsFull,
|
|
126
155
|
clrWestbridgeFull,
|
|
127
156
|
clrCompetencyAligned,
|
|
157
|
+
clrAchievementIdAssociations,
|
|
128
158
|
clrProvisionalTranscript,
|
|
129
159
|
clrDemoIsdDiplomaAssessments,
|
|
130
160
|
|
|
@@ -161,7 +191,20 @@ export {
|
|
|
161
191
|
obv3StandaloneFullCourse,
|
|
162
192
|
obv3K12Diploma,
|
|
163
193
|
obv3EndorsementCredential,
|
|
194
|
+
obv3StudentAfterschoolProgramMentor,
|
|
195
|
+
obv3StudentEnvironmentBadge,
|
|
196
|
+
obv3StudentRockClimbingMentor,
|
|
197
|
+
obv3StudentParkCleanupHelper,
|
|
198
|
+
obv3StudentAdditionalCredentials,
|
|
199
|
+
obv3RubricAlignedBadge,
|
|
164
200
|
clrUniversityTranscript,
|
|
201
|
+
clrStudentOfficialAcademicTranscript,
|
|
202
|
+
clrEmploymentRecord,
|
|
203
|
+
clrTrainingProviderRecord,
|
|
204
|
+
clrMilitaryTrainingRecord,
|
|
205
|
+
clrProfessionalOrganizationRecord,
|
|
206
|
+
clrLicensingRegulatoryRecord,
|
|
207
|
+
clrMixedCareerRecord,
|
|
165
208
|
boostCommunityAward,
|
|
166
209
|
boostDelegate,
|
|
167
210
|
vcV1AlumniCredential,
|
|
@@ -173,6 +216,7 @@ export {
|
|
|
173
216
|
clrGreatPlainsFull,
|
|
174
217
|
clrWestbridgeFull,
|
|
175
218
|
clrCompetencyAligned,
|
|
219
|
+
clrAchievementIdAssociations,
|
|
176
220
|
clrProvisionalTranscript,
|
|
177
221
|
buildFinalTranscriptVariant,
|
|
178
222
|
REFRESH_SERVICE_INLINE_CONTEXT,
|