import { AppConfigCommonDomainIAMAuthServiceConfigCompleteSettings, AppConfigCommonDomainIAMAuthServiceConfigInitiateSettings, AppConfigDomainIAMAuthenticationStep, GenericObject } from '@node-c/core'; import { IAMAuthenticationCompleteResult, IAMAuthenticationInitiateResult, IAMAuthenticationService, IAMAuthenticationType } from '../authentication'; import { IAMMFAType } from '../mfa'; import { IAMUserWithPermissionsData } from '../users'; export interface IAMAuthenticationManagerAuthenticateOptions { auth: { mfaType?: IAMMFAType; type: IAMAuthenticationType | string; } & AuthData; filters?: GenericObject; mainFilterField: string; rememberUser?: boolean; step?: AppConfigDomainIAMAuthenticationStep; } export type IAMAuthenticationManagerAuthenticateReturnData = | { accessToken: string; idToken: string; refreshToken?: string; user: UserData; } | { nextStepsRequired: boolean }; export type IAMAuthenticationManagerExecuteStepData = Omit< IAMAuthenticationManagerAuthenticateOptions, 'rememberUser' | 'step' >; export interface IAMAuthenticationManagerExecuteStepOptions { authService: IAMAuthenticationService; name: AppConfigDomainIAMAuthenticationStep; stepConfig: | AppConfigCommonDomainIAMAuthServiceConfigCompleteSettings | AppConfigCommonDomainIAMAuthServiceConfigInitiateSettings; } export interface IAMAuthenticationManagerExecuteStepResult { stepResult: IAMAuthenticationCompleteResult | IAMAuthenticationInitiateResult; user: IAMUserWithPermissionsData | null; userFilterField?: string | undefined; userFilterValue?: unknown | undefined; } export interface IAMAuthenticationManagerUserTokenEnityFields { accessToken?: string; refreshToken?: string; userId: UserId; user?: IAMUserWithPermissionsData; } export enum IAMAuthenticationManagerUserTokenUserIdentifier { // eslint-disable-next-line no-unused-vars FieldName = 'userId' }