better-auth 1.7.21 → 1.7.23

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 (439) hide show
  1. package/dist/_virtual/_rolldown/runtime.mjs +1 -2
  2. package/dist/adapters/index.d.mts +0 -2
  3. package/dist/adapters/index.mjs +1 -2
  4. package/dist/api/dispatch.d.mts +1 -3
  5. package/dist/api/dispatch.mjs +1 -2
  6. package/dist/api/index.d.mts +3 -3
  7. package/dist/api/index.mjs +8 -9
  8. package/dist/api/middlewares/authorization.d.mts +1 -3
  9. package/dist/api/middlewares/authorization.mjs +1 -2
  10. package/dist/api/middlewares/origin-check.d.mts +1 -3
  11. package/dist/api/middlewares/origin-check.mjs +2 -3
  12. package/dist/api/rate-limiter/index.mjs +1 -2
  13. package/dist/api/routes/account.d.mts +1 -3
  14. package/dist/api/routes/account.mjs +10 -10
  15. package/dist/api/routes/callback.d.mts +1 -3
  16. package/dist/api/routes/callback.mjs +5 -6
  17. package/dist/api/routes/email-verification.d.mts +1 -3
  18. package/dist/api/routes/email-verification.mjs +4 -5
  19. package/dist/api/routes/error.d.mts +1 -3
  20. package/dist/api/routes/error.mjs +1 -2
  21. package/dist/api/routes/ok.d.mts +1 -3
  22. package/dist/api/routes/ok.mjs +1 -2
  23. package/dist/api/routes/password.d.mts +1 -3
  24. package/dist/api/routes/password.mjs +3 -4
  25. package/dist/api/routes/session.d.mts +2 -3
  26. package/dist/api/routes/session.mjs +10 -6
  27. package/dist/api/routes/sign-in.d.mts +0 -2
  28. package/dist/api/routes/sign-in.mjs +6 -7
  29. package/dist/api/routes/sign-out.d.mts +1 -3
  30. package/dist/api/routes/sign-out.mjs +1 -2
  31. package/dist/api/routes/sign-up.d.mts +1 -3
  32. package/dist/api/routes/sign-up.mjs +5 -6
  33. package/dist/api/routes/update-session.d.mts +1 -3
  34. package/dist/api/routes/update-session.mjs +2 -3
  35. package/dist/api/routes/update-user.d.mts +1 -3
  36. package/dist/api/routes/update-user.mjs +31 -28
  37. package/dist/api/state/oauth.d.mts +0 -2
  38. package/dist/api/state/oauth.mjs +1 -2
  39. package/dist/api/state/session-source.d.mts +1 -3
  40. package/dist/api/state/session-source.mjs +1 -2
  41. package/dist/api/state/should-session-refresh.d.mts +0 -2
  42. package/dist/api/state/should-session-refresh.mjs +1 -2
  43. package/dist/api/to-auth-endpoints.mjs +2 -3
  44. package/dist/auth/base.mjs +3 -9
  45. package/dist/auth/full.d.mts +1 -3
  46. package/dist/auth/full.mjs +1 -2
  47. package/dist/auth/minimal.d.mts +0 -2
  48. package/dist/auth/minimal.mjs +2 -3
  49. package/dist/auth/trusted-origins.mjs +2 -3
  50. package/dist/client/broadcast-channel.d.mts +1 -3
  51. package/dist/client/broadcast-channel.mjs +4 -4
  52. package/dist/client/config.d.mts +1 -3
  53. package/dist/client/config.mjs +2 -3
  54. package/dist/client/equality.d.mts +1 -3
  55. package/dist/client/equality.mjs +1 -2
  56. package/dist/client/fetch-plugins.mjs +1 -2
  57. package/dist/client/focus-manager.d.mts +1 -3
  58. package/dist/client/focus-manager.mjs +4 -4
  59. package/dist/client/index.d.mts +5 -7
  60. package/dist/client/index.mjs +1 -2
  61. package/dist/client/lynx/index.d.mts +1 -3
  62. package/dist/client/lynx/index.mjs +1 -2
  63. package/dist/client/lynx/lynx-store.d.mts +0 -2
  64. package/dist/client/lynx/lynx-store.mjs +1 -2
  65. package/dist/client/online-manager.d.mts +1 -3
  66. package/dist/client/online-manager.mjs +7 -7
  67. package/dist/client/parser.d.mts +0 -2
  68. package/dist/client/parser.mjs +1 -2
  69. package/dist/client/path-to-object.d.mts +0 -2
  70. package/dist/client/plugins/index.d.mts +6 -6
  71. package/dist/client/plugins/infer-plugin.d.mts +1 -3
  72. package/dist/client/plugins/infer-plugin.mjs +1 -2
  73. package/dist/client/proxy.mjs +1 -2
  74. package/dist/client/query-atom.mjs +1 -2
  75. package/dist/client/query.d.mts +1 -3
  76. package/dist/client/query.mjs +1 -2
  77. package/dist/client/react/index.d.mts +1 -3
  78. package/dist/client/react/index.mjs +1 -2
  79. package/dist/client/react/react-store.d.mts +0 -2
  80. package/dist/client/react/react-store.mjs +1 -2
  81. package/dist/client/session-atom.d.mts +1 -3
  82. package/dist/client/session-atom.mjs +2 -2
  83. package/dist/client/session-refresh.d.mts +1 -3
  84. package/dist/client/session-refresh.mjs +3 -3
  85. package/dist/client/solid/index.d.mts +1 -3
  86. package/dist/client/solid/index.mjs +1 -2
  87. package/dist/client/solid/solid-store.mjs +1 -2
  88. package/dist/client/svelte/index.d.mts +1 -3
  89. package/dist/client/svelte/index.mjs +1 -2
  90. package/dist/client/types.d.mts +2 -4
  91. package/dist/client/vanilla.d.mts +1 -3
  92. package/dist/client/vanilla.mjs +1 -2
  93. package/dist/client/vue/index.d.mts +1 -3
  94. package/dist/client/vue/index.mjs +1 -2
  95. package/dist/client/vue/vue-store.mjs +1 -2
  96. package/dist/context/create-context.mjs +8 -9
  97. package/dist/context/helpers.mjs +3 -4
  98. package/dist/context/init-minimal.mjs +1 -2
  99. package/dist/context/init.mjs +1 -2
  100. package/dist/context/secret-utils.mjs +1 -2
  101. package/dist/context/store-capabilities.mjs +1 -2
  102. package/dist/cookies/cache.mjs +1 -2
  103. package/dist/cookies/cookie-utils.d.mts +0 -2
  104. package/dist/cookies/cookie-utils.mjs +1 -2
  105. package/dist/cookies/index.d.mts +0 -2
  106. package/dist/cookies/index.mjs +2 -3
  107. package/dist/cookies/jwt.mjs +1 -2
  108. package/dist/cookies/session-store.d.mts +0 -2
  109. package/dist/cookies/session-store.mjs +1 -2
  110. package/dist/crypto/buffer.d.mts +1 -3
  111. package/dist/crypto/buffer.mjs +1 -2
  112. package/dist/crypto/index.d.mts +0 -2
  113. package/dist/crypto/index.mjs +2 -3
  114. package/dist/crypto/jwt.d.mts +1 -3
  115. package/dist/crypto/jwt.mjs +1 -2
  116. package/dist/crypto/password.d.mts +0 -2
  117. package/dist/crypto/password.mjs +1 -2
  118. package/dist/crypto/purpose.mjs +1 -2
  119. package/dist/crypto/random.d.mts +1 -3
  120. package/dist/crypto/random.mjs +1 -2
  121. package/dist/db/adapter-base.d.mts +1 -3
  122. package/dist/db/adapter-base.mjs +1 -2
  123. package/dist/db/adapter-kysely.d.mts +1 -3
  124. package/dist/db/adapter-kysely.mjs +1 -2
  125. package/dist/db/field-converter.d.mts +1 -3
  126. package/dist/db/field-converter.mjs +1 -2
  127. package/dist/db/field.d.mts +0 -2
  128. package/dist/db/get-migration.d.mts +1 -3
  129. package/dist/db/get-migration.mjs +1 -2
  130. package/dist/db/get-schema.d.mts +1 -3
  131. package/dist/db/get-schema.mjs +1 -2
  132. package/dist/db/index.d.mts +1 -1
  133. package/dist/db/index.mjs +4 -5
  134. package/dist/db/internal-adapter.d.mts +1 -3
  135. package/dist/db/internal-adapter.mjs +21 -10
  136. package/dist/db/revoke-unproven-account-access.d.mts +1 -3
  137. package/dist/db/revoke-unproven-account-access.mjs +1 -2
  138. package/dist/db/schema.d.mts +1 -3
  139. package/dist/db/schema.mjs +1 -2
  140. package/dist/db/to-zod.d.mts +0 -2
  141. package/dist/db/to-zod.mjs +1 -2
  142. package/dist/db/verification-token-storage.mjs +1 -2
  143. package/dist/db/with-hooks.d.mts +1 -3
  144. package/dist/db/with-hooks.mjs +1 -2
  145. package/dist/index.d.mts +1 -1
  146. package/dist/index.mjs +1 -1
  147. package/dist/integrations/cookie-plugin-guard.mjs +1 -2
  148. package/dist/integrations/next-js.d.mts +1 -3
  149. package/dist/integrations/next-js.mjs +2 -3
  150. package/dist/integrations/node.d.mts +1 -3
  151. package/dist/integrations/node.mjs +1 -2
  152. package/dist/integrations/solid-start.d.mts +1 -3
  153. package/dist/integrations/solid-start.mjs +1 -2
  154. package/dist/integrations/svelte-kit.d.mts +1 -3
  155. package/dist/integrations/svelte-kit.mjs +1 -2
  156. package/dist/integrations/tanstack-start-solid.d.mts +1 -3
  157. package/dist/integrations/tanstack-start-solid.mjs +1 -2
  158. package/dist/integrations/tanstack-start.d.mts +1 -3
  159. package/dist/integrations/tanstack-start.mjs +1 -2
  160. package/dist/oauth2/account-key.mjs +1 -2
  161. package/dist/oauth2/callback.mjs +1 -2
  162. package/dist/oauth2/errors.mjs +1 -2
  163. package/dist/oauth2/index.d.mts +1 -1
  164. package/dist/oauth2/index.mjs +1 -1
  165. package/dist/oauth2/link-account.d.mts +1 -3
  166. package/dist/oauth2/link-account.mjs +18 -13
  167. package/dist/oauth2/state.d.mts +1 -3
  168. package/dist/oauth2/state.mjs +3 -4
  169. package/dist/oauth2/utils.d.mts +1 -3
  170. package/dist/oauth2/utils.mjs +1 -2
  171. package/dist/package.mjs +2 -3
  172. package/dist/plugins/access/access.d.mts +1 -3
  173. package/dist/plugins/access/access.mjs +1 -2
  174. package/dist/plugins/access/index.d.mts +1 -1
  175. package/dist/plugins/access/types.d.mts +1 -3
  176. package/dist/plugins/additional-fields/client.d.mts +1 -3
  177. package/dist/plugins/additional-fields/client.mjs +1 -2
  178. package/dist/plugins/admin/access/statement.d.mts +1 -3
  179. package/dist/plugins/admin/access/statement.mjs +1 -2
  180. package/dist/plugins/admin/admin.d.mts +1 -3
  181. package/dist/plugins/admin/admin.mjs +2 -3
  182. package/dist/plugins/admin/client.d.mts +2 -4
  183. package/dist/plugins/admin/client.mjs +1 -2
  184. package/dist/plugins/admin/error-codes.d.mts +1 -3
  185. package/dist/plugins/admin/error-codes.mjs +1 -2
  186. package/dist/plugins/admin/has-permission.mjs +1 -2
  187. package/dist/plugins/admin/index.d.mts +1 -1
  188. package/dist/plugins/admin/routes.mjs +3 -4
  189. package/dist/plugins/admin/schema.d.mts +1 -3
  190. package/dist/plugins/admin/schema.mjs +1 -2
  191. package/dist/plugins/admin/types.d.mts +1 -3
  192. package/dist/plugins/anonymous/client.d.mts +1 -3
  193. package/dist/plugins/anonymous/client.mjs +1 -2
  194. package/dist/plugins/anonymous/error-codes.d.mts +1 -3
  195. package/dist/plugins/anonymous/error-codes.mjs +1 -2
  196. package/dist/plugins/anonymous/index.d.mts +0 -2
  197. package/dist/plugins/anonymous/index.mjs +3 -4
  198. package/dist/plugins/anonymous/schema.d.mts +1 -3
  199. package/dist/plugins/anonymous/schema.mjs +1 -2
  200. package/dist/plugins/anonymous/types.d.mts +1 -3
  201. package/dist/plugins/bearer/index.d.mts +1 -3
  202. package/dist/plugins/bearer/index.mjs +1 -2
  203. package/dist/plugins/captcha/constants.d.mts +1 -3
  204. package/dist/plugins/captcha/constants.mjs +1 -2
  205. package/dist/plugins/captcha/error-codes.mjs +1 -2
  206. package/dist/plugins/captcha/index.d.mts +0 -2
  207. package/dist/plugins/captcha/index.mjs +2 -3
  208. package/dist/plugins/captcha/types.d.mts +1 -3
  209. package/dist/plugins/captcha/utils.mjs +1 -2
  210. package/dist/plugins/captcha/verify-handlers/captchafox.mjs +1 -2
  211. package/dist/plugins/captcha/verify-handlers/cloudflare-turnstile.mjs +1 -2
  212. package/dist/plugins/captcha/verify-handlers/google-recaptcha.mjs +1 -2
  213. package/dist/plugins/captcha/verify-handlers/h-captcha.mjs +1 -2
  214. package/dist/plugins/captcha/verify-handlers/vercel-botid.mjs +1 -2
  215. package/dist/plugins/custom-session/client.d.mts +1 -3
  216. package/dist/plugins/custom-session/client.mjs +1 -2
  217. package/dist/plugins/custom-session/index.d.mts +1 -3
  218. package/dist/plugins/custom-session/index.mjs +3 -4
  219. package/dist/plugins/device-authorization/client.d.mts +1 -3
  220. package/dist/plugins/device-authorization/client.mjs +1 -2
  221. package/dist/plugins/device-authorization/error-codes.mjs +1 -2
  222. package/dist/plugins/device-authorization/index.d.mts +1 -3
  223. package/dist/plugins/device-authorization/index.mjs +2 -3
  224. package/dist/plugins/device-authorization/routes.d.mts +4 -6
  225. package/dist/plugins/device-authorization/routes.mjs +3 -4
  226. package/dist/plugins/device-authorization/schema.d.mts +0 -2
  227. package/dist/plugins/device-authorization/schema.mjs +1 -2
  228. package/dist/plugins/email-otp/client.d.mts +0 -2
  229. package/dist/plugins/email-otp/client.mjs +1 -2
  230. package/dist/plugins/email-otp/error-codes.d.mts +1 -3
  231. package/dist/plugins/email-otp/error-codes.mjs +1 -2
  232. package/dist/plugins/email-otp/index.d.mts +0 -2
  233. package/dist/plugins/email-otp/index.mjs +4 -5
  234. package/dist/plugins/email-otp/otp-token.mjs +3 -4
  235. package/dist/plugins/email-otp/routes.mjs +6 -7
  236. package/dist/plugins/email-otp/types.d.mts +1 -3
  237. package/dist/plugins/email-otp/utils.mjs +1 -2
  238. package/dist/plugins/generic-oauth/error-codes.mjs +1 -2
  239. package/dist/plugins/generic-oauth/index.d.mts +0 -2
  240. package/dist/plugins/generic-oauth/index.mjs +5 -7
  241. package/dist/plugins/generic-oauth/providers/auth0.d.mts +1 -3
  242. package/dist/plugins/generic-oauth/providers/auth0.mjs +1 -2
  243. package/dist/plugins/generic-oauth/providers/gumroad.d.mts +1 -3
  244. package/dist/plugins/generic-oauth/providers/gumroad.mjs +1 -2
  245. package/dist/plugins/generic-oauth/providers/hubspot.d.mts +1 -3
  246. package/dist/plugins/generic-oauth/providers/hubspot.mjs +1 -2
  247. package/dist/plugins/generic-oauth/providers/keycloak.d.mts +1 -3
  248. package/dist/plugins/generic-oauth/providers/keycloak.mjs +1 -2
  249. package/dist/plugins/generic-oauth/providers/line.d.mts +1 -3
  250. package/dist/plugins/generic-oauth/providers/line.mjs +1 -2
  251. package/dist/plugins/generic-oauth/providers/microsoft-entra-id.d.mts +1 -3
  252. package/dist/plugins/generic-oauth/providers/microsoft-entra-id.mjs +1 -2
  253. package/dist/plugins/generic-oauth/providers/okta.d.mts +1 -3
  254. package/dist/plugins/generic-oauth/providers/okta.mjs +1 -2
  255. package/dist/plugins/generic-oauth/providers/patreon.d.mts +1 -3
  256. package/dist/plugins/generic-oauth/providers/patreon.mjs +1 -2
  257. package/dist/plugins/generic-oauth/providers/slack.d.mts +1 -3
  258. package/dist/plugins/generic-oauth/providers/slack.mjs +1 -2
  259. package/dist/plugins/generic-oauth/providers/yandex.d.mts +1 -3
  260. package/dist/plugins/generic-oauth/providers/yandex.mjs +1 -2
  261. package/dist/plugins/generic-oauth/types.d.mts +1 -3
  262. package/dist/plugins/haveibeenpwned/index.d.mts +1 -3
  263. package/dist/plugins/haveibeenpwned/index.mjs +2 -3
  264. package/dist/plugins/index.d.mts +5 -5
  265. package/dist/plugins/jwt/adapter.mjs +1 -2
  266. package/dist/plugins/jwt/client.d.mts +1 -3
  267. package/dist/plugins/jwt/client.mjs +1 -2
  268. package/dist/plugins/jwt/cookie-cache.mjs +1 -2
  269. package/dist/plugins/jwt/index.d.mts +1 -3
  270. package/dist/plugins/jwt/index.mjs +5 -6
  271. package/dist/plugins/jwt/schema.d.mts +1 -3
  272. package/dist/plugins/jwt/schema.mjs +1 -2
  273. package/dist/plugins/jwt/sign.d.mts +0 -2
  274. package/dist/plugins/jwt/sign.mjs +1 -2
  275. package/dist/plugins/jwt/types.d.mts +1 -3
  276. package/dist/plugins/jwt/utils.d.mts +1 -3
  277. package/dist/plugins/jwt/utils.mjs +2 -3
  278. package/dist/plugins/jwt/verify.d.mts +1 -3
  279. package/dist/plugins/jwt/verify.mjs +1 -2
  280. package/dist/plugins/last-login-method/client.d.mts +1 -3
  281. package/dist/plugins/last-login-method/client.mjs +1 -2
  282. package/dist/plugins/last-login-method/index.d.mts +1 -3
  283. package/dist/plugins/last-login-method/index.mjs +1 -2
  284. package/dist/plugins/magic-link/client.d.mts +1 -3
  285. package/dist/plugins/magic-link/client.mjs +1 -2
  286. package/dist/plugins/magic-link/index.d.mts +1 -3
  287. package/dist/plugins/magic-link/index.mjs +4 -5
  288. package/dist/plugins/magic-link/utils.mjs +1 -2
  289. package/dist/plugins/multi-session/client.d.mts +0 -2
  290. package/dist/plugins/multi-session/client.mjs +1 -2
  291. package/dist/plugins/multi-session/error-codes.d.mts +1 -3
  292. package/dist/plugins/multi-session/error-codes.mjs +1 -2
  293. package/dist/plugins/multi-session/index.d.mts +0 -2
  294. package/dist/plugins/multi-session/index.mjs +3 -4
  295. package/dist/plugins/oauth-popup/client.d.mts +0 -2
  296. package/dist/plugins/oauth-popup/client.mjs +1 -2
  297. package/dist/plugins/oauth-popup/constants.d.mts +1 -3
  298. package/dist/plugins/oauth-popup/constants.mjs +1 -2
  299. package/dist/plugins/oauth-popup/error-codes.d.mts +1 -3
  300. package/dist/plugins/oauth-popup/error-codes.mjs +1 -2
  301. package/dist/plugins/oauth-popup/index.d.mts +0 -2
  302. package/dist/plugins/oauth-popup/index.mjs +5 -6
  303. package/dist/plugins/oauth-popup/types.d.mts +1 -3
  304. package/dist/plugins/oauth-proxy/index.d.mts +1 -3
  305. package/dist/plugins/oauth-proxy/index.mjs +7 -8
  306. package/dist/plugins/oauth-proxy/utils.mjs +1 -2
  307. package/dist/plugins/one-tap/client.d.mts +1 -3
  308. package/dist/plugins/one-tap/client.mjs +1 -2
  309. package/dist/plugins/one-tap/index.d.mts +1 -3
  310. package/dist/plugins/one-tap/index.mjs +7 -8
  311. package/dist/plugins/one-time-token/client.d.mts +0 -2
  312. package/dist/plugins/one-time-token/client.mjs +1 -2
  313. package/dist/plugins/one-time-token/index.d.mts +1 -3
  314. package/dist/plugins/one-time-token/index.mjs +3 -4
  315. package/dist/plugins/one-time-token/utils.mjs +1 -2
  316. package/dist/plugins/open-api/generator.d.mts +0 -2
  317. package/dist/plugins/open-api/generator.mjs +2 -3
  318. package/dist/plugins/open-api/index.d.mts +0 -2
  319. package/dist/plugins/open-api/index.mjs +2 -3
  320. package/dist/plugins/open-api/logo.mjs +1 -2
  321. package/dist/plugins/organization/access/statement.d.mts +1 -3
  322. package/dist/plugins/organization/access/statement.mjs +1 -2
  323. package/dist/plugins/organization/adapter.d.mts +3 -5
  324. package/dist/plugins/organization/adapter.mjs +2 -3
  325. package/dist/plugins/organization/call.mjs +1 -2
  326. package/dist/plugins/organization/client.d.mts +9 -11
  327. package/dist/plugins/organization/client.mjs +2 -3
  328. package/dist/plugins/organization/error-codes.d.mts +1 -3
  329. package/dist/plugins/organization/error-codes.mjs +1 -2
  330. package/dist/plugins/organization/has-permission.d.mts +1 -3
  331. package/dist/plugins/organization/has-permission.mjs +2 -3
  332. package/dist/plugins/organization/index.d.mts +3 -3
  333. package/dist/plugins/organization/organization.d.mts +3 -5
  334. package/dist/plugins/organization/organization.mjs +3 -4
  335. package/dist/plugins/organization/permission.d.mts +1 -3
  336. package/dist/plugins/organization/permission.mjs +1 -2
  337. package/dist/plugins/organization/roles.d.mts +1 -3
  338. package/dist/plugins/organization/roles.mjs +1 -2
  339. package/dist/plugins/organization/routes/crud-access-control.d.mts +2 -4
  340. package/dist/plugins/organization/routes/crud-access-control.mjs +3 -4
  341. package/dist/plugins/organization/routes/crud-invites.d.mts +4 -6
  342. package/dist/plugins/organization/routes/crud-invites.mjs +5 -6
  343. package/dist/plugins/organization/routes/crud-members.d.mts +4 -6
  344. package/dist/plugins/organization/routes/crud-members.mjs +4 -5
  345. package/dist/plugins/organization/routes/crud-org.d.mts +4 -6
  346. package/dist/plugins/organization/routes/crud-org.mjs +8 -9
  347. package/dist/plugins/organization/routes/crud-team.d.mts +4 -6
  348. package/dist/plugins/organization/routes/crud-team.mjs +3 -4
  349. package/dist/plugins/organization/schema.d.mts +0 -2
  350. package/dist/plugins/organization/schema.mjs +1 -2
  351. package/dist/plugins/organization/types.d.mts +1 -3
  352. package/dist/plugins/phone-number/client.d.mts +1 -3
  353. package/dist/plugins/phone-number/client.mjs +1 -2
  354. package/dist/plugins/phone-number/error-codes.d.mts +1 -3
  355. package/dist/plugins/phone-number/error-codes.mjs +1 -2
  356. package/dist/plugins/phone-number/index.d.mts +0 -2
  357. package/dist/plugins/phone-number/index.mjs +1 -2
  358. package/dist/plugins/phone-number/routes.mjs +6 -7
  359. package/dist/plugins/phone-number/schema.d.mts +1 -3
  360. package/dist/plugins/phone-number/schema.mjs +1 -2
  361. package/dist/plugins/phone-number/types.d.mts +2 -4
  362. package/dist/plugins/siwe/client.d.mts +1 -3
  363. package/dist/plugins/siwe/client.mjs +1 -2
  364. package/dist/plugins/siwe/index.d.mts +1 -3
  365. package/dist/plugins/siwe/index.mjs +5 -6
  366. package/dist/plugins/siwe/parse-message.mjs +1 -2
  367. package/dist/plugins/siwe/schema.d.mts +1 -3
  368. package/dist/plugins/siwe/schema.mjs +1 -2
  369. package/dist/plugins/siwe/types.d.mts +0 -2
  370. package/dist/plugins/test-utils/auth-helpers.mjs +1 -2
  371. package/dist/plugins/test-utils/cookie-builder.mjs +1 -2
  372. package/dist/plugins/test-utils/db-helpers.mjs +1 -2
  373. package/dist/plugins/test-utils/factories.mjs +1 -2
  374. package/dist/plugins/test-utils/index.d.mts +0 -2
  375. package/dist/plugins/test-utils/index.mjs +2 -3
  376. package/dist/plugins/test-utils/otp-sink.mjs +1 -2
  377. package/dist/plugins/test-utils/types.d.mts +1 -3
  378. package/dist/plugins/two-factor/backup-codes/index.d.mts +1 -3
  379. package/dist/plugins/two-factor/backup-codes/index.mjs +4 -5
  380. package/dist/plugins/two-factor/client.d.mts +2 -4
  381. package/dist/plugins/two-factor/client.mjs +1 -2
  382. package/dist/plugins/two-factor/constant.mjs +1 -2
  383. package/dist/plugins/two-factor/error-code.d.mts +1 -3
  384. package/dist/plugins/two-factor/error-code.mjs +1 -2
  385. package/dist/plugins/two-factor/index.d.mts +0 -2
  386. package/dist/plugins/two-factor/index.mjs +9 -10
  387. package/dist/plugins/two-factor/otp/index.d.mts +1 -3
  388. package/dist/plugins/two-factor/otp/index.mjs +4 -5
  389. package/dist/plugins/two-factor/schema.d.mts +1 -3
  390. package/dist/plugins/two-factor/schema.mjs +1 -2
  391. package/dist/plugins/two-factor/totp/index.d.mts +1 -3
  392. package/dist/plugins/two-factor/totp/index.mjs +3 -4
  393. package/dist/plugins/two-factor/types.d.mts +1 -3
  394. package/dist/plugins/two-factor/utils.mjs +1 -2
  395. package/dist/plugins/two-factor/verify-two-factor.mjs +5 -6
  396. package/dist/plugins/username/client.d.mts +0 -2
  397. package/dist/plugins/username/client.mjs +1 -2
  398. package/dist/plugins/username/error-codes.d.mts +1 -3
  399. package/dist/plugins/username/error-codes.mjs +1 -2
  400. package/dist/plugins/username/index.d.mts +0 -2
  401. package/dist/plugins/username/index.mjs +4 -5
  402. package/dist/plugins/username/schema.d.mts +1 -3
  403. package/dist/plugins/username/schema.mjs +1 -2
  404. package/dist/state.d.mts +0 -2
  405. package/dist/state.mjs +2 -3
  406. package/dist/test-utils/headers.d.mts +1 -3
  407. package/dist/test-utils/headers.mjs +1 -2
  408. package/dist/test-utils/http-test-instance.d.mts +0 -2
  409. package/dist/test-utils/http-test-instance.mjs +1 -2
  410. package/dist/test-utils/index.d.mts +1 -1
  411. package/dist/test-utils/index.mjs +1 -1
  412. package/dist/test-utils/test-instance.d.mts +4 -6
  413. package/dist/test-utils/test-instance.mjs +35 -22
  414. package/dist/types/api.d.mts +1 -3
  415. package/dist/types/auth.d.mts +2 -4
  416. package/dist/types/helper.d.mts +1 -3
  417. package/dist/types/index.d.mts +2 -2
  418. package/dist/types/models.d.mts +0 -2
  419. package/dist/types/plugins.d.mts +0 -2
  420. package/dist/utils/constants.mjs +1 -2
  421. package/dist/utils/date.mjs +1 -2
  422. package/dist/utils/hashing.mjs +1 -2
  423. package/dist/utils/index.d.mts +1 -1
  424. package/dist/utils/is-atom.mjs +1 -2
  425. package/dist/utils/is-promise.mjs +1 -2
  426. package/dist/utils/middleware-response.mjs +1 -2
  427. package/dist/utils/password.mjs +1 -2
  428. package/dist/utils/plugin-helper.mjs +1 -2
  429. package/dist/utils/request.mjs +1 -2
  430. package/dist/utils/shim.mjs +1 -2
  431. package/dist/utils/time.d.mts +0 -2
  432. package/dist/utils/time.mjs +1 -2
  433. package/dist/utils/url.d.mts +1 -3
  434. package/dist/utils/url.mjs +1 -2
  435. package/dist/utils/validate-user-info.mjs +1 -2
  436. package/dist/utils/wildcard.mjs +1 -2
  437. package/dist/version.mjs +1 -2
  438. package/package.json +10 -10
  439. package/dist/utils/boolean.mjs +0 -6
@@ -1,4 +1,3 @@
1
- //#region src/plugins/username/error-codes.d.ts
2
1
  export declare const USERNAME_ERROR_CODES: {
3
2
  EMAIL_NOT_VERIFIED: import("@better-auth/core/utils/error-codes").RawError<"EMAIL_NOT_VERIFIED">;
4
3
  UNEXPECTED_ERROR: import("@better-auth/core/utils/error-codes").RawError<"UNEXPECTED_ERROR">;
@@ -9,5 +8,4 @@ export declare const USERNAME_ERROR_CODES: {
9
8
  INVALID_USERNAME: import("@better-auth/core/utils/error-codes").RawError<"INVALID_USERNAME">;
10
9
  INVALID_DISPLAY_USERNAME: import("@better-auth/core/utils/error-codes").RawError<"INVALID_DISPLAY_USERNAME">;
11
10
  USERNAME_IS_IMMUTABLE: import("@better-auth/core/utils/error-codes").RawError<"USERNAME_IS_IMMUTABLE">;
12
- };
13
- //#endregion
11
+ };
@@ -1,5 +1,5 @@
1
1
  import { defineErrorCodes } from "@better-auth/core/utils/error-codes";
2
- //#region src/plugins/username/error-codes.ts
2
+ // src/plugins/username/error-codes.ts
3
3
  const USERNAME_ERROR_CODES = defineErrorCodes({
4
4
  INVALID_USERNAME_OR_PASSWORD: "Invalid username or password",
5
5
  EMAIL_NOT_VERIFIED: "Email not verified",
@@ -11,5 +11,4 @@ const USERNAME_ERROR_CODES = defineErrorCodes({
11
11
  INVALID_DISPLAY_USERNAME: "Display username is invalid",
12
12
  USERNAME_IS_IMMUTABLE: "Username cannot be updated"
13
13
  });
14
- //#endregion
15
14
  export { USERNAME_ERROR_CODES };
@@ -2,7 +2,6 @@ import { InferOptionSchema } from "../../types/plugins.mjs";
2
2
  import { UsernameSchema } from "./schema.mjs";
3
3
  import { USERNAME_ERROR_CODES } from "./error-codes.mjs";
4
4
  import * as z from "zod";
5
- //#region src/plugins/username/index.d.ts
6
5
  declare module "@better-auth/core" {
7
6
  interface BetterAuthPluginRegistry<AuthOptions, Options> {
8
7
  username: {
@@ -317,5 +316,4 @@ export declare function username(options: UsernameOptions & {
317
316
  displayUsername: false;
318
317
  }): UsernamePluginWithoutDisplayUsername;
319
318
  export declare function username(options?: UsernameOptions): UsernamePlugin;
320
- //#endregion
321
319
  export { USERNAME_ERROR_CODES };
@@ -1,7 +1,7 @@
1
- import { mergeSchema, parseUserOutput } from "../../db/schema.mjs";
2
- import { setSessionCookie } from "../../cookies/index.mjs";
3
- import { getSessionFromCtx } from "../../api/routes/session.mjs";
4
1
  import { createEmailVerificationToken } from "../../api/routes/email-verification.mjs";
2
+ import { getSessionFromCtx } from "../../api/routes/session.mjs";
3
+ import { setSessionCookie } from "../../cookies/index.mjs";
4
+ import { mergeSchema, parseUserOutput } from "../../db/schema.mjs";
5
5
  import { assertPasswordNotTooLong } from "../../utils/password.mjs";
6
6
  import { PACKAGE_VERSION } from "../../version.mjs";
7
7
  import { USERNAME_ERROR_CODES } from "./error-codes.mjs";
@@ -10,7 +10,7 @@ import { getCurrentAdapter } from "@better-auth/core/context";
10
10
  import { APIError, BASE_ERROR_CODES } from "@better-auth/core/error";
11
11
  import { createAuthEndpoint, createAuthMiddleware } from "@better-auth/core/api";
12
12
  import * as z from "zod";
13
- //#region src/plugins/username/index.ts
13
+ // src/plugins/username/index.ts
14
14
  function defaultUsernameValidator(username) {
15
15
  return /^[a-zA-Z0-9_.]+$/.test(username);
16
16
  }
@@ -298,5 +298,4 @@ const usernameImpl = (options, includeDisplayUsername) => {
298
298
  function username(options) {
299
299
  return usernameImpl(options, options?.displayUsername !== false);
300
300
  }
301
- //#endregion
302
301
  export { USERNAME_ERROR_CODES, username };
@@ -1,4 +1,3 @@
1
- //#region src/plugins/username/schema.d.ts
2
1
  export declare const getSchema: <IncludeDisplayUsername extends boolean = true>(normalizer: {
3
2
  username: (username: string) => string;
4
3
  displayUsername: (displayUsername: string) => string;
@@ -43,5 +42,4 @@ export declare const getSchema: <IncludeDisplayUsername extends boolean = true>(
43
42
  };
44
43
  };
45
44
  };
46
- export type UsernameSchema = ReturnType<typeof getSchema<true>>;
47
- //#endregion
45
+ export type UsernameSchema = ReturnType<typeof getSchema<true>>;
@@ -1,4 +1,4 @@
1
- //#region src/plugins/username/schema.ts
1
+ // src/plugins/username/schema.ts
2
2
  const getSchema = (normalizer, includeDisplayUsername = true) => {
3
3
  const fields = {
4
4
  username: {
@@ -21,5 +21,4 @@ const getSchema = (normalizer, includeDisplayUsername = true) => {
21
21
  };
22
22
  return { user: { fields: includeDisplayUsername ? fields : { username: fields.username } } };
23
23
  };
24
- //#endregion
25
24
  export { getSchema };
package/dist/state.d.mts CHANGED
@@ -2,7 +2,6 @@ import { GenericEndpointContext } from "@better-auth/core";
2
2
  import { BetterAuthError } from "@better-auth/core/error";
3
3
  import * as z from "zod";
4
4
  import { getAuthStateVerificationIdentifier } from "@better-auth/core/utils/state";
5
- //#region src/state.d.ts
6
5
  declare const stateDataSchema: z.ZodObject<{
7
6
  callbackURL: z.ZodString;
8
7
  codeVerifier: z.ZodString;
@@ -46,5 +45,4 @@ export declare function parseGenericState(c: GenericEndpointContext, state: stri
46
45
  idTokenNonce?: string | undefined;
47
46
  serverContext?: Record<string, unknown> | undefined;
48
47
  }>;
49
- //#endregion
50
48
  export { getAuthStateVerificationIdentifier };
package/dist/state.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import { generateRandomString } from "./crypto/random.mjs";
2
- import { symmetricDecrypt, symmetricEncrypt } from "./crypto/index.mjs";
3
2
  import { expireCookie } from "./cookies/index.mjs";
3
+ import { symmetricDecrypt, symmetricEncrypt } from "./crypto/index.mjs";
4
4
  import { derivePurposeKey } from "./crypto/purpose.mjs";
5
5
  import { BetterAuthError } from "@better-auth/core/error";
6
6
  import * as z from "zod";
7
7
  import { getAuthStateVerificationIdentifier } from "@better-auth/core/utils/state";
8
- //#region src/state.ts
8
+ // src/state.ts
9
9
  const stateDataSchema = z.looseObject({
10
10
  callbackURL: z.string(),
11
11
  codeVerifier: z.string(),
@@ -147,5 +147,4 @@ async function parseGenericState(c, state, settings) {
147
147
  });
148
148
  return parsedData;
149
149
  }
150
- //#endregion
151
150
  export { INTERNAL_STATE_KEYS, StateError, generateGenericState, getAuthStateVerificationIdentifier, parseGenericState };
@@ -1,7 +1,5 @@
1
- //#region src/test-utils/headers.d.ts
2
1
  /**
3
2
  * converts set cookie containing headers to
4
3
  * cookie containing headers
5
4
  */
6
- export declare function convertSetCookieToCookie(headers: Headers): Headers;
7
- //#endregion
5
+ export declare function convertSetCookieToCookie(headers: Headers): Headers;
@@ -1,5 +1,5 @@
1
1
  import { applySetCookies } from "../cookies/cookie-utils.mjs";
2
- //#region src/test-utils/headers.ts
2
+ // src/test-utils/headers.ts
3
3
  /**
4
4
  * converts set cookie containing headers to
5
5
  * cookie containing headers
@@ -13,5 +13,4 @@ function convertSetCookieToCookie(headers) {
13
13
  applySetCookies(headers, setCookieHeaders);
14
14
  return headers;
15
15
  }
16
- //#endregion
17
16
  export { convertSetCookieToCookie };
@@ -7,7 +7,6 @@ import { getTestInstance } from "./test-instance.mjs";
7
7
  import { BetterAuthClientOptions, BetterAuthOptions } from "@better-auth/core";
8
8
  import { IncomingMessage, ServerResponse, createServer } from "node:http";
9
9
  import { AddressInfo } from "node:net";
10
- //#region src/test-utils/http-test-instance.d.ts
11
10
  /** A Node request handler that can be installed on an HTTP test listener. */
12
11
  export type HttpTestRequestHandler = (req: IncomingMessage, res: ServerResponse) => unknown | Promise<unknown>;
13
12
  /** A bound HTTP test listener whose request handler can be installed later. */
@@ -406,5 +405,4 @@ export declare function getHttpTestInstance<O extends Partial<BetterAuthOptions>
406
405
  db: import("@better-auth/core/db/adapter").DBAdapter<BetterAuthOptions>;
407
406
  runWithUser: (email: string, password: string, fn: (headers: Headers) => import("@better-auth/core").Awaitable<void>) => Promise<void>;
408
407
  }>;
409
- //#endregion
410
408
  export {};
@@ -1,7 +1,7 @@
1
1
  import { toNodeHandler } from "../integrations/node.mjs";
2
2
  import { getTestInstance } from "./test-instance.mjs";
3
3
  import { createServer } from "node:http";
4
- //#region src/test-utils/http-test-instance.ts
4
+ // src/test-utils/http-test-instance.ts
5
5
  const closeHttpServer = (server) => new Promise((resolve, reject) => {
6
6
  server.close((error) => {
7
7
  if (error) {
@@ -103,5 +103,4 @@ async function getHttpTestInstance(options, config) {
103
103
  throw error;
104
104
  }
105
105
  }
106
- //#endregion
107
106
  export { createHttpTestServer, getHttpTestInstance };
@@ -1,4 +1,4 @@
1
1
  import { convertSetCookieToCookie } from "./headers.mjs";
2
- import { getTestInstance } from "./test-instance.mjs";
3
2
  import { HttpTestInstanceConfig, HttpTestRequestHandler, HttpTestServer, createHttpTestServer, getHttpTestInstance } from "./http-test-instance.mjs";
3
+ import { getTestInstance } from "./test-instance.mjs";
4
4
  export { type HttpTestInstanceConfig, type HttpTestRequestHandler, type HttpTestServer, convertSetCookieToCookie, createHttpTestServer, getHttpTestInstance, getTestInstance };
@@ -1,4 +1,4 @@
1
1
  import { convertSetCookieToCookie } from "./headers.mjs";
2
- import { getTestInstance } from "./test-instance.mjs";
3
2
  import { createHttpTestServer, getHttpTestInstance } from "./http-test-instance.mjs";
3
+ import { getTestInstance } from "./test-instance.mjs";
4
4
  export { convertSetCookieToCookie, createHttpTestServer, getHttpTestInstance, getTestInstance };
@@ -1,14 +1,13 @@
1
1
  import { Session, User } from "../types/models.mjs";
2
2
  import { Auth } from "../types/auth.mjs";
3
- import "../types/index.mjs";
4
3
  import "../index.mjs";
5
- import { AuthClient } from "../client/vanilla.mjs";
6
4
  import "../client/index.mjs";
7
- import { setCookieToHeader } from "../cookies/cookie-utils.mjs";
5
+ import { AuthClient } from "../client/vanilla.mjs";
8
6
  import "../cookies/index.mjs";
7
+ import { setCookieToHeader } from "../cookies/cookie-utils.mjs";
8
+ import "../types/index.mjs";
9
9
  import { Awaitable, BetterAuthClientOptions, BetterAuthOptions } from "@better-auth/core";
10
10
  import { SuccessContext } from "@better-fetch/fetch";
11
- //#region src/test-utils/test-instance.d.ts
12
11
  export declare function getTestInstance<O extends Partial<BetterAuthOptions>, C extends BetterAuthClientOptions>(options?: O | undefined, config?: {
13
12
  clientOptions?: C;
14
13
  port?: number;
@@ -53,5 +52,4 @@ export declare function getTestInstance<O extends Partial<BetterAuthOptions>, C
53
52
  sessionSetter: (headers: Headers) => (context: SuccessContext) => void;
54
53
  db: import("@better-auth/core/db/adapter").DBAdapter<BetterAuthOptions>;
55
54
  runWithUser: (email: string, password: string, fn: (headers: Headers) => Awaitable<void>) => Promise<void>;
56
- }>;
57
- //#endregion
55
+ }>;
@@ -1,23 +1,32 @@
1
- import { getAdapter } from "../db/adapter-kysely.mjs";
2
- import { getMigrations } from "../db/get-migration.mjs";
3
- import { getBaseURL, isDynamicBaseURLConfig } from "../utils/url.mjs";
4
- import { parseSetCookieHeader, setCookieToHeader } from "../cookies/cookie-utils.mjs";
5
1
  import { betterAuth } from "../auth/full.mjs";
6
2
  import { createAuthClient } from "../client/vanilla.mjs";
3
+ import { parseSetCookieHeader, setCookieToHeader } from "../cookies/cookie-utils.mjs";
4
+ import { getAdapter } from "../db/adapter-kysely.mjs";
5
+ import { getMigrations } from "../db/get-migration.mjs";
7
6
  import { bearer } from "../plugins/bearer/index.mjs";
7
+ import { getBaseURL, isDynamicBaseURLConfig } from "../utils/url.mjs";
8
8
  import { sql } from "kysely";
9
9
  import { AsyncLocalStorage } from "node:async_hooks";
10
10
  import { createHash, randomUUID } from "node:crypto";
11
11
  import { afterAll } from "vitest";
12
- //#region src/test-utils/test-instance.ts
12
+ // src/test-utils/test-instance.ts
13
13
  const cleanupSet = /* @__PURE__ */ new Set();
14
+ const mongodbDatabase = `ba_test_${randomUUID().replaceAll("-", "_")}`;
14
15
  const currentUserContextStorage = new AsyncLocalStorage();
15
- afterAll(async () => {
16
+ /**
17
+ * Runs the cleanup of every instance this file created, such as dropping its
18
+ * database. Each cleanup runs once, even if it throws, since it also closes
19
+ * the connection a retry would need.
20
+ *
21
+ * @internal
22
+ */
23
+ async function cleanupTestInstances() {
16
24
  for (const cleanup of cleanupSet) {
17
- await cleanup();
18
25
  cleanupSet.delete(cleanup);
26
+ await cleanup();
19
27
  }
20
- });
28
+ }
29
+ afterAll(cleanupTestInstances);
21
30
  const TEST_PASSWORD_HASH_PREFIX = "$test$sha256$";
22
31
  /**
23
32
  * Intentionally fast for tests
@@ -60,18 +69,19 @@ async function getTestInstance(options, config) {
60
69
  }
61
70
  return new Kysely({ dialect: new MysqlDialect({ pool: createPool(`${mysqlServerURL}/${mysqlDatabase}`) }) });
62
71
  }
63
- async function mongodbClient() {
72
+ async function getMongodb() {
64
73
  const { MongoClient } = await import("mongodb");
65
- const dbClient = async (connectionString, dbName) => {
66
- const client = new MongoClient(connectionString, {
67
- serverSelectionTimeoutMS: 2e3,
68
- connectTimeoutMS: 2e3
69
- });
70
- await client.connect();
71
- return client.db(dbName);
74
+ const client = new MongoClient("mongodb://127.0.0.1:27017", {
75
+ serverSelectionTimeoutMS: 2e3,
76
+ connectTimeoutMS: 2e3
77
+ });
78
+ await client.connect();
79
+ return {
80
+ client,
81
+ db: client.db(mongodbDatabase)
72
82
  };
73
- return await dbClient("mongodb://127.0.0.1:27017", "better-auth");
74
83
  }
84
+ const mongodb = testWith === "mongodb" ? await getMongodb() : void 0;
75
85
  const postgres = testWith === "postgres" ? await getPostgres() : void 0;
76
86
  const mysql = testWith === "mysql" ? await getMysql() : void 0;
77
87
  const sqlite = testWith === "sqlite" ? await getSqlite() : void 0;
@@ -91,7 +101,7 @@ async function getTestInstance(options, config) {
91
101
  db: postgres,
92
102
  type: "postgres",
93
103
  transaction: config?.transaction
94
- } : testWith === "mongodb" ? await Promise.all([mongodbClient(), await import("../adapters/mongodb-adapter/index.mjs")]).then(([db, { mongodbAdapter }]) => mongodbAdapter(db)) : mysql ? {
104
+ } : mongodb ? await import("../adapters/mongodb-adapter/index.mjs").then(({ mongodbAdapter }) => mongodbAdapter(mongodb.db)) : mysql ? {
95
105
  db: mysql,
96
106
  type: "mysql",
97
107
  transaction: config?.transaction
@@ -102,8 +112,12 @@ async function getTestInstance(options, config) {
102
112
  logger: { level: "debug" }
103
113
  };
104
114
  const cleanup = async () => {
105
- if (testWith === "mongodb") {
106
- await (await mongodbClient()).dropDatabase();
115
+ if (mongodb) {
116
+ try {
117
+ await mongodb.db.dropDatabase();
118
+ } finally {
119
+ await mongodb.client.close();
120
+ }
107
121
  return;
108
122
  }
109
123
  if (postgres) {
@@ -250,5 +264,4 @@ async function getTestInstance(options, config) {
250
264
  }
251
265
  };
252
266
  }
253
- //#endregion
254
- export { getTestInstance };
267
+ export { cleanupTestInstances, getTestInstance };
@@ -1,6 +1,5 @@
1
1
  import { PrettifyDeep, UnionToIntersection } from "./helper.mjs";
2
2
  import { Endpoint } from "better-call";
3
- //#region src/types/api.d.ts
4
3
  export type FilteredAPI<API> = Omit<API, API extends { [key in infer K]: Endpoint; } ? K extends string ? K extends "getSession" ? never : API[K]["options"]["metadata"] extends {
5
4
  isAction: false;
6
5
  } | {
@@ -22,5 +21,4 @@ export type InferSessionAPI<API> = API extends {
22
21
  response: PrettifyDeep<Awaited<ReturnType<E>>> | null;
23
22
  }> : Promise<PrettifyDeep<Awaited<ReturnType<E>>> | null> : Promise<Response>;
24
23
  } : never : never> : never;
25
- export type InferAPI<API> = InferSessionAPI<API> & FilteredAPI<API>;
26
- //#endregion
24
+ export type InferAPI<API> = InferSessionAPI<API> & FilteredAPI<API>;
@@ -1,10 +1,9 @@
1
+ import { router } from "../api/index.mjs";
1
2
  import { InferAPI } from "./api.mjs";
2
3
  import { InferPluginTypes, Session, User } from "./models.mjs";
3
4
  import { InferPluginContext, InferPluginErrorCodes } from "./plugins.mjs";
4
- import { router } from "../api/index.mjs";
5
5
  import { AuthContext, BetterAuthOptions } from "@better-auth/core";
6
6
  import { BASE_ERROR_CODES } from "@better-auth/core/error";
7
- //#region src/types/auth.d.ts
8
7
  export type Auth<Options extends BetterAuthOptions = BetterAuthOptions> = {
9
8
  handler: (request: Request) => Promise<Response>;
10
9
  /**
@@ -26,5 +25,4 @@ export type Auth<Options extends BetterAuthOptions = BetterAuthOptions> = {
26
25
  user: User<Options["user"], Options["plugins"]>;
27
26
  };
28
27
  } & InferPluginTypes<Options>;
29
- };
30
- //#endregion
28
+ };
@@ -1,4 +1,3 @@
1
- //#region src/types/helper.d.ts
2
1
  export type IsAny<T> = 0 extends 1 & T ? true : false;
3
2
  export type Prettify<T> = Omit<T, never>;
4
3
  export type PrettifyDeep<T> = { [K in keyof T]: T[K] extends ((...args: any[]) => any) ? T[K] : T[K] extends object ? T[K] extends Array<any> ? T[K] : T[K] extends Date ? T[K] : PrettifyDeep<T[K]> : T[K]; } & {};
@@ -21,5 +20,4 @@ export type ExtractPluginField<T, Field extends string> = IsAny<T> extends true
21
20
  * Walks a plugin tuple with tail-recursive accumulator (TS 4.5+),
22
21
  * extracting and intersecting the given field from each element.
23
22
  */
24
- export type InferPluginFieldFromTuple<T extends readonly unknown[], Field extends string, Acc = {}> = T extends readonly [infer Head, ...infer Tail] ? InferPluginFieldFromTuple<Tail, Field, Acc & ExtractPluginField<Head, Field>> : Acc;
25
- //#endregion
23
+ export type InferPluginFieldFromTuple<T extends readonly unknown[], Field extends string, Acc = {}> = T extends readonly [infer Head, ...infer Tail] ? InferPluginFieldFromTuple<Tail, Field, Acc & ExtractPluginField<Head, Field>> : Acc;
@@ -1,10 +1,10 @@
1
- import { ExtractPluginField, HasRequiredKeys, InferPluginFieldFromTuple, IsAny, OverrideMerge, Prettify, PrettifyDeep, RequiredKeysOf, StripEmptyObjects, UnionToIntersection } from "./helper.mjs";
2
1
  import { BetterAuthClientOptions, BetterAuthClientPlugin, ClientAtomListener, ClientStore, InferActions, InferAdditionalFromClient, InferClientAPI, InferErrorCodes, InferSessionFromClient, InferUserFromClient, IsSignal, SessionQueryParams } from "../client/types.mjs";
3
2
  import { DBAdapter, DBAdapterInstance, DBAdapterSchemaCreation, DBTransactionAdapter, JoinConfig, JoinOption, Where } from "./adapter.mjs";
4
3
  import { FilteredAPI, InferAPI, InferSessionAPI } from "./api.mjs";
4
+ import { Auth } from "./auth.mjs";
5
+ import { ExtractPluginField, HasRequiredKeys, InferPluginFieldFromTuple, IsAny, OverrideMerge, Prettify, PrettifyDeep, RequiredKeysOf, StripEmptyObjects, UnionToIntersection } from "./helper.mjs";
5
6
  import { Account, AdditionalSessionFieldsInput, AdditionalUserFieldsInput, InferPluginTypes, RateLimit, Session, User, Verification } from "./models.mjs";
6
7
  import { InferOptionSchema, InferPluginContext, InferPluginErrorCodes, InferPluginIDs } from "./plugins.mjs";
7
- import { Auth } from "./auth.mjs";
8
8
  import { BetterAuthAdvancedOptions, BetterAuthCookies, BetterAuthOptions, BetterAuthPlugin, BetterAuthRateLimitOptions, StoreIdentifierOption, UserProvisioningSource, ValidateUserInfoAction, ValidateUserInfoMethod, ValidateUserInfoOAuthInfo, ValidateUserInfoResult, ValidateUserInfoSSOInfo, ValidateUserInfoSource } from "@better-auth/core";
9
9
  export type * from "@better-auth/core/social-providers";
10
10
  export { type Account, type AdditionalSessionFieldsInput, type AdditionalUserFieldsInput, type Auth, type BetterAuthAdvancedOptions, type BetterAuthClientOptions, type BetterAuthClientPlugin, type BetterAuthCookies, type BetterAuthOptions, type BetterAuthPlugin, type BetterAuthRateLimitOptions, type ClientAtomListener, type ClientStore, type DBAdapter, type DBAdapterInstance, type DBAdapterSchemaCreation, type DBTransactionAdapter, type ExtractPluginField, FilteredAPI, type HasRequiredKeys, InferAPI, InferActions, InferAdditionalFromClient, InferClientAPI, InferErrorCodes, type InferOptionSchema, type InferPluginContext, type InferPluginErrorCodes, type InferPluginFieldFromTuple, type InferPluginIDs, type InferPluginTypes, InferSessionAPI, InferSessionFromClient, InferUserFromClient, type IsAny, IsSignal, type JoinConfig, type JoinOption, type OverrideMerge, type Prettify, type PrettifyDeep, type RateLimit, type RequiredKeysOf, type Session, SessionQueryParams, type StoreIdentifierOption, type StripEmptyObjects, type UnionToIntersection, type User, type UserProvisioningSource, type ValidateUserInfoAction, type ValidateUserInfoMethod, type ValidateUserInfoOAuthInfo, type ValidateUserInfoResult, type ValidateUserInfoSSOInfo, type ValidateUserInfoSource, type Verification, type Where };
@@ -1,9 +1,7 @@
1
1
  import { ExtractPluginField, InferPluginFieldFromTuple, UnionToIntersection } from "./helper.mjs";
2
2
  import { BetterAuthOptions } from "@better-auth/core";
3
3
  import { Account, InferDBFieldsFromOptionsInput, InferDBFieldsFromPluginsInput, RateLimit, Session as Session$1, User as User$1, Verification } from "@better-auth/core/db";
4
- //#region src/types/models.d.ts
5
4
  export type AdditionalUserFieldsInput<Options extends BetterAuthOptions> = InferDBFieldsFromPluginsInput<"user", Options["plugins"]> & InferDBFieldsFromOptionsInput<Options["user"]>;
6
5
  export type AdditionalSessionFieldsInput<Options extends BetterAuthOptions> = InferDBFieldsFromPluginsInput<"session", Options["plugins"]> & InferDBFieldsFromOptionsInput<Options["session"]>;
7
6
  export type InferPluginTypes<O extends BetterAuthOptions> = O["plugins"] extends readonly [unknown, ...unknown[]] ? InferPluginFieldFromTuple<O["plugins"], "$Infer"> : O["plugins"] extends Array<infer P> ? UnionToIntersection<ExtractPluginField<P, "$Infer">> : {};
8
- //#endregion
9
7
  export type { Account, RateLimit, Session$1 as Session, User$1 as User, Verification };
@@ -1,7 +1,6 @@
1
1
  import { ExtractPluginField, InferPluginFieldFromTuple, UnionToIntersection } from "./helper.mjs";
2
2
  import { AuthContext, BetterAuthOptions, BetterAuthPlugin } from "@better-auth/core";
3
3
  import { BetterAuthPluginDBSchema } from "@better-auth/core/db";
4
- //#region src/types/plugins.d.ts
5
4
  export type InferOptionSchema<S extends BetterAuthPluginDBSchema> = S extends Record<string, {
6
5
  fields: infer Fields;
7
6
  }> ? { [K in keyof S]?: {
@@ -14,5 +13,4 @@ type ExtractInitContext<P extends BetterAuthPlugin> = P["init"] extends ((...arg
14
13
  context?: infer C;
15
14
  } ? C extends Record<string, any> ? Omit<C, keyof AuthContext> : {} : {} : {};
16
15
  export type InferPluginContext<O extends BetterAuthOptions> = O["plugins"] extends Array<infer P> ? UnionToIntersection<P extends BetterAuthPlugin ? ExtractInitContext<P> : {}> : {};
17
- //#endregion
18
16
  export {};
@@ -1,4 +1,3 @@
1
- //#region src/utils/constants.ts
1
+ // src/utils/constants.ts
2
2
  const DEFAULT_SECRET = "better-auth-secret-12345678901234567890";
3
- //#endregion
4
3
  export { DEFAULT_SECRET };
@@ -1,6 +1,5 @@
1
- //#region src/utils/date.ts
1
+ // src/utils/date.ts
2
2
  const getDate = (span, unit = "ms") => {
3
3
  return new Date(Date.now() + (unit === "sec" ? span * 1e3 : span));
4
4
  };
5
- //#endregion
6
5
  export { getDate };
@@ -1,6 +1,6 @@
1
1
  import { utf8ToBytes } from "@noble/hashes/utils.js";
2
2
  import { keccak_256 } from "@noble/hashes/sha3.js";
3
- //#region src/utils/hashing.ts
3
+ // src/utils/hashing.ts
4
4
  /**
5
5
  * TS implementation of ERC-55 ("Mixed-case checksum address encoding") using @noble/hashes
6
6
  * @param address - The address to convert to a checksum address
@@ -14,5 +14,4 @@ function toChecksumAddress(address) {
14
14
  else ret += address[i];
15
15
  return ret;
16
16
  }
17
- //#endregion
18
17
  export { toChecksumAddress };
@@ -1,5 +1,5 @@
1
- import { StateData, generateGenericState, getAuthStateVerificationIdentifier, parseGenericState } from "../state.mjs";
2
1
  import { GenerateStateOptions, generateIdTokenNonce, generateState, parseState } from "../oauth2/state.mjs";
2
+ import { StateData, generateGenericState, getAuthStateVerificationIdentifier, parseGenericState } from "../state.mjs";
3
3
  import { HIDE_METADATA } from "./hide-metadata.mjs";
4
4
  import { getBaseURL, getHost, getHostFromSource, getOrigin, getProtocol, getProtocolFromSource, isDynamicBaseURLConfig, isRequestLike, matchesHostPattern, resolveBaseURL, resolveDynamicBaseURL, trimTrailingSlashes } from "./url.mjs";
5
5
  export { GenerateStateOptions, HIDE_METADATA, type StateData, generateGenericState, generateIdTokenNonce, generateState, getAuthStateVerificationIdentifier, getBaseURL, getHost, getHostFromSource, getOrigin, getProtocol, getProtocolFromSource, isDynamicBaseURLConfig, isRequestLike, matchesHostPattern, parseGenericState, parseState, resolveBaseURL, resolveDynamicBaseURL, trimTrailingSlashes };
@@ -1,6 +1,5 @@
1
- //#region src/utils/is-atom.ts
1
+ // src/utils/is-atom.ts
2
2
  function isAtom(value) {
3
3
  return typeof value === "object" && value !== null && "get" in value && typeof value.get === "function" && "lc" in value && typeof value.lc === "number";
4
4
  }
5
- //#endregion
6
5
  export { isAtom };
@@ -1,6 +1,5 @@
1
- //#region src/utils/is-promise.ts
1
+ // src/utils/is-promise.ts
2
2
  function isPromise(obj) {
3
3
  return !!obj && (typeof obj === "object" || typeof obj === "function") && typeof obj.then === "function";
4
4
  }
5
- //#endregion
6
5
  export { isPromise };
@@ -1,4 +1,4 @@
1
- //#region src/utils/middleware-response.ts
1
+ // src/utils/middleware-response.ts
2
2
  const middlewareResponse = ({ message, status, code }) => ({ response: new Response(JSON.stringify({
3
3
  message,
4
4
  code
@@ -6,5 +6,4 @@ const middlewareResponse = ({ message, status, code }) => ({ response: new Respo
6
6
  status,
7
7
  headers: { "Content-Type": "application/json" }
8
8
  }) });
9
- //#endregion
10
9
  export { middlewareResponse };
@@ -1,6 +1,6 @@
1
1
  import { runWithTransaction } from "@better-auth/core/context";
2
2
  import { APIError, BASE_ERROR_CODES } from "@better-auth/core/error";
3
- //#region src/utils/password.ts
3
+ // src/utils/password.ts
4
4
  function assertPasswordNotTooShort(ctx, password) {
5
5
  if (password.length < ctx.context.password.config.minPasswordLength) {
6
6
  ctx.context.logger.warn("Password is too short");
@@ -74,5 +74,4 @@ async function shouldRequirePassword(ctx, userId, allowPasswordless) {
74
74
  const credentialAccount = await ctx.context.internalAdapter.findCredentialAccount(userId);
75
75
  return Boolean(credentialAccount?.password);
76
76
  }
77
- //#endregion
78
77
  export { assertPasswordNotTooLong, assertPasswordNotTooShort, checkPassword, resetCredentialPassword, shouldRequirePassword, validatePassword };
@@ -1,5 +1,5 @@
1
1
  import { isAPIError } from "./is-api-error.mjs";
2
- //#region src/utils/plugin-helper.ts
2
+ // src/utils/plugin-helper.ts
3
3
  const getEndpointResponse = async (ctx) => {
4
4
  const returned = ctx.context.returned;
5
5
  if (!returned) return null;
@@ -10,5 +10,4 @@ const getEndpointResponse = async (ctx) => {
10
10
  if (isAPIError(returned)) return null;
11
11
  return returned;
12
12
  };
13
- //#endregion
14
13
  export { getEndpointResponse };
@@ -1,4 +1,4 @@
1
- //#region src/utils/request.ts
1
+ // src/utils/request.ts
2
2
  function safeCloneRequest(request) {
3
3
  if (!request) return;
4
4
  try {
@@ -19,5 +19,4 @@ function safeCloneRequest(request) {
19
19
  });
20
20
  }
21
21
  }
22
- //#endregion
23
22
  export { safeCloneRequest };
@@ -1,4 +1,4 @@
1
- //#region src/utils/shim.ts
1
+ // src/utils/shim.ts
2
2
  const shimContext = (originalObject, newContext) => {
3
3
  const shimmedObj = {};
4
4
  for (const [key, value] of Object.entries(originalObject)) {
@@ -18,5 +18,4 @@ const shimContext = (originalObject, newContext) => {
18
18
  }
19
19
  return shimmedObj;
20
20
  };
21
- //#endregion
22
21
  export { shimContext };
@@ -1,4 +1,3 @@
1
- //#region src/utils/time.d.ts
2
1
  type Years = "years" | "year" | "yrs" | "yr" | "y";
3
2
  type Months = "months" | "month" | "mo";
4
3
  type Weeks = "weeks" | "week" | "w";
@@ -44,5 +43,4 @@ export declare function ms(value: TimeString): number;
44
43
  * sec("2 hours ago") // -7200
45
44
  */
46
45
  export declare function sec(value: TimeString): number;
47
- //#endregion
48
46
  export {};
@@ -1,4 +1,4 @@
1
- //#region src/utils/time.ts
1
+ // src/utils/time.ts
2
2
  const SEC = 1e3;
3
3
  const MIN = SEC * 60;
4
4
  const HOUR = MIN * 60;
@@ -94,5 +94,4 @@ function ms(value) {
94
94
  function sec(value) {
95
95
  return Math.round(parse(value) / 1e3);
96
96
  }
97
- //#endregion
98
97
  export { ms, sec };
@@ -1,5 +1,4 @@
1
1
  import { BaseURLConfig, DynamicBaseURLConfig } from "@better-auth/core";
2
- //#region src/utils/url.d.ts
3
2
  export declare function trimTrailingSlashes(value: string): string;
4
3
  export declare function getBaseURL(url?: string, path?: string, request?: Request, loadEnv?: boolean, trustedProxyHeaders?: boolean | undefined): string | undefined;
5
4
  export declare function getOrigin(url: string): string | null;
@@ -72,5 +71,4 @@ export declare function resolveDynamicBaseURL(config: DynamicBaseURLConfig, sour
72
71
  * @param trustedProxyHeaders Whether to trust proxy headers (for legacy behavior)
73
72
  * @returns The resolved base URL with path
74
73
  */
75
- export declare function resolveBaseURL(config: BaseURLConfig | undefined, basePath: string, source?: Request | Headers, loadEnv?: boolean, trustedProxyHeaders?: boolean): string | undefined;
76
- //#endregion
74
+ export declare function resolveBaseURL(config: BaseURLConfig | undefined, basePath: string, source?: Request | Headers, loadEnv?: boolean, trustedProxyHeaders?: boolean): string | undefined;
@@ -1,7 +1,7 @@
1
1
  import { wildcardMatch } from "./wildcard.mjs";
2
2
  import { env } from "@better-auth/core/env";
3
3
  import { BetterAuthError } from "@better-auth/core/error";
4
- //#region src/utils/url.ts
4
+ // src/utils/url.ts
5
5
  const SLASH_CHAR_CODE = "/".charCodeAt(0);
6
6
  /**
7
7
  * Minimal loopback check for dev scheme inference only. Reachable from
@@ -234,5 +234,4 @@ function resolveBaseURL(config, basePath, source, loadEnv, trustedProxyHeaders)
234
234
  if (typeof config === "string") return getBaseURL(config, basePath, request, loadEnv, trustedProxyHeaders);
235
235
  return getBaseURL(void 0, basePath, request, loadEnv, trustedProxyHeaders);
236
236
  }
237
- //#endregion
238
237
  export { getBaseURL, getHost, getHostFromSource, getOrigin, getProtocol, getProtocolFromSource, isDynamicBaseURLConfig, isRequestLike, matchesHostPattern, resolveBaseURL, resolveDynamicBaseURL, trimTrailingSlashes };
@@ -1,5 +1,5 @@
1
1
  import { APIError } from "@better-auth/core/error";
2
- //#region src/utils/validate-user-info.ts
2
+ // src/utils/validate-user-info.ts
3
3
  function assertValidUserInfoSource(source) {
4
4
  if (!source?.method) throw new APIError("FORBIDDEN", {
5
5
  code: "validation_source_missing",
@@ -40,5 +40,4 @@ async function assertValidUserInfo(ctx, data) {
40
40
  message: result.errorDescription || result.error
41
41
  });
42
42
  }
43
- //#endregion
44
43
  export { assertValidUserInfo, assertValidUserInfoSource };
@@ -1,4 +1,4 @@
1
- //#region src/utils/wildcard.ts
1
+ // src/utils/wildcard.ts
2
2
  /**
3
3
  * Escapes a character if it has a special meaning in regular expressions
4
4
  * and returns the character as is if it doesn't
@@ -104,5 +104,4 @@ function wildcardMatch(pattern, options) {
104
104
  fn.regexp = regexp;
105
105
  return fn;
106
106
  }
107
- //#endregion
108
107
  export { wildcardMatch };
package/dist/version.mjs CHANGED
@@ -1,5 +1,4 @@
1
1
  import { version } from "./package.mjs";
2
- //#region src/version.ts
2
+ // src/version.ts
3
3
  const PACKAGE_VERSION = version;
4
- //#endregion
5
4
  export { PACKAGE_VERSION };