@sphereon/ssi-types 0.30.2-unstable.9 → 0.31.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/dist/events/index.d.ts +5 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +4 -0
- package/dist/events/index.js.map +1 -1
- package/dist/logging/index.d.ts +1 -1
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/index.js +3 -2
- package/dist/logging/index.js.map +1 -1
- package/dist/mapper/credential-constraints.d.ts +16 -0
- package/dist/mapper/credential-constraints.d.ts.map +1 -0
- package/dist/mapper/credential-constraints.js +3 -0
- package/dist/mapper/credential-constraints.js.map +1 -0
- package/dist/mapper/credential-mapper.d.ts +3 -2
- package/dist/mapper/credential-mapper.d.ts.map +1 -1
- package/dist/mapper/credential-mapper.js +14 -10
- package/dist/mapper/credential-mapper.js.map +1 -1
- package/dist/mapper/jsonld-language-values.d.ts.map +1 -1
- package/dist/types/cose.d.ts +12 -0
- package/dist/types/cose.d.ts.map +1 -1
- package/dist/types/cose.js.map +1 -1
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -1
- package/dist/types/metadata-types.d.ts +5 -0
- package/dist/types/metadata-types.d.ts.map +1 -0
- package/dist/types/metadata-types.js +3 -0
- package/dist/types/metadata-types.js.map +1 -0
- package/dist/types/mso_mdoc.d.ts +16 -8
- package/dist/types/mso_mdoc.d.ts.map +1 -1
- package/dist/types/mso_mdoc.js +29 -11
- package/dist/types/mso_mdoc.js.map +1 -1
- package/dist/types/sd-jwt-type-metadata.d.ts +147 -0
- package/dist/types/sd-jwt-type-metadata.d.ts.map +1 -0
- package/dist/types/sd-jwt-type-metadata.js +84 -0
- package/dist/types/sd-jwt-type-metadata.js.map +1 -0
- package/dist/types/sd-jwt-vc.d.ts.map +1 -1
- package/dist/types/sd-jwt-vc.js +17 -12
- package/dist/types/sd-jwt-vc.js.map +1 -1
- package/dist/types/w3c-vc.js +5 -5
- package/dist/types/w3c-vc.js.map +1 -1
- package/package.json +7 -6
- package/src/events/index.ts +8 -4
- package/src/logging/index.ts +1 -0
- package/src/mapper/credential-constraints.ts +19 -0
- package/src/mapper/credential-mapper.ts +45 -40
- package/src/types/cose.ts +13 -0
- package/src/types/index.ts +2 -0
- package/src/types/metadata-types.ts +5 -0
- package/src/types/mso_mdoc.ts +41 -7
- package/src/types/sd-jwt-type-metadata.ts +220 -0
- package/src/types/sd-jwt-vc.ts +19 -17
- package/src/types/w3c-vc.ts +2 -2
package/src/types/sd-jwt-vc.ts
CHANGED
|
@@ -282,28 +282,13 @@ export async function decodeSdJwtVcAsync(compactSdJwtVc: CompactSdJwtVc, hasher:
|
|
|
282
282
|
}
|
|
283
283
|
}
|
|
284
284
|
|
|
285
|
-
// TODO naive implementation of mapping a sd-jwt onto a IVerifiableCredential. Needs some fixes and further implementation and needs to be moved out of ssi-types
|
|
286
285
|
export const sdJwtDecodedCredentialToUniformCredential = (
|
|
287
286
|
decoded: SdJwtDecodedVerifiableCredential,
|
|
288
|
-
opts?: { maxTimeSkewInMS?: number }
|
|
287
|
+
opts?: { maxTimeSkewInMS?: number },
|
|
289
288
|
): IVerifiableCredential => {
|
|
290
|
-
const { decodedPayload } = decoded
|
|
289
|
+
const { decodedPayload } = decoded
|
|
291
290
|
const { exp, nbf, iss, iat, vct, cnf, status, sub, jti } = decodedPayload
|
|
292
291
|
|
|
293
|
-
type DisclosuresAccumulator = {
|
|
294
|
-
[key: string]: any
|
|
295
|
-
}
|
|
296
|
-
|
|
297
|
-
const credentialSubject = decoded.disclosures.reduce(
|
|
298
|
-
(acc: DisclosuresAccumulator, item: { decoded: Array<any>; digest: string; encoded: string }) => {
|
|
299
|
-
const key = item.decoded[1]
|
|
300
|
-
acc[key] = item.decoded[2]
|
|
301
|
-
|
|
302
|
-
return acc
|
|
303
|
-
},
|
|
304
|
-
{}
|
|
305
|
-
)
|
|
306
|
-
|
|
307
292
|
const maxSkewInMS = opts?.maxTimeSkewInMS ?? 1500
|
|
308
293
|
|
|
309
294
|
const expirationDate = jwtDateToISOString({ jwtClaim: exp, claimName: 'exp' })
|
|
@@ -325,6 +310,23 @@ export const sdJwtDecodedCredentialToUniformCredential = (
|
|
|
325
310
|
throw Error(`JWT issuance date is required but was not present`)
|
|
326
311
|
}
|
|
327
312
|
|
|
313
|
+
// Filter out the fields we don't want in credentialSubject
|
|
314
|
+
const excludedFields = new Set(['vct', 'cnf', 'iss', 'iat', 'exp', 'nbf', 'jti', 'sub'])
|
|
315
|
+
const credentialSubject = Object.entries(decodedPayload).reduce(
|
|
316
|
+
(acc, [key, value]) => {
|
|
317
|
+
if (
|
|
318
|
+
!excludedFields.has(key) &&
|
|
319
|
+
value !== undefined &&
|
|
320
|
+
value !== '' &&
|
|
321
|
+
!(typeof value === 'object' && value !== null && Object.keys(value).length === 0)
|
|
322
|
+
) {
|
|
323
|
+
acc[key] = value
|
|
324
|
+
}
|
|
325
|
+
return acc
|
|
326
|
+
},
|
|
327
|
+
{} as Record<string, any>,
|
|
328
|
+
)
|
|
329
|
+
|
|
328
330
|
const credential: Omit<IVerifiableCredential, 'issuer' | 'issuanceDate'> = {
|
|
329
331
|
type: [vct], // SDJwt is not a W3C VC, so no VerifiableCredential
|
|
330
332
|
'@context': [], // SDJwt has no JSON-LD by default. Certainly not the VC DM1 default context for JSON-LD
|
package/src/types/w3c-vc.ts
CHANGED
|
@@ -225,7 +225,7 @@ export interface IVerifyResult {
|
|
|
225
225
|
verified: boolean
|
|
226
226
|
error?: IError
|
|
227
227
|
log: [{ id: string; valid: boolean }]
|
|
228
|
-
}
|
|
228
|
+
},
|
|
229
229
|
]
|
|
230
230
|
|
|
231
231
|
statusResult?: IVerifyStatusResult
|
|
@@ -292,7 +292,7 @@ export type StatusListIndexingDirection = 'rightToLeft'
|
|
|
292
292
|
|
|
293
293
|
export enum StatusListDriverType {
|
|
294
294
|
AGENT_TYPEORM = 'agent_typeorm',
|
|
295
|
-
|
|
295
|
+
/* AGENT_KV_STORE = 'agent_kv_store',
|
|
296
296
|
GITHUB = 'github',
|
|
297
297
|
AGENT_FILESYSTEM = 'agent_filesystem',*/
|
|
298
298
|
}
|