@auth/drizzle-adapter 1.0.0 → 1.0.1
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/index.d.ts +62 -72
- package/index.d.ts.map +1 -1
- package/index.js +62 -72
- package/lib/mysql.d.ts +230 -70
- package/lib/mysql.d.ts.map +1 -1
- package/lib/mysql.js +17 -21
- package/lib/pg.d.ts +229 -70
- package/lib/pg.d.ts.map +1 -1
- package/lib/pg.js +9 -17
- package/lib/sqlite.d.ts +229 -70
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +14 -16
- package/lib/utils.d.ts +6 -6
- package/lib/utils.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/index.ts +62 -88
- package/src/lib/mysql.ts +221 -57
- package/src/lib/pg.ts +213 -51
- package/src/lib/sqlite.ts +215 -47
- package/src/lib/utils.ts +14 -13
package/src/lib/pg.ts
CHANGED
|
@@ -1,43 +1,41 @@
|
|
|
1
|
-
import { and, eq } from "drizzle-orm"
|
|
1
|
+
import { and, eq, getTableColumns } from "drizzle-orm"
|
|
2
2
|
import {
|
|
3
|
-
|
|
4
|
-
text,
|
|
5
|
-
primaryKey,
|
|
6
|
-
integer,
|
|
3
|
+
PgColumn,
|
|
7
4
|
PgDatabase,
|
|
8
|
-
pgTable,
|
|
9
|
-
index,
|
|
10
5
|
PgTableWithColumns,
|
|
11
6
|
QueryResultHKT,
|
|
12
|
-
|
|
7
|
+
integer,
|
|
8
|
+
pgTable,
|
|
9
|
+
primaryKey,
|
|
10
|
+
text,
|
|
11
|
+
timestamp,
|
|
13
12
|
} from "drizzle-orm/pg-core"
|
|
14
13
|
|
|
15
14
|
import type {
|
|
16
15
|
Adapter,
|
|
17
16
|
AdapterAccount,
|
|
18
|
-
AdapterUser,
|
|
19
17
|
AdapterSession,
|
|
18
|
+
AdapterUser,
|
|
20
19
|
VerificationToken,
|
|
21
20
|
} from "@auth/core/adapters"
|
|
22
|
-
import { randomUUID } from "crypto"
|
|
23
21
|
|
|
24
|
-
export const postgresUsersTable = pgTable("user"
|
|
22
|
+
export const postgresUsersTable = pgTable("user", {
|
|
25
23
|
id: text("id")
|
|
26
24
|
.primaryKey()
|
|
27
|
-
.$defaultFn(() => randomUUID()),
|
|
25
|
+
.$defaultFn(() => crypto.randomUUID()),
|
|
28
26
|
name: text("name"),
|
|
29
|
-
email: text("email").notNull()
|
|
27
|
+
email: text("email").notNull(),
|
|
30
28
|
emailVerified: timestamp("emailVerified", { mode: "date" }),
|
|
31
29
|
image: text("image"),
|
|
32
|
-
})
|
|
30
|
+
}) satisfies DefaultPostgresUsersTable
|
|
33
31
|
|
|
34
32
|
export const postgresAccountsTable = pgTable(
|
|
35
|
-
"account"
|
|
33
|
+
"account",
|
|
36
34
|
{
|
|
37
35
|
userId: text("userId")
|
|
38
36
|
.notNull()
|
|
39
37
|
.references(() => postgresUsersTable.id, { onDelete: "cascade" }),
|
|
40
|
-
type: text("type").notNull(),
|
|
38
|
+
type: text("type").$type<AdapterAccount["type"]>().notNull(),
|
|
41
39
|
provider: text("provider").notNull(),
|
|
42
40
|
providerAccountId: text("providerAccountId").notNull(),
|
|
43
41
|
refresh_token: text("refresh_token"),
|
|
@@ -50,38 +48,26 @@ export const postgresAccountsTable = pgTable(
|
|
|
50
48
|
},
|
|
51
49
|
(table) => {
|
|
52
50
|
return {
|
|
53
|
-
userIdIdx: index().on(table.userId),
|
|
54
51
|
compositePk: primaryKey({
|
|
55
52
|
columns: [table.provider, table.providerAccountId],
|
|
56
53
|
}),
|
|
57
54
|
}
|
|
58
55
|
}
|
|
59
|
-
)
|
|
56
|
+
) satisfies DefaultPostgresAccountsTable
|
|
60
57
|
|
|
61
|
-
export const postgresSessionsTable = pgTable(
|
|
62
|
-
"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
userId: text("userId")
|
|
69
|
-
.notNull()
|
|
70
|
-
.references(() => postgresUsersTable.id, { onDelete: "cascade" }),
|
|
71
|
-
expires: timestamp("expires", { mode: "date" }).notNull(),
|
|
72
|
-
},
|
|
73
|
-
(table) => {
|
|
74
|
-
return {
|
|
75
|
-
userIdIdx: index().on(table.userId),
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
)
|
|
58
|
+
export const postgresSessionsTable = pgTable("session", {
|
|
59
|
+
sessionToken: text("sessionToken").primaryKey(),
|
|
60
|
+
userId: text("userId")
|
|
61
|
+
.notNull()
|
|
62
|
+
.references(() => postgresUsersTable.id, { onDelete: "cascade" }),
|
|
63
|
+
expires: timestamp("expires", { mode: "date" }).notNull(),
|
|
64
|
+
}) satisfies DefaultPostgresSessionsTable
|
|
79
65
|
|
|
80
66
|
export const postgresVerificationTokensTable = pgTable(
|
|
81
|
-
"verificationToken"
|
|
67
|
+
"verificationToken",
|
|
82
68
|
{
|
|
83
69
|
identifier: text("identifier").notNull(),
|
|
84
|
-
token: text("token").notNull()
|
|
70
|
+
token: text("token").notNull(),
|
|
85
71
|
expires: timestamp("expires", { mode: "date" }).notNull(),
|
|
86
72
|
},
|
|
87
73
|
(table) => {
|
|
@@ -89,7 +75,7 @@ export const postgresVerificationTokensTable = pgTable(
|
|
|
89
75
|
compositePk: primaryKey({ columns: [table.identifier, table.token] }),
|
|
90
76
|
}
|
|
91
77
|
}
|
|
92
|
-
)
|
|
78
|
+
) satisfies DefaultPostgresVerificationTokenTable
|
|
93
79
|
|
|
94
80
|
export function PostgresDrizzleAdapter(
|
|
95
81
|
client: PgDatabase<QueryResultHKT, any>,
|
|
@@ -104,10 +90,12 @@ export function PostgresDrizzleAdapter(
|
|
|
104
90
|
schema
|
|
105
91
|
|
|
106
92
|
return {
|
|
107
|
-
async createUser(data:
|
|
93
|
+
async createUser(data: AdapterUser) {
|
|
94
|
+
const hasDefaultId = getTableColumns(usersTable)["id"]["hasDefault"]
|
|
95
|
+
|
|
108
96
|
return client
|
|
109
97
|
.insert(usersTable)
|
|
110
|
-
.values(data)
|
|
98
|
+
.values(hasDefaultId ? data : { ...data, id: crypto.randomUUID() })
|
|
111
99
|
.returning()
|
|
112
100
|
.then((res) => res[0])
|
|
113
101
|
},
|
|
@@ -239,18 +227,192 @@ export function PostgresDrizzleAdapter(
|
|
|
239
227
|
}
|
|
240
228
|
}
|
|
241
229
|
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
230
|
+
type DefaultPostgresColumn<
|
|
231
|
+
T extends {
|
|
232
|
+
data: string | number | Date
|
|
233
|
+
dataType: "string" | "number" | "date"
|
|
234
|
+
notNull: boolean
|
|
235
|
+
columnType: "PgVarchar" | "PgText" | "PgTimestamp" | "PgInteger" | "PgUUID"
|
|
236
|
+
},
|
|
237
|
+
> = PgColumn<{
|
|
238
|
+
name: string
|
|
239
|
+
columnType: T["columnType"]
|
|
240
|
+
data: T["data"]
|
|
241
|
+
driverParam: string | number
|
|
242
|
+
notNull: T["notNull"]
|
|
243
|
+
hasDefault: boolean
|
|
244
|
+
enumValues: any
|
|
245
|
+
dataType: T["dataType"]
|
|
246
|
+
tableName: string
|
|
247
|
+
}>
|
|
248
|
+
|
|
249
|
+
export type DefaultPostgresUsersTable = PgTableWithColumns<{
|
|
250
|
+
name: string
|
|
251
|
+
columns: {
|
|
252
|
+
id: DefaultPostgresColumn<{
|
|
253
|
+
columnType: "PgVarchar" | "PgText" | "PgUUID"
|
|
254
|
+
data: string
|
|
255
|
+
notNull: true
|
|
256
|
+
dataType: "string"
|
|
257
|
+
}>
|
|
258
|
+
name: DefaultPostgresColumn<{
|
|
259
|
+
columnType: "PgVarchar" | "PgText"
|
|
260
|
+
data: string
|
|
261
|
+
notNull: boolean
|
|
262
|
+
dataType: "string"
|
|
263
|
+
}>
|
|
264
|
+
email: DefaultPostgresColumn<{
|
|
265
|
+
columnType: "PgVarchar" | "PgText"
|
|
266
|
+
data: string
|
|
267
|
+
notNull: true
|
|
268
|
+
dataType: "string"
|
|
269
|
+
}>
|
|
270
|
+
emailVerified: DefaultPostgresColumn<{
|
|
271
|
+
dataType: "date"
|
|
272
|
+
columnType: "PgTimestamp"
|
|
273
|
+
data: Date
|
|
274
|
+
notNull: boolean
|
|
275
|
+
}>
|
|
276
|
+
image: DefaultPostgresColumn<{
|
|
277
|
+
dataType: "string"
|
|
278
|
+
columnType: "PgVarchar" | "PgText"
|
|
279
|
+
data: string
|
|
280
|
+
notNull: boolean
|
|
281
|
+
}>
|
|
282
|
+
}
|
|
283
|
+
dialect: "pg"
|
|
284
|
+
schema: string | undefined
|
|
285
|
+
}>
|
|
286
|
+
|
|
287
|
+
export type DefaultPostgresAccountsTable = PgTableWithColumns<{
|
|
288
|
+
name: string
|
|
289
|
+
columns: {
|
|
290
|
+
userId: DefaultPostgresColumn<{
|
|
291
|
+
columnType: "PgVarchar" | "PgText" | "PgUUID"
|
|
292
|
+
data: string
|
|
293
|
+
notNull: true
|
|
294
|
+
dataType: "string"
|
|
295
|
+
}>
|
|
296
|
+
type: DefaultPostgresColumn<{
|
|
297
|
+
columnType: "PgVarchar" | "PgText"
|
|
298
|
+
data: string
|
|
299
|
+
notNull: true
|
|
300
|
+
dataType: "string"
|
|
301
|
+
}>
|
|
302
|
+
provider: DefaultPostgresColumn<{
|
|
303
|
+
columnType: "PgVarchar" | "PgText"
|
|
304
|
+
data: string
|
|
305
|
+
notNull: true
|
|
306
|
+
dataType: "string"
|
|
307
|
+
}>
|
|
308
|
+
providerAccountId: DefaultPostgresColumn<{
|
|
309
|
+
dataType: "string"
|
|
310
|
+
columnType: "PgVarchar" | "PgText"
|
|
311
|
+
data: string
|
|
312
|
+
notNull: true
|
|
313
|
+
}>
|
|
314
|
+
refresh_token: DefaultPostgresColumn<{
|
|
315
|
+
dataType: "string"
|
|
316
|
+
columnType: "PgVarchar" | "PgText"
|
|
317
|
+
data: string
|
|
318
|
+
notNull: boolean
|
|
319
|
+
}>
|
|
320
|
+
access_token: DefaultPostgresColumn<{
|
|
321
|
+
dataType: "string"
|
|
322
|
+
columnType: "PgVarchar" | "PgText"
|
|
323
|
+
data: string
|
|
324
|
+
notNull: boolean
|
|
325
|
+
}>
|
|
326
|
+
expires_at: DefaultPostgresColumn<{
|
|
327
|
+
dataType: "number"
|
|
328
|
+
columnType: "PgInteger"
|
|
329
|
+
data: number
|
|
330
|
+
notNull: boolean
|
|
331
|
+
}>
|
|
332
|
+
token_type: DefaultPostgresColumn<{
|
|
333
|
+
dataType: "string"
|
|
334
|
+
columnType: "PgVarchar" | "PgText"
|
|
335
|
+
data: string
|
|
336
|
+
notNull: boolean
|
|
337
|
+
}>
|
|
338
|
+
scope: DefaultPostgresColumn<{
|
|
339
|
+
dataType: "string"
|
|
340
|
+
columnType: "PgVarchar" | "PgText"
|
|
341
|
+
data: string
|
|
342
|
+
notNull: boolean
|
|
343
|
+
}>
|
|
344
|
+
id_token: DefaultPostgresColumn<{
|
|
345
|
+
dataType: "string"
|
|
346
|
+
columnType: "PgVarchar" | "PgText"
|
|
347
|
+
data: string
|
|
348
|
+
notNull: boolean
|
|
349
|
+
}>
|
|
350
|
+
session_state: DefaultPostgresColumn<{
|
|
351
|
+
dataType: "string"
|
|
352
|
+
columnType: "PgVarchar" | "PgText"
|
|
353
|
+
data: string
|
|
354
|
+
notNull: boolean
|
|
355
|
+
}>
|
|
356
|
+
}
|
|
357
|
+
dialect: "pg"
|
|
358
|
+
schema: string | undefined
|
|
359
|
+
}>
|
|
360
|
+
|
|
361
|
+
export type DefaultPostgresSessionsTable = PgTableWithColumns<{
|
|
362
|
+
name: string
|
|
363
|
+
columns: {
|
|
364
|
+
sessionToken: DefaultPostgresColumn<{
|
|
365
|
+
columnType: "PgVarchar" | "PgText"
|
|
366
|
+
data: string
|
|
367
|
+
notNull: true
|
|
368
|
+
dataType: "string"
|
|
369
|
+
}>
|
|
370
|
+
userId: DefaultPostgresColumn<{
|
|
371
|
+
columnType: "PgVarchar" | "PgText" | "PgUUID"
|
|
372
|
+
data: string
|
|
373
|
+
notNull: true
|
|
374
|
+
dataType: "string"
|
|
375
|
+
}>
|
|
376
|
+
expires: DefaultPostgresColumn<{
|
|
377
|
+
dataType: "date"
|
|
378
|
+
columnType: "PgTimestamp"
|
|
379
|
+
data: Date
|
|
380
|
+
notNull: true
|
|
381
|
+
}>
|
|
382
|
+
}
|
|
383
|
+
dialect: "pg"
|
|
384
|
+
schema: string | undefined
|
|
385
|
+
}>
|
|
386
|
+
|
|
387
|
+
export type DefaultPostgresVerificationTokenTable = PgTableWithColumns<{
|
|
388
|
+
name: string
|
|
389
|
+
columns: {
|
|
390
|
+
identifier: DefaultPostgresColumn<{
|
|
391
|
+
columnType: "PgVarchar" | "PgText"
|
|
392
|
+
data: string
|
|
393
|
+
notNull: true
|
|
394
|
+
dataType: "string"
|
|
395
|
+
}>
|
|
396
|
+
token: DefaultPostgresColumn<{
|
|
397
|
+
columnType: "PgVarchar" | "PgText"
|
|
398
|
+
data: string
|
|
399
|
+
notNull: true
|
|
400
|
+
dataType: "string"
|
|
401
|
+
}>
|
|
402
|
+
expires: DefaultPostgresColumn<{
|
|
403
|
+
dataType: "date"
|
|
404
|
+
columnType: "PgTimestamp"
|
|
405
|
+
data: Date
|
|
406
|
+
notNull: true
|
|
407
|
+
}>
|
|
408
|
+
}
|
|
409
|
+
dialect: "pg"
|
|
246
410
|
schema: string | undefined
|
|
247
411
|
}>
|
|
248
412
|
|
|
249
413
|
export type DefaultPostgresSchema = {
|
|
250
|
-
usersTable:
|
|
251
|
-
accountsTable:
|
|
252
|
-
sessionsTable:
|
|
253
|
-
verificationTokensTable:
|
|
254
|
-
(typeof postgresVerificationTokensTable)["_"]["config"]
|
|
255
|
-
>
|
|
414
|
+
usersTable: DefaultPostgresUsersTable
|
|
415
|
+
accountsTable: DefaultPostgresAccountsTable
|
|
416
|
+
sessionsTable: DefaultPostgresSessionsTable
|
|
417
|
+
verificationTokensTable: DefaultPostgresVerificationTokenTable
|
|
256
418
|
}
|
package/src/lib/sqlite.ts
CHANGED
|
@@ -1,41 +1,39 @@
|
|
|
1
|
-
import { eq,
|
|
1
|
+
import { and, eq, getTableColumns } from "drizzle-orm"
|
|
2
2
|
import {
|
|
3
|
+
BaseSQLiteDatabase,
|
|
4
|
+
SQLiteColumn,
|
|
5
|
+
SQLiteTableWithColumns,
|
|
3
6
|
integer,
|
|
4
|
-
text,
|
|
5
7
|
primaryKey,
|
|
6
|
-
BaseSQLiteDatabase,
|
|
7
8
|
sqliteTable,
|
|
8
|
-
|
|
9
|
-
TableConfig,
|
|
10
|
-
SQLiteTableWithColumns,
|
|
9
|
+
text,
|
|
11
10
|
} from "drizzle-orm/sqlite-core"
|
|
12
11
|
|
|
13
12
|
import type {
|
|
14
13
|
Adapter,
|
|
15
14
|
AdapterAccount,
|
|
16
|
-
AdapterUser,
|
|
17
15
|
AdapterSession,
|
|
16
|
+
AdapterUser,
|
|
18
17
|
VerificationToken,
|
|
19
18
|
} from "@auth/core/adapters"
|
|
20
|
-
import { randomUUID } from "crypto"
|
|
21
19
|
|
|
22
|
-
export const sqliteUsersTable = sqliteTable("user"
|
|
20
|
+
export const sqliteUsersTable = sqliteTable("user", {
|
|
23
21
|
id: text("id")
|
|
24
22
|
.primaryKey()
|
|
25
|
-
.$defaultFn(() => randomUUID()),
|
|
23
|
+
.$defaultFn(() => crypto.randomUUID()),
|
|
26
24
|
name: text("name"),
|
|
27
|
-
email: text("email").notNull()
|
|
25
|
+
email: text("email").notNull(),
|
|
28
26
|
emailVerified: integer("emailVerified", { mode: "timestamp_ms" }),
|
|
29
27
|
image: text("image"),
|
|
30
|
-
})
|
|
28
|
+
}) satisfies DefaultSQLiteUsersTable
|
|
31
29
|
|
|
32
30
|
export const sqliteAccountsTable = sqliteTable(
|
|
33
|
-
"account"
|
|
31
|
+
"account",
|
|
34
32
|
{
|
|
35
33
|
userId: text("userId")
|
|
36
34
|
.notNull()
|
|
37
35
|
.references(() => sqliteUsersTable.id, { onDelete: "cascade" }),
|
|
38
|
-
type: text("type").notNull(),
|
|
36
|
+
type: text("type").$type<AdapterAccount["type"]>().notNull(),
|
|
39
37
|
provider: text("provider").notNull(),
|
|
40
38
|
providerAccountId: text("providerAccountId").notNull(),
|
|
41
39
|
refresh_token: text("refresh_token"),
|
|
@@ -47,41 +45,31 @@ export const sqliteAccountsTable = sqliteTable(
|
|
|
47
45
|
session_state: text("session_state"),
|
|
48
46
|
},
|
|
49
47
|
(account) => ({
|
|
50
|
-
userIdIdx: index("Account_userId_index").on(account.userId),
|
|
51
48
|
compositePk: primaryKey({
|
|
52
49
|
columns: [account.provider, account.providerAccountId],
|
|
53
50
|
}),
|
|
54
51
|
})
|
|
55
|
-
)
|
|
52
|
+
) satisfies DefaultSQLiteAccountsTable
|
|
56
53
|
|
|
57
|
-
export const sqliteSessionsTable = sqliteTable(
|
|
58
|
-
"
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
userId: text("userId")
|
|
65
|
-
.notNull()
|
|
66
|
-
.references(() => sqliteUsersTable.id, { onDelete: "cascade" }),
|
|
67
|
-
expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
|
|
68
|
-
},
|
|
69
|
-
(table) => ({
|
|
70
|
-
userIdIdx: index("Session_userId_index").on(table.userId),
|
|
71
|
-
})
|
|
72
|
-
)
|
|
54
|
+
export const sqliteSessionsTable = sqliteTable("session", {
|
|
55
|
+
sessionToken: text("sessionToken").primaryKey(),
|
|
56
|
+
userId: text("userId")
|
|
57
|
+
.notNull()
|
|
58
|
+
.references(() => sqliteUsersTable.id, { onDelete: "cascade" }),
|
|
59
|
+
expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
|
|
60
|
+
}) satisfies DefaultSQLiteSessionsTable
|
|
73
61
|
|
|
74
62
|
export const sqliteVerificationTokensTable = sqliteTable(
|
|
75
|
-
"verificationToken"
|
|
63
|
+
"verificationToken",
|
|
76
64
|
{
|
|
77
65
|
identifier: text("identifier").notNull(),
|
|
78
|
-
token: text("token").notNull()
|
|
66
|
+
token: text("token").notNull(),
|
|
79
67
|
expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
|
|
80
68
|
},
|
|
81
69
|
(vt) => ({
|
|
82
70
|
compositePk: primaryKey({ columns: [vt.identifier, vt.token] }),
|
|
83
71
|
})
|
|
84
|
-
)
|
|
72
|
+
) satisfies DefaultSQLiteVerificationTokenTable
|
|
85
73
|
|
|
86
74
|
export function SQLiteDrizzleAdapter(
|
|
87
75
|
client: BaseSQLiteDatabase<"sync" | "async", any, any>,
|
|
@@ -96,8 +84,14 @@ export function SQLiteDrizzleAdapter(
|
|
|
96
84
|
schema
|
|
97
85
|
|
|
98
86
|
return {
|
|
99
|
-
async createUser(data:
|
|
100
|
-
|
|
87
|
+
async createUser(data: AdapterUser) {
|
|
88
|
+
const hasDefaultId = getTableColumns(usersTable)["id"]["hasDefault"]
|
|
89
|
+
|
|
90
|
+
return client
|
|
91
|
+
.insert(usersTable)
|
|
92
|
+
.values(hasDefaultId ? data : { ...data, id: crypto.randomUUID() })
|
|
93
|
+
.returning()
|
|
94
|
+
.get()
|
|
101
95
|
},
|
|
102
96
|
async getUser(userId: string) {
|
|
103
97
|
const result = await client
|
|
@@ -236,18 +230,192 @@ export function SQLiteDrizzleAdapter(
|
|
|
236
230
|
}
|
|
237
231
|
}
|
|
238
232
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
233
|
+
type DefaultSQLiteColumn<
|
|
234
|
+
T extends {
|
|
235
|
+
data: string | number | Date
|
|
236
|
+
dataType: "string" | "number" | "date"
|
|
237
|
+
notNull: boolean
|
|
238
|
+
columnType: "SQLiteText" | "SQLiteTimestamp" | "SQLiteInteger"
|
|
239
|
+
},
|
|
240
|
+
> = SQLiteColumn<{
|
|
241
|
+
name: string
|
|
242
|
+
columnType: T["columnType"]
|
|
243
|
+
data: T["data"]
|
|
244
|
+
driverParam: string | number
|
|
245
|
+
notNull: T["notNull"]
|
|
246
|
+
hasDefault: boolean
|
|
247
|
+
enumValues: any
|
|
248
|
+
dataType: T["dataType"]
|
|
249
|
+
tableName: string
|
|
250
|
+
}>
|
|
251
|
+
|
|
252
|
+
export type DefaultSQLiteUsersTable = SQLiteTableWithColumns<{
|
|
253
|
+
name: string
|
|
254
|
+
columns: {
|
|
255
|
+
id: DefaultSQLiteColumn<{
|
|
256
|
+
columnType: "SQLiteText"
|
|
257
|
+
data: string
|
|
258
|
+
notNull: true
|
|
259
|
+
dataType: "string"
|
|
260
|
+
}>
|
|
261
|
+
name: DefaultSQLiteColumn<{
|
|
262
|
+
columnType: "SQLiteText"
|
|
263
|
+
data: string
|
|
264
|
+
notNull: boolean
|
|
265
|
+
dataType: "string"
|
|
266
|
+
}>
|
|
267
|
+
email: DefaultSQLiteColumn<{
|
|
268
|
+
columnType: "SQLiteText"
|
|
269
|
+
data: string
|
|
270
|
+
notNull: true
|
|
271
|
+
dataType: "string"
|
|
272
|
+
}>
|
|
273
|
+
emailVerified: DefaultSQLiteColumn<{
|
|
274
|
+
dataType: "date"
|
|
275
|
+
columnType: "SQLiteTimestamp"
|
|
276
|
+
data: Date
|
|
277
|
+
notNull: boolean
|
|
278
|
+
}>
|
|
279
|
+
image: DefaultSQLiteColumn<{
|
|
280
|
+
dataType: "string"
|
|
281
|
+
columnType: "SQLiteText"
|
|
282
|
+
data: string
|
|
283
|
+
notNull: boolean
|
|
284
|
+
}>
|
|
285
|
+
}
|
|
286
|
+
dialect: "sqlite"
|
|
287
|
+
schema: string | undefined
|
|
288
|
+
}>
|
|
289
|
+
|
|
290
|
+
export type DefaultSQLiteAccountsTable = SQLiteTableWithColumns<{
|
|
291
|
+
name: string
|
|
292
|
+
columns: {
|
|
293
|
+
userId: DefaultSQLiteColumn<{
|
|
294
|
+
columnType: "SQLiteText"
|
|
295
|
+
data: string
|
|
296
|
+
notNull: true
|
|
297
|
+
dataType: "string"
|
|
298
|
+
}>
|
|
299
|
+
type: DefaultSQLiteColumn<{
|
|
300
|
+
columnType: "SQLiteText"
|
|
301
|
+
data: string
|
|
302
|
+
notNull: true
|
|
303
|
+
dataType: "string"
|
|
304
|
+
}>
|
|
305
|
+
provider: DefaultSQLiteColumn<{
|
|
306
|
+
columnType: "SQLiteText"
|
|
307
|
+
data: string
|
|
308
|
+
notNull: true
|
|
309
|
+
dataType: "string"
|
|
310
|
+
}>
|
|
311
|
+
providerAccountId: DefaultSQLiteColumn<{
|
|
312
|
+
dataType: "string"
|
|
313
|
+
columnType: "SQLiteText"
|
|
314
|
+
data: string
|
|
315
|
+
notNull: true
|
|
316
|
+
}>
|
|
317
|
+
refresh_token: DefaultSQLiteColumn<{
|
|
318
|
+
dataType: "string"
|
|
319
|
+
columnType: "SQLiteText"
|
|
320
|
+
data: string
|
|
321
|
+
notNull: boolean
|
|
322
|
+
}>
|
|
323
|
+
access_token: DefaultSQLiteColumn<{
|
|
324
|
+
dataType: "string"
|
|
325
|
+
columnType: "SQLiteText"
|
|
326
|
+
data: string
|
|
327
|
+
notNull: boolean
|
|
328
|
+
}>
|
|
329
|
+
expires_at: DefaultSQLiteColumn<{
|
|
330
|
+
dataType: "number"
|
|
331
|
+
columnType: "SQLiteInteger"
|
|
332
|
+
data: number
|
|
333
|
+
notNull: boolean
|
|
334
|
+
}>
|
|
335
|
+
token_type: DefaultSQLiteColumn<{
|
|
336
|
+
dataType: "string"
|
|
337
|
+
columnType: "SQLiteText"
|
|
338
|
+
data: string
|
|
339
|
+
notNull: boolean
|
|
340
|
+
}>
|
|
341
|
+
scope: DefaultSQLiteColumn<{
|
|
342
|
+
dataType: "string"
|
|
343
|
+
columnType: "SQLiteText"
|
|
344
|
+
data: string
|
|
345
|
+
notNull: boolean
|
|
346
|
+
}>
|
|
347
|
+
id_token: DefaultSQLiteColumn<{
|
|
348
|
+
dataType: "string"
|
|
349
|
+
columnType: "SQLiteText"
|
|
350
|
+
data: string
|
|
351
|
+
notNull: boolean
|
|
352
|
+
}>
|
|
353
|
+
session_state: DefaultSQLiteColumn<{
|
|
354
|
+
dataType: "string"
|
|
355
|
+
columnType: "SQLiteText"
|
|
356
|
+
data: string
|
|
357
|
+
notNull: boolean
|
|
358
|
+
}>
|
|
359
|
+
}
|
|
360
|
+
dialect: "sqlite"
|
|
361
|
+
schema: string | undefined
|
|
362
|
+
}>
|
|
363
|
+
|
|
364
|
+
export type DefaultSQLiteSessionsTable = SQLiteTableWithColumns<{
|
|
365
|
+
name: string
|
|
366
|
+
columns: {
|
|
367
|
+
sessionToken: DefaultSQLiteColumn<{
|
|
368
|
+
columnType: "SQLiteText"
|
|
369
|
+
data: string
|
|
370
|
+
notNull: true
|
|
371
|
+
dataType: "string"
|
|
372
|
+
}>
|
|
373
|
+
userId: DefaultSQLiteColumn<{
|
|
374
|
+
columnType: "SQLiteText"
|
|
375
|
+
data: string
|
|
376
|
+
notNull: true
|
|
377
|
+
dataType: "string"
|
|
378
|
+
}>
|
|
379
|
+
expires: DefaultSQLiteColumn<{
|
|
380
|
+
dataType: "date"
|
|
381
|
+
columnType: "SQLiteTimestamp"
|
|
382
|
+
data: Date
|
|
383
|
+
notNull: true
|
|
384
|
+
}>
|
|
385
|
+
}
|
|
386
|
+
dialect: "sqlite"
|
|
387
|
+
schema: string | undefined
|
|
388
|
+
}>
|
|
389
|
+
|
|
390
|
+
export type DefaultSQLiteVerificationTokenTable = SQLiteTableWithColumns<{
|
|
391
|
+
name: string
|
|
392
|
+
columns: {
|
|
393
|
+
identifier: DefaultSQLiteColumn<{
|
|
394
|
+
columnType: "SQLiteText"
|
|
395
|
+
data: string
|
|
396
|
+
notNull: true
|
|
397
|
+
dataType: "string"
|
|
398
|
+
}>
|
|
399
|
+
token: DefaultSQLiteColumn<{
|
|
400
|
+
columnType: "SQLiteText"
|
|
401
|
+
data: string
|
|
402
|
+
notNull: true
|
|
403
|
+
dataType: "string"
|
|
404
|
+
}>
|
|
405
|
+
expires: DefaultSQLiteColumn<{
|
|
406
|
+
dataType: "date"
|
|
407
|
+
columnType: "SQLiteTimestamp"
|
|
408
|
+
data: Date
|
|
409
|
+
notNull: true
|
|
410
|
+
}>
|
|
411
|
+
}
|
|
412
|
+
dialect: "sqlite"
|
|
243
413
|
schema: string | undefined
|
|
244
414
|
}>
|
|
245
415
|
|
|
246
416
|
export type DefaultSQLiteSchema = {
|
|
247
|
-
usersTable:
|
|
248
|
-
accountsTable:
|
|
249
|
-
sessionsTable:
|
|
250
|
-
verificationTokensTable:
|
|
251
|
-
(typeof sqliteVerificationTokensTable)["_"]["config"]
|
|
252
|
-
>
|
|
417
|
+
usersTable: DefaultSQLiteUsersTable
|
|
418
|
+
accountsTable: DefaultSQLiteAccountsTable
|
|
419
|
+
sessionsTable: DefaultSQLiteSessionsTable
|
|
420
|
+
verificationTokensTable: DefaultSQLiteVerificationTokenTable
|
|
253
421
|
}
|
package/src/lib/utils.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import { MySqlDatabase } from "drizzle-orm/mysql-core"
|
|
2
|
-
import { PgDatabase } from "drizzle-orm/pg-core"
|
|
3
|
-
import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core"
|
|
4
1
|
import type {
|
|
5
2
|
QueryResultHKT as MySQLQueryResultHKT,
|
|
6
3
|
PreparedQueryHKTBase,
|
|
7
4
|
} from "drizzle-orm/mysql-core"
|
|
5
|
+
import { MySqlDatabase } from "drizzle-orm/mysql-core"
|
|
8
6
|
import type { QueryResultHKT as PostgresQueryResultHKT } from "drizzle-orm/pg-core"
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import { DefaultMySqlSchema } from "./mysql"
|
|
7
|
+
import { PgDatabase } from "drizzle-orm/pg-core"
|
|
8
|
+
import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core"
|
|
9
|
+
import { DefaultMySqlSchema } from "./mysql.js"
|
|
10
|
+
import { DefaultPostgresSchema } from "./pg.js"
|
|
11
|
+
import { DefaultSQLiteSchema } from "./sqlite.js"
|
|
12
12
|
|
|
13
13
|
type AnyPostgresDatabase = PgDatabase<PostgresQueryResultHKT, any>
|
|
14
14
|
type AnyMySqlDatabase = MySqlDatabase<
|
|
@@ -23,10 +23,11 @@ export type SqlFlavorOptions =
|
|
|
23
23
|
| AnyMySqlDatabase
|
|
24
24
|
| AnySQLiteDatabase
|
|
25
25
|
|
|
26
|
-
export type DefaultSchema<Flavor> =
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
26
|
+
export type DefaultSchema<Flavor extends SqlFlavorOptions> =
|
|
27
|
+
Flavor extends AnyMySqlDatabase
|
|
28
|
+
? DefaultMySqlSchema
|
|
29
|
+
: Flavor extends AnyPostgresDatabase
|
|
30
|
+
? DefaultPostgresSchema
|
|
31
|
+
: Flavor extends AnySQLiteDatabase
|
|
32
|
+
? DefaultSQLiteSchema
|
|
33
|
+
: never
|