import { AppConfigCommonDomainIAMAuthServiceConfigCompleteSettings, AppConfigCommonDomainIAMAuthServiceConfigInitiateSettings, AppConfigDomainIAMAuthenticationStep, DomainFindOnePrivateOptions, GenericObject } from '@node-c/core'; import { IAMAuthenticationCompleteResult, IAMAuthenticationInitiateResult, IAMAuthenticationService, IAMAuthenticationType } from '../authentication'; import { AuthorizationUser } from '../authorization'; import { IAMMFAType } from '../mfa'; export interface IAMUserManagerCreateAccessTokenOptions { auth: { mfaType?: IAMMFAType; type: IAMAuthenticationType | string; } & AuthData; filters?: GenericObject; mainFilterField: string; rememberUser?: boolean; step?: AppConfigDomainIAMAuthenticationStep; } export type IAMUserManagerCreateAccessTokenReturnData = | { accessToken: string; idToken: string; refreshToken?: string; user: UserData; } | { nextStepsRequired: boolean }; export type IAMUserManagerExecuteStepData = Omit< IAMUserManagerCreateAccessTokenOptions, 'rememberUser' | 'step' >; export interface IAMUserManagerExecuteStepOptions { authService: IAMAuthenticationService; name: AppConfigDomainIAMAuthenticationStep; stepConfig: | AppConfigCommonDomainIAMAuthServiceConfigCompleteSettings | AppConfigCommonDomainIAMAuthServiceConfigInitiateSettings; } export interface IAMUserManagerExecuteStepResult { stepResult: IAMAuthenticationCompleteResult | IAMAuthenticationInitiateResult; user: IAMUserManagerUserWithPermissionsData | null; userFilterField?: string | undefined; userFilterValue?: unknown | undefined; } export interface IAMUserManagerGetUserWithPermissionsDataOptions extends DomainFindOnePrivateOptions { keepPassword?: boolean; } export type IAMUserManagerUserWithPermissionsData = AuthorizationUser & UserData; export interface IAMUserManagerUserTokenEnityFields { accessToken?: string; refreshToken?: string; userId: UserId; user?: IAMUserManagerUserWithPermissionsData; } export enum IAMUserManagerUserTokenUserIdentifier { // eslint-disable-next-line no-unused-vars FieldName = 'userId' }