@sphereon/oid4vci-common 0.12.1-next.4 → 0.12.1-unstable.12
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/functions/IssuerMetadataUtils.d.ts +9 -0
- package/dist/functions/IssuerMetadataUtils.d.ts.map +1 -1
- package/dist/functions/IssuerMetadataUtils.js +52 -2
- package/dist/functions/IssuerMetadataUtils.js.map +1 -1
- package/dist/functions/ProofUtil.d.ts +1 -0
- package/dist/functions/ProofUtil.d.ts.map +1 -1
- package/dist/functions/ProofUtil.js +5 -4
- package/dist/functions/ProofUtil.js.map +1 -1
- package/dist/functions/TypeConversionUtils.d.ts +0 -16
- package/dist/functions/TypeConversionUtils.d.ts.map +1 -1
- package/dist/functions/TypeConversionUtils.js +1 -89
- package/dist/functions/TypeConversionUtils.js.map +1 -1
- package/dist/types/Generic.types.d.ts +1 -1
- package/dist/types/Generic.types.d.ts.map +1 -1
- package/lib/functions/IssuerMetadataUtils.ts +53 -1
- package/lib/functions/ProofUtil.ts +7 -4
- package/lib/functions/TypeConversionUtils.ts +0 -89
- package/lib/types/Generic.types.ts +1 -1
- package/package.json +2 -2
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition } from '../index';
|
|
1
2
|
import { AuthorizationServerMetadata, CredentialConfigurationSupported, CredentialConfigurationSupportedV1_0_13, CredentialIssuerMetadata, CredentialSupportedTypeV1_0_08, CredentialSupportedV1_0_08, IssuerMetadata, MetadataDisplay, OID4VCICredentialFormat, OpenId4VCIVersion } from '../types';
|
|
2
3
|
export declare function getSupportedCredentials(opts?: {
|
|
3
4
|
issuerMetadata?: CredentialIssuerMetadata | IssuerMetadata;
|
|
@@ -12,6 +13,9 @@ export declare function getSupportedCredential(opts?: {
|
|
|
12
13
|
types?: string | string[];
|
|
13
14
|
format?: OID4VCICredentialFormat | string | (OID4VCICredentialFormat | string)[];
|
|
14
15
|
}): Record<string, CredentialConfigurationSupportedV1_0_13> | Array<CredentialConfigurationSupported>;
|
|
16
|
+
export declare function getTypesFromCredentialSupported(credentialSupported: CredentialConfigurationSupported, opts?: {
|
|
17
|
+
filterVerifiableCredential: boolean;
|
|
18
|
+
}): string[];
|
|
15
19
|
export declare function credentialsSupportedV8ToV13(supportedV8: CredentialSupportedTypeV1_0_08): Record<string, CredentialConfigurationSupported>;
|
|
16
20
|
export declare function credentialSupportedV8ToV13(key: string, supportedV8: CredentialSupportedV1_0_08): Record<string, CredentialConfigurationSupported>;
|
|
17
21
|
export declare function getIssuerDisplays(metadata: CredentialIssuerMetadata | IssuerMetadata, opts?: {
|
|
@@ -21,4 +25,9 @@ export declare function getIssuerDisplays(metadata: CredentialIssuerMetadata | I
|
|
|
21
25
|
* TODO check again when WAL-617 is done to replace how we get the issuer name.
|
|
22
26
|
*/
|
|
23
27
|
export declare function getIssuerName(url: string, credentialIssuerMetadata?: Partial<AuthorizationServerMetadata> & (CredentialIssuerMetadata | IssuerMetadata)): string;
|
|
28
|
+
/**
|
|
29
|
+
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
30
|
+
* @param subject
|
|
31
|
+
*/
|
|
32
|
+
export declare function getTypesFromObject(subject: CredentialConfigurationSupported | CredentialOfferFormat | CredentialDefinitionV1_0_13 | JsonLdIssuerCredentialDefinition | string): string[] | undefined;
|
|
24
33
|
//# sourceMappingURL=IssuerMetadataUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssuerMetadataUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/IssuerMetadataUtils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IssuerMetadataUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/IssuerMetadataUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,gCAAgC,EAAkB,MAAM,UAAU,CAAC;AAChI,OAAO,EACL,2BAA2B,EAC3B,gCAAgC,EAChC,uCAAuC,EACvC,wBAAwB,EACxB,8BAA8B,EAC9B,0BAA0B,EAC1B,cAAc,EACd,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EAClB,MAAM,UAAU,CAAC;AAElB,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE;IAC7C,cAAc,CAAC,EAAE,wBAAwB,GAAG,cAAc,CAAC;IAC3D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,uBAAuB,GAAG,MAAM,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC;CAClF,GAAG,MAAM,CAAC,MAAM,EAAE,uCAAuC,CAAC,GAAG,KAAK,CAAC,gCAAgC,CAAC,CAqBpG;AAED,wBAAgB,mCAAmC,CAAC,cAAc,EAAE,wBAAwB,GAAG,cAAc,GAAG,KAAK,CAAC,iBAAiB,CAAC,CAwBvI;AAED,wBAAgB,sBAAsB,CAAC,IAAI,CAAC,EAAE;IAC5C,cAAc,CAAC,EAAE,wBAAwB,GAAG,cAAc,CAAC;IAC3D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,uBAAuB,GAAG,MAAM,GAAG,CAAC,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC;CAClF,GAAG,MAAM,CAAC,MAAM,EAAE,uCAAuC,CAAC,GAAG,KAAK,CAAC,gCAAgC,CAAC,CA4EpG;AAED,wBAAgB,+BAA+B,CAC7C,mBAAmB,EAAE,gCAAgC,EACrD,IAAI,CAAC,EAAE;IAAE,0BAA0B,EAAE,OAAO,CAAA;CAAE,YAuB/C;AAED,wBAAgB,2BAA2B,CAAC,WAAW,EAAE,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAQzI;AAED,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,0BAA0B,GAAG,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAiBjJ;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,wBAAwB,GAAG,cAAc,EAAE,IAAI,CAAC,EAAE;IAAE,WAAW,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,eAAe,EAAE,CAM1I;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,GAAG,EAAE,MAAM,EACX,wBAAwB,CAAC,EAAE,OAAO,CAAC,2BAA2B,CAAC,GAAG,CAAC,wBAAwB,GAAG,cAAc,CAAC,GAC5G,MAAM,CAUR;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gCAAgC,GAAG,qBAAqB,GAAG,2BAA2B,GAAG,gCAAgC,GAAG,MAAM,GAC1I,MAAM,EAAE,GAAG,SAAS,CAiBtB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getIssuerName = exports.getIssuerDisplays = exports.credentialSupportedV8ToV13 = exports.credentialsSupportedV8ToV13 = exports.getSupportedCredential = exports.determineVersionsFromIssuerMetadata = exports.getSupportedCredentials = void 0;
|
|
3
|
+
exports.getTypesFromObject = exports.getIssuerName = exports.getIssuerDisplays = exports.credentialSupportedV8ToV13 = exports.credentialsSupportedV8ToV13 = exports.getTypesFromCredentialSupported = exports.getSupportedCredential = exports.determineVersionsFromIssuerMetadata = exports.getSupportedCredentials = void 0;
|
|
4
4
|
const index_1 = require("../index");
|
|
5
5
|
const types_1 = require("../types");
|
|
6
6
|
function getSupportedCredentials(opts) {
|
|
@@ -85,7 +85,7 @@ function getSupportedCredential(opts) {
|
|
|
85
85
|
const normalizedFormats = Array.isArray(format) ? format : format ? [format] : [];
|
|
86
86
|
function filterMatchingConfig(config) {
|
|
87
87
|
let isTypeMatch = normalizedTypes.length === 0;
|
|
88
|
-
const types =
|
|
88
|
+
const types = getTypesFromObject(config);
|
|
89
89
|
if (!isTypeMatch) {
|
|
90
90
|
if (normalizedTypes.length === 1 && config.id === normalizedTypes[0]) {
|
|
91
91
|
isTypeMatch = true;
|
|
@@ -128,6 +128,29 @@ function getSupportedCredential(opts) {
|
|
|
128
128
|
throw Error(`Either < v11 configurations or V13 configurations should have been filtered at this point`);
|
|
129
129
|
}
|
|
130
130
|
exports.getSupportedCredential = getSupportedCredential;
|
|
131
|
+
function getTypesFromCredentialSupported(credentialSupported, opts) {
|
|
132
|
+
var _a;
|
|
133
|
+
let types = [];
|
|
134
|
+
if (credentialSupported.format === 'jwt_vc_json' ||
|
|
135
|
+
credentialSupported.format === 'jwt_vc' ||
|
|
136
|
+
credentialSupported.format === 'jwt_vc_json-ld' ||
|
|
137
|
+
credentialSupported.format === 'ldp_vc') {
|
|
138
|
+
types = (_a = getTypesFromObject(credentialSupported)) !== null && _a !== void 0 ? _a : [];
|
|
139
|
+
}
|
|
140
|
+
else if (credentialSupported.format === 'vc+sd-jwt') {
|
|
141
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
142
|
+
// @ts-ignore
|
|
143
|
+
types = [credentialSupported.vct];
|
|
144
|
+
}
|
|
145
|
+
if (!types || types.length === 0) {
|
|
146
|
+
throw Error('Could not deduce types from credential supported');
|
|
147
|
+
}
|
|
148
|
+
if (opts === null || opts === void 0 ? void 0 : opts.filterVerifiableCredential) {
|
|
149
|
+
return types.filter((type) => type !== 'VerifiableCredential');
|
|
150
|
+
}
|
|
151
|
+
return types;
|
|
152
|
+
}
|
|
153
|
+
exports.getTypesFromCredentialSupported = getTypesFromCredentialSupported;
|
|
131
154
|
function credentialsSupportedV8ToV13(supportedV8) {
|
|
132
155
|
const credentialConfigsSupported = {};
|
|
133
156
|
Object.entries(supportedV8).flatMap((entry) => {
|
|
@@ -173,4 +196,31 @@ function getIssuerName(url, credentialIssuerMetadata) {
|
|
|
173
196
|
return url;
|
|
174
197
|
}
|
|
175
198
|
exports.getIssuerName = getIssuerName;
|
|
199
|
+
/**
|
|
200
|
+
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
201
|
+
* @param subject
|
|
202
|
+
*/
|
|
203
|
+
function getTypesFromObject(subject) {
|
|
204
|
+
if (subject === undefined) {
|
|
205
|
+
return undefined;
|
|
206
|
+
}
|
|
207
|
+
else if (typeof subject === 'string') {
|
|
208
|
+
return [subject];
|
|
209
|
+
}
|
|
210
|
+
else if ('credential_definition' in subject && subject.credential_definition) {
|
|
211
|
+
return getTypesFromObject(subject.credential_definition);
|
|
212
|
+
}
|
|
213
|
+
else if ('types' in subject && subject.types) {
|
|
214
|
+
return Array.isArray(subject.types) ? subject.types : [subject.types];
|
|
215
|
+
}
|
|
216
|
+
else if ('type' in subject && subject.type) {
|
|
217
|
+
return Array.isArray(subject.type) ? subject.type : [subject.type];
|
|
218
|
+
}
|
|
219
|
+
else if ('vct' in subject && subject.vct) {
|
|
220
|
+
return [subject.vct];
|
|
221
|
+
}
|
|
222
|
+
index_1.VCI_LOG_COMMON.warning('Could not deduce credential types. Probably a failure down the line will happen!');
|
|
223
|
+
return undefined;
|
|
224
|
+
}
|
|
225
|
+
exports.getTypesFromObject = getTypesFromObject;
|
|
176
226
|
//# sourceMappingURL=IssuerMetadataUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssuerMetadataUtils.js","sourceRoot":"","sources":["../../lib/functions/IssuerMetadataUtils.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"IssuerMetadataUtils.js","sourceRoot":"","sources":["../../lib/functions/IssuerMetadataUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProofUtil.d.ts","sourceRoot":"","sources":["../../lib/functions/ProofUtil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAkB,MAAM,IAAI,CAAC;AAC7C,OAAO,EAGL,GAAG,EAEH,GAAG,EAGH,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,GAAG,EACJ,MAAM,UAAU,CAAC;AAIlB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,oBACzB,OAAO,aACL,2BAA2B,MAAM,CAAC,aAClC,QAAQ,gBACL,GAAG,KAChB,QAAQ,iBAAiB,CA0B3B,CAAC;AAQF,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,OAOrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAA0B,MAAM,KAAG,MAAM,GAAG,SAE1E,CAAC;AAEF,eAAO,MAAM,WAAW,SAChB,MAAM,SACL;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,+BAA+B,CAAC,EAAE,kBAAkB,KAAK,CAAC,CAAA;CAAE,KAClF,QAAQ,gBAAgB,GAAG,CAAC,CAkB9B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
1
|
+
{"version":3,"file":"ProofUtil.d.ts","sourceRoot":"","sources":["../../lib/functions/ProofUtil.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAkB,MAAM,IAAI,CAAC;AAC7C,OAAO,EAGL,GAAG,EAEH,GAAG,EAGH,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,0BAA0B,EAC1B,GAAG,EACJ,MAAM,UAAU,CAAC;AAIlB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,uBAAuB,oBACzB,OAAO,aACL,2BAA2B,MAAM,CAAC,aAClC,QAAQ,gBACL,GAAG,KAChB,QAAQ,iBAAiB,CA0B3B,CAAC;AAQF,eAAO,MAAM,KAAK,UAAW,MAAM,KAAG,OAOrC,CAAC;AAEF,eAAO,MAAM,kBAAkB,yBAA0B,MAAM,KAAG,MAAM,GAAG,SAE1E,CAAC;AAEF,eAAO,MAAM,WAAW,SAChB,MAAM,SACL;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,+BAA+B,CAAC,EAAE,kBAAkB,KAAK,CAAC,CAAA;CAAE,KAClF,QAAQ,gBAAgB,GAAG,CAAC,CAkB9B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB"}
|
|
@@ -109,24 +109,25 @@ const createJWT = (mode, jwtProps, existingJwt) => {
|
|
|
109
109
|
// : getJwtProperty<string>('iss', false, jwtProps?.issuer, existingJwt?.payload?.iss);
|
|
110
110
|
const client_id = mode === 'jwt' ? getJwtProperty('client_id', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.clientId, (_d = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _d === void 0 ? void 0 : _d.client_id) : undefined;
|
|
111
111
|
const jti = getJwtProperty('jti', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.jti, (_e = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _e === void 0 ? void 0 : _e.jti);
|
|
112
|
-
const typ = getJwtProperty('typ', true, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.typ, (_f = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _f === void 0 ? void 0 : _f.typ, 'jwt');
|
|
112
|
+
const typ = getJwtProperty('typ', true, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.typ, (_f = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _f === void 0 ? void 0 : _f.typ, 'openid4vci-proof+jwt');
|
|
113
113
|
const nonce = getJwtProperty('nonce', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.nonce, (_g = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.payload) === null || _g === void 0 ? void 0 : _g.nonce); // Officially this is required, but some implementations don't have it
|
|
114
114
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
115
115
|
const alg = getJwtProperty('alg', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.alg, (_h = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _h === void 0 ? void 0 : _h.alg, 'ES256');
|
|
116
116
|
const kid = getJwtProperty('kid', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.kid, (_j = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _j === void 0 ? void 0 : _j.kid);
|
|
117
117
|
const jwk = getJwtProperty('jwk', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.jwk, (_k = existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header) === null || _k === void 0 ? void 0 : _k.jwk);
|
|
118
|
+
const x5c = getJwtProperty('x5c', false, jwtProps === null || jwtProps === void 0 ? void 0 : jwtProps.x5c, existingJwt === null || existingJwt === void 0 ? void 0 : existingJwt.header.x5c);
|
|
118
119
|
const jwt = existingJwt ? existingJwt : {};
|
|
119
120
|
const now = +new Date();
|
|
120
121
|
const jwtPayload = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, (aud && { aud })), { iat: (_m = (_l = jwt.payload) === null || _l === void 0 ? void 0 : _l.iat) !== null && _m !== void 0 ? _m : Math.round(now / 1000 - 60), exp: (_p = (_o = jwt.payload) === null || _o === void 0 ? void 0 : _o.exp) !== null && _p !== void 0 ? _p : Math.round(now / 1000 + 10 * 60), nonce }), (client_id && { client_id })), (iss && { iss })), (jti && { jti }));
|
|
121
|
-
const jwtHeader = Object.assign(Object.assign({ typ,
|
|
122
|
-
alg }, (kid && { kid })), (jwk && { jwk }));
|
|
122
|
+
const jwtHeader = Object.assign(Object.assign(Object.assign({ typ,
|
|
123
|
+
alg }, (kid && { kid })), (jwk && { jwk })), (x5c && { x5c }));
|
|
123
124
|
return {
|
|
124
125
|
payload: Object.assign(Object.assign({}, jwt.payload), jwtPayload),
|
|
125
126
|
header: Object.assign(Object.assign({}, jwt.header), jwtHeader),
|
|
126
127
|
};
|
|
127
128
|
};
|
|
128
129
|
const getJwtProperty = (propertyName, required, option, jwtProperty, defaultValue) => {
|
|
129
|
-
if (typeof option === 'string' && option && jwtProperty && option !== jwtProperty) {
|
|
130
|
+
if ((typeof option === 'string' || Array.isArray(option)) && option && jwtProperty && option !== jwtProperty) {
|
|
130
131
|
throw Error(`Cannot have a property '${propertyName}' with value '${option}' and different JWT value '${jwtProperty}' at the same time`);
|
|
131
132
|
}
|
|
132
133
|
let result = (jwtProperty ? jwtProperty : option);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProofUtil.js","sourceRoot":"","sources":["../../lib/functions/ProofUtil.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ProofUtil.js","sourceRoot":"","sources":["../../lib/functions/ProofUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
import { AuthorizationDetails, CredentialOfferPayload, UniformCredentialOfferPayload, UniformCredentialOfferRequest } from '../index';
|
|
2
|
-
import { CredentialConfigurationSupported, CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition } from '../types';
|
|
3
1
|
export declare const getNumberOrUndefined: (input?: string) => number | undefined;
|
|
4
|
-
/**
|
|
5
|
-
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
6
|
-
* @param subject
|
|
7
|
-
*/
|
|
8
|
-
export declare function getTypesFromObject(subject: CredentialConfigurationSupported | CredentialOfferFormat | CredentialDefinitionV1_0_13 | JsonLdIssuerCredentialDefinition | string): string[] | undefined;
|
|
9
|
-
export declare function getTypesFromCredentialOffer(offer: UniformCredentialOfferRequest | CredentialOfferPayload | UniformCredentialOfferPayload, opts?: {
|
|
10
|
-
configIdAsType?: boolean;
|
|
11
|
-
}): Array<Array<string>> | undefined;
|
|
12
|
-
export declare function getTypesFromAuthorizationDetails(authDetails: AuthorizationDetails, opts?: {
|
|
13
|
-
configIdAsType?: boolean;
|
|
14
|
-
}): string[] | undefined;
|
|
15
|
-
export declare function getTypesFromCredentialSupported(credentialSupported: CredentialConfigurationSupported, opts?: {
|
|
16
|
-
filterVerifiableCredential: boolean;
|
|
17
|
-
}): string[];
|
|
18
2
|
//# sourceMappingURL=TypeConversionUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeConversionUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/TypeConversionUtils.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"TypeConversionUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/TypeConversionUtils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,MAAM,GAAG,SAE9D,CAAC"}
|
|
@@ -1,96 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
const index_1 = require("../index");
|
|
3
|
+
exports.getNumberOrUndefined = void 0;
|
|
5
4
|
const getNumberOrUndefined = (input) => {
|
|
6
5
|
return input && !isNaN(+input) ? +input : undefined;
|
|
7
6
|
};
|
|
8
7
|
exports.getNumberOrUndefined = getNumberOrUndefined;
|
|
9
|
-
/**
|
|
10
|
-
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
11
|
-
* @param subject
|
|
12
|
-
*/
|
|
13
|
-
function getTypesFromObject(subject) {
|
|
14
|
-
if (subject === undefined) {
|
|
15
|
-
return undefined;
|
|
16
|
-
}
|
|
17
|
-
else if (typeof subject === 'string') {
|
|
18
|
-
return [subject];
|
|
19
|
-
}
|
|
20
|
-
else if ('credential_definition' in subject && subject.credential_definition) {
|
|
21
|
-
return getTypesFromObject(subject.credential_definition);
|
|
22
|
-
}
|
|
23
|
-
else if ('types' in subject && subject.types) {
|
|
24
|
-
return Array.isArray(subject.types) ? subject.types : [subject.types];
|
|
25
|
-
}
|
|
26
|
-
else if ('type' in subject && subject.type) {
|
|
27
|
-
return Array.isArray(subject.type) ? subject.type : [subject.type];
|
|
28
|
-
}
|
|
29
|
-
else if ('vct' in subject && subject.vct) {
|
|
30
|
-
return [subject.vct];
|
|
31
|
-
}
|
|
32
|
-
index_1.VCI_LOG_COMMON.warning('Could not deduce credential types. Probably a failure down the line will happen!');
|
|
33
|
-
return undefined;
|
|
34
|
-
}
|
|
35
|
-
exports.getTypesFromObject = getTypesFromObject;
|
|
36
|
-
function getTypesFromCredentialOffer(offer, opts) {
|
|
37
|
-
const { configIdAsType = false } = Object.assign({}, opts);
|
|
38
|
-
if ('credentials' in offer && Array.isArray(offer.credentials)) {
|
|
39
|
-
return offer.credentials.map((cred) => getTypesFromObject(cred)).filter((cred) => cred !== undefined);
|
|
40
|
-
}
|
|
41
|
-
else if (configIdAsType && 'credential_configuration_ids' in offer && Array.isArray(offer.credential_configuration_ids)) {
|
|
42
|
-
return offer.credential_configuration_ids.map((id) => [id]);
|
|
43
|
-
}
|
|
44
|
-
else if ('credential_offer' in offer && offer.credential_offer) {
|
|
45
|
-
return getTypesFromCredentialOffer(offer.credential_offer, opts);
|
|
46
|
-
}
|
|
47
|
-
else if ('credential_type' in offer && offer.credential_type) {
|
|
48
|
-
if (typeof offer.credential_type === 'string') {
|
|
49
|
-
return [[offer.credential_type]];
|
|
50
|
-
}
|
|
51
|
-
else if (Array.isArray(offer.credential_type)) {
|
|
52
|
-
return [offer.credential_type];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
index_1.VCI_LOG_COMMON.warning('Could not deduce credential types from offer. Probably a failure down the line will happen!');
|
|
56
|
-
return undefined;
|
|
57
|
-
}
|
|
58
|
-
exports.getTypesFromCredentialOffer = getTypesFromCredentialOffer;
|
|
59
|
-
function getTypesFromAuthorizationDetails(authDetails, opts) {
|
|
60
|
-
const { configIdAsType = false } = Object.assign({}, opts);
|
|
61
|
-
if (typeof authDetails === 'string') {
|
|
62
|
-
return [authDetails];
|
|
63
|
-
}
|
|
64
|
-
else if ('types' in authDetails && Array.isArray(authDetails.types)) {
|
|
65
|
-
return authDetails.types;
|
|
66
|
-
}
|
|
67
|
-
else if (configIdAsType && authDetails.credential_configuration_id) {
|
|
68
|
-
return [authDetails.credential_configuration_id];
|
|
69
|
-
}
|
|
70
|
-
return undefined;
|
|
71
|
-
}
|
|
72
|
-
exports.getTypesFromAuthorizationDetails = getTypesFromAuthorizationDetails;
|
|
73
|
-
function getTypesFromCredentialSupported(credentialSupported, opts) {
|
|
74
|
-
var _a;
|
|
75
|
-
let types = [];
|
|
76
|
-
if (credentialSupported.format === 'jwt_vc_json' ||
|
|
77
|
-
credentialSupported.format === 'jwt_vc' ||
|
|
78
|
-
credentialSupported.format === 'jwt_vc_json-ld' ||
|
|
79
|
-
credentialSupported.format === 'ldp_vc') {
|
|
80
|
-
types = (_a = getTypesFromObject(credentialSupported)) !== null && _a !== void 0 ? _a : [];
|
|
81
|
-
}
|
|
82
|
-
else if (credentialSupported.format === 'vc+sd-jwt') {
|
|
83
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
84
|
-
// @ts-ignore
|
|
85
|
-
types = [credentialSupported.vct];
|
|
86
|
-
}
|
|
87
|
-
if (!types || types.length === 0) {
|
|
88
|
-
throw Error('Could not deduce types from credential supported');
|
|
89
|
-
}
|
|
90
|
-
if (opts === null || opts === void 0 ? void 0 : opts.filterVerifiableCredential) {
|
|
91
|
-
return types.filter((type) => type !== 'VerifiableCredential');
|
|
92
|
-
}
|
|
93
|
-
return types;
|
|
94
|
-
}
|
|
95
|
-
exports.getTypesFromCredentialSupported = getTypesFromCredentialSupported;
|
|
96
8
|
//# sourceMappingURL=TypeConversionUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TypeConversionUtils.js","sourceRoot":"","sources":["../../lib/functions/TypeConversionUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"TypeConversionUtils.js","sourceRoot":"","sources":["../../lib/functions/TypeConversionUtils.ts"],"names":[],"mappings":";;;AAAO,MAAM,oBAAoB,GAAG,CAAC,KAAc,EAAsB,EAAE;IACzE,OAAO,KAAK,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC,CAAC;AAFW,QAAA,oBAAoB,wBAE/B"}
|
|
@@ -42,7 +42,7 @@ export interface CredentialSupplierConfig {
|
|
|
42
42
|
export interface CredentialIssuerMetadataOpts {
|
|
43
43
|
credential_endpoint?: string;
|
|
44
44
|
batch_credential_endpoint?: string;
|
|
45
|
-
credentials_supported
|
|
45
|
+
credentials_supported?: CredentialConfigurationSupported[];
|
|
46
46
|
credential_issuer: string;
|
|
47
47
|
authorization_server?: string;
|
|
48
48
|
token_endpoint?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Generic.types.d.ts","sourceRoot":"","sources":["../../lib/types/Generic.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AAE7G,OAAO,EAAE,2BAA2B,EAAE,MAAM,4BAA4B,CAAC;AAEzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAC1F,OAAO,EACL,uCAAuC,EACvC,wBAAwB,EACxB,6BAA6B,EAC7B,qBAAqB,EACtB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,MAAM,CAAC;AAC9C,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEpD,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,KAAK,CAAC;AAEpC;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,uBAAuB,GAAG,aAAa,GAAG,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE3G,MAAM,WAAW,aAAa;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,2BAA2B,GAAG,aAAa,GACrD,YAAY,GAAG;IACb,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,CAAC,EAAE,SAAS,CAAC;CAC9B,CAAC;AAEJ,MAAM,MAAM,eAAe,GAAG,aAAa,GACzC,YAAY,GAAG;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEJ,MAAM,WAAW,wBAAwB;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,qBAAqB,EAAE,gCAAgC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"Generic.types.d.ts","sourceRoot":"","sources":["../../lib/types/Generic.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition, VCI_LOG_COMMON } from '../index';
|
|
2
2
|
import {
|
|
3
3
|
AuthorizationServerMetadata,
|
|
4
4
|
CredentialConfigurationSupported,
|
|
@@ -149,6 +149,33 @@ export function getSupportedCredential(opts?: {
|
|
|
149
149
|
throw Error(`Either < v11 configurations or V13 configurations should have been filtered at this point`);
|
|
150
150
|
}
|
|
151
151
|
|
|
152
|
+
export function getTypesFromCredentialSupported(
|
|
153
|
+
credentialSupported: CredentialConfigurationSupported,
|
|
154
|
+
opts?: { filterVerifiableCredential: boolean },
|
|
155
|
+
) {
|
|
156
|
+
let types: string[] = [];
|
|
157
|
+
if (
|
|
158
|
+
credentialSupported.format === 'jwt_vc_json' ||
|
|
159
|
+
credentialSupported.format === 'jwt_vc' ||
|
|
160
|
+
credentialSupported.format === 'jwt_vc_json-ld' ||
|
|
161
|
+
credentialSupported.format === 'ldp_vc'
|
|
162
|
+
) {
|
|
163
|
+
types = getTypesFromObject(credentialSupported) ?? [];
|
|
164
|
+
} else if (credentialSupported.format === 'vc+sd-jwt') {
|
|
165
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
166
|
+
// @ts-ignore
|
|
167
|
+
types = [credentialSupported.vct];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (!types || types.length === 0) {
|
|
171
|
+
throw Error('Could not deduce types from credential supported');
|
|
172
|
+
}
|
|
173
|
+
if (opts?.filterVerifiableCredential) {
|
|
174
|
+
return types.filter((type) => type !== 'VerifiableCredential');
|
|
175
|
+
}
|
|
176
|
+
return types;
|
|
177
|
+
}
|
|
178
|
+
|
|
152
179
|
export function credentialsSupportedV8ToV13(supportedV8: CredentialSupportedTypeV1_0_08): Record<string, CredentialConfigurationSupported> {
|
|
153
180
|
const credentialConfigsSupported: Record<string, CredentialConfigurationSupported> = {};
|
|
154
181
|
Object.entries(supportedV8).flatMap((entry) => {
|
|
@@ -203,3 +230,28 @@ export function getIssuerName(
|
|
|
203
230
|
}
|
|
204
231
|
return url;
|
|
205
232
|
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
236
|
+
* @param subject
|
|
237
|
+
*/
|
|
238
|
+
export function getTypesFromObject(
|
|
239
|
+
subject: CredentialConfigurationSupported | CredentialOfferFormat | CredentialDefinitionV1_0_13 | JsonLdIssuerCredentialDefinition | string,
|
|
240
|
+
): string[] | undefined {
|
|
241
|
+
if (subject === undefined) {
|
|
242
|
+
return undefined;
|
|
243
|
+
} else if (typeof subject === 'string') {
|
|
244
|
+
return [subject];
|
|
245
|
+
} else if ('credential_definition' in subject && subject.credential_definition) {
|
|
246
|
+
return getTypesFromObject(subject.credential_definition);
|
|
247
|
+
} else if ('types' in subject && subject.types) {
|
|
248
|
+
return Array.isArray(subject.types) ? subject.types : [subject.types];
|
|
249
|
+
} else if ('type' in subject && subject.type) {
|
|
250
|
+
return Array.isArray(subject.type) ? subject.type : [subject.type];
|
|
251
|
+
} else if ('vct' in subject && subject.vct) {
|
|
252
|
+
return [subject.vct];
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
VCI_LOG_COMMON.warning('Could not deduce credential types. Probably a failure down the line will happen!');
|
|
256
|
+
return undefined;
|
|
257
|
+
}
|
|
@@ -115,6 +115,7 @@ export interface JwtProps {
|
|
|
115
115
|
typ?: Typ;
|
|
116
116
|
kid?: string;
|
|
117
117
|
jwk?: JWK;
|
|
118
|
+
x5c?: string[];
|
|
118
119
|
aud?: string | string[];
|
|
119
120
|
issuer?: string;
|
|
120
121
|
clientId?: string;
|
|
@@ -130,16 +131,17 @@ const createJWT = (mode: PoPMode, jwtProps?: JwtProps, existingJwt?: Jwt): Jwt =
|
|
|
130
131
|
: getJwtProperty<string | string[]>('aud', false, jwtProps?.aud, existingJwt?.payload?.aud);
|
|
131
132
|
const iss =
|
|
132
133
|
// mode === 'pop'
|
|
133
|
-
|
|
134
|
-
|
|
134
|
+
getJwtProperty<string>('iss', false, jwtProps?.clientId, existingJwt?.payload?.iss)
|
|
135
|
+
// : getJwtProperty<string>('iss', false, jwtProps?.issuer, existingJwt?.payload?.iss);
|
|
135
136
|
const client_id = mode === 'jwt' ? getJwtProperty<string>('client_id', false, jwtProps?.clientId, existingJwt?.payload?.client_id) : undefined;
|
|
136
137
|
const jti = getJwtProperty<string>('jti', false, jwtProps?.jti, existingJwt?.payload?.jti);
|
|
137
|
-
const typ = getJwtProperty<string>('typ', true, jwtProps?.typ, existingJwt?.header?.typ, 'jwt');
|
|
138
|
+
const typ = getJwtProperty<string>('typ', true, jwtProps?.typ, existingJwt?.header?.typ, 'openid4vci-proof+jwt');
|
|
138
139
|
const nonce = getJwtProperty<string>('nonce', false, jwtProps?.nonce, existingJwt?.payload?.nonce); // Officially this is required, but some implementations don't have it
|
|
139
140
|
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
140
141
|
const alg = getJwtProperty<string>('alg', false, jwtProps?.alg, existingJwt?.header?.alg, 'ES256')!;
|
|
141
142
|
const kid = getJwtProperty<string>('kid', false, jwtProps?.kid, existingJwt?.header?.kid);
|
|
142
143
|
const jwk = getJwtProperty<BaseJWK>('jwk', false, jwtProps?.jwk, existingJwt?.header?.jwk);
|
|
144
|
+
const x5c = getJwtProperty<string[]>('x5c', false, jwtProps?.x5c, existingJwt?.header.x5c);
|
|
143
145
|
const jwt: Partial<Jwt> = existingJwt ? existingJwt : {};
|
|
144
146
|
const now = +new Date();
|
|
145
147
|
const jwtPayload: Partial<JWTPayload> = {
|
|
@@ -157,6 +159,7 @@ const createJWT = (mode: PoPMode, jwtProps?: JwtProps, existingJwt?: Jwt): Jwt =
|
|
|
157
159
|
alg,
|
|
158
160
|
...(kid && { kid }),
|
|
159
161
|
...(jwk && { jwk }),
|
|
162
|
+
...(x5c && { x5c }),
|
|
160
163
|
};
|
|
161
164
|
return {
|
|
162
165
|
payload: { ...jwt.payload, ...jwtPayload },
|
|
@@ -171,7 +174,7 @@ const getJwtProperty = <T>(
|
|
|
171
174
|
jwtProperty?: T,
|
|
172
175
|
defaultValue?: T,
|
|
173
176
|
): T | undefined => {
|
|
174
|
-
if (typeof option === 'string' && option && jwtProperty && option !== jwtProperty) {
|
|
177
|
+
if ((typeof option === 'string' || Array.isArray(option)) && option && jwtProperty && option !== jwtProperty) {
|
|
175
178
|
throw Error(`Cannot have a property '${propertyName}' with value '${option}' and different JWT value '${jwtProperty}' at the same time`);
|
|
176
179
|
}
|
|
177
180
|
let result = (jwtProperty ? jwtProperty : option) as T | undefined;
|
|
@@ -1,92 +1,3 @@
|
|
|
1
|
-
import { AuthorizationDetails, CredentialOfferPayload, UniformCredentialOfferPayload, UniformCredentialOfferRequest, VCI_LOG_COMMON } from '../index';
|
|
2
|
-
import { CredentialConfigurationSupported, CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition } from '../types';
|
|
3
|
-
|
|
4
1
|
export const getNumberOrUndefined = (input?: string): number | undefined => {
|
|
5
2
|
return input && !isNaN(+input) ? +input : undefined;
|
|
6
3
|
};
|
|
7
|
-
|
|
8
|
-
/**
|
|
9
|
-
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
10
|
-
* @param subject
|
|
11
|
-
*/
|
|
12
|
-
export function getTypesFromObject(
|
|
13
|
-
subject: CredentialConfigurationSupported | CredentialOfferFormat | CredentialDefinitionV1_0_13 | JsonLdIssuerCredentialDefinition | string,
|
|
14
|
-
): string[] | undefined {
|
|
15
|
-
if (subject === undefined) {
|
|
16
|
-
return undefined;
|
|
17
|
-
} else if (typeof subject === 'string') {
|
|
18
|
-
return [subject];
|
|
19
|
-
} else if ('credential_definition' in subject && subject.credential_definition) {
|
|
20
|
-
return getTypesFromObject(subject.credential_definition);
|
|
21
|
-
} else if ('types' in subject && subject.types) {
|
|
22
|
-
return Array.isArray(subject.types) ? subject.types : [subject.types];
|
|
23
|
-
} else if ('type' in subject && subject.type) {
|
|
24
|
-
return Array.isArray(subject.type) ? subject.type : [subject.type];
|
|
25
|
-
} else if ('vct' in subject && subject.vct) {
|
|
26
|
-
return [subject.vct];
|
|
27
|
-
}
|
|
28
|
-
VCI_LOG_COMMON.warning('Could not deduce credential types. Probably a failure down the line will happen!');
|
|
29
|
-
return undefined;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export function getTypesFromCredentialOffer(
|
|
33
|
-
offer: UniformCredentialOfferRequest | CredentialOfferPayload | UniformCredentialOfferPayload,
|
|
34
|
-
opts?: { configIdAsType?: boolean },
|
|
35
|
-
): Array<Array<string>> | undefined {
|
|
36
|
-
const { configIdAsType = false } = { ...opts };
|
|
37
|
-
if ('credentials' in offer && Array.isArray(offer.credentials)) {
|
|
38
|
-
return offer.credentials.map((cred) => getTypesFromObject(cred)).filter((cred): cred is string[] => cred !== undefined);
|
|
39
|
-
} else if (configIdAsType && 'credential_configuration_ids' in offer && Array.isArray(offer.credential_configuration_ids)) {
|
|
40
|
-
return offer.credential_configuration_ids.map((id) => [id]);
|
|
41
|
-
} else if ('credential_offer' in offer && offer.credential_offer) {
|
|
42
|
-
return getTypesFromCredentialOffer(offer.credential_offer, opts);
|
|
43
|
-
} else if ('credential_type' in offer && offer.credential_type) {
|
|
44
|
-
if (typeof offer.credential_type === 'string') {
|
|
45
|
-
return [[offer.credential_type]];
|
|
46
|
-
} else if (Array.isArray(offer.credential_type)) {
|
|
47
|
-
return [offer.credential_type];
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
VCI_LOG_COMMON.warning('Could not deduce credential types from offer. Probably a failure down the line will happen!');
|
|
51
|
-
return undefined;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export function getTypesFromAuthorizationDetails(authDetails: AuthorizationDetails, opts?: { configIdAsType?: boolean }): string[] | undefined {
|
|
55
|
-
const { configIdAsType = false } = { ...opts };
|
|
56
|
-
if (typeof authDetails === 'string') {
|
|
57
|
-
return [authDetails];
|
|
58
|
-
} else if ('types' in authDetails && Array.isArray(authDetails.types)) {
|
|
59
|
-
return authDetails.types;
|
|
60
|
-
} else if (configIdAsType && authDetails.credential_configuration_id) {
|
|
61
|
-
return [authDetails.credential_configuration_id];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
return undefined;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
export function getTypesFromCredentialSupported(
|
|
68
|
-
credentialSupported: CredentialConfigurationSupported,
|
|
69
|
-
opts?: { filterVerifiableCredential: boolean },
|
|
70
|
-
) {
|
|
71
|
-
let types: string[] = [];
|
|
72
|
-
if (
|
|
73
|
-
credentialSupported.format === 'jwt_vc_json' ||
|
|
74
|
-
credentialSupported.format === 'jwt_vc' ||
|
|
75
|
-
credentialSupported.format === 'jwt_vc_json-ld' ||
|
|
76
|
-
credentialSupported.format === 'ldp_vc'
|
|
77
|
-
) {
|
|
78
|
-
types = getTypesFromObject(credentialSupported) ?? [];
|
|
79
|
-
} else if (credentialSupported.format === 'vc+sd-jwt') {
|
|
80
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
81
|
-
// @ts-ignore
|
|
82
|
-
types = [credentialSupported.vct];
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
if (!types || types.length === 0) {
|
|
86
|
-
throw Error('Could not deduce types from credential supported');
|
|
87
|
-
}
|
|
88
|
-
if (opts?.filterVerifiableCredential) {
|
|
89
|
-
return types.filter((type) => type !== 'VerifiableCredential');
|
|
90
|
-
}
|
|
91
|
-
return types;
|
|
92
|
-
}
|
|
@@ -62,7 +62,7 @@ export interface CredentialSupplierConfig {
|
|
|
62
62
|
export interface CredentialIssuerMetadataOpts {
|
|
63
63
|
credential_endpoint?: string; // REQUIRED. URL of the Credential Issuer's Credential Endpoint. This URL MUST use the https scheme and MAY contain port, path and query parameter components.
|
|
64
64
|
batch_credential_endpoint?: string; // OPTIONAL. URL of the Credential Issuer's Batch Credential Endpoint. This URL MUST use the https scheme and MAY contain port, path and query parameter components. If omitted, the Credential Issuer does not support the Batch Credential Endpoint.
|
|
65
|
-
credentials_supported
|
|
65
|
+
credentials_supported?: CredentialConfigurationSupported[]; // REQUIRED in versions below 13. A JSON array containing a list of JSON objects, each of them representing metadata about a separate credential type that the Credential Issuer can issue. The JSON objects in the array MUST conform to the structure of the Section 10.2.3.1.
|
|
66
66
|
credential_issuer: string; // REQUIRED. The Credential Issuer's identifier.
|
|
67
67
|
authorization_server?: string; // OPTIONAL. Identifier of the OAuth 2.0 Authorization Server (as defined in [RFC8414]) the Credential Issuer relies on for authorization. If this element is omitted, the entity providing the Credential Issuer is also acting as the AS, i.e. the Credential Issuer's identifier is used as the OAuth 2.0 Issuer value to obtain the Authorization Server metadata as per [RFC8414].
|
|
68
68
|
token_endpoint?: string;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-common",
|
|
3
|
-
"version": "0.12.1-
|
|
3
|
+
"version": "0.12.1-unstable.12+5b1d576",
|
|
4
4
|
"description": "OpenID 4 Verifiable Credential Issuance Common Types",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -49,5 +49,5 @@
|
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "5b1d5766ca25b39ad9c9dc37e840539134f30080"
|
|
53
53
|
}
|