better-auth 1.2.6-beta.7 → 1.2.7-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (273) hide show
  1. package/dist/adapters/drizzle-adapter/index.cjs +186 -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 +186 -249
  6. package/dist/adapters/index.cjs +26 -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 +20 -0
  11. package/dist/adapters/kysely-adapter/index.cjs +7 -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 +8 -8
  16. package/dist/adapters/memory-adapter/index.cjs +7 -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 +8 -9
  21. package/dist/adapters/mongodb-adapter/index.cjs +2 -2
  22. package/dist/adapters/mongodb-adapter/index.d.cts +4 -4
  23. package/dist/adapters/mongodb-adapter/index.d.mts +4 -4
  24. package/dist/adapters/mongodb-adapter/index.d.ts +4 -4
  25. package/dist/adapters/mongodb-adapter/index.mjs +3 -3
  26. package/dist/adapters/prisma-adapter/index.cjs +130 -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 +131 -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 +61 -25
  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 +63 -27
  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 -5
  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 -6
  72. package/dist/index.cjs +11 -7
  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 -10
  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 +81 -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 +82 -21
  137. package/dist/plugins/haveibeenpwned/index.cjs +98 -0
  138. package/dist/plugins/haveibeenpwned/index.d.cts +36 -0
  139. package/dist/plugins/haveibeenpwned/index.d.mts +36 -0
  140. package/dist/plugins/haveibeenpwned/index.d.ts +36 -0
  141. package/dist/plugins/haveibeenpwned/index.mjs +96 -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.1DR6suCQ.mjs +307 -0
  215. package/dist/shared/{better-auth.BSsp73pg.cjs → better-auth.B7cZ2juS.cjs} +15 -14
  216. package/dist/shared/{better-auth.bKwabe3I.d.mts → better-auth.B88xucNq.d.mts} +529 -39
  217. package/dist/shared/{better-auth.CApEjVDP.cjs → better-auth.BW8BpneG.cjs} +4 -1
  218. package/dist/shared/{better-auth.BiQsvaIP.d.cts → better-auth.BcU1Kjyq.d.cts} +2051 -518
  219. package/dist/shared/better-auth.BfG24BjZ.cjs +118 -0
  220. package/dist/shared/{better-auth.A3TjrU8G.mjs → better-auth.Bk5IMdhM.mjs} +32 -12
  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.D-oLmHIj.d.mts → better-auth.CA2hFK4N.d.ts} +2051 -518
  224. package/dist/shared/{better-auth.Dmhe30iW.d.mts → better-auth.CGukGrxT.d.cts} +1 -1
  225. package/dist/shared/{better-auth.CsSpq0zL.cjs → better-auth.CHUzBidy.cjs} +46 -23
  226. package/dist/shared/{better-auth.DWRligF8.d.cts → better-auth.CT9J6rD-.d.cts} +539 -7
  227. package/dist/shared/better-auth.CVCo5Z2T.cjs +310 -0
  228. package/dist/shared/{better-auth.D4jH-sJA.mjs → better-auth.CWwVo_61.mjs} +458 -118
  229. package/dist/shared/{better-auth.Bi8FQwDD.d.cts → better-auth.CYegVoq1.d.cts} +1 -1
  230. package/dist/shared/{better-auth.Bi8FQwDD.d.mts → better-auth.CYegVoq1.d.mts} +1 -1
  231. package/dist/shared/{better-auth.Bi8FQwDD.d.ts → better-auth.CYegVoq1.d.ts} +1 -1
  232. package/dist/shared/{better-auth.CepcSj5H.mjs → better-auth.Cc72UxUH.mjs} +1 -2
  233. package/dist/shared/{better-auth.BWp5dztg.d.ts → better-auth.CmN4mlPh.d.ts} +539 -7
  234. package/dist/shared/{better-auth.DH3YjMQH.mjs → better-auth.Cqykj82J.mjs} +1 -1
  235. package/dist/shared/{better-auth.wcdMj2cT.d.mts → better-auth.DIt2e3lu.d.mts} +539 -7
  236. package/dist/shared/{better-auth.BANAxdkL.d.ts → better-auth.DNTAFSt1.d.ts} +529 -39
  237. package/dist/shared/{better-auth.DU2QNVc_.d.ts → better-auth.DQ7OSJbI.d.mts} +2051 -518
  238. package/dist/shared/{better-auth.DLTzKoOS.cjs → better-auth.DSVbLSt7.cjs} +4 -1
  239. package/dist/shared/{better-auth.B2Fw1vhH.d.cts → better-auth.DTiSPWEk.d.cts} +529 -39
  240. package/dist/shared/better-auth.DURsStt9.mjs +116 -0
  241. package/dist/shared/{better-auth.BIjcZ_vt.cjs → better-auth.DYoLD99C.cjs} +31 -11
  242. package/dist/shared/{better-auth.CV1L7TPV.cjs → better-auth.D_ZIX1O8.cjs} +317 -47
  243. package/dist/shared/{better-auth.C5H9XEzZ.cjs → better-auth.DcWKCjjf.cjs} +1 -2
  244. package/dist/shared/{better-auth.BDYXUcLv.cjs → better-auth.Dg0siV5C.cjs} +457 -117
  245. package/dist/shared/better-auth.DjryM8pE.cjs +760 -0
  246. package/dist/shared/{better-auth.DPBQN9Fs.mjs → better-auth.Dn_Ms1Uf.mjs} +318 -48
  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.rSYJCd3o.mjs +758 -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 +42 -5
  264. package/dist/chunks/server.cjs +0 -905
  265. package/dist/chunks/server.mjs +0 -895
  266. package/dist/shared/better-auth.BcoSd9tC.mjs +0 -10
  267. package/dist/shared/better-auth.BnRFp-t0.mjs +0 -405
  268. package/dist/shared/better-auth.C1-vpKly.cjs +0 -12
  269. package/dist/shared/better-auth.ClTSOgiD.mjs +0 -140
  270. package/dist/shared/better-auth.DC8JQbiE.mjs +0 -173
  271. package/dist/shared/better-auth.DWHWPllD.cjs +0 -175
  272. package/dist/shared/better-auth.DqLjzBlO.cjs +0 -408
  273. package/dist/shared/better-auth.m575EIBC.cjs +0 -144
@@ -1,6 +1,10 @@
1
- import '../../shared/better-auth.CepcSj5H.mjs';
2
- import '../../shared/better-auth.8zoxzg-F.mjs';
3
- import { g as generateId } from '../../shared/better-auth.BUPPRXfK.mjs';
1
+ import { c as createAdapter } from '../../shared/better-auth.rSYJCd3o.mjs';
2
+ import { B as BetterAuthError } from '../../shared/better-auth.DdzSJf-n.mjs';
3
+ import '../../shared/better-auth.tB5eU6EY.mjs';
4
+ import '../../shared/better-auth.0TC26uRi.mjs';
5
+ import '../../shared/better-auth.DORkW_Ge.mjs';
6
+ import '../../shared/better-auth.BUPPRXfK.mjs';
7
+ import '@better-auth/utils/random';
4
8
  import 'zod';
5
9
  import 'better-call';
6
10
  import '@better-auth/utils/hash';
@@ -14,75 +18,37 @@ import '@better-auth/utils';
14
18
  import '@better-auth/utils/hex';
15
19
  import '@noble/hashes/utils';
16
20
  import '../../shared/better-auth.B4Qoxdgc.mjs';
17
- import '../../shared/better-auth.DH3YjMQH.mjs';
18
- import { g as getAuthTables } from '../../shared/better-auth.DORkW_Ge.mjs';
19
- import { B as BetterAuthError } from '../../shared/better-auth.DdzSJf-n.mjs';
20
- import 'kysely';
21
- import { w as withApplyDefault } from '../../shared/better-auth.0TC26uRi.mjs';
22
- import '@better-auth/utils/random';
21
+ import '../../shared/better-auth.Cqykj82J.mjs';
23
22
 
24
- const createTransform = (config, options) => {
25
- const schema = getAuthTables(options);
26
- function getField(model, field) {
27
- if (field === "id") {
28
- return field;
29
- }
30
- const f = schema[model].fields[field];
31
- return f.fieldName || field;
32
- }
33
- function operatorToPrismaOperator(operator) {
34
- switch (operator) {
35
- case "starts_with":
36
- return "startsWith";
37
- case "ends_with":
38
- return "endsWith";
39
- default:
40
- return operator;
41
- }
42
- }
43
- function getModelName(model) {
44
- return schema[model].modelName;
45
- }
46
- const useDatabaseGeneratedId = options?.advanced?.generateId === false;
47
- return {
48
- transformInput(data, model, action) {
49
- const transformedData = useDatabaseGeneratedId || action === "update" ? {} : {
50
- id: options.advanced?.generateId ? options.advanced.generateId({
51
- model
52
- }) : data.id || generateId()
53
- };
54
- const fields = schema[model].fields;
55
- for (const field in fields) {
56
- const value = data[field];
57
- if (value === void 0 && (!fields[field].defaultValue || action === "update")) {
58
- continue;
59
- }
60
- transformedData[fields[field].fieldName || field] = withApplyDefault(
61
- value,
62
- fields[field],
63
- action
64
- );
65
- }
66
- return transformedData;
67
- },
68
- transformOutput(data, model, select = []) {
69
- if (!data) return null;
70
- const transformedData = data.id || data._id ? select.length === 0 || select.includes("id") ? {
71
- id: data.id
72
- } : {} : {};
73
- const tableSchema = schema[model].fields;
74
- for (const key in tableSchema) {
75
- if (select.length && !select.includes(key)) {
76
- continue;
77
- }
78
- const field = tableSchema[key];
79
- if (field) {
80
- transformedData[key] = data[field.fieldName || key];
81
- }
23
+ const prismaAdapter = (prisma, config) => createAdapter({
24
+ config: {
25
+ adapterId: "prisma",
26
+ adapterName: "Prisma Adapter",
27
+ usePlural: config.usePlural ?? false,
28
+ debugLogs: config.debugLogs ?? false
29
+ },
30
+ adapter: ({ getFieldName }) => {
31
+ const db = prisma;
32
+ const convertSelect = (select, model) => {
33
+ if (!select || !model) return void 0;
34
+ return select.reduce((prev, cur) => {
35
+ return {
36
+ ...prev,
37
+ [getFieldName({ model, field: cur })]: true
38
+ };
39
+ }, {});
40
+ };
41
+ function operatorToPrismaOperator(operator) {
42
+ switch (operator) {
43
+ case "starts_with":
44
+ return "startsWith";
45
+ case "ends_with":
46
+ return "endsWith";
47
+ default:
48
+ return operator;
82
49
  }
83
- return transformedData;
84
- },
85
- convertWhereClause(model, where) {
50
+ }
51
+ const convertWhereClause = (model, where) => {
86
52
  if (!where) return {};
87
53
  if (where.length === 1) {
88
54
  const w = where[0];
@@ -90,7 +56,7 @@ const createTransform = (config, options) => {
90
56
  return;
91
57
  }
92
58
  return {
93
- [getField(model, w.field)]: w.operator === "eq" || !w.operator ? w.value : {
59
+ [getFieldName({ model, field: w.field })]: w.operator === "eq" || !w.operator ? w.value : {
94
60
  [operatorToPrismaOperator(w.operator)]: w.value
95
61
  }
96
62
  };
@@ -99,14 +65,14 @@ const createTransform = (config, options) => {
99
65
  const or = where.filter((w) => w.connector === "OR");
100
66
  const andClause = and.map((w) => {
101
67
  return {
102
- [getField(model, w.field)]: w.operator === "eq" || !w.operator ? w.value : {
68
+ [getFieldName({ model, field: w.field })]: w.operator === "eq" || !w.operator ? w.value : {
103
69
  [operatorToPrismaOperator(w.operator)]: w.value
104
70
  }
105
71
  };
106
72
  });
107
73
  const orClause = or.map((w) => {
108
74
  return {
109
- [getField(model, w.field)]: {
75
+ [getFieldName({ model, field: w.field })]: {
110
76
  [w.operator || "eq"]: w.value
111
77
  }
112
78
  };
@@ -115,138 +81,99 @@ const createTransform = (config, options) => {
115
81
  ...andClause.length ? { AND: andClause } : {},
116
82
  ...orClause.length ? { OR: orClause } : {}
117
83
  };
118
- },
119
- convertSelect: (select, model) => {
120
- if (!select || !model) return void 0;
121
- return select.reduce((prev, cur) => {
122
- return {
123
- ...prev,
124
- [getField(model, cur)]: true
125
- };
126
- }, {});
127
- },
128
- getModelName,
129
- getField
130
- };
131
- };
132
- const prismaAdapter = (prisma, config) => (options) => {
133
- const db = prisma;
134
- const {
135
- transformInput,
136
- transformOutput,
137
- convertWhereClause,
138
- convertSelect,
139
- getModelName,
140
- getField
141
- } = createTransform(config, options);
142
- return {
143
- id: "prisma",
144
- async create(data) {
145
- const { model, data: values, select } = data;
146
- const transformed = transformInput(values, model, "create");
147
- if (!db[getModelName(model)]) {
148
- throw new BetterAuthError(
149
- `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
150
- );
151
- }
152
- const result = await db[getModelName(model)].create({
153
- data: transformed,
154
- select: convertSelect(select, model)
155
- });
156
- return transformOutput(result, model, select);
157
- },
158
- async findOne(data) {
159
- const { model, where, select } = data;
160
- const whereClause = convertWhereClause(model, where);
161
- if (!db[getModelName(model)]) {
162
- throw new BetterAuthError(
163
- `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
164
- );
165
- }
166
- const result = await db[getModelName(model)].findFirst({
167
- where: whereClause,
168
- select: convertSelect(select, model)
169
- });
170
- return transformOutput(result, model, select);
171
- },
172
- async findMany(data) {
173
- const { model, where, limit, offset, sortBy } = data;
174
- const whereClause = convertWhereClause(model, where);
175
- if (!db[getModelName(model)]) {
176
- throw new BetterAuthError(
177
- `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
178
- );
179
- }
180
- const result = await db[getModelName(model)].findMany({
181
- where: whereClause,
182
- take: limit || 100,
183
- skip: offset || 0,
184
- ...sortBy?.field ? {
185
- orderBy: {
186
- [getField(model, sortBy.field)]: sortBy.direction === "desc" ? "desc" : "asc"
187
- }
188
- } : {}
189
- });
190
- return result.map((r) => transformOutput(r, model));
191
- },
192
- async count(data) {
193
- const { model, where } = data;
194
- const whereClause = convertWhereClause(model, where);
195
- if (!db[getModelName(model)]) {
196
- throw new BetterAuthError(
197
- `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
198
- );
199
- }
200
- const result = await db[getModelName(model)].count({
201
- where: whereClause
202
- });
203
- return result;
204
- },
205
- async update(data) {
206
- const { model, where, update } = data;
207
- if (!db[getModelName(model)]) {
208
- throw new BetterAuthError(
209
- `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
210
- );
211
- }
212
- const whereClause = convertWhereClause(model, where);
213
- const transformed = transformInput(update, model, "update");
214
- const result = await db[getModelName(model)].update({
215
- where: whereClause,
216
- data: transformed
217
- });
218
- return transformOutput(result, model);
219
- },
220
- async updateMany(data) {
221
- const { model, where, update } = data;
222
- const whereClause = convertWhereClause(model, where);
223
- const transformed = transformInput(update, model, "update");
224
- const result = await db[getModelName(model)].updateMany({
225
- where: whereClause,
226
- data: transformed
227
- });
228
- return result ? result.count : 0;
229
- },
230
- async delete(data) {
231
- const { model, where } = data;
232
- const whereClause = convertWhereClause(model, where);
233
- try {
234
- await db[getModelName(model)].delete({
84
+ };
85
+ return {
86
+ async create({ model, data: values, select }) {
87
+ if (!db[model]) {
88
+ throw new BetterAuthError(
89
+ `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
90
+ );
91
+ }
92
+ return await db[model].create({
93
+ data: values,
94
+ select: convertSelect(select, model)
95
+ });
96
+ },
97
+ async findOne({ model, where, select }) {
98
+ const whereClause = convertWhereClause(model, where);
99
+ if (!db[model]) {
100
+ throw new BetterAuthError(
101
+ `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
102
+ );
103
+ }
104
+ return await db[model].findFirst({
105
+ where: whereClause,
106
+ select: convertSelect(select, model)
107
+ });
108
+ },
109
+ async findMany({ model, where, limit, offset, sortBy }) {
110
+ const whereClause = convertWhereClause(model, where);
111
+ if (!db[model]) {
112
+ throw new BetterAuthError(
113
+ `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
114
+ );
115
+ }
116
+ return await db[model].findMany({
117
+ where: whereClause,
118
+ take: limit || 100,
119
+ skip: offset || 0,
120
+ ...sortBy?.field ? {
121
+ orderBy: {
122
+ [getFieldName({ model, field: sortBy.field })]: sortBy.direction === "desc" ? "desc" : "asc"
123
+ }
124
+ } : {}
125
+ });
126
+ },
127
+ async count({ model, where }) {
128
+ const whereClause = convertWhereClause(model, where);
129
+ if (!db[model]) {
130
+ throw new BetterAuthError(
131
+ `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
132
+ );
133
+ }
134
+ return await db[model].count({
235
135
  where: whereClause
236
136
  });
237
- } catch (e) {
238
- }
239
- },
240
- async deleteMany(data) {
241
- const { model, where } = data;
242
- const whereClause = convertWhereClause(model, where);
243
- const result = await db[getModelName(model)].deleteMany({
244
- where: whereClause
245
- });
246
- return result ? result.count : 0;
247
- },
248
- options: config
249
- };
250
- };
137
+ },
138
+ async update({ model, where, update }) {
139
+ if (!db[model]) {
140
+ throw new BetterAuthError(
141
+ `Model ${model} does not exist in the database. If you haven't generated the Prisma client, you need to run 'npx prisma generate'`
142
+ );
143
+ }
144
+ const whereClause = convertWhereClause(model, where);
145
+ return await db[model].update({
146
+ where: whereClause,
147
+ data: update
148
+ });
149
+ },
150
+ async updateMany({ model, where, update }) {
151
+ const whereClause = convertWhereClause(model, where);
152
+ const result = await db[model].updateMany({
153
+ where: whereClause,
154
+ data: update
155
+ });
156
+ return result ? result.count : 0;
157
+ },
158
+ async delete({ model, where }) {
159
+ const whereClause = convertWhereClause(model, where);
160
+ try {
161
+ await db[model].delete({
162
+ where: whereClause
163
+ });
164
+ } catch (e) {
165
+ }
166
+ },
167
+ async deleteMany({ model, where }) {
168
+ const whereClause = convertWhereClause(model, where);
169
+ const result = await db[model].deleteMany({
170
+ where: whereClause
171
+ });
172
+ return result ? result.count : 0;
173
+ },
174
+ options: config
175
+ };
176
+ }
177
+ });
251
178
 
252
179
  export { prismaAdapter };