@@ -47,41 +47,37 @@ type BaseLoginCredentials = {
4747
4848type BaseLoginCredentialsSchema = z . ZodType < BaseLoginCredentials > ;
4949
50- type UserQueryResult = {
51- hashedPassword : string ;
52- tokenPayload : {
53- [ key : string ] : unknown ;
54- } ;
55- } ;
56-
5750interface JwtPayload {
5851 [ key : string ] : any ;
5952 permissions : Permission [ ] ;
6053}
6154
62- type UserQuery < TLoginCredentials extends BaseLoginCredentials = BaseLoginCredentials > = (
63- credentials : TLoginCredentials
64- ) => Promise < null | UserQueryResult > ;
55+ type UserQuery <
56+ TLoginCredentials extends BaseLoginCredentials = BaseLoginCredentials ,
57+ TPayload extends { [ key : string ] : unknown } = { [ key : string ] : unknown }
58+ > = ( credentials : TLoginCredentials ) => Promise < null | {
59+ hashedPassword : string ;
60+ tokenPayload : TPayload ;
61+ } > ;
6562
6663type LoginResponseBody = {
6764 accessToken : string ;
6865} ;
6966
7067type AuthModuleOptions <
7168 TLoginCredentialsSchema extends BaseLoginCredentialsSchema = BaseLoginCredentialsSchema ,
72- TUserQuery extends UserQuery < z . TypeOf < TLoginCredentialsSchema > > = UserQuery < z . TypeOf < TLoginCredentialsSchema > >
69+ TPayloadSchema extends z . ZodType < { [ key : string ] : unknown } > = z . ZodType < { [ key : string ] : unknown } >
7370> = {
74- defineAbility : TUserQuery extends ( ...args : any [ ] ) => Promise < infer R >
75- ? R extends { tokenPayload : infer TPayload extends { [ key : string ] : unknown } }
76- ? DefineAbility < TPayload >
77- : never
78- : never ;
79- loginCredentialsSchema : TLoginCredentialsSchema ;
80- userQuery : TUserQuery ;
71+ defineAbility : ( ability : AbilityBuilder < AppAbility > , tokenPayload : z . TypeOf < TPayloadSchema > ) => any ;
72+ schemas : {
73+ loginCredentials : TLoginCredentialsSchema ;
74+ tokenPayload : TPayloadSchema ;
75+ } ;
76+ userQuery : UserQuery < z . TypeOf < TLoginCredentialsSchema > , z . TypeOf < TPayloadSchema > > ;
8177} ;
8278
8379export const { ConfigurableModuleClass : ConfigurableAuthModule , MODULE_OPTIONS_TOKEN : AUTH_MODULE_OPTIONS_TOKEN } =
84- new ConfigurableModuleBuilder < AuthModuleOptions < any > > ( )
80+ new ConfigurableModuleBuilder < AuthModuleOptions < any , any > > ( )
8581 . setClassMethodName ( 'forRoot' )
8682 . setExtras ( { } , ( definition ) => ( {
8783 ...definition ,
@@ -107,6 +103,5 @@ export type {
107103 JwtPayload ,
108104 LoginResponseBody ,
109105 Permission ,
110- UserQuery ,
111- UserQueryResult
106+ UserQuery
112107} ;
0 commit comments