@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.
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../src/lib/sqlite.ts"],"names":[],"mappings":"AACA,OAAO,EAKL,kBAAkB,EAClB,aAAa,EACd,MAAM,yBAAyB,CAAA;AAGhC,OAAO,KAAK,EAAE,OAAO,EAAkB,MAAM,qBAAqB,CAAA;AAElE,wBAAgB,YAAY,CAAC,WAAW,EAAE,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoDtD;AAED,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAA;AAE3D,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,YAAY,CAAC,OAAO,kBAAkB,CAAC,EAC/C,OAAO,2BAAuB,GAC7B,OAAO,CA0IT"}
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, and } from "drizzle-orm";
2
- import { integer, sqliteTable as defaultSqliteTableFn, text, primaryKey, } from "drizzle-orm/sqlite-core";
3
- import { stripUndefined } from "./utils.js";
4
- export function createTables(sqliteTable) {
5
- const users = sqliteTable("user", {
6
- id: text("id").notNull().primaryKey(),
7
- name: text("name"),
8
- email: text("email").notNull(),
9
- emailVerified: integer("emailVerified", { mode: "timestamp_ms" }),
10
- image: text("image"),
11
- });
12
- const accounts = sqliteTable("account", {
13
- userId: text("userId")
14
- .notNull()
15
- .references(() => users.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
- compoundKey: primaryKey(account.provider, account.providerAccountId),
28
- }));
29
- const sessions = sqliteTable("session", {
30
- sessionToken: text("sessionToken").notNull().primaryKey(),
31
- userId: text("userId")
32
- .notNull()
33
- .references(() => users.id, { onDelete: "cascade" }),
34
- expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
35
- });
36
- const verificationTokens = sqliteTable("verificationToken", {
37
- identifier: text("identifier").notNull(),
38
- token: text("token").notNull(),
39
- expires: integer("expires", { mode: "timestamp_ms" }).notNull(),
40
- }, (vt) => ({
41
- compoundKey: primaryKey(vt.identifier, vt.token),
42
- }));
43
- return { users, accounts, sessions, verificationTokens };
44
- }
45
- export function SQLiteDrizzleAdapter(client, tableFn = defaultSqliteTableFn) {
46
- const { users, accounts, sessions, verificationTokens } = createTables(tableFn);
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
- return await client
50
- .insert(users)
51
- .values({ ...data, id: crypto.randomUUID() })
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(data) {
61
+ async getUser(userId) {
56
62
  const result = await client
57
63
  .select()
58
- .from(users)
59
- .where(eq(users.id, data))
64
+ .from(usersTable)
65
+ .where(eq(usersTable.id, userId))
60
66
  .get();
61
67
  return result ?? null;
62
68
  },
63
- async getUserByEmail(data) {
69
+ async getUserByEmail(email) {
64
70
  const result = await client
65
71
  .select()
66
- .from(users)
67
- .where(eq(users.email, data))
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(sessions).values(data).returning().get();
77
+ async createSession(data) {
78
+ return await client.insert(sessionsTable).values(data).returning().get();
73
79
  },
74
- async getSessionAndUser(data) {
80
+ async getSessionAndUser(sessionToken) {
75
81
  const result = await client
76
- .select({ session: sessions, user: users })
77
- .from(sessions)
78
- .where(eq(sessions.sessionToken, data))
79
- .innerJoin(users, eq(users.id, sessions.userId))
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(users)
97
+ .update(usersTable)
89
98
  .set(data)
90
- .where(eq(users.id, data.id))
99
+ .where(eq(usersTable.id, data.id))
91
100
  .returning()
92
101
  .get();
93
- return result ?? null;
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(sessions)
109
+ .update(sessionsTable)
98
110
  .set(data)
99
- .where(eq(sessions.sessionToken, data.sessionToken))
111
+ .where(eq(sessionsTable.sessionToken, data.sessionToken))
100
112
  .returning()
101
113
  .get();
102
114
  return result ?? null;
103
115
  },
104
- async linkAccount(rawAccount) {
105
- return stripUndefined(await client.insert(accounts).values(rawAccount).returning().get());
116
+ async linkAccount(data) {
117
+ await client.insert(accountsTable).values(data).run();
106
118
  },
107
119
  async getUserByAccount(account) {
108
- const results = await client
109
- .select()
110
- .from(accounts)
111
- .leftJoin(users, eq(users.id, accounts.userId))
112
- .where(and(eq(accounts.provider, account.provider), eq(accounts.providerAccountId, account.providerAccountId)))
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
- if (!results) {
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
- const result = await client
121
- .delete(sessions)
122
- .where(eq(sessions.sessionToken, sessionToken))
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 createVerificationToken(token) {
144
+ async useVerificationToken(params) {
128
145
  const result = await client
129
- .insert(verificationTokens)
130
- .values(token)
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
- const result = await client
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(account) {
155
+ async unlinkAccount(params) {
157
156
  await client
158
- .delete(accounts)
159
- .where(and(eq(accounts.providerAccountId, account.providerAccountId), eq(accounts.provider, account.provider)))
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 type { AnyMySqlTable, MySqlTableFn } from "drizzle-orm/mysql-core";
5
- import type { AnyPgTable, PgTableFn } from "drizzle-orm/pg-core";
6
- import type { AnySQLiteTable, SQLiteTableFn } from "drizzle-orm/sqlite-core";
7
- import type { DefaultSchema as PgSchema } from "./pg.js";
8
- import type { DefaultSchema as MySqlSchema } from "./mysql.js";
9
- import type { DefaultSchema as SQLiteSchema } from "./sqlite.js";
10
- export type AnyMySqlDatabase = MySqlDatabase<any, any>;
11
- export type AnyPgDatabase = PgDatabase<any, any, any>;
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
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAChE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,KAAK,EAAE,aAAa,IAAI,QAAQ,EAAE,MAAM,SAAS,CAAA;AACxD,OAAO,KAAK,EAAE,aAAa,IAAI,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,IAAI,YAAY,EAAE,MAAM,aAAa,CAAA;AAEhE,MAAM,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AACtD,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AACrD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;AAEtE,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAA;IAClD,EAAE,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IACzC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;CACtD;AAED,MAAM,MAAM,gBAAgB,GACxB,gBAAgB,GAChB,aAAa,GACb,iBAAiB,CAAA;AAErB,MAAM,MAAM,aAAa,CAAC,MAAM,IAAI,MAAM,SAAS,gBAAgB,GAC/D,aAAa,CAAC,OAAO,CAAC,GACtB,MAAM,SAAS,aAAa,GAC1B,aAAa,CAAC,IAAI,CAAC,GACnB,MAAM,SAAS,iBAAiB,GAC9B,aAAa,CAAC,QAAQ,CAAC,GACvB,KAAK,CAAA;AAEb,MAAM,MAAM,OAAO,CAAC,MAAM,IAAI,MAAM,SAAS,gBAAgB,GACzD,YAAY,GACZ,MAAM,SAAS,aAAa,GAC1B,SAAS,GACT,MAAM,SAAS,iBAAiB,GAC9B,aAAa,GACb,cAAc,CAAA;AAEtB,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,CAAC,GAAG,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC;CAC9C,CAAC,MAAM,CAAC,CAAC,CAAA;AAEV,wBAAgB,cAAc,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAItE"}
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
@@ -1,7 +1 @@
1
- export function stripUndefined(obj) {
2
- const result = {};
3
- for (const key in obj)
4
- if (obj[key] !== undefined)
5
- result[key] = obj[key];
6
- return result;
7
- }
1
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@auth/drizzle-adapter",
3
- "version": "0.9.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.29.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": "^8.6.0",
46
- "drizzle-kit": "^0.20.6",
47
- "drizzle-orm": "^0.29.1",
48
- "mysql2": "^3.2.0",
49
- "postgres": "^3.3.4",
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": {