@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/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
- timestamp,
4
- text,
5
- primaryKey,
6
- integer,
3
+ PgColumn,
7
4
  PgDatabase,
8
- pgTable,
9
- index,
10
5
  PgTableWithColumns,
11
6
  QueryResultHKT,
12
- TableConfig,
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" as string, {
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().unique(),
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" as string,
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
- "session" as string,
63
- {
64
- id: text("id")
65
- .primaryKey()
66
- .$defaultFn(() => randomUUID()),
67
- sessionToken: text("sessionToken").notNull().unique(),
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" as string,
67
+ "verificationToken",
82
68
  {
83
69
  identifier: text("identifier").notNull(),
84
- token: text("token").notNull().unique(),
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: Omit<AdapterUser, "id">) {
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
- export type PostgresTableFn<T extends TableConfig> = PgTableWithColumns<{
243
- name: T["name"]
244
- columns: T["columns"]
245
- dialect: T["dialect"]
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: PostgresTableFn<(typeof postgresUsersTable)["_"]["config"]>
251
- accountsTable: PostgresTableFn<(typeof postgresAccountsTable)["_"]["config"]>
252
- sessionsTable: PostgresTableFn<(typeof postgresSessionsTable)["_"]["config"]>
253
- verificationTokensTable: PostgresTableFn<
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, and } from "drizzle-orm"
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
- index,
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" as string, {
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().unique(),
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" as string,
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
- "session" as string,
59
- {
60
- id: text("id")
61
- .primaryKey()
62
- .$defaultFn(() => randomUUID()),
63
- sessionToken: text("sessionToken").notNull().unique(),
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" as string,
63
+ "verificationToken",
76
64
  {
77
65
  identifier: text("identifier").notNull(),
78
- token: text("token").notNull().unique(),
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: Omit<AdapterUser, "id">) {
100
- return client.insert(usersTable).values(data).returning().get()
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
- export type SQLiteTableFn<T extends TableConfig> = SQLiteTableWithColumns<{
240
- name: T["name"]
241
- columns: T["columns"]
242
- dialect: T["dialect"]
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: SQLiteTableFn<(typeof sqliteUsersTable)["_"]["config"]>
248
- accountsTable: SQLiteTableFn<(typeof sqliteAccountsTable)["_"]["config"]>
249
- sessionsTable: SQLiteTableFn<(typeof sqliteSessionsTable)["_"]["config"]>
250
- verificationTokensTable: SQLiteTableFn<
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 { DefaultSQLiteSchema } from "./sqlite"
10
- import { DefaultPostgresSchema } from "./pg"
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> = Flavor extends AnyMySqlDatabase
27
- ? DefaultMySqlSchema
28
- : Flavor extends AnyPostgresDatabase
29
- ? DefaultPostgresSchema
30
- : Flavor extends AnySQLiteDatabase
31
- ? DefaultSQLiteSchema
32
- : never
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