@gauts/auth 0.8.2 → 0.9.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.
Files changed (75) hide show
  1. package/README.md +292 -66
  2. package/dist/adapters/drizzle/config.d.ts +11 -0
  3. package/dist/adapters/drizzle/config.d.ts.map +1 -0
  4. package/dist/adapters/drizzle/config.js +147 -0
  5. package/dist/adapters/drizzle/config.js.map +1 -0
  6. package/dist/adapters/drizzle/index.d.ts +4 -0
  7. package/dist/adapters/drizzle/index.d.ts.map +1 -0
  8. package/dist/adapters/drizzle/index.js +156 -0
  9. package/dist/adapters/drizzle/index.js.map +1 -0
  10. package/dist/adapters/drizzle/model.d.ts +21 -0
  11. package/dist/adapters/drizzle/model.d.ts.map +1 -0
  12. package/dist/adapters/drizzle/model.js +61 -0
  13. package/dist/adapters/drizzle/model.js.map +1 -0
  14. package/dist/adapters/drizzle/schema.d.ts +311 -0
  15. package/dist/adapters/drizzle/schema.d.ts.map +1 -0
  16. package/dist/adapters/drizzle/schema.js +37 -0
  17. package/dist/adapters/drizzle/schema.js.map +1 -0
  18. package/dist/adapters/drizzle/types.d.ts +109 -0
  19. package/dist/adapters/drizzle/types.d.ts.map +1 -0
  20. package/dist/adapters/drizzle/types.js +2 -0
  21. package/dist/adapters/drizzle/types.js.map +1 -0
  22. package/dist/adapters/express/index.d.ts +83 -0
  23. package/dist/adapters/express/index.d.ts.map +1 -0
  24. package/dist/adapters/express/index.js +72 -0
  25. package/dist/adapters/express/index.js.map +1 -0
  26. package/dist/adapters/express/social.d.ts +29 -0
  27. package/dist/adapters/express/social.d.ts.map +1 -0
  28. package/dist/adapters/express/social.js +44 -0
  29. package/dist/adapters/express/social.js.map +1 -0
  30. package/dist/adapters/fastify/index.d.ts +85 -0
  31. package/dist/adapters/fastify/index.d.ts.map +1 -0
  32. package/dist/adapters/fastify/index.js +100 -0
  33. package/dist/adapters/fastify/index.js.map +1 -0
  34. package/dist/adapters/fastify/social.d.ts +27 -0
  35. package/dist/adapters/fastify/social.d.ts.map +1 -0
  36. package/dist/adapters/fastify/social.js +48 -0
  37. package/dist/adapters/fastify/social.js.map +1 -0
  38. package/dist/adapters/hono/index.d.ts +4 -11
  39. package/dist/adapters/hono/index.d.ts.map +1 -1
  40. package/dist/adapters/hono/index.js +31 -223
  41. package/dist/adapters/hono/index.js.map +1 -1
  42. package/dist/adapters/hono/social.d.ts +4 -10
  43. package/dist/adapters/hono/social.d.ts.map +1 -1
  44. package/dist/adapters/hono/social.js +25 -221
  45. package/dist/adapters/hono/social.js.map +1 -1
  46. package/dist/adapters/model.d.ts +33 -0
  47. package/dist/adapters/model.d.ts.map +1 -0
  48. package/dist/adapters/model.js +87 -0
  49. package/dist/adapters/model.js.map +1 -0
  50. package/dist/adapters/prisma/config.d.ts.map +1 -1
  51. package/dist/adapters/prisma/config.js +1 -4
  52. package/dist/adapters/prisma/config.js.map +1 -1
  53. package/dist/adapters/prisma/model.d.ts +7 -8
  54. package/dist/adapters/prisma/model.d.ts.map +1 -1
  55. package/dist/adapters/prisma/model.js +11 -79
  56. package/dist/adapters/prisma/model.js.map +1 -1
  57. package/dist/adapters/utils/cookie.d.ts +17 -0
  58. package/dist/adapters/utils/cookie.d.ts.map +1 -0
  59. package/dist/adapters/utils/cookie.js +59 -0
  60. package/dist/adapters/utils/cookie.js.map +1 -0
  61. package/dist/adapters/utils/session.d.ts +4 -0
  62. package/dist/adapters/utils/session.d.ts.map +1 -0
  63. package/dist/adapters/utils/session.js +216 -0
  64. package/dist/adapters/utils/session.js.map +1 -0
  65. package/dist/adapters/utils/social.d.ts +51 -0
  66. package/dist/adapters/utils/social.d.ts.map +1 -0
  67. package/dist/adapters/utils/social.js +278 -0
  68. package/dist/adapters/utils/social.js.map +1 -0
  69. package/dist/adapters/utils/types.d.ts +67 -0
  70. package/dist/adapters/utils/types.d.ts.map +1 -0
  71. package/dist/adapters/utils/types.js +2 -0
  72. package/dist/adapters/utils/types.js.map +1 -0
  73. package/package.json +40 -3
  74. package/src/adapters/drizzle/schema.ts +47 -0
  75. package/src/adapters/prisma/schema.prisma +38 -0
@@ -0,0 +1,311 @@
1
+ export declare const users: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
2
+ name: "users";
3
+ schema: undefined;
4
+ columns: {
5
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
6
+ name: "id";
7
+ tableName: "users";
8
+ dataType: "string";
9
+ columnType: "MySqlVarChar";
10
+ data: string;
11
+ driverParam: string | number;
12
+ notNull: true;
13
+ hasDefault: false;
14
+ isPrimaryKey: true;
15
+ isAutoincrement: false;
16
+ hasRuntimeDefault: false;
17
+ enumValues: [string, ...string[]];
18
+ baseColumn: never;
19
+ identity: undefined;
20
+ generated: undefined;
21
+ }, {}, {}>;
22
+ name: import("drizzle-orm/mysql-core").MySqlColumn<{
23
+ name: "name";
24
+ tableName: "users";
25
+ dataType: "string";
26
+ columnType: "MySqlVarChar";
27
+ data: string;
28
+ driverParam: string | number;
29
+ notNull: true;
30
+ hasDefault: false;
31
+ isPrimaryKey: false;
32
+ isAutoincrement: false;
33
+ hasRuntimeDefault: false;
34
+ enumValues: [string, ...string[]];
35
+ baseColumn: never;
36
+ identity: undefined;
37
+ generated: undefined;
38
+ }, {}, {}>;
39
+ };
40
+ dialect: "mysql";
41
+ }>;
42
+ export declare const userAccounts: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
43
+ name: "user_accounts";
44
+ schema: undefined;
45
+ columns: {
46
+ email: import("drizzle-orm/mysql-core").MySqlColumn<{
47
+ name: "email";
48
+ tableName: "user_accounts";
49
+ dataType: "string";
50
+ columnType: "MySqlVarChar";
51
+ data: string;
52
+ driverParam: string | number;
53
+ notNull: true;
54
+ hasDefault: false;
55
+ isPrimaryKey: false;
56
+ isAutoincrement: false;
57
+ hasRuntimeDefault: false;
58
+ enumValues: [string, ...string[]];
59
+ baseColumn: never;
60
+ identity: undefined;
61
+ generated: undefined;
62
+ }, {}, {}>;
63
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
64
+ name: "id";
65
+ tableName: "user_accounts";
66
+ dataType: "string";
67
+ columnType: "MySqlVarChar";
68
+ data: string;
69
+ driverParam: string | number;
70
+ notNull: true;
71
+ hasDefault: false;
72
+ isPrimaryKey: true;
73
+ isAutoincrement: false;
74
+ hasRuntimeDefault: false;
75
+ enumValues: [string, ...string[]];
76
+ baseColumn: never;
77
+ identity: undefined;
78
+ generated: undefined;
79
+ }, {}, {}>;
80
+ password_hash: import("drizzle-orm/mysql-core").MySqlColumn<{
81
+ name: "password_hash";
82
+ tableName: "user_accounts";
83
+ dataType: "string";
84
+ columnType: "MySqlVarChar";
85
+ data: string;
86
+ driverParam: string | number;
87
+ notNull: false;
88
+ hasDefault: false;
89
+ isPrimaryKey: false;
90
+ isAutoincrement: false;
91
+ hasRuntimeDefault: false;
92
+ enumValues: [string, ...string[]];
93
+ baseColumn: never;
94
+ identity: undefined;
95
+ generated: undefined;
96
+ }, {}, {}>;
97
+ user_id: import("drizzle-orm/mysql-core").MySqlColumn<{
98
+ name: "user_id";
99
+ tableName: "user_accounts";
100
+ dataType: "string";
101
+ columnType: "MySqlVarChar";
102
+ data: string;
103
+ driverParam: string | number;
104
+ notNull: true;
105
+ hasDefault: false;
106
+ isPrimaryKey: false;
107
+ isAutoincrement: false;
108
+ hasRuntimeDefault: false;
109
+ enumValues: [string, ...string[]];
110
+ baseColumn: never;
111
+ identity: undefined;
112
+ generated: undefined;
113
+ }, {}, {}>;
114
+ };
115
+ dialect: "mysql";
116
+ }>;
117
+ export declare const accountSessions: import("drizzle-orm/mysql-core").MySqlTableWithColumns<{
118
+ name: "account_sessions";
119
+ schema: undefined;
120
+ columns: {
121
+ account_id: import("drizzle-orm/mysql-core").MySqlColumn<{
122
+ name: "account_id";
123
+ tableName: "account_sessions";
124
+ dataType: "string";
125
+ columnType: "MySqlVarChar";
126
+ data: string;
127
+ driverParam: string | number;
128
+ notNull: true;
129
+ hasDefault: false;
130
+ isPrimaryKey: false;
131
+ isAutoincrement: false;
132
+ hasRuntimeDefault: false;
133
+ enumValues: [string, ...string[]];
134
+ baseColumn: never;
135
+ identity: undefined;
136
+ generated: undefined;
137
+ }, {}, {}>;
138
+ agent: import("drizzle-orm/mysql-core").MySqlColumn<{
139
+ name: "agent";
140
+ tableName: "account_sessions";
141
+ dataType: "string";
142
+ columnType: "MySqlText";
143
+ data: string;
144
+ driverParam: string;
145
+ notNull: false;
146
+ hasDefault: false;
147
+ isPrimaryKey: false;
148
+ isAutoincrement: false;
149
+ hasRuntimeDefault: false;
150
+ enumValues: [string, ...string[]];
151
+ baseColumn: never;
152
+ identity: undefined;
153
+ generated: undefined;
154
+ }, {}, {}>;
155
+ country: import("drizzle-orm/mysql-core").MySqlColumn<{
156
+ name: "country";
157
+ tableName: "account_sessions";
158
+ dataType: "string";
159
+ columnType: "MySqlVarChar";
160
+ data: string;
161
+ driverParam: string | number;
162
+ notNull: false;
163
+ hasDefault: false;
164
+ isPrimaryKey: false;
165
+ isAutoincrement: false;
166
+ hasRuntimeDefault: false;
167
+ enumValues: [string, ...string[]];
168
+ baseColumn: never;
169
+ identity: undefined;
170
+ generated: undefined;
171
+ }, {}, {}>;
172
+ created_at: import("drizzle-orm/mysql-core").MySqlColumn<{
173
+ name: "created_at";
174
+ tableName: "account_sessions";
175
+ dataType: "date";
176
+ columnType: "MySqlTimestamp";
177
+ data: Date;
178
+ driverParam: string | number;
179
+ notNull: true;
180
+ hasDefault: true;
181
+ isPrimaryKey: false;
182
+ isAutoincrement: false;
183
+ hasRuntimeDefault: false;
184
+ enumValues: undefined;
185
+ baseColumn: never;
186
+ identity: undefined;
187
+ generated: undefined;
188
+ }, {}, {}>;
189
+ expires_at: import("drizzle-orm/mysql-core").MySqlColumn<{
190
+ name: "expires_at";
191
+ tableName: "account_sessions";
192
+ dataType: "date";
193
+ columnType: "MySqlTimestamp";
194
+ data: Date;
195
+ driverParam: string | number;
196
+ notNull: true;
197
+ hasDefault: false;
198
+ isPrimaryKey: false;
199
+ isAutoincrement: false;
200
+ hasRuntimeDefault: false;
201
+ enumValues: undefined;
202
+ baseColumn: never;
203
+ identity: undefined;
204
+ generated: undefined;
205
+ }, {}, {}>;
206
+ id: import("drizzle-orm/mysql-core").MySqlColumn<{
207
+ name: "id";
208
+ tableName: "account_sessions";
209
+ dataType: "string";
210
+ columnType: "MySqlVarChar";
211
+ data: string;
212
+ driverParam: string | number;
213
+ notNull: true;
214
+ hasDefault: false;
215
+ isPrimaryKey: true;
216
+ isAutoincrement: false;
217
+ hasRuntimeDefault: false;
218
+ enumValues: [string, ...string[]];
219
+ baseColumn: never;
220
+ identity: undefined;
221
+ generated: undefined;
222
+ }, {}, {}>;
223
+ ip: import("drizzle-orm/mysql-core").MySqlColumn<{
224
+ name: "ip";
225
+ tableName: "account_sessions";
226
+ dataType: "string";
227
+ columnType: "MySqlVarChar";
228
+ data: string;
229
+ driverParam: string | number;
230
+ notNull: false;
231
+ hasDefault: false;
232
+ isPrimaryKey: false;
233
+ isAutoincrement: false;
234
+ hasRuntimeDefault: false;
235
+ enumValues: [string, ...string[]];
236
+ baseColumn: never;
237
+ identity: undefined;
238
+ generated: undefined;
239
+ }, {}, {}>;
240
+ platform: import("drizzle-orm/mysql-core").MySqlColumn<{
241
+ name: "platform";
242
+ tableName: "account_sessions";
243
+ dataType: "string";
244
+ columnType: "MySqlVarChar";
245
+ data: string;
246
+ driverParam: string | number;
247
+ notNull: false;
248
+ hasDefault: false;
249
+ isPrimaryKey: false;
250
+ isAutoincrement: false;
251
+ hasRuntimeDefault: false;
252
+ enumValues: [string, ...string[]];
253
+ baseColumn: never;
254
+ identity: undefined;
255
+ generated: undefined;
256
+ }, {}, {}>;
257
+ revoked_at: import("drizzle-orm/mysql-core").MySqlColumn<{
258
+ name: "revoked_at";
259
+ tableName: "account_sessions";
260
+ dataType: "date";
261
+ columnType: "MySqlTimestamp";
262
+ data: Date;
263
+ driverParam: string | number;
264
+ notNull: false;
265
+ hasDefault: false;
266
+ isPrimaryKey: false;
267
+ isAutoincrement: false;
268
+ hasRuntimeDefault: false;
269
+ enumValues: undefined;
270
+ baseColumn: never;
271
+ identity: undefined;
272
+ generated: undefined;
273
+ }, {}, {}>;
274
+ token_hash: import("drizzle-orm/mysql-core").MySqlColumn<{
275
+ name: "token_hash";
276
+ tableName: "account_sessions";
277
+ dataType: "string";
278
+ columnType: "MySqlVarChar";
279
+ data: string;
280
+ driverParam: string | number;
281
+ notNull: true;
282
+ hasDefault: false;
283
+ isPrimaryKey: false;
284
+ isAutoincrement: false;
285
+ hasRuntimeDefault: false;
286
+ enumValues: [string, ...string[]];
287
+ baseColumn: never;
288
+ identity: undefined;
289
+ generated: undefined;
290
+ }, {}, {}>;
291
+ updated_at: import("drizzle-orm/mysql-core").MySqlColumn<{
292
+ name: "updated_at";
293
+ tableName: "account_sessions";
294
+ dataType: "date";
295
+ columnType: "MySqlTimestamp";
296
+ data: Date;
297
+ driverParam: string | number;
298
+ notNull: false;
299
+ hasDefault: false;
300
+ isPrimaryKey: false;
301
+ isAutoincrement: false;
302
+ hasRuntimeDefault: false;
303
+ enumValues: undefined;
304
+ baseColumn: never;
305
+ identity: undefined;
306
+ generated: undefined;
307
+ }, {}, {}>;
308
+ };
309
+ dialect: "mysql";
310
+ }>;
311
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAGhB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcxB,CAAC;AAEF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuB3B,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { index, mysqlTable, text, timestamp, uniqueIndex, varchar } from "drizzle-orm/mysql-core";
2
+ export const users = mysqlTable("users", {
3
+ id: varchar("id", { length: 255 }).primaryKey(),
4
+ name: varchar("name", { length: 255 }).notNull(),
5
+ });
6
+ export const userAccounts = mysqlTable("user_accounts", {
7
+ email: varchar("email", { length: 255 }).notNull(),
8
+ id: varchar("id", { length: 255 }).primaryKey(),
9
+ password_hash: varchar("password_hash", { length: 255 }),
10
+ user_id: varchar("user_id", { length: 255 })
11
+ .notNull()
12
+ .references(() => users.id, { onDelete: "cascade" }),
13
+ }, (table) => [
14
+ uniqueIndex("user_accounts_email_key").on(table.email),
15
+ index("user_accounts_user_id_idx").on(table.user_id),
16
+ ]);
17
+ export const accountSessions = mysqlTable("account_sessions", {
18
+ account_id: varchar("account_id", { length: 255 })
19
+ .notNull()
20
+ .references(() => userAccounts.id, { onDelete: "cascade" }),
21
+ agent: text("agent"),
22
+ country: varchar("country", { length: 2 }),
23
+ created_at: timestamp("created_at", { mode: "date" }).defaultNow().notNull(),
24
+ expires_at: timestamp("expires_at", { mode: "date" }).notNull(),
25
+ id: varchar("id", { length: 255 }).primaryKey(),
26
+ ip: varchar("ip", { length: 45 }),
27
+ platform: varchar("platform", { length: 255 }),
28
+ revoked_at: timestamp("revoked_at", { mode: "date" }),
29
+ token_hash: varchar("token_hash", { length: 64 }).notNull(),
30
+ updated_at: timestamp("updated_at", { mode: "date" }),
31
+ }, (table) => [
32
+ index("account_sessions_account_id_idx").on(table.account_id),
33
+ index("account_sessions_expires_at_idx").on(table.expires_at),
34
+ index("account_sessions_revoked_at_idx").on(table.revoked_at),
35
+ uniqueIndex("account_sessions_token_hash_key").on(table.token_hash),
36
+ ]);
37
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,109 @@
1
+ import type { MySqlDatabase } from "drizzle-orm/mysql-core/db";
2
+ import type { MySqlQueryResultHKT, PreparedQueryHKTBase } from "drizzle-orm/mysql-core/session";
3
+ import type { AnyMySqlTable } from "drizzle-orm/mysql-core/table";
4
+ import type { AdapterAccessValue } from "../model.js";
5
+ import type { SocialDbAdapter } from "../../social/types.js";
6
+ import type { AuthAccount, AuthScalar, DbAdapter, SessionRecord } from "../../session/types.js";
7
+ export type DrizzleClient = MySqlDatabase<MySqlQueryResultHKT, PreparedQueryHKTBase, Record<string, unknown>>;
8
+ type TableRow<Table extends AnyMySqlTable> = Table["$inferSelect"];
9
+ type PrivateField = "hash" | "password" | "password_hash" | "passwordHash";
10
+ type AuthField<Row> = {
11
+ [Key in keyof Row]: Key extends PrivateField ? never : Row[Key] extends AuthScalar ? Key : never;
12
+ }[keyof Row] & string;
13
+ type AccessRule<Value> = [Value] extends [AuthScalar] ? Value | readonly Value[] : never;
14
+ type ModelAccess<Row> = Partial<{
15
+ [Key in AuthField<Row>]: AccessRule<Row[Key]>;
16
+ }>;
17
+ export type DrizzleDataModelConfig<Table extends AnyMySqlTable> = {
18
+ access?: ModelAccess<TableRow<Table>>;
19
+ select?: readonly AuthField<TableRow<Table>>[];
20
+ table: Table;
21
+ };
22
+ export type DrizzleTableModelConfig<Table extends AnyMySqlTable> = {
23
+ table: Table;
24
+ };
25
+ type UserRow = {
26
+ id: string;
27
+ name: string;
28
+ };
29
+ type AccountRow = {
30
+ email: string;
31
+ id: string;
32
+ user_id: string;
33
+ };
34
+ type SessionRow = SessionRecord & {
35
+ country: string | null;
36
+ };
37
+ type SocialRow = {
38
+ account_id: string;
39
+ created_at: Date;
40
+ id: string;
41
+ provider: string;
42
+ provider_id: string;
43
+ };
44
+ type DataModelInput = {
45
+ access?: Record<string, AdapterAccessValue>;
46
+ select?: readonly string[];
47
+ table: AnyMySqlTable;
48
+ };
49
+ type TableModelInput = {
50
+ table: AnyMySqlTable;
51
+ };
52
+ export type DrizzleModelsConfig = {
53
+ accounts: DataModelInput;
54
+ sessions: TableModelInput;
55
+ socials?: TableModelInput;
56
+ users: DataModelInput;
57
+ };
58
+ type ValidateDataModel<Config, Required> = Config extends {
59
+ table: infer Table extends AnyMySqlTable;
60
+ } ? TableRow<Table> extends Required ? DrizzleDataModelConfig<Table> : never : never;
61
+ type ValidateTableModel<Config, Required> = Config extends {
62
+ table: infer Table extends AnyMySqlTable;
63
+ } ? TableRow<Table> extends Required ? DrizzleTableModelConfig<Table> : never : never;
64
+ type ValidatedModels<Models extends DrizzleModelsConfig> = {
65
+ accounts: ValidateDataModel<Models["accounts"], AccountRow>;
66
+ sessions: ValidateTableModel<Models["sessions"], SessionRow>;
67
+ users: ValidateDataModel<Models["users"], UserRow>;
68
+ } & (Models extends {
69
+ socials: infer Socials;
70
+ } ? {
71
+ socials: ValidateTableModel<Socials, SocialRow>;
72
+ } : {
73
+ socials?: undefined;
74
+ });
75
+ export type DrizzleAdapterInput<Models extends DrizzleModelsConfig> = {
76
+ client: DrizzleClient;
77
+ models: Models & ValidatedModels<Models>;
78
+ };
79
+ type ConfigSelect<Config, Default extends string> = Config extends {
80
+ select: readonly (infer Field extends string)[];
81
+ } ? Field | Default : Default;
82
+ type SelectedModel<Config, Default extends string> = Config extends {
83
+ table: infer Table extends AnyMySqlTable;
84
+ } ? Pick<TableRow<Table>, ConfigSelect<Config, Default> & keyof TableRow<Table>> : never;
85
+ export type DrizzleUser<Models> = Models extends {
86
+ users: infer Config;
87
+ } ? SelectedModel<Config, "id" | "name"> : never;
88
+ export type DrizzleAccount<Models> = Models extends {
89
+ accounts: infer Config;
90
+ } ? SelectedModel<Config, "email" | "id"> & {
91
+ user: DrizzleUser<Models>;
92
+ } : never;
93
+ export type DrizzleDb<Models extends DrizzleModelsConfig> = DbAdapter<DrizzleAccount<Models> & AuthAccount> & (Models extends {
94
+ socials: TableModelInput;
95
+ } ? SocialDbAdapter<DrizzleAccount<Models> & AuthAccount> : object);
96
+ export type ResolvedDrizzleDataModel = {
97
+ access: Record<string, AdapterAccessValue>;
98
+ select: readonly string[];
99
+ table: AnyMySqlTable;
100
+ };
101
+ export type ResolvedDrizzleModels = {
102
+ accounts: ResolvedDrizzleDataModel;
103
+ sessions: AnyMySqlTable;
104
+ socials: AnyMySqlTable | null;
105
+ users: ResolvedDrizzleDataModel;
106
+ };
107
+ export type CreateDrizzleAdapter = <const Models extends DrizzleModelsConfig>(input: DrizzleAdapterInput<Models>) => DrizzleDb<Models>;
108
+ export {};
109
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/adapters/drizzle/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/adapters/drizzle/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,83 @@
1
+ import type { Request, RequestHandler, Response } from "express";
2
+ import { type Auth, type AuthDeps } from "../../auth.js";
3
+ import type { SessionCacheConfig } from "../../session/cache.js";
4
+ import type { SessionCookieNames } from "../../session/cookie.js";
5
+ import type { AuthAccount, DbAdapter, ResolvedSession, Session } from "../../session/types.js";
6
+ import type { SocialConfig, SocialDbAdapter } from "../../social/types.js";
7
+ import type { HttpCookieConfig } from "../utils/types.js";
8
+ import { type ExpressSocial } from "./social.js";
9
+ export type { SessionCacheConfig } from "../../session/cache.js";
10
+ export type { ExpressSocial, ExpressSocialLocals } from "./social.js";
11
+ export type ExpressAuthLocals<TAccount extends AuthAccount = AuthAccount> = {
12
+ account: TAccount;
13
+ session: Session;
14
+ user: TAccount["user"];
15
+ };
16
+ export type ExpressCookieConfig = HttpCookieConfig;
17
+ export type ExpressGetIp = (request: Request) => Promise<string | null | undefined> | string | null | undefined;
18
+ type ExpressCacheOptions = {
19
+ cache: SessionCacheConfig;
20
+ secret: string;
21
+ } | {
22
+ cache?: undefined;
23
+ secret?: string;
24
+ };
25
+ export type ExpressAdapterConfig<TAccount extends AuthAccount = AuthAccount> = {
26
+ auth: Auth<TAccount>;
27
+ cache?: SessionCacheConfig;
28
+ cookie?: ExpressCookieConfig;
29
+ getIp?: ExpressGetIp;
30
+ secret?: string;
31
+ };
32
+ type ExpressAuthBase<TAccount extends AuthAccount> = Omit<AuthDeps<TAccount>, "db"> & {
33
+ cookie?: ExpressCookieConfig;
34
+ db: DbAdapter<TAccount>;
35
+ getIp?: ExpressGetIp;
36
+ };
37
+ type ExpressSocialOptions<TAccount extends AuthAccount, TData> = {
38
+ db: DbAdapter<TAccount> & SocialDbAdapter<TAccount>;
39
+ secret: string;
40
+ social: SocialConfig<TData>;
41
+ } | {
42
+ db: DbAdapter<TAccount>;
43
+ social?: undefined;
44
+ };
45
+ export type ExpressAuthConfig<TAccount extends AuthAccount = AuthAccount, TData = undefined> = Omit<ExpressAuthBase<TAccount>, "db"> & ExpressCacheOptions & ExpressSocialOptions<TAccount, TData>;
46
+ type ExpressAuthOptions<TAccount extends AuthAccount> = Omit<ExpressAuthBase<TAccount>, "db"> & ExpressCacheOptions;
47
+ type DbAccount<TDb> = TDb extends DbAdapter<infer TAccount> ? TAccount : never;
48
+ type ExpressRequestInput = {
49
+ request: Request;
50
+ response: Response;
51
+ };
52
+ type CreateSessionInput = ExpressRequestInput & {
53
+ account_id: string;
54
+ country?: string | null;
55
+ };
56
+ export type ExpressAdapter<TAccount extends AuthAccount = AuthAccount> = {
57
+ clearSession(response: Response): void;
58
+ cookie: Readonly<SessionCookieNames>;
59
+ createSession(input: CreateSessionInput): Promise<Session>;
60
+ getToken(request: Request): string | null;
61
+ renewSession(input: ExpressRequestInput): Promise<Session>;
62
+ requireSession: RequestHandler;
63
+ resolveSession(input: ExpressRequestInput): Promise<ResolvedSession<TAccount>>;
64
+ revokeSession(input: ExpressRequestInput): Promise<string[]>;
65
+ };
66
+ export type ExpressAuth<TAccount extends AuthAccount = AuthAccount> = Auth<TAccount> & ExpressAdapter<TAccount>;
67
+ export type ExpressSocialAuth<TAccount extends AuthAccount = AuthAccount, TData = undefined> = Auth<TAccount> & ExpressAdapter<TAccount> & {
68
+ social: ExpressSocial<TAccount, TData>;
69
+ };
70
+ export declare const createExpressAdapter: <TAccount extends AuthAccount>({ auth, cache, cookie, getIp, secret, }: ExpressAdapterConfig<TAccount>) => ExpressAdapter<TAccount>;
71
+ type CreateExpressAuth = {
72
+ <TDb extends DbAdapter, TData>(input: ExpressAuthOptions<DbAccount<TDb>> & {
73
+ db: TDb & SocialDbAdapter<DbAccount<TDb>>;
74
+ secret: string;
75
+ social: SocialConfig<TData>;
76
+ }): ExpressSocialAuth<DbAccount<TDb>, TData>;
77
+ <TDb extends DbAdapter>(input: ExpressAuthOptions<DbAccount<TDb>> & {
78
+ db: TDb;
79
+ social?: undefined;
80
+ }): ExpressAuth<DbAccount<TDb>>;
81
+ };
82
+ export declare const createExpressAuth: CreateExpressAuth;
83
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { createAuth } from "../../auth.js";
2
+ import { resolveHttpCookie } from "../utils/cookie.js";
3
+ import { requireSocialDb } from "../utils/social.js";
4
+ import { createHttpSession } from "../utils/session.js";
5
+ import { createExpressSocial } from "./social.js";
6
+ export const createExpressAdapter = ({ auth, cache, cookie, getIp, secret, }) => {
7
+ const session = createHttpSession({
8
+ appendSetCookie: ({ response, value }) => {
9
+ response.append("Set-Cookie", value);
10
+ },
11
+ auth,
12
+ ...(cache === undefined ? {} : { cache }),
13
+ ...(cookie === undefined ? {} : { cookie }),
14
+ framework: "Express",
15
+ getHeader: ({ name, request }) => request.get(name),
16
+ ...(getIp === undefined ? {} : { getIp }),
17
+ getMethod: (request) => request.method,
18
+ ...(secret === undefined ? {} : { secret }),
19
+ });
20
+ const resolveSession = (input) => {
21
+ return session.resolveSession(input);
22
+ };
23
+ const requireSession = async (request, response, next) => {
24
+ const value = await resolveSession({ request, response });
25
+ const locals = response.locals;
26
+ locals.session = value.session;
27
+ locals.account = value.account;
28
+ locals.user = value.account.user;
29
+ next();
30
+ };
31
+ return {
32
+ clearSession: (response) => session.clearSession(response),
33
+ cookie: session.cookie,
34
+ createSession: (input) => session.createSession(input),
35
+ getToken: (request) => session.getToken(request),
36
+ renewSession: (input) => session.renewSession(input),
37
+ requireSession,
38
+ resolveSession,
39
+ revokeSession: (input) => session.revokeSession(input),
40
+ };
41
+ };
42
+ const createExpressAuthImpl = ({ cache, cookie, db, getIp, password, secret, session, social, }) => {
43
+ const auth = createAuth({
44
+ db,
45
+ ...(password === undefined ? {} : { password }),
46
+ ...(session === undefined ? {} : { session }),
47
+ });
48
+ const adapter = createExpressAdapter({
49
+ auth,
50
+ ...(cache === undefined ? {} : { cache }),
51
+ ...(cookie === undefined ? {} : { cookie }),
52
+ ...(getIp === undefined ? {} : { getIp }),
53
+ ...(secret === undefined ? {} : { secret }),
54
+ });
55
+ if (social === undefined) {
56
+ return { ...auth, ...adapter };
57
+ }
58
+ const resolvedCookie = resolveHttpCookie(cookie);
59
+ return {
60
+ ...auth,
61
+ ...adapter,
62
+ social: createExpressSocial({
63
+ config: social,
64
+ cookie: resolvedCookie.options,
65
+ db: requireSocialDb(db),
66
+ sessionCookieNames: Object.values(resolvedCookie.names),
67
+ secret,
68
+ }),
69
+ };
70
+ };
71
+ export const createExpressAuth = createExpressAuthImpl;
72
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/express/index.ts"],"names":[],"mappings":"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"}