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,13 +1,13 @@
1
- export { o as organization, p as parseRoles } from '../shared/better-auth.DPBQN9Fs.mjs';
2
- export { twoFactor } from './two-factor/index.mjs';
1
+ export { o as organization, p as parseRoles } from '../shared/better-auth.Dn_Ms1Uf.mjs';
2
+ export { TWO_FACTOR_ERROR_CODES, twoFactor } from './two-factor/index.mjs';
3
3
  export { username } from './username/index.mjs';
4
4
  export { bearer } from './bearer/index.mjs';
5
- import { a as createAuthEndpoint, g as getSessionFromCtx, s as sessionMiddleware, c as createAuthMiddleware } from '../shared/better-auth.D4jH-sJA.mjs';
6
- export { H as HIDE_METADATA, O as optionsMiddleware } from '../shared/better-auth.D4jH-sJA.mjs';
5
+ import { a as createAuthEndpoint, g as getSessionFromCtx, s as sessionMiddleware, c as createAuthMiddleware } from '../shared/better-auth.CWwVo_61.mjs';
6
+ export { H as HIDE_METADATA, O as optionsMiddleware } from '../shared/better-auth.CWwVo_61.mjs';
7
7
  export { magicLink } from './magic-link/index.mjs';
8
8
  export { phoneNumber } from './phone-number/index.mjs';
9
9
  export { anonymous } from './anonymous/index.mjs';
10
- export { a as admin } from '../shared/better-auth.D9VnBkRI.mjs';
10
+ export { a as admin } from '../shared/better-auth.Bm9HxIzE.mjs';
11
11
  export { genericOAuth } from './generic-oauth/index.mjs';
12
12
  export { getJwtToken, jwt } from './jwt/index.mjs';
13
13
  export { multiSession } from './multi-session/index.mjs';
@@ -25,9 +25,9 @@ import { z } from 'zod';
25
25
  import { g as getDate } from '../shared/better-auth.CW6D9eSx.mjs';
26
26
  import '../shared/better-auth.8zoxzg-F.mjs';
27
27
  import '@better-auth/utils/hmac';
28
- import { m as mergeSchema } from '../shared/better-auth.CepcSj5H.mjs';
29
- import '../shared/better-auth.DH3YjMQH.mjs';
30
- import { g as getIp } from '../shared/better-auth.BrOpzmqo.mjs';
28
+ import { m as mergeSchema } from '../shared/better-auth.Cc72UxUH.mjs';
29
+ import '../shared/better-auth.Cqykj82J.mjs';
30
+ import { g as getIp } from '../shared/better-auth.iKoUsdFE.mjs';
31
31
  import 'defu';
32
32
  import '@better-auth/utils/random';
33
33
  import '@noble/ciphers/chacha';
@@ -42,19 +42,19 @@ import '../shared/better-auth.B4Qoxdgc.mjs';
42
42
  import 'kysely';
43
43
  import { p as parseJSON } from '../shared/better-auth.ffWeg50w.mjs';
44
44
  import { s as safeJSONParse } from '../shared/better-auth.tB5eU6EY.mjs';
45
- import { g as generateId } from '../shared/better-auth.BUPPRXfK.mjs';
46
45
  import { role } from './access/index.mjs';
47
- export { T as TWO_FACTOR_ERROR_CODES } from '../shared/better-auth.BcoSd9tC.mjs';
46
+ export { haveIBeenPwned } from './haveibeenpwned/index.mjs';
47
+ export { oneTimeToken } from './one-time-token/index.mjs';
48
48
  export { t as twoFactorClient } from '../shared/better-auth.Ddw8bVyV.mjs';
49
49
  import '../shared/better-auth.DdzSJf-n.mjs';
50
- import '../shared/better-auth.DiG4KL2x.mjs';
50
+ import '../shared/better-auth.OuYYTHC7.mjs';
51
51
  import './organization/access/index.mjs';
52
52
  import '../cookies/index.mjs';
53
53
  import '../shared/better-auth.VTXNLFMT.mjs';
54
+ import '../shared/better-auth.BUPPRXfK.mjs';
54
55
  import '../crypto/index.mjs';
55
56
  import '../shared/better-auth.OT3XFeFk.mjs';
56
57
  import '../shared/better-auth.DDEbWX-S.mjs';
57
- import '../shared/better-auth.ClTSOgiD.mjs';
58
58
  import '@better-auth/utils/otp';
59
59
  import '../shared/better-auth.YwDQhoPc.mjs';
60
60
  import '../social-providers/index.mjs';
@@ -64,7 +64,7 @@ import '../shared/better-auth.BdyOG_p4.mjs';
64
64
  import 'jose/errors';
65
65
  import '@better-auth/utils/binary';
66
66
  import '../shared/better-auth.DQI8AD7d.mjs';
67
- import '../shared/better-auth.cOCrlspr.mjs';
67
+ import '../shared/better-auth.bkwPl2G4.mjs';
68
68
  import './admin/access/index.mjs';
69
69
  import '../shared/better-auth.fsvwNeUx.mjs';
70
70
  import '../api/index.mjs';
@@ -302,7 +302,143 @@ function createApiKey({
302
302
  description: "Whether the key has rate limiting enabled. Server Only Property."
303
303
  }).optional(),
304
304
  permissions: z.record(z.string(), z.array(z.string())).optional()
305
- })
305
+ }),
306
+ metadata: {
307
+ openapi: {
308
+ description: "Create a new API key for a user",
309
+ responses: {
310
+ "200": {
311
+ description: "API key created successfully",
312
+ content: {
313
+ "application/json": {
314
+ schema: {
315
+ type: "object",
316
+ properties: {
317
+ id: {
318
+ type: "string",
319
+ description: "Unique identifier of the API key"
320
+ },
321
+ createdAt: {
322
+ type: "string",
323
+ format: "date-time",
324
+ description: "Creation timestamp"
325
+ },
326
+ updatedAt: {
327
+ type: "string",
328
+ format: "date-time",
329
+ description: "Last update timestamp"
330
+ },
331
+ name: {
332
+ type: "string",
333
+ nullable: true,
334
+ description: "Name of the API key"
335
+ },
336
+ prefix: {
337
+ type: "string",
338
+ nullable: true,
339
+ description: "Prefix of the API key"
340
+ },
341
+ start: {
342
+ type: "string",
343
+ nullable: true,
344
+ description: "Starting characters of the key (if configured)"
345
+ },
346
+ key: {
347
+ type: "string",
348
+ description: "The full API key (only returned on creation)"
349
+ },
350
+ enabled: {
351
+ type: "boolean",
352
+ description: "Whether the key is enabled"
353
+ },
354
+ expiresAt: {
355
+ type: "string",
356
+ format: "date-time",
357
+ nullable: true,
358
+ description: "Expiration timestamp"
359
+ },
360
+ userId: {
361
+ type: "string",
362
+ description: "ID of the user owning the key"
363
+ },
364
+ lastRefillAt: {
365
+ type: "string",
366
+ format: "date-time",
367
+ nullable: true,
368
+ description: "Last refill timestamp"
369
+ },
370
+ lastRequest: {
371
+ type: "string",
372
+ format: "date-time",
373
+ nullable: true,
374
+ description: "Last request timestamp"
375
+ },
376
+ metadata: {
377
+ type: "object",
378
+ nullable: true,
379
+ additionalProperties: true,
380
+ description: "Metadata associated with the key"
381
+ },
382
+ rateLimitMax: {
383
+ type: "number",
384
+ nullable: true,
385
+ description: "Maximum requests in time window"
386
+ },
387
+ rateLimitTimeWindow: {
388
+ type: "number",
389
+ nullable: true,
390
+ description: "Rate limit time window in milliseconds"
391
+ },
392
+ remaining: {
393
+ type: "number",
394
+ nullable: true,
395
+ description: "Remaining requests"
396
+ },
397
+ refillAmount: {
398
+ type: "number",
399
+ nullable: true,
400
+ description: "Amount to refill"
401
+ },
402
+ refillInterval: {
403
+ type: "number",
404
+ nullable: true,
405
+ description: "Refill interval in milliseconds"
406
+ },
407
+ rateLimitEnabled: {
408
+ type: "boolean",
409
+ description: "Whether rate limiting is enabled"
410
+ },
411
+ requestCount: {
412
+ type: "number",
413
+ description: "Current request count in window"
414
+ },
415
+ permissions: {
416
+ type: "object",
417
+ nullable: true,
418
+ additionalProperties: {
419
+ type: "array",
420
+ items: { type: "string" }
421
+ },
422
+ description: "Permissions associated with the key"
423
+ }
424
+ },
425
+ required: [
426
+ "id",
427
+ "createdAt",
428
+ "updatedAt",
429
+ "key",
430
+ "enabled",
431
+ "userId",
432
+ "rateLimitEnabled",
433
+ "requestCount"
434
+ ]
435
+ }
436
+ }
437
+ }
438
+ }
439
+ }
440
+ }
441
+ }
306
442
  },
307
443
  async (ctx) => {
308
444
  const {
@@ -415,7 +551,6 @@ function createApiKey({
415
551
  const defaultPermissions = opts.permissions?.defaultPermissions ? typeof opts.permissions.defaultPermissions === "function" ? await opts.permissions.defaultPermissions(user.id, ctx) : opts.permissions.defaultPermissions : void 0;
416
552
  const permissionsToApply = permissions ? JSON.stringify(permissions) : defaultPermissions ? JSON.stringify(defaultPermissions) : void 0;
417
553
  let data = {
418
- id: generateId(),
419
554
  createdAt: /* @__PURE__ */ new Date(),
420
555
  updatedAt: /* @__PURE__ */ new Date(),
421
556
  name: name ?? null,
@@ -433,7 +568,7 @@ function createApiKey({
433
568
  remaining: remaining || refillAmount || null,
434
569
  refillAmount: refillAmount ?? null,
435
570
  refillInterval: refillInterval ?? null,
436
- rateLimitEnabled: rateLimitEnabled ?? true,
571
+ rateLimitEnabled: rateLimitEnabled ?? opts.rateLimit.enabled === void 0 ? true : opts.rateLimit.enabled,
437
572
  requestCount: 0,
438
573
  //@ts-ignore - we intentionally save the permissions as string on DB.
439
574
  permissions: permissionsToApply
@@ -472,7 +607,47 @@ function deleteApiKey({
472
607
  description: "The id of the Api Key"
473
608
  })
474
609
  }),
475
- use: [sessionMiddleware]
610
+ use: [sessionMiddleware],
611
+ metadata: {
612
+ openapi: {
613
+ description: "Delete an existing API key",
614
+ requestBody: {
615
+ content: {
616
+ "application/json": {
617
+ schema: {
618
+ type: "object",
619
+ properties: {
620
+ keyId: {
621
+ type: "string",
622
+ description: "The id of the API key to delete"
623
+ }
624
+ },
625
+ required: ["keyId"]
626
+ }
627
+ }
628
+ }
629
+ },
630
+ responses: {
631
+ "200": {
632
+ description: "API key deleted successfully",
633
+ content: {
634
+ "application/json": {
635
+ schema: {
636
+ type: "object",
637
+ properties: {
638
+ success: {
639
+ type: "boolean",
640
+ description: "Indicates if the API key was successfully deleted"
641
+ }
642
+ },
643
+ required: ["success"]
644
+ }
645
+ }
646
+ }
647
+ }
648
+ }
649
+ }
650
+ }
476
651
  },
477
652
  async (ctx) => {
478
653
  const { keyId } = ctx.body;
@@ -533,7 +708,135 @@ function getApiKey({
533
708
  description: "The id of the Api Key"
534
709
  })
535
710
  }),
536
- use: [sessionMiddleware]
711
+ use: [sessionMiddleware],
712
+ metadata: {
713
+ openapi: {
714
+ description: "Retrieve an existing API key by ID",
715
+ responses: {
716
+ "200": {
717
+ description: "API key retrieved successfully",
718
+ content: {
719
+ "application/json": {
720
+ schema: {
721
+ type: "object",
722
+ properties: {
723
+ id: {
724
+ type: "string",
725
+ description: "ID"
726
+ },
727
+ name: {
728
+ type: "string",
729
+ nullable: true,
730
+ description: "The name of the key"
731
+ },
732
+ start: {
733
+ type: "string",
734
+ nullable: true,
735
+ description: "Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."
736
+ },
737
+ prefix: {
738
+ type: "string",
739
+ nullable: true,
740
+ description: "The API Key prefix. Stored as plain text."
741
+ },
742
+ userId: {
743
+ type: "string",
744
+ description: "The owner of the user id"
745
+ },
746
+ refillInterval: {
747
+ type: "number",
748
+ nullable: true,
749
+ description: "The interval in which the `remaining` count is refilled by day. Example: 1 // every day"
750
+ },
751
+ refillAmount: {
752
+ type: "number",
753
+ nullable: true,
754
+ description: "The amount to refill"
755
+ },
756
+ lastRefillAt: {
757
+ type: "string",
758
+ format: "date-time",
759
+ nullable: true,
760
+ description: "The last refill date"
761
+ },
762
+ enabled: {
763
+ type: "boolean",
764
+ description: "Sets if key is enabled or disabled",
765
+ default: true
766
+ },
767
+ rateLimitEnabled: {
768
+ type: "boolean",
769
+ description: "Whether the key has rate limiting enabled"
770
+ },
771
+ rateLimitTimeWindow: {
772
+ type: "number",
773
+ nullable: true,
774
+ description: "The duration in milliseconds"
775
+ },
776
+ rateLimitMax: {
777
+ type: "number",
778
+ nullable: true,
779
+ description: "Maximum amount of requests allowed within a window"
780
+ },
781
+ requestCount: {
782
+ type: "number",
783
+ description: "The number of requests made within the rate limit time window"
784
+ },
785
+ remaining: {
786
+ type: "number",
787
+ nullable: true,
788
+ description: "Remaining requests (every time api key is used this should updated and should be updated on refill as well)"
789
+ },
790
+ lastRequest: {
791
+ type: "string",
792
+ format: "date-time",
793
+ nullable: true,
794
+ description: "When last request occurred"
795
+ },
796
+ expiresAt: {
797
+ type: "string",
798
+ format: "date-time",
799
+ nullable: true,
800
+ description: "Expiry date of a key"
801
+ },
802
+ createdAt: {
803
+ type: "string",
804
+ format: "date-time",
805
+ description: "created at"
806
+ },
807
+ updatedAt: {
808
+ type: "string",
809
+ format: "date-time",
810
+ description: "updated at"
811
+ },
812
+ metadata: {
813
+ type: "object",
814
+ nullable: true,
815
+ additionalProperties: true,
816
+ description: "Extra metadata about the apiKey"
817
+ },
818
+ permissions: {
819
+ type: "string",
820
+ nullable: true,
821
+ description: "Permissions for the api key (stored as JSON string)"
822
+ }
823
+ },
824
+ required: [
825
+ "id",
826
+ "userId",
827
+ "enabled",
828
+ "rateLimitEnabled",
829
+ "requestCount",
830
+ "createdAt",
831
+ "updatedAt"
832
+ ]
833
+ }
834
+ }
835
+ }
836
+ }
837
+ }
838
+ }
839
+ }
537
840
  },
538
841
  async (ctx) => {
539
842
  const { id } = ctx.query;
@@ -617,7 +920,135 @@ function updateApiKey({
617
920
  description: "Maximum amount of requests allowed within a window. Once the `maxRequests` is reached, the request will be rejected until the `timeWindow` has passed, at which point the `timeWindow` will be reset."
618
921
  }).optional(),
619
922
  permissions: z.record(z.string(), z.array(z.string())).optional().nullable()
620
- })
923
+ }),
924
+ metadata: {
925
+ openapi: {
926
+ description: "Retrieve an existing API key by ID",
927
+ responses: {
928
+ "200": {
929
+ description: "API key retrieved successfully",
930
+ content: {
931
+ "application/json": {
932
+ schema: {
933
+ type: "object",
934
+ properties: {
935
+ id: {
936
+ type: "string",
937
+ description: "ID"
938
+ },
939
+ name: {
940
+ type: "string",
941
+ nullable: true,
942
+ description: "The name of the key"
943
+ },
944
+ start: {
945
+ type: "string",
946
+ nullable: true,
947
+ description: "Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."
948
+ },
949
+ prefix: {
950
+ type: "string",
951
+ nullable: true,
952
+ description: "The API Key prefix. Stored as plain text."
953
+ },
954
+ userId: {
955
+ type: "string",
956
+ description: "The owner of the user id"
957
+ },
958
+ refillInterval: {
959
+ type: "number",
960
+ nullable: true,
961
+ description: "The interval in which the `remaining` count is refilled by day. Example: 1 // every day"
962
+ },
963
+ refillAmount: {
964
+ type: "number",
965
+ nullable: true,
966
+ description: "The amount to refill"
967
+ },
968
+ lastRefillAt: {
969
+ type: "string",
970
+ format: "date-time",
971
+ nullable: true,
972
+ description: "The last refill date"
973
+ },
974
+ enabled: {
975
+ type: "boolean",
976
+ description: "Sets if key is enabled or disabled",
977
+ default: true
978
+ },
979
+ rateLimitEnabled: {
980
+ type: "boolean",
981
+ description: "Whether the key has rate limiting enabled"
982
+ },
983
+ rateLimitTimeWindow: {
984
+ type: "number",
985
+ nullable: true,
986
+ description: "The duration in milliseconds"
987
+ },
988
+ rateLimitMax: {
989
+ type: "number",
990
+ nullable: true,
991
+ description: "Maximum amount of requests allowed within a window"
992
+ },
993
+ requestCount: {
994
+ type: "number",
995
+ description: "The number of requests made within the rate limit time window"
996
+ },
997
+ remaining: {
998
+ type: "number",
999
+ nullable: true,
1000
+ description: "Remaining requests (every time api key is used this should updated and should be updated on refill as well)"
1001
+ },
1002
+ lastRequest: {
1003
+ type: "string",
1004
+ format: "date-time",
1005
+ nullable: true,
1006
+ description: "When last request occurred"
1007
+ },
1008
+ expiresAt: {
1009
+ type: "string",
1010
+ format: "date-time",
1011
+ nullable: true,
1012
+ description: "Expiry date of a key"
1013
+ },
1014
+ createdAt: {
1015
+ type: "string",
1016
+ format: "date-time",
1017
+ description: "created at"
1018
+ },
1019
+ updatedAt: {
1020
+ type: "string",
1021
+ format: "date-time",
1022
+ description: "updated at"
1023
+ },
1024
+ metadata: {
1025
+ type: "object",
1026
+ nullable: true,
1027
+ additionalProperties: true,
1028
+ description: "Extra metadata about the apiKey"
1029
+ },
1030
+ permissions: {
1031
+ type: "string",
1032
+ nullable: true,
1033
+ description: "Permissions for the api key (stored as JSON string)"
1034
+ }
1035
+ },
1036
+ required: [
1037
+ "id",
1038
+ "userId",
1039
+ "enabled",
1040
+ "rateLimitEnabled",
1041
+ "requestCount",
1042
+ "createdAt",
1043
+ "updatedAt"
1044
+ ]
1045
+ }
1046
+ }
1047
+ }
1048
+ }
1049
+ }
1050
+ }
1051
+ }
621
1052
  },
622
1053
  async (ctx) => {
623
1054
  const {
@@ -1095,7 +1526,138 @@ function listApiKeys({
1095
1526
  "/api-key/list",
1096
1527
  {
1097
1528
  method: "GET",
1098
- use: [sessionMiddleware]
1529
+ use: [sessionMiddleware],
1530
+ metadata: {
1531
+ openapi: {
1532
+ description: "List all API keys for the authenticated user",
1533
+ responses: {
1534
+ "200": {
1535
+ description: "API keys retrieved successfully",
1536
+ content: {
1537
+ "application/json": {
1538
+ schema: {
1539
+ type: "array",
1540
+ items: {
1541
+ type: "object",
1542
+ properties: {
1543
+ id: {
1544
+ type: "string",
1545
+ description: "ID"
1546
+ },
1547
+ name: {
1548
+ type: "string",
1549
+ nullable: true,
1550
+ description: "The name of the key"
1551
+ },
1552
+ start: {
1553
+ type: "string",
1554
+ nullable: true,
1555
+ description: "Shows the first few characters of the API key, including the prefix. This allows you to show those few characters in the UI to make it easier for users to identify the API key."
1556
+ },
1557
+ prefix: {
1558
+ type: "string",
1559
+ nullable: true,
1560
+ description: "The API Key prefix. Stored as plain text."
1561
+ },
1562
+ userId: {
1563
+ type: "string",
1564
+ description: "The owner of the user id"
1565
+ },
1566
+ refillInterval: {
1567
+ type: "number",
1568
+ nullable: true,
1569
+ description: "The interval in which the `remaining` count is refilled by day. Example: 1 // every day"
1570
+ },
1571
+ refillAmount: {
1572
+ type: "number",
1573
+ nullable: true,
1574
+ description: "The amount to refill"
1575
+ },
1576
+ lastRefillAt: {
1577
+ type: "string",
1578
+ format: "date-time",
1579
+ nullable: true,
1580
+ description: "The last refill date"
1581
+ },
1582
+ enabled: {
1583
+ type: "boolean",
1584
+ description: "Sets if key is enabled or disabled",
1585
+ default: true
1586
+ },
1587
+ rateLimitEnabled: {
1588
+ type: "boolean",
1589
+ description: "Whether the key has rate limiting enabled"
1590
+ },
1591
+ rateLimitTimeWindow: {
1592
+ type: "number",
1593
+ nullable: true,
1594
+ description: "The duration in milliseconds"
1595
+ },
1596
+ rateLimitMax: {
1597
+ type: "number",
1598
+ nullable: true,
1599
+ description: "Maximum amount of requests allowed within a window"
1600
+ },
1601
+ requestCount: {
1602
+ type: "number",
1603
+ description: "The number of requests made within the rate limit time window"
1604
+ },
1605
+ remaining: {
1606
+ type: "number",
1607
+ nullable: true,
1608
+ description: "Remaining requests (every time api key is used this should updated and should be updated on refill as well)"
1609
+ },
1610
+ lastRequest: {
1611
+ type: "string",
1612
+ format: "date-time",
1613
+ nullable: true,
1614
+ description: "When last request occurred"
1615
+ },
1616
+ expiresAt: {
1617
+ type: "string",
1618
+ format: "date-time",
1619
+ nullable: true,
1620
+ description: "Expiry date of a key"
1621
+ },
1622
+ createdAt: {
1623
+ type: "string",
1624
+ format: "date-time",
1625
+ description: "created at"
1626
+ },
1627
+ updatedAt: {
1628
+ type: "string",
1629
+ format: "date-time",
1630
+ description: "updated at"
1631
+ },
1632
+ metadata: {
1633
+ type: "object",
1634
+ nullable: true,
1635
+ additionalProperties: true,
1636
+ description: "Extra metadata about the apiKey"
1637
+ },
1638
+ permissions: {
1639
+ type: "string",
1640
+ nullable: true,
1641
+ description: "Permissions for the api key (stored as JSON string)"
1642
+ }
1643
+ },
1644
+ required: [
1645
+ "id",
1646
+ "userId",
1647
+ "enabled",
1648
+ "rateLimitEnabled",
1649
+ "requestCount",
1650
+ "createdAt",
1651
+ "updatedAt"
1652
+ ]
1653
+ }
1654
+ }
1655
+ }
1656
+ }
1657
+ }
1658
+ }
1659
+ }
1660
+ }
1099
1661
  },
1100
1662
  async (ctx) => {
1101
1663
  const session = ctx.context.session;
@@ -1245,7 +1807,7 @@ const apiKey = (options) => {
1245
1807
  minimumNameLength: options?.minimumNameLength ?? 1,
1246
1808
  enableMetadata: options?.enableMetadata ?? false,
1247
1809
  rateLimit: {
1248
- enabled: options?.rateLimit?.enabled ?? true,
1810
+ enabled: options?.rateLimit?.enabled === void 0 ? true : options?.rateLimit?.enabled,
1249
1811
  timeWindow: options?.rateLimit?.timeWindow ?? 1e3 * 60 * 60 * 24,
1250
1812
  maxRequests: options?.rateLimit?.maxRequests ?? 10
1251
1813
  },