@affinidi/tools-openapi
Version:
SDK core monorepo for affinity DID solution
33 lines (32 loc) • 1.94 kB
TypeScript
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 {};