Skip to content

Commit 31597bc

Browse files
committed
chore: getTypesFromObject improvements
1 parent 53e027b commit 31597bc

3 files changed

Lines changed: 29 additions & 8 deletions

File tree

packages/client/lib/AuthorizationCodeClient.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -35,23 +35,26 @@ export async function createSignedAuthRequestWhenNeeded(requestObject: Record<st
3535
} else if (!opts.kid) {
3636
throw Error(`No kid found, whilst request object mode was set to ${opts.requestObjectMode}`);
3737
}
38-
let client_metadata: any
38+
let client_metadata: any;
3939
if (opts.clientMetadata || opts.jwksUri) {
4040
client_metadata = opts.clientMetadata ?? {};
4141
if (opts.jwksUri) {
4242
client_metadata['jwks_uri'] = opts.jwksUri;
4343
}
4444
}
45-
let authorization_details = requestObject['authorization_details']
45+
let authorization_details = requestObject['authorization_details'];
4646
if (typeof authorization_details === 'string') {
4747
authorization_details = JSON.parse(requestObject.authorization_details);
4848
}
4949
if (!requestObject.aud && opts.aud) {
5050
requestObject.aud = opts.aud;
5151
}
52-
const iss = requestObject.iss ?? opts.iss ?? requestObject.client_id
52+
const iss = requestObject.iss ?? opts.iss ?? requestObject.client_id;
5353

54-
const jwt: Jwt = { header: { alg: 'ES256', kid: opts.kid, typ: 'jwt' }, payload: {...requestObject, iss, authorization_details, ...(client_metadata && {client_metadata})} };
54+
const jwt: Jwt = {
55+
header: { alg: 'ES256', kid: opts.kid, typ: 'jwt' },
56+
payload: { ...requestObject, iss, authorization_details, ...(client_metadata && { client_metadata }) },
57+
};
5558
const pop = await ProofOfPossessionBuilder.fromJwt({
5659
jwt,
5760
callbacks: opts.signCallbacks,

packages/common/lib/functions/IssuerMetadataUtils.ts

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,11 @@
1-
import { CredentialDefinitionV1_0_13, CredentialOfferFormat, JsonLdIssuerCredentialDefinition, VCI_LOG_COMMON } from '../index';
1+
import {
2+
CredentialDefinitionV1_0_13,
3+
CredentialOfferFormat,
4+
CredentialOfferPayload,
5+
JsonLdIssuerCredentialDefinition,
6+
UniformCredentialOfferRequest,
7+
VCI_LOG_COMMON,
8+
} from '../index';
29
import {
310
AuthorizationServerMetadata,
411
CredentialConfigurationSupported,
@@ -236,7 +243,14 @@ export function getIssuerName(
236243
* @param subject
237244
*/
238245
export function getTypesFromObject(
239-
subject: CredentialConfigurationSupported | CredentialOfferFormat | CredentialDefinitionV1_0_13 | JsonLdIssuerCredentialDefinition | string,
246+
subject:
247+
| CredentialConfigurationSupported
248+
| CredentialOfferFormat
249+
| CredentialOfferPayload
250+
| CredentialDefinitionV1_0_13
251+
| JsonLdIssuerCredentialDefinition
252+
| UniformCredentialOfferRequest
253+
| string,
240254
): string[] | undefined {
241255
if (subject === undefined) {
242256
return undefined;
@@ -250,6 +264,10 @@ export function getTypesFromObject(
250264
return Array.isArray(subject.type) ? subject.type : [subject.type];
251265
} else if ('vct' in subject && subject.vct) {
252266
return [subject.vct];
267+
} else if ('credentials' in subject && subject.credentials) {
268+
return getTypesFromObject(subject.credentials);
269+
} else if ('credential_offer' in subject && subject.credential_offer) {
270+
return getTypesFromObject(subject.credential_offer);
253271
}
254272

255273
VCI_LOG_COMMON.warning('Could not deduce credential types. Probably a failure down the line will happen!');

packages/common/lib/functions/ProofUtil.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,8 @@ const createJWT = (mode: PoPMode, jwtProps?: JwtProps, existingJwt?: Jwt): Jwt =
130130
: getJwtProperty<string | string[]>('aud', false, jwtProps?.aud, existingJwt?.payload?.aud);
131131
const iss =
132132
// mode === 'pop'
133-
getJwtProperty<string>('iss', false, jwtProps?.clientId, existingJwt?.payload?.iss)
134-
// : getJwtProperty<string>('iss', false, jwtProps?.issuer, existingJwt?.payload?.iss);
133+
getJwtProperty<string>('iss', false, jwtProps?.clientId, existingJwt?.payload?.iss);
134+
// : getJwtProperty<string>('iss', false, jwtProps?.issuer, existingJwt?.payload?.iss);
135135
const client_id = mode === 'jwt' ? getJwtProperty<string>('client_id', false, jwtProps?.clientId, existingJwt?.payload?.client_id) : undefined;
136136
const jti = getJwtProperty<string>('jti', false, jwtProps?.jti, existingJwt?.payload?.jti);
137137
const typ = getJwtProperty<string>('typ', true, jwtProps?.typ, existingJwt?.header?.typ, 'jwt');

0 commit comments

Comments
 (0)