@sphereon/oid4vci-common 0.6.0 → 0.6.1-next.6
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/HttpUtils.d.ts.map +1 -1
- package/dist/functions/HttpUtils.js.map +1 -1
- package/dist/functions/IssuerMetadataUtils.js +4 -4
- package/dist/functions/IssuerMetadataUtils.js.map +1 -1
- package/lib/__tests__/CredentialOfferUtil.spec.ts +5 -5
- package/lib/functions/CredentialOfferUtil.ts +6 -6
- package/lib/functions/Encoding.ts +1 -1
- package/lib/functions/HttpUtils.ts +25 -7
- package/lib/functions/IssuerMetadataUtils.ts +5 -5
- package/package.json +5 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/HttpUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,cAAc,EAAE,MAAM,UAAU,CAAC;AAIpD,eAAO,MAAM,OAAO,WACb,MAAM,SACJ;
|
|
1
|
+
{"version":3,"file":"HttpUtils.d.ts","sourceRoot":"","sources":["../../lib/functions/HttpUtils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAY,cAAc,EAAE,MAAM,UAAU,CAAC;AAIpD,eAAO,MAAM,OAAO,WACb,MAAM,SACJ;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,+BAGF,CAAC;AAEF,eAAO,MAAM,QAAQ,WACd,MAAM,QACL,QAAQ,SACP;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,+BAGF,CAAC;AAEF,eAAO,MAAM,IAAI,WACV,MAAM,SACJ,QAAQ,SACR;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACtC,+BAGF,CAAC;AAkEF,eAAO,MAAM,UAAU,QAAS,MAAM,KAAG,OAYxC,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,MAAM,QAAQ,MAAM,KAAG,MAEtD,CAAC;AAEF,eAAO,MAAM,OAAO,UAAW,MAAM,QAAQ,MAAM,KAAG,MAErD,CAAC;AAEF,eAAO,MAAM,SAAS,UAAW,MAAM,QAAQ,MAAM,KAAG,MAEvD,CAAC;AAEF,eAAO,MAAM,SAAS,gDAEb;IACL,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,MAwCF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpUtils.js","sourceRoot":"","sources":["../../lib/functions/HttpUtils.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAAoC;AACpC,kDAA0B;AAE1B,oCAAoD;AAEpD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,0BAA0B,CAAC,CAAC;AAEzC,MAAM,OAAO,GAAG,CACrB,GAAW,EACX,
|
|
1
|
+
{"version":3,"file":"HttpUtils.js","sourceRoot":"","sources":["../../lib/functions/HttpUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,15 +38,15 @@ function getSupportedCredentials(opts) {
|
|
|
38
38
|
const credentialSupportedOverlap = [];
|
|
39
39
|
for (const offerType of initiationTypes) {
|
|
40
40
|
if (typeof offerType === 'string') {
|
|
41
|
-
const supported = credentialsSupported.
|
|
41
|
+
const supported = credentialsSupported.filter((sup) => sup.id === offerType || sup.types.includes(offerType));
|
|
42
42
|
if (supported) {
|
|
43
|
-
credentialSupportedOverlap.push(supported);
|
|
43
|
+
credentialSupportedOverlap.push(...supported);
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
else {
|
|
47
|
-
const supported = credentialsSupported.
|
|
47
|
+
const supported = credentialsSupported.filter((sup) => arrayEqualsIgnoreOrder(sup.types, offerType.types) && sup.format === offerType.format);
|
|
48
48
|
if (supported) {
|
|
49
|
-
credentialSupportedOverlap.push(supported);
|
|
49
|
+
credentialSupportedOverlap.push(...supported);
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IssuerMetadataUtils.js","sourceRoot":"","sources":["../../lib/functions/IssuerMetadataUtils.ts"],"names":[],"mappings":";;;AAAA,oCASkB;AAElB,SAAgB,uBAAuB,CAAC,IAKvC;IACC,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,CAAC;IACtC,IAAI,oBAA2C,CAAC;IAChD,IAAI,CAAC,cAAc,EAAE;QACnB,OAAO,EAAE,CAAC;KACX;IACD,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,EAAE,OAAO,EAAE,yBAAiB,CAAC,UAAU,EAAE,CAAC;IACtG,IAAI,OAAO,KAAK,yBAAiB,CAAC,UAAU,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,qBAAqB,CAAC,EAAE;QACpG,oBAAoB,GAAG,2BAA2B,CAAE,cAAwC,CAAC,qBAAqB,CAAC,CAAC;QACpH;;;;;;;;;kEAS0D;KAC3D;SAAM;QACL,oBAAoB,GAAI,cAA2C,CAAC,qBAAqB,CAAC;KAC3F;IAED,IAAI,oBAAoB,KAAK,SAAS,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3E,OAAO,EAAE,CAAC;KACX;SAAM,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3D,OAAO,oBAAoB,CAAC;KAC7B;IACD;;OAEG;IACH,MAAM,eAAe,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC;IAE1E,MAAM,0BAA0B,GAA0B,EAAE,CAAC;IAC7D,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE;QACvC,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;YACjC,MAAM,SAAS,GAAG,oBAAoB,CAAC,
|
|
1
|
+
{"version":3,"file":"IssuerMetadataUtils.js","sourceRoot":"","sources":["../../lib/functions/IssuerMetadataUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ describe('CredentialOfferUtil should', () => {
|
|
|
24
24
|
async () => {
|
|
25
25
|
expect(determineSpecVersionFromURI(INITIATE_QR_V8)).toEqual(OpenId4VCIVersion.VER_1_0_08);
|
|
26
26
|
},
|
|
27
|
-
UNIT_TEST_TIMEOUT
|
|
27
|
+
UNIT_TEST_TIMEOUT,
|
|
28
28
|
);
|
|
29
29
|
|
|
30
30
|
it(
|
|
@@ -32,17 +32,17 @@ describe('CredentialOfferUtil should', () => {
|
|
|
32
32
|
async () => {
|
|
33
33
|
expect(determineSpecVersionFromURI(CREDENTIAL_OFFER_QR_V11)).toEqual(OpenId4VCIVersion.VER_1_0_11);
|
|
34
34
|
},
|
|
35
|
-
UNIT_TEST_TIMEOUT
|
|
35
|
+
UNIT_TEST_TIMEOUT,
|
|
36
36
|
);
|
|
37
37
|
|
|
38
38
|
it(
|
|
39
39
|
'get exception for mixed attributes in URL',
|
|
40
40
|
async () => {
|
|
41
41
|
expect(() => determineSpecVersionFromURI(INITIATE_QR_DATA_MIXED_V9)).toThrow(
|
|
42
|
-
Error("Invalid param. Some keys have been used from version: 1008 version while 'credential_issuer' is used from version: 1011")
|
|
42
|
+
Error("Invalid param. Some keys have been used from version: 1008 version while 'credential_issuer' is used from version: 1011"),
|
|
43
43
|
);
|
|
44
44
|
},
|
|
45
|
-
UNIT_TEST_TIMEOUT
|
|
45
|
+
UNIT_TEST_TIMEOUT,
|
|
46
46
|
);
|
|
47
47
|
|
|
48
48
|
it(
|
|
@@ -50,6 +50,6 @@ describe('CredentialOfferUtil should', () => {
|
|
|
50
50
|
async () => {
|
|
51
51
|
expect(determineSpecVersionFromURI('test://uri')).toEqual(OpenId4VCIVersion.VER_1_0_11);
|
|
52
52
|
},
|
|
53
|
-
UNIT_TEST_TIMEOUT
|
|
53
|
+
UNIT_TEST_TIMEOUT,
|
|
54
54
|
);
|
|
55
55
|
});
|
|
@@ -144,7 +144,7 @@ export async function toUniformCredentialOfferRequest(
|
|
|
144
144
|
opts?: {
|
|
145
145
|
resolve?: boolean;
|
|
146
146
|
version?: OpenId4VCIVersion;
|
|
147
|
-
}
|
|
147
|
+
},
|
|
148
148
|
): Promise<UniformCredentialOfferRequest> {
|
|
149
149
|
const version = opts?.version ?? determineSpecVersionFromOffer(offer);
|
|
150
150
|
let originalCredentialOffer = offer.credential_offer;
|
|
@@ -180,7 +180,7 @@ export async function assertedUniformCredentialOffer(
|
|
|
180
180
|
origCredentialOffer: UniformCredentialOffer,
|
|
181
181
|
opts?: {
|
|
182
182
|
resolve?: boolean;
|
|
183
|
-
}
|
|
183
|
+
},
|
|
184
184
|
): Promise<AssertedUniformCredentialOffer> {
|
|
185
185
|
const credentialOffer = JSON.parse(JSON.stringify(origCredentialOffer));
|
|
186
186
|
if (credentialOffer.credential_offer_uri && !credentialOffer.credential_offer) {
|
|
@@ -212,7 +212,7 @@ export function toUniformCredentialOfferPayload(
|
|
|
212
212
|
offer: CredentialOfferPayload,
|
|
213
213
|
opts?: {
|
|
214
214
|
version?: OpenId4VCIVersion;
|
|
215
|
-
}
|
|
215
|
+
},
|
|
216
216
|
): UniformCredentialOfferPayload {
|
|
217
217
|
// todo: create test to check idempotence once a payload is already been made uniform.
|
|
218
218
|
const version = opts?.version ?? determineSpecVersionFromOffer(offer);
|
|
@@ -267,7 +267,7 @@ export function toUniformCredentialOfferPayload(
|
|
|
267
267
|
|
|
268
268
|
export function determineFlowType(
|
|
269
269
|
suppliedOffer: AssertedUniformCredentialOffer | UniformCredentialOfferPayload,
|
|
270
|
-
version: OpenId4VCIVersion
|
|
270
|
+
version: OpenId4VCIVersion,
|
|
271
271
|
): AuthzFlowType[] {
|
|
272
272
|
const payload: UniformCredentialOfferPayload = getCredentialOfferPayload(suppliedOffer);
|
|
273
273
|
const supportedFlows: AuthzFlowType[] = [];
|
|
@@ -300,7 +300,7 @@ export function determineGrantTypes(
|
|
|
300
300
|
| UniformCredentialOfferPayload
|
|
301
301
|
| ({
|
|
302
302
|
grants: Grant;
|
|
303
|
-
} & Record<never, never>)
|
|
303
|
+
} & Record<never, never>),
|
|
304
304
|
): GrantTypes[] {
|
|
305
305
|
let grants: Grant | undefined;
|
|
306
306
|
if ('grants' in offer && offer.grants) {
|
|
@@ -337,6 +337,6 @@ function recordVersion(currentVersion: OpenId4VCIVersion, matchingVersion: OpenI
|
|
|
337
337
|
}
|
|
338
338
|
|
|
339
339
|
throw new Error(
|
|
340
|
-
`Invalid param. Some keys have been used from version: ${currentVersion} version while '${key}' is used from version: ${matchingVersion}
|
|
340
|
+
`Invalid param. Some keys have been used from version: ${currentVersion} version while '${key}' is used from version: ${matchingVersion}`,
|
|
341
341
|
);
|
|
342
342
|
}
|
|
@@ -7,7 +7,13 @@ const debug = Debug('sphereon:openid4vci:http');
|
|
|
7
7
|
|
|
8
8
|
export const getJson = async <T>(
|
|
9
9
|
URL: string,
|
|
10
|
-
opts?: {
|
|
10
|
+
opts?: {
|
|
11
|
+
bearerToken?: string;
|
|
12
|
+
contentType?: string;
|
|
13
|
+
accept?: string;
|
|
14
|
+
customHeaders?: Record<string, string>;
|
|
15
|
+
exceptionOnHttpErrorStatus?: boolean;
|
|
16
|
+
},
|
|
11
17
|
): Promise<OpenIDResponse<T>> => {
|
|
12
18
|
return await openIdFetch(URL, undefined, { method: 'GET', ...opts });
|
|
13
19
|
};
|
|
@@ -15,7 +21,13 @@ export const getJson = async <T>(
|
|
|
15
21
|
export const formPost = async <T>(
|
|
16
22
|
url: string,
|
|
17
23
|
body: BodyInit,
|
|
18
|
-
opts?: {
|
|
24
|
+
opts?: {
|
|
25
|
+
bearerToken?: string;
|
|
26
|
+
contentType?: string;
|
|
27
|
+
accept?: string;
|
|
28
|
+
customHeaders?: Record<string, string>;
|
|
29
|
+
exceptionOnHttpErrorStatus?: boolean;
|
|
30
|
+
},
|
|
19
31
|
): Promise<OpenIDResponse<T>> => {
|
|
20
32
|
return await post(url, body, opts?.contentType ? { ...opts } : { contentType: Encoding.FORM_URL_ENCODED, ...opts });
|
|
21
33
|
};
|
|
@@ -23,7 +35,13 @@ export const formPost = async <T>(
|
|
|
23
35
|
export const post = async <T>(
|
|
24
36
|
url: string,
|
|
25
37
|
body?: BodyInit,
|
|
26
|
-
opts?: {
|
|
38
|
+
opts?: {
|
|
39
|
+
bearerToken?: string;
|
|
40
|
+
contentType?: string;
|
|
41
|
+
accept?: string;
|
|
42
|
+
customHeaders?: Record<string, string>;
|
|
43
|
+
exceptionOnHttpErrorStatus?: boolean;
|
|
44
|
+
},
|
|
27
45
|
): Promise<OpenIDResponse<T>> => {
|
|
28
46
|
return await openIdFetch(url, body, { method: 'POST', ...opts });
|
|
29
47
|
};
|
|
@@ -38,7 +56,7 @@ const openIdFetch = async <T>(
|
|
|
38
56
|
accept?: string;
|
|
39
57
|
customHeaders?: Record<string, string>;
|
|
40
58
|
exceptionOnHttpErrorStatus?: boolean;
|
|
41
|
-
}
|
|
59
|
+
},
|
|
42
60
|
): Promise<OpenIDResponse<T>> => {
|
|
43
61
|
const headers: Record<string, string> = opts?.customHeaders ?? {};
|
|
44
62
|
if (opts?.bearerToken) {
|
|
@@ -50,7 +68,7 @@ const openIdFetch = async <T>(
|
|
|
50
68
|
if (headers['Content-Type']) {
|
|
51
69
|
if (opts?.contentType && opts.contentType !== headers['Content-Type']) {
|
|
52
70
|
throw Error(
|
|
53
|
-
`Mismatch in content-types from custom headers (${headers['Content-Type']}) and supplied content type option (${opts.contentType})
|
|
71
|
+
`Mismatch in content-types from custom headers (${headers['Content-Type']}) and supplied content type option (${opts.contentType})`,
|
|
54
72
|
);
|
|
55
73
|
}
|
|
56
74
|
} else {
|
|
@@ -101,7 +119,7 @@ export const isValidURL = (url: string): boolean => {
|
|
|
101
119
|
'(\\:\\d+)?(\\/[-a-z\\d%_.~+:]*)*' + // validate port and path
|
|
102
120
|
'(\\?[;&a-z\\d%_.~+=-]*)?' + // validate query string
|
|
103
121
|
'(\\#[-a-z\\d_]*)?$', // validate fragment locator
|
|
104
|
-
'i'
|
|
122
|
+
'i',
|
|
105
123
|
);
|
|
106
124
|
return urlPattern.test(url);
|
|
107
125
|
};
|
|
@@ -125,7 +143,7 @@ export const adjustUrl = <T extends string | URL>(
|
|
|
125
143
|
stripSlashStart?: boolean;
|
|
126
144
|
prepend?: string;
|
|
127
145
|
append?: string;
|
|
128
|
-
}
|
|
146
|
+
},
|
|
129
147
|
): T => {
|
|
130
148
|
let url = typeof urlOrPath === 'object' ? urlOrPath.toString() : (urlOrPath as string);
|
|
131
149
|
if (opts?.append) {
|
|
@@ -50,14 +50,14 @@ export function getSupportedCredentials(opts?: {
|
|
|
50
50
|
const credentialSupportedOverlap: CredentialSupported[] = [];
|
|
51
51
|
for (const offerType of initiationTypes) {
|
|
52
52
|
if (typeof offerType === 'string') {
|
|
53
|
-
const supported = credentialsSupported.
|
|
53
|
+
const supported = credentialsSupported.filter((sup) => sup.id === offerType || sup.types.includes(offerType));
|
|
54
54
|
if (supported) {
|
|
55
|
-
credentialSupportedOverlap.push(supported);
|
|
55
|
+
credentialSupportedOverlap.push(...supported);
|
|
56
56
|
}
|
|
57
57
|
} else {
|
|
58
|
-
const supported = credentialsSupported.
|
|
58
|
+
const supported = credentialsSupported.filter((sup) => arrayEqualsIgnoreOrder(sup.types, offerType.types) && sup.format === offerType.format);
|
|
59
59
|
if (supported) {
|
|
60
|
-
credentialSupportedOverlap.push(supported);
|
|
60
|
+
credentialSupportedOverlap.push(...supported);
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
63
|
}
|
|
@@ -104,7 +104,7 @@ export function credentialSupportedV8ToV11(key: string, supportedV8: CredentialS
|
|
|
104
104
|
export function getIssuerDisplays(metadata: CredentialIssuerMetadata | IssuerMetadataV1_0_08, opts?: { prefLocales: string[] }): MetadataDisplay[] {
|
|
105
105
|
const matchedDisplays =
|
|
106
106
|
metadata.display?.filter(
|
|
107
|
-
(item) => !opts?.prefLocales || opts.prefLocales.length === 0 || (item.locale && opts.prefLocales.includes(item.locale)) || !item.locale
|
|
107
|
+
(item) => !opts?.prefLocales || opts.prefLocales.length === 0 || (item.locale && opts.prefLocales.includes(item.locale)) || !item.locale,
|
|
108
108
|
) ?? [];
|
|
109
109
|
return matchedDisplays.sort((item) => (item.locale ? opts?.prefLocales.indexOf(item.locale) ?? 1 : Number.MAX_VALUE));
|
|
110
110
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/oid4vci-common",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1-next.6+a0f97de",
|
|
4
4
|
"description": "OpenID 4 Verifiable Credential Issuance Common Types",
|
|
5
5
|
"source": "lib/index.ts",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -9,12 +9,12 @@
|
|
|
9
9
|
"build": "tsc"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@sphereon/ssi-types": "
|
|
13
|
-
"cross-fetch": "^3.1.
|
|
12
|
+
"@sphereon/ssi-types": "0.14.2-next.30",
|
|
13
|
+
"cross-fetch": "^3.1.8",
|
|
14
14
|
"jwt-decode": "^3.1.2"
|
|
15
15
|
},
|
|
16
16
|
"devDependencies": {
|
|
17
|
-
"@types/jest": "^29.5.
|
|
17
|
+
"@types/jest": "^29.5.3",
|
|
18
18
|
"typescript": "5.0.4"
|
|
19
19
|
},
|
|
20
20
|
"engines": {
|
|
@@ -45,5 +45,5 @@
|
|
|
45
45
|
"publishConfig": {
|
|
46
46
|
"access": "public"
|
|
47
47
|
},
|
|
48
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "a0f97de78fa9d25d45580c2c06c336570f494328"
|
|
49
49
|
}
|