UNPKG

@rytass/member-base-nestjs-module

Version:

Rytass Member System NestJS Base Module

40 lines (39 loc) 1.78 kB
import type { TypeORMAdapterOptions } from 'typeorm-adapter'; import type { BaseMemberEntity } from '../models/base-member.entity'; import type { ReflectableDecorator } from '@nestjs/core'; import type { Enforcer } from 'casbin'; import type { OAuth2Provider } from './oauth2-provider.interface'; export interface MemberBaseModuleOptionsDto<MemberEntity extends BaseMemberEntity = BaseMemberEntity, TokenPayload extends Record<string, any> = Pick<MemberEntity, 'id' | 'account'>> { loginFailedBanThreshold?: number; resetPasswordTokenExpiration?: number; resetPasswordTokenSecret?: string; cookieMode?: boolean; loginFailedAutoUnlockSeconds?: number; accessTokenSecret?: string; accessTokenExpiration?: number; refreshTokenSecret?: string; refreshTokenExpiration?: number; onlyResetRefreshTokenExpirationByPassword?: boolean; enableGlobalGuard?: boolean; casbinAdapterOptions?: TypeORMAdapterOptions; casbinModelString?: string; casbinPermissionDecorator?: ReflectableDecorator<any[]>; casbinPermissionChecker?: ({ enforcer, payload, actions, }: { enforcer: Enforcer; payload: TokenPayload; actions: any[]; }) => Promise<boolean>; memberEntity?: new () => MemberEntity; passwordShouldIncludeUppercase?: boolean; passwordShouldIncludeLowercase?: boolean; passwordShouldIncludeDigit?: boolean; passwordShouldIncludeSpecialCharacters?: boolean; passwordMinLength?: number; passwordPolicyRegExp?: RegExp; passwordHistoryLimit?: number; passwordAgeLimitInDays?: number; forceRejectLoginOnPasswordExpired?: boolean; customizedJwtPayload?: (member: MemberEntity) => TokenPayload; oauth2Providers?: OAuth2Provider[]; oauth2ClientDestUrl?: string; }