better-auth 1.2.0-beta.1 → 1.2.0-beta.11
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/dist/adapters/drizzle.cjs +12 -5
- package/dist/adapters/drizzle.d.cts +6 -2
- package/dist/adapters/drizzle.d.ts +6 -2
- package/dist/adapters/drizzle.js +11 -4
- package/dist/adapters/kysely.cjs +5 -5
- package/dist/adapters/kysely.d.cts +6 -2
- package/dist/adapters/kysely.d.ts +6 -2
- package/dist/adapters/kysely.js +3 -3
- package/dist/adapters/memory.cjs +4 -4
- package/dist/adapters/memory.d.cts +6 -2
- package/dist/adapters/memory.d.ts +6 -2
- package/dist/adapters/memory.js +3 -3
- package/dist/adapters/mongodb.cjs +26 -8
- package/dist/adapters/mongodb.d.cts +6 -2
- package/dist/adapters/mongodb.d.ts +6 -2
- package/dist/adapters/mongodb.js +24 -6
- package/dist/adapters/prisma.cjs +18 -5
- package/dist/adapters/prisma.d.cts +6 -2
- package/dist/adapters/prisma.d.ts +6 -2
- package/dist/adapters/prisma.js +16 -3
- package/dist/adapters/test.cjs +1 -1
- package/dist/adapters/test.d.cts +2 -2
- package/dist/adapters/test.d.ts +2 -2
- package/dist/adapters/test.js +1 -1
- package/dist/api.cjs +48 -44
- package/dist/api.d.cts +3 -3
- package/dist/api.d.ts +3 -3
- package/dist/api.js +5 -5
- package/dist/{auth-DcMc3BIq.d.ts → auth-C-uLTIcY.d.ts} +12002 -7646
- package/dist/{auth-D4rdpxtI.d.cts → auth-lDfjrjVd.d.cts} +12002 -7646
- package/dist/{chunk-MGJLVQOV.js → chunk-2OAHQPLI.js} +100 -38
- package/dist/{chunk-5E75URIA.cjs → chunk-2Z6CVQHH.cjs} +0 -4
- package/dist/{chunk-WVLPJXQR.cjs → chunk-3FWLBBDV.cjs} +109 -51
- package/dist/{chunk-WDOY7YUW.cjs → chunk-6P33VPUY.cjs} +106 -44
- package/dist/{chunk-ADGXBH3Y.js → chunk-6XMAWIGH.js} +29 -26
- package/dist/{chunk-G7HOSQ5N.cjs → chunk-75MYIQ34.cjs} +15 -18
- package/dist/{chunk-YW3B2ST3.js → chunk-BY25AMN4.js} +116 -5
- package/dist/{chunk-LZ5DEQVH.cjs → chunk-C4T7TNDG.cjs} +3 -3
- package/dist/{chunk-PJ4KWXLQ.cjs → chunk-DH5E7574.cjs} +8 -8
- package/dist/{chunk-5RY45WFV.js → chunk-DIIVSN3J.js} +36 -13
- package/dist/{chunk-OSBTXYDD.cjs → chunk-GQKBG2VQ.cjs} +125 -14
- package/dist/{chunk-BKFMDM3P.js → chunk-HRI7BYTU.js} +115 -16
- package/dist/{chunk-6O2GLU2U.cjs → chunk-ICONG5HP.cjs} +18 -13
- package/dist/{chunk-3EY3LSQR.js → chunk-IVS5VS3V.js} +75 -36
- package/dist/{chunk-YRUDZRY3.cjs → chunk-IYCSNEDU.cjs} +79 -56
- package/dist/{chunk-NU4SXYJ5.cjs → chunk-JDAHD767.cjs} +198 -42
- package/dist/{chunk-UP6VJQDB.js → chunk-JHLVXVME.js} +17 -10
- package/dist/{chunk-WLXFBYQ6.cjs → chunk-JU56U5MW.cjs} +79 -9
- package/dist/{chunk-QFYRLTM5.cjs → chunk-JYPC7ZAL.cjs} +52 -49
- package/dist/{chunk-UHGAA4GH.cjs → chunk-KNVDJ4WK.cjs} +5 -5
- package/dist/{chunk-CVDYU5OC.js → chunk-M6SPJGF4.js} +5 -8
- package/dist/{chunk-BAPXDO3E.cjs → chunk-MKNA7SED.cjs} +125 -26
- package/dist/{chunk-GTM45OYP.cjs → chunk-NQFRXDEY.cjs} +3 -3
- package/dist/{chunk-FXNG3YQA.js → chunk-NXQP77NI.js} +146 -79
- package/dist/{chunk-FA6UYV37.js → chunk-PR54V2QL.js} +29 -10
- package/dist/{chunk-JLATHUM5.cjs → chunk-QBYD37C7.cjs} +21 -14
- package/dist/{chunk-E6LJZ5ME.js → chunk-QFIG4XKQ.js} +1 -1
- package/dist/{chunk-764RYNTE.cjs → chunk-QS2XIJC4.cjs} +63 -29
- package/dist/{chunk-GTQM7JU7.js → chunk-R42K7GPF.js} +3 -1
- package/dist/{chunk-3BWJXTLC.cjs → chunk-RHWADEUT.cjs} +81 -58
- package/dist/{chunk-JNZYTS3B.js → chunk-RS2A52JD.js} +1 -1
- package/dist/{chunk-5OBRFII2.js → chunk-SIAKIOPW.js} +81 -23
- package/dist/{chunk-V6RGXSG4.cjs → chunk-SVC7H7K4.cjs} +3 -1
- package/dist/{chunk-EM73ZZSP.cjs → chunk-TID6AR5K.cjs} +49 -30
- package/dist/{chunk-VXDYNCOX.js → chunk-TODG5RSV.js} +172 -19
- package/dist/{chunk-VPCROEJW.cjs → chunk-TZ2VLKIG.cjs} +170 -103
- package/dist/{chunk-WGCTQNSQ.js → chunk-UHBMFLSF.js} +1 -1
- package/dist/{chunk-PIWBUHRB.cjs → chunk-UPQLFVFU.cjs} +83 -43
- package/dist/{chunk-B5UCLTPZ.cjs → chunk-UQC2FUXC.cjs} +2 -1
- package/dist/{chunk-RGG6OEA3.js → chunk-VUXQHI6K.js} +60 -26
- package/dist/{chunk-2LQ7T2GE.js → chunk-WUUDJ3TF.js} +3 -3
- package/dist/{chunk-HZBNUY7E.js → chunk-WZ6OIVJK.js} +2 -1
- package/dist/{chunk-5XAVWKUN.js → chunk-X4X6WCXH.js} +74 -4
- package/dist/{chunk-NPO64SVN.js → chunk-ZFUBVSZD.js} +0 -4
- package/dist/{chunk-S6MI7ZLE.js → chunk-ZKNBNGHR.js} +12 -7
- package/dist/{chunk-5KMF6HGF.js → chunk-ZUGWIOG4.js} +75 -52
- package/dist/client/plugins.cjs +215 -21
- package/dist/client/plugins.d.cts +176 -10
- package/dist/client/plugins.d.ts +176 -10
- package/dist/client/plugins.js +214 -14
- package/dist/client.d.cts +6 -7
- package/dist/client.d.ts +6 -7
- package/dist/cookies.d.cts +2 -2
- package/dist/cookies.d.ts +2 -2
- package/dist/db.cjs +29 -29
- package/dist/db.d.cts +6 -6
- package/dist/db.d.ts +6 -6
- package/dist/db.js +3 -3
- package/dist/index-BX_H-j6k.d.cts +7755 -0
- package/dist/{index-Ba5bMY6A.d.cts → index-BuRgaJZR.d.cts} +194 -2
- package/dist/index-D5zWKzf9.d.ts +7755 -0
- package/dist/{index-XrJz4AYF.d.ts → index-moQjyfmm.d.ts} +194 -2
- package/dist/index.cjs +19 -19
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/index.js +9 -9
- package/dist/next-js.cjs +24 -24
- package/dist/next-js.d.cts +2 -2
- package/dist/next-js.d.ts +2 -2
- package/dist/next-js.js +23 -23
- package/dist/node.d.cts +2 -2
- package/dist/node.d.ts +2 -2
- package/dist/oauth2.cjs +9 -9
- package/dist/oauth2.d.cts +6 -5
- package/dist/oauth2.d.ts +6 -5
- package/dist/oauth2.js +2 -2
- package/dist/plugins/admin.cjs +7 -7
- package/dist/plugins/admin.d.cts +163 -32
- package/dist/plugins/admin.d.ts +163 -32
- package/dist/plugins/admin.js +6 -6
- package/dist/plugins/anonymous.cjs +7 -7
- package/dist/plugins/anonymous.d.cts +8 -4
- package/dist/plugins/anonymous.d.ts +8 -4
- package/dist/plugins/anonymous.js +6 -6
- package/dist/plugins/bearer.cjs +7 -7
- package/dist/plugins/bearer.d.cts +2 -2
- package/dist/plugins/bearer.d.ts +2 -2
- package/dist/plugins/bearer.js +6 -6
- package/dist/{plugin → plugins}/custom-session.cjs +7 -7
- package/dist/{plugin → plugins}/custom-session.d.cts +8 -4
- package/dist/{plugin → plugins}/custom-session.d.ts +8 -4
- package/dist/{plugin → plugins}/custom-session.js +6 -6
- package/dist/plugins/email-otp.cjs +7 -7
- package/dist/plugins/email-otp.d.cts +44 -16
- package/dist/plugins/email-otp.d.ts +44 -16
- package/dist/plugins/email-otp.js +6 -6
- package/dist/plugins/generic-oauth.cjs +7 -7
- package/dist/plugins/generic-oauth.d.cts +95 -6
- package/dist/plugins/generic-oauth.d.ts +95 -6
- package/dist/plugins/generic-oauth.js +6 -6
- package/dist/plugins/jwt.cjs +7 -7
- package/dist/plugins/jwt.d.cts +28 -6
- package/dist/plugins/jwt.d.ts +28 -6
- package/dist/plugins/jwt.js +6 -6
- package/dist/plugins/magic-link.cjs +7 -7
- package/dist/plugins/magic-link.d.cts +16 -4
- package/dist/plugins/magic-link.d.ts +16 -4
- package/dist/plugins/magic-link.js +6 -6
- package/dist/plugins/multi-session.cjs +7 -7
- package/dist/plugins/multi-session.d.cts +20 -8
- package/dist/plugins/multi-session.d.ts +20 -8
- package/dist/plugins/multi-session.js +6 -6
- package/dist/plugins/oidc-provider.cjs +7 -7
- package/dist/plugins/oidc-provider.d.cts +58 -15
- package/dist/plugins/oidc-provider.d.ts +58 -15
- package/dist/plugins/oidc-provider.js +6 -6
- package/dist/plugins/one-tap.cjs +7 -7
- package/dist/plugins/one-tap.d.cts +13 -2
- package/dist/plugins/one-tap.d.ts +13 -2
- package/dist/plugins/one-tap.js +6 -6
- package/dist/plugins/open-api.cjs +8 -8
- package/dist/plugins/open-api.d.cts +14 -6
- package/dist/plugins/open-api.d.ts +14 -6
- package/dist/plugins/open-api.js +7 -7
- package/dist/plugins/organization.cjs +7 -7
- package/dist/plugins/organization.d.cts +3 -3
- package/dist/plugins/organization.d.ts +3 -3
- package/dist/plugins/organization.js +6 -6
- package/dist/plugins/passkey.cjs +19 -31
- package/dist/plugins/passkey.d.cts +45 -148
- package/dist/plugins/passkey.d.ts +45 -148
- package/dist/plugins/passkey.js +5 -9
- package/dist/plugins/phone-number.cjs +7 -7
- package/dist/plugins/phone-number.d.cts +122 -9
- package/dist/plugins/phone-number.d.ts +122 -9
- package/dist/plugins/phone-number.js +6 -6
- package/dist/plugins/sso.cjs +27 -19
- package/dist/plugins/sso.d.cts +24 -8
- package/dist/plugins/sso.d.ts +24 -8
- package/dist/plugins/sso.js +14 -6
- package/dist/plugins/two-factor.cjs +7 -7
- package/dist/plugins/two-factor.d.cts +62 -22
- package/dist/plugins/two-factor.d.ts +62 -22
- package/dist/plugins/two-factor.js +6 -6
- package/dist/plugins/username.cjs +7 -7
- package/dist/plugins/username.d.cts +36 -4
- package/dist/plugins/username.d.ts +36 -4
- package/dist/plugins/username.js +6 -6
- package/dist/plugins.cjs +43 -43
- package/dist/plugins.d.cts +11 -7
- package/dist/plugins.d.ts +11 -7
- package/dist/plugins.js +23 -23
- package/dist/react.d.cts +7 -9
- package/dist/react.d.ts +7 -9
- package/dist/social.cjs +32 -20
- package/dist/social.d.cts +1 -1
- package/dist/social.d.ts +1 -1
- package/dist/social.js +3 -3
- package/dist/solid.d.cts +7 -7
- package/dist/solid.d.ts +7 -7
- package/dist/{state-Cm8el5M1.d.ts → state-CLmFUxz3.d.ts} +1 -1
- package/dist/{state-DcraY2_H.d.cts → state-CZgzjtR5.d.cts} +1 -1
- package/dist/svelte-kit.d.cts +2 -2
- package/dist/svelte-kit.d.ts +2 -2
- package/dist/svelte.d.cts +7 -7
- package/dist/svelte.d.ts +7 -7
- package/dist/types.d.cts +4 -4
- package/dist/types.d.ts +4 -4
- package/dist/vue.d.cts +7 -7
- package/dist/vue.d.ts +7 -7
- package/package.json +4 -4
- package/dist/chunk-4WCY4Y5J.js +0 -173
- package/dist/chunk-5AZFOKWY.cjs +0 -176
- package/dist/index-CvlKSqnF.d.cts +0 -4023
- package/dist/index-Ivs2EsUL.d.ts +0 -4023
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkUQC2FUXC_cjs = require('./chunk-UQC2FUXC.cjs');
|
|
4
4
|
var chunkH74YRRNV_cjs = require('./chunk-H74YRRNV.cjs');
|
|
5
5
|
var chunkOA7Z7IZT_cjs = require('./chunk-OA7Z7IZT.cjs');
|
|
6
6
|
var chunk2HPSCSV7_cjs = require('./chunk-2HPSCSV7.cjs');
|
|
@@ -87,18 +87,21 @@ var createKyselyAdapter = async (config) => {
|
|
|
87
87
|
// src/db/with-hooks.ts
|
|
88
88
|
function getWithHooks(adapter, ctx) {
|
|
89
89
|
const hooks = ctx.hooks;
|
|
90
|
-
async function createWithHooks(data, model, customCreateFn) {
|
|
90
|
+
async function createWithHooks(data, model, customCreateFn, context) {
|
|
91
91
|
let actualData = data;
|
|
92
92
|
for (const hook of hooks || []) {
|
|
93
93
|
const toRun = hook[model]?.create?.before;
|
|
94
94
|
if (toRun) {
|
|
95
|
-
const result = await toRun(
|
|
95
|
+
const result = await toRun(actualData, context);
|
|
96
96
|
if (result === false) {
|
|
97
97
|
return null;
|
|
98
98
|
}
|
|
99
99
|
const isObject = typeof result === "object" && "data" in result;
|
|
100
100
|
if (isObject) {
|
|
101
|
-
actualData =
|
|
101
|
+
actualData = {
|
|
102
|
+
...actualData,
|
|
103
|
+
...result.data
|
|
104
|
+
};
|
|
102
105
|
}
|
|
103
106
|
}
|
|
104
107
|
}
|
|
@@ -110,17 +113,17 @@ function getWithHooks(adapter, ctx) {
|
|
|
110
113
|
for (const hook of hooks || []) {
|
|
111
114
|
const toRun = hook[model]?.create?.after;
|
|
112
115
|
if (toRun) {
|
|
113
|
-
await toRun(created);
|
|
116
|
+
await toRun(created, context);
|
|
114
117
|
}
|
|
115
118
|
}
|
|
116
119
|
return created;
|
|
117
120
|
}
|
|
118
|
-
async function updateWithHooks(data, where, model, customUpdateFn) {
|
|
121
|
+
async function updateWithHooks(data, where, model, customUpdateFn, context) {
|
|
119
122
|
let actualData = data;
|
|
120
123
|
for (const hook of hooks || []) {
|
|
121
124
|
const toRun = hook[model]?.update?.before;
|
|
122
125
|
if (toRun) {
|
|
123
|
-
const result = await toRun(data);
|
|
126
|
+
const result = await toRun(data, context);
|
|
124
127
|
if (result === false) {
|
|
125
128
|
return null;
|
|
126
129
|
}
|
|
@@ -137,17 +140,17 @@ function getWithHooks(adapter, ctx) {
|
|
|
137
140
|
for (const hook of hooks || []) {
|
|
138
141
|
const toRun = hook[model]?.update?.after;
|
|
139
142
|
if (toRun) {
|
|
140
|
-
await toRun(updated);
|
|
143
|
+
await toRun(updated, context);
|
|
141
144
|
}
|
|
142
145
|
}
|
|
143
146
|
return updated;
|
|
144
147
|
}
|
|
145
|
-
async function updateManyWithHooks(data, where, model, customUpdateFn) {
|
|
148
|
+
async function updateManyWithHooks(data, where, model, customUpdateFn, context) {
|
|
146
149
|
let actualData = data;
|
|
147
150
|
for (const hook of hooks || []) {
|
|
148
151
|
const toRun = hook[model]?.update?.before;
|
|
149
152
|
if (toRun) {
|
|
150
|
-
const result = await toRun(data);
|
|
153
|
+
const result = await toRun(data, context);
|
|
151
154
|
if (result === false) {
|
|
152
155
|
return null;
|
|
153
156
|
}
|
|
@@ -164,7 +167,7 @@ function getWithHooks(adapter, ctx) {
|
|
|
164
167
|
for (const hook of hooks || []) {
|
|
165
168
|
const toRun = hook[model]?.update?.after;
|
|
166
169
|
if (toRun) {
|
|
167
|
-
await toRun(updated);
|
|
170
|
+
await toRun(updated, context);
|
|
168
171
|
}
|
|
169
172
|
}
|
|
170
173
|
return updated;
|
|
@@ -183,14 +186,16 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
183
186
|
const sessionExpiration = options.session?.expiresIn || 60 * 60 * 24 * 7;
|
|
184
187
|
const { createWithHooks, updateWithHooks, updateManyWithHooks } = getWithHooks(adapter, ctx);
|
|
185
188
|
return {
|
|
186
|
-
createOAuthUser: async (user, account) => {
|
|
189
|
+
createOAuthUser: async (user, account, context) => {
|
|
187
190
|
const createdUser = await createWithHooks(
|
|
188
191
|
{
|
|
189
192
|
createdAt: /* @__PURE__ */ new Date(),
|
|
190
193
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
191
194
|
...user
|
|
192
195
|
},
|
|
193
|
-
"user"
|
|
196
|
+
"user",
|
|
197
|
+
void 0,
|
|
198
|
+
context
|
|
194
199
|
);
|
|
195
200
|
const createdAccount = await createWithHooks(
|
|
196
201
|
{
|
|
@@ -199,14 +204,16 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
199
204
|
createdAt: /* @__PURE__ */ new Date(),
|
|
200
205
|
updatedAt: /* @__PURE__ */ new Date()
|
|
201
206
|
},
|
|
202
|
-
"account"
|
|
207
|
+
"account",
|
|
208
|
+
void 0,
|
|
209
|
+
context
|
|
203
210
|
);
|
|
204
211
|
return {
|
|
205
212
|
user: createdUser,
|
|
206
213
|
account: createdAccount
|
|
207
214
|
};
|
|
208
215
|
},
|
|
209
|
-
createUser: async (user) => {
|
|
216
|
+
createUser: async (user, context) => {
|
|
210
217
|
const createdUser = await createWithHooks(
|
|
211
218
|
{
|
|
212
219
|
createdAt: /* @__PURE__ */ new Date(),
|
|
@@ -215,18 +222,22 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
215
222
|
...user,
|
|
216
223
|
email: user.email.toLowerCase()
|
|
217
224
|
},
|
|
218
|
-
"user"
|
|
225
|
+
"user",
|
|
226
|
+
void 0,
|
|
227
|
+
context
|
|
219
228
|
);
|
|
220
229
|
return createdUser;
|
|
221
230
|
},
|
|
222
|
-
createAccount: async (account) => {
|
|
231
|
+
createAccount: async (account, context) => {
|
|
223
232
|
const createdAccount = await createWithHooks(
|
|
224
233
|
{
|
|
225
234
|
createdAt: /* @__PURE__ */ new Date(),
|
|
226
235
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
227
236
|
...account
|
|
228
237
|
},
|
|
229
|
-
"account"
|
|
238
|
+
"account",
|
|
239
|
+
void 0,
|
|
240
|
+
context
|
|
230
241
|
);
|
|
231
242
|
return createdAccount;
|
|
232
243
|
},
|
|
@@ -244,7 +255,7 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
244
255
|
const sessionStringified = await secondaryStorage.get(session.token);
|
|
245
256
|
if (sessionStringified) {
|
|
246
257
|
const s = JSON.parse(sessionStringified);
|
|
247
|
-
const parsedSession =
|
|
258
|
+
const parsedSession = chunkUQC2FUXC_cjs.parseSessionOutput(ctx.options, {
|
|
248
259
|
...s.session,
|
|
249
260
|
expiresAt: new Date(s.session.expiresAt)
|
|
250
261
|
});
|
|
@@ -274,6 +285,12 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
274
285
|
});
|
|
275
286
|
return users;
|
|
276
287
|
},
|
|
288
|
+
countTotalUsers: async () => {
|
|
289
|
+
const total = await adapter.count({
|
|
290
|
+
model: "user"
|
|
291
|
+
});
|
|
292
|
+
return total;
|
|
293
|
+
},
|
|
277
294
|
deleteUser: async (userId) => {
|
|
278
295
|
if (secondaryStorage) {
|
|
279
296
|
await secondaryStorage.delete(`active-sessions-${userId}`);
|
|
@@ -308,11 +325,11 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
308
325
|
]
|
|
309
326
|
});
|
|
310
327
|
},
|
|
311
|
-
createSession: async (userId, request, dontRememberMe, override) => {
|
|
328
|
+
createSession: async (userId, request, dontRememberMe, override, context, overrideAll) => {
|
|
312
329
|
const headers = request instanceof Request ? request.headers : request;
|
|
313
330
|
const { id: _, ...rest } = override || {};
|
|
314
331
|
const data = {
|
|
315
|
-
ipAddress: request ?
|
|
332
|
+
ipAddress: request ? chunkUQC2FUXC_cjs.getIp(request, ctx.options) || "" : "",
|
|
316
333
|
userAgent: headers?.get("user-agent") || "",
|
|
317
334
|
...rest,
|
|
318
335
|
/**
|
|
@@ -324,7 +341,8 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
324
341
|
userId,
|
|
325
342
|
token: chunkH74YRRNV_cjs.generateId(32),
|
|
326
343
|
createdAt: /* @__PURE__ */ new Date(),
|
|
327
|
-
updatedAt: /* @__PURE__ */ new Date()
|
|
344
|
+
updatedAt: /* @__PURE__ */ new Date(),
|
|
345
|
+
...overrideAll ? rest : {}
|
|
328
346
|
};
|
|
329
347
|
const res = await createWithHooks(
|
|
330
348
|
data,
|
|
@@ -352,7 +370,8 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
352
370
|
return sessionData;
|
|
353
371
|
},
|
|
354
372
|
executeMainFn: options.session?.storeSessionInDatabase
|
|
355
|
-
} : void 0
|
|
373
|
+
} : void 0,
|
|
374
|
+
context
|
|
356
375
|
);
|
|
357
376
|
return res;
|
|
358
377
|
},
|
|
@@ -363,13 +382,13 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
363
382
|
return null;
|
|
364
383
|
}
|
|
365
384
|
const s = JSON.parse(sessionStringified);
|
|
366
|
-
const parsedSession2 =
|
|
385
|
+
const parsedSession2 = chunkUQC2FUXC_cjs.parseSessionOutput(ctx.options, {
|
|
367
386
|
...s.session,
|
|
368
387
|
expiresAt: new Date(s.session.expiresAt),
|
|
369
388
|
createdAt: new Date(s.session.createdAt),
|
|
370
389
|
updatedAt: new Date(s.session.updatedAt)
|
|
371
390
|
});
|
|
372
|
-
const parsedUser2 =
|
|
391
|
+
const parsedUser2 = chunkUQC2FUXC_cjs.parseUserOutput(ctx.options, {
|
|
373
392
|
...s.user,
|
|
374
393
|
createdAt: new Date(s.user.createdAt),
|
|
375
394
|
updatedAt: new Date(s.user.updatedAt)
|
|
@@ -403,8 +422,8 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
403
422
|
if (!user) {
|
|
404
423
|
return null;
|
|
405
424
|
}
|
|
406
|
-
const parsedSession =
|
|
407
|
-
const parsedUser =
|
|
425
|
+
const parsedSession = chunkUQC2FUXC_cjs.parseSessionOutput(ctx.options, session);
|
|
426
|
+
const parsedUser = chunkUQC2FUXC_cjs.parseUserOutput(ctx.options, user);
|
|
408
427
|
return {
|
|
409
428
|
session: parsedSession,
|
|
410
429
|
user: parsedUser
|
|
@@ -466,7 +485,7 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
466
485
|
};
|
|
467
486
|
});
|
|
468
487
|
},
|
|
469
|
-
updateSession: async (sessionToken, session) => {
|
|
488
|
+
updateSession: async (sessionToken, session, context) => {
|
|
470
489
|
const updatedSession = await updateWithHooks(
|
|
471
490
|
session,
|
|
472
491
|
[{ field: "token", value: sessionToken }],
|
|
@@ -487,7 +506,8 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
487
506
|
}
|
|
488
507
|
},
|
|
489
508
|
executeMainFn: options.session?.storeSessionInDatabase
|
|
490
|
-
} : void 0
|
|
509
|
+
} : void 0,
|
|
510
|
+
context
|
|
491
511
|
);
|
|
492
512
|
return updatedSession;
|
|
493
513
|
},
|
|
@@ -672,18 +692,20 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
672
692
|
});
|
|
673
693
|
return user;
|
|
674
694
|
},
|
|
675
|
-
linkAccount: async (account) => {
|
|
695
|
+
linkAccount: async (account, context) => {
|
|
676
696
|
const _account = await createWithHooks(
|
|
677
697
|
{
|
|
678
698
|
...account,
|
|
679
699
|
createdAt: /* @__PURE__ */ new Date(),
|
|
680
700
|
updatedAt: /* @__PURE__ */ new Date()
|
|
681
701
|
},
|
|
682
|
-
"account"
|
|
702
|
+
"account",
|
|
703
|
+
void 0,
|
|
704
|
+
context
|
|
683
705
|
);
|
|
684
706
|
return _account;
|
|
685
707
|
},
|
|
686
|
-
updateUser: async (userId, data) => {
|
|
708
|
+
updateUser: async (userId, data, context) => {
|
|
687
709
|
const user = await updateWithHooks(
|
|
688
710
|
data,
|
|
689
711
|
[
|
|
@@ -692,24 +714,28 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
692
714
|
value: userId
|
|
693
715
|
}
|
|
694
716
|
],
|
|
695
|
-
"user"
|
|
717
|
+
"user",
|
|
718
|
+
void 0,
|
|
719
|
+
context
|
|
696
720
|
);
|
|
697
721
|
return user;
|
|
698
722
|
},
|
|
699
|
-
updateUserByEmail: async (email, data) => {
|
|
723
|
+
updateUserByEmail: async (email, data, context) => {
|
|
700
724
|
const user = await updateWithHooks(
|
|
701
725
|
data,
|
|
702
726
|
[
|
|
703
727
|
{
|
|
704
728
|
field: "email",
|
|
705
|
-
value: email
|
|
729
|
+
value: email.toLowerCase()
|
|
706
730
|
}
|
|
707
731
|
],
|
|
708
|
-
"user"
|
|
732
|
+
"user",
|
|
733
|
+
void 0,
|
|
734
|
+
context
|
|
709
735
|
);
|
|
710
736
|
return user;
|
|
711
737
|
},
|
|
712
|
-
updatePassword: async (userId, password) => {
|
|
738
|
+
updatePassword: async (userId, password, context) => {
|
|
713
739
|
await updateManyWithHooks(
|
|
714
740
|
{
|
|
715
741
|
password
|
|
@@ -724,7 +750,9 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
724
750
|
value: "credential"
|
|
725
751
|
}
|
|
726
752
|
],
|
|
727
|
-
"account"
|
|
753
|
+
"account",
|
|
754
|
+
void 0,
|
|
755
|
+
context
|
|
728
756
|
);
|
|
729
757
|
},
|
|
730
758
|
findAccounts: async (userId) => {
|
|
@@ -763,22 +791,26 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
763
791
|
});
|
|
764
792
|
return account;
|
|
765
793
|
},
|
|
766
|
-
updateAccount: async (accountId, data) => {
|
|
794
|
+
updateAccount: async (accountId, data, context) => {
|
|
767
795
|
const account = await updateWithHooks(
|
|
768
796
|
data,
|
|
769
797
|
[{ field: "id", value: accountId }],
|
|
770
|
-
"account"
|
|
798
|
+
"account",
|
|
799
|
+
void 0,
|
|
800
|
+
context
|
|
771
801
|
);
|
|
772
802
|
return account;
|
|
773
803
|
},
|
|
774
|
-
createVerificationValue: async (data) => {
|
|
804
|
+
createVerificationValue: async (data, context) => {
|
|
775
805
|
const verification = await createWithHooks(
|
|
776
806
|
{
|
|
777
807
|
createdAt: /* @__PURE__ */ new Date(),
|
|
778
808
|
updatedAt: /* @__PURE__ */ new Date(),
|
|
779
809
|
...data
|
|
780
810
|
},
|
|
781
|
-
"verification"
|
|
811
|
+
"verification",
|
|
812
|
+
void 0,
|
|
813
|
+
context
|
|
782
814
|
);
|
|
783
815
|
return verification;
|
|
784
816
|
},
|
|
@@ -797,6 +829,18 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
797
829
|
},
|
|
798
830
|
limit: 1
|
|
799
831
|
});
|
|
832
|
+
if (!options.verification?.disableCleanup) {
|
|
833
|
+
await adapter.deleteMany({
|
|
834
|
+
model: "verification",
|
|
835
|
+
where: [
|
|
836
|
+
{
|
|
837
|
+
field: "expiresAt",
|
|
838
|
+
value: (/* @__PURE__ */ new Date()).toISOString(),
|
|
839
|
+
operator: "lt"
|
|
840
|
+
}
|
|
841
|
+
]
|
|
842
|
+
});
|
|
843
|
+
}
|
|
800
844
|
const lastVerification = verification[0];
|
|
801
845
|
return lastVerification;
|
|
802
846
|
},
|
|
@@ -822,11 +866,13 @@ var createInternalAdapter = (adapter, ctx) => {
|
|
|
822
866
|
]
|
|
823
867
|
});
|
|
824
868
|
},
|
|
825
|
-
updateVerificationValue: async (id, data) => {
|
|
869
|
+
updateVerificationValue: async (id, data, context) => {
|
|
826
870
|
const verification = await updateWithHooks(
|
|
827
871
|
data,
|
|
828
872
|
[{ field: "id", value: id }],
|
|
829
|
-
"verification"
|
|
873
|
+
"verification",
|
|
874
|
+
void 0,
|
|
875
|
+
context
|
|
830
876
|
);
|
|
831
877
|
return verification;
|
|
832
878
|
}
|
|
@@ -1251,6 +1297,9 @@ var memoryAdapter = (db) => (options) => {
|
|
|
1251
1297
|
}
|
|
1252
1298
|
return table.map((record) => transformOutput(record, model));
|
|
1253
1299
|
},
|
|
1300
|
+
count: async ({ model }) => {
|
|
1301
|
+
return db[model].length;
|
|
1302
|
+
},
|
|
1254
1303
|
update: async ({ model, where, update }) => {
|
|
1255
1304
|
const table = db[model];
|
|
1256
1305
|
const res = convertWhereClause(where, table, model);
|
|
@@ -1860,6 +1909,19 @@ var kyselyAdapter = (db, config) => (opts) => {
|
|
|
1860
1909
|
const res = await query.execute();
|
|
1861
1910
|
return res.length;
|
|
1862
1911
|
},
|
|
1912
|
+
async count(data) {
|
|
1913
|
+
const { model, where } = data;
|
|
1914
|
+
const { and, or } = convertWhereClause(model, where);
|
|
1915
|
+
let query = db.selectFrom(getModelName(model)).select(db.fn.count("id").as("count"));
|
|
1916
|
+
if (and) {
|
|
1917
|
+
query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
1918
|
+
}
|
|
1919
|
+
if (or) {
|
|
1920
|
+
query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
1921
|
+
}
|
|
1922
|
+
const res = await query.execute();
|
|
1923
|
+
return res[0].count;
|
|
1924
|
+
},
|
|
1863
1925
|
async delete(data) {
|
|
1864
1926
|
const { model, where } = data;
|
|
1865
1927
|
const { and, or } = convertWhereClause(model, where);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getEndpointResponse } from './chunk-JEYF2ARX.js';
|
|
2
|
-
import { createAuthEndpoint, APIError, createAuthMiddleware } from './chunk-
|
|
2
|
+
import { createAuthEndpoint, APIError, createAuthMiddleware } from './chunk-IVS5VS3V.js';
|
|
3
3
|
import { setSessionCookie } from './chunk-QQGZ3XGI.js';
|
|
4
4
|
import { generateRandomString } from './chunk-DBPOZRMS.js';
|
|
5
5
|
import { getDate } from './chunk-FURNA6HY.js';
|
|
@@ -251,9 +251,6 @@ var emailOTP = (options) => {
|
|
|
251
251
|
});
|
|
252
252
|
}
|
|
253
253
|
if (verificationValue.expiresAt < /* @__PURE__ */ new Date()) {
|
|
254
|
-
await ctx.context.internalAdapter.deleteVerificationValue(
|
|
255
|
-
verificationValue.id
|
|
256
|
-
);
|
|
257
254
|
throw new APIError("BAD_REQUEST", {
|
|
258
255
|
message: ERROR_CODES.OTP_EXPIRED
|
|
259
256
|
});
|
|
@@ -278,7 +275,8 @@ var emailOTP = (options) => {
|
|
|
278
275
|
{
|
|
279
276
|
email,
|
|
280
277
|
emailVerified: true
|
|
281
|
-
}
|
|
278
|
+
},
|
|
279
|
+
ctx
|
|
282
280
|
);
|
|
283
281
|
if (ctx.context.options.emailVerification?.autoSignInAfterVerification) {
|
|
284
282
|
const session = await ctx.context.internalAdapter.createSession(
|
|
@@ -367,9 +365,6 @@ var emailOTP = (options) => {
|
|
|
367
365
|
});
|
|
368
366
|
}
|
|
369
367
|
if (verificationValue.expiresAt < /* @__PURE__ */ new Date()) {
|
|
370
|
-
await ctx.context.internalAdapter.deleteVerificationValue(
|
|
371
|
-
verificationValue.id
|
|
372
|
-
);
|
|
373
368
|
throw new APIError("BAD_REQUEST", {
|
|
374
369
|
message: ERROR_CODES.OTP_EXPIRED
|
|
375
370
|
});
|
|
@@ -390,11 +385,14 @@ var emailOTP = (options) => {
|
|
|
390
385
|
message: ERROR_CODES.USER_NOT_FOUND
|
|
391
386
|
});
|
|
392
387
|
}
|
|
393
|
-
const newUser = await ctx.context.internalAdapter.createUser(
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
388
|
+
const newUser = await ctx.context.internalAdapter.createUser(
|
|
389
|
+
{
|
|
390
|
+
email,
|
|
391
|
+
emailVerified: true,
|
|
392
|
+
name: ""
|
|
393
|
+
},
|
|
394
|
+
ctx
|
|
395
|
+
);
|
|
398
396
|
const session2 = await ctx.context.internalAdapter.createSession(
|
|
399
397
|
newUser.id,
|
|
400
398
|
ctx.request
|
|
@@ -417,9 +415,13 @@ var emailOTP = (options) => {
|
|
|
417
415
|
});
|
|
418
416
|
}
|
|
419
417
|
if (!user.user.emailVerified) {
|
|
420
|
-
await ctx.context.internalAdapter.updateUser(
|
|
421
|
-
|
|
422
|
-
|
|
418
|
+
await ctx.context.internalAdapter.updateUser(
|
|
419
|
+
user.user.id,
|
|
420
|
+
{
|
|
421
|
+
emailVerified: true
|
|
422
|
+
},
|
|
423
|
+
ctx
|
|
424
|
+
);
|
|
423
425
|
}
|
|
424
426
|
const session = await ctx.context.internalAdapter.createSession(
|
|
425
427
|
user.user.id,
|
|
@@ -562,9 +564,6 @@ var emailOTP = (options) => {
|
|
|
562
564
|
});
|
|
563
565
|
}
|
|
564
566
|
if (verificationValue.expiresAt < /* @__PURE__ */ new Date()) {
|
|
565
|
-
await ctx.context.internalAdapter.deleteVerificationValue(
|
|
566
|
-
verificationValue.id
|
|
567
|
-
);
|
|
568
567
|
throw new APIError("BAD_REQUEST", {
|
|
569
568
|
message: ERROR_CODES.OTP_EXPIRED
|
|
570
569
|
});
|
|
@@ -585,16 +584,20 @@ var emailOTP = (options) => {
|
|
|
585
584
|
(account2) => account2.providerId === "credential"
|
|
586
585
|
);
|
|
587
586
|
if (!account) {
|
|
588
|
-
await ctx.context.internalAdapter.createAccount(
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
587
|
+
await ctx.context.internalAdapter.createAccount(
|
|
588
|
+
{
|
|
589
|
+
userId: user.user.id,
|
|
590
|
+
providerId: "credential",
|
|
591
|
+
accountId: user.user.id,
|
|
592
|
+
password: passwordHash
|
|
593
|
+
},
|
|
594
|
+
ctx
|
|
595
|
+
);
|
|
594
596
|
} else {
|
|
595
597
|
await ctx.context.internalAdapter.updatePassword(
|
|
596
598
|
user.user.id,
|
|
597
|
-
passwordHash
|
|
599
|
+
passwordHash,
|
|
600
|
+
ctx
|
|
598
601
|
);
|
|
599
602
|
}
|
|
600
603
|
return ctx.json({
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkUPQLFVFU_cjs = require('./chunk-UPQLFVFU.cjs');
|
|
4
4
|
var chunkV6HE2MP7_cjs = require('./chunk-V6HE2MP7.cjs');
|
|
5
5
|
var zod = require('zod');
|
|
6
6
|
|
|
@@ -16,7 +16,7 @@ var multiSession = (options) => {
|
|
|
16
16
|
return {
|
|
17
17
|
id: "multi-session",
|
|
18
18
|
endpoints: {
|
|
19
|
-
listDeviceSessions:
|
|
19
|
+
listDeviceSessions: chunkUPQLFVFU_cjs.createAuthEndpoint(
|
|
20
20
|
"/multi-session/list-device-sessions",
|
|
21
21
|
{
|
|
22
22
|
method: "GET",
|
|
@@ -39,7 +39,7 @@ var multiSession = (options) => {
|
|
|
39
39
|
return ctx.json(validSessions);
|
|
40
40
|
}
|
|
41
41
|
),
|
|
42
|
-
setActiveSession:
|
|
42
|
+
setActiveSession: chunkUPQLFVFU_cjs.createAuthEndpoint(
|
|
43
43
|
"/multi-session/set-active",
|
|
44
44
|
{
|
|
45
45
|
method: "POST",
|
|
@@ -49,7 +49,7 @@ var multiSession = (options) => {
|
|
|
49
49
|
})
|
|
50
50
|
}),
|
|
51
51
|
requireHeaders: true,
|
|
52
|
-
use: [
|
|
52
|
+
use: [chunkUPQLFVFU_cjs.sessionMiddleware],
|
|
53
53
|
metadata: {
|
|
54
54
|
openapi: {
|
|
55
55
|
description: "Set the active session",
|
|
@@ -81,7 +81,7 @@ var multiSession = (options) => {
|
|
|
81
81
|
ctx.context.secret
|
|
82
82
|
);
|
|
83
83
|
if (!sessionCookie) {
|
|
84
|
-
throw new
|
|
84
|
+
throw new chunkUPQLFVFU_cjs.APIError("UNAUTHORIZED", {
|
|
85
85
|
message: ERROR_CODES.INVALID_SESSION_TOKEN
|
|
86
86
|
});
|
|
87
87
|
}
|
|
@@ -91,7 +91,7 @@ var multiSession = (options) => {
|
|
|
91
91
|
...ctx.context.authCookies.sessionToken.options,
|
|
92
92
|
maxAge: 0
|
|
93
93
|
});
|
|
94
|
-
throw new
|
|
94
|
+
throw new chunkUPQLFVFU_cjs.APIError("UNAUTHORIZED", {
|
|
95
95
|
message: ERROR_CODES.INVALID_SESSION_TOKEN
|
|
96
96
|
});
|
|
97
97
|
}
|
|
@@ -99,7 +99,7 @@ var multiSession = (options) => {
|
|
|
99
99
|
return ctx.json(session);
|
|
100
100
|
}
|
|
101
101
|
),
|
|
102
|
-
revokeDeviceSession:
|
|
102
|
+
revokeDeviceSession: chunkUPQLFVFU_cjs.createAuthEndpoint(
|
|
103
103
|
"/multi-session/revoke",
|
|
104
104
|
{
|
|
105
105
|
method: "POST",
|
|
@@ -109,7 +109,7 @@ var multiSession = (options) => {
|
|
|
109
109
|
})
|
|
110
110
|
}),
|
|
111
111
|
requireHeaders: true,
|
|
112
|
-
use: [
|
|
112
|
+
use: [chunkUPQLFVFU_cjs.sessionMiddleware],
|
|
113
113
|
metadata: {
|
|
114
114
|
openapi: {
|
|
115
115
|
description: "Revoke a device session",
|
|
@@ -141,7 +141,7 @@ var multiSession = (options) => {
|
|
|
141
141
|
ctx.context.secret
|
|
142
142
|
);
|
|
143
143
|
if (!sessionCookie) {
|
|
144
|
-
throw new
|
|
144
|
+
throw new chunkUPQLFVFU_cjs.APIError("UNAUTHORIZED", {
|
|
145
145
|
message: ERROR_CODES.INVALID_SESSION_TOKEN
|
|
146
146
|
});
|
|
147
147
|
}
|
|
@@ -188,21 +188,18 @@ var multiSession = (options) => {
|
|
|
188
188
|
after: [
|
|
189
189
|
{
|
|
190
190
|
matcher: () => true,
|
|
191
|
-
handler:
|
|
191
|
+
handler: chunkUPQLFVFU_cjs.createAuthMiddleware(async (ctx) => {
|
|
192
192
|
const cookieString = ctx.context.responseHeaders?.get("set-cookie");
|
|
193
193
|
if (!cookieString) return;
|
|
194
194
|
const setCookies = chunkV6HE2MP7_cjs.parseSetCookieHeader(cookieString);
|
|
195
195
|
const sessionCookieConfig = ctx.context.authCookies.sessionToken;
|
|
196
|
-
const sessionToken =
|
|
197
|
-
sessionCookieConfig.name
|
|
198
|
-
)?.value;
|
|
196
|
+
const sessionToken = ctx.context.newSession?.session.token;
|
|
199
197
|
if (!sessionToken) return;
|
|
200
198
|
const cookies = chunkV6HE2MP7_cjs.parseCookies(ctx.headers?.get("cookie") || "");
|
|
201
|
-
|
|
202
|
-
if (!rawSession) {
|
|
199
|
+
if (!sessionToken) {
|
|
203
200
|
return;
|
|
204
201
|
}
|
|
205
|
-
const cookieName = `${sessionCookieConfig.name}_multi-${
|
|
202
|
+
const cookieName = `${sessionCookieConfig.name}_multi-${sessionToken}`;
|
|
206
203
|
if (setCookies.get(cookieName) || cookies.get(cookieName)) return;
|
|
207
204
|
const currentMultiSessions = Object.keys(Object.fromEntries(cookies)).filter(
|
|
208
205
|
isMultiSessionCookie
|
|
@@ -212,7 +209,7 @@ var multiSession = (options) => {
|
|
|
212
209
|
}
|
|
213
210
|
await ctx.setSignedCookie(
|
|
214
211
|
cookieName,
|
|
215
|
-
|
|
212
|
+
sessionToken,
|
|
216
213
|
ctx.context.secret,
|
|
217
214
|
sessionCookieConfig.options
|
|
218
215
|
);
|
|
@@ -220,7 +217,7 @@ var multiSession = (options) => {
|
|
|
220
217
|
},
|
|
221
218
|
{
|
|
222
219
|
matcher: (context) => context.path === "/sign-out",
|
|
223
|
-
handler:
|
|
220
|
+
handler: chunkUPQLFVFU_cjs.createAuthMiddleware(async (ctx) => {
|
|
224
221
|
const cookieHeader = ctx.headers?.get("cookie");
|
|
225
222
|
if (!cookieHeader) return;
|
|
226
223
|
const cookies = Object.fromEntries(chunkV6HE2MP7_cjs.parseCookies(cookieHeader));
|