@auth/drizzle-adapter 1.0.0 → 1.1.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,320 +1,189 @@
1
- import { MySqlDatabase, MySqlTableWithColumns, TableConfig, QueryResultHKT, PreparedQueryHKTBase } from "drizzle-orm/mysql-core";
1
+ import { MySqlColumn, MySqlDatabase, MySqlTableWithColumns, PreparedQueryHKTBase, QueryResultHKT } from "drizzle-orm/mysql-core";
2
2
  import type { Adapter } from "@auth/core/adapters";
3
- export declare const mysqlUsersTable: MySqlTableWithColumns<{
3
+ export declare function defineTables(schema?: Partial<DefaultMySqlSchema>): Required<DefaultMySqlSchema>;
4
+ export declare function MySqlDrizzleAdapter(client: MySqlDatabase<QueryResultHKT, PreparedQueryHKTBase, any>, schema?: DefaultMySqlSchema): Adapter;
5
+ type DefaultMyqlColumn<T extends {
6
+ data: string | number | Date;
7
+ dataType: "string" | "number" | "date";
8
+ notNull: boolean;
9
+ columnType: "MySqlVarChar" | "MySqlText" | "MySqlTimestamp" | "MySqlInt";
10
+ }> = MySqlColumn<{
11
+ name: string;
12
+ columnType: T["columnType"];
13
+ data: T["data"];
14
+ driverParam: string | number;
15
+ notNull: T["notNull"];
16
+ hasDefault: boolean;
17
+ enumValues: any;
18
+ dataType: T["dataType"];
19
+ tableName: string;
20
+ }>;
21
+ export type DefaultMySqlUsersTable = MySqlTableWithColumns<{
4
22
  name: string;
5
- schema: undefined;
6
23
  columns: {
7
- id: import("drizzle-orm/mysql-core").MySqlColumn<{
8
- name: "id";
9
- tableName: string;
10
- dataType: "string";
11
- columnType: "MySqlVarChar";
24
+ id: DefaultMyqlColumn<{
12
25
  data: string;
13
- driverParam: string | number;
14
- notNull: true;
15
- hasDefault: true;
16
- enumValues: [string, ...string[]];
17
- baseColumn: never;
18
- }, object>;
19
- name: import("drizzle-orm/mysql-core").MySqlColumn<{
20
- name: "name";
21
- tableName: string;
22
26
  dataType: "string";
23
- columnType: "MySqlVarChar";
27
+ notNull: true;
28
+ columnType: "MySqlVarChar" | "MySqlText";
29
+ }>;
30
+ name: DefaultMyqlColumn<{
24
31
  data: string;
25
- driverParam: string | number;
26
- notNull: false;
27
- hasDefault: false;
28
- enumValues: [string, ...string[]];
29
- baseColumn: never;
30
- }, object>;
31
- email: import("drizzle-orm/mysql-core").MySqlColumn<{
32
- name: "email";
33
- tableName: string;
34
32
  dataType: "string";
35
- columnType: "MySqlVarChar";
33
+ notNull: boolean;
34
+ columnType: "MySqlVarChar" | "MySqlText";
35
+ }>;
36
+ email: DefaultMyqlColumn<{
36
37
  data: string;
37
- driverParam: string | number;
38
+ dataType: "string";
38
39
  notNull: true;
39
- hasDefault: false;
40
- enumValues: [string, ...string[]];
41
- baseColumn: never;
42
- }, object>;
43
- emailVerified: import("drizzle-orm/mysql-core").MySqlColumn<{
44
- name: "emailVerified";
45
- tableName: string;
40
+ columnType: "MySqlVarChar" | "MySqlText";
41
+ }>;
42
+ emailVerified: DefaultMyqlColumn<{
43
+ data: Date;
46
44
  dataType: "date";
45
+ notNull: boolean;
47
46
  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: import("drizzle-orm/mysql-core").MySqlColumn<{
56
- name: "image";
57
- tableName: string;
58
- dataType: "string";
59
- columnType: "MySqlVarChar";
47
+ }>;
48
+ image: DefaultMyqlColumn<{
60
49
  data: string;
61
- driverParam: string | number;
62
- notNull: false;
63
- hasDefault: false;
64
- enumValues: [string, ...string[]];
65
- baseColumn: never;
66
- }, object>;
50
+ dataType: "string";
51
+ notNull: boolean;
52
+ columnType: "MySqlVarChar" | "MySqlText";
53
+ }>;
67
54
  };
68
55
  dialect: "mysql";
56
+ schema: string | undefined;
69
57
  }>;
70
- export declare const mysqlAccountsTable: MySqlTableWithColumns<{
58
+ export type DefaultMySqlAccountsTable = MySqlTableWithColumns<{
71
59
  name: string;
72
- schema: undefined;
73
60
  columns: {
74
- userId: import("drizzle-orm/mysql-core").MySqlColumn<{
75
- name: "userId";
76
- tableName: string;
77
- dataType: "string";
78
- columnType: "MySqlVarChar";
61
+ userId: DefaultMyqlColumn<{
62
+ columnType: "MySqlVarChar" | "MySqlText";
79
63
  data: string;
80
- driverParam: string | number;
81
64
  notNull: true;
82
- hasDefault: false;
83
- enumValues: [string, ...string[]];
84
- baseColumn: never;
85
- }, object>;
86
- type: import("drizzle-orm/mysql-core").MySqlColumn<{
87
- name: "type";
88
- tableName: string;
89
65
  dataType: "string";
90
- columnType: "MySqlVarChar";
66
+ }>;
67
+ type: DefaultMyqlColumn<{
68
+ columnType: "MySqlVarChar" | "MySqlText";
91
69
  data: string;
92
- driverParam: string | number;
93
70
  notNull: true;
94
- hasDefault: false;
95
- enumValues: [string, ...string[]];
96
- baseColumn: never;
97
- }, object>;
98
- provider: import("drizzle-orm/mysql-core").MySqlColumn<{
99
- name: "provider";
100
- tableName: string;
101
71
  dataType: "string";
102
- columnType: "MySqlVarChar";
72
+ }>;
73
+ provider: DefaultMyqlColumn<{
74
+ columnType: "MySqlVarChar" | "MySqlText";
103
75
  data: string;
104
- driverParam: string | number;
105
76
  notNull: true;
106
- hasDefault: false;
107
- enumValues: [string, ...string[]];
108
- baseColumn: never;
109
- }, object>;
110
- providerAccountId: import("drizzle-orm/mysql-core").MySqlColumn<{
111
- name: "providerAccountId";
112
- tableName: string;
113
77
  dataType: "string";
114
- columnType: "MySqlVarChar";
78
+ }>;
79
+ providerAccountId: DefaultMyqlColumn<{
80
+ dataType: "string";
81
+ columnType: "MySqlVarChar" | "MySqlText";
115
82
  data: string;
116
- driverParam: string | number;
117
83
  notNull: true;
118
- hasDefault: false;
119
- enumValues: [string, ...string[]];
120
- baseColumn: never;
121
- }, object>;
122
- refresh_token: import("drizzle-orm/mysql-core").MySqlColumn<{
123
- name: "refresh_token";
124
- tableName: string;
84
+ }>;
85
+ refresh_token: DefaultMyqlColumn<{
125
86
  dataType: "string";
126
- columnType: "MySqlVarChar";
87
+ columnType: "MySqlVarChar" | "MySqlText";
127
88
  data: string;
128
- driverParam: string | number;
129
- notNull: false;
130
- hasDefault: false;
131
- enumValues: [string, ...string[]];
132
- baseColumn: never;
133
- }, object>;
134
- access_token: import("drizzle-orm/mysql-core").MySqlColumn<{
135
- name: "access_token";
136
- tableName: string;
89
+ notNull: boolean;
90
+ }>;
91
+ access_token: DefaultMyqlColumn<{
137
92
  dataType: "string";
138
- columnType: "MySqlVarChar";
93
+ columnType: "MySqlVarChar" | "MySqlText";
139
94
  data: string;
140
95
  driverParam: string | number;
141
- notNull: false;
142
- hasDefault: false;
143
- enumValues: [string, ...string[]];
144
- baseColumn: never;
145
- }, object>;
146
- expires_at: import("drizzle-orm/mysql-core").MySqlColumn<{
147
- name: "expires_at";
148
- tableName: string;
96
+ notNull: boolean;
97
+ }>;
98
+ expires_at: DefaultMyqlColumn<{
149
99
  dataType: "number";
150
100
  columnType: "MySqlInt";
151
101
  data: number;
152
- driverParam: string | number;
153
- notNull: false;
154
- hasDefault: false;
155
- enumValues: undefined;
156
- baseColumn: never;
157
- }, object>;
158
- token_type: import("drizzle-orm/mysql-core").MySqlColumn<{
159
- name: "token_type";
160
- tableName: string;
102
+ notNull: boolean;
103
+ }>;
104
+ token_type: DefaultMyqlColumn<{
161
105
  dataType: "string";
162
- columnType: "MySqlVarChar";
106
+ columnType: "MySqlVarChar" | "MySqlText";
163
107
  data: string;
164
- driverParam: string | number;
165
- notNull: false;
166
- hasDefault: false;
167
- enumValues: [string, ...string[]];
168
- baseColumn: never;
169
- }, object>;
170
- scope: import("drizzle-orm/mysql-core").MySqlColumn<{
171
- name: "scope";
172
- tableName: string;
108
+ notNull: boolean;
109
+ }>;
110
+ scope: DefaultMyqlColumn<{
173
111
  dataType: "string";
174
- columnType: "MySqlVarChar";
112
+ columnType: "MySqlVarChar" | "MySqlText";
175
113
  data: string;
176
- driverParam: string | number;
177
- notNull: false;
178
- hasDefault: false;
179
- enumValues: [string, ...string[]];
180
- baseColumn: never;
181
- }, object>;
182
- id_token: import("drizzle-orm/mysql-core").MySqlColumn<{
183
- name: "id_token";
184
- tableName: string;
114
+ notNull: boolean;
115
+ }>;
116
+ id_token: DefaultMyqlColumn<{
185
117
  dataType: "string";
186
- columnType: "MySqlVarChar";
118
+ columnType: "MySqlVarChar" | "MySqlText";
187
119
  data: string;
188
- driverParam: string | number;
189
- notNull: false;
190
- hasDefault: false;
191
- enumValues: [string, ...string[]];
192
- baseColumn: never;
193
- }, object>;
194
- session_state: import("drizzle-orm/mysql-core").MySqlColumn<{
195
- name: "session_state";
196
- tableName: string;
120
+ notNull: boolean;
121
+ }>;
122
+ session_state: DefaultMyqlColumn<{
197
123
  dataType: "string";
198
- columnType: "MySqlVarChar";
124
+ columnType: "MySqlVarChar" | "MySqlText";
199
125
  data: string;
200
- driverParam: string | number;
201
- notNull: false;
202
- hasDefault: false;
203
- enumValues: [string, ...string[]];
204
- baseColumn: never;
205
- }, object>;
126
+ notNull: boolean;
127
+ }>;
206
128
  };
207
129
  dialect: "mysql";
130
+ schema: string | undefined;
208
131
  }>;
209
- export declare const mysqlSessionsTable: MySqlTableWithColumns<{
132
+ export type DefaultMySqlSessionsTable = MySqlTableWithColumns<{
210
133
  name: string;
211
- schema: undefined;
212
134
  columns: {
213
- id: import("drizzle-orm/mysql-core").MySqlColumn<{
214
- name: "id";
215
- tableName: string;
216
- dataType: "string";
217
- columnType: "MySqlVarChar";
135
+ sessionToken: DefaultMyqlColumn<{
136
+ columnType: "MySqlVarChar" | "MySqlText";
218
137
  data: string;
219
- driverParam: string | number;
220
138
  notNull: true;
221
- hasDefault: true;
222
- enumValues: [string, ...string[]];
223
- baseColumn: never;
224
- }, object>;
225
- sessionToken: import("drizzle-orm/mysql-core").MySqlColumn<{
226
- name: "sessionToken";
227
- tableName: string;
228
139
  dataType: "string";
229
- columnType: "MySqlVarChar";
140
+ }>;
141
+ userId: DefaultMyqlColumn<{
142
+ columnType: "MySqlVarChar" | "MySqlText";
230
143
  data: string;
231
- driverParam: string | number;
232
144
  notNull: true;
233
- hasDefault: false;
234
- enumValues: [string, ...string[]];
235
- baseColumn: never;
236
- }, object>;
237
- userId: import("drizzle-orm/mysql-core").MySqlColumn<{
238
- name: "userId";
239
- tableName: string;
240
145
  dataType: "string";
241
- columnType: "MySqlVarChar";
242
- data: string;
243
- driverParam: string | number;
244
- notNull: true;
245
- hasDefault: false;
246
- enumValues: [string, ...string[]];
247
- baseColumn: never;
248
- }, object>;
249
- expires: import("drizzle-orm/mysql-core").MySqlColumn<{
250
- name: "expires";
251
- tableName: string;
146
+ }>;
147
+ expires: DefaultMyqlColumn<{
252
148
  dataType: "date";
253
149
  columnType: "MySqlTimestamp";
254
150
  data: Date;
255
- driverParam: string | number;
256
151
  notNull: true;
257
- hasDefault: false;
258
- enumValues: undefined;
259
- baseColumn: never;
260
- }, object>;
152
+ }>;
261
153
  };
262
154
  dialect: "mysql";
155
+ schema: string | undefined;
263
156
  }>;
264
- export declare const mysqlVerificationTokensTable: MySqlTableWithColumns<{
157
+ export type DefaultMySqlVerificationTokenTable = MySqlTableWithColumns<{
265
158
  name: string;
266
- schema: undefined;
267
159
  columns: {
268
- identifier: import("drizzle-orm/mysql-core").MySqlColumn<{
269
- name: "identifier";
270
- tableName: string;
271
- dataType: "string";
272
- columnType: "MySqlVarChar";
160
+ identifier: DefaultMyqlColumn<{
161
+ columnType: "MySqlVarChar" | "MySqlText";
273
162
  data: string;
274
- driverParam: string | number;
275
163
  notNull: true;
276
- hasDefault: false;
277
- enumValues: [string, ...string[]];
278
- baseColumn: never;
279
- }, object>;
280
- token: import("drizzle-orm/mysql-core").MySqlColumn<{
281
- name: "token";
282
- tableName: string;
283
164
  dataType: "string";
284
- columnType: "MySqlVarChar";
165
+ }>;
166
+ token: DefaultMyqlColumn<{
167
+ columnType: "MySqlVarChar" | "MySqlText";
285
168
  data: string;
286
- driverParam: string | number;
287
169
  notNull: true;
288
- hasDefault: false;
289
- enumValues: [string, ...string[]];
290
- baseColumn: never;
291
- }, object>;
292
- expires: import("drizzle-orm/mysql-core").MySqlColumn<{
293
- name: "expires";
294
- tableName: string;
170
+ dataType: "string";
171
+ }>;
172
+ expires: DefaultMyqlColumn<{
295
173
  dataType: "date";
296
174
  columnType: "MySqlTimestamp";
297
175
  data: Date;
298
- driverParam: string | number;
299
176
  notNull: true;
300
- hasDefault: false;
301
- enumValues: undefined;
302
- baseColumn: never;
303
- }, object>;
177
+ }>;
304
178
  };
305
179
  dialect: "mysql";
306
- }>;
307
- export declare function MySqlDrizzleAdapter(client: MySqlDatabase<QueryResultHKT, PreparedQueryHKTBase, any>, schema?: DefaultMySqlSchema): Adapter;
308
- export type MySqlTableFn<T extends TableConfig> = MySqlTableWithColumns<{
309
- name: T["name"];
310
- columns: T["columns"];
311
- dialect: T["dialect"];
312
180
  schema: string | undefined;
313
181
  }>;
314
182
  export type DefaultMySqlSchema = {
315
- usersTable: MySqlTableFn<(typeof mysqlUsersTable)["_"]["config"]>;
316
- accountsTable: MySqlTableFn<(typeof mysqlAccountsTable)["_"]["config"]>;
317
- sessionsTable: MySqlTableFn<(typeof mysqlSessionsTable)["_"]["config"]>;
318
- verificationTokensTable: MySqlTableFn<(typeof mysqlVerificationTokensTable)["_"]["config"]>;
183
+ usersTable: DefaultMySqlUsersTable;
184
+ accountsTable: DefaultMySqlAccountsTable;
185
+ sessionsTable?: DefaultMySqlSessionsTable;
186
+ verificationTokensTable?: DefaultMySqlVerificationTokenTable;
319
187
  };
188
+ export {};
320
189
  //# sourceMappingURL=mysql.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,aAAa,EAEb,qBAAqB,EACrB,WAAW,EACX,cAAc,EACd,oBAAoB,EAErB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EACV,OAAO,EAKR,MAAM,qBAAqB,CAAA;AAI5B,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQ1B,CAAA;AAEF,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB9B,CAAA;AAED,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAe9B,CAAA;AAED,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUxC,CAAA;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAChE,MAAM,GAAE,kBAKP,GACA,OAAO,CAyKT;AAED,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,WAAW,IAAI,qBAAqB,CAAC;IACtE,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IACrB,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IACrB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,YAAY,CAAC,CAAC,OAAO,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACjE,aAAa,EAAE,YAAY,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvE,aAAa,EAAE,YAAY,CAAC,CAAC,OAAO,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;IACvE,uBAAuB,EAAE,YAAY,CACnC,CAAC,OAAO,4BAA4B,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,CACrD,CAAA;CACF,CAAA"}
1
+ {"version":3,"file":"mysql.d.ts","sourceRoot":"","sources":["../src/lib/mysql.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EAMf,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EACV,OAAO,EAMR,MAAM,qBAAqB,CAAA;AAE5B,wBAAgB,YAAY,CAC1B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM,GACvC,QAAQ,CAAC,kBAAkB,CAAC,CAyE9B;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,aAAa,CAAC,cAAc,EAAE,oBAAoB,EAAE,GAAG,CAAC,EAChE,MAAM,CAAC,EAAE,kBAAkB,GAC1B,OAAO,CA0KT;AAED,KAAK,iBAAiB,CACpB,CAAC,SAAS;IACR,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;IAC5B,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAA;IACtC,OAAO,EAAE,OAAO,CAAA;IAChB,UAAU,EAAE,cAAc,GAAG,WAAW,GAAG,gBAAgB,GAAG,UAAU,CAAA;CACzE,IACC,WAAW,CAAC;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,EAAE,CAAC,CAAC,YAAY,CAAC,CAAA;IAC3B,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAA;IACf,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;IAC5B,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,UAAU,EAAE,GAAG,CAAA;IACf,QAAQ,EAAE,CAAC,CAAC,UAAU,CAAC,CAAA;IACvB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAC,CAAA;AAEF,MAAM,MAAM,sBAAsB,GAAG,qBAAqB,CAAC;IACzD,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QACP,EAAE,EAAE,iBAAiB,CAAC;YACpB,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,QAAQ,CAAA;YAClB,OAAO,EAAE,IAAI,CAAA;YACb,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;SACzC,CAAC,CAAA;QACF,IAAI,EAAE,iBAAiB,CAAC;YACtB,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,QAAQ,CAAA;YAClB,OAAO,EAAE,OAAO,CAAA;YAChB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;SACzC,CAAC,CAAA;QACF,KAAK,EAAE,iBAAiB,CAAC;YACvB,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,QAAQ,CAAA;YAClB,OAAO,EAAE,IAAI,CAAA;YACb,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;SACzC,CAAC,CAAA;QACF,aAAa,EAAE,iBAAiB,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAA;YACV,QAAQ,EAAE,MAAM,CAAA;YAChB,OAAO,EAAE,OAAO,CAAA;YAChB,UAAU,EAAE,gBAAgB,CAAA;SAC7B,CAAC,CAAA;QACF,KAAK,EAAE,iBAAiB,CAAC;YACvB,IAAI,EAAE,MAAM,CAAA;YACZ,QAAQ,EAAE,QAAQ,CAAA;YAClB,OAAO,EAAE,OAAO,CAAA;YAChB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;SACzC,CAAC,CAAA;KACH,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QACP,MAAM,EAAE,iBAAiB,CAAC;YACxB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,IAAI,EAAE,iBAAiB,CAAC;YACtB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,QAAQ,EAAE,iBAAiB,CAAC;YAC1B,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,iBAAiB,EAAE,iBAAiB,CAAC;YACnC,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;SACd,CAAC,CAAA;QACF,aAAa,EAAE,iBAAiB,CAAC;YAC/B,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;QACF,YAAY,EAAE,iBAAiB,CAAC;YAC9B,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,WAAW,EAAE,MAAM,GAAG,MAAM,CAAA;YAC5B,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;QACF,UAAU,EAAE,iBAAiB,CAAC;YAC5B,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,UAAU,CAAA;YACtB,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;QACF,UAAU,EAAE,iBAAiB,CAAC;YAC5B,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;QACF,KAAK,EAAE,iBAAiB,CAAC;YACvB,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;QACF,QAAQ,EAAE,iBAAiB,CAAC;YAC1B,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;QACF,aAAa,EAAE,iBAAiB,CAAC;YAC/B,QAAQ,EAAE,QAAQ,CAAA;YAClB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,OAAO,CAAA;SACjB,CAAC,CAAA;KACH,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF,MAAM,MAAM,yBAAyB,GAAG,qBAAqB,CAAC;IAC5D,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QACP,YAAY,EAAE,iBAAiB,CAAC;YAC9B,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,MAAM,EAAE,iBAAiB,CAAC;YACxB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,OAAO,EAAE,iBAAiB,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,gBAAgB,CAAA;YAC5B,IAAI,EAAE,IAAI,CAAA;YACV,OAAO,EAAE,IAAI,CAAA;SACd,CAAC,CAAA;KACH,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF,MAAM,MAAM,kCAAkC,GAAG,qBAAqB,CAAC;IACrE,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE;QACP,UAAU,EAAE,iBAAiB,CAAC;YAC5B,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,KAAK,EAAE,iBAAiB,CAAC;YACvB,UAAU,EAAE,cAAc,GAAG,WAAW,CAAA;YACxC,IAAI,EAAE,MAAM,CAAA;YACZ,OAAO,EAAE,IAAI,CAAA;YACb,QAAQ,EAAE,QAAQ,CAAA;SACnB,CAAC,CAAA;QACF,OAAO,EAAE,iBAAiB,CAAC;YACzB,QAAQ,EAAE,MAAM,CAAA;YAChB,UAAU,EAAE,gBAAgB,CAAA;YAC5B,IAAI,EAAE,IAAI,CAAA;YACV,OAAO,EAAE,IAAI,CAAA;SACd,CAAC,CAAA;KACH,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAC3B,CAAC,CAAA;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,UAAU,EAAE,sBAAsB,CAAA;IAClC,aAAa,EAAE,yBAAyB,CAAA;IACxC,aAAa,CAAC,EAAE,yBAAyB,CAAA;IACzC,uBAAuB,CAAC,EAAE,kCAAkC,CAAA;CAC7D,CAAA"}
package/lib/mysql.js CHANGED
@@ -1,69 +1,76 @@
1
- import { and, eq } from "drizzle-orm";
2
- import { int, timestamp, primaryKey, varchar, mysqlTable, index, } from "drizzle-orm/mysql-core";
3
- import { randomUUID } from "crypto";
4
- export const mysqlUsersTable = mysqlTable("user", {
5
- id: varchar("id", { length: 255 })
6
- .primaryKey()
7
- .$defaultFn(() => randomUUID()),
8
- name: varchar("name", { length: 255 }),
9
- email: varchar("email", { length: 255 }).notNull().unique(),
10
- emailVerified: timestamp("emailVerified", { mode: "date", fsp: 3 }),
11
- image: varchar("image", { length: 255 }),
12
- });
13
- export const mysqlAccountsTable = mysqlTable("account", {
14
- userId: varchar("userId", { length: 255 })
15
- .notNull()
16
- .references(() => mysqlUsersTable.id, { onDelete: "cascade" }),
17
- type: varchar("type", { length: 255 }).notNull(),
18
- provider: varchar("provider", { length: 255 }).notNull(),
19
- providerAccountId: varchar("providerAccountId", { length: 255 }).notNull(),
20
- refresh_token: varchar("refresh_token", { length: 255 }),
21
- access_token: varchar("access_token", { length: 255 }),
22
- expires_at: int("expires_at"),
23
- token_type: varchar("token_type", { length: 255 }),
24
- scope: varchar("scope", { length: 255 }),
25
- id_token: varchar("id_token", { length: 2048 }),
26
- session_state: varchar("session_state", { length: 255 }),
27
- }, (account) => ({
28
- compositePk: primaryKey({
29
- columns: [account.provider, account.providerAccountId],
30
- }),
31
- userIdIdx: index("Account_userId_index").on(account.userId),
32
- }));
33
- export const mysqlSessionsTable = mysqlTable("session", {
34
- id: varchar("id", { length: 255 })
35
- .primaryKey()
36
- .$defaultFn(() => randomUUID()),
37
- sessionToken: varchar("sessionToken", { length: 255 }).notNull().unique(),
38
- userId: varchar("userId", { length: 255 })
39
- .notNull()
40
- .references(() => mysqlUsersTable.id, { onDelete: "cascade" }),
41
- expires: timestamp("expires", { mode: "date" }).notNull(),
42
- }, (session) => ({
43
- userIdIdx: index("Session_userId_index").on(session.userId),
44
- }));
45
- export const mysqlVerificationTokensTable = mysqlTable("verificationToken", {
46
- identifier: varchar("identifier", { length: 255 }).notNull(),
47
- token: varchar("token", { length: 255 }).notNull().unique(),
48
- expires: timestamp("expires", { mode: "date" }).notNull(),
49
- }, (vt) => ({
50
- compositePk: primaryKey({ columns: [vt.identifier, vt.token] }),
51
- }));
52
- export function MySqlDrizzleAdapter(client, schema = {
53
- usersTable: mysqlUsersTable,
54
- accountsTable: mysqlAccountsTable,
55
- sessionsTable: mysqlSessionsTable,
56
- verificationTokensTable: mysqlVerificationTokensTable,
57
- }) {
58
- const { usersTable, accountsTable, sessionsTable, verificationTokensTable } = schema;
1
+ import { and, eq, getTableColumns } from "drizzle-orm";
2
+ import { 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
+ }, (vt) => ({
52
+ compositePk: primaryKey({ columns: [vt.identifier, vt.token] }),
53
+ })));
54
+ return {
55
+ usersTable,
56
+ accountsTable,
57
+ sessionsTable,
58
+ verificationTokensTable,
59
+ };
60
+ }
61
+ export function MySqlDrizzleAdapter(client, schema) {
62
+ const { usersTable, accountsTable, sessionsTable, verificationTokensTable } = defineTables(schema);
59
63
  return {
60
64
  async createUser(data) {
61
- const id = randomUUID();
62
- await client.insert(usersTable).values({ ...data, id });
65
+ const { id, ...insertData } = data;
66
+ const hasDefaultId = getTableColumns(usersTable)["id"]["hasDefault"];
67
+ await client
68
+ .insert(usersTable)
69
+ .values(hasDefaultId ? insertData : { ...insertData, id });
63
70
  return client
64
71
  .select()
65
72
  .from(usersTable)
66
- .where(eq(usersTable.id, id))
73
+ .where(eq(usersTable.email, data.email))
67
74
  .then((res) => res[0]);
68
75
  },
69
76
  async getUser(userId) {
@@ -81,12 +88,11 @@ export function MySqlDrizzleAdapter(client, schema = {
81
88
  .then((res) => (res.length > 0 ? res[0] : null));
82
89
  },
83
90
  async createSession(data) {
84
- const id = randomUUID();
85
- await client.insert(sessionsTable).values({ ...data, id });
91
+ await client.insert(sessionsTable).values(data);
86
92
  return client
87
93
  .select()
88
94
  .from(sessionsTable)
89
- .where(eq(sessionsTable.id, id))
95
+ .where(eq(sessionsTable.sessionToken, data.sessionToken))
90
96
  .then((res) => res[0]);
91
97
  },
92
98
  async getSessionAndUser(sessionToken) {