@sphereon/oid4vci-common 0.12.1-next.3 → 0.12.1-next.4
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 +0 -10
- package/dist/functions/IssuerMetadataUtils.d.ts.map +1 -1
- package/dist/functions/IssuerMetadataUtils.js +2 -74
- package/dist/functions/IssuerMetadataUtils.js.map +1 -1
- package/dist/functions/TypeConversionUtils.d.ts +16 -0
- package/dist/functions/TypeConversionUtils.d.ts.map +1 -1
- package/dist/functions/TypeConversionUtils.js +89 -1
- package/dist/functions/TypeConversionUtils.js.map +1 -1
- package/lib/functions/IssuerMetadataUtils.ts +1 -80
- package/lib/functions/TypeConversionUtils.ts +89 -0
- package/package.json +2 -2
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { CredentialDefinitionV1_0_13, CredentialOfferFormat, CredentialOfferPayload, JsonLdIssuerCredentialDefinition, UniformCredentialOfferPayload, UniformCredentialOfferRequest } from '../index';
|
|
2
1
|
import { AuthorizationServerMetadata, CredentialConfigurationSupported, CredentialConfigurationSupportedV1_0_13, CredentialIssuerMetadata, CredentialSupportedTypeV1_0_08, CredentialSupportedV1_0_08, IssuerMetadata, MetadataDisplay, OID4VCICredentialFormat, OpenId4VCIVersion } from '../types';
|
|
3
2
|
export declare function getSupportedCredentials(opts?: {
|
|
4
3
|
issuerMetadata?: CredentialIssuerMetadata | IssuerMetadata;
|
|
@@ -13,9 +12,6 @@ export declare function getSupportedCredential(opts?: {
|
|
|
13
12
|
types?: string | string[];
|
|
14
13
|
format?: OID4VCICredentialFormat | string | (OID4VCICredentialFormat | string)[];
|
|
15
14
|
}): Record<string, CredentialConfigurationSupportedV1_0_13> | Array<CredentialConfigurationSupported>;
|
|
16
|
-
export declare function getTypesFromCredentialSupported(credentialSupported: CredentialConfigurationSupported, opts?: {
|
|
17
|
-
filterVerifiableCredential: boolean;
|
|
18
|
-
}): string[];
|
|
19
15
|
export declare function credentialsSupportedV8ToV13(supportedV8: CredentialSupportedTypeV1_0_08): Record<string, CredentialConfigurationSupported>;
|
|
20
16
|
export declare function credentialSupportedV8ToV13(key: string, supportedV8: CredentialSupportedV1_0_08): Record<string, CredentialConfigurationSupported>;
|
|
21
17
|
export declare function getIssuerDisplays(metadata: CredentialIssuerMetadata | IssuerMetadata, opts?: {
|
|
@@ -25,10 +21,4 @@ export declare function getIssuerDisplays(metadata: CredentialIssuerMetadata | I
|
|
|
25
21
|
* TODO check again when WAL-617 is done to replace how we get the issuer name.
|
|
26
22
|
*/
|
|
27
23
|
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;
|
|
33
|
-
export declare function getTypesFromCredentialOffer(offer: UniformCredentialOfferRequest | CredentialOfferPayload | UniformCredentialOfferPayload): Array<Array<string>> | undefined;
|
|
34
24
|
//# 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":"AACA,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,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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.getIssuerName = exports.getIssuerDisplays = exports.credentialSupportedV8ToV13 = exports.credentialsSupportedV8ToV13 = 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 = getTypesFromObject(config);
|
|
88
|
+
const types = (0, index_1.getTypesFromObject)(config);
|
|
89
89
|
if (!isTypeMatch) {
|
|
90
90
|
if (normalizedTypes.length === 1 && config.id === normalizedTypes[0]) {
|
|
91
91
|
isTypeMatch = true;
|
|
@@ -128,29 +128,6 @@ 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;
|
|
154
131
|
function credentialsSupportedV8ToV13(supportedV8) {
|
|
155
132
|
const credentialConfigsSupported = {};
|
|
156
133
|
Object.entries(supportedV8).flatMap((entry) => {
|
|
@@ -196,53 +173,4 @@ function getIssuerName(url, credentialIssuerMetadata) {
|
|
|
196
173
|
return url;
|
|
197
174
|
}
|
|
198
175
|
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;
|
|
226
|
-
function getTypesFromCredentialOffer(offer) {
|
|
227
|
-
if ('credentials' in offer && Array.isArray(offer.credentials)) {
|
|
228
|
-
return offer.credentials.map((cred) => getTypesFromObject(cred)).filter((cred) => cred !== undefined);
|
|
229
|
-
}
|
|
230
|
-
else if ('credential_configuration_ids' in offer && Array.isArray(offer.credential_configuration_ids)) {
|
|
231
|
-
return offer.credential_configuration_ids.map((id) => [id]);
|
|
232
|
-
}
|
|
233
|
-
else if ('credential_offer' in offer && offer.credential_offer) {
|
|
234
|
-
return getTypesFromCredentialOffer(offer.credential_offer);
|
|
235
|
-
}
|
|
236
|
-
else if ('credential_type' in offer && offer.credential_type) {
|
|
237
|
-
if (typeof offer.credential_type === 'string') {
|
|
238
|
-
return [[offer.credential_type]];
|
|
239
|
-
}
|
|
240
|
-
else if (Array.isArray(offer.credential_type)) {
|
|
241
|
-
return [offer.credential_type];
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
index_1.VCI_LOG_COMMON.warning('Could not deduce credential types from offer. Probably a failure down the line will happen!');
|
|
245
|
-
return undefined;
|
|
246
|
-
}
|
|
247
|
-
exports.getTypesFromCredentialOffer = getTypesFromCredentialOffer;
|
|
248
176
|
//# 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,2 +1,18 @@
|
|
|
1
|
+
import { AuthorizationDetails, CredentialOfferPayload, UniformCredentialOfferPayload, UniformCredentialOfferRequest } from '../index';
|
|
2
|
+
import { CredentialConfigurationSupported, CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition } from '../types';
|
|
1
3
|
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[];
|
|
2
18
|
//# sourceMappingURL=TypeConversionUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
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
|
+
{"version":3,"file":"TypeConversionUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/TypeConversionUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,6BAA6B,EAAE,6BAA6B,EAAkB,MAAM,UAAU,CAAC;AACtJ,OAAO,EAAE,gCAAgC,EAAE,2BAA2B,EAAE,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,UAAU,CAAC;AAElJ,eAAO,MAAM,oBAAoB,WAAY,MAAM,KAAG,MAAM,GAAG,SAE9D,CAAC;AAEF;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,gCAAgC,GAAG,qBAAqB,GAAG,2BAA2B,GAAG,gCAAgC,GAAG,MAAM,GAC1I,MAAM,EAAE,GAAG,SAAS,CAgBtB;AAED,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,6BAA6B,GAAG,sBAAsB,GAAG,6BAA6B,EAC7F,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAClC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAiBlC;AAED,wBAAgB,gCAAgC,CAAC,WAAW,EAAE,oBAAoB,EAAE,IAAI,CAAC,EAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAW7I;AAED,wBAAgB,+BAA+B,CAC7C,mBAAmB,EAAE,gCAAgC,EACrD,IAAI,CAAC,EAAE;IAAE,0BAA0B,EAAE,OAAO,CAAA;CAAE,YAuB/C"}
|
|
@@ -1,8 +1,96 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getNumberOrUndefined = void 0;
|
|
3
|
+
exports.getTypesFromCredentialSupported = exports.getTypesFromAuthorizationDetails = exports.getTypesFromCredentialOffer = exports.getTypesFromObject = exports.getNumberOrUndefined = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
4
5
|
const getNumberOrUndefined = (input) => {
|
|
5
6
|
return input && !isNaN(+input) ? +input : undefined;
|
|
6
7
|
};
|
|
7
8
|
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;
|
|
8
96
|
//# 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":"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"}
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
CredentialDefinitionV1_0_13,
|
|
3
|
-
CredentialOfferFormat,
|
|
4
|
-
CredentialOfferPayload,
|
|
5
|
-
JsonLdIssuerCredentialDefinition,
|
|
6
|
-
UniformCredentialOfferPayload,
|
|
7
|
-
UniformCredentialOfferRequest,
|
|
8
|
-
VCI_LOG_COMMON,
|
|
9
|
-
} from '../index';
|
|
1
|
+
import { getTypesFromObject, VCI_LOG_COMMON } from '../index';
|
|
10
2
|
import {
|
|
11
3
|
AuthorizationServerMetadata,
|
|
12
4
|
CredentialConfigurationSupported,
|
|
@@ -157,33 +149,6 @@ export function getSupportedCredential(opts?: {
|
|
|
157
149
|
throw Error(`Either < v11 configurations or V13 configurations should have been filtered at this point`);
|
|
158
150
|
}
|
|
159
151
|
|
|
160
|
-
export function getTypesFromCredentialSupported(
|
|
161
|
-
credentialSupported: CredentialConfigurationSupported,
|
|
162
|
-
opts?: { filterVerifiableCredential: boolean },
|
|
163
|
-
) {
|
|
164
|
-
let types: string[] = [];
|
|
165
|
-
if (
|
|
166
|
-
credentialSupported.format === 'jwt_vc_json' ||
|
|
167
|
-
credentialSupported.format === 'jwt_vc' ||
|
|
168
|
-
credentialSupported.format === 'jwt_vc_json-ld' ||
|
|
169
|
-
credentialSupported.format === 'ldp_vc'
|
|
170
|
-
) {
|
|
171
|
-
types = getTypesFromObject(credentialSupported) ?? [];
|
|
172
|
-
} else if (credentialSupported.format === 'vc+sd-jwt') {
|
|
173
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
174
|
-
// @ts-ignore
|
|
175
|
-
types = [credentialSupported.vct];
|
|
176
|
-
}
|
|
177
|
-
|
|
178
|
-
if (!types || types.length === 0) {
|
|
179
|
-
throw Error('Could not deduce types from credential supported');
|
|
180
|
-
}
|
|
181
|
-
if (opts?.filterVerifiableCredential) {
|
|
182
|
-
return types.filter((type) => type !== 'VerifiableCredential');
|
|
183
|
-
}
|
|
184
|
-
return types;
|
|
185
|
-
}
|
|
186
|
-
|
|
187
152
|
export function credentialsSupportedV8ToV13(supportedV8: CredentialSupportedTypeV1_0_08): Record<string, CredentialConfigurationSupported> {
|
|
188
153
|
const credentialConfigsSupported: Record<string, CredentialConfigurationSupported> = {};
|
|
189
154
|
Object.entries(supportedV8).flatMap((entry) => {
|
|
@@ -238,47 +203,3 @@ export function getIssuerName(
|
|
|
238
203
|
}
|
|
239
204
|
return url;
|
|
240
205
|
}
|
|
241
|
-
|
|
242
|
-
/**
|
|
243
|
-
* The specs had many places where types could be expressed. This method ensures we get them in any way possible
|
|
244
|
-
* @param subject
|
|
245
|
-
*/
|
|
246
|
-
export function getTypesFromObject(
|
|
247
|
-
subject: CredentialConfigurationSupported | CredentialOfferFormat | CredentialDefinitionV1_0_13 | JsonLdIssuerCredentialDefinition | string,
|
|
248
|
-
): string[] | undefined {
|
|
249
|
-
if (subject === undefined) {
|
|
250
|
-
return undefined;
|
|
251
|
-
} else if (typeof subject === 'string') {
|
|
252
|
-
return [subject];
|
|
253
|
-
} else if ('credential_definition' in subject && subject.credential_definition) {
|
|
254
|
-
return getTypesFromObject(subject.credential_definition);
|
|
255
|
-
} else if ('types' in subject && subject.types) {
|
|
256
|
-
return Array.isArray(subject.types) ? subject.types : [subject.types];
|
|
257
|
-
} else if ('type' in subject && subject.type) {
|
|
258
|
-
return Array.isArray(subject.type) ? subject.type : [subject.type];
|
|
259
|
-
} else if ('vct' in subject && subject.vct) {
|
|
260
|
-
return [subject.vct];
|
|
261
|
-
}
|
|
262
|
-
VCI_LOG_COMMON.warning('Could not deduce credential types. Probably a failure down the line will happen!');
|
|
263
|
-
return undefined;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
export function getTypesFromCredentialOffer(
|
|
267
|
-
offer: UniformCredentialOfferRequest | CredentialOfferPayload | UniformCredentialOfferPayload,
|
|
268
|
-
): Array<Array<string>> | undefined {
|
|
269
|
-
if ('credentials' in offer && Array.isArray(offer.credentials)) {
|
|
270
|
-
return offer.credentials.map((cred) => getTypesFromObject(cred)).filter((cred): cred is string[] => cred !== undefined);
|
|
271
|
-
} else if ('credential_configuration_ids' in offer && Array.isArray(offer.credential_configuration_ids)) {
|
|
272
|
-
return offer.credential_configuration_ids.map((id) => [id]);
|
|
273
|
-
} else if ('credential_offer' in offer && offer.credential_offer) {
|
|
274
|
-
return getTypesFromCredentialOffer(offer.credential_offer);
|
|
275
|
-
} else if ('credential_type' in offer && offer.credential_type) {
|
|
276
|
-
if (typeof offer.credential_type === 'string') {
|
|
277
|
-
return [[offer.credential_type]];
|
|
278
|
-
} else if (Array.isArray(offer.credential_type)) {
|
|
279
|
-
return [offer.credential_type];
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
VCI_LOG_COMMON.warning('Could not deduce credential types from offer. Probably a failure down the line will happen!');
|
|
283
|
-
return undefined;
|
|
284
|
-
}
|
|
@@ -1,3 +1,92 @@
|
|
|
1
|
+
import { AuthorizationDetails, CredentialOfferPayload, UniformCredentialOfferPayload, UniformCredentialOfferRequest, VCI_LOG_COMMON } from '../index';
|
|
2
|
+
import { CredentialConfigurationSupported, CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition } from '../types';
|
|
3
|
+
|
|
1
4
|
export const getNumberOrUndefined = (input?: string): number | undefined => {
|
|
2
5
|
return input && !isNaN(+input) ? +input : undefined;
|
|
3
6
|
};
|
|
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
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-common",
|
|
3
|
-
"version": "0.12.1-next.
|
|
3
|
+
"version": "0.12.1-next.4+40ad1de",
|
|
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": "40ad1ded998168e2703daeddc3a3afc78c9b19a1"
|
|
53
53
|
}
|