@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
TypeScript
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