@sphereon/ssi-types 0.30.2-unstable.8 → 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/dist/types/mso_mdoc.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* but it would be nice if we can remove the imports and just have some interfaces here we can then use, like done
|
|
5
5
|
* for sd-jwts
|
|
6
6
|
*/
|
|
7
|
-
import { com } from '@sphereon/kmp-
|
|
7
|
+
import { com } from '@sphereon/kmp-mdoc-core';
|
|
8
8
|
import { OriginalType, WrappedVerifiableCredential, WrappedVerifiablePresentation } from './vc';
|
|
9
9
|
import { IVerifiableCredential } from './w3c-vc';
|
|
10
10
|
/**
|
|
@@ -15,6 +15,8 @@ export type MdocOid4vpMdocVpToken = string;
|
|
|
15
15
|
export type MdocIssuerSigned = com.sphereon.mdoc.data.device.IssuerSignedCbor;
|
|
16
16
|
export type MdocDocument = com.sphereon.mdoc.data.device.DocumentCbor;
|
|
17
17
|
export type MdocDocumentJson = com.sphereon.mdoc.data.device.DocumentJson;
|
|
18
|
+
export type IssuerSignedJson = com.sphereon.mdoc.data.device.IssuerSignedJson;
|
|
19
|
+
export type DeviceSignedJson = com.sphereon.mdoc.data.device.DeviceSignedJson;
|
|
18
20
|
export type MdocDeviceResponse = com.sphereon.mdoc.data.device.DeviceResponseCbor;
|
|
19
21
|
export interface WrappedMdocCredential {
|
|
20
22
|
/**
|
|
@@ -22,11 +24,10 @@ export interface WrappedMdocCredential {
|
|
|
22
24
|
*/
|
|
23
25
|
original: MdocDocument | MdocOid4vpIssuerSigned;
|
|
24
26
|
/**
|
|
25
|
-
*
|
|
27
|
+
* Record where keys are the namespaces and the values are objects again with the namespace values
|
|
28
|
+
* @todo which types can be there? (it doesn't matter for matching as mdoc only matches on path)
|
|
26
29
|
*/
|
|
27
|
-
decoded:
|
|
28
|
-
[key: string]: any;
|
|
29
|
-
};
|
|
30
|
+
decoded: MdocDecodedPayload;
|
|
30
31
|
/**
|
|
31
32
|
* Type of this credential.
|
|
32
33
|
*/
|
|
@@ -38,7 +39,7 @@ export interface WrappedMdocCredential {
|
|
|
38
39
|
/**
|
|
39
40
|
* Internal stable representation of a Credential
|
|
40
41
|
*/
|
|
41
|
-
credential:
|
|
42
|
+
credential: MdocDocument;
|
|
42
43
|
}
|
|
43
44
|
export interface WrappedMdocPresentation {
|
|
44
45
|
/**
|
|
@@ -62,18 +63,25 @@ export interface WrappedMdocPresentation {
|
|
|
62
63
|
*/
|
|
63
64
|
presentation: MdocDeviceResponse;
|
|
64
65
|
/**
|
|
65
|
-
* Wrapped Mdocs belonging to the Presentation.
|
|
66
|
+
* Wrapped Mdocs belonging to the Presentation. There can be multiple
|
|
67
|
+
* documents in a single device response
|
|
66
68
|
*/
|
|
67
|
-
vcs: [
|
|
69
|
+
vcs: WrappedMdocCredential[];
|
|
68
70
|
}
|
|
69
71
|
export declare function isWrappedMdocCredential(vc: WrappedVerifiableCredential): vc is WrappedMdocCredential;
|
|
70
72
|
export declare function isWrappedMdocPresentation(vp: WrappedVerifiablePresentation): vp is WrappedMdocPresentation;
|
|
73
|
+
/**
|
|
74
|
+
* Record where keys are the namespaces and the values are objects again with the namespace values
|
|
75
|
+
*/
|
|
76
|
+
export type MdocDecodedPayload = Record<string, Record<string, string | number | boolean>>;
|
|
77
|
+
export declare function getMdocDecodedPayload(mdoc: MdocDocument): MdocDecodedPayload;
|
|
71
78
|
/**
|
|
72
79
|
* Decode an Mdoc from its issuerSigned OID4VP Base64URL (string) to an object containing the disclosures,
|
|
73
80
|
* signed payload, decoded payload
|
|
74
81
|
*
|
|
75
82
|
*/
|
|
76
83
|
export declare function decodeMdocIssuerSigned(oid4vpIssuerSigned: MdocOid4vpIssuerSigned): MdocDocument;
|
|
84
|
+
export declare function encodeMdocIssuerSigned(issuerSigned: MdocIssuerSigned, encoding?: 'base64url'): string;
|
|
77
85
|
/**
|
|
78
86
|
* Decode an Mdoc from its vp_token OID4VP Base64URL (string) to an object containing the disclosures,
|
|
79
87
|
* signed payload, decoded payload
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mso_mdoc.d.ts","sourceRoot":"","sources":["../../src/types/mso_mdoc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"mso_mdoc.d.ts","sourceRoot":"","sources":["../../src/types/mso_mdoc.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,yBAAyB,CAAA;AAE7C,OAAO,EAAE,YAAY,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,MAAM,CAAA;AAC/F,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAA;AAShD;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,CAAA;AAC3C,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAC1C,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;AAC7E,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;AACrE,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAA;AACzE,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;AAC7E,MAAM,MAAM,gBAAgB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAA;AAC7E,MAAM,MAAM,kBAAkB,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAA;AAEjF,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,YAAY,GAAG,sBAAsB,CAAA;IAC/C;;;OAGG;IACH,OAAO,EAAE,kBAAkB,CAAA;IAC3B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;IACnE;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,UAAU,EAAE,YAAY,CAAA;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,EAAE,kBAAkB,GAAG,qBAAqB,CAAA;IACpD;;OAEG;IACH,OAAO,EAAE,kBAAkB,CAAA;IAC3B;;OAEG;IACH,IAAI,EAAE,YAAY,CAAC,gBAAgB,GAAG,YAAY,CAAC,gBAAgB,CAAA;IACnE;;OAEG;IACH,MAAM,EAAE,UAAU,CAAA;IAClB;;OAEG;IACH,YAAY,EAAE,kBAAkB,CAAA;IAChC;;;OAGG;IACH,GAAG,EAAE,qBAAqB,EAAE,CAAA;CAC7B;AAED,wBAAgB,uBAAuB,CAAC,EAAE,EAAE,2BAA2B,GAAG,EAAE,IAAI,qBAAqB,CAEpG;AAED,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,6BAA6B,GAAG,EAAE,IAAI,uBAAuB,CAE1G;AACD;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC,CAAA;AAC1F,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,YAAY,GAAG,kBAAkB,CAqB5E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,kBAAkB,EAAE,sBAAsB,GAAG,YAAY,CAM/F;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,gBAAgB,EAAE,QAAQ,GAAE,WAAyB,UAEzG;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,qBAAqB,GAAG,kBAAkB,CAG3F;AAGD,eAAO,MAAM,wCAAwC,YAC1C,YAAY,SAEd;IAAE,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,KAClC,qBA0DF,CAAA"}
|
package/dist/types/mso_mdoc.js
CHANGED
|
@@ -6,22 +6,39 @@
|
|
|
6
6
|
* for sd-jwts
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.mdocDecodedCredentialToUniformCredential =
|
|
10
|
-
|
|
9
|
+
exports.mdocDecodedCredentialToUniformCredential = void 0;
|
|
10
|
+
exports.isWrappedMdocCredential = isWrappedMdocCredential;
|
|
11
|
+
exports.isWrappedMdocPresentation = isWrappedMdocPresentation;
|
|
12
|
+
exports.getMdocDecodedPayload = getMdocDecodedPayload;
|
|
13
|
+
exports.decodeMdocIssuerSigned = decodeMdocIssuerSigned;
|
|
14
|
+
exports.encodeMdocIssuerSigned = encodeMdocIssuerSigned;
|
|
15
|
+
exports.decodeMdocDeviceResponse = decodeMdocDeviceResponse;
|
|
16
|
+
const kmp_mdoc_core_1 = require("@sphereon/kmp-mdoc-core");
|
|
11
17
|
const did_1 = require("./did");
|
|
12
|
-
var decodeFrom =
|
|
13
|
-
var encodeTo =
|
|
14
|
-
var Encoding =
|
|
15
|
-
var DeviceResponseCbor =
|
|
16
|
-
var IssuerSignedCbor =
|
|
18
|
+
var decodeFrom = kmp_mdoc_core_1.com.sphereon.kmp.decodeFrom;
|
|
19
|
+
var encodeTo = kmp_mdoc_core_1.com.sphereon.kmp.encodeTo;
|
|
20
|
+
var Encoding = kmp_mdoc_core_1.com.sphereon.kmp.Encoding;
|
|
21
|
+
var DeviceResponseCbor = kmp_mdoc_core_1.com.sphereon.mdoc.data.device.DeviceResponseCbor;
|
|
22
|
+
var IssuerSignedCbor = kmp_mdoc_core_1.com.sphereon.mdoc.data.device.IssuerSignedCbor;
|
|
17
23
|
function isWrappedMdocCredential(vc) {
|
|
18
24
|
return vc.format === 'mso_mdoc';
|
|
19
25
|
}
|
|
20
|
-
exports.isWrappedMdocCredential = isWrappedMdocCredential;
|
|
21
26
|
function isWrappedMdocPresentation(vp) {
|
|
22
27
|
return vp.format === 'mso_mdoc';
|
|
23
28
|
}
|
|
24
|
-
|
|
29
|
+
function getMdocDecodedPayload(mdoc) {
|
|
30
|
+
const mdocJson = mdoc.toJson();
|
|
31
|
+
if (!mdocJson.issuerSigned.nameSpaces) {
|
|
32
|
+
throw Error(`Cannot access Issuer Signed items from the Mdoc`);
|
|
33
|
+
}
|
|
34
|
+
const issuerSignedJson = mdocJson.issuerSigned.toJsonDTO();
|
|
35
|
+
const namespaces = issuerSignedJson.nameSpaces;
|
|
36
|
+
const decodedPayload = {};
|
|
37
|
+
for (const [namespace, items] of Object.entries(namespaces)) {
|
|
38
|
+
decodedPayload[namespace] = items.reduce((acc, item) => (Object.assign(Object.assign({}, acc), { [item.key]: item.value.value })), {});
|
|
39
|
+
}
|
|
40
|
+
return decodedPayload;
|
|
41
|
+
}
|
|
25
42
|
/**
|
|
26
43
|
* Decode an Mdoc from its issuerSigned OID4VP Base64URL (string) to an object containing the disclosures,
|
|
27
44
|
* signed payload, decoded payload
|
|
@@ -34,7 +51,9 @@ function decodeMdocIssuerSigned(oid4vpIssuerSigned) {
|
|
|
34
51
|
const holderMdoc = issuerSigned.toDocument();
|
|
35
52
|
return holderMdoc;
|
|
36
53
|
}
|
|
37
|
-
|
|
54
|
+
function encodeMdocIssuerSigned(issuerSigned, encoding = 'base64url') {
|
|
55
|
+
return encodeTo(issuerSigned.cborEncode(), Encoding.BASE64URL);
|
|
56
|
+
}
|
|
38
57
|
/**
|
|
39
58
|
* Decode an Mdoc from its vp_token OID4VP Base64URL (string) to an object containing the disclosures,
|
|
40
59
|
* signed payload, decoded payload
|
|
@@ -44,7 +63,6 @@ function decodeMdocDeviceResponse(vpToken) {
|
|
|
44
63
|
const deviceResponse = DeviceResponseCbor.Static.cborDecode(decodeFrom(vpToken, Encoding.BASE64URL));
|
|
45
64
|
return deviceResponse;
|
|
46
65
|
}
|
|
47
|
-
exports.decodeMdocDeviceResponse = decodeMdocDeviceResponse;
|
|
48
66
|
// TODO naive implementation of mapping a mdoc onto a IVerifiableCredential. Needs some fixes and further implementation and needs to be moved out of ssi-types
|
|
49
67
|
const mdocDecodedCredentialToUniformCredential = (decoded,
|
|
50
68
|
// @ts-ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mso_mdoc.js","sourceRoot":"","sources":["../../src/types/mso_mdoc.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"mso_mdoc.js","sourceRoot":"","sources":["../../src/types/mso_mdoc.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { AsyncHasher } from './sd-jwt-vc';
|
|
2
|
+
/**
|
|
3
|
+
* Represents the metadata associated with a specific SD-JWT VC type.
|
|
4
|
+
*/
|
|
5
|
+
interface SdJwtTypeMetadata {
|
|
6
|
+
/**
|
|
7
|
+
* REQUIRED. The VC type URI.
|
|
8
|
+
*/
|
|
9
|
+
vct: string;
|
|
10
|
+
/**
|
|
11
|
+
* OPTIONAL. A human-readable name for the type.
|
|
12
|
+
*/
|
|
13
|
+
name?: string;
|
|
14
|
+
/**
|
|
15
|
+
* OPTIONAL. A human-readable description for the type.
|
|
16
|
+
*/
|
|
17
|
+
description?: string;
|
|
18
|
+
/**
|
|
19
|
+
* OPTIONAL. A URI of another type that this type extends.
|
|
20
|
+
*/
|
|
21
|
+
extends?: string;
|
|
22
|
+
/**
|
|
23
|
+
* OPTIONAL. Integrity metadata string for the 'extends' field.
|
|
24
|
+
*/
|
|
25
|
+
['extends#integrity']?: string;
|
|
26
|
+
/**
|
|
27
|
+
* OPTIONAL. URL pointing towards a JSON Schema document describing the VC's structure.
|
|
28
|
+
*/
|
|
29
|
+
schema_uri?: string;
|
|
30
|
+
/**
|
|
31
|
+
* OPTIONAL. Integrity metadata string for the 'schema_uri' field.
|
|
32
|
+
*/
|
|
33
|
+
['schema_uri#integrity']?: string;
|
|
34
|
+
/**
|
|
35
|
+
* OPTIONAL. Display metadata for various languages.
|
|
36
|
+
*/
|
|
37
|
+
display?: Array<SdJwtTypeDisplayMetadata>;
|
|
38
|
+
/**
|
|
39
|
+
* OPTIONAL. Metadata for the claims within the VC.
|
|
40
|
+
*/
|
|
41
|
+
claims?: Array<any>;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Represents display metadata for a specific language.
|
|
45
|
+
*/
|
|
46
|
+
interface SdJwtTypeDisplayMetadata {
|
|
47
|
+
/**
|
|
48
|
+
* REQUIRED. Language tag for the display information.
|
|
49
|
+
*/
|
|
50
|
+
lang: string;
|
|
51
|
+
/**
|
|
52
|
+
* REQUIRED. Human-readable name for the type.
|
|
53
|
+
*/
|
|
54
|
+
name: string;
|
|
55
|
+
/**
|
|
56
|
+
* OPTIONAL. Human-readable description for the type.
|
|
57
|
+
*/
|
|
58
|
+
description?: string;
|
|
59
|
+
/**
|
|
60
|
+
* OPTIONAL. Rendering metadata for the type.
|
|
61
|
+
*/
|
|
62
|
+
rendering?: SdJwtTypeRenderingMetadata;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Contains rendering metadata for different methods.
|
|
66
|
+
*/
|
|
67
|
+
interface SdJwtTypeRenderingMetadata {
|
|
68
|
+
/**
|
|
69
|
+
* OPTIONAL. Simple rendering method metadata.
|
|
70
|
+
*/
|
|
71
|
+
simple?: SdJwtSimpleRenderingMetadata;
|
|
72
|
+
/**
|
|
73
|
+
* OPTIONAL. Metadata for SVG templates.
|
|
74
|
+
*/
|
|
75
|
+
svg_template?: Array<SdJwtSVGTemplateMetadata>;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Represents metadata for simple rendering.
|
|
79
|
+
*/
|
|
80
|
+
interface SdJwtSimpleRenderingMetadata {
|
|
81
|
+
/**
|
|
82
|
+
* OPTIONAL. Metadata for the logo image.
|
|
83
|
+
*/
|
|
84
|
+
logo?: SdJwtLogoMetadata;
|
|
85
|
+
/**
|
|
86
|
+
* OPTIONAL. Background color for the credential.
|
|
87
|
+
*/
|
|
88
|
+
background_color?: string;
|
|
89
|
+
/**
|
|
90
|
+
* OPTIONAL. Text color for the credential.
|
|
91
|
+
*/
|
|
92
|
+
text_color?: string;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Represents metadata for a logo.
|
|
96
|
+
*/
|
|
97
|
+
interface SdJwtLogoMetadata {
|
|
98
|
+
/**
|
|
99
|
+
* REQUIRED. URI pointing to the logo image.
|
|
100
|
+
*/
|
|
101
|
+
uri: string;
|
|
102
|
+
/**
|
|
103
|
+
* OPTIONAL. Integrity metadata string for the 'uri' field.
|
|
104
|
+
*/
|
|
105
|
+
['uri#integrity']?: string;
|
|
106
|
+
/**
|
|
107
|
+
* OPTIONAL. Alternative text for the logo image.
|
|
108
|
+
*/
|
|
109
|
+
alt_text?: string;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Represents metadata for SVG templates.
|
|
113
|
+
*/
|
|
114
|
+
interface SdJwtSVGTemplateMetadata {
|
|
115
|
+
/**
|
|
116
|
+
* REQUIRED. URI pointing to the SVG template.
|
|
117
|
+
*/
|
|
118
|
+
uri: string;
|
|
119
|
+
/**
|
|
120
|
+
* OPTIONAL. Integrity metadata string for the 'uri' field.
|
|
121
|
+
*/
|
|
122
|
+
['uri#integrity']?: string;
|
|
123
|
+
/**
|
|
124
|
+
* OPTIONAL. Properties for the SVG template.
|
|
125
|
+
*/
|
|
126
|
+
properties?: SdJwtSVGTemplateProperties;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Contains properties for SVG templates.
|
|
130
|
+
*/
|
|
131
|
+
interface SdJwtSVGTemplateProperties {
|
|
132
|
+
/**
|
|
133
|
+
* OPTIONAL. The orientation for which the SVG template is optimized.
|
|
134
|
+
*/
|
|
135
|
+
orientation?: string;
|
|
136
|
+
/**
|
|
137
|
+
* OPTIONAL. The color scheme for which the SVG template is optimized.
|
|
138
|
+
*/
|
|
139
|
+
color_scheme?: string;
|
|
140
|
+
}
|
|
141
|
+
export type SdJwtTypeHasher = (input: any, alg?: string) => string;
|
|
142
|
+
export declare function fetchSdJwtTypeMetadataFromVctUrl(vct: string, opts?: {
|
|
143
|
+
hasher?: AsyncHasher;
|
|
144
|
+
integrity?: string;
|
|
145
|
+
}): Promise<SdJwtTypeMetadata>;
|
|
146
|
+
export {};
|
|
147
|
+
//# sourceMappingURL=sd-jwt-type-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sd-jwt-type-metadata.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-type-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAEzC;;GAEG;AACH,UAAU,iBAAiB;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,CAAC,mBAAmB,CAAC,CAAC,EAAE,MAAM,CAAC;IAE/B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,CAAC,sBAAsB,CAAC,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,OAAO,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAE1C;;OAEG;IAEH,MAAM,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;CACrB;AAED;;GAEG;AACH,UAAU,wBAAwB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,0BAA0B,CAAC;CACxC;AAED;;GAEG;AACH,UAAU,0BAA0B;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,4BAA4B,CAAC;IAEtC;;OAEG;IACH,YAAY,CAAC,EAAE,KAAK,CAAC,wBAAwB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,UAAU,4BAA4B;IACpC;;OAEG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,UAAU,iBAAiB;IACzB;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,UAAU,wBAAwB;IAChC;;OAEG;IACH,GAAG,EAAE,MAAM,CAAC;IAEZ;;OAEG;IACH,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,0BAA0B,CAAC;CACzC;AAED;;GAEG;AACH,UAAU,0BAA0B;IAClC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAYD,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,KAAK,MAAM,CAAA;AAQlE,wBAAsB,gCAAgC,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAanJ"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
35
|
+
exports.fetchSdJwtTypeMetadataFromVctUrl = fetchSdJwtTypeMetadataFromVctUrl;
|
|
36
|
+
const u8a = __importStar(require("uint8arrays"));
|
|
37
|
+
// Helper function to fetch API with error handling
|
|
38
|
+
function fetchUrlWithErrorHandling(url) {
|
|
39
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
40
|
+
const response = yield fetch(url);
|
|
41
|
+
if (!response.ok) {
|
|
42
|
+
throw new Error(`${response.status}: ${response.statusText}`);
|
|
43
|
+
}
|
|
44
|
+
return response;
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
function validateIntegrity(input, integrityValue, hasher, alg) {
|
|
48
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
49
|
+
const hash = yield hasher(input, alg !== null && alg !== void 0 ? alg : 'sha256');
|
|
50
|
+
return u8a.toString(hash, 'utf-8') === integrityValue;
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
// Fetch and validate Type Metadata
|
|
54
|
+
function fetchSdJwtTypeMetadataFromVctUrl(vct, opts) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const url = new URL(vct);
|
|
57
|
+
const wellKnownUrl = `${url.origin}/.well-known/vct${url.pathname}`;
|
|
58
|
+
const response = yield fetchUrlWithErrorHandling(wellKnownUrl);
|
|
59
|
+
const metadata = yield response.json();
|
|
60
|
+
assertValidTypeMetadata(metadata, vct);
|
|
61
|
+
if ((opts === null || opts === void 0 ? void 0 : opts.integrity) && opts.hasher) {
|
|
62
|
+
if (!(yield validateIntegrity(metadata, opts.integrity, opts.hasher))) {
|
|
63
|
+
throw new Error('Integrity check failed');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return metadata;
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
function assertValidTypeMetadata(metadata, vct) {
|
|
70
|
+
if (metadata.vct !== vct) {
|
|
71
|
+
throw new Error('VCT mismatch in metadata and credential');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/*
|
|
75
|
+
// Example usage
|
|
76
|
+
try {
|
|
77
|
+
const vct = 'https://betelgeuse.example.com/education_credential'
|
|
78
|
+
const typeMetadata = await fetchSdJwtTypeMetadataFromVctUrl(vct)
|
|
79
|
+
console.log('Type Metadata retrieved successfully:', typeMetadata)
|
|
80
|
+
} catch (error) {
|
|
81
|
+
console.error('Error fetching type metadata:', error.message)
|
|
82
|
+
}
|
|
83
|
+
*/
|
|
84
|
+
//# sourceMappingURL=sd-jwt-type-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sd-jwt-type-metadata.js","sourceRoot":"","sources":["../../src/types/sd-jwt-type-metadata.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2LA,4EAaC;AAxMD,iDAAkC;AA0KlC,mDAAmD;AACnD,SAAe,yBAAyB,CAAC,GAAW;;QAClD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAA;QACjC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAA;QAC/D,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CAAA;AAID,SAAe,iBAAiB,CAAC,KAAU,EAAE,cAAsB,EAAE,MAAmB,EAAE,GAAY;;QACpG,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,EAAE,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,QAAQ,CAAC,CAAA;QACjD,OAAO,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,cAAc,CAAA;IACvD,CAAC;CAAA;AAED,mCAAmC;AACnC,SAAsB,gCAAgC,CAAC,GAAW,EAAE,IAAmD;;QACrH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAA;QACxB,MAAM,YAAY,GAAG,GAAG,GAAG,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAE,CAAA;QAEnE,MAAM,QAAQ,GAAG,MAAM,yBAAyB,CAAC,YAAY,CAAC,CAAA;QAC9D,MAAM,QAAQ,GAAsB,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAA;QACzD,uBAAuB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;QACtC,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,SAAS,KAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACnC,IAAI,CAAC,CAAA,MAAM,iBAAiB,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA,EAAE,CAAC;gBACpE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAA;YAC3C,CAAC;QACH,CAAC;QACD,OAAO,QAAQ,CAAA;IACjB,CAAC;CAAA;AAED,SAAS,uBAAuB,CAAC,QAA2B,EAAE,GAAW;IACvE,IAAI,QAAQ,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAGD;;;;;;;;;EASE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-jwt-vc.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sd-jwt-vc.d.ts","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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"}
|
package/dist/types/sd-jwt-vc.js
CHANGED
|
@@ -9,17 +9,19 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.sdJwtDecodedCredentialToUniformCredential =
|
|
12
|
+
exports.sdJwtDecodedCredentialToUniformCredential = void 0;
|
|
13
|
+
exports.isWrappedSdJwtVerifiableCredential = isWrappedSdJwtVerifiableCredential;
|
|
14
|
+
exports.isWrappedSdJwtVerifiablePresentation = isWrappedSdJwtVerifiablePresentation;
|
|
15
|
+
exports.decodeSdJwtVc = decodeSdJwtVc;
|
|
16
|
+
exports.decodeSdJwtVcAsync = decodeSdJwtVcAsync;
|
|
13
17
|
const decode_1 = require("@sd-jwt/decode");
|
|
14
18
|
const did_1 = require("./did");
|
|
15
19
|
function isWrappedSdJwtVerifiableCredential(vc) {
|
|
16
20
|
return vc.format === 'vc+sd-jwt';
|
|
17
21
|
}
|
|
18
|
-
exports.isWrappedSdJwtVerifiableCredential = isWrappedSdJwtVerifiableCredential;
|
|
19
22
|
function isWrappedSdJwtVerifiablePresentation(vp) {
|
|
20
23
|
return vp.format === 'vc+sd-jwt';
|
|
21
24
|
}
|
|
22
|
-
exports.isWrappedSdJwtVerifiablePresentation = isWrappedSdJwtVerifiablePresentation;
|
|
23
25
|
/**
|
|
24
26
|
* Decode an SD-JWT vc from its compact format (string) to an object containing the disclosures,
|
|
25
27
|
* signed payload, decoded payload and the compact SD-JWT vc.
|
|
@@ -50,7 +52,6 @@ function decodeSdJwtVc(compactSdJwtVc, hasher) {
|
|
|
50
52
|
},
|
|
51
53
|
}));
|
|
52
54
|
}
|
|
53
|
-
exports.decodeSdJwtVc = decodeSdJwtVc;
|
|
54
55
|
/**
|
|
55
56
|
* Decode an SD-JWT vc from its compact format (string) to an object containing the disclosures,
|
|
56
57
|
* signed payload, decoded payload and the compact SD-JWT vc.
|
|
@@ -83,17 +84,10 @@ function decodeSdJwtVcAsync(compactSdJwtVc, hasher) {
|
|
|
83
84
|
}));
|
|
84
85
|
});
|
|
85
86
|
}
|
|
86
|
-
exports.decodeSdJwtVcAsync = decodeSdJwtVcAsync;
|
|
87
|
-
// 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
|
|
88
87
|
const sdJwtDecodedCredentialToUniformCredential = (decoded, opts) => {
|
|
89
88
|
var _a, _b, _c;
|
|
90
|
-
const { decodedPayload } = decoded;
|
|
89
|
+
const { decodedPayload } = decoded;
|
|
91
90
|
const { exp, nbf, iss, iat, vct, cnf, status, sub, jti } = decodedPayload;
|
|
92
|
-
const credentialSubject = decoded.disclosures.reduce((acc, item) => {
|
|
93
|
-
const key = item.decoded[1];
|
|
94
|
-
acc[key] = item.decoded[2];
|
|
95
|
-
return acc;
|
|
96
|
-
}, {});
|
|
97
91
|
const maxSkewInMS = (_a = opts === null || opts === void 0 ? void 0 : opts.maxTimeSkewInMS) !== null && _a !== void 0 ? _a : 1500;
|
|
98
92
|
const expirationDate = jwtDateToISOString({ jwtClaim: exp, claimName: 'exp' });
|
|
99
93
|
let issuanceDateStr = jwtDateToISOString({ jwtClaim: iat, claimName: 'iat' });
|
|
@@ -112,6 +106,17 @@ const sdJwtDecodedCredentialToUniformCredential = (decoded, opts) => {
|
|
|
112
106
|
if (!issuanceDate) {
|
|
113
107
|
throw Error(`JWT issuance date is required but was not present`);
|
|
114
108
|
}
|
|
109
|
+
// Filter out the fields we don't want in credentialSubject
|
|
110
|
+
const excludedFields = new Set(['vct', 'cnf', 'iss', 'iat', 'exp', 'nbf', 'jti', 'sub']);
|
|
111
|
+
const credentialSubject = Object.entries(decodedPayload).reduce((acc, [key, value]) => {
|
|
112
|
+
if (!excludedFields.has(key) &&
|
|
113
|
+
value !== undefined &&
|
|
114
|
+
value !== '' &&
|
|
115
|
+
!(typeof value === 'object' && value !== null && Object.keys(value).length === 0)) {
|
|
116
|
+
acc[key] = value;
|
|
117
|
+
}
|
|
118
|
+
return acc;
|
|
119
|
+
}, {});
|
|
115
120
|
const credential = Object.assign(Object.assign(Object.assign({ type: [vct], '@context': [], credentialSubject: Object.assign(Object.assign({}, credentialSubject), { id: (_c = (_b = credentialSubject.id) !== null && _b !== void 0 ? _b : sub) !== null && _c !== void 0 ? _c : jti }), issuanceDate,
|
|
116
121
|
expirationDate, issuer: iss }, (cnf && { cnf })), (status && { status })), { proof: {
|
|
117
122
|
type: did_1.IProofType.SdJwtProof2024,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":";;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"sd-jwt-vc.js","sourceRoot":"","sources":["../../src/types/sd-jwt-vc.ts"],"names":[],"mappings":"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"}
|
package/dist/types/w3c-vc.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.StatusListDriverType = exports.StatusListCredentialIdMode = exports.StatusListType = exports.JWT_PROOF_TYPE_2020 = void 0;
|
|
4
|
+
exports.isWrappedW3CVerifiableCredential = isWrappedW3CVerifiableCredential;
|
|
5
|
+
exports.isWrappedW3CVerifiablePresentation = isWrappedW3CVerifiablePresentation;
|
|
4
6
|
exports.JWT_PROOF_TYPE_2020 = 'JwtProof2020';
|
|
5
7
|
var StatusListType;
|
|
6
8
|
(function (StatusListType) {
|
|
@@ -16,15 +18,13 @@ var StatusListDriverType;
|
|
|
16
18
|
(function (StatusListDriverType) {
|
|
17
19
|
StatusListDriverType["AGENT_TYPEORM"] = "agent_typeorm";
|
|
18
20
|
/* AGENT_KV_STORE = 'agent_kv_store',
|
|
19
|
-
|
|
20
|
-
|
|
21
|
+
GITHUB = 'github',
|
|
22
|
+
AGENT_FILESYSTEM = 'agent_filesystem',*/
|
|
21
23
|
})(StatusListDriverType || (exports.StatusListDriverType = StatusListDriverType = {}));
|
|
22
24
|
function isWrappedW3CVerifiableCredential(vc) {
|
|
23
25
|
return vc.format === 'jwt_vc' || vc.format === 'ldp_vc';
|
|
24
26
|
}
|
|
25
|
-
exports.isWrappedW3CVerifiableCredential = isWrappedW3CVerifiableCredential;
|
|
26
27
|
function isWrappedW3CVerifiablePresentation(vp) {
|
|
27
28
|
return vp.format === 'jwt_vp' || vp.format === 'ldp_vp';
|
|
28
29
|
}
|
|
29
|
-
exports.isWrappedW3CVerifiablePresentation = isWrappedW3CVerifiablePresentation;
|
|
30
30
|
//# sourceMappingURL=w3c-vc.js.map
|
package/dist/types/w3c-vc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"w3c-vc.js","sourceRoot":"","sources":["../../src/types/w3c-vc.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"w3c-vc.js","sourceRoot":"","sources":["../../src/types/w3c-vc.ts"],"names":[],"mappings":";;;AA2SA,4EAEC;AAED,gFAEC;AA5GY,QAAA,mBAAmB,GAAG,cAAc,CAAA;AAiFjD,IAAY,cAEX;AAFD,WAAY,cAAc;IACxB,mDAAiC,CAAA;AACnC,CAAC,EAFW,cAAc,8BAAd,cAAc,QAEzB;AAID,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACpC,mDAAqB,CAAA;IACrB,+BAA+B;IAC/B,6CAAe,CAAA;AACjB,CAAC,EAJW,0BAA0B,0CAA1B,0BAA0B,QAIrC;AAID,IAAY,oBAKX;AALD,WAAY,oBAAoB;IAC9B,uDAA+B,CAAA;IAC/B;;4CAEwC;AAC1C,CAAC,EALW,oBAAoB,oCAApB,oBAAoB,QAK/B;AAED,SAAgB,gCAAgC,CAAC,EAA+B;IAC9E,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAA;AACzD,CAAC;AAED,SAAgB,kCAAkC,CAAC,EAAiC;IAClF,OAAO,EAAE,CAAC,MAAM,KAAK,QAAQ,IAAI,EAAE,CAAC,MAAM,KAAK,QAAQ,CAAA;AACzD,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-types",
|
|
3
3
|
"description": "SSI Common Types",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.31.0",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"scripts": {
|
|
@@ -10,15 +10,15 @@
|
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@sd-jwt/decode": "^0.7.2",
|
|
13
|
-
"@sphereon/kmp-
|
|
14
|
-
"@sphereon/ssi-sdk-ext.jwt-service": "0.24.1-unstable.130",
|
|
13
|
+
"@sphereon/kmp-mdoc-core": "0.2.0-SNAPSHOT.15",
|
|
15
14
|
"debug": "^4.3.5",
|
|
16
15
|
"events": "^3.3.0",
|
|
17
|
-
"jwt-decode": "^3.1.2"
|
|
16
|
+
"jwt-decode": "^3.1.2",
|
|
17
|
+
"uint8arrays": "3.1.1"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"@types/jest": "^27.5.2",
|
|
21
|
-
"@types/node": "
|
|
21
|
+
"@types/node": "^20.17.1",
|
|
22
22
|
"@veramo/core": "4.2.0",
|
|
23
23
|
"jest": "^27.5.1",
|
|
24
24
|
"prettier": "^2.8.8",
|
|
@@ -46,5 +46,6 @@
|
|
|
46
46
|
"Verifiable Credentials",
|
|
47
47
|
"DIDs"
|
|
48
48
|
],
|
|
49
|
-
"
|
|
49
|
+
"nx": {},
|
|
50
|
+
"gitHead": "3010f7bc57ed5f8d7953b6bf893e3164ea1821e8"
|
|
50
51
|
}
|
package/src/events/index.ts
CHANGED
|
@@ -49,6 +49,10 @@ export enum DefaultActionSubType {
|
|
|
49
49
|
DID_SERVICE_UPDATE = 'DID service update',
|
|
50
50
|
VC_ISSUE = 'VC issue',
|
|
51
51
|
VC_VERIFY = 'VC verify',
|
|
52
|
+
VC_SHARE = 'VC share',
|
|
53
|
+
VC_DELETE = 'VC delete',
|
|
54
|
+
VC_ISSUE_DECLINE = 'VC issue decline',
|
|
55
|
+
VC_SHARE_DECLINE = 'VC share decline',
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
export type ActionSubType = DefaultActionSubType | string
|
|
@@ -169,9 +173,9 @@ export class EventManager {
|
|
|
169
173
|
emitters.map((emitter) => {
|
|
170
174
|
return { emitter, enabled: true }
|
|
171
175
|
}),
|
|
172
|
-
filter
|
|
173
|
-
).flatMap((emitter) => emitter.emitter.listeners(filter.eventName))
|
|
174
|
-
)
|
|
176
|
+
filter,
|
|
177
|
+
).flatMap((emitter) => emitter.emitter.listeners(filter.eventName)),
|
|
178
|
+
),
|
|
175
179
|
)
|
|
176
180
|
}
|
|
177
181
|
|
|
@@ -180,7 +184,7 @@ export class EventManager {
|
|
|
180
184
|
filter?: {
|
|
181
185
|
eventName?: string | symbol
|
|
182
186
|
onlyEnabled?: boolean
|
|
183
|
-
}
|
|
187
|
+
},
|
|
184
188
|
): Array<EmitterInstance> {
|
|
185
189
|
const { eventName } = filter ?? {}
|
|
186
190
|
if (!eventName) {
|