@auth/drizzle-adapter 1.0.1 → 1.2.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.
package/lib/mysql.d.ts CHANGED
@@ -1,308 +1,17 @@
1
- import { MySqlColumn, MySqlDatabase, MySqlTableWithColumns, PreparedQueryHKTBase, QueryResultHKT } from "drizzle-orm/mysql-core";
1
+ import { MySqlColumn, MySqlDatabase, QueryResultHKT, PreparedQueryHKTBase, MySqlTableWithColumns } from "drizzle-orm/mysql-core";
2
2
  import type { Adapter } from "@auth/core/adapters";
3
- export declare const mysqlUsersTable: MySqlTableWithColumns<{
4
- name: "user";
5
- schema: undefined;
6
- columns: {
7
- id: MySqlColumn<{
8
- name: "id";
9
- tableName: "user";
10
- dataType: "string";
11
- columnType: "MySqlVarChar";
12
- data: string;
13
- driverParam: string | number;
14
- notNull: true;
15
- hasDefault: true;
16
- enumValues: [string, ...string[]];
17
- baseColumn: never;
18
- }, object>;
19
- name: MySqlColumn<{
20
- name: "name";
21
- tableName: "user";
22
- dataType: "string";
23
- columnType: "MySqlVarChar";
24
- data: string;
25
- driverParam: string | number;
26
- notNull: false;
27
- hasDefault: false;
28
- enumValues: [string, ...string[]];
29
- baseColumn: never;
30
- }, object>;
31
- email: MySqlColumn<{
32
- name: "email";
33
- tableName: "user";
34
- dataType: "string";
35
- columnType: "MySqlVarChar";
36
- data: string;
37
- driverParam: string | number;
38
- notNull: true;
39
- hasDefault: false;
40
- enumValues: [string, ...string[]];
41
- baseColumn: never;
42
- }, object>;
43
- emailVerified: MySqlColumn<{
44
- name: "emailVerified";
45
- tableName: "user";
46
- dataType: "date";
47
- columnType: "MySqlTimestamp";
48
- data: Date;
49
- driverParam: string | number;
50
- notNull: false;
51
- hasDefault: false;
52
- enumValues: undefined;
53
- baseColumn: never;
54
- }, object>;
55
- image: MySqlColumn<{
56
- name: "image";
57
- tableName: "user";
58
- dataType: "string";
59
- columnType: "MySqlVarChar";
60
- data: string;
61
- driverParam: string | number;
62
- notNull: false;
63
- hasDefault: false;
64
- enumValues: [string, ...string[]];
65
- baseColumn: never;
66
- }, object>;
67
- };
68
- dialect: "mysql";
69
- }>;
70
- export declare const mysqlAccountsTable: MySqlTableWithColumns<{
71
- name: "account";
72
- schema: undefined;
73
- columns: {
74
- userId: MySqlColumn<{
75
- name: "userId";
76
- tableName: "account";
77
- dataType: "string";
78
- columnType: "MySqlVarChar";
79
- data: string;
80
- driverParam: string | number;
81
- notNull: true;
82
- hasDefault: false;
83
- enumValues: [string, ...string[]];
84
- baseColumn: never;
85
- }, object>;
86
- type: MySqlColumn<{
87
- name: "type";
88
- tableName: "account";
89
- dataType: "string";
90
- columnType: "MySqlVarChar";
91
- data: "email" | "oidc" | "oauth" | "webauthn";
92
- driverParam: string | number;
93
- notNull: true;
94
- hasDefault: false;
95
- enumValues: [string, ...string[]];
96
- baseColumn: never;
97
- }, object>;
98
- provider: MySqlColumn<{
99
- name: "provider";
100
- tableName: "account";
101
- dataType: "string";
102
- columnType: "MySqlVarChar";
103
- data: string;
104
- driverParam: string | number;
105
- notNull: true;
106
- hasDefault: false;
107
- enumValues: [string, ...string[]];
108
- baseColumn: never;
109
- }, object>;
110
- providerAccountId: MySqlColumn<{
111
- name: "providerAccountId";
112
- tableName: "account";
113
- dataType: "string";
114
- columnType: "MySqlVarChar";
115
- data: string;
116
- driverParam: string | number;
117
- notNull: true;
118
- hasDefault: false;
119
- enumValues: [string, ...string[]];
120
- baseColumn: never;
121
- }, object>;
122
- refresh_token: MySqlColumn<{
123
- name: "refresh_token";
124
- tableName: "account";
125
- dataType: "string";
126
- columnType: "MySqlVarChar";
127
- data: string;
128
- driverParam: string | number;
129
- notNull: false;
130
- hasDefault: false;
131
- enumValues: [string, ...string[]];
132
- baseColumn: never;
133
- }, object>;
134
- access_token: MySqlColumn<{
135
- name: "access_token";
136
- tableName: "account";
137
- dataType: "string";
138
- columnType: "MySqlVarChar";
139
- data: string;
140
- driverParam: string | number;
141
- notNull: false;
142
- hasDefault: false;
143
- enumValues: [string, ...string[]];
144
- baseColumn: never;
145
- }, object>;
146
- expires_at: MySqlColumn<{
147
- name: "expires_at";
148
- tableName: "account";
149
- dataType: "number";
150
- columnType: "MySqlInt";
151
- data: number;
152
- driverParam: string | number;
153
- notNull: false;
154
- hasDefault: false;
155
- enumValues: undefined;
156
- baseColumn: never;
157
- }, object>;
158
- token_type: MySqlColumn<{
159
- name: "token_type";
160
- tableName: "account";
161
- dataType: "string";
162
- columnType: "MySqlVarChar";
163
- data: string;
164
- driverParam: string | number;
165
- notNull: false;
166
- hasDefault: false;
167
- enumValues: [string, ...string[]];
168
- baseColumn: never;
169
- }, object>;
170
- scope: MySqlColumn<{
171
- name: "scope";
172
- tableName: "account";
173
- dataType: "string";
174
- columnType: "MySqlVarChar";
175
- data: string;
176
- driverParam: string | number;
177
- notNull: false;
178
- hasDefault: false;
179
- enumValues: [string, ...string[]];
180
- baseColumn: never;
181
- }, object>;
182
- id_token: MySqlColumn<{
183
- name: "id_token";
184
- tableName: "account";
185
- dataType: "string";
186
- columnType: "MySqlVarChar";
187
- data: string;
188
- driverParam: string | number;
189
- notNull: false;
190
- hasDefault: false;
191
- enumValues: [string, ...string[]];
192
- baseColumn: never;
193
- }, object>;
194
- session_state: MySqlColumn<{
195
- name: "session_state";
196
- tableName: "account";
197
- dataType: "string";
198
- columnType: "MySqlVarChar";
199
- data: string;
200
- driverParam: string | number;
201
- notNull: false;
202
- hasDefault: false;
203
- enumValues: [string, ...string[]];
204
- baseColumn: never;
205
- }, object>;
206
- };
207
- dialect: "mysql";
208
- }>;
209
- export declare const mysqlSessionsTable: MySqlTableWithColumns<{
210
- name: "session";
211
- schema: undefined;
212
- columns: {
213
- sessionToken: MySqlColumn<{
214
- name: "sessionToken";
215
- tableName: "session";
216
- dataType: "string";
217
- columnType: "MySqlVarChar";
218
- data: string;
219
- driverParam: string | number;
220
- notNull: true;
221
- hasDefault: false;
222
- enumValues: [string, ...string[]];
223
- baseColumn: never;
224
- }, object>;
225
- userId: MySqlColumn<{
226
- name: "userId";
227
- tableName: "session";
228
- dataType: "string";
229
- columnType: "MySqlVarChar";
230
- data: string;
231
- driverParam: string | number;
232
- notNull: true;
233
- hasDefault: false;
234
- enumValues: [string, ...string[]];
235
- baseColumn: never;
236
- }, object>;
237
- expires: MySqlColumn<{
238
- name: "expires";
239
- tableName: "session";
240
- dataType: "date";
241
- columnType: "MySqlTimestamp";
242
- data: Date;
243
- driverParam: string | number;
244
- notNull: true;
245
- hasDefault: false;
246
- enumValues: undefined;
247
- baseColumn: never;
248
- }, object>;
249
- };
250
- dialect: "mysql";
251
- }>;
252
- export declare const mysqlVerificationTokensTable: MySqlTableWithColumns<{
253
- name: "verificationToken";
254
- schema: undefined;
255
- columns: {
256
- identifier: MySqlColumn<{
257
- name: "identifier";
258
- tableName: "verificationToken";
259
- dataType: "string";
260
- columnType: "MySqlVarChar";
261
- data: string;
262
- driverParam: string | number;
263
- notNull: true;
264
- hasDefault: false;
265
- enumValues: [string, ...string[]];
266
- baseColumn: never;
267
- }, object>;
268
- token: MySqlColumn<{
269
- name: "token";
270
- tableName: "verificationToken";
271
- dataType: "string";
272
- columnType: "MySqlVarChar";
273
- data: string;
274
- driverParam: string | number;
275
- notNull: true;
276
- hasDefault: false;
277
- enumValues: [string, ...string[]];
278
- baseColumn: never;
279
- }, object>;
280
- expires: MySqlColumn<{
281
- name: "expires";
282
- tableName: "verificationToken";
283
- dataType: "date";
284
- columnType: "MySqlTimestamp";
285
- data: Date;
286
- driverParam: string | number;
287
- notNull: true;
288
- hasDefault: false;
289
- enumValues: undefined;
290
- baseColumn: never;
291
- }, object>;
292
- };
293
- dialect: "mysql";
294
- }>;
3
+ export declare function defineTables(schema?: Partial<DefaultMySqlSchema>): Required<DefaultMySqlSchema>;
295
4
  export declare function MySqlDrizzleAdapter(client: MySqlDatabase<QueryResultHKT, PreparedQueryHKTBase, any>, schema?: DefaultMySqlSchema): Adapter;
296
5
  type DefaultMyqlColumn<T extends {
297
- data: string | number | Date;
298
- dataType: "string" | "number" | "date";
6
+ data: string | number | boolean | Date;
7
+ dataType: "string" | "number" | "boolean" | "date";
299
8
  notNull: boolean;
300
- columnType: "MySqlVarChar" | "MySqlText" | "MySqlTimestamp" | "MySqlInt";
9
+ columnType: "MySqlVarChar" | "MySqlText" | "MySqlBoolean" | "MySqlTimestamp" | "MySqlInt";
301
10
  }> = MySqlColumn<{
302
11
  name: string;
303
12
  columnType: T["columnType"];
304
13
  data: T["data"];
305
- driverParam: string | number;
14
+ driverParam: string | number | boolean;
306
15
  notNull: T["notNull"];
307
16
  hasDefault: boolean;
308
17
  enumValues: any;
@@ -470,11 +179,67 @@ export type DefaultMySqlVerificationTokenTable = MySqlTableWithColumns<{
470
179
  dialect: "mysql";
471
180
  schema: string | undefined;
472
181
  }>;
182
+ export type DefaultMySqlAuthenticatorTable = MySqlTableWithColumns<{
183
+ name: string;
184
+ columns: {
185
+ credentialID: DefaultMyqlColumn<{
186
+ columnType: "MySqlVarChar" | "MySqlText";
187
+ data: string;
188
+ notNull: true;
189
+ dataType: "string";
190
+ }>;
191
+ userId: DefaultMyqlColumn<{
192
+ columnType: "MySqlVarChar" | "MySqlText";
193
+ data: string;
194
+ notNull: true;
195
+ dataType: "string";
196
+ }>;
197
+ providerAccountId: DefaultMyqlColumn<{
198
+ columnType: "MySqlVarChar" | "MySqlText";
199
+ data: string;
200
+ notNull: true;
201
+ dataType: "string";
202
+ }>;
203
+ credentialPublicKey: DefaultMyqlColumn<{
204
+ columnType: "MySqlVarChar" | "MySqlText";
205
+ data: string;
206
+ notNull: true;
207
+ dataType: "string";
208
+ }>;
209
+ counter: DefaultMyqlColumn<{
210
+ columnType: "MySqlInt";
211
+ data: number;
212
+ notNull: true;
213
+ dataType: "number";
214
+ }>;
215
+ credentialDeviceType: DefaultMyqlColumn<{
216
+ columnType: "MySqlVarChar" | "MySqlText";
217
+ data: string;
218
+ notNull: true;
219
+ dataType: "string";
220
+ }>;
221
+ credentialBackedUp: DefaultMyqlColumn<{
222
+ columnType: "MySqlBoolean";
223
+ data: boolean;
224
+ notNull: true;
225
+ dataType: "boolean";
226
+ }>;
227
+ transports: DefaultMyqlColumn<{
228
+ columnType: "MySqlVarChar" | "MySqlText";
229
+ data: string;
230
+ notNull: false;
231
+ dataType: "string";
232
+ }>;
233
+ };
234
+ dialect: "mysql";
235
+ schema: string | undefined;
236
+ }>;
473
237
  export type DefaultMySqlSchema = {
474
238
  usersTable: DefaultMySqlUsersTable;
475
239
  accountsTable: DefaultMySqlAccountsTable;
476
- sessionsTable: DefaultMySqlSessionsTable;
477
- verificationTokensTable: DefaultMySqlVerificationTokenTable;
240
+ sessionsTable?: DefaultMySqlSessionsTable;
241
+ verificationTokensTable?: DefaultMySqlVerificationTokenTable;
242
+ authenticatorsTable?: DefaultMySqlAuthenticatorTable;
478
243
  };
479
244
  export {};
480
245
  //# sourceMappingURL=mysql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"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"}
package/lib/mysql.js CHANGED
@@ -1,62 +1,100 @@
1
1
  import { and, eq, getTableColumns } from "drizzle-orm";
2
- import { int, mysqlTable, primaryKey, timestamp, varchar, } from "drizzle-orm/mysql-core";
3
- export const mysqlUsersTable = mysqlTable("user", {
4
- id: varchar("id", { length: 255 })
5
- .primaryKey()
6
- .$defaultFn(() => crypto.randomUUID()),
7
- name: varchar("name", { length: 255 }),
8
- email: varchar("email", { length: 255 }).notNull(),
9
- emailVerified: timestamp("emailVerified", { mode: "date", fsp: 3 }),
10
- image: varchar("image", { length: 255 }),
11
- });
12
- export const mysqlAccountsTable = mysqlTable("account", {
13
- userId: varchar("userId", { length: 255 })
14
- .notNull()
15
- .references(() => mysqlUsersTable.id, { onDelete: "cascade" }),
16
- type: varchar("type", { length: 255 })
17
- .$type()
18
- .notNull(),
19
- provider: varchar("provider", { length: 255 }).notNull(),
20
- providerAccountId: varchar("providerAccountId", { length: 255 }).notNull(),
21
- refresh_token: varchar("refresh_token", { length: 255 }),
22
- access_token: varchar("access_token", { length: 255 }),
23
- expires_at: int("expires_at"),
24
- token_type: varchar("token_type", { length: 255 }),
25
- scope: varchar("scope", { length: 255 }),
26
- id_token: varchar("id_token", { length: 2048 }),
27
- session_state: varchar("session_state", { length: 255 }),
28
- }, (account) => ({
29
- compositePk: primaryKey({
30
- columns: [account.provider, account.providerAccountId],
31
- }),
32
- }));
33
- export const mysqlSessionsTable = mysqlTable("session", {
34
- sessionToken: varchar("sessionToken", { length: 255 }).primaryKey(),
35
- userId: varchar("userId", { length: 255 })
36
- .notNull()
37
- .references(() => mysqlUsersTable.id, { onDelete: "cascade" }),
38
- expires: timestamp("expires", { mode: "date" }).notNull(),
39
- });
40
- export const mysqlVerificationTokensTable = mysqlTable("verificationToken", {
41
- identifier: varchar("identifier", { length: 255 }).notNull(),
42
- token: varchar("token", { length: 255 }).notNull(),
43
- expires: timestamp("expires", { mode: "date" }).notNull(),
44
- }, (vt) => ({
45
- compositePk: primaryKey({ columns: [vt.identifier, vt.token] }),
46
- }));
47
- export function MySqlDrizzleAdapter(client, schema = {
48
- usersTable: mysqlUsersTable,
49
- accountsTable: mysqlAccountsTable,
50
- sessionsTable: mysqlSessionsTable,
51
- verificationTokensTable: mysqlVerificationTokensTable,
52
- }) {
53
- const { usersTable, accountsTable, sessionsTable, verificationTokensTable } = schema;
2
+ import { boolean, int, mysqlTable, primaryKey, timestamp, varchar, } from "drizzle-orm/mysql-core";
3
+ export function defineTables(schema = {}) {
4
+ const usersTable = schema.usersTable ??
5
+ (mysqlTable("user", {
6
+ id: varchar("id", { length: 255 })
7
+ .primaryKey()
8
+ .$defaultFn(() => crypto.randomUUID()),
9
+ name: varchar("name", { length: 255 }),
10
+ email: varchar("email", { length: 255 }).notNull(),
11
+ emailVerified: timestamp("emailVerified", { mode: "date", fsp: 3 }),
12
+ image: varchar("image", { length: 255 }),
13
+ }));
14
+ const accountsTable = schema.accountsTable ??
15
+ (mysqlTable("account", {
16
+ userId: varchar("userId", { length: 255 })
17
+ .notNull()
18
+ .references(() => usersTable.id, { onDelete: "cascade" }),
19
+ type: varchar("type", { length: 255 })
20
+ .$type()
21
+ .notNull(),
22
+ provider: varchar("provider", { length: 255 }).notNull(),
23
+ providerAccountId: varchar("providerAccountId", {
24
+ length: 255,
25
+ }).notNull(),
26
+ refresh_token: varchar("refresh_token", { length: 255 }),
27
+ access_token: varchar("access_token", { length: 255 }),
28
+ expires_at: int("expires_at"),
29
+ token_type: varchar("token_type", { length: 255 }),
30
+ scope: varchar("scope", { length: 255 }),
31
+ id_token: varchar("id_token", { length: 2048 }),
32
+ session_state: varchar("session_state", { length: 255 }),
33
+ }, (account) => ({
34
+ compositePk: primaryKey({
35
+ columns: [account.provider, account.providerAccountId],
36
+ }),
37
+ })));
38
+ const sessionsTable = schema.sessionsTable ??
39
+ (mysqlTable("session", {
40
+ sessionToken: varchar("sessionToken", { length: 255 }).primaryKey(),
41
+ userId: varchar("userId", { length: 255 })
42
+ .notNull()
43
+ .references(() => usersTable.id, { onDelete: "cascade" }),
44
+ expires: timestamp("expires", { mode: "date" }).notNull(),
45
+ }));
46
+ const verificationTokensTable = schema.verificationTokensTable ??
47
+ (mysqlTable("verificationToken", {
48
+ identifier: varchar("identifier", { length: 255 }).notNull(),
49
+ token: varchar("token", { length: 255 }).notNull(),
50
+ expires: timestamp("expires", { mode: "date" }).notNull(),
51
+ }, (verficationToken) => ({
52
+ compositePk: primaryKey({
53
+ columns: [verficationToken.identifier, verficationToken.token],
54
+ }),
55
+ })));
56
+ const authenticatorsTable = schema.authenticatorsTable ??
57
+ (mysqlTable("authenticator", {
58
+ credentialID: varchar("credentialID", { length: 255 })
59
+ .notNull()
60
+ .unique(),
61
+ userId: varchar("userId", { length: 255 })
62
+ .notNull()
63
+ .references(() => usersTable.id, { onDelete: "cascade" }),
64
+ providerAccountId: varchar("providerAccountId", {
65
+ length: 255,
66
+ }).notNull(),
67
+ credentialPublicKey: varchar("credentialPublicKey", {
68
+ length: 255,
69
+ }).notNull(),
70
+ counter: int("counter").notNull(),
71
+ credentialDeviceType: varchar("credentialDeviceType", {
72
+ length: 255,
73
+ }).notNull(),
74
+ credentialBackedUp: boolean("credentialBackedUp").notNull(),
75
+ transports: varchar("transports", { length: 255 }),
76
+ }, (authenticator) => ({
77
+ compositePk: primaryKey({
78
+ columns: [authenticator.userId, authenticator.credentialID],
79
+ }),
80
+ })));
81
+ return {
82
+ usersTable,
83
+ accountsTable,
84
+ sessionsTable,
85
+ verificationTokensTable,
86
+ authenticatorsTable,
87
+ };
88
+ }
89
+ export function MySqlDrizzleAdapter(client, schema) {
90
+ const { usersTable, accountsTable, sessionsTable, verificationTokensTable, authenticatorsTable, } = defineTables(schema);
54
91
  return {
55
92
  async createUser(data) {
93
+ const { id, ...insertData } = data;
56
94
  const hasDefaultId = getTableColumns(usersTable)["id"]["hasDefault"];
57
95
  await client
58
96
  .insert(usersTable)
59
- .values(hasDefaultId ? data : { ...data, id: crypto.randomUUID() });
97
+ .values(hasDefaultId ? insertData : { ...insertData, id });
60
98
  return client
61
99
  .select()
62
100
  .from(usersTable)
@@ -173,5 +211,48 @@ export function MySqlDrizzleAdapter(client, schema = {
173
211
  .delete(accountsTable)
174
212
  .where(and(eq(accountsTable.provider, params.provider), eq(accountsTable.providerAccountId, params.providerAccountId)));
175
213
  },
214
+ async getAccount(providerAccountId, provider) {
215
+ return client
216
+ .select()
217
+ .from(accountsTable)
218
+ .where(and(eq(accountsTable.provider, provider), eq(accountsTable.providerAccountId, providerAccountId)))
219
+ .then((res) => res[0] ?? null);
220
+ },
221
+ async createAuthenticator(data) {
222
+ await client.insert(authenticatorsTable).values(data);
223
+ return await client
224
+ .select()
225
+ .from(authenticatorsTable)
226
+ .where(eq(authenticatorsTable.credentialID, data.credentialID))
227
+ .then((res) => res[0] ?? null);
228
+ },
229
+ async getAuthenticator(credentialID) {
230
+ return await client
231
+ .select()
232
+ .from(authenticatorsTable)
233
+ .where(eq(authenticatorsTable.credentialID, credentialID))
234
+ .then((res) => res[0] ?? null);
235
+ },
236
+ async listAuthenticatorsByUserId(userId) {
237
+ return await client
238
+ .select()
239
+ .from(authenticatorsTable)
240
+ .where(eq(authenticatorsTable.userId, userId))
241
+ .then((res) => res);
242
+ },
243
+ async updateAuthenticatorCounter(credentialID, newCounter) {
244
+ await client
245
+ .update(authenticatorsTable)
246
+ .set({ counter: newCounter })
247
+ .where(eq(authenticatorsTable.credentialID, credentialID));
248
+ const authenticator = await client
249
+ .select()
250
+ .from(authenticatorsTable)
251
+ .where(eq(authenticatorsTable.credentialID, credentialID))
252
+ .then((res) => res[0]);
253
+ if (!authenticator)
254
+ throw new Error("Authenticator not found.");
255
+ return authenticator;
256
+ },
176
257
  };
177
258
  }