import { AdapterFactory, Configuration } from 'oidc-provider'; import { ModuleMetadata, Type } from '@nestjs/common'; import { VersionValue } from '@nestjs/common/interfaces'; import * as oidc from 'oidc-provider'; export interface OidcConfiguration extends Configuration { } export interface OidcModuleOptions { path?: string; version?: VersionValue; issuer: string; oidc?: OidcConfiguration; proxy?: boolean; factory?: (issuer: string, config?: Configuration) => oidc.Provider | Promise; } export interface OidcModuleOptionsFactory { /** * OidcModule options factory */ createModuleOptions(): OidcModuleOptions | Promise; /** * Adapter factory */ createAdapterFactory?(): AdapterFactory | Promise; } export interface OidcModuleAsyncOptions extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => OidcModuleOptions | Promise; inject?: any[]; }