UNPKG

@did-connect/handler

Version:

Abstract handler for did-connect relay server

51 lines (50 loc) 1.94 kB
import { SessionStorage } from '@did-connect/storage'; import { Authenticator } from '@did-connect/authenticator'; import type { Promisable } from 'type-fest'; import type { TAppResponseSigned, TWalletResponseSigned } from '@did-connect/authenticator'; import type { TSession, TAuthContext, TWalletInfo, TLocaleCode } from '@did-connect/types'; export type TLogger = { debug(...args: any[]): void; info(...args: any[]): void; error(...args: any[]): void; warn(...args: any[]): void; }; export type TSessionCreateContext = TAuthContext & { body: TSession; headers: { [key: string]: string; }; }; export type TSessionUpdateResult = TSession | { code: string; error?: string; }; export type TSessionUpdateContext = TAuthContext & { session: TSession; body: TSession & { status?: 'error' | 'canceled'; error?: string; }; }; export type TWalletHandlerContext = TAuthContext & { session: TSession; body: TWalletResponseSigned; locale: TLocaleCode; }; export interface THandlers { handleSessionCreate(context: TSessionCreateContext): Promisable<TSessionUpdateResult>; handleSessionRead(sessionId: string): Promisable<TSession>; handleSessionUpdate(context: TSessionUpdateContext): Promisable<TSessionUpdateResult>; handleSessionDelete(context: TSessionUpdateContext): Promisable<TSessionUpdateResult>; handleClaimRequest(context: TWalletHandlerContext): Promisable<TAppResponseSigned>; handleClaimResponse(context: TWalletHandlerContext): Promisable<TAppResponseSigned>; parseWalletUA(ua: string): TWalletInfo; wsServer: any; } export declare function createSocketServer(logger: TLogger, pathname: string): any; export declare function createHandlers({ storage, authenticator, logger, socketPathname, }: { storage: SessionStorage; authenticator: Authenticator; logger?: TLogger; socketPathname?: string; }): THandlers;