@auth/drizzle-adapter 0.9.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/README.md +1 -1
- package/index.d.ts +81 -64
- package/index.d.ts.map +1 -1
- package/index.js +86 -69
- package/lib/mysql.d.ts +477 -296
- package/lib/mysql.d.ts.map +1 -1
- package/lib/mysql.js +131 -143
- package/lib/pg.d.ts +476 -296
- package/lib/pg.d.ts.map +1 -1
- package/lib/pg.js +121 -124
- package/lib/sqlite.d.ts +476 -296
- package/lib/sqlite.d.ts.map +1 -1
- package/lib/sqlite.js +106 -107
- package/lib/utils.d.ts +10 -21
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +1 -7
- package/package.json +9 -9
- package/src/index.ts +90 -74
- package/src/lib/mysql.ts +378 -195
- package/src/lib/pg.ts +363 -162
- package/src/lib/sqlite.ts +345 -135
- package/src/lib/utils.ts +25 -43
package/lib/sqlite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/lib/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/lib/sqlite.ts"],"names":[],"mappings":"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"}
|
package/lib/sqlite.js
CHANGED
|
@@ -1,82 +1,91 @@
|
|
|
1
|
-
import { eq,
|
|
2
|
-
import { integer, sqliteTable
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
export function SQLiteDrizzleAdapter(client,
|
|
46
|
-
|
|
1
|
+
import { and, eq, getTableColumns } from "drizzle-orm";
|
|
2
|
+
import { integer, primaryKey, sqliteTable, text, } from "drizzle-orm/sqlite-core";
|
|
3
|
+
export const sqliteUsersTable = sqliteTable("user", {
|
|
4
|
+
id: text("id")
|
|
5
|
+
.primaryKey()
|
|
6
|
+
.$defaultFn(() => crypto.randomUUID()),
|
|
7
|
+
name: text("name"),
|
|
8
|
+
email: text("email").notNull(),
|
|
9
|
+
emailVerified: integer("emailVerified", { mode: "timestamp_ms" }),
|
|
10
|
+
image: text("image"),
|
|
11
|
+
});
|
|
12
|
+
export const sqliteAccountsTable = sqliteTable("account", {
|
|
13
|
+
userId: text("userId")
|
|
14
|
+
.notNull()
|
|
15
|
+
.references(() => sqliteUsersTable.id, { onDelete: "cascade" }),
|
|
16
|
+
type: text("type").$type().notNull(),
|
|
17
|
+
provider: text("provider").notNull(),
|
|
18
|
+
providerAccountId: text("providerAccountId").notNull(),
|
|
19
|
+
refresh_token: text("refresh_token"),
|
|
20
|
+
access_token: text("access_token"),
|
|
21
|
+
expires_at: integer("expires_at"),
|
|
22
|
+
token_type: text("token_type"),
|
|
23
|
+
scope: text("scope"),
|
|
24
|
+
id_token: text("id_token"),
|
|
25
|
+
session_state: text("session_state"),
|
|
26
|
+
}, (account) => ({
|
|
27
|
+
compositePk: primaryKey({
|
|
28
|
+
columns: [account.provider, account.providerAccountId],
|
|
29
|
+
}),
|
|
30
|
+
}));
|
|
31
|
+
export const sqliteSessionsTable = sqliteTable("session", {
|
|
32
|
+
sessionToken: text("sessionToken").primaryKey(),
|
|
33
|
+
userId: text("userId")
|
|
34
|
+
.notNull()
|
|
35
|
+
.references(() => sqliteUsersTable.id, { onDelete: "cascade" }),
|
|
36
|
+
expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
|
|
37
|
+
});
|
|
38
|
+
export const sqliteVerificationTokensTable = sqliteTable("verificationToken", {
|
|
39
|
+
identifier: text("identifier").notNull(),
|
|
40
|
+
token: text("token").notNull(),
|
|
41
|
+
expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
|
|
42
|
+
}, (vt) => ({
|
|
43
|
+
compositePk: primaryKey({ columns: [vt.identifier, vt.token] }),
|
|
44
|
+
}));
|
|
45
|
+
export function SQLiteDrizzleAdapter(client, schema = {
|
|
46
|
+
usersTable: sqliteUsersTable,
|
|
47
|
+
accountsTable: sqliteAccountsTable,
|
|
48
|
+
sessionsTable: sqliteSessionsTable,
|
|
49
|
+
verificationTokensTable: sqliteVerificationTokensTable,
|
|
50
|
+
}) {
|
|
51
|
+
const { usersTable, accountsTable, sessionsTable, verificationTokensTable } = schema;
|
|
47
52
|
return {
|
|
48
53
|
async createUser(data) {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
.
|
|
54
|
+
const hasDefaultId = getTableColumns(usersTable)["id"]["hasDefault"];
|
|
55
|
+
return client
|
|
56
|
+
.insert(usersTable)
|
|
57
|
+
.values(hasDefaultId ? data : { ...data, id: crypto.randomUUID() })
|
|
52
58
|
.returning()
|
|
53
59
|
.get();
|
|
54
60
|
},
|
|
55
|
-
async getUser(
|
|
61
|
+
async getUser(userId) {
|
|
56
62
|
const result = await client
|
|
57
63
|
.select()
|
|
58
|
-
.from(
|
|
59
|
-
.where(eq(
|
|
64
|
+
.from(usersTable)
|
|
65
|
+
.where(eq(usersTable.id, userId))
|
|
60
66
|
.get();
|
|
61
67
|
return result ?? null;
|
|
62
68
|
},
|
|
63
|
-
async getUserByEmail(
|
|
69
|
+
async getUserByEmail(email) {
|
|
64
70
|
const result = await client
|
|
65
71
|
.select()
|
|
66
|
-
.from(
|
|
67
|
-
.where(eq(
|
|
72
|
+
.from(usersTable)
|
|
73
|
+
.where(eq(usersTable.email, email))
|
|
68
74
|
.get();
|
|
69
75
|
return result ?? null;
|
|
70
76
|
},
|
|
71
|
-
createSession(data) {
|
|
72
|
-
return client.insert(
|
|
77
|
+
async createSession(data) {
|
|
78
|
+
return await client.insert(sessionsTable).values(data).returning().get();
|
|
73
79
|
},
|
|
74
|
-
async getSessionAndUser(
|
|
80
|
+
async getSessionAndUser(sessionToken) {
|
|
75
81
|
const result = await client
|
|
76
|
-
.select({
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
82
|
+
.select({
|
|
83
|
+
session: sessionsTable,
|
|
84
|
+
user: usersTable,
|
|
85
|
+
})
|
|
86
|
+
.from(sessionsTable)
|
|
87
|
+
.where(eq(sessionsTable.sessionToken, sessionToken))
|
|
88
|
+
.innerJoin(usersTable, eq(usersTable.id, sessionsTable.userId))
|
|
80
89
|
.get();
|
|
81
90
|
return result ?? null;
|
|
82
91
|
},
|
|
@@ -85,78 +94,68 @@ export function SQLiteDrizzleAdapter(client, tableFn = defaultSqliteTableFn) {
|
|
|
85
94
|
throw new Error("No user id.");
|
|
86
95
|
}
|
|
87
96
|
const result = await client
|
|
88
|
-
.update(
|
|
97
|
+
.update(usersTable)
|
|
89
98
|
.set(data)
|
|
90
|
-
.where(eq(
|
|
99
|
+
.where(eq(usersTable.id, data.id))
|
|
91
100
|
.returning()
|
|
92
101
|
.get();
|
|
93
|
-
|
|
102
|
+
if (!result) {
|
|
103
|
+
throw new Error("User not found.");
|
|
104
|
+
}
|
|
105
|
+
return result;
|
|
94
106
|
},
|
|
95
107
|
async updateSession(data) {
|
|
96
108
|
const result = await client
|
|
97
|
-
.update(
|
|
109
|
+
.update(sessionsTable)
|
|
98
110
|
.set(data)
|
|
99
|
-
.where(eq(
|
|
111
|
+
.where(eq(sessionsTable.sessionToken, data.sessionToken))
|
|
100
112
|
.returning()
|
|
101
113
|
.get();
|
|
102
114
|
return result ?? null;
|
|
103
115
|
},
|
|
104
|
-
async linkAccount(
|
|
105
|
-
|
|
116
|
+
async linkAccount(data) {
|
|
117
|
+
await client.insert(accountsTable).values(data).run();
|
|
106
118
|
},
|
|
107
119
|
async getUserByAccount(account) {
|
|
108
|
-
const
|
|
109
|
-
.select(
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
120
|
+
const result = await client
|
|
121
|
+
.select({
|
|
122
|
+
account: accountsTable,
|
|
123
|
+
user: usersTable,
|
|
124
|
+
})
|
|
125
|
+
.from(accountsTable)
|
|
126
|
+
.innerJoin(usersTable, eq(accountsTable.userId, usersTable.id))
|
|
127
|
+
.where(and(eq(accountsTable.provider, account.provider), eq(accountsTable.providerAccountId, account.providerAccountId)))
|
|
113
128
|
.get();
|
|
114
|
-
|
|
115
|
-
return null;
|
|
116
|
-
}
|
|
117
|
-
return Promise.resolve(results).then((results) => results.user);
|
|
129
|
+
return result?.user ?? null;
|
|
118
130
|
},
|
|
119
131
|
async deleteSession(sessionToken) {
|
|
120
|
-
|
|
121
|
-
.delete(
|
|
122
|
-
.where(eq(
|
|
132
|
+
await client
|
|
133
|
+
.delete(sessionsTable)
|
|
134
|
+
.where(eq(sessionsTable.sessionToken, sessionToken))
|
|
135
|
+
.run();
|
|
136
|
+
},
|
|
137
|
+
async createVerificationToken(data) {
|
|
138
|
+
return await client
|
|
139
|
+
.insert(verificationTokensTable)
|
|
140
|
+
.values(data)
|
|
123
141
|
.returning()
|
|
124
142
|
.get();
|
|
125
|
-
return result ?? null;
|
|
126
143
|
},
|
|
127
|
-
async
|
|
144
|
+
async useVerificationToken(params) {
|
|
128
145
|
const result = await client
|
|
129
|
-
.
|
|
130
|
-
.
|
|
146
|
+
.delete(verificationTokensTable)
|
|
147
|
+
.where(and(eq(verificationTokensTable.identifier, params.identifier), eq(verificationTokensTable.token, params.token)))
|
|
131
148
|
.returning()
|
|
132
149
|
.get();
|
|
133
150
|
return result ?? null;
|
|
134
151
|
},
|
|
135
|
-
async useVerificationToken(token) {
|
|
136
|
-
try {
|
|
137
|
-
const result = await client
|
|
138
|
-
.delete(verificationTokens)
|
|
139
|
-
.where(and(eq(verificationTokens.identifier, token.identifier), eq(verificationTokens.token, token.token)))
|
|
140
|
-
.returning()
|
|
141
|
-
.get();
|
|
142
|
-
return result ?? null;
|
|
143
|
-
}
|
|
144
|
-
catch (err) {
|
|
145
|
-
throw new Error("No verification token found.");
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
152
|
async deleteUser(id) {
|
|
149
|
-
|
|
150
|
-
.delete(users)
|
|
151
|
-
.where(eq(users.id, id))
|
|
152
|
-
.returning()
|
|
153
|
-
.get();
|
|
154
|
-
return result ?? null;
|
|
153
|
+
await client.delete(usersTable).where(eq(usersTable.id, id)).run();
|
|
155
154
|
},
|
|
156
|
-
async unlinkAccount(
|
|
155
|
+
async unlinkAccount(params) {
|
|
157
156
|
await client
|
|
158
|
-
.delete(
|
|
159
|
-
.where(and(eq(
|
|
157
|
+
.delete(accountsTable)
|
|
158
|
+
.where(and(eq(accountsTable.provider, params.provider), eq(accountsTable.providerAccountId, params.providerAccountId)))
|
|
160
159
|
.run();
|
|
161
160
|
},
|
|
162
161
|
};
|
package/lib/utils.d.ts
CHANGED
|
@@ -1,26 +1,15 @@
|
|
|
1
|
+
import type { QueryResultHKT as MySQLQueryResultHKT, PreparedQueryHKTBase } from "drizzle-orm/mysql-core";
|
|
1
2
|
import { MySqlDatabase } from "drizzle-orm/mysql-core";
|
|
3
|
+
import type { QueryResultHKT as PostgresQueryResultHKT } from "drizzle-orm/pg-core";
|
|
2
4
|
import { PgDatabase } from "drizzle-orm/pg-core";
|
|
3
5
|
import { BaseSQLiteDatabase } from "drizzle-orm/sqlite-core";
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export type
|
|
11
|
-
export type
|
|
12
|
-
export type AnySQLiteDatabase = BaseSQLiteDatabase<any, any, any, any>;
|
|
13
|
-
export interface MinimumSchema {
|
|
14
|
-
mysql: MySqlSchema & Record<string, AnyMySqlTable>;
|
|
15
|
-
pg: PgSchema & Record<string, AnyPgTable>;
|
|
16
|
-
sqlite: SQLiteSchema & Record<string, AnySQLiteTable>;
|
|
17
|
-
}
|
|
18
|
-
export type SqlFlavorOptions = AnyMySqlDatabase | AnyPgDatabase | AnySQLiteDatabase;
|
|
19
|
-
export type ClientFlavors<Flavor> = Flavor extends AnyMySqlDatabase ? MinimumSchema["mysql"] : Flavor extends AnyPgDatabase ? MinimumSchema["pg"] : Flavor extends AnySQLiteDatabase ? MinimumSchema["sqlite"] : never;
|
|
20
|
-
export type TableFn<Flavor> = Flavor extends AnyMySqlDatabase ? MySqlTableFn : Flavor extends AnyPgDatabase ? PgTableFn : Flavor extends AnySQLiteDatabase ? SQLiteTableFn : AnySQLiteTable;
|
|
21
|
-
type NonNullableProps<T> = {
|
|
22
|
-
[P in keyof T]: null extends T[P] ? never : P;
|
|
23
|
-
}[keyof T];
|
|
24
|
-
export declare function stripUndefined<T>(obj: T): Pick<T, NonNullableProps<T>>;
|
|
6
|
+
import { DefaultMySqlSchema } from "./mysql.js";
|
|
7
|
+
import { DefaultPostgresSchema } from "./pg.js";
|
|
8
|
+
import { DefaultSQLiteSchema } from "./sqlite.js";
|
|
9
|
+
type AnyPostgresDatabase = PgDatabase<PostgresQueryResultHKT, any>;
|
|
10
|
+
type AnyMySqlDatabase = MySqlDatabase<MySQLQueryResultHKT, PreparedQueryHKTBase, any>;
|
|
11
|
+
type AnySQLiteDatabase = BaseSQLiteDatabase<"sync" | "async", any, any>;
|
|
12
|
+
export type SqlFlavorOptions = AnyPostgresDatabase | AnyMySqlDatabase | AnySQLiteDatabase;
|
|
13
|
+
export type DefaultSchema<Flavor extends SqlFlavorOptions> = Flavor extends AnyMySqlDatabase ? DefaultMySqlSchema : Flavor extends AnyPostgresDatabase ? DefaultPostgresSchema : Flavor extends AnySQLiteDatabase ? DefaultSQLiteSchema : never;
|
|
25
14
|
export {};
|
|
26
15
|
//# sourceMappingURL=utils.d.ts.map
|
package/lib/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,IAAI,mBAAmB,EACrC,oBAAoB,EACrB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,KAAK,EAAE,cAAc,IAAI,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,KAAK,mBAAmB,GAAG,UAAU,CAAC,sBAAsB,EAAE,GAAG,CAAC,CAAA;AAClE,KAAK,gBAAgB,GAAG,aAAa,CACnC,mBAAmB,EACnB,oBAAoB,EACpB,GAAG,CACJ,CAAA;AACD,KAAK,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEvE,MAAM,MAAM,gBAAgB,GACxB,mBAAmB,GACnB,gBAAgB,GAChB,iBAAiB,CAAA;AAErB,MAAM,MAAM,aAAa,CAAC,MAAM,SAAS,gBAAgB,IACvD,MAAM,SAAS,gBAAgB,GAC3B,kBAAkB,GAClB,MAAM,SAAS,mBAAmB,GAChC,qBAAqB,GACrB,MAAM,SAAS,iBAAiB,GAC9B,mBAAmB,GACnB,KAAK,CAAA"}
|
package/lib/utils.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@auth/drizzle-adapter",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "Drizzle adapter for Auth.js.",
|
|
5
5
|
"homepage": "https://authjs.dev",
|
|
6
6
|
"repository": "https://github.com/nextauthjs/next-auth",
|
|
@@ -19,7 +19,8 @@
|
|
|
19
19
|
"exports": {
|
|
20
20
|
".": {
|
|
21
21
|
"types": "./index.d.ts",
|
|
22
|
-
"import": "./index.js"
|
|
22
|
+
"import": "./index.js",
|
|
23
|
+
"require": "./index.js"
|
|
23
24
|
}
|
|
24
25
|
},
|
|
25
26
|
"license": "ISC",
|
|
@@ -36,17 +37,16 @@
|
|
|
36
37
|
"access": "public"
|
|
37
38
|
},
|
|
38
39
|
"dependencies": {
|
|
39
|
-
"@auth/core": "0.
|
|
40
|
+
"@auth/core": "0.30.0"
|
|
40
41
|
},
|
|
41
42
|
"devDependencies": {
|
|
42
|
-
"@libsql/client": "0.4.0-pre.5",
|
|
43
43
|
"@types/better-sqlite3": "^7.6.4",
|
|
44
44
|
"@types/uuid": "^8.3.3",
|
|
45
|
-
"better-sqlite3": "^
|
|
46
|
-
"drizzle-kit": "^0.20.
|
|
47
|
-
"drizzle-orm": "^0.
|
|
48
|
-
"mysql2": "^3.
|
|
49
|
-
"postgres": "^3.3
|
|
45
|
+
"better-sqlite3": "^9.4.0",
|
|
46
|
+
"drizzle-kit": "^0.20.17",
|
|
47
|
+
"drizzle-orm": "^0.30.8",
|
|
48
|
+
"mysql2": "^3.9.3",
|
|
49
|
+
"postgres": "^3.4.3",
|
|
50
50
|
"tsx": "^4.7.0"
|
|
51
51
|
},
|
|
52
52
|
"scripts": {
|