UNPKG

@blockchain-lab-um/oidc-types

Version:

Types for OIDC.

76 lines (73 loc) 2.33 kB
import { W3CVerifiablePresentation } from '@veramo/core'; import { AuthorizationRequestOAuth2, AuthorizationResponseOAuth2 } from './oauth2.js'; interface AuthorizationRequest extends Omit<AuthorizationRequestOAuth2, 'response_type'> { response_type: 'id_token' | 'vp_token' | 'code' | 'vp_token id_token'; nonce: string; presentation_definition?: PresentationDefinition; presentation_definition_uri?: string; authorization_details?: string; client_metadata?: string; client_metadata_uri?: string; id_token_type?: string; response_mode?: 'post' | 'fragment' | 'query'; display?: string; prompt?: string; max_age?: number; ui_locales?: string; id_token_hint?: string; acr_values?: string; claims?: string; request?: string; request_uri?: string; code_challenge?: string; code_challenge_method?: string; } type AuthorizationResponse = Omit<AuthorizationResponseOAuth2, 'code'> & { presentation_submission?: PresentationSubmission; vp_token?: W3CVerifiablePresentation | W3CVerifiablePresentation[]; id_token?: string; }; type FormatKeysJwt = 'jwt' | 'jwt_vc' | 'jwt_vp'; type FormatKeyLdp = 'ldp' | 'ldp_vc' | 'ldp_vp'; type JWTAlgorithm = 'ES256K' | 'EdDSA' | 'ES384'; type LDPAlgorithm = 'JsonWebSignature2020' | 'Ed25519Signature2018' | 'EcdsaSecp256k1Signature2019' | 'RsaSignature2018'; type Format = Partial<Record<FormatKeysJwt, { alg: JWTAlgorithm[]; }> | Record<FormatKeyLdp, { proof_type: LDPAlgorithm[]; }>>; interface Field { path: string[]; id?: string; purpose?: string; name?: string; filter?: any; } interface Constraints { limit_disclosure?: 'required' | 'preferred'; fields?: Field[]; } interface InputDescriptor { id: string; name?: string; purpose?: string; format?: Format; constraints: Constraints; } interface PresentationDefinition { id: string; format?: Format; input_descriptors: InputDescriptor[]; } interface PresentationSubmission { id: string; definition_id: string; descriptor_map: DescriptorMap[]; } interface DescriptorMap { id: string; format: string; path: string; path_nested?: DescriptorMap; } export type { AuthorizationRequest, AuthorizationResponse, PresentationDefinition, PresentationSubmission };