UNPKG

@bitwild/rockets-auth

Version:

Rockets Auth - Complete authentication and authorization solution for NestJS with JWT, OAuth, OTP, role-based access control, and more

72 lines 3.51 kB
import { AccessControlOptionsInterface } from '@concepta/nestjs-access-control'; import { AuthRouterOptionsExtrasInterface } from '@concepta/nestjs-auth-router'; import { CrudAdapter } from '@concepta/nestjs-crud'; import { RocketsAuthUserMetadataEntityInterface } from '../../domains/user/interfaces/rockets-auth-user-metadata-entity.interface'; import { RocketsAuthUserMetadataCreateDtoInterface } from '../../domains/user/interfaces/rockets-auth-user-metadata-dto.interface'; import { RoleOptionsExtrasInterface } from '@concepta/nestjs-role/dist/interfaces/role-options-extras.interface'; import { DynamicModule, Type } from '@nestjs/common'; import { RocketsAuthUserEntityInterface } from '../../domains/user/interfaces/rockets-auth-user-entity.interface'; import { RocketsAuthUserCreatableInterface } from '../../domains/user/interfaces/rockets-auth-user-creatable.interface'; import { RocketsAuthUserUpdatableInterface } from '../../domains/user/interfaces/rockets-auth-user-updatable.interface'; import { RocketsAuthRoleEntityInterface } from '../../domains/role/interfaces/rockets-auth-role-entity.interface'; import { RocketsAuthRoleCreatableInterface } from '../../domains/role/interfaces/rockets-auth-role-creatable.interface'; import { RocketsAuthRoleUpdatableInterface } from '../../domains/role/interfaces/rockets-auth-role-updatable.interface'; export interface UserMetadataConfigInterface<TCreateDto extends RocketsAuthUserMetadataCreateDtoInterface = RocketsAuthUserMetadataCreateDtoInterface, TUpdateDto extends RocketsAuthUserMetadataEntityInterface = RocketsAuthUserMetadataEntityInterface> { adapter: Type<CrudAdapter<RocketsAuthUserMetadataEntityInterface>>; entity?: Type; createDto: new () => TCreateDto; updateDto: new () => TUpdateDto; } export interface UserCrudOptionsExtrasInterface { imports?: DynamicModule['imports']; path?: string; model: Type; adapter: Type<CrudAdapter<RocketsAuthUserEntityInterface>>; userMetadataConfig: UserMetadataConfigInterface; dto?: { createOne?: Type<RocketsAuthUserCreatableInterface>; updateOne?: Type<RocketsAuthUserUpdatableInterface>; }; } export interface RoleCrudOptionsExtrasInterface { imports?: DynamicModule['imports']; path?: string; model: Type; adapter: Type<CrudAdapter<RocketsAuthRoleEntityInterface>>; dto?: { createOne?: Type<RocketsAuthRoleCreatableInterface>; updateOne?: Type<RocketsAuthRoleUpdatableInterface>; }; } export interface DisableControllerOptionsInterface { password?: boolean; refresh?: boolean; recovery?: boolean; otp?: boolean; oAuth?: boolean; signup?: boolean; admin?: boolean; adminRoles?: boolean; user?: boolean; } export interface RocketsAuthOptionsExtrasInterface extends Pick<DynamicModule, 'global' | 'controllers'> { enableGlobalJWTGuard?: boolean; user?: { imports: DynamicModule['imports']; }; otp?: { imports: DynamicModule['imports']; }; federated?: { imports: DynamicModule['imports']; }; role?: RoleOptionsExtrasInterface & { imports: DynamicModule['imports']; }; authRouter?: AuthRouterOptionsExtrasInterface; userCrud?: UserCrudOptionsExtrasInterface; roleCrud?: RoleCrudOptionsExtrasInterface; accessControl?: AccessControlOptionsInterface; disableController?: DisableControllerOptionsInterface; } //# sourceMappingURL=rockets-auth-options-extras.interface.d.ts.map