@hammadj/better-auth-core 1.5.0-beta.9

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 (353) hide show
  1. package/.turbo/turbo-build.log +266 -0
  2. package/.turbo/turbo-test.log +2 -0
  3. package/LICENSE.md +20 -0
  4. package/dist/api/index.d.mts +181 -0
  5. package/dist/api/index.mjs +34 -0
  6. package/dist/api/index.mjs.map +1 -0
  7. package/dist/async_hooks/index.d.mts +7 -0
  8. package/dist/async_hooks/index.mjs +22 -0
  9. package/dist/async_hooks/index.mjs.map +1 -0
  10. package/dist/async_hooks/pure.index.d.mts +7 -0
  11. package/dist/async_hooks/pure.index.mjs +35 -0
  12. package/dist/async_hooks/pure.index.mjs.map +1 -0
  13. package/dist/context/endpoint-context.d.mts +19 -0
  14. package/dist/context/endpoint-context.mjs +32 -0
  15. package/dist/context/endpoint-context.mjs.map +1 -0
  16. package/dist/context/global.d.mts +7 -0
  17. package/dist/context/global.mjs +38 -0
  18. package/dist/context/global.mjs.map +1 -0
  19. package/dist/context/index.d.mts +5 -0
  20. package/dist/context/index.mjs +6 -0
  21. package/dist/context/request-state.d.mts +26 -0
  22. package/dist/context/request-state.mjs +50 -0
  23. package/dist/context/request-state.mjs.map +1 -0
  24. package/dist/context/transaction.d.mts +25 -0
  25. package/dist/context/transaction.mjs +96 -0
  26. package/dist/context/transaction.mjs.map +1 -0
  27. package/dist/db/adapter/factory.d.mts +28 -0
  28. package/dist/db/adapter/factory.mjs +716 -0
  29. package/dist/db/adapter/factory.mjs.map +1 -0
  30. package/dist/db/adapter/get-default-field-name.d.mts +19 -0
  31. package/dist/db/adapter/get-default-field-name.mjs +39 -0
  32. package/dist/db/adapter/get-default-field-name.mjs.map +1 -0
  33. package/dist/db/adapter/get-default-model-name.d.mts +13 -0
  34. package/dist/db/adapter/get-default-model-name.mjs +33 -0
  35. package/dist/db/adapter/get-default-model-name.mjs.map +1 -0
  36. package/dist/db/adapter/get-field-attributes.d.mts +30 -0
  37. package/dist/db/adapter/get-field-attributes.mjs +40 -0
  38. package/dist/db/adapter/get-field-attributes.mjs.map +1 -0
  39. package/dist/db/adapter/get-field-name.d.mts +19 -0
  40. package/dist/db/adapter/get-field-name.mjs +34 -0
  41. package/dist/db/adapter/get-field-name.mjs.map +1 -0
  42. package/dist/db/adapter/get-id-field.d.mts +40 -0
  43. package/dist/db/adapter/get-id-field.mjs +68 -0
  44. package/dist/db/adapter/get-id-field.mjs.map +1 -0
  45. package/dist/db/adapter/get-model-name.d.mts +13 -0
  46. package/dist/db/adapter/get-model-name.mjs +24 -0
  47. package/dist/db/adapter/get-model-name.mjs.map +1 -0
  48. package/dist/db/adapter/index.d.mts +515 -0
  49. package/dist/db/adapter/index.mjs +10 -0
  50. package/dist/db/adapter/types.d.mts +140 -0
  51. package/dist/db/adapter/utils.d.mts +8 -0
  52. package/dist/db/adapter/utils.mjs +39 -0
  53. package/dist/db/adapter/utils.mjs.map +1 -0
  54. package/dist/db/get-tables.d.mts +9 -0
  55. package/dist/db/get-tables.mjs +267 -0
  56. package/dist/db/get-tables.mjs.map +1 -0
  57. package/dist/db/index.d.mts +10 -0
  58. package/dist/db/index.mjs +9 -0
  59. package/dist/db/plugin.d.mts +13 -0
  60. package/dist/db/schema/account.d.mts +27 -0
  61. package/dist/db/schema/account.mjs +20 -0
  62. package/dist/db/schema/account.mjs.map +1 -0
  63. package/dist/db/schema/rate-limit.d.mts +15 -0
  64. package/dist/db/schema/rate-limit.mjs +12 -0
  65. package/dist/db/schema/rate-limit.mjs.map +1 -0
  66. package/dist/db/schema/session.d.mts +22 -0
  67. package/dist/db/schema/session.mjs +15 -0
  68. package/dist/db/schema/session.mjs.map +1 -0
  69. package/dist/db/schema/shared.d.mts +11 -0
  70. package/dist/db/schema/shared.mjs +12 -0
  71. package/dist/db/schema/shared.mjs.map +1 -0
  72. package/dist/db/schema/user.d.mts +21 -0
  73. package/dist/db/schema/user.mjs +14 -0
  74. package/dist/db/schema/user.mjs.map +1 -0
  75. package/dist/db/schema/verification.d.mts +20 -0
  76. package/dist/db/schema/verification.mjs +13 -0
  77. package/dist/db/schema/verification.mjs.map +1 -0
  78. package/dist/db/type.d.mts +147 -0
  79. package/dist/env/color-depth.d.mts +5 -0
  80. package/dist/env/color-depth.mjs +89 -0
  81. package/dist/env/color-depth.mjs.map +1 -0
  82. package/dist/env/env-impl.d.mts +33 -0
  83. package/dist/env/env-impl.mjs +83 -0
  84. package/dist/env/env-impl.mjs.map +1 -0
  85. package/dist/env/index.d.mts +4 -0
  86. package/dist/env/index.mjs +5 -0
  87. package/dist/env/logger.d.mts +49 -0
  88. package/dist/env/logger.mjs +82 -0
  89. package/dist/env/logger.mjs.map +1 -0
  90. package/dist/error/codes.d.mts +199 -0
  91. package/dist/error/codes.mjs +57 -0
  92. package/dist/error/codes.mjs.map +1 -0
  93. package/dist/error/index.d.mts +20 -0
  94. package/dist/error/index.mjs +30 -0
  95. package/dist/error/index.mjs.map +1 -0
  96. package/dist/index.d.mts +8 -0
  97. package/dist/index.mjs +1 -0
  98. package/dist/oauth2/client-credentials-token.d.mts +37 -0
  99. package/dist/oauth2/client-credentials-token.mjs +55 -0
  100. package/dist/oauth2/client-credentials-token.mjs.map +1 -0
  101. package/dist/oauth2/create-authorization-url.d.mts +46 -0
  102. package/dist/oauth2/create-authorization-url.mjs +43 -0
  103. package/dist/oauth2/create-authorization-url.mjs.map +1 -0
  104. package/dist/oauth2/index.d.mts +8 -0
  105. package/dist/oauth2/index.mjs +8 -0
  106. package/dist/oauth2/oauth-provider.d.mts +195 -0
  107. package/dist/oauth2/refresh-access-token.d.mts +36 -0
  108. package/dist/oauth2/refresh-access-token.mjs +59 -0
  109. package/dist/oauth2/refresh-access-token.mjs.map +1 -0
  110. package/dist/oauth2/utils.d.mts +8 -0
  111. package/dist/oauth2/utils.mjs +28 -0
  112. package/dist/oauth2/utils.mjs.map +1 -0
  113. package/dist/oauth2/validate-authorization-code.d.mts +56 -0
  114. package/dist/oauth2/validate-authorization-code.mjs +72 -0
  115. package/dist/oauth2/validate-authorization-code.mjs.map +1 -0
  116. package/dist/oauth2/verify.d.mts +43 -0
  117. package/dist/oauth2/verify.mjs +96 -0
  118. package/dist/oauth2/verify.mjs.map +1 -0
  119. package/dist/social-providers/apple.d.mts +120 -0
  120. package/dist/social-providers/apple.mjs +105 -0
  121. package/dist/social-providers/apple.mjs.map +1 -0
  122. package/dist/social-providers/atlassian.d.mts +73 -0
  123. package/dist/social-providers/atlassian.mjs +84 -0
  124. package/dist/social-providers/atlassian.mjs.map +1 -0
  125. package/dist/social-providers/cognito.d.mts +88 -0
  126. package/dist/social-providers/cognito.mjs +166 -0
  127. package/dist/social-providers/cognito.mjs.map +1 -0
  128. package/dist/social-providers/discord.d.mts +127 -0
  129. package/dist/social-providers/discord.mjs +65 -0
  130. package/dist/social-providers/discord.mjs.map +1 -0
  131. package/dist/social-providers/dropbox.d.mts +72 -0
  132. package/dist/social-providers/dropbox.mjs +76 -0
  133. package/dist/social-providers/dropbox.mjs.map +1 -0
  134. package/dist/social-providers/facebook.d.mts +82 -0
  135. package/dist/social-providers/facebook.mjs +121 -0
  136. package/dist/social-providers/facebook.mjs.map +1 -0
  137. package/dist/social-providers/figma.d.mts +64 -0
  138. package/dist/social-providers/figma.mjs +87 -0
  139. package/dist/social-providers/figma.mjs.map +1 -0
  140. package/dist/social-providers/github.d.mts +105 -0
  141. package/dist/social-providers/github.mjs +97 -0
  142. package/dist/social-providers/github.mjs.map +1 -0
  143. package/dist/social-providers/gitlab.d.mts +126 -0
  144. package/dist/social-providers/gitlab.mjs +83 -0
  145. package/dist/social-providers/gitlab.mjs.map +1 -0
  146. package/dist/social-providers/google.d.mts +100 -0
  147. package/dist/social-providers/google.mjs +109 -0
  148. package/dist/social-providers/google.mjs.map +1 -0
  149. package/dist/social-providers/huggingface.d.mts +86 -0
  150. package/dist/social-providers/huggingface.mjs +76 -0
  151. package/dist/social-providers/huggingface.mjs.map +1 -0
  152. package/dist/social-providers/index.d.mts +1725 -0
  153. package/dist/social-providers/index.mjs +77 -0
  154. package/dist/social-providers/index.mjs.map +1 -0
  155. package/dist/social-providers/kakao.d.mts +164 -0
  156. package/dist/social-providers/kakao.mjs +73 -0
  157. package/dist/social-providers/kakao.mjs.map +1 -0
  158. package/dist/social-providers/kick.d.mts +76 -0
  159. package/dist/social-providers/kick.mjs +72 -0
  160. package/dist/social-providers/kick.mjs.map +1 -0
  161. package/dist/social-providers/line.d.mts +108 -0
  162. package/dist/social-providers/line.mjs +114 -0
  163. package/dist/social-providers/line.mjs.map +1 -0
  164. package/dist/social-providers/linear.d.mts +71 -0
  165. package/dist/social-providers/linear.mjs +89 -0
  166. package/dist/social-providers/linear.mjs.map +1 -0
  167. package/dist/social-providers/linkedin.d.mts +70 -0
  168. package/dist/social-providers/linkedin.mjs +77 -0
  169. package/dist/social-providers/linkedin.mjs.map +1 -0
  170. package/dist/social-providers/microsoft-entra-id.d.mts +175 -0
  171. package/dist/social-providers/microsoft-entra-id.mjs +107 -0
  172. package/dist/social-providers/microsoft-entra-id.mjs.map +1 -0
  173. package/dist/social-providers/naver.d.mts +95 -0
  174. package/dist/social-providers/naver.mjs +68 -0
  175. package/dist/social-providers/naver.mjs.map +1 -0
  176. package/dist/social-providers/notion.d.mts +67 -0
  177. package/dist/social-providers/notion.mjs +76 -0
  178. package/dist/social-providers/notion.mjs.map +1 -0
  179. package/dist/social-providers/paybin.d.mts +74 -0
  180. package/dist/social-providers/paybin.mjs +86 -0
  181. package/dist/social-providers/paybin.mjs.map +1 -0
  182. package/dist/social-providers/paypal.d.mts +132 -0
  183. package/dist/social-providers/paypal.mjs +145 -0
  184. package/dist/social-providers/paypal.mjs.map +1 -0
  185. package/dist/social-providers/polar.d.mts +77 -0
  186. package/dist/social-providers/polar.mjs +74 -0
  187. package/dist/social-providers/polar.mjs.map +1 -0
  188. package/dist/social-providers/reddit.d.mts +65 -0
  189. package/dist/social-providers/reddit.mjs +84 -0
  190. package/dist/social-providers/reddit.mjs.map +1 -0
  191. package/dist/social-providers/roblox.d.mts +73 -0
  192. package/dist/social-providers/roblox.mjs +60 -0
  193. package/dist/social-providers/roblox.mjs.map +1 -0
  194. package/dist/social-providers/salesforce.d.mts +82 -0
  195. package/dist/social-providers/salesforce.mjs +92 -0
  196. package/dist/social-providers/salesforce.mjs.map +1 -0
  197. package/dist/social-providers/slack.d.mts +86 -0
  198. package/dist/social-providers/slack.mjs +69 -0
  199. package/dist/social-providers/slack.mjs.map +1 -0
  200. package/dist/social-providers/spotify.d.mts +66 -0
  201. package/dist/social-providers/spotify.mjs +72 -0
  202. package/dist/social-providers/spotify.mjs.map +1 -0
  203. package/dist/social-providers/tiktok.d.mts +171 -0
  204. package/dist/social-providers/tiktok.mjs +63 -0
  205. package/dist/social-providers/tiktok.mjs.map +1 -0
  206. package/dist/social-providers/twitch.d.mts +82 -0
  207. package/dist/social-providers/twitch.mjs +79 -0
  208. package/dist/social-providers/twitch.mjs.map +1 -0
  209. package/dist/social-providers/twitter.d.mts +129 -0
  210. package/dist/social-providers/twitter.mjs +88 -0
  211. package/dist/social-providers/twitter.mjs.map +1 -0
  212. package/dist/social-providers/vercel.d.mts +65 -0
  213. package/dist/social-providers/vercel.mjs +62 -0
  214. package/dist/social-providers/vercel.mjs.map +1 -0
  215. package/dist/social-providers/vk.d.mts +73 -0
  216. package/dist/social-providers/vk.mjs +84 -0
  217. package/dist/social-providers/vk.mjs.map +1 -0
  218. package/dist/social-providers/zoom.d.mts +173 -0
  219. package/dist/social-providers/zoom.mjs +73 -0
  220. package/dist/social-providers/zoom.mjs.map +1 -0
  221. package/dist/types/context.d.mts +267 -0
  222. package/dist/types/cookie.d.mts +16 -0
  223. package/dist/types/helper.d.mts +10 -0
  224. package/dist/types/index.d.mts +8 -0
  225. package/dist/types/init-options.d.mts +1314 -0
  226. package/dist/types/plugin-client.d.mts +112 -0
  227. package/dist/types/plugin.d.mts +125 -0
  228. package/dist/utils/db.d.mts +12 -0
  229. package/dist/utils/db.mjs +17 -0
  230. package/dist/utils/db.mjs.map +1 -0
  231. package/dist/utils/deprecate.d.mts +10 -0
  232. package/dist/utils/deprecate.mjs +18 -0
  233. package/dist/utils/deprecate.mjs.map +1 -0
  234. package/dist/utils/error-codes.d.mts +13 -0
  235. package/dist/utils/error-codes.mjs +12 -0
  236. package/dist/utils/error-codes.mjs.map +1 -0
  237. package/dist/utils/id.d.mts +5 -0
  238. package/dist/utils/id.mjs +10 -0
  239. package/dist/utils/id.mjs.map +1 -0
  240. package/dist/utils/ip.d.mts +55 -0
  241. package/dist/utils/ip.mjs +119 -0
  242. package/dist/utils/ip.mjs.map +1 -0
  243. package/dist/utils/json.d.mts +5 -0
  244. package/dist/utils/json.mjs +26 -0
  245. package/dist/utils/json.mjs.map +1 -0
  246. package/dist/utils/string.d.mts +5 -0
  247. package/dist/utils/string.mjs +8 -0
  248. package/dist/utils/string.mjs.map +1 -0
  249. package/dist/utils/url.d.mts +21 -0
  250. package/dist/utils/url.mjs +33 -0
  251. package/dist/utils/url.mjs.map +1 -0
  252. package/package.json +147 -0
  253. package/src/api/index.ts +106 -0
  254. package/src/async_hooks/index.ts +40 -0
  255. package/src/async_hooks/pure.index.ts +46 -0
  256. package/src/context/endpoint-context.ts +50 -0
  257. package/src/context/global.ts +57 -0
  258. package/src/context/index.ts +23 -0
  259. package/src/context/request-state.test.ts +94 -0
  260. package/src/context/request-state.ts +91 -0
  261. package/src/context/transaction.ts +136 -0
  262. package/src/db/adapter/factory.ts +1362 -0
  263. package/src/db/adapter/get-default-field-name.ts +59 -0
  264. package/src/db/adapter/get-default-model-name.ts +51 -0
  265. package/src/db/adapter/get-field-attributes.ts +62 -0
  266. package/src/db/adapter/get-field-name.ts +43 -0
  267. package/src/db/adapter/get-id-field.ts +141 -0
  268. package/src/db/adapter/get-model-name.ts +36 -0
  269. package/src/db/adapter/index.ts +554 -0
  270. package/src/db/adapter/types.ts +171 -0
  271. package/src/db/adapter/utils.ts +61 -0
  272. package/src/db/get-tables.ts +296 -0
  273. package/src/db/index.ts +18 -0
  274. package/src/db/plugin.ts +11 -0
  275. package/src/db/schema/account.ts +34 -0
  276. package/src/db/schema/rate-limit.ts +21 -0
  277. package/src/db/schema/session.ts +17 -0
  278. package/src/db/schema/shared.ts +7 -0
  279. package/src/db/schema/user.ts +16 -0
  280. package/src/db/schema/verification.ts +15 -0
  281. package/src/db/test/get-tables.test.ts +116 -0
  282. package/src/db/type.ts +180 -0
  283. package/src/env/color-depth.ts +172 -0
  284. package/src/env/env-impl.ts +124 -0
  285. package/src/env/index.ts +23 -0
  286. package/src/env/logger.test.ts +34 -0
  287. package/src/env/logger.ts +145 -0
  288. package/src/error/codes.ts +58 -0
  289. package/src/error/index.ts +35 -0
  290. package/src/index.ts +1 -0
  291. package/src/oauth2/client-credentials-token.ts +102 -0
  292. package/src/oauth2/create-authorization-url.ts +87 -0
  293. package/src/oauth2/index.ts +26 -0
  294. package/src/oauth2/oauth-provider.ts +222 -0
  295. package/src/oauth2/refresh-access-token.ts +124 -0
  296. package/src/oauth2/utils.ts +38 -0
  297. package/src/oauth2/validate-authorization-code.ts +149 -0
  298. package/src/oauth2/validate-token.test.ts +174 -0
  299. package/src/oauth2/verify.ts +221 -0
  300. package/src/social-providers/apple.ts +223 -0
  301. package/src/social-providers/atlassian.ts +132 -0
  302. package/src/social-providers/cognito.ts +279 -0
  303. package/src/social-providers/discord.ts +169 -0
  304. package/src/social-providers/dropbox.ts +112 -0
  305. package/src/social-providers/facebook.ts +206 -0
  306. package/src/social-providers/figma.ts +117 -0
  307. package/src/social-providers/github.ts +184 -0
  308. package/src/social-providers/gitlab.ts +155 -0
  309. package/src/social-providers/google.ts +199 -0
  310. package/src/social-providers/huggingface.ts +118 -0
  311. package/src/social-providers/index.ts +127 -0
  312. package/src/social-providers/kakao.ts +178 -0
  313. package/src/social-providers/kick.ts +109 -0
  314. package/src/social-providers/line.ts +169 -0
  315. package/src/social-providers/linear.ts +121 -0
  316. package/src/social-providers/linkedin.ts +110 -0
  317. package/src/social-providers/microsoft-entra-id.ts +259 -0
  318. package/src/social-providers/naver.ts +112 -0
  319. package/src/social-providers/notion.ts +108 -0
  320. package/src/social-providers/paybin.ts +122 -0
  321. package/src/social-providers/paypal.ts +263 -0
  322. package/src/social-providers/polar.ts +110 -0
  323. package/src/social-providers/reddit.ts +122 -0
  324. package/src/social-providers/roblox.ts +111 -0
  325. package/src/social-providers/salesforce.ts +159 -0
  326. package/src/social-providers/slack.ts +111 -0
  327. package/src/social-providers/spotify.ts +93 -0
  328. package/src/social-providers/tiktok.ts +209 -0
  329. package/src/social-providers/twitch.ts +111 -0
  330. package/src/social-providers/twitter.ts +198 -0
  331. package/src/social-providers/vercel.ts +87 -0
  332. package/src/social-providers/vk.ts +124 -0
  333. package/src/social-providers/zoom.ts +238 -0
  334. package/src/types/context.ts +396 -0
  335. package/src/types/cookie.ts +10 -0
  336. package/src/types/helper.ts +26 -0
  337. package/src/types/index.ts +32 -0
  338. package/src/types/init-options.ts +1529 -0
  339. package/src/types/plugin-client.ts +127 -0
  340. package/src/types/plugin.ts +157 -0
  341. package/src/utils/db.ts +20 -0
  342. package/src/utils/deprecate.test.ts +72 -0
  343. package/src/utils/deprecate.ts +21 -0
  344. package/src/utils/error-codes.ts +65 -0
  345. package/src/utils/id.ts +5 -0
  346. package/src/utils/ip.test.ts +255 -0
  347. package/src/utils/ip.ts +211 -0
  348. package/src/utils/json.ts +25 -0
  349. package/src/utils/string.ts +3 -0
  350. package/src/utils/url.ts +43 -0
  351. package/tsconfig.json +7 -0
  352. package/tsdown.config.ts +35 -0
  353. package/vitest.config.ts +3 -0
@@ -0,0 +1,267 @@
1
+ import { BetterAuthDBSchema, ModelNames, SecondaryStorage } from "../db/type.mjs";
2
+ import { Account } from "../db/schema/account.mjs";
3
+ import { Session } from "../db/schema/session.mjs";
4
+ import { User } from "../db/schema/user.mjs";
5
+ import { Verification } from "../db/schema/verification.mjs";
6
+ import "../db/index.mjs";
7
+ import { Awaitable, LiteralString } from "./helper.mjs";
8
+ import { DBAdapter, Where } from "../db/adapter/index.mjs";
9
+ import { createLogger } from "../env/logger.mjs";
10
+ import { OAuthProvider } from "../oauth2/oauth-provider.mjs";
11
+ import "../oauth2/index.mjs";
12
+ import { BetterAuthCookie, BetterAuthCookies } from "./cookie.mjs";
13
+ import { BetterAuthPlugin } from "./plugin.mjs";
14
+ import { BetterAuthOptions, BetterAuthRateLimitOptions } from "./init-options.mjs";
15
+ import { CookieOptions, EndpointContext } from "better-call";
16
+
17
+ //#region src/types/context.d.ts
18
+ /**
19
+ * @internal
20
+ */
21
+ type InferPluginID<O extends BetterAuthOptions> = O["plugins"] extends Array<infer P> ? P extends BetterAuthPlugin ? P["id"] : never : never;
22
+ /**
23
+ * @internal
24
+ */
25
+ type InferPluginOptions<O extends BetterAuthOptions, ID extends BetterAuthPluginRegistryIdentifier | LiteralString> = O["plugins"] extends Array<infer P> ? P extends BetterAuthPlugin ? P["id"] extends ID ? P extends {
26
+ options: infer O;
27
+ } ? O : never : never : never : never;
28
+ /**
29
+ * Mutators are defined in each plugin
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * interface MyPluginOptions {
34
+ * useFeature: boolean
35
+ * }
36
+ *
37
+ * const createMyPlugin = <Options extends MyPluginOptions>(options?: Options) => ({
38
+ * id: 'my-plugin',
39
+ * options,
40
+ * } satisfies BetterAuthPlugin);
41
+ *
42
+ * declare module "@better-auth/core" {
43
+ * interface BetterAuthPluginRegistry<AuthOptions, Options> {
44
+ * 'my-plugin': {
45
+ * creator: Options extends MyPluginOptions ? typeof createMyPlugin<Options>: typeof createMyPlugin
46
+ * }
47
+ * }
48
+ * }
49
+ * ```
50
+ */
51
+ interface BetterAuthPluginRegistry<AuthOptions, Options> {}
52
+ type BetterAuthPluginRegistryIdentifier = keyof BetterAuthPluginRegistry<unknown, unknown>;
53
+ type GenericEndpointContext<Options extends BetterAuthOptions = BetterAuthOptions> = EndpointContext<string, any> & {
54
+ context: AuthContext<Options>;
55
+ };
56
+ interface InternalAdapter<_Options extends BetterAuthOptions = BetterAuthOptions> {
57
+ createOAuthUser(user: Omit<User, "id" | "createdAt" | "updatedAt">, account: Omit<Account, "userId" | "id" | "createdAt" | "updatedAt"> & Partial<Account>): Promise<{
58
+ user: User;
59
+ account: Account;
60
+ }>;
61
+ createUser<T extends Record<string, any>>(user: Omit<User, "id" | "createdAt" | "updatedAt" | "emailVerified"> & Partial<User> & Record<string, any>): Promise<T & User>;
62
+ createAccount<T extends Record<string, any>>(account: Omit<Account, "id" | "createdAt" | "updatedAt"> & Partial<Account> & T): Promise<T & Account>;
63
+ listSessions(userId: string): Promise<Session[]>;
64
+ listUsers(limit?: number | undefined, offset?: number | undefined, sortBy?: {
65
+ field: string;
66
+ direction: "asc" | "desc";
67
+ } | undefined, where?: Where[] | undefined): Promise<User[]>;
68
+ countTotalUsers(where?: Where[] | undefined): Promise<number>;
69
+ deleteUser(userId: string): Promise<void>;
70
+ createSession(userId: string, dontRememberMe?: boolean | undefined, override?: (Partial<Session> & Record<string, any>) | undefined, overrideAll?: boolean | undefined): Promise<Session>;
71
+ findSession(token: string): Promise<{
72
+ session: Session & Record<string, any>;
73
+ user: User & Record<string, any>;
74
+ } | null>;
75
+ findSessions(sessionTokens: string[]): Promise<{
76
+ session: Session;
77
+ user: User;
78
+ }[]>;
79
+ updateSession(sessionToken: string, session: Partial<Session> & Record<string, any>): Promise<Session | null>;
80
+ deleteSession(token: string): Promise<void>;
81
+ deleteAccounts(userId: string): Promise<void>;
82
+ deleteAccount(accountId: string): Promise<void>;
83
+ deleteSessions(userIdOrSessionTokens: string | string[]): Promise<void>;
84
+ findOAuthUser(email: string, accountId: string, providerId: string): Promise<{
85
+ user: User;
86
+ linkedAccount: Account | null;
87
+ accounts: Account[];
88
+ } | null>;
89
+ findUserByEmail(email: string, options?: {
90
+ includeAccounts: boolean;
91
+ } | undefined): Promise<{
92
+ user: User;
93
+ accounts: Account[];
94
+ } | null>;
95
+ findUserById(userId: string): Promise<User | null>;
96
+ linkAccount(account: Omit<Account, "id" | "createdAt" | "updatedAt"> & Partial<Account>): Promise<Account>;
97
+ updateUser<T extends Record<string, any>>(userId: string, data: Partial<User> & Record<string, any>): Promise<User & T>;
98
+ updateUserByEmail<T extends Record<string, any>>(email: string, data: Partial<User & Record<string, any>>): Promise<User & T>;
99
+ updatePassword(userId: string, password: string): Promise<void>;
100
+ findAccounts(userId: string): Promise<Account[]>;
101
+ findAccount(accountId: string): Promise<Account | null>;
102
+ findAccountByProviderId(accountId: string, providerId: string): Promise<Account | null>;
103
+ findAccountByUserId(userId: string): Promise<Account[]>;
104
+ updateAccount(id: string, data: Partial<Account>): Promise<Account>;
105
+ createVerificationValue(data: Omit<Verification, "createdAt" | "id" | "updatedAt"> & Partial<Verification>): Promise<Verification>;
106
+ findVerificationValue(identifier: string): Promise<Verification | null>;
107
+ deleteVerificationValue(id: string): Promise<void>;
108
+ deleteVerificationByIdentifier(identifier: string): Promise<void>;
109
+ updateVerificationValue(id: string, data: Partial<Verification>): Promise<Verification>;
110
+ }
111
+ type CreateCookieGetterFn = (cookieName: string, overrideAttributes?: Partial<CookieOptions> | undefined) => BetterAuthCookie;
112
+ type CheckPasswordFn<Options extends BetterAuthOptions = BetterAuthOptions> = (userId: string, ctx: GenericEndpointContext<Options>) => Promise<boolean>;
113
+ type PluginContext<Options extends BetterAuthOptions> = {
114
+ getPlugin: <ID extends BetterAuthPluginRegistryIdentifier | LiteralString, PluginOptions extends InferPluginOptions<Options, ID>>(pluginId: ID) => (ID extends BetterAuthPluginRegistryIdentifier ? ReturnType<BetterAuthPluginRegistry<Options, PluginOptions>[ID]["creator"]> : BetterAuthPlugin) | null;
115
+ /**
116
+ * Checks if a plugin is enabled by its ID.
117
+ *
118
+ * @param pluginId - The ID of the plugin to check
119
+ * @returns `true` if the plugin is enabled, `false` otherwise
120
+ *
121
+ * @example
122
+ * ```ts
123
+ * if (ctx.context.hasPlugin("organization")) {
124
+ * // organization plugin is enabled
125
+ * }
126
+ * ```
127
+ */
128
+ hasPlugin: <ID extends BetterAuthPluginRegistryIdentifier | LiteralString>(pluginId: ID) => ID extends InferPluginID<Options> ? true : boolean;
129
+ };
130
+ type InfoContext = {
131
+ appName: string;
132
+ baseURL: string;
133
+ version: string;
134
+ };
135
+ type AuthContext<Options extends BetterAuthOptions = BetterAuthOptions> = PluginContext<Options> & InfoContext & {
136
+ options: Options;
137
+ trustedOrigins: string[];
138
+ /**
139
+ * Verifies whether url is a trusted origin according to the "trustedOrigins" configuration
140
+ * @param url The url to verify against the "trustedOrigins" configuration
141
+ * @param settings Specify supported pattern matching settings
142
+ * @returns {boolean} true if the URL matches the origin pattern, false otherwise.
143
+ */
144
+ isTrustedOrigin: (url: string, settings?: {
145
+ allowRelativePaths: boolean;
146
+ }) => boolean;
147
+ oauthConfig: {
148
+ /**
149
+ * This is dangerous and should only be used in dev or staging environments.
150
+ */
151
+ skipStateCookieCheck?: boolean | undefined;
152
+ /**
153
+ * Strategy for storing OAuth state
154
+ *
155
+ * - "cookie": Store state in an encrypted cookie (stateless)
156
+ * - "database": Store state in the database
157
+ *
158
+ * @default "cookie"
159
+ */
160
+ storeStateStrategy: "database" | "cookie";
161
+ };
162
+ /**
163
+ * New session that will be set after the request
164
+ * meaning: there is a `set-cookie` header that will set
165
+ * the session cookie. This is the fetched session. And it's set
166
+ * by `setNewSession` method.
167
+ */
168
+ newSession: {
169
+ session: Session & Record<string, any>;
170
+ user: User & Record<string, any>;
171
+ } | null;
172
+ session: {
173
+ session: Session & Record<string, any>;
174
+ user: User & Record<string, any>;
175
+ } | null;
176
+ setNewSession: (session: {
177
+ session: Session & Record<string, any>;
178
+ user: User & Record<string, any>;
179
+ } | null) => void;
180
+ socialProviders: OAuthProvider[];
181
+ authCookies: BetterAuthCookies;
182
+ logger: ReturnType<typeof createLogger>;
183
+ rateLimit: {
184
+ enabled: boolean;
185
+ window: number;
186
+ max: number;
187
+ storage: "memory" | "database" | "secondary-storage";
188
+ } & Omit<BetterAuthRateLimitOptions, "enabled" | "window" | "max" | "storage">;
189
+ adapter: DBAdapter<Options>;
190
+ internalAdapter: InternalAdapter<Options>;
191
+ createAuthCookie: CreateCookieGetterFn;
192
+ secret: string;
193
+ sessionConfig: {
194
+ updateAge: number;
195
+ expiresIn: number;
196
+ freshAge: number;
197
+ cookieRefreshCache: false | {
198
+ enabled: true;
199
+ updateAge: number;
200
+ };
201
+ };
202
+ generateId: (options: {
203
+ model: ModelNames;
204
+ size?: number | undefined;
205
+ }) => string | false;
206
+ secondaryStorage: SecondaryStorage | undefined;
207
+ password: {
208
+ hash: (password: string) => Promise<string>;
209
+ verify: (data: {
210
+ password: string;
211
+ hash: string;
212
+ }) => Promise<boolean>;
213
+ config: {
214
+ minPasswordLength: number;
215
+ maxPasswordLength: number;
216
+ };
217
+ checkPassword: CheckPasswordFn<Options>;
218
+ };
219
+ tables: BetterAuthDBSchema;
220
+ runMigrations: () => Promise<void>;
221
+ publishTelemetry: (event: {
222
+ type: string;
223
+ anonymousId?: string | undefined;
224
+ payload: Record<string, any>;
225
+ }) => Promise<void>;
226
+ /**
227
+ * Skip origin check for requests.
228
+ *
229
+ * - `true`: Skip for ALL requests (DANGEROUS - disables CSRF protection)
230
+ * - `string[]`: Skip only for specific paths (e.g., SAML callbacks)
231
+ * - `false`: Enable origin check (default)
232
+ *
233
+ * Paths support prefix matching (e.g., "/sso/saml2/callback" matches
234
+ * "/sso/saml2/callback/provider-name").
235
+ *
236
+ * @default false (true in test environments)
237
+ */
238
+ skipOriginCheck: boolean | string[];
239
+ /**
240
+ * This skips the CSRF check for all requests.
241
+ *
242
+ * This is inferred from the `options.advanced?.
243
+ * disableCSRFCheck` option.
244
+ *
245
+ * @default false
246
+ */
247
+ skipCSRFCheck: boolean;
248
+ /**
249
+ * Background task handler for deferred operations.
250
+ *
251
+ * This is inferred from the `options.advanced?.backgroundTasks?.handler` option.
252
+ * Defaults to a no-op that just runs the promise.
253
+ */
254
+ runInBackground: (promise: Promise<unknown>) => void;
255
+ /**
256
+ * Runs a task in the background if `runInBackground` is configured,
257
+ * otherwise awaits the task directly.
258
+ *
259
+ * This is useful for operations like sending emails where we want
260
+ * to avoid blocking the response when possible (for timing attack
261
+ * mitigation), but still ensure the operation completes.
262
+ */
263
+ runInBackgroundOrAwait: (promise: Promise<unknown> | void) => Awaitable<unknown>;
264
+ };
265
+ //#endregion
266
+ export { AuthContext, BetterAuthPluginRegistry, BetterAuthPluginRegistryIdentifier, GenericEndpointContext, InfoContext, InternalAdapter, PluginContext };
267
+ //# sourceMappingURL=context.d.mts.map
@@ -0,0 +1,16 @@
1
+ import { CookieOptions } from "better-call";
2
+
3
+ //#region src/types/cookie.d.ts
4
+ type BetterAuthCookie = {
5
+ name: string;
6
+ attributes: CookieOptions;
7
+ };
8
+ type BetterAuthCookies = {
9
+ sessionToken: BetterAuthCookie;
10
+ sessionData: BetterAuthCookie;
11
+ accountData: BetterAuthCookie;
12
+ dontRememberToken: BetterAuthCookie;
13
+ };
14
+ //#endregion
15
+ export { BetterAuthCookie, BetterAuthCookies };
16
+ //# sourceMappingURL=cookie.d.mts.map
@@ -0,0 +1,10 @@
1
+ //#region src/types/helper.d.ts
2
+ type Primitive = string | number | symbol | bigint | boolean | null | undefined;
3
+ type Awaitable<T> = T | Promise<T>;
4
+ type LiteralString = "" | (string & Record<never, never>);
5
+ type LiteralUnion<LiteralType, BaseType extends Primitive> = LiteralType | (BaseType & Record<never, never>);
6
+ type Prettify<T> = { [K in keyof T]: T[K] } & {};
7
+ type UnionToIntersection<U> = (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never;
8
+ //#endregion
9
+ export { Awaitable, LiteralString, LiteralUnion, Prettify, Primitive, UnionToIntersection };
10
+ //# sourceMappingURL=helper.d.mts.map
@@ -0,0 +1,8 @@
1
+ import { Awaitable, LiteralString, LiteralUnion, Prettify, Primitive, UnionToIntersection } from "./helper.mjs";
2
+ import { BetterAuthCookie, BetterAuthCookies } from "./cookie.mjs";
3
+ import { BetterAuthPlugin, HookEndpointContext } from "./plugin.mjs";
4
+ import { BetterAuthAdvancedOptions, BetterAuthOptions, BetterAuthRateLimitOptions, BetterAuthRateLimitRule, BetterAuthRateLimitStorage, GenerateIdFn, StoreIdentifierOption } from "./init-options.mjs";
5
+ import { AuthContext, BetterAuthPluginRegistry, BetterAuthPluginRegistryIdentifier, GenericEndpointContext, InfoContext, InternalAdapter, PluginContext } from "./context.mjs";
6
+ import { BetterAuthClientOptions, BetterAuthClientPlugin, ClientAtomListener, ClientFetchOption, ClientStore } from "./plugin-client.mjs";
7
+ import { StandardSchemaV1 as StandardSchemaV1$1 } from "@standard-schema/spec";
8
+ export { type StandardSchemaV1$1 as StandardSchemaV1 };