@adonisjs/auth 9.3.1 → 9.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -64,6 +64,17 @@ export declare class AccessTokensGuard<UserProvider extends AccessTokensUserProv
64
64
  authenticate(): Promise<UserProvider[typeof PROVIDER_REAL_USER] & {
65
65
  currentAccessToken: AccessToken;
66
66
  }>;
67
+ /**
68
+ * Create a token for a user (sign in)
69
+ */
70
+ createToken(user: UserProvider[typeof PROVIDER_REAL_USER], abilities?: string[], options?: {
71
+ expiresIn?: string | number;
72
+ name?: string;
73
+ }): Promise<AccessToken>;
74
+ /**
75
+ * Invalidates the currently authenticated token (sign out)
76
+ */
77
+ invalidateToken(): Promise<boolean>;
67
78
  /**
68
79
  * Returns the Authorization header clients can use to authenticate
69
80
  * the request.
@@ -613,6 +613,19 @@ var AccessTokensGuard = class {
613
613
  });
614
614
  return this.user;
615
615
  }
616
+ /**
617
+ * Create a token for a user (sign in)
618
+ */
619
+ async createToken(user, abilities, options) {
620
+ return await this.#userProvider.createToken(user, abilities, options);
621
+ }
622
+ /**
623
+ * Invalidates the currently authenticated token (sign out)
624
+ */
625
+ async invalidateToken() {
626
+ const bearerToken = new Secret2(this.#getBearerToken());
627
+ return await this.#userProvider.invalidateToken(bearerToken);
628
+ }
616
629
  /**
617
630
  * Returns the Authorization header clients can use to authenticate
618
631
  * the request.
@@ -846,6 +859,18 @@ var DbAccessTokensProvider = class _DbAccessTokensProvider {
846
859
  }
847
860
  return accessToken;
848
861
  }
862
+ /**
863
+ * Invalidates a token identified by its publicly shared token
864
+ */
865
+ async invalidate(tokenValue) {
866
+ const decodedToken = AccessToken.decode(this.prefix, tokenValue.release());
867
+ if (!decodedToken) {
868
+ return false;
869
+ }
870
+ const db = await this.getDb();
871
+ const deleteCount = await db.query().from(this.table).where({ id: decodedToken.identifier, type: this.type }).del().exec();
872
+ return Boolean(deleteCount);
873
+ }
849
874
  };
850
875
 
851
876
  // modules/access_tokens_guard/user_providers/lucid.ts
@@ -913,6 +938,13 @@ var AccessTokensLucidUserProvider = class {
913
938
  const tokensProvider = await this.getTokensProvider();
914
939
  return tokensProvider.create(user, abilities, options);
915
940
  }
941
+ /**
942
+ * Invalidates a token identified by its publicly shared token
943
+ */
944
+ async invalidateToken(tokenValue) {
945
+ const tokensProvider = await this.getTokensProvider();
946
+ return tokensProvider.invalidate(tokenValue);
947
+ }
916
948
  /**
917
949
  * Finds a user by the user id
918
950
  */
@@ -73,4 +73,8 @@ export declare class DbAccessTokensProvider<TokenableModel extends LucidModel> i
73
73
  * inside the storage
74
74
  */
75
75
  verify(tokenValue: Secret<string>): Promise<AccessToken | null>;
76
+ /**
77
+ * Invalidates a token identified by its publicly shared token
78
+ */
79
+ invalidate(tokenValue: Secret<string>): Promise<boolean>;
76
80
  }
@@ -118,6 +118,10 @@ export interface AccessTokensProviderContract<Tokenable extends LucidModel> {
118
118
  * access token for it.
119
119
  */
120
120
  verify(tokenValue: Secret<string>): Promise<AccessToken | null>;
121
+ /**
122
+ * Invalidates a token identified by its publicly shared token
123
+ */
124
+ invalidate(tokenValue: Secret<string>): Promise<boolean>;
121
125
  }
122
126
  /**
123
127
  * A lucid model with a tokens provider to verify tokens during
@@ -167,6 +171,10 @@ export interface AccessTokensUserProviderContract<RealUser> {
167
171
  name?: string;
168
172
  expiresIn?: string | number;
169
173
  }): Promise<AccessToken>;
174
+ /**
175
+ * Invalidates a token identified by its publicly shared token.
176
+ */
177
+ invalidateToken(tokenValue: Secret<string>): Promise<boolean>;
170
178
  /**
171
179
  * Find a user by the user id.
172
180
  */
@@ -41,6 +41,10 @@ export declare class AccessTokensLucidUserProvider<TokenableProperty extends str
41
41
  name?: string;
42
42
  expiresIn?: string | number;
43
43
  }): Promise<AccessToken>;
44
+ /**
45
+ * Invalidates a token identified by its publicly shared token
46
+ */
47
+ invalidateToken(tokenValue: Secret<string>): Promise<boolean>;
44
48
  /**
45
49
  * Finds a user by the user id
46
50
  */
@@ -1,6 +1,15 @@
1
1
  import type { Hash } from '@adonisjs/core/hash';
2
2
  import { type BaseModel } from '@adonisjs/lucid/orm';
3
3
  import type { NormalizeConstructor } from '@adonisjs/core/types/helpers';
4
+ type UserWithUserFinderRow = {
5
+ verifyPassword(plainPassword: string): Promise<boolean>;
6
+ };
7
+ type UserWithUserFinderClass<Model extends NormalizeConstructor<typeof BaseModel> = NormalizeConstructor<typeof BaseModel>> = Model & {
8
+ hashPassword<T extends UserWithUserFinderClass>(this: T, user: InstanceType<T>): Promise<void>;
9
+ findForAuth<T extends UserWithUserFinderClass>(this: T, uids: string[], value: string): Promise<InstanceType<T> | null>;
10
+ verifyCredentials<T extends UserWithUserFinderClass>(this: T, uid: string, password: string): Promise<InstanceType<T>>;
11
+ new (...args: any[]): UserWithUserFinderRow;
12
+ };
4
13
  /**
5
14
  * Mixing to add user lookup and password verification methods
6
15
  * on a model.
@@ -15,158 +24,5 @@ import type { NormalizeConstructor } from '@adonisjs/core/types/helpers';
15
24
  export declare function withAuthFinder(hash: () => Hash, options: {
16
25
  uids: string[];
17
26
  passwordColumnName: string;
18
- }): <Model extends NormalizeConstructor<typeof BaseModel>>(superclass: Model) => {
19
- new (...args: any[]): {
20
- /**
21
- * Verifies the plain password against the user's password
22
- * hash
23
- */
24
- verifyPassword(plainPassword: string): Promise<boolean>;
25
- $attributes: import("@adonisjs/lucid/types/model").ModelObject;
26
- $extras: import("@adonisjs/lucid/types/model").ModelObject;
27
- $original: import("@adonisjs/lucid/types/model").ModelObject;
28
- $preloaded: {
29
- [relation: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
30
- };
31
- $columns: undefined;
32
- $sideloaded: import("@adonisjs/lucid/types/model").ModelObject;
33
- $primaryKeyValue?: number | string;
34
- $isPersisted: boolean;
35
- $isNew: boolean;
36
- $isLocal: boolean;
37
- $dirty: import("@adonisjs/lucid/types/model").ModelObject;
38
- $isDirty: boolean;
39
- $isDeleted: boolean;
40
- $options?: import("@adonisjs/lucid/types/model").ModelOptions;
41
- $trx?: import("@adonisjs/lucid/types/database").TransactionClientContract;
42
- $setOptionsAndTrx(options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): void;
43
- useTransaction(trx: import("@adonisjs/lucid/types/database").TransactionClientContract): /*elided*/ any;
44
- useConnection(connection: string): /*elided*/ any;
45
- $getQueryFor(action: "insert", client: import("@adonisjs/lucid/types/database").QueryClientContract): ReturnType<import("@adonisjs/lucid/types/database").QueryClientContract["insertQuery"]>;
46
- $getQueryFor(action: "update" | "delete" | "refresh", client: import("@adonisjs/lucid/types/database").QueryClientContract): import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<import("@adonisjs/lucid/types/model").LucidModel>;
47
- $setAttribute(key: string, value: any): void;
48
- $getAttribute(key: string): any;
49
- $getAttributeFromCache(key: string, callback: import("@adonisjs/lucid/types/model").CacheNode["getter"]): any;
50
- $hasRelated(key: string): boolean;
51
- $setRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
52
- $pushRelated(key: string, result: import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | null): void;
53
- $getRelated(key: string, defaultValue?: any): import("@adonisjs/lucid/types/querybuilder").OneOrMany<import("@adonisjs/lucid/types/model").LucidRow> | undefined | null;
54
- $consumeAdapterResult(adapterResult: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject): void;
55
- $hydrateOriginals(): void;
56
- fill(value: Partial<{}>, allowExtraProperties?: boolean): /*elided*/ any;
57
- merge(value: Partial<{}>, allowExtraProperties?: boolean): /*elided*/ any;
58
- isDirty(fields?: undefined[] | undefined): boolean;
59
- enableForceUpdate(): /*elided*/ any;
60
- save(): Promise</*elided*/ any>;
61
- lockForUpdate<T>(callback: (user: /*elided*/ any) => T | Promise<T>): Promise<T>;
62
- delete(): Promise<void>;
63
- refresh(): Promise</*elided*/ any>;
64
- load: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
65
- loadOnce: import("@adonisjs/lucid/types/model").LucidRowPreloadOnce</*elided*/ any>;
66
- preload: import("@adonisjs/lucid/types/model").LucidRowPreload</*elided*/ any>;
67
- loadAggregate: <Self extends /*elided*/ any, Name extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder = Self[Name] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name]["subQuery"] : never>(name: Name, callback: (builder: RelatedBuilder) => void) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
68
- loadCount: <Self extends /*elided*/ any, Name_1 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<Self>, RelatedBuilder_1 = Self[Name_1] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? Self[Name_1]["subQuery"] : never>(name: Name_1, callback?: ((builder: RelatedBuilder_1) => void) | undefined) => import("@adonisjs/lucid/types/model").LazyLoadAggregatesContract<Self>;
69
- serializeAttributes(fields?: import("@adonisjs/lucid/types/model").CherryPickFields, raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
70
- serializeComputed(fields?: import("@adonisjs/lucid/types/model").CherryPickFields): import("@adonisjs/lucid/types/model").ModelObject;
71
- serializeRelations(fields: undefined, raw: true): {
72
- [key: string]: import("@adonisjs/lucid/types/model").LucidRow | import("@adonisjs/lucid/types/model").LucidRow[];
73
- };
74
- serializeRelations(cherryPick: import("@adonisjs/lucid/types/model").CherryPick["relations"] | undefined, raw: false | undefined): import("@adonisjs/lucid/types/model").ModelObject;
75
- serializeRelations(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick["relations"], raw?: boolean): import("@adonisjs/lucid/types/model").ModelObject;
76
- serialize(cherryPick?: import("@adonisjs/lucid/types/model").CherryPick): import("@adonisjs/lucid/types/model").ModelObject;
77
- toObject(): import("@adonisjs/lucid/types/model").ModelObject;
78
- toJSON(): import("@adonisjs/lucid/types/model").ModelObject;
79
- related<Name_2 extends undefined>(relation: Name_2): /*elided*/ any[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? /*elided*/ any[Name_2]["client"] : never;
80
- };
81
- /**
82
- * Hook to verify user password when creating or updating
83
- * the user model.
84
- */
85
- hashPassword<T extends /*elided*/ any & Model>(this: T, user: InstanceType<T>): Promise<void>;
86
- /**
87
- * Finds the user for authentication via "verifyCredentials".
88
- * Feel free to override this method customize the user
89
- * lookup behavior.
90
- */
91
- findForAuth<T extends /*elided*/ any & Model>(this: T, uids: string[], value: string): Promise<InstanceType<T> | null>;
92
- /**
93
- * Find a user by uid and verify their password. This method is
94
- * safe from timing attacks.
95
- */
96
- verifyCredentials<T extends /*elided*/ any & Model>(this: T, uid: string, password: string): Promise<InstanceType<T>>;
97
- readonly booted: boolean;
98
- find: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<null | InstanceType<T>>;
99
- $columnsDefinitions: Map<string, import("@adonisjs/lucid/types/model").ModelColumnOptions>;
100
- $relationsDefinitions: Map<string, import("@adonisjs/lucid/types/relations").RelationshipsContract>;
101
- $computedDefinitions: Map<string, import("@adonisjs/lucid/types/model").ComputedOptions>;
102
- primaryKey: string;
103
- connection?: string | undefined;
104
- namingStrategy: import("@adonisjs/lucid/types/model").NamingStrategyContract;
105
- table: string;
106
- selfAssignPrimaryKey: boolean;
107
- $adapter: import("@adonisjs/lucid/types/model").AdapterContract;
108
- useAdapter: (adapter: import("@adonisjs/lucid/types/model").AdapterContract) => void;
109
- $hooks: import("@poppinss/hooks").default<any>;
110
- $keys: {
111
- attributesToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
112
- attributesToSerialized: import("@adonisjs/lucid/types/model").ModelKeysContract;
113
- columnsToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
114
- columnsToSerialized: import("@adonisjs/lucid/types/model").ModelKeysContract;
115
- serializedToColumns: import("@adonisjs/lucid/types/model").ModelKeysContract;
116
- serializedToAttributes: import("@adonisjs/lucid/types/model").ModelKeysContract;
117
- };
118
- $createFromAdapterResult: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, result?: import("@adonisjs/lucid/types/model").ModelObject, sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => null | InstanceType<T>;
119
- $createMultipleFromAdapterResult: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, results: import("@adonisjs/lucid/types/model").ModelObject[], sideloadAttributes?: import("@adonisjs/lucid/types/model").ModelObject, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => InstanceType<T>[];
120
- $addColumn: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ColumnOptions>) => import("@adonisjs/lucid/types/model").ColumnOptions;
121
- $hasColumn: (name: string) => boolean;
122
- $getColumn: (name: string) => import("@adonisjs/lucid/types/model").ModelColumnOptions | undefined;
123
- $addComputed: (name: string, options: Partial<import("@adonisjs/lucid/types/model").ComputedOptions>) => import("@adonisjs/lucid/types/model").ComputedOptions;
124
- $hasComputed: (name: string) => boolean;
125
- $getComputed: (name: string) => import("@adonisjs/lucid/types/model").ComputedOptions | undefined;
126
- $addRelation: (name: string, type: import("@adonisjs/lucid/types/relations").ModelRelationTypes["__opaque_type"], relatedModel: () => import("@adonisjs/lucid/types/model").LucidModel, options: import("@adonisjs/lucid/types/model").ModelRelationOptions) => void;
127
- $hasRelation: (name: string) => boolean;
128
- $getRelation: {
129
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Name_2 extends import("@adonisjs/lucid/types/relations").ExtractModelRelations<InstanceType<Model_1>>>(this: Model_1, name: Name_2): InstanceType<Model_1>[Name_2] extends import("@adonisjs/lucid/types/relations").ModelRelations<import("@adonisjs/lucid/types/model").LucidModel, import("@adonisjs/lucid/types/model").LucidModel> ? InstanceType<Model_1>[Name_2]["client"]["relation"] : import("@adonisjs/lucid/types/relations").RelationshipsContract;
130
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, name: string): import("@adonisjs/lucid/types/relations").RelationshipsContract;
131
- };
132
- $defineProperty: <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Prop extends keyof Model_1>(this: Model_1, propertyName: Prop, defaultValue: Model_1[Prop], strategy: "inherit" | "define" | ((value: Model_1[Prop]) => Model_1[Prop])) => void;
133
- boot: () => void;
134
- before: {
135
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Event extends "find" | "fetch">(this: Model_1, event: Event, handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1>, Event>): void;
136
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<[import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1>, import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1>], "paginate">): void;
137
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Event_1 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_1, event: Event_1, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_1>, Event_1>): void;
138
- };
139
- after: {
140
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, event: "fetch", handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_1>[], "fetch">): void;
141
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel>(this: Model_1, event: "paginate", handler: import("@adonisjs/lucid/types/model").HooksHandler<import("@adonisjs/lucid/types/model").ModelPaginatorContract<InstanceType<Model_1>>, "paginate">): void;
142
- <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Event_2 extends import("@adonisjs/lucid/types/model").EventsList>(this: Model_1, event: Event_2, handler: import("@adonisjs/lucid/types/model").HooksHandler<InstanceType<Model_1>, Event_2>): void;
143
- };
144
- create: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
145
- createMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, values: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
146
- findOrFail: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>>;
147
- findBy: {
148
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<null | InstanceType<T>>;
149
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<null | InstanceType<T>>;
150
- };
151
- findByOrFail: {
152
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>>;
153
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>>;
154
- };
155
- findManyBy: {
156
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, clause: Record<string, unknown>, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>[]>;
157
- <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, key: string, value: any, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions): Promise<InstanceType<T>[]>;
158
- };
159
- first: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<null | InstanceType<T>>;
160
- firstOrFail: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>>;
161
- findMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, value: any[], options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>[]>;
162
- firstOrNew: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
163
- firstOrCreate: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, savePayload?: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
164
- updateOrCreate: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, searchPayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, updatePayload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>, options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>>;
165
- fetchOrNewUpMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
166
- fetchOrCreateMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
167
- updateOrCreateMany: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, predicate: keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>> | (keyof import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>)[], payload: Partial<import("@adonisjs/lucid/types/model").ModelAttributes<InstanceType<T>>>[], options?: import("@adonisjs/lucid/types/model").ModelAssignOptions) => Promise<InstanceType<T>[]>;
168
- all: <T extends import("@adonisjs/lucid/types/model").LucidModel>(this: T, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => Promise<InstanceType<T>[]>;
169
- query: <Model_1 extends import("@adonisjs/lucid/types/model").LucidModel, Result = InstanceType<Model_1>>(this: Model_1, options?: import("@adonisjs/lucid/types/model").ModelAdapterOptions) => import("@adonisjs/lucid/types/model").ModelQueryBuilderContract<Model_1, Result>;
170
- transaction: import("@adonisjs/lucid/types/database").TransactionFn;
171
- truncate: (cascade?: boolean) => Promise<void>;
172
- } & Model;
27
+ }): <Model extends NormalizeConstructor<typeof BaseModel>>(superclass: Model) => UserWithUserFinderClass<Model>;
28
+ export {};
@@ -9,7 +9,7 @@ import {
9
9
  import { RuntimeException } from "@adonisjs/core/exceptions";
10
10
  import { beforeSave } from "@adonisjs/lucid/orm";
11
11
  function withAuthFinder(hash, options) {
12
- return (superclass) => {
12
+ return function(superclass) {
13
13
  class UserWithUserFinder extends superclass {
14
14
  static async hashPassword(user) {
15
15
  if (user.$dirty[options.passwordColumnName]) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@adonisjs/auth",
3
3
  "description": "Official authentication provider for Adonis framework",
4
- "version": "9.3.1",
4
+ "version": "9.4.0",
5
5
  "engines": {
6
6
  "node": ">=18.16.0"
7
7
  },
@@ -52,8 +52,8 @@
52
52
  },
53
53
  "devDependencies": {
54
54
  "@adonisjs/assembler": "^7.8.2",
55
- "@adonisjs/core": "^6.17.1",
56
- "@adonisjs/eslint-config": "^2.0.0-beta.7",
55
+ "@adonisjs/core": "^6.17.2",
56
+ "@adonisjs/eslint-config": "^2.0.0",
57
57
  "@adonisjs/hash": "^9.0.5",
58
58
  "@adonisjs/i18n": "^2.2.0",
59
59
  "@adonisjs/lucid": "^21.6.0",
@@ -66,36 +66,36 @@
66
66
  "@japa/expect-type": "^2.0.3",
67
67
  "@japa/file-system": "^2.3.2",
68
68
  "@japa/plugin-adonisjs": "^4.0.0",
69
- "@japa/runner": "^4.1.0",
69
+ "@japa/runner": "^4.2.0",
70
70
  "@japa/snapshot": "^2.0.8",
71
71
  "@release-it/conventional-changelog": "^10.0.0",
72
- "@swc/core": "^1.10.7",
72
+ "@swc/core": "1.10.7",
73
73
  "@types/basic-auth": "^1.1.8",
74
74
  "@types/luxon": "^3.4.2",
75
- "@types/node": "^22.10.7",
75
+ "@types/node": "^22.13.5",
76
76
  "@types/set-cookie-parser": "^2.4.10",
77
- "@types/sinon": "^17.0.3",
77
+ "@types/sinon": "^17.0.4",
78
78
  "c8": "^10.1.3",
79
79
  "convert-hrtime": "^5.0.0",
80
80
  "copyfiles": "^2.4.1",
81
81
  "cross-env": "^7.0.3",
82
82
  "del-cli": "^6.0.0",
83
83
  "dotenv": "^16.4.7",
84
- "eslint": "^9.18.0",
84
+ "eslint": "^9.21.0",
85
85
  "luxon": "^3.5.0",
86
86
  "mysql2": "^3.12.0",
87
- "nock": "^13.5.6",
88
- "pg": "^8.13.1",
89
- "playwright": "^1.49.1",
90
- "prettier": "^3.4.2",
91
- "release-it": "^18.1.1",
87
+ "nock": "^14.0.1",
88
+ "pg": "^8.13.3",
89
+ "playwright": "^1.50.1",
90
+ "prettier": "^3.5.2",
91
+ "release-it": "^18.1.2",
92
92
  "set-cookie-parser": "^2.7.1",
93
93
  "sinon": "^19.0.2",
94
94
  "sqlite3": "^5.1.7",
95
95
  "tedious": "^18.6.1",
96
96
  "timekeeper": "^2.3.1",
97
- "ts-node-maintained": "^10.9.4",
98
- "tsup": "^8.3.5",
97
+ "ts-node-maintained": "^10.9.5",
98
+ "tsup": "^8.3.6",
99
99
  "typescript": "^5.7.3"
100
100
  },
101
101
  "dependencies": {