@sphereon/ssi-sdk.siopv2-oid4vp-rp-rest-api
Version:
68 lines (56 loc) • 3.25 kB
text/typescript
import { CreateAuthorizationRequestPayload, CreateAuthorizationResponsePayload } from '@sphereon/did-auth-siop'
import { GenericAuthArgs, ISingleEndpointOpts } from '@sphereon/ssi-express-support'
import { IPDManager } from '@sphereon/ssi-sdk.pd-manager'
import { AuthorizationRequestStateStatus, AuthorizationResponseStateStatus } from '@sphereon/ssi-sdk.siopv2-oid4vp-common'
import { ISIOPv2RP } from '@sphereon/ssi-sdk.siopv2-oid4vp-rp-auth'
import { IAgentContext, ICredentialVerifier } from '@veramo/core'
import { Request, Response } from 'express'
import { QRCodeOpts } from './QRCode.types'
import { VerifiedData } from '@sphereon/did-auth-siop'
export type SiopFeatures = 'rp-status' | 'siop'
export interface ISIOPv2RPRestAPIOpts {
enableFeatures?: SiopFeatures[]
endpointOpts?: {
basePath?: string
trustProxy?: boolean | Array<string>
globalAuth?: GenericAuthArgs & { secureSiopEndpoints?: boolean }
webappCreateAuthRequest?: ICreateAuthRequestWebappEndpointOpts // Override the create Auth Request path. Needs to contain correlationId and definitionId path params!
webappDeleteAuthRequest?: ISingleEndpointOpts // Override the delete Auth Request path. Needs to contain correlationId and definitionId path params!
webappGetDefinitions?: ISingleEndpointOpts // Override the delete Auth Request path. Needs to contain correlationId and definitionId path params!
webappAuthStatus?: ISingleEndpointOpts // Override the Auth status path. CorrelationId and definitionId need to come from the body!
siopVerifyAuthResponse?: ISingleEndpointOpts // Override the siop Verify Response path. Needs to contain correlationId and definitionId path params!
siopGetAuthRequest?: ISingleEndpointOpts // Override the siop get Auth Request path. Needs to contain correlationId and definitionId path params!
}
}
export interface ICreateAuthRequestWebappEndpointOpts extends ISingleEndpointOpts {
siopBaseURI?: string
qrCodeOpts?: QRCodeOpts
webappAuthStatusPath?: string
webappBaseURI?: string
responseRedirectURI?: string
}
export type IRequiredPlugins = ICredentialVerifier & ISIOPv2RP & IPDManager
export type IRequiredContext = IAgentContext<IRequiredPlugins>
export type CreateAuthorizationRequestPayloadRequest = Request<Record<string, never>, any, CreateAuthorizationRequestPayload, Record<string, never>>
export type CreateAuthorizationResponsePayloadResponse = Response<CreateAuthorizationResponsePayload>
export type DeleteAuthorizationRequest = Request<DeleteAuthorizationRequestPathParameters, any, Record<string, any>, Record<string, any>>
export type DeleteAuthorizationRequestPathParameters = {
correlationId: string
}
export type GetAuthorizationRequestStatus = Request<GetAuthorizationRequestStatusPathParameters, any, Record<string, any>, Record<string, any>>
export type GetAuthorizationRequestStatusPathParameters = {
correlationId: string
}
export type RequestError = {
status: number
message: string
error_details?: string
}
export interface AuthStatusResponse {
status: AuthorizationRequestStateStatus | AuthorizationResponseStateStatus
correlation_id: string
query_id: string
last_updated: number
verified_data?: VerifiedData
error?: RequestError
}