better-auth 1.7.21 → 1.7.22

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 +5 -6
  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,16 +1,17 @@
1
- import { getSessionDefaultFields, parseSessionOutput, parseUserOutput } from "./schema.mjs";
2
1
  import { getDate } from "../utils/date.mjs";
3
2
  import { assertValidUserInfo, assertValidUserInfoSource } from "../utils/validate-user-info.mjs";
3
+ import { getSessionDefaultFields, parseSessionOutput, parseUserOutput } from "./schema.mjs";
4
4
  import { getStorageOption, processIdentifier } from "./verification-token-storage.mjs";
5
5
  import { getWithHooks } from "./with-hooks.mjs";
6
6
  import { getCurrentAdapter, getCurrentAuthEndpointContext, queueAfterTransactionHook, runWithTransaction, tryGetCurrentAuthEndpointContext } from "@better-auth/core/context";
7
+ import { isWorkerd } from "@better-auth/core/env";
7
8
  import { APIError, BetterAuthError } from "@better-auth/core/error";
8
9
  import { generateId } from "@better-auth/core/utils/id";
9
10
  import { safeJSONParse } from "@better-auth/core/utils/json";
10
11
  import { encodeDeterministicId } from "@better-auth/core/db/internal";
11
12
  import { getIP } from "@better-auth/core/utils/ip";
12
13
  import { createHash } from "@better-auth/utils/hash";
13
- //#region src/db/internal-adapter.ts
14
+ // src/db/internal-adapter.ts
14
15
  function getTTLSeconds(expiresAt, now = Date.now()) {
15
16
  const expiresMs = typeof expiresAt === "number" ? expiresAt : expiresAt.getTime();
16
17
  return Math.max(Math.floor((expiresMs - now) / 1e3), 0);
@@ -116,6 +117,7 @@ const createInternalAdapter = (adapter, ctx) => {
116
117
  } });
117
118
  }
118
119
  async function withVerificationConsumeLock(key, fn) {
120
+ if (isWorkerd()) return fn();
119
121
  const previous = verificationConsumeLocks.get(key) ?? Promise.resolve();
120
122
  let release;
121
123
  const current = new Promise((resolve) => {
@@ -878,19 +880,29 @@ const createInternalAdapter = (adapter, ctx) => {
878
880
  field: "id",
879
881
  value: latest.id
880
882
  }], async () => {
881
- const row = await txAdapter.consumeOne({
883
+ await txAdapter.deleteMany({
884
+ model: "verification",
885
+ where: [
886
+ ...where,
887
+ {
888
+ field: "id",
889
+ operator: "ne",
890
+ value: latest.id
891
+ },
892
+ {
893
+ field: "createdAt",
894
+ operator: "lte",
895
+ value: latest.createdAt
896
+ }
897
+ ]
898
+ });
899
+ return txAdapter.consumeOne({
882
900
  model: "verification",
883
901
  where: [{
884
902
  field: "id",
885
903
  value: latest.id
886
904
  }]
887
905
  });
888
- if (!row) return null;
889
- await txAdapter.deleteMany({
890
- model: "verification",
891
- where
892
- });
893
- return row;
894
906
  }, latest);
895
907
  }));
896
908
  for (const stored of identifiersToTry) {
@@ -999,5 +1011,4 @@ const createInternalAdapter = (adapter, ctx) => {
999
1011
  refreshUserSessions
1000
1012
  };
1001
1013
  };
1002
- //#endregion
1003
1014
  export { createInternalAdapter };
@@ -1,7 +1,6 @@
1
1
  import { User } from "../types/models.mjs";
2
2
  import "../types/index.mjs";
3
3
  import { GenericEndpointContext } from "@better-auth/core";
4
- //#region src/db/revoke-unproven-account-access.d.ts
5
4
  /**
6
5
  * Strip every account link and session a pre-existing account accrued before
7
6
  * control of its email was proven.
@@ -16,5 +15,4 @@ import { GenericEndpointContext } from "@better-auth/core";
16
15
  *
17
16
  * @param userId - The pre-existing, not-yet-verified user being promoted.
18
17
  */
19
- export declare function revokeUnprovenAccountAccess(ctx: GenericEndpointContext, userId: string): Promise<User | null>;
20
- //#endregion
18
+ export declare function revokeUnprovenAccountAccess(ctx: GenericEndpointContext, userId: string): Promise<User | null>;
@@ -1,5 +1,5 @@
1
1
  import { BetterAuthError } from "@better-auth/core/error";
2
- //#region src/db/revoke-unproven-account-access.ts
2
+ // src/db/revoke-unproven-account-access.ts
3
3
  const cleanupLockExpiresInMs = 5e3;
4
4
  const cleanupLockWaitMs = 2e3;
5
5
  const cleanupLockPollMs = 250;
@@ -54,5 +54,4 @@ async function revokeUnprovenAccountAccess(ctx, userId) {
54
54
  await ctx.context.internalAdapter.deleteVerificationByIdentifier(lockIdentifier).catch(() => {});
55
55
  }
56
56
  }
57
- //#endregion
58
57
  export { revokeUnprovenAccountAccess };
@@ -2,7 +2,6 @@ import { Account, Session as Session$1, User as User$1 } from "../types/models.m
2
2
  import "../types/index.mjs";
3
3
  import { BetterAuthOptions } from "@better-auth/core";
4
4
  import { BetterAuthPluginDBSchema, DBFieldAttribute } from "@better-auth/core/db";
5
- //#region src/db/schema.d.ts
6
5
  export declare function parseUserOutput<T extends User$1>(options: BetterAuthOptions, user: T): T;
7
6
  /**
8
7
  * Builds a synthetic user object that matches the shape of a real user
@@ -57,5 +56,4 @@ export declare function mergeSchema<S extends BetterAuthPluginDBSchema>(schema:
57
56
  fields?: {
58
57
  [P: string]: string;
59
58
  } | undefined;
60
- } | undefined; } | undefined): S;
61
- //#endregion
59
+ } | undefined; } | undefined): S;
@@ -1,7 +1,7 @@
1
1
  import { getAuthTables } from "@better-auth/core/db";
2
2
  import { APIError, BASE_ERROR_CODES } from "@better-auth/core/error";
3
3
  import { filterOutputFields } from "@better-auth/core/utils/db";
4
- //#region src/db/schema.ts
4
+ // src/db/schema.ts
5
5
  const cache = /* @__PURE__ */ new WeakMap();
6
6
  function getFields(options, modelName, mode) {
7
7
  const cacheKey = `${modelName}:${mode}`;
@@ -169,5 +169,4 @@ function mergeSchema(schema, newSchema) {
169
169
  }
170
170
  return merged;
171
171
  }
172
- //#endregion
173
172
  export { buildSyntheticUserOutput, getSessionDefaultFields, mergeSchema, parseAccountInput, parseAccountOutput, parseAdditionalUserInput, parseAdditionalUserInputFromProviderProfile, parseInputData, parseSessionInput, parseSessionOutput, parseUserInput, parseUserOutput };
@@ -1,6 +1,5 @@
1
1
  import { DBFieldAttribute } from "@better-auth/core/db";
2
2
  import * as z from "zod";
3
- //#region src/db/to-zod.d.ts
4
3
  export declare function toZodSchema<Fields extends Record<string, DBFieldAttribute | never>, IsClientSide extends boolean>({ fields, isClientSide }: {
5
4
  fields: Fields;
6
5
  /**
@@ -29,5 +28,4 @@ type GetSchemaForSide<isClientSide extends boolean, Field extends DBFieldAttribu
29
28
  returned: false;
30
29
  } ? never : Schema;
31
30
  type RemoveNeverProps<T> = { [K in keyof T as [T[K]] extends [never] ? never : K]: T[K]; };
32
- //#endregion
33
31
  export {};
@@ -1,5 +1,5 @@
1
1
  import * as z from "zod";
2
- //#region src/db/to-zod.ts
2
+ // src/db/to-zod.ts
3
3
  /**
4
4
  * Static lookup keeps `zod` tree-shakeable. `z[field.type]()` forces bundlers
5
5
  * to retain every `zod` export, including all locales.
@@ -29,5 +29,4 @@ function toZodSchema({ fields, isClientSide }) {
29
29
  }, {});
30
30
  return z.object(zodFields);
31
31
  }
32
- //#endregion
33
32
  export { toZodSchema };
@@ -1,6 +1,6 @@
1
1
  import { base64Url } from "@better-auth/utils/base64";
2
2
  import { createHash } from "@better-auth/utils/hash";
3
- //#region src/db/verification-token-storage.ts
3
+ // src/db/verification-token-storage.ts
4
4
  const defaultKeyHasher = async (identifier) => {
5
5
  const hash = await createHash("SHA-256").digest(new TextEncoder().encode(identifier));
6
6
  return base64Url.encode(new Uint8Array(hash), { padding: false });
@@ -21,5 +21,4 @@ function getStorageOption(identifier, config) {
21
21
  }
22
22
  return config;
23
23
  }
24
- //#endregion
25
24
  export { getStorageOption, processIdentifier };
@@ -1,7 +1,6 @@
1
1
  import { BetterAuthOptions } from "@better-auth/core";
2
2
  import { BaseModelNames } from "@better-auth/core/db";
3
3
  import { DBAdapter, Where } from "@better-auth/core/db/adapter";
4
- //#region src/db/with-hooks.d.ts
5
4
  export type DatabaseHooksEntry = {
6
5
  source: string;
7
6
  hooks: Exclude<BetterAuthOptions["databaseHooks"], undefined>;
@@ -31,5 +30,4 @@ export declare function getWithHooks(adapter: DBAdapter<BetterAuthOptions>, ctx:
31
30
  executeMainFn?: boolean;
32
31
  } | undefined) => Promise<any>;
33
32
  consumeOneWithHooks: <T extends Record<string, any>>(model: BaseModelNames, hookWhere: Where[], consumeFn: () => Promise<T | null>, preSnapshot?: T | null) => Promise<T | null>;
34
- };
35
- //#endregion
33
+ };
@@ -1,6 +1,6 @@
1
1
  import { getCurrentAdapter, queueAfterTransactionHook, tryGetCurrentAuthEndpointContext } from "@better-auth/core/context";
2
2
  import { ATTR_CONTEXT, ATTR_DB_COLLECTION_NAME, ATTR_HOOK_TYPE, createWithSpan } from "@better-auth/core/instrumentation";
3
- //#region src/db/with-hooks.ts
3
+ // src/db/with-hooks.ts
4
4
  function getWithHooks(adapter, ctx) {
5
5
  const withSpan = createWithSpan(ctx.options);
6
6
  const hooksEntries = ctx.hooks;
@@ -251,5 +251,4 @@ function getWithHooks(adapter, ctx) {
251
251
  consumeOneWithHooks
252
252
  };
253
253
  }
254
- //#endregion
255
254
  export { getWithHooks };
package/dist/index.d.mts CHANGED
@@ -5,8 +5,8 @@ import { FilteredAPI, InferAPI, InferSessionAPI } from "./types/api.mjs";
5
5
  import { Account, AdditionalSessionFieldsInput, AdditionalUserFieldsInput, InferPluginTypes, RateLimit, Session, User, Verification } from "./types/models.mjs";
6
6
  import { InferOptionSchema, InferPluginContext, InferPluginErrorCodes, InferPluginIDs } from "./types/plugins.mjs";
7
7
  import { Auth } from "./types/auth.mjs";
8
- import { BetterAuthAdvancedOptions, BetterAuthCookies, BetterAuthOptions, BetterAuthPlugin, BetterAuthRateLimitOptions, StoreIdentifierOption, UserProvisioningSource, ValidateUserInfoAction, ValidateUserInfoMethod, ValidateUserInfoOAuthInfo, ValidateUserInfoResult, ValidateUserInfoSSOInfo, ValidateUserInfoSource } from "./types/index.mjs";
9
8
  import { betterAuth } from "./auth/full.mjs";
9
+ import { BetterAuthAdvancedOptions, BetterAuthCookies, BetterAuthOptions, BetterAuthPlugin, BetterAuthRateLimitOptions, StoreIdentifierOption, UserProvisioningSource, ValidateUserInfoAction, ValidateUserInfoMethod, ValidateUserInfoOAuthInfo, ValidateUserInfoResult, ValidateUserInfoSSOInfo, ValidateUserInfoSource } from "./types/index.mjs";
10
10
  import { StateData, generateGenericState, getAuthStateVerificationIdentifier, parseGenericState } from "./state.mjs";
11
11
  import { GenerateStateOptions, generateIdTokenNonce, generateState, parseState } from "./oauth2/state.mjs";
12
12
  import { HIDE_METADATA } from "./utils/hide-metadata.mjs";
package/dist/index.mjs CHANGED
@@ -2,8 +2,8 @@ import { getBaseURL, getHost, getHostFromSource, getOrigin, getProtocol, getProt
2
2
  import { generateGenericState, getAuthStateVerificationIdentifier, parseGenericState } from "./state.mjs";
3
3
  import { generateIdTokenNonce, generateState, parseState } from "./oauth2/state.mjs";
4
4
  import { HIDE_METADATA } from "./utils/hide-metadata.mjs";
5
- import { APIError } from "./api/index.mjs";
6
5
  import { betterAuth } from "./auth/full.mjs";
6
+ import { APIError } from "./api/index.mjs";
7
7
  import { getCurrentAdapter } from "@better-auth/core/context";
8
8
  import { createTelemetry, getTelemetryAuthConfig } from "@better-auth/telemetry";
9
9
  export * from "@better-auth/core";
@@ -1,4 +1,4 @@
1
- //#region src/integrations/cookie-plugin-guard.ts
1
+ // src/integrations/cookie-plugin-guard.ts
2
2
  /**
3
3
  * Warns when a cookie integration plugin is not effectively last.
4
4
  *
@@ -14,5 +14,4 @@ function warnIfCookiePluginNotLast(ctx, pluginId) {
14
14
  if (!plugins.slice(index + 1).some((p) => p.hooks && Array.isArray(p.hooks.after) && p.hooks.after.length > 0)) return;
15
15
  ctx.logger.warn(`[better-auth] Cookie integration plugin "${pluginId}" should be placed last in the plugins array. Plugins with \`hooks.after\` running after it may set cookies that are not forwarded to the framework cookie store. Move your cookie integration plugin to the end of the \`plugins\` array to avoid missing \`Set-Cookie\` headers.`);
16
16
  }
17
- //#endregion
18
17
  export { warnIfCookiePluginNotLast };
@@ -1,4 +1,3 @@
1
- //#region src/integrations/next-js.d.ts
2
1
  export declare function toNextJsHandler(auth: {
3
2
  handler: (request: Request) => Promise<Response>;
4
3
  } | ((request: Request) => Promise<Response>)): {
@@ -21,5 +20,4 @@ export declare const nextCookies: () => {
21
20
  handler: import("better-call").Middleware<import("better-call").MiddlewareOptions, (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>>;
22
21
  }[];
23
22
  };
24
- };
25
- //#endregion
23
+ };
@@ -1,9 +1,9 @@
1
- import { parseSetCookieHeader, toCookieOptions } from "../cookies/cookie-utils.mjs";
2
1
  import { setShouldSkipSessionRefresh } from "../api/state/should-session-refresh.mjs";
2
+ import { parseSetCookieHeader, toCookieOptions } from "../cookies/cookie-utils.mjs";
3
3
  import { PACKAGE_VERSION } from "../version.mjs";
4
4
  import { warnIfCookiePluginNotLast } from "./cookie-plugin-guard.mjs";
5
5
  import { createAuthMiddleware } from "@better-auth/core/api";
6
- //#region src/integrations/next-js.ts
6
+ // src/integrations/next-js.ts
7
7
  function toNextJsHandler(auth) {
8
8
  const handler = async (request) => {
9
9
  return "handler" in auth ? auth.handler(request) : auth(request);
@@ -101,5 +101,4 @@ const nextCookies = () => {
101
101
  }
102
102
  };
103
103
  };
104
- //#endregion
105
104
  export { nextCookies, toNextJsHandler };
@@ -1,9 +1,7 @@
1
1
  import { Auth } from "../types/auth.mjs";
2
2
  import "../types/index.mjs";
3
3
  import { IncomingHttpHeaders } from "node:http";
4
- //#region src/integrations/node.d.ts
5
4
  export declare const toNodeHandler: (auth: {
6
5
  handler: Auth["handler"];
7
6
  } | Auth["handler"]) => (req: import("node:http").IncomingMessage, res: import("node:http").ServerResponse) => Promise<void>;
8
- export declare function fromNodeHeaders(nodeHeaders: IncomingHttpHeaders): Headers;
9
- //#endregion
7
+ export declare function fromNodeHeaders(nodeHeaders: IncomingHttpHeaders): Headers;
@@ -1,5 +1,5 @@
1
1
  import { toNodeHandler as toNodeHandler$1 } from "better-call/node";
2
- //#region src/integrations/node.ts
2
+ // src/integrations/node.ts
3
3
  const toNodeHandler = (auth) => {
4
4
  return "handler" in auth ? toNodeHandler$1(auth.handler) : toNodeHandler$1(auth);
5
5
  };
@@ -11,5 +11,4 @@ function fromNodeHeaders(nodeHeaders) {
11
11
  }
12
12
  return webHeaders;
13
13
  }
14
- //#endregion
15
14
  export { fromNodeHeaders, toNodeHandler };
@@ -1,4 +1,3 @@
1
- //#region src/integrations/solid-start.d.ts
2
1
  export declare function toSolidStartHandler(auth: {
3
2
  handler: (request: Request) => Promise<Response>;
4
3
  } | ((request: Request) => Promise<Response>)): {
@@ -17,5 +16,4 @@ export declare function toSolidStartHandler(auth: {
17
16
  DELETE: (event: {
18
17
  request: Request;
19
18
  }) => Promise<Response>;
20
- };
21
- //#endregion
19
+ };
@@ -1,4 +1,4 @@
1
- //#region src/integrations/solid-start.ts
1
+ // src/integrations/solid-start.ts
2
2
  function toSolidStartHandler(auth) {
3
3
  const handler = async (event) => {
4
4
  return "handler" in auth ? auth.handler(event.request) : auth(event.request);
@@ -11,5 +11,4 @@ function toSolidStartHandler(auth) {
11
11
  DELETE: handler
12
12
  };
13
13
  }
14
- //#endregion
15
14
  export { toSolidStartHandler };
@@ -1,6 +1,5 @@
1
1
  import { BetterAuthOptions } from "../types/index.mjs";
2
2
  import { RequestEvent } from "@sveltejs/kit";
3
- //#region src/integrations/svelte-kit.d.ts
4
3
  export declare const toSvelteKitHandler: (auth: {
5
4
  handler: (request: Request) => Response | Promise<Response>;
6
5
  options: BetterAuthOptions;
@@ -26,5 +25,4 @@ export declare const sveltekitCookies: (getRequestEvent: () => RequestEvent<any,
26
25
  handler: import("better-call").Middleware<import("better-call").MiddlewareOptions, (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>>;
27
26
  }[];
28
27
  };
29
- };
30
- //#endregion
28
+ };
@@ -2,7 +2,7 @@ import { parseSetCookieHeader, toCookieOptions } from "../cookies/cookie-utils.m
2
2
  import { PACKAGE_VERSION } from "../version.mjs";
3
3
  import { warnIfCookiePluginNotLast } from "./cookie-plugin-guard.mjs";
4
4
  import { createAuthMiddleware } from "@better-auth/core/api";
5
- //#region src/integrations/svelte-kit.ts
5
+ // src/integrations/svelte-kit.ts
6
6
  const toSvelteKitHandler = (auth) => {
7
7
  return (event) => auth.handler(event.request);
8
8
  };
@@ -53,5 +53,4 @@ const sveltekitCookies = (getRequestEvent) => {
53
53
  }] }
54
54
  };
55
55
  };
56
- //#endregion
57
56
  export { isAuthPath, svelteKitHandler, sveltekitCookies, toSvelteKitHandler };
@@ -1,4 +1,3 @@
1
- //#region src/integrations/tanstack-start-solid.d.ts
2
1
  /**
3
2
  * TanStack Start cookie plugin for Solid.js.
4
3
  *
@@ -25,5 +24,4 @@ export declare const tanstackStartCookies: () => {
25
24
  handler: import("better-call").Middleware<import("better-call").MiddlewareOptions, (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>>;
26
25
  }[];
27
26
  };
28
- };
29
- //#endregion
27
+ };
@@ -2,7 +2,7 @@ import { parseSetCookieHeader, toCookieOptions } from "../cookies/cookie-utils.m
2
2
  import { PACKAGE_VERSION } from "../version.mjs";
3
3
  import { warnIfCookiePluginNotLast } from "./cookie-plugin-guard.mjs";
4
4
  import { createAuthMiddleware } from "@better-auth/core/api";
5
- //#region src/integrations/tanstack-start-solid.ts
5
+ // src/integrations/tanstack-start-solid.ts
6
6
  /**
7
7
  * TanStack Start cookie plugin for Solid.js.
8
8
  *
@@ -53,5 +53,4 @@ const tanstackStartCookies = () => {
53
53
  }] }
54
54
  };
55
55
  };
56
- //#endregion
57
56
  export { tanstackStartCookies };
@@ -1,4 +1,3 @@
1
- //#region src/integrations/tanstack-start.d.ts
2
1
  /**
3
2
  * TanStack Start cookie plugin for React.
4
3
  *
@@ -25,5 +24,4 @@ export declare const tanstackStartCookies: () => {
25
24
  handler: import("better-call").Middleware<import("better-call").MiddlewareOptions, (inputContext: import("better-call").MiddlewareInputContext<import("better-call").MiddlewareOptions>) => Promise<void>>;
26
25
  }[];
27
26
  };
28
- };
29
- //#endregion
27
+ };
@@ -2,7 +2,7 @@ import { parseSetCookieHeader, toCookieOptions } from "../cookies/cookie-utils.m
2
2
  import { PACKAGE_VERSION } from "../version.mjs";
3
3
  import { warnIfCookiePluginNotLast } from "./cookie-plugin-guard.mjs";
4
4
  import { createAuthMiddleware } from "@better-auth/core/api";
5
- //#region src/integrations/tanstack-start.ts
5
+ // src/integrations/tanstack-start.ts
6
6
  /**
7
7
  * TanStack Start cookie plugin for React.
8
8
  *
@@ -53,5 +53,4 @@ const tanstackStartCookies = () => {
53
53
  }] }
54
54
  };
55
55
  };
56
- //#endregion
57
56
  export { tanstackStartCookies };
@@ -1,5 +1,5 @@
1
1
  import { APIError, BASE_ERROR_CODES, BetterAuthError } from "@better-auth/core/error";
2
- //#region src/oauth2/account-key.ts
2
+ // src/oauth2/account-key.ts
3
3
  /**
4
4
  * Exposes a provider-declared profile as the raw claim record used by
5
5
  * provisioning hooks. Provider profile interfaces are object-shaped but do
@@ -39,5 +39,4 @@ async function resolveOAuthAccountKeyForAPI(provider, tokens, profile) {
39
39
  throw APIError.from("UNAUTHORIZED", BASE_ERROR_CODES.FAILED_TO_GET_USER_INFO);
40
40
  }
41
41
  }
42
- //#endregion
43
42
  export { resolveOAuthAccountKey, resolveOAuthAccountKeyForAPI, toOAuthProfileRecord };
@@ -2,7 +2,7 @@ import { resolveOAuthAccountKey, toOAuthProfileRecord } from "./account-key.mjs"
2
2
  import { OAUTH_CALLBACK_ERROR_CODES } from "./errors.mjs";
3
3
  import { getOAuthCallbackPath } from "./utils.mjs";
4
4
  import { safeJSONParse } from "@better-auth/core/utils/json";
5
- //#region src/oauth2/callback.ts
5
+ // src/oauth2/callback.ts
6
6
  /**
7
7
  * Turns a provider callback into a verified identity. It checks that the
8
8
  * callback answers this authorization request, exchanges the code, and
@@ -64,5 +64,4 @@ async function exchangeOAuthCallback(ctx, provider, callback) {
64
64
  accountKey
65
65
  };
66
66
  }
67
- //#endregion
68
67
  export { exchangeOAuthCallback };
@@ -1,5 +1,5 @@
1
1
  import { appendQueryParams } from "@better-auth/core/utils/url";
2
- //#region src/oauth2/errors.ts
2
+ // src/oauth2/errors.ts
3
3
  /**
4
4
  * Error codes used in OAuth callback redirects (`?error=<code>`). These are
5
5
  * URL-safe strings, not API error objects. Some also serve as the OAuth seam's
@@ -45,5 +45,4 @@ function redirectOnError(ctx, errorURL, error, description) {
45
45
  function missingEmailLogMessage(providerId, options) {
46
46
  return `${options?.source === "generic" ? `Generic OAuth provider "${providerId}"` : `Provider "${providerId}"`} did not return an email${options?.source === "id_token" ? " in the id token" : ""}. Either request the provider's email scope, or create a placeholder via \`mapProfileToUser\`. See ${HANDLING_DOCS_URL}`;
47
47
  }
48
- //#endregion
49
48
  export { OAUTH_CALLBACK_ERROR_CODES, missingEmailLogMessage, redirectOnError };
@@ -1,5 +1,5 @@
1
- import { GenerateStateOptions, generateIdTokenNonce, generateState, parseState } from "./state.mjs";
2
1
  import { applyUpdateUserInfoOnLink, handleOAuthUserInfo, linkOAuthAccount } from "./link-account.mjs";
2
+ import { GenerateStateOptions, generateIdTokenNonce, generateState, parseState } from "./state.mjs";
3
3
  import { decryptOAuthToken, getOAuthCallbackPath, setTokenUtil } from "./utils.mjs";
4
4
  export * from "@better-auth/core/oauth2";
5
5
  export { GenerateStateOptions, applyUpdateUserInfoOnLink, decryptOAuthToken, generateIdTokenNonce, generateState, getOAuthCallbackPath, handleOAuthUserInfo, linkOAuthAccount, parseState, setTokenUtil };
@@ -1,5 +1,5 @@
1
- import { decryptOAuthToken, getOAuthCallbackPath, setTokenUtil } from "./utils.mjs";
2
1
  import { applyUpdateUserInfoOnLink, handleOAuthUserInfo, linkOAuthAccount } from "./link-account.mjs";
3
2
  import { generateIdTokenNonce, generateState, parseState } from "./state.mjs";
3
+ import { decryptOAuthToken, getOAuthCallbackPath, setTokenUtil } from "./utils.mjs";
4
4
  export * from "@better-auth/core/oauth2";
5
5
  export { applyUpdateUserInfoOnLink, decryptOAuthToken, generateIdTokenNonce, generateState, getOAuthCallbackPath, handleOAuthUserInfo, linkOAuthAccount, parseState, setTokenUtil };
@@ -1,8 +1,7 @@
1
1
  import { Account, User } from "../types/models.mjs";
2
- import "../types/index.mjs";
3
2
  import { StateData } from "../state.mjs";
3
+ import "../types/index.mjs";
4
4
  import { GenericEndpointContext, UserProvisioningSource } from "@better-auth/core";
5
- //#region src/oauth2/link-account.d.ts
6
5
  type OAuthAccountData = Omit<Account, "id" | "userId" | "createdAt" | "updatedAt">;
7
6
  /**
8
7
  * Provider profile a freshly linked account may copy onto the local user.
@@ -112,5 +111,4 @@ export declare function handleOAuthUserInfo(c: GenericEndpointContext, opts: {
112
111
  * disabled or the update fails: a failed profile sync must not abort the link.
113
112
  */
114
113
  export declare function applyUpdateUserInfoOnLink(c: GenericEndpointContext, userId: string, userInfo: LinkedProviderProfile): Promise<User | undefined>;
115
- //#endregion
116
114
  export {};
@@ -1,19 +1,18 @@
1
- import { isAPIError } from "../utils/is-api-error.mjs";
2
- import { parseAdditionalUserInputFromProviderProfile } from "../db/schema.mjs";
3
- import { symmetricDecrypt } from "../crypto/index.mjs";
1
+ import { createEmailVerificationToken } from "../api/routes/email-verification.mjs";
2
+ import { isStateful } from "../api/routes/session.mjs";
4
3
  import { setAccountCookie } from "../cookies/session-store.mjs";
5
- import { assertValidUserInfo } from "../utils/validate-user-info.mjs";
4
+ import { symmetricDecrypt } from "../crypto/index.mjs";
6
5
  import { derivePurposeKey } from "../crypto/purpose.mjs";
6
+ import { parseAdditionalUserInputFromProviderProfile } from "../db/schema.mjs";
7
+ import { isAPIError } from "../utils/is-api-error.mjs";
8
+ import { assertValidUserInfo } from "../utils/validate-user-info.mjs";
7
9
  import { OAUTH_CALLBACK_ERROR_CODES, redirectOnError } from "./errors.mjs";
8
- import { isStateful } from "../api/routes/session.mjs";
9
- import { toBoolean } from "../utils/boolean.mjs";
10
10
  import { setTokenUtil } from "./utils.mjs";
11
- import { createEmailVerificationToken } from "../api/routes/email-verification.mjs";
12
11
  import { queueAfterTransactionHook, runWithTransaction } from "@better-auth/core/context";
13
12
  import { isDevelopment } from "@better-auth/core/env";
14
13
  import { APIError } from "@better-auth/core/error";
15
- import { mergeScopes } from "@better-auth/core/oauth2";
16
- //#region src/oauth2/link-account.ts
14
+ import { mergeScopes, parseStringBoolean } from "@better-auth/core/oauth2";
15
+ // src/oauth2/link-account.ts
17
16
  function linkOAuthAccountFailure(code, message) {
18
17
  return {
19
18
  linked: false,
@@ -43,7 +42,7 @@ async function linkOAuthAccount(c, opts) {
43
42
  const { link, account, profile, scopes } = opts;
44
43
  const userInfo = {
45
44
  ...opts.userInfo,
46
- emailVerified: toBoolean(opts.userInfo.emailVerified)
45
+ emailVerified: parseStringBoolean(opts.userInfo.emailVerified) ?? false
47
46
  };
48
47
  if (!await isLinkSessionLive(c, link)) return linkOAuthAccountFailure(OAUTH_CALLBACK_ERROR_CODES.UNABLE_TO_LINK_ACCOUNT);
49
48
  try {
@@ -99,7 +98,7 @@ async function handleOAuthUserInfo(c, opts) {
99
98
  const { account, callbackURL, disableSignUp, overrideUserInfo } = opts;
100
99
  const userInfo = {
101
100
  ...opts.userInfo,
102
- emailVerified: toBoolean(opts.userInfo.emailVerified)
101
+ emailVerified: parseStringBoolean(opts.userInfo.emailVerified) ?? false
103
102
  };
104
103
  const source = opts.source ?? {
105
104
  method: "oauth",
@@ -305,7 +304,7 @@ async function handleOAuthUserInfo(c, opts) {
305
304
  providerId: account.providerId,
306
305
  accountId: account.accountId
307
306
  };
308
- const { createdUser, createdAccount } = await runWithTransaction(c.context.adapter, async () => {
307
+ const created = await runWithTransaction(c.context.adapter, async () => {
309
308
  const createdUser = await c.context.internalAdapter.createUser({
310
309
  name,
311
310
  image,
@@ -313,6 +312,7 @@ async function handleOAuthUserInfo(c, opts) {
313
312
  email: userInfo.email.toLowerCase(),
314
313
  emailVerified: userInfo.emailVerified
315
314
  }, source);
315
+ if (!createdUser) return null;
316
316
  return {
317
317
  createdUser,
318
318
  createdAccount: await c.context.internalAdapter.createAccount({
@@ -321,6 +321,12 @@ async function handleOAuthUserInfo(c, opts) {
321
321
  })
322
322
  };
323
323
  });
324
+ if (!created) return {
325
+ error: "unable to create user",
326
+ data: null,
327
+ isRegister: false
328
+ };
329
+ const { createdUser, createdAccount } = created;
324
330
  if (requireExactAccountBinding && (createdAccount.accountId !== account.accountId || createdAccount.providerId !== account.providerId || createdAccount.userId !== createdUser.id)) throw new APIError("CONFLICT", {
325
331
  code: "account_hook_binding_conflict",
326
332
  message: "Account hook changed the selected authentication binding"
@@ -421,5 +427,4 @@ async function applyUpdateUserInfoOnLink(c, userId, userInfo) {
421
427
  return;
422
428
  }
423
429
  }
424
- //#endregion
425
430
  export { applyUpdateUserInfoOnLink, handleOAuthUserInfo, linkOAuthAccount };
@@ -1,6 +1,5 @@
1
1
  import { StateData } from "../state.mjs";
2
2
  import { GenericEndpointContext } from "@better-auth/core";
3
- //#region src/oauth2/state.d.ts
4
3
  /**
5
4
  * Mint the OIDC `nonce` for the redirect flow, or `undefined` when the provider
6
5
  * does not require ID-token nonce binding. Every redirect entrypoint (social
@@ -49,5 +48,4 @@ export declare function parseState(c: GenericEndpointContext): Promise<{
49
48
  requestSignUp?: boolean | undefined;
50
49
  idTokenNonce?: string | undefined;
51
50
  serverContext?: Record<string, unknown> | undefined;
52
- }>;
53
- //#endregion
51
+ }>;
@@ -1,9 +1,9 @@
1
- import { generateRandomString } from "../crypto/random.mjs";
2
- import { redirectOnError } from "./errors.mjs";
3
1
  import { getOAuthServerContext, setOAuthState } from "../api/state/oauth.mjs";
2
+ import { generateRandomString } from "../crypto/random.mjs";
4
3
  import { StateError, generateGenericState, parseGenericState } from "../state.mjs";
4
+ import { redirectOnError } from "./errors.mjs";
5
5
  import { APIError, BASE_ERROR_CODES } from "@better-auth/core/error";
6
- //#region src/oauth2/state.ts
6
+ // src/oauth2/state.ts
7
7
  /**
8
8
  * Mint the OIDC `nonce` for the redirect flow, or `undefined` when the provider
9
9
  * does not require ID-token nonce binding. Every redirect entrypoint (social
@@ -63,5 +63,4 @@ async function parseState(c) {
63
63
  if (parsedData) await setOAuthState(parsedData);
64
64
  return parsedData;
65
65
  }
66
- //#endregion
67
66
  export { generateIdTokenNonce, generateState, parseState };
@@ -1,9 +1,7 @@
1
1
  import { AuthContext, LiteralString } from "@better-auth/core";
2
- //#region src/oauth2/utils.d.ts
3
2
  export declare function decryptOAuthToken(token: string, ctx: AuthContext): string | Promise<string>;
4
3
  export declare function setTokenUtil(token: string | null | undefined, ctx: AuthContext): string | Promise<string> | null | undefined;
5
4
  export declare function getOAuthCallbackPath(provider: {
6
5
  id: LiteralString;
7
6
  callbackPath?: string | undefined;
8
- }): string;
9
- //#endregion
7
+ }): string;
@@ -1,5 +1,5 @@
1
1
  import { symmetricDecrypt, symmetricEncrypt } from "../crypto/index.mjs";
2
- //#region src/oauth2/utils.ts
2
+ // src/oauth2/utils.ts
3
3
  /**
4
4
  * Check if a string looks like encrypted data
5
5
  */
@@ -29,5 +29,4 @@ function getOAuthCallbackPath(provider) {
29
29
  if (!provider.callbackPath) return `/callback/${provider.id}`;
30
30
  return provider.callbackPath.startsWith("/") ? provider.callbackPath : `/${provider.callbackPath}`;
31
31
  }
32
- //#endregion
33
32
  export { decryptOAuthToken, getOAuthCallbackPath, setTokenUtil };
package/dist/package.mjs CHANGED
@@ -1,4 +1,3 @@
1
- //#region package.json
2
- var version = "1.7.21";
3
- //#endregion
1
+ // package.json
2
+ var version = "1.7.22";
4
3
  export { version };