UNPKG

@affinidi/tools-openapi

Version:
33 lines (32 loc) 1.94 kB
import { ThisData as BasicThisData, ClientOptions } from './client'; import { DidAuthSession } from './didAuthSession'; export declare type DidAuthAdapterType = { readonly did: string; createDidAuthResponseToken(didAuthRequestToken: string): Promise<string>; isResponseTokenExpired(responseToken: string, requestTime: number): boolean; }; export declare type DidAuthConstructorOptions = ClientOptions & { didAuthAdapter: DidAuthAdapterType; }; declare type ThisData = BasicThisData & { didAuthSession: DidAuthSession; }; declare type BasicApiMethodType<TRequestOptions = any> = (this: BasicThisData, requestOptions: TRequestOptions) => Promise<unknown>; declare type ExtractOriginalRequestOptions<TMethod extends BasicApiMethodType> = TMethod extends BasicApiMethodType<infer U> ? U : never; declare type MappedMethod<TMethod extends BasicApiMethodType> = (this: ThisData, requestOptions: Omit<ExtractOriginalRequestOptions<TMethod>, 'authorization'>) => ReturnType<TMethod>; declare type DidAuthApiMethodType = (this: BasicThisData, requestOptions: { params: { audienceDid: string; }; }) => Promise<{ body: string; }>; declare type MappedMethods<TMethods extends Record<keyof TMethods, BasicApiMethodType>> = { [key in keyof TMethods]: MappedMethod<TMethods[key]>; }; export declare type GetDidAuthParams<TOperation extends MappedMethod<any>> = TOperation extends MappedMethod<infer UOriginalMethod> ? ExtractOriginalRequestOptions<UOriginalMethod>['params'] : never; export declare const wrapWithDidAuth: <TMethods extends Record<keyof TMethods, BasicApiMethodType<any>>>(didAuthMethod: DidAuthApiMethodType, methods: TMethods) => MappedMethods<TMethods>; export declare const createDidAuthClient: <TMethods>(methods: TMethods, didAuthSession: DidAuthSession, serviceUrl: string, otherOptions: ClientOptions) => TMethods & BasicThisData & { didAuthSession: DidAuthSession; }; export {};