better-auth 1.2.6-beta.7 → 1.2.6

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 (275) hide show
  1. package/dist/adapters/drizzle-adapter/index.cjs +185 -249
  2. package/dist/adapters/drizzle-adapter/index.d.cts +11 -49
  3. package/dist/adapters/drizzle-adapter/index.d.mts +11 -49
  4. package/dist/adapters/drizzle-adapter/index.d.ts +11 -49
  5. package/dist/adapters/drizzle-adapter/index.mjs +185 -249
  6. package/dist/adapters/index.cjs +25 -0
  7. package/dist/adapters/index.d.cts +17 -0
  8. package/dist/adapters/index.d.mts +17 -0
  9. package/dist/adapters/index.d.ts +17 -0
  10. package/dist/adapters/index.mjs +19 -0
  11. package/dist/adapters/kysely-adapter/index.cjs +6 -7
  12. package/dist/adapters/kysely-adapter/index.d.cts +17 -49
  13. package/dist/adapters/kysely-adapter/index.d.mts +17 -49
  14. package/dist/adapters/kysely-adapter/index.d.ts +17 -49
  15. package/dist/adapters/kysely-adapter/index.mjs +7 -8
  16. package/dist/adapters/memory-adapter/index.cjs +6 -8
  17. package/dist/adapters/memory-adapter/index.d.cts +9 -49
  18. package/dist/adapters/memory-adapter/index.d.mts +9 -49
  19. package/dist/adapters/memory-adapter/index.d.ts +9 -49
  20. package/dist/adapters/memory-adapter/index.mjs +7 -9
  21. package/dist/adapters/mongodb-adapter/index.cjs +163 -192
  22. package/dist/adapters/mongodb-adapter/index.d.cts +20 -49
  23. package/dist/adapters/mongodb-adapter/index.d.mts +20 -49
  24. package/dist/adapters/mongodb-adapter/index.d.ts +20 -49
  25. package/dist/adapters/mongodb-adapter/index.mjs +164 -193
  26. package/dist/adapters/prisma-adapter/index.cjs +129 -203
  27. package/dist/adapters/prisma-adapter/index.d.cts +17 -49
  28. package/dist/adapters/prisma-adapter/index.d.mts +17 -49
  29. package/dist/adapters/prisma-adapter/index.d.ts +17 -49
  30. package/dist/adapters/prisma-adapter/index.mjs +130 -204
  31. package/dist/adapters/test.cjs +710 -377
  32. package/dist/adapters/test.d.cts +64 -5
  33. package/dist/adapters/test.d.mts +64 -5
  34. package/dist/adapters/test.d.ts +64 -5
  35. package/dist/adapters/test.mjs +712 -380
  36. package/dist/api/index.cjs +60 -24
  37. package/dist/api/index.d.cts +3 -3
  38. package/dist/api/index.d.mts +3 -3
  39. package/dist/api/index.d.ts +3 -3
  40. package/dist/api/index.mjs +62 -26
  41. package/dist/client/index.d.cts +3 -3
  42. package/dist/client/index.d.mts +3 -3
  43. package/dist/client/index.d.ts +3 -3
  44. package/dist/client/plugins/index.cjs +13 -15
  45. package/dist/client/plugins/index.d.cts +80 -19
  46. package/dist/client/plugins/index.d.mts +80 -19
  47. package/dist/client/plugins/index.d.ts +80 -19
  48. package/dist/client/plugins/index.mjs +13 -16
  49. package/dist/client/react/index.cjs +4 -4
  50. package/dist/client/react/index.d.cts +3 -3
  51. package/dist/client/react/index.d.mts +3 -3
  52. package/dist/client/react/index.d.ts +3 -3
  53. package/dist/client/solid/index.d.cts +3 -3
  54. package/dist/client/solid/index.d.mts +3 -3
  55. package/dist/client/solid/index.d.ts +3 -3
  56. package/dist/client/svelte/index.d.cts +3 -3
  57. package/dist/client/svelte/index.d.mts +3 -3
  58. package/dist/client/svelte/index.d.ts +3 -3
  59. package/dist/client/vue/index.d.cts +3 -3
  60. package/dist/client/vue/index.d.mts +3 -3
  61. package/dist/client/vue/index.d.ts +3 -3
  62. package/dist/cookies/index.cjs +13 -2
  63. package/dist/cookies/index.d.cts +3 -3
  64. package/dist/cookies/index.d.mts +3 -3
  65. package/dist/cookies/index.d.ts +3 -3
  66. package/dist/cookies/index.mjs +13 -2
  67. package/dist/db/index.cjs +6 -6
  68. package/dist/db/index.d.cts +4 -4
  69. package/dist/db/index.d.mts +4 -4
  70. package/dist/db/index.d.ts +4 -4
  71. package/dist/db/index.mjs +7 -7
  72. package/dist/index.cjs +11 -8
  73. package/dist/index.d.cts +4 -4
  74. package/dist/index.d.mts +4 -4
  75. package/dist/index.d.ts +4 -4
  76. package/dist/index.mjs +14 -11
  77. package/dist/integrations/next-js.cjs +4 -5
  78. package/dist/integrations/next-js.d.cts +3 -3
  79. package/dist/integrations/next-js.d.mts +3 -3
  80. package/dist/integrations/next-js.d.ts +3 -3
  81. package/dist/integrations/next-js.mjs +5 -6
  82. package/dist/integrations/node.d.cts +3 -3
  83. package/dist/integrations/node.d.mts +3 -3
  84. package/dist/integrations/node.d.ts +3 -3
  85. package/dist/integrations/react-start.cjs +5 -6
  86. package/dist/integrations/react-start.d.cts +3 -3
  87. package/dist/integrations/react-start.d.mts +3 -3
  88. package/dist/integrations/react-start.d.ts +3 -3
  89. package/dist/integrations/react-start.mjs +6 -7
  90. package/dist/integrations/svelte-kit.d.cts +3 -3
  91. package/dist/integrations/svelte-kit.d.mts +3 -3
  92. package/dist/integrations/svelte-kit.d.ts +3 -3
  93. package/dist/oauth2/index.d.cts +5 -5
  94. package/dist/oauth2/index.d.mts +5 -5
  95. package/dist/oauth2/index.d.ts +5 -5
  96. package/dist/plugins/access/index.d.cts +1 -1
  97. package/dist/plugins/access/index.d.mts +1 -1
  98. package/dist/plugins/access/index.d.ts +1 -1
  99. package/dist/plugins/admin/access/index.d.cts +1 -1
  100. package/dist/plugins/admin/access/index.d.mts +1 -1
  101. package/dist/plugins/admin/access/index.d.ts +1 -1
  102. package/dist/plugins/admin/index.cjs +4 -4
  103. package/dist/plugins/admin/index.d.cts +74 -14
  104. package/dist/plugins/admin/index.d.mts +74 -14
  105. package/dist/plugins/admin/index.d.ts +74 -14
  106. package/dist/plugins/admin/index.mjs +5 -5
  107. package/dist/plugins/anonymous/index.cjs +4 -5
  108. package/dist/plugins/anonymous/index.d.cts +3 -3
  109. package/dist/plugins/anonymous/index.d.mts +3 -3
  110. package/dist/plugins/anonymous/index.d.ts +3 -3
  111. package/dist/plugins/anonymous/index.mjs +5 -6
  112. package/dist/plugins/bearer/index.cjs +2 -2
  113. package/dist/plugins/bearer/index.d.cts +3 -3
  114. package/dist/plugins/bearer/index.d.mts +3 -3
  115. package/dist/plugins/bearer/index.d.ts +3 -3
  116. package/dist/plugins/bearer/index.mjs +3 -3
  117. package/dist/plugins/captcha/index.cjs +110 -45
  118. package/dist/plugins/captcha/index.d.cts +26 -6
  119. package/dist/plugins/captcha/index.d.mts +26 -6
  120. package/dist/plugins/captcha/index.d.ts +26 -6
  121. package/dist/plugins/captcha/index.mjs +110 -45
  122. package/dist/plugins/custom-session/index.cjs +24 -5
  123. package/dist/plugins/custom-session/index.d.cts +25 -6
  124. package/dist/plugins/custom-session/index.d.mts +25 -6
  125. package/dist/plugins/custom-session/index.d.ts +25 -6
  126. package/dist/plugins/custom-session/index.mjs +25 -6
  127. package/dist/plugins/email-otp/index.cjs +96 -30
  128. package/dist/plugins/email-otp/index.d.cts +33 -10
  129. package/dist/plugins/email-otp/index.d.mts +33 -10
  130. package/dist/plugins/email-otp/index.d.ts +33 -10
  131. package/dist/plugins/email-otp/index.mjs +97 -31
  132. package/dist/plugins/generic-oauth/index.cjs +80 -20
  133. package/dist/plugins/generic-oauth/index.d.cts +46 -3
  134. package/dist/plugins/generic-oauth/index.d.mts +46 -3
  135. package/dist/plugins/generic-oauth/index.d.ts +46 -3
  136. package/dist/plugins/generic-oauth/index.mjs +81 -21
  137. package/dist/plugins/haveibeenpwned/index.cjs +93 -0
  138. package/dist/plugins/haveibeenpwned/index.d.cts +33 -0
  139. package/dist/plugins/haveibeenpwned/index.d.mts +33 -0
  140. package/dist/plugins/haveibeenpwned/index.d.ts +33 -0
  141. package/dist/plugins/haveibeenpwned/index.mjs +91 -0
  142. package/dist/plugins/index.cjs +583 -19
  143. package/dist/plugins/index.d.cts +7 -5
  144. package/dist/plugins/index.d.mts +7 -5
  145. package/dist/plugins/index.d.ts +7 -5
  146. package/dist/plugins/index.mjs +583 -21
  147. package/dist/plugins/jwt/index.cjs +45 -21
  148. package/dist/plugins/jwt/index.d.cts +52 -6
  149. package/dist/plugins/jwt/index.d.mts +52 -6
  150. package/dist/plugins/jwt/index.d.ts +52 -6
  151. package/dist/plugins/jwt/index.mjs +46 -22
  152. package/dist/plugins/magic-link/index.cjs +3 -3
  153. package/dist/plugins/magic-link/index.mjs +4 -4
  154. package/dist/plugins/multi-session/index.cjs +3 -3
  155. package/dist/plugins/multi-session/index.d.cts +3 -3
  156. package/dist/plugins/multi-session/index.d.mts +3 -3
  157. package/dist/plugins/multi-session/index.d.ts +3 -3
  158. package/dist/plugins/multi-session/index.mjs +4 -4
  159. package/dist/plugins/oauth-proxy/index.cjs +4 -4
  160. package/dist/plugins/oauth-proxy/index.d.cts +3 -3
  161. package/dist/plugins/oauth-proxy/index.d.mts +3 -3
  162. package/dist/plugins/oauth-proxy/index.d.ts +3 -3
  163. package/dist/plugins/oauth-proxy/index.mjs +5 -5
  164. package/dist/plugins/oidc-provider/index.cjs +227 -8
  165. package/dist/plugins/oidc-provider/index.d.cts +215 -3
  166. package/dist/plugins/oidc-provider/index.d.mts +215 -3
  167. package/dist/plugins/oidc-provider/index.d.ts +215 -3
  168. package/dist/plugins/oidc-provider/index.mjs +228 -9
  169. package/dist/plugins/one-tap/index.cjs +5 -5
  170. package/dist/plugins/one-tap/index.mjs +6 -6
  171. package/dist/plugins/one-time-token/index.cjs +119 -0
  172. package/dist/plugins/one-time-token/index.d.cts +134 -0
  173. package/dist/plugins/one-time-token/index.d.mts +134 -0
  174. package/dist/plugins/one-time-token/index.d.ts +134 -0
  175. package/dist/plugins/one-time-token/index.mjs +117 -0
  176. package/dist/plugins/open-api/index.cjs +3 -3
  177. package/dist/plugins/open-api/index.d.cts +3 -3
  178. package/dist/plugins/open-api/index.d.mts +3 -3
  179. package/dist/plugins/open-api/index.d.ts +3 -3
  180. package/dist/plugins/open-api/index.mjs +4 -4
  181. package/dist/plugins/organization/access/index.d.cts +1 -1
  182. package/dist/plugins/organization/access/index.d.mts +1 -1
  183. package/dist/plugins/organization/access/index.d.ts +1 -1
  184. package/dist/plugins/organization/index.cjs +4 -4
  185. package/dist/plugins/organization/index.d.cts +708 -55
  186. package/dist/plugins/organization/index.d.mts +708 -55
  187. package/dist/plugins/organization/index.d.ts +708 -55
  188. package/dist/plugins/organization/index.mjs +5 -5
  189. package/dist/plugins/passkey/index.cjs +82 -8
  190. package/dist/plugins/passkey/index.d.cts +72 -3
  191. package/dist/plugins/passkey/index.d.mts +72 -3
  192. package/dist/plugins/passkey/index.d.ts +72 -3
  193. package/dist/plugins/passkey/index.mjs +83 -9
  194. package/dist/plugins/phone-number/index.cjs +194 -26
  195. package/dist/plugins/phone-number/index.d.cts +132 -8
  196. package/dist/plugins/phone-number/index.d.mts +132 -8
  197. package/dist/plugins/phone-number/index.d.ts +132 -8
  198. package/dist/plugins/phone-number/index.mjs +195 -27
  199. package/dist/plugins/sso/index.cjs +190 -7
  200. package/dist/plugins/sso/index.d.cts +181 -15
  201. package/dist/plugins/sso/index.d.mts +181 -15
  202. package/dist/plugins/sso/index.d.ts +181 -15
  203. package/dist/plugins/sso/index.mjs +191 -8
  204. package/dist/plugins/two-factor/index.cjs +443 -92
  205. package/dist/plugins/two-factor/index.d.cts +230 -396
  206. package/dist/plugins/two-factor/index.d.mts +230 -396
  207. package/dist/plugins/two-factor/index.d.ts +230 -396
  208. package/dist/plugins/two-factor/index.mjs +431 -80
  209. package/dist/plugins/username/index.cjs +34 -31
  210. package/dist/plugins/username/index.d.cts +15 -12
  211. package/dist/plugins/username/index.d.mts +15 -12
  212. package/dist/plugins/username/index.d.ts +15 -12
  213. package/dist/plugins/username/index.mjs +35 -32
  214. package/dist/shared/{better-auth.BSsp73pg.cjs → better-auth.B7cZ2juS.cjs} +15 -14
  215. package/dist/shared/{better-auth.BANAxdkL.d.ts → better-auth.B88xucNq.d.mts} +529 -39
  216. package/dist/shared/{better-auth.CV1L7TPV.cjs → better-auth.BCWbJh3H.cjs} +313 -43
  217. package/dist/shared/better-auth.BGJuANtq.cjs +772 -0
  218. package/dist/shared/{better-auth.DPBQN9Fs.mjs → better-auth.BGRBGQM4.mjs} +314 -44
  219. package/dist/shared/{better-auth.CApEjVDP.cjs → better-auth.BW8BpneG.cjs} +4 -1
  220. package/dist/shared/{better-auth.BiQsvaIP.d.cts → better-auth.BcU1Kjyq.d.cts} +2051 -518
  221. package/dist/shared/{better-auth.D9VnBkRI.mjs → better-auth.Bm9HxIzE.mjs} +47 -24
  222. package/dist/shared/{better-auth.BRf6Iynu.d.ts → better-auth.Bwc-6kOr.d.ts} +1 -1
  223. package/dist/shared/better-auth.Bz1paiXf.mjs +770 -0
  224. package/dist/shared/{better-auth.A3TjrU8G.mjs → better-auth.C0YmvEre.mjs} +29 -12
  225. package/dist/shared/better-auth.C2GZ5Zx_.mjs +307 -0
  226. package/dist/shared/{better-auth.D-oLmHIj.d.mts → better-auth.CA2hFK4N.d.ts} +2051 -518
  227. package/dist/shared/{better-auth.Dmhe30iW.d.mts → better-auth.CGukGrxT.d.cts} +1 -1
  228. package/dist/shared/{better-auth.CsSpq0zL.cjs → better-auth.CHUzBidy.cjs} +46 -23
  229. package/dist/shared/{better-auth.DWRligF8.d.cts → better-auth.CT9J6rD-.d.cts} +539 -7
  230. package/dist/shared/{better-auth.D4jH-sJA.mjs → better-auth.CWwVo_61.mjs} +458 -118
  231. package/dist/shared/{better-auth.Bi8FQwDD.d.cts → better-auth.CYegVoq1.d.cts} +1 -1
  232. package/dist/shared/{better-auth.Bi8FQwDD.d.mts → better-auth.CYegVoq1.d.mts} +1 -1
  233. package/dist/shared/{better-auth.Bi8FQwDD.d.ts → better-auth.CYegVoq1.d.ts} +1 -1
  234. package/dist/shared/{better-auth.CepcSj5H.mjs → better-auth.Cc72UxUH.mjs} +1 -2
  235. package/dist/shared/{better-auth.BIjcZ_vt.cjs → better-auth.ChS6_I0e.cjs} +28 -11
  236. package/dist/shared/{better-auth.BWp5dztg.d.ts → better-auth.CmN4mlPh.d.ts} +539 -7
  237. package/dist/shared/{better-auth.DH3YjMQH.mjs → better-auth.Cqykj82J.mjs} +1 -1
  238. package/dist/shared/better-auth.D9t9kpmt.cjs +310 -0
  239. package/dist/shared/better-auth.DC-lhT2O.mjs +116 -0
  240. package/dist/shared/{better-auth.wcdMj2cT.d.mts → better-auth.DIt2e3lu.d.mts} +539 -7
  241. package/dist/shared/{better-auth.B2Fw1vhH.d.cts → better-auth.DNTAFSt1.d.ts} +529 -39
  242. package/dist/shared/{better-auth.DU2QNVc_.d.ts → better-auth.DQ7OSJbI.d.mts} +2051 -518
  243. package/dist/shared/{better-auth.DLTzKoOS.cjs → better-auth.DSVbLSt7.cjs} +4 -1
  244. package/dist/shared/{better-auth.bKwabe3I.d.mts → better-auth.DTiSPWEk.d.cts} +529 -39
  245. package/dist/shared/{better-auth.C5H9XEzZ.cjs → better-auth.DcWKCjjf.cjs} +1 -2
  246. package/dist/shared/{better-auth.BDYXUcLv.cjs → better-auth.Dg0siV5C.cjs} +457 -117
  247. package/dist/shared/{better-auth.DiG4KL2x.mjs → better-auth.OuYYTHC7.mjs} +4 -1
  248. package/dist/shared/{better-auth.DtC8i3pf.d.cts → better-auth.S1jimRbX.d.mts} +1 -1
  249. package/dist/shared/better-auth.SPmq4a4z.d.mts +344 -0
  250. package/dist/shared/{better-auth.cOCrlspr.mjs → better-auth.bkwPl2G4.mjs} +4 -1
  251. package/dist/shared/better-auth.cp2rC2iM.d.ts +344 -0
  252. package/dist/shared/better-auth.eVy4DZvP.d.cts +344 -0
  253. package/dist/shared/{better-auth.BrOpzmqo.mjs → better-auth.iKoUsdFE.mjs} +15 -14
  254. package/dist/shared/better-auth.xllnfUUC.cjs +118 -0
  255. package/dist/social-providers/index.cjs +75 -3
  256. package/dist/social-providers/index.d.cts +2 -2
  257. package/dist/social-providers/index.d.mts +2 -2
  258. package/dist/social-providers/index.d.ts +2 -2
  259. package/dist/social-providers/index.mjs +77 -6
  260. package/dist/types/index.d.cts +4 -4
  261. package/dist/types/index.d.mts +4 -4
  262. package/dist/types/index.d.ts +4 -4
  263. package/package.json +41 -4
  264. package/dist/chunks/server.cjs +0 -905
  265. package/dist/chunks/server.mjs +0 -895
  266. package/dist/shared/better-auth.0TC26uRi.mjs +0 -16
  267. package/dist/shared/better-auth.BcoSd9tC.mjs +0 -10
  268. package/dist/shared/better-auth.BnRFp-t0.mjs +0 -405
  269. package/dist/shared/better-auth.C1-vpKly.cjs +0 -12
  270. package/dist/shared/better-auth.CUdxApHl.cjs +0 -18
  271. package/dist/shared/better-auth.ClTSOgiD.mjs +0 -140
  272. package/dist/shared/better-auth.DC8JQbiE.mjs +0 -173
  273. package/dist/shared/better-auth.DWHWPllD.cjs +0 -175
  274. package/dist/shared/better-auth.DqLjzBlO.cjs +0 -408
  275. package/dist/shared/better-auth.m575EIBC.cjs +0 -144
@@ -1,9 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  const drizzleOrm = require('drizzle-orm');
4
- require('../../shared/better-auth.C5H9XEzZ.cjs');
5
- require('../../shared/better-auth.DiSjtgs9.cjs');
6
- const id = require('../../shared/better-auth.Bg6iw3ig.cjs');
4
+ const index$1 = require('../../shared/better-auth.ANpbi45u.cjs');
5
+ const index = require('../../shared/better-auth.BGJuANtq.cjs');
6
+ require('../../shared/better-auth.D3mtHEZg.cjs');
7
+ require('../../shared/better-auth.BEphVDyL.cjs');
8
+ require('../../shared/better-auth.Bg6iw3ig.cjs');
9
+ require('@better-auth/utils/random');
7
10
  require('zod');
8
11
  require('better-call');
9
12
  require('@better-auth/utils/hash');
@@ -18,148 +21,31 @@ require('@better-auth/utils/hex');
18
21
  require('@noble/hashes/utils');
19
22
  require('../../shared/better-auth.CYeOI8C-.cjs');
20
23
  require('../../shared/better-auth.GpOOav9x.cjs');
21
- const getTables = require('../../shared/better-auth.BEphVDyL.cjs');
22
- const index = require('../../shared/better-auth.ANpbi45u.cjs');
23
- require('kysely');
24
- const utils = require('../../shared/better-auth.CUdxApHl.cjs');
25
- require('@better-auth/utils/random');
26
24
 
27
- const createTransform = (db, config, options) => {
28
- const schema = getTables.getAuthTables(options);
29
- function getField(model, field) {
30
- if (field === "id") {
31
- return field;
32
- }
33
- const f = schema[model].fields[field];
34
- return f.fieldName || field;
35
- }
36
- function getSchema(modelName) {
37
- const schema2 = config.schema || db._.fullSchema;
38
- if (!schema2) {
39
- throw new index.BetterAuthError(
40
- "Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
41
- );
42
- }
43
- const model = getModelName(modelName);
44
- const schemaModel = schema2[model];
45
- if (!schemaModel) {
46
- throw new index.BetterAuthError(
47
- `[# Drizzle Adapter]: The model "${model}" was not found in the schema object. Please pass the schema directly to the adapter options.`
48
- );
49
- }
50
- return schemaModel;
51
- }
52
- const getModelName = (model) => {
53
- return schema[model].modelName !== model ? schema[model].modelName : config.usePlural ? `${model}s` : model;
54
- };
55
- function convertWhereClause(where, model) {
56
- const schemaModel = getSchema(model);
57
- if (!where) return [];
58
- if (where.length === 1) {
59
- const w = where[0];
60
- if (!w) {
61
- return [];
62
- }
63
- const field = getField(model, w.field);
64
- if (!schemaModel[field]) {
65
- throw new index.BetterAuthError(
66
- `The field "${w.field}" does not exist in the schema for the model "${model}". Please update your schema.`
25
+ const drizzleAdapter = (db, config) => index.createAdapter({
26
+ config: {
27
+ adapterId: "drizzle",
28
+ adapterName: "Drizzle Adapter",
29
+ usePlural: config.usePlural ?? false,
30
+ debugLogs: config.debugLogs ?? false
31
+ },
32
+ adapter: ({ getFieldName, debugLog }) => {
33
+ function getSchema(model) {
34
+ const schema = config.schema || db._.fullSchema;
35
+ if (!schema) {
36
+ throw new index$1.BetterAuthError(
37
+ "Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
67
38
  );
68
39
  }
69
- if (w.operator === "in") {
70
- if (!Array.isArray(w.value)) {
71
- throw new index.BetterAuthError(
72
- `The value for the field "${w.field}" must be an array when using the "in" operator.`
73
- );
74
- }
75
- return [drizzleOrm.inArray(schemaModel[field], w.value)];
76
- }
77
- if (w.operator === "contains") {
78
- return [drizzleOrm.like(schemaModel[field], `%${w.value}%`)];
79
- }
80
- if (w.operator === "starts_with") {
81
- return [drizzleOrm.like(schemaModel[field], `${w.value}%`)];
82
- }
83
- if (w.operator === "ends_with") {
84
- return [drizzleOrm.like(schemaModel[field], `%${w.value}`)];
85
- }
86
- if (w.operator === "lt") {
87
- return [drizzleOrm.lt(schemaModel[field], w.value)];
88
- }
89
- if (w.operator === "lte") {
90
- return [drizzleOrm.lte(schemaModel[field], w.value)];
91
- }
92
- return [drizzleOrm.eq(schemaModel[field], w.value)];
93
- }
94
- const andGroup = where.filter((w) => w.connector === "AND" || !w.connector);
95
- const orGroup = where.filter((w) => w.connector === "OR");
96
- const andClause = drizzleOrm.and(
97
- ...andGroup.map((w) => {
98
- const field = getField(model, w.field);
99
- if (w.operator === "in") {
100
- if (!Array.isArray(w.value)) {
101
- throw new index.BetterAuthError(
102
- `The value for the field "${w.field}" must be an array when using the "in" operator.`
103
- );
104
- }
105
- return drizzleOrm.inArray(schemaModel[field], w.value);
106
- }
107
- return drizzleOrm.eq(schemaModel[field], w.value);
108
- })
109
- );
110
- const orClause = drizzleOrm.or(
111
- ...orGroup.map((w) => {
112
- const field = getField(model, w.field);
113
- return drizzleOrm.eq(schemaModel[field], w.value);
114
- })
115
- );
116
- const clause = [];
117
- if (andGroup.length) clause.push(andClause);
118
- if (orGroup.length) clause.push(orClause);
119
- return clause;
120
- }
121
- const useDatabaseGeneratedId = options?.advanced?.generateId === false;
122
- return {
123
- getSchema,
124
- transformInput(data, model, action) {
125
- const transformedData = useDatabaseGeneratedId || action === "update" ? {} : {
126
- id: options.advanced?.generateId ? options.advanced.generateId({
127
- model
128
- }) : data.id || id.generateId()
129
- };
130
- const fields = schema[model].fields;
131
- for (const field in fields) {
132
- const value = data[field];
133
- if (value === void 0 && !fields[field].defaultValue) {
134
- continue;
135
- }
136
- transformedData[fields[field].fieldName || field] = utils.withApplyDefault(
137
- value,
138
- fields[field],
139
- action
40
+ const schemaModel = schema[model];
41
+ if (!schemaModel) {
42
+ throw new index$1.BetterAuthError(
43
+ `[# Drizzle Adapter]: The model "${model}" was not found in the schema object. Please pass the schema directly to the adapter options.`
140
44
  );
141
45
  }
142
- return transformedData;
143
- },
144
- transformOutput(data, model, select = []) {
145
- if (!data) return null;
146
- const transformedData = data.id || data._id ? select.length === 0 || select.includes("id") ? {
147
- id: data.id
148
- } : {} : {};
149
- const tableSchema = schema[model].fields;
150
- for (const key in tableSchema) {
151
- if (select.length && !select.includes(key)) {
152
- continue;
153
- }
154
- const field = tableSchema[key];
155
- if (field) {
156
- transformedData[key] = data[field.fieldName || key];
157
- }
158
- }
159
- return transformedData;
160
- },
161
- convertWhereClause,
162
- withReturning: async (model, builder, data, where) => {
46
+ return schemaModel;
47
+ }
48
+ const withReturning = async (model, builder, data, where) => {
163
49
  if (config.provider !== "mysql") {
164
50
  const c = await builder.returning();
165
51
  return c[0];
@@ -171,121 +57,171 @@ const createTransform = (db, config, options) => {
171
57
  const clause = convertWhereClause(where, model);
172
58
  const res = await db.select().from(schemaModel).where(...clause);
173
59
  return res[0];
174
- } else if (builderVal) {
175
- const tId = builderVal[0]?.id.value;
176
- const res = await db.select().from(schemaModel).where(drizzleOrm.eq(schemaModel.id, tId));
60
+ } else if (builderVal && builderVal[0]?.id?.value) {
61
+ let tId = builderVal[0]?.id?.value;
62
+ if (!tId) {
63
+ const lastInsertId = await db.select({ id: drizzleOrm.sql`LAST_INSERT_ID()` }).from(schemaModel).orderBy(drizzleOrm.desc(schemaModel.id)).limit(1);
64
+ tId = lastInsertId[0].id;
65
+ }
66
+ const res = await db.select().from(schemaModel).where(drizzleOrm.eq(schemaModel.id, tId)).limit(1).execute();
177
67
  return res[0];
178
68
  } else if (data.id) {
179
- const res = await db.select().from(schemaModel).where(drizzleOrm.eq(schemaModel.id, data.id));
69
+ const res = await db.select().from(schemaModel).where(drizzleOrm.eq(schemaModel.id, data.id)).limit(1).execute();
70
+ return res[0];
71
+ } else {
72
+ if (!("id" in schemaModel)) {
73
+ throw new index$1.BetterAuthError(
74
+ `The model "${model}" does not have an "id" field. Please use the "id" field as your primary key.`
75
+ );
76
+ }
77
+ const res = await db.select().from(schemaModel).orderBy(drizzleOrm.desc(schemaModel.id)).limit(1).execute();
180
78
  return res[0];
181
79
  }
182
- },
183
- getField,
184
- getModelName
185
- };
186
- };
187
- function checkMissingFields(schema, model, values) {
188
- if (!schema) {
189
- throw new index.BetterAuthError(
190
- "Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
191
- );
192
- }
193
- for (const key in values) {
194
- if (!schema[key]) {
195
- throw new index.BetterAuthError(
196
- `The field "${key}" does not exist in the "${model}" schema. Please update your drizzle schema or re-generate using "npx @better-auth/cli generate".`
197
- );
198
- }
199
- }
200
- }
201
- const drizzleAdapter = (db, config) => (options) => {
202
- const {
203
- transformInput,
204
- transformOutput,
205
- convertWhereClause,
206
- getSchema,
207
- withReturning,
208
- getField,
209
- getModelName
210
- } = createTransform(db, config, options);
211
- return {
212
- id: "drizzle",
213
- async create(data) {
214
- const { model, data: values } = data;
215
- const transformed = transformInput(values, model, "create");
216
- const schemaModel = getSchema(model);
217
- checkMissingFields(schemaModel, getModelName(model), transformed);
218
- const builder = db.insert(schemaModel).values(transformed);
219
- const returned = await withReturning(model, builder, transformed);
220
- return transformOutput(returned, model);
221
- },
222
- async findOne(data) {
223
- const { model, where, select } = data;
80
+ };
81
+ function convertWhereClause(where, model) {
224
82
  const schemaModel = getSchema(model);
225
- const clause = convertWhereClause(where, model);
226
- const res = await db.select().from(schemaModel).where(...clause);
227
- if (!res.length) return null;
228
- return transformOutput(res[0], model, select);
229
- },
230
- async findMany(data) {
231
- const { model, where, sortBy, limit, offset } = data;
232
- const schemaModel = getSchema(model);
233
- const clause = where ? convertWhereClause(where, model) : [];
234
- const sortFn = sortBy?.direction === "desc" ? drizzleOrm.desc : drizzleOrm.asc;
235
- const builder = db.select().from(schemaModel).limit(limit || 100).offset(offset || 0);
236
- if (sortBy?.field) {
237
- builder.orderBy(sortFn(schemaModel[getField(model, sortBy?.field)]));
83
+ if (!where) return [];
84
+ if (where.length === 1) {
85
+ const w = where[0];
86
+ if (!w) {
87
+ return [];
88
+ }
89
+ const field = getFieldName({ model, field: w.field });
90
+ if (!schemaModel[field]) {
91
+ throw new index$1.BetterAuthError(
92
+ `The field "${w.field}" does not exist in the schema for the model "${model}". Please update your schema.`
93
+ );
94
+ }
95
+ if (w.operator === "in") {
96
+ if (!Array.isArray(w.value)) {
97
+ throw new index$1.BetterAuthError(
98
+ `The value for the field "${w.field}" must be an array when using the "in" operator.`
99
+ );
100
+ }
101
+ return [drizzleOrm.inArray(schemaModel[field], w.value)];
102
+ }
103
+ if (w.operator === "contains") {
104
+ return [drizzleOrm.like(schemaModel[field], `%${w.value}%`)];
105
+ }
106
+ if (w.operator === "starts_with") {
107
+ return [drizzleOrm.like(schemaModel[field], `${w.value}%`)];
108
+ }
109
+ if (w.operator === "ends_with") {
110
+ return [drizzleOrm.like(schemaModel[field], `%${w.value}`)];
111
+ }
112
+ if (w.operator === "lt") {
113
+ return [drizzleOrm.lt(schemaModel[field], w.value)];
114
+ }
115
+ if (w.operator === "lte") {
116
+ return [drizzleOrm.lte(schemaModel[field], w.value)];
117
+ }
118
+ return [drizzleOrm.eq(schemaModel[field], w.value)];
238
119
  }
239
- const res = await builder.where(...clause);
240
- return res.map((r) => transformOutput(r, model));
241
- },
242
- async count(data) {
243
- const { model, where } = data;
244
- const schemaModel = getSchema(model);
245
- const clause = where ? convertWhereClause(where, model) : [];
246
- const res = await db.select({ count: drizzleOrm.count() }).from(schemaModel).where(...clause);
247
- return res.count;
248
- },
249
- async update(data) {
250
- const { model, where, update: values } = data;
251
- const schemaModel = getSchema(model);
252
- const clause = convertWhereClause(where, model);
253
- const transformed = transformInput(values, model, "update");
254
- const builder = db.update(schemaModel).set(transformed).where(...clause);
255
- const returned = await withReturning(
256
- model,
257
- builder,
258
- transformed,
259
- where
120
+ const andGroup = where.filter(
121
+ (w) => w.connector === "AND" || !w.connector
260
122
  );
261
- return transformOutput(returned, model);
262
- },
263
- async updateMany(data) {
264
- const { model, where, update: values } = data;
265
- const schemaModel = getSchema(model);
266
- const clause = convertWhereClause(where, model);
267
- const transformed = transformInput(values, model, "update");
268
- const builder = db.update(schemaModel).set(transformed).where(...clause);
269
- const res = await builder;
270
- return res ? res.changes : 0;
271
- },
272
- async delete(data) {
273
- const { model, where } = data;
274
- const schemaModel = getSchema(model);
275
- const clause = convertWhereClause(where, model);
276
- const builder = db.delete(schemaModel).where(...clause);
277
- await builder;
278
- },
279
- async deleteMany(data) {
280
- const { model, where } = data;
281
- const schemaModel = getSchema(model);
282
- const clause = convertWhereClause(where, model);
283
- const builder = db.delete(schemaModel).where(...clause);
284
- const res = await builder;
285
- return res ? res.length : 0;
286
- },
287
- options: config
288
- };
289
- };
123
+ const orGroup = where.filter((w) => w.connector === "OR");
124
+ const andClause = drizzleOrm.and(
125
+ ...andGroup.map((w) => {
126
+ const field = getFieldName({ model, field: w.field });
127
+ if (w.operator === "in") {
128
+ if (!Array.isArray(w.value)) {
129
+ throw new index$1.BetterAuthError(
130
+ `The value for the field "${w.field}" must be an array when using the "in" operator.`
131
+ );
132
+ }
133
+ return drizzleOrm.inArray(schemaModel[field], w.value);
134
+ }
135
+ return drizzleOrm.eq(schemaModel[field], w.value);
136
+ })
137
+ );
138
+ const orClause = drizzleOrm.or(
139
+ ...orGroup.map((w) => {
140
+ const field = getFieldName({ model, field: w.field });
141
+ return drizzleOrm.eq(schemaModel[field], w.value);
142
+ })
143
+ );
144
+ const clause = [];
145
+ if (andGroup.length) clause.push(andClause);
146
+ if (orGroup.length) clause.push(orClause);
147
+ return clause;
148
+ }
149
+ function checkMissingFields(schema, model, values) {
150
+ if (!schema) {
151
+ throw new index$1.BetterAuthError(
152
+ "Drizzle adapter failed to initialize. Schema not found. Please provide a schema object in the adapter options object."
153
+ );
154
+ }
155
+ for (const key in values) {
156
+ if (!schema[key]) {
157
+ throw new index$1.BetterAuthError(
158
+ `The field "${key}" does not exist in the "${model}" schema. Please update your drizzle schema or re-generate using "npx @better-auth/cli generate".`
159
+ );
160
+ }
161
+ }
162
+ }
163
+ return {
164
+ async create({ model, data: values }) {
165
+ const schemaModel = getSchema(model);
166
+ checkMissingFields(schemaModel, model, values);
167
+ const builder = db.insert(schemaModel).values(values);
168
+ const returned = await withReturning(model, builder, values);
169
+ return returned;
170
+ },
171
+ async findOne({ model, where }) {
172
+ const schemaModel = getSchema(model);
173
+ const clause = convertWhereClause(where, model);
174
+ const res = await db.select().from(schemaModel).where(...clause);
175
+ if (!res.length) return null;
176
+ return res[0];
177
+ },
178
+ async findMany({ model, where, sortBy, limit, offset }) {
179
+ const schemaModel = getSchema(model);
180
+ const clause = where ? convertWhereClause(where, model) : [];
181
+ const sortFn = sortBy?.direction === "desc" ? drizzleOrm.desc : drizzleOrm.asc;
182
+ const builder = db.select().from(schemaModel).limit(limit || 100).offset(offset || 0);
183
+ if (sortBy?.field) {
184
+ builder.orderBy(
185
+ sortFn(
186
+ schemaModel[getFieldName({ model, field: sortBy?.field })]
187
+ )
188
+ );
189
+ }
190
+ return await builder.where(...clause);
191
+ },
192
+ async count({ model, where }) {
193
+ const schemaModel = getSchema(model);
194
+ const clause = where ? convertWhereClause(where, model) : [];
195
+ const res = await db.select({ count: drizzleOrm.count() }).from(schemaModel).where(...clause);
196
+ return res.count;
197
+ },
198
+ async update({ model, where, update: values }) {
199
+ const schemaModel = getSchema(model);
200
+ const clause = convertWhereClause(where, model);
201
+ const builder = db.update(schemaModel).set(values).where(...clause);
202
+ return await withReturning(model, builder, values, where);
203
+ },
204
+ async updateMany({ model, where, update: values }) {
205
+ const schemaModel = getSchema(model);
206
+ const clause = convertWhereClause(where, model);
207
+ const builder = db.update(schemaModel).set(values).where(...clause);
208
+ return await builder;
209
+ },
210
+ async delete({ model, where }) {
211
+ const schemaModel = getSchema(model);
212
+ const clause = convertWhereClause(where, model);
213
+ const builder = db.delete(schemaModel).where(...clause);
214
+ return await builder;
215
+ },
216
+ async deleteMany({ model, where }) {
217
+ const schemaModel = getSchema(model);
218
+ const clause = convertWhereClause(where, model);
219
+ const builder = db.delete(schemaModel).where(...clause);
220
+ return await builder;
221
+ },
222
+ options: config
223
+ };
224
+ }
225
+ });
290
226
 
291
227
  exports.drizzleAdapter = drizzleAdapter;
@@ -1,7 +1,8 @@
1
- import { f as BetterAuthOptions, W as Where } from '../../shared/better-auth.BiQsvaIP.cjs';
2
- import '../../shared/better-auth.Bi8FQwDD.cjs';
1
+ import { f as BetterAuthOptions, g as Adapter } from '../../shared/better-auth.BcU1Kjyq.cjs';
2
+ import { A as AdapterDebugLogs } from '../../shared/better-auth.eVy4DZvP.cjs';
3
+ import '../../shared/better-auth.CYegVoq1.cjs';
3
4
  import 'zod';
4
- import '../../shared/better-auth.B2Fw1vhH.cjs';
5
+ import '../../shared/better-auth.DTiSPWEk.cjs';
5
6
  import 'jose';
6
7
  import 'kysely';
7
8
  import 'better-call';
@@ -25,52 +26,13 @@ interface DrizzleAdapterConfig {
25
26
  * has an object with a key "users" instead of "user"
26
27
  */
27
28
  usePlural?: boolean;
29
+ /**
30
+ * Enable debug logs for the adapter
31
+ *
32
+ * @default false
33
+ */
34
+ debugLogs?: AdapterDebugLogs;
28
35
  }
29
- declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => {
30
- id: string;
31
- create<T extends Record<string, any>, R = T>(data: {
32
- model: string;
33
- data: T;
34
- select?: string[];
35
- }): Promise<any>;
36
- findOne<T>(data: {
37
- model: string;
38
- where: Where[];
39
- select?: string[];
40
- }): Promise<any>;
41
- findMany<T>(data: {
42
- model: string;
43
- where?: Where[];
44
- limit?: number;
45
- sortBy?: {
46
- field: string;
47
- direction: "asc" | "desc";
48
- };
49
- offset?: number;
50
- }): Promise<any[]>;
51
- count(data: {
52
- model: string;
53
- where?: Where[];
54
- }): Promise<any>;
55
- update<T>(data: {
56
- model: string;
57
- where: Where[];
58
- update: Record<string, any>;
59
- }): Promise<any>;
60
- updateMany(data: {
61
- model: string;
62
- where: Where[];
63
- update: Record<string, any>;
64
- }): Promise<any>;
65
- delete<T>(data: {
66
- model: string;
67
- where: Where[];
68
- }): Promise<void>;
69
- deleteMany(data: {
70
- model: string;
71
- where: Where[];
72
- }): Promise<any>;
73
- options: DrizzleAdapterConfig;
74
- };
36
+ declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => Adapter;
75
37
 
76
38
  export { type DB, type DrizzleAdapterConfig, drizzleAdapter };
@@ -1,7 +1,8 @@
1
- import { f as BetterAuthOptions, W as Where } from '../../shared/better-auth.D-oLmHIj.mjs';
2
- import '../../shared/better-auth.Bi8FQwDD.mjs';
1
+ import { f as BetterAuthOptions, g as Adapter } from '../../shared/better-auth.DQ7OSJbI.mjs';
2
+ import { A as AdapterDebugLogs } from '../../shared/better-auth.SPmq4a4z.mjs';
3
+ import '../../shared/better-auth.CYegVoq1.mjs';
3
4
  import 'zod';
4
- import '../../shared/better-auth.bKwabe3I.mjs';
5
+ import '../../shared/better-auth.B88xucNq.mjs';
5
6
  import 'jose';
6
7
  import 'kysely';
7
8
  import 'better-call';
@@ -25,52 +26,13 @@ interface DrizzleAdapterConfig {
25
26
  * has an object with a key "users" instead of "user"
26
27
  */
27
28
  usePlural?: boolean;
29
+ /**
30
+ * Enable debug logs for the adapter
31
+ *
32
+ * @default false
33
+ */
34
+ debugLogs?: AdapterDebugLogs;
28
35
  }
29
- declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => {
30
- id: string;
31
- create<T extends Record<string, any>, R = T>(data: {
32
- model: string;
33
- data: T;
34
- select?: string[];
35
- }): Promise<any>;
36
- findOne<T>(data: {
37
- model: string;
38
- where: Where[];
39
- select?: string[];
40
- }): Promise<any>;
41
- findMany<T>(data: {
42
- model: string;
43
- where?: Where[];
44
- limit?: number;
45
- sortBy?: {
46
- field: string;
47
- direction: "asc" | "desc";
48
- };
49
- offset?: number;
50
- }): Promise<any[]>;
51
- count(data: {
52
- model: string;
53
- where?: Where[];
54
- }): Promise<any>;
55
- update<T>(data: {
56
- model: string;
57
- where: Where[];
58
- update: Record<string, any>;
59
- }): Promise<any>;
60
- updateMany(data: {
61
- model: string;
62
- where: Where[];
63
- update: Record<string, any>;
64
- }): Promise<any>;
65
- delete<T>(data: {
66
- model: string;
67
- where: Where[];
68
- }): Promise<void>;
69
- deleteMany(data: {
70
- model: string;
71
- where: Where[];
72
- }): Promise<any>;
73
- options: DrizzleAdapterConfig;
74
- };
36
+ declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => Adapter;
75
37
 
76
38
  export { type DB, type DrizzleAdapterConfig, drizzleAdapter };
@@ -1,7 +1,8 @@
1
- import { f as BetterAuthOptions, W as Where } from '../../shared/better-auth.DU2QNVc_.js';
2
- import '../../shared/better-auth.Bi8FQwDD.js';
1
+ import { f as BetterAuthOptions, g as Adapter } from '../../shared/better-auth.CA2hFK4N.js';
2
+ import { A as AdapterDebugLogs } from '../../shared/better-auth.cp2rC2iM.js';
3
+ import '../../shared/better-auth.CYegVoq1.js';
3
4
  import 'zod';
4
- import '../../shared/better-auth.BANAxdkL.js';
5
+ import '../../shared/better-auth.DNTAFSt1.js';
5
6
  import 'jose';
6
7
  import 'kysely';
7
8
  import 'better-call';
@@ -25,52 +26,13 @@ interface DrizzleAdapterConfig {
25
26
  * has an object with a key "users" instead of "user"
26
27
  */
27
28
  usePlural?: boolean;
29
+ /**
30
+ * Enable debug logs for the adapter
31
+ *
32
+ * @default false
33
+ */
34
+ debugLogs?: AdapterDebugLogs;
28
35
  }
29
- declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => {
30
- id: string;
31
- create<T extends Record<string, any>, R = T>(data: {
32
- model: string;
33
- data: T;
34
- select?: string[];
35
- }): Promise<any>;
36
- findOne<T>(data: {
37
- model: string;
38
- where: Where[];
39
- select?: string[];
40
- }): Promise<any>;
41
- findMany<T>(data: {
42
- model: string;
43
- where?: Where[];
44
- limit?: number;
45
- sortBy?: {
46
- field: string;
47
- direction: "asc" | "desc";
48
- };
49
- offset?: number;
50
- }): Promise<any[]>;
51
- count(data: {
52
- model: string;
53
- where?: Where[];
54
- }): Promise<any>;
55
- update<T>(data: {
56
- model: string;
57
- where: Where[];
58
- update: Record<string, any>;
59
- }): Promise<any>;
60
- updateMany(data: {
61
- model: string;
62
- where: Where[];
63
- update: Record<string, any>;
64
- }): Promise<any>;
65
- delete<T>(data: {
66
- model: string;
67
- where: Where[];
68
- }): Promise<void>;
69
- deleteMany(data: {
70
- model: string;
71
- where: Where[];
72
- }): Promise<any>;
73
- options: DrizzleAdapterConfig;
74
- };
36
+ declare const drizzleAdapter: (db: DB, config: DrizzleAdapterConfig) => (options: BetterAuthOptions) => Adapter;
75
37
 
76
38
  export { type DB, type DrizzleAdapterConfig, drizzleAdapter };