@sphereon/jarm
Version:
Sphereon JARM
24 lines (17 loc) • 855 B
text/typescript
import * as v from 'valibot';
export const oAuthResponseTypes = v.picklist(['code', 'token']);
// NOTE: MAKE SURE THAT THE RESPONSE TYPES ARE SORTED CORRECTLY
export const oAuthMRTEPResponseTypes = v.picklist(['none', 'id_token', 'code token', 'code id_token', 'id_token token', 'code id_token token']);
export const openid4vpResponseTypes = v.picklist(['vp_token', 'id_token vp_token']);
export const vTransformedResponseTypes = v.picklist([
...openid4vpResponseTypes.options,
...oAuthResponseTypes.options,
...oAuthMRTEPResponseTypes.options,
]);
export const vResponseType = v.pipe(
v.string(),
v.transform((val) => val.split(' ').sort().join(' ')),
vTransformedResponseTypes,
);
export type ResponseType = v.InferInput<typeof vTransformedResponseTypes>;
export type ResponseTypeOut = v.InferOutput<typeof vTransformedResponseTypes>;