@masheev/better-auth 0.0.0-stage → 1.7.5

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 (465) hide show
  1. package/LICENSE.md +20 -0
  2. package/README.md +31 -2
  3. package/TYPE-PATCH-NOTICE.md +9 -0
  4. package/TYPE-PATCH-PROVENANCE.json +267 -0
  5. package/dist/_virtual/_rolldown/runtime.mjs +27 -0
  6. package/dist/adapters/drizzle-adapter/index.d.mts +1 -0
  7. package/dist/adapters/drizzle-adapter/index.mjs +2 -0
  8. package/dist/adapters/index.d.mts +26 -0
  9. package/dist/adapters/index.mjs +9 -0
  10. package/dist/adapters/kysely-adapter/index.d.mts +1 -0
  11. package/dist/adapters/kysely-adapter/index.mjs +2 -0
  12. package/dist/adapters/memory-adapter/index.d.mts +1 -0
  13. package/dist/adapters/memory-adapter/index.mjs +2 -0
  14. package/dist/adapters/mongodb-adapter/index.d.mts +1 -0
  15. package/dist/adapters/mongodb-adapter/index.mjs +2 -0
  16. package/dist/adapters/prisma-adapter/index.d.mts +1 -0
  17. package/dist/adapters/prisma-adapter/index.mjs +2 -0
  18. package/dist/api/dispatch.d.mts +34 -0
  19. package/dist/api/dispatch.mjs +275 -0
  20. package/dist/api/index.d.mts +4053 -0
  21. package/dist/api/index.mjs +220 -0
  22. package/dist/api/middlewares/authorization.d.mts +69 -0
  23. package/dist/api/middlewares/authorization.mjs +78 -0
  24. package/dist/api/middlewares/index.d.mts +2 -0
  25. package/dist/api/middlewares/origin-check.d.mts +17 -0
  26. package/dist/api/middlewares/origin-check.mjs +155 -0
  27. package/dist/api/rate-limiter/index.mjs +318 -0
  28. package/dist/api/routes/account.d.mts +413 -0
  29. package/dist/api/routes/account.mjs +619 -0
  30. package/dist/api/routes/callback.d.mts +32 -0
  31. package/dist/api/routes/callback.mjs +261 -0
  32. package/dist/api/routes/email-verification.d.mts +160 -0
  33. package/dist/api/routes/email-verification.mjs +324 -0
  34. package/dist/api/routes/error.d.mts +27 -0
  35. package/dist/api/routes/error.mjs +387 -0
  36. package/dist/api/routes/index.d.mts +12 -0
  37. package/dist/api/routes/ok.d.mts +35 -0
  38. package/dist/api/routes/ok.mjs +27 -0
  39. package/dist/api/routes/password.d.mts +182 -0
  40. package/dist/api/routes/password.mjs +206 -0
  41. package/dist/api/routes/session.d.mts +450 -0
  42. package/dist/api/routes/session.mjs +481 -0
  43. package/dist/api/routes/sign-in.d.mts +186 -0
  44. package/dist/api/routes/sign-in.mjs +368 -0
  45. package/dist/api/routes/sign-out.d.mts +51 -0
  46. package/dist/api/routes/sign-out.mjs +96 -0
  47. package/dist/api/routes/sign-up.d.mts +159 -0
  48. package/dist/api/routes/sign-up.mjs +275 -0
  49. package/dist/api/routes/update-session.d.mts +74 -0
  50. package/dist/api/routes/update-session.mjs +57 -0
  51. package/dist/api/routes/update-user.d.mts +428 -0
  52. package/dist/api/routes/update-user.mjs +522 -0
  53. package/dist/api/state/oauth.d.mts +53 -0
  54. package/dist/api/state/oauth.mjs +38 -0
  55. package/dist/api/state/should-session-refresh.d.mts +12 -0
  56. package/dist/api/state/should-session-refresh.mjs +13 -0
  57. package/dist/api/to-auth-endpoints.mjs +60 -0
  58. package/dist/auth/base.mjs +66 -0
  59. package/dist/auth/full.d.mts +28 -0
  60. package/dist/auth/full.mjs +29 -0
  61. package/dist/auth/minimal.d.mts +10 -0
  62. package/dist/auth/minimal.mjs +11 -0
  63. package/dist/auth/trusted-origins.mjs +106 -0
  64. package/dist/client/broadcast-channel.d.mts +19 -0
  65. package/dist/client/broadcast-channel.mjs +44 -0
  66. package/dist/client/config.d.mts +90 -0
  67. package/dist/client/config.mjs +113 -0
  68. package/dist/client/equality.d.mts +19 -0
  69. package/dist/client/equality.mjs +42 -0
  70. package/dist/client/fetch-plugins.mjs +17 -0
  71. package/dist/client/focus-manager.d.mts +10 -0
  72. package/dist/client/focus-manager.mjs +30 -0
  73. package/dist/client/index.d.mts +35 -0
  74. package/dist/client/index.mjs +22 -0
  75. package/dist/client/lynx/index.d.mts +43 -0
  76. package/dist/client/lynx/index.mjs +22 -0
  77. package/dist/client/lynx/lynx-store.d.mts +46 -0
  78. package/dist/client/lynx/lynx-store.mjs +44 -0
  79. package/dist/client/online-manager.d.mts +11 -0
  80. package/dist/client/online-manager.mjs +33 -0
  81. package/dist/client/parser.d.mts +10 -0
  82. package/dist/client/parser.mjs +70 -0
  83. package/dist/client/path-to-object.d.mts +113 -0
  84. package/dist/client/plugins/index.d.mts +44 -0
  85. package/dist/client/plugins/index.mjs +30 -0
  86. package/dist/client/plugins/infer-plugin.d.mts +16 -0
  87. package/dist/client/plugins/infer-plugin.mjs +11 -0
  88. package/dist/client/proxy.mjs +78 -0
  89. package/dist/client/query.d.mts +23 -0
  90. package/dist/client/query.mjs +124 -0
  91. package/dist/client/react/index.d.mts +44 -0
  92. package/dist/client/react/index.mjs +22 -0
  93. package/dist/client/react/react-store.d.mts +46 -0
  94. package/dist/client/react/react-store.mjs +44 -0
  95. package/dist/client/session-atom.d.mts +11 -0
  96. package/dist/client/session-atom.mjs +178 -0
  97. package/dist/client/session-refresh.d.mts +20 -0
  98. package/dist/client/session-refresh.mjs +131 -0
  99. package/dist/client/solid/index.d.mts +44 -0
  100. package/dist/client/solid/index.mjs +22 -0
  101. package/dist/client/solid/solid-store.mjs +21 -0
  102. package/dist/client/svelte/index.d.mts +44 -0
  103. package/dist/client/svelte/index.mjs +18 -0
  104. package/dist/client/types.d.mts +51 -0
  105. package/dist/client/vanilla.d.mts +42 -0
  106. package/dist/client/vanilla.mjs +18 -0
  107. package/dist/client/vue/index.d.mts +67 -0
  108. package/dist/client/vue/index.mjs +54 -0
  109. package/dist/client/vue/vue-store.mjs +23 -0
  110. package/dist/context/create-context.mjs +235 -0
  111. package/dist/context/helpers.mjs +158 -0
  112. package/dist/context/init-minimal.mjs +17 -0
  113. package/dist/context/init.mjs +19 -0
  114. package/dist/context/secret-utils.mjs +53 -0
  115. package/dist/context/store-capabilities.mjs +12 -0
  116. package/dist/cookies/cache.mjs +33 -0
  117. package/dist/cookies/cookie-utils.d.mts +72 -0
  118. package/dist/cookies/cookie-utils.mjs +203 -0
  119. package/dist/cookies/index.d.mts +124 -0
  120. package/dist/cookies/index.mjs +350 -0
  121. package/dist/cookies/jwt.mjs +44 -0
  122. package/dist/cookies/session-store.d.mts +32 -0
  123. package/dist/cookies/session-store.mjs +183 -0
  124. package/dist/crypto/buffer.d.mts +7 -0
  125. package/dist/crypto/buffer.mjs +16 -0
  126. package/dist/crypto/index.d.mts +32 -0
  127. package/dist/crypto/index.mjs +69 -0
  128. package/dist/crypto/jwt.d.mts +9 -0
  129. package/dist/crypto/jwt.mjs +141 -0
  130. package/dist/crypto/password.d.mts +13 -0
  131. package/dist/crypto/password.mjs +14 -0
  132. package/dist/crypto/random.d.mts +4 -0
  133. package/dist/crypto/random.mjs +5 -0
  134. package/dist/db/adapter-base.d.mts +7 -0
  135. package/dist/db/adapter-base.mjs +25 -0
  136. package/dist/db/adapter-kysely.d.mts +7 -0
  137. package/dist/db/adapter-kysely.mjs +17 -0
  138. package/dist/db/field-converter.d.mts +7 -0
  139. package/dist/db/field-converter.mjs +19 -0
  140. package/dist/db/field.d.mts +41 -0
  141. package/dist/db/get-migration.d.mts +56 -0
  142. package/dist/db/get-migration.mjs +685 -0
  143. package/dist/db/get-schema.d.mts +13 -0
  144. package/dist/db/get-schema.mjs +39 -0
  145. package/dist/db/index.d.mts +10 -0
  146. package/dist/db/index.mjs +35 -0
  147. package/dist/db/internal-adapter.d.mts +14 -0
  148. package/dist/db/internal-adapter.mjs +951 -0
  149. package/dist/db/revoke-unproven-account-access.d.mts +21 -0
  150. package/dist/db/revoke-unproven-account-access.mjs +58 -0
  151. package/dist/db/schema.d.mts +62 -0
  152. package/dist/db/schema.mjs +161 -0
  153. package/dist/db/to-zod.d.mts +35 -0
  154. package/dist/db/to-zod.mjs +23 -0
  155. package/dist/db/verification-token-storage.mjs +25 -0
  156. package/dist/db/with-hooks.d.mts +37 -0
  157. package/dist/db/with-hooks.mjs +255 -0
  158. package/dist/index.d.mts +30 -0
  159. package/dist/index.mjs +17 -0
  160. package/dist/integrations/cookie-plugin-guard.mjs +18 -0
  161. package/dist/integrations/next-js.d.mts +29 -0
  162. package/dist/integrations/next-js.mjs +105 -0
  163. package/dist/integrations/node.d.mts +11 -0
  164. package/dist/integrations/node.mjs +13 -0
  165. package/dist/integrations/solid-start.d.mts +22 -0
  166. package/dist/integrations/solid-start.mjs +15 -0
  167. package/dist/integrations/svelte-kit.d.mts +38 -0
  168. package/dist/integrations/svelte-kit.mjs +57 -0
  169. package/dist/integrations/tanstack-start-solid.d.mts +33 -0
  170. package/dist/integrations/tanstack-start-solid.mjs +57 -0
  171. package/dist/integrations/tanstack-start.d.mts +33 -0
  172. package/dist/integrations/tanstack-start.mjs +57 -0
  173. package/dist/oauth2/account-key.mjs +43 -0
  174. package/dist/oauth2/errors.mjs +49 -0
  175. package/dist/oauth2/index.d.mts +5 -0
  176. package/dist/oauth2/index.mjs +5 -0
  177. package/dist/oauth2/link-account.d.mts +96 -0
  178. package/dist/oauth2/link-account.mjs +329 -0
  179. package/dist/oauth2/state.d.mts +54 -0
  180. package/dist/oauth2/state.mjs +67 -0
  181. package/dist/oauth2/utils.d.mts +11 -0
  182. package/dist/oauth2/utils.mjs +33 -0
  183. package/dist/package.mjs +4 -0
  184. package/dist/plugins/access/access.d.mts +17 -0
  185. package/dist/plugins/access/access.mjs +78 -0
  186. package/dist/plugins/access/index.d.mts +3 -0
  187. package/dist/plugins/access/index.mjs +2 -0
  188. package/dist/plugins/access/types.d.mts +24 -0
  189. package/dist/plugins/additional-fields/client.d.mts +100 -0
  190. package/dist/plugins/additional-fields/client.mjs +11 -0
  191. package/dist/plugins/admin/access/index.d.mts +2 -0
  192. package/dist/plugins/admin/access/index.mjs +2 -0
  193. package/dist/plugins/admin/access/statement.d.mts +51 -0
  194. package/dist/plugins/admin/access/statement.mjs +52 -0
  195. package/dist/plugins/admin/admin.d.mts +911 -0
  196. package/dist/plugins/admin/admin.mjs +89 -0
  197. package/dist/plugins/admin/client.d.mts +81 -0
  198. package/dist/plugins/admin/client.mjs +39 -0
  199. package/dist/plugins/admin/error-codes.d.mts +30 -0
  200. package/dist/plugins/admin/error-codes.mjs +29 -0
  201. package/dist/plugins/admin/has-permission.mjs +12 -0
  202. package/dist/plugins/admin/index.d.mts +3 -0
  203. package/dist/plugins/admin/index.mjs +2 -0
  204. package/dist/plugins/admin/routes.mjs +919 -0
  205. package/dist/plugins/admin/schema.d.mts +40 -0
  206. package/dist/plugins/admin/schema.mjs +33 -0
  207. package/dist/plugins/admin/types.d.mts +88 -0
  208. package/dist/plugins/anonymous/client.d.mts +32 -0
  209. package/dist/plugins/anonymous/client.mjs +21 -0
  210. package/dist/plugins/anonymous/error-codes.d.mts +15 -0
  211. package/dist/plugins/anonymous/error-codes.mjs +14 -0
  212. package/dist/plugins/anonymous/index.d.mts +175 -0
  213. package/dist/plugins/anonymous/index.mjs +219 -0
  214. package/dist/plugins/anonymous/schema.d.mts +15 -0
  215. package/dist/plugins/anonymous/schema.mjs +9 -0
  216. package/dist/plugins/anonymous/types.d.mts +65 -0
  217. package/dist/plugins/bearer/index.d.mts +45 -0
  218. package/dist/plugins/bearer/index.mjs +74 -0
  219. package/dist/plugins/captcha/constants.d.mts +9 -0
  220. package/dist/plugins/captcha/constants.mjs +27 -0
  221. package/dist/plugins/captcha/error-codes.mjs +13 -0
  222. package/dist/plugins/captcha/index.d.mts +27 -0
  223. package/dist/plugins/captcha/index.mjs +79 -0
  224. package/dist/plugins/captcha/types.d.mts +52 -0
  225. package/dist/plugins/captcha/utils.mjs +9 -0
  226. package/dist/plugins/captcha/verify-handlers/captchafox.mjs +27 -0
  227. package/dist/plugins/captcha/verify-handlers/cloudflare-turnstile.mjs +47 -0
  228. package/dist/plugins/captcha/verify-handlers/google-recaptcha.mjs +32 -0
  229. package/dist/plugins/captcha/verify-handlers/h-captcha.mjs +27 -0
  230. package/dist/plugins/custom-session/client.d.mts +17 -0
  231. package/dist/plugins/custom-session/client.mjs +7 -0
  232. package/dist/plugins/custom-session/index.d.mts +73 -0
  233. package/dist/plugins/custom-session/index.mjs +65 -0
  234. package/dist/plugins/device-authorization/client.d.mts +17 -0
  235. package/dist/plugins/device-authorization/client.mjs +18 -0
  236. package/dist/plugins/device-authorization/error-codes.mjs +19 -0
  237. package/dist/plugins/device-authorization/index.d.mts +558 -0
  238. package/dist/plugins/device-authorization/index.mjs +87 -0
  239. package/dist/plugins/device-authorization/routes.d.mts +32 -0
  240. package/dist/plugins/device-authorization/routes.mjs +725 -0
  241. package/dist/plugins/device-authorization/schema.d.mts +18 -0
  242. package/dist/plugins/device-authorization/schema.mjs +63 -0
  243. package/dist/plugins/email-otp/client.d.mts +21 -0
  244. package/dist/plugins/email-otp/client.mjs +17 -0
  245. package/dist/plugins/email-otp/error-codes.d.mts +10 -0
  246. package/dist/plugins/email-otp/error-codes.mjs +9 -0
  247. package/dist/plugins/email-otp/index.d.mts +551 -0
  248. package/dist/plugins/email-otp/index.mjs +145 -0
  249. package/dist/plugins/email-otp/otp-token.mjs +55 -0
  250. package/dist/plugins/email-otp/routes.mjs +784 -0
  251. package/dist/plugins/email-otp/types.d.mts +109 -0
  252. package/dist/plugins/email-otp/utils.mjs +17 -0
  253. package/dist/plugins/generic-oauth/error-codes.mjs +8 -0
  254. package/dist/plugins/generic-oauth/index.d.mts +52 -0
  255. package/dist/plugins/generic-oauth/index.mjs +279 -0
  256. package/dist/plugins/generic-oauth/providers/auth0.d.mts +36 -0
  257. package/dist/plugins/generic-oauth/providers/auth0.mjs +49 -0
  258. package/dist/plugins/generic-oauth/providers/gumroad.d.mts +31 -0
  259. package/dist/plugins/generic-oauth/providers/gumroad.mjs +62 -0
  260. package/dist/plugins/generic-oauth/providers/hubspot.d.mts +36 -0
  261. package/dist/plugins/generic-oauth/providers/hubspot.mjs +62 -0
  262. package/dist/plugins/generic-oauth/providers/index.d.mts +10 -0
  263. package/dist/plugins/generic-oauth/providers/keycloak.d.mts +36 -0
  264. package/dist/plugins/generic-oauth/providers/keycloak.mjs +47 -0
  265. package/dist/plugins/generic-oauth/providers/line.d.mts +54 -0
  266. package/dist/plugins/generic-oauth/providers/line.mjs +93 -0
  267. package/dist/plugins/generic-oauth/providers/microsoft-entra-id.d.mts +39 -0
  268. package/dist/plugins/generic-oauth/providers/microsoft-entra-id.mjs +104 -0
  269. package/dist/plugins/generic-oauth/providers/okta.d.mts +36 -0
  270. package/dist/plugins/generic-oauth/providers/okta.mjs +47 -0
  271. package/dist/plugins/generic-oauth/providers/patreon.d.mts +29 -0
  272. package/dist/plugins/generic-oauth/providers/patreon.mjs +61 -0
  273. package/dist/plugins/generic-oauth/providers/slack.d.mts +29 -0
  274. package/dist/plugins/generic-oauth/providers/slack.mjs +63 -0
  275. package/dist/plugins/generic-oauth/providers/yandex.d.mts +29 -0
  276. package/dist/plugins/generic-oauth/providers/yandex.mjs +67 -0
  277. package/dist/plugins/generic-oauth/types.d.mts +268 -0
  278. package/dist/plugins/haveibeenpwned/index.d.mts +63 -0
  279. package/dist/plugins/haveibeenpwned/index.mjs +81 -0
  280. package/dist/plugins/index.d.mts +69 -0
  281. package/dist/plugins/index.mjs +49 -0
  282. package/dist/plugins/jwt/adapter.mjs +68 -0
  283. package/dist/plugins/jwt/client.d.mts +41 -0
  284. package/dist/plugins/jwt/client.mjs +19 -0
  285. package/dist/plugins/jwt/cookie-cache.mjs +77 -0
  286. package/dist/plugins/jwt/index.d.mts +246 -0
  287. package/dist/plugins/jwt/index.mjs +214 -0
  288. package/dist/plugins/jwt/schema.d.mts +33 -0
  289. package/dist/plugins/jwt/schema.mjs +29 -0
  290. package/dist/plugins/jwt/sign.d.mts +128 -0
  291. package/dist/plugins/jwt/sign.mjs +130 -0
  292. package/dist/plugins/jwt/types.d.mts +256 -0
  293. package/dist/plugins/jwt/utils.d.mts +41 -0
  294. package/dist/plugins/jwt/utils.mjs +64 -0
  295. package/dist/plugins/jwt/verify.d.mts +11 -0
  296. package/dist/plugins/jwt/verify.mjs +45 -0
  297. package/dist/plugins/last-login-method/client.d.mts +48 -0
  298. package/dist/plugins/last-login-method/client.mjs +48 -0
  299. package/dist/plugins/last-login-method/index.d.mts +127 -0
  300. package/dist/plugins/last-login-method/index.mjs +98 -0
  301. package/dist/plugins/magic-link/client.d.mts +10 -0
  302. package/dist/plugins/magic-link/client.mjs +11 -0
  303. package/dist/plugins/magic-link/index.d.mts +213 -0
  304. package/dist/plugins/magic-link/index.mjs +208 -0
  305. package/dist/plugins/magic-link/utils.mjs +9 -0
  306. package/dist/plugins/multi-session/client.d.mts +19 -0
  307. package/dist/plugins/multi-session/client.mjs +19 -0
  308. package/dist/plugins/multi-session/error-codes.d.mts +8 -0
  309. package/dist/plugins/multi-session/error-codes.mjs +5 -0
  310. package/dist/plugins/multi-session/index.d.mts +212 -0
  311. package/dist/plugins/multi-session/index.mjs +217 -0
  312. package/dist/plugins/oauth-popup/client.d.mts +82 -0
  313. package/dist/plugins/oauth-popup/client.mjs +203 -0
  314. package/dist/plugins/oauth-popup/constants.d.mts +11 -0
  315. package/dist/plugins/oauth-popup/constants.mjs +11 -0
  316. package/dist/plugins/oauth-popup/error-codes.d.mts +11 -0
  317. package/dist/plugins/oauth-popup/error-codes.mjs +10 -0
  318. package/dist/plugins/oauth-popup/index.d.mts +67 -0
  319. package/dist/plugins/oauth-popup/index.mjs +232 -0
  320. package/dist/plugins/oauth-popup/types.d.mts +30 -0
  321. package/dist/plugins/oauth-proxy/index.d.mts +130 -0
  322. package/dist/plugins/oauth-proxy/index.mjs +407 -0
  323. package/dist/plugins/oauth-proxy/utils.mjs +55 -0
  324. package/dist/plugins/one-tap/client.d.mts +174 -0
  325. package/dist/plugins/one-tap/client.mjs +208 -0
  326. package/dist/plugins/one-tap/index.d.mts +82 -0
  327. package/dist/plugins/one-tap/index.mjs +100 -0
  328. package/dist/plugins/one-time-token/client.d.mts +10 -0
  329. package/dist/plugins/one-time-token/client.mjs +11 -0
  330. package/dist/plugins/one-time-token/index.d.mts +132 -0
  331. package/dist/plugins/one-time-token/index.mjs +107 -0
  332. package/dist/plugins/one-time-token/utils.mjs +9 -0
  333. package/dist/plugins/open-api/generator.d.mts +126 -0
  334. package/dist/plugins/open-api/generator.mjs +557 -0
  335. package/dist/plugins/open-api/index.d.mts +97 -0
  336. package/dist/plugins/open-api/index.mjs +65 -0
  337. package/dist/plugins/open-api/logo.mjs +13 -0
  338. package/dist/plugins/organization/access/index.d.mts +2 -0
  339. package/dist/plugins/organization/access/index.mjs +2 -0
  340. package/dist/plugins/organization/access/statement.d.mts +113 -0
  341. package/dist/plugins/organization/access/statement.mjs +77 -0
  342. package/dist/plugins/organization/adapter.d.mts +815 -0
  343. package/dist/plugins/organization/adapter.mjs +813 -0
  344. package/dist/plugins/organization/call.mjs +15 -0
  345. package/dist/plugins/organization/client.d.mts +375 -0
  346. package/dist/plugins/organization/client.mjs +104 -0
  347. package/dist/plugins/organization/error-codes.d.mts +66 -0
  348. package/dist/plugins/organization/error-codes.mjs +65 -0
  349. package/dist/plugins/organization/has-permission.d.mts +17 -0
  350. package/dist/plugins/organization/has-permission.mjs +34 -0
  351. package/dist/plugins/organization/index.d.mts +6 -0
  352. package/dist/plugins/organization/index.mjs +4 -0
  353. package/dist/plugins/organization/organization.d.mts +420 -0
  354. package/dist/plugins/organization/organization.mjs +886 -0
  355. package/dist/plugins/organization/permission.d.mts +15 -0
  356. package/dist/plugins/organization/permission.mjs +14 -0
  357. package/dist/plugins/organization/routes/crud-access-control.d.mts +511 -0
  358. package/dist/plugins/organization/routes/crud-access-control.mjs +674 -0
  359. package/dist/plugins/organization/routes/crud-invites.d.mts +1154 -0
  360. package/dist/plugins/organization/routes/crud-invites.mjs +602 -0
  361. package/dist/plugins/organization/routes/crud-members.d.mts +1057 -0
  362. package/dist/plugins/organization/routes/crud-members.mjs +518 -0
  363. package/dist/plugins/organization/routes/crud-org.d.mts +918 -0
  364. package/dist/plugins/organization/routes/crud-org.mjs +455 -0
  365. package/dist/plugins/organization/routes/crud-team.d.mts +1238 -0
  366. package/dist/plugins/organization/routes/crud-team.mjs +766 -0
  367. package/dist/plugins/organization/schema.d.mts +390 -0
  368. package/dist/plugins/organization/schema.mjs +65 -0
  369. package/dist/plugins/organization/types.d.mts +691 -0
  370. package/dist/plugins/phone-number/client.d.mts +31 -0
  371. package/dist/plugins/phone-number/client.mjs +19 -0
  372. package/dist/plugins/phone-number/error-codes.d.mts +19 -0
  373. package/dist/plugins/phone-number/error-codes.mjs +18 -0
  374. package/dist/plugins/phone-number/index.d.mts +360 -0
  375. package/dist/plugins/phone-number/index.mjs +57 -0
  376. package/dist/plugins/phone-number/routes.mjs +529 -0
  377. package/dist/plugins/phone-number/schema.d.mts +22 -0
  378. package/dist/plugins/phone-number/schema.mjs +18 -0
  379. package/dist/plugins/phone-number/types.d.mts +116 -0
  380. package/dist/plugins/siwe/client.d.mts +14 -0
  381. package/dist/plugins/siwe/client.mjs +15 -0
  382. package/dist/plugins/siwe/index.d.mts +62 -0
  383. package/dist/plugins/siwe/index.mjs +272 -0
  384. package/dist/plugins/siwe/parse-message.mjs +60 -0
  385. package/dist/plugins/siwe/schema.d.mts +35 -0
  386. package/dist/plugins/siwe/schema.mjs +30 -0
  387. package/dist/plugins/siwe/types.d.mts +43 -0
  388. package/dist/plugins/test-utils/auth-helpers.mjs +33 -0
  389. package/dist/plugins/test-utils/cookie-builder.mjs +55 -0
  390. package/dist/plugins/test-utils/db-helpers.mjs +65 -0
  391. package/dist/plugins/test-utils/factories.mjs +38 -0
  392. package/dist/plugins/test-utils/index.d.mts +73 -0
  393. package/dist/plugins/test-utils/index.mjs +97 -0
  394. package/dist/plugins/test-utils/otp-sink.mjs +21 -0
  395. package/dist/plugins/test-utils/types.d.mts +51 -0
  396. package/dist/plugins/two-factor/backup-codes/index.d.mts +291 -0
  397. package/dist/plugins/two-factor/backup-codes/index.mjs +341 -0
  398. package/dist/plugins/two-factor/client.d.mts +76 -0
  399. package/dist/plugins/two-factor/client.mjs +41 -0
  400. package/dist/plugins/two-factor/constant.mjs +6 -0
  401. package/dist/plugins/two-factor/error-code.d.mts +20 -0
  402. package/dist/plugins/two-factor/error-code.mjs +19 -0
  403. package/dist/plugins/two-factor/index.d.mts +720 -0
  404. package/dist/plugins/two-factor/index.mjs +349 -0
  405. package/dist/plugins/two-factor/otp/index.d.mts +216 -0
  406. package/dist/plugins/two-factor/otp/index.mjs +252 -0
  407. package/dist/plugins/two-factor/schema.d.mts +59 -0
  408. package/dist/plugins/two-factor/schema.mjs +53 -0
  409. package/dist/plugins/two-factor/totp/index.d.mts +219 -0
  410. package/dist/plugins/two-factor/totp/index.mjs +230 -0
  411. package/dist/plugins/two-factor/types.d.mts +111 -0
  412. package/dist/plugins/two-factor/utils.mjs +9 -0
  413. package/dist/plugins/two-factor/verify-two-factor.mjs +205 -0
  414. package/dist/plugins/username/client.d.mts +38 -0
  415. package/dist/plugins/username/client.mjs +17 -0
  416. package/dist/plugins/username/error-codes.d.mts +16 -0
  417. package/dist/plugins/username/error-codes.mjs +15 -0
  418. package/dist/plugins/username/index.d.mts +326 -0
  419. package/dist/plugins/username/index.mjs +312 -0
  420. package/dist/plugins/username/schema.d.mts +50 -0
  421. package/dist/plugins/username/schema.mjs +25 -0
  422. package/dist/social-providers/index.d.mts +1 -0
  423. package/dist/social-providers/index.mjs +2 -0
  424. package/dist/state.d.mts +48 -0
  425. package/dist/state.mjs +149 -0
  426. package/dist/test-utils/headers.d.mts +8 -0
  427. package/dist/test-utils/headers.mjs +17 -0
  428. package/dist/test-utils/http-test-instance.d.mts +413 -0
  429. package/dist/test-utils/http-test-instance.mjs +107 -0
  430. package/dist/test-utils/index.d.mts +4 -0
  431. package/dist/test-utils/index.mjs +4 -0
  432. package/dist/test-utils/test-instance.d.mts +56 -0
  433. package/dist/test-utils/test-instance.mjs +242 -0
  434. package/dist/types/adapter.d.mts +2 -0
  435. package/dist/types/api.d.mts +28 -0
  436. package/dist/types/auth.d.mts +32 -0
  437. package/dist/types/helper.d.mts +26 -0
  438. package/dist/types/index.d.mts +10 -0
  439. package/dist/types/index.mjs +1 -0
  440. package/dist/types/models.d.mts +10 -0
  441. package/dist/types/plugins.d.mts +19 -0
  442. package/dist/utils/boolean.mjs +6 -0
  443. package/dist/utils/constants.mjs +4 -0
  444. package/dist/utils/date.mjs +6 -0
  445. package/dist/utils/hashing.mjs +18 -0
  446. package/dist/utils/hide-metadata.d.mts +6 -0
  447. package/dist/utils/hide-metadata.mjs +4 -0
  448. package/dist/utils/index.d.mts +4 -0
  449. package/dist/utils/is-api-error.d.mts +2 -0
  450. package/dist/utils/is-api-error.mjs +2 -0
  451. package/dist/utils/is-atom.mjs +6 -0
  452. package/dist/utils/is-promise.mjs +6 -0
  453. package/dist/utils/middleware-response.mjs +7 -0
  454. package/dist/utils/password.mjs +32 -0
  455. package/dist/utils/plugin-helper.mjs +14 -0
  456. package/dist/utils/request.mjs +23 -0
  457. package/dist/utils/shim.mjs +22 -0
  458. package/dist/utils/time.d.mts +48 -0
  459. package/dist/utils/time.mjs +98 -0
  460. package/dist/utils/url.d.mts +78 -0
  461. package/dist/utils/url.mjs +238 -0
  462. package/dist/utils/validate-user-info.mjs +44 -0
  463. package/dist/utils/wildcard.mjs +106 -0
  464. package/dist/version.mjs +5 -0
  465. package/package.json +595 -3
@@ -0,0 +1,691 @@
1
+ import { Session as Session$1, User as User$1 } from "../../types/models.mjs";
2
+ import { AccessControl, Role } from "../access/types.mjs";
3
+ import { Invitation, Member, Organization, OrganizationRole, Team, TeamMember } from "./schema.mjs";
4
+ import { AuthContext, Awaitable, GenericEndpointContext } from "@better-auth/core";
5
+ import { DBFieldAttribute } from "@better-auth/core/db";
6
+
7
+ //#region src/plugins/organization/types.d.ts
8
+ interface OrganizationOptions {
9
+ /**
10
+ * Configure whether new users are able to create new organizations.
11
+ * You can also pass a function that returns a boolean.
12
+ *
13
+ * @example
14
+ * ```ts
15
+ * allowUserToCreateOrganization: async (user) => {
16
+ * const plan = await getUserPlan(user);
17
+ * return plan.name === "pro";
18
+ * }
19
+ * ```
20
+ * @default true
21
+ */
22
+ allowUserToCreateOrganization?: (boolean | ((user: User$1 & Record<string, any>) => Awaitable<boolean>)) | undefined;
23
+ /**
24
+ * The maximum number of organizations a user can create.
25
+ *
26
+ * You can also pass a function that returns a boolean. The function should return `true` if the user has reached their organization limit, and `false` otherwise.
27
+ *
28
+ * @default unlimited
29
+ * @example
30
+ * ```ts
31
+ * organizationLimit: async (user) => {
32
+ * const plan = await getUserPlan(user);
33
+ * // Return true if the user has reached their organization limit, false otherwise
34
+ * return plan.name === "pro";
35
+ * }
36
+ * ```
37
+ */
38
+ organizationLimit?: (number | ((user: User$1 & Record<string, any>) => Awaitable<boolean>)) | undefined;
39
+ /**
40
+ * The role that is assigned to the creator of the
41
+ * organization.
42
+ *
43
+ * @default "owner"
44
+ */
45
+ creatorRole?: string | undefined;
46
+ /**
47
+ * The maximum number of members allowed in an organization.
48
+ *
49
+ * You can also pass a function that returns the limit number
50
+ *
51
+ * @default 100
52
+ */
53
+ membershipLimit?: number | ((user: User$1, organization: Organization) => Promise<number> | number) | undefined;
54
+ /**
55
+ * Configure the roles and permissions for the
56
+ * organization plugin.
57
+ */
58
+ ac?: AccessControl | undefined;
59
+ /**
60
+ * Custom permissions for roles.
61
+ */
62
+ roles?: { [key in string]?: Role<any> } | undefined;
63
+ /**
64
+ * Dynamic access control for the organization plugin.
65
+ */
66
+ dynamicAccessControl?: {
67
+ /**
68
+ * Whether to enable dynamic access control for the organization plugin.
69
+ *
70
+ * @default false
71
+ */
72
+ enabled?: boolean;
73
+ /**
74
+ * The maximum number of roles that can be created for an organization.
75
+ *
76
+ * @default Infinite
77
+ */
78
+ maximumRolesPerOrganization?: number | ((organizationId: string) => Awaitable<number>);
79
+ } | undefined;
80
+ /**
81
+ * Support for team.
82
+ */
83
+ teams?: {
84
+ /**
85
+ * Enable team features.
86
+ */
87
+ enabled: boolean;
88
+ /**
89
+ * Default team configuration
90
+ */
91
+ defaultTeam?: {
92
+ /**
93
+ * Enable creating a default team when an organization is created
94
+ *
95
+ * @default true
96
+ */
97
+ enabled: boolean;
98
+ /**
99
+ * Pass a custom default team creator function
100
+ */
101
+ customCreateDefaultTeam?: (organization: Organization & Record<string, any>, ctx?: GenericEndpointContext) => Promise<Team & Record<string, any>>;
102
+ };
103
+ /**
104
+ * Maximum number of teams an organization can have.
105
+ *
106
+ * You can pass a number or a function that returns a number
107
+ *
108
+ * @default "unlimited"
109
+ *
110
+ * @param organization
111
+ * @param request
112
+ * @returns
113
+ */
114
+ maximumTeams?: ((data: {
115
+ organizationId: string;
116
+ session: {
117
+ user: User$1;
118
+ session: Session$1;
119
+ } | null;
120
+ }, ctx?: GenericEndpointContext) => Awaitable<number>) | number;
121
+ /**
122
+ * The maximum number of members per team.
123
+ *
124
+ * if `undefined`, there is no limit.
125
+ *
126
+ * @default undefined
127
+ */
128
+ maximumMembersPerTeam?: number | ((data: {
129
+ teamId: string;
130
+ session: {
131
+ user: User$1;
132
+ session: Session$1;
133
+ };
134
+ organizationId: string;
135
+ }) => Awaitable<number>) | undefined;
136
+ /**
137
+ * By default, if an organization does only have one team, they'll not be able to remove it.
138
+ *
139
+ * You can disable this behavior by setting this to `false.
140
+ *
141
+ * @default false
142
+ */
143
+ allowRemovingAllTeams?: boolean;
144
+ };
145
+ /**
146
+ * The expiration time for the invitation link.
147
+ *
148
+ * @default 48 hours
149
+ */
150
+ invitationExpiresIn?: number | undefined;
151
+ /**
152
+ * The maximum invitation a user can send.
153
+ *
154
+ * @default 100
155
+ */
156
+ invitationLimit?: number | ((data: {
157
+ user: User$1 & Record<string, any>;
158
+ organization: Organization & Record<string, any>;
159
+ member: Member & Record<string, any>;
160
+ }, ctx: AuthContext) => Awaitable<number>) | undefined;
161
+ /**
162
+ * Cancel pending invitations on re-invite.
163
+ *
164
+ * @default false
165
+ */
166
+ cancelPendingInvitationsOnReInvite?: boolean | undefined;
167
+ /**
168
+ * Require email verification before session-authenticated recipient
169
+ * invitation calls that carry an invitation ID (accept, reject, get).
170
+ *
171
+ * When unset, Better Auth preserves the normal emailed-invitation flow for
172
+ * built-in opaque invitation IDs, including the default generator and
173
+ * `advanced.database.generateId: "uuid"`. It requires verification for
174
+ * externally controlled or predictable invitation IDs, such as
175
+ * `advanced.database.generateId: "serial"` / `false` or custom ID
176
+ * generation.
177
+ *
178
+ * Set this option to `true` when invitation IDs may be visible outside the
179
+ * invited user's mailbox, when organization invitation lists are exposed to
180
+ * members, or when verified email should be the ownership proof for by-ID
181
+ * invitation actions. Client-side `listUserInvitations` calls always require
182
+ * a verified session email because they enumerate invitation IDs from
183
+ * `session.user.email`. Server-side `listUserInvitations` calls without a
184
+ * session (caller passes `ctx.query.email`) continue to bypass the gate
185
+ * because the caller is trusted.
186
+ *
187
+ * @default undefined
188
+ */
189
+ requireEmailVerificationOnInvitation?: boolean | undefined;
190
+ /**
191
+ * Send an email with the
192
+ * invitation link to the user.
193
+ *
194
+ * Note: Better Auth doesn't
195
+ * generate invitation URLs.
196
+ * You'll need to construct the
197
+ * URL using the invitation ID
198
+ * and pass it to the
199
+ * acceptInvitation endpoint for
200
+ * the user to accept the
201
+ * invitation.
202
+ *
203
+ * @example
204
+ * ```ts
205
+ * sendInvitationEmail: async (data) => {
206
+ * const url = `https://yourapp.com/organization/
207
+ * accept-invitation?id=${data.id}`;
208
+ * sendEmail(data.email, "Invitation to join
209
+ * organization", `Click the link to join the
210
+ * organization: ${url}`);
211
+ * }
212
+ * ```
213
+ */
214
+ sendInvitationEmail?: ((data: {
215
+ /**
216
+ * the invitation id
217
+ */
218
+ id: string;
219
+ /**
220
+ * the role of the user
221
+ */
222
+ role: string;
223
+ /**
224
+ * the email of the user
225
+ */
226
+ email: string;
227
+ /**
228
+ * the organization the user is invited to join
229
+ */
230
+ organization: Organization;
231
+ /**
232
+ * the invitation object
233
+ */
234
+ invitation: Invitation;
235
+ /**
236
+ * the member who is inviting the user
237
+ */
238
+ inviter: Member & {
239
+ user: User$1;
240
+ };
241
+ },
242
+ /**
243
+ * The request object
244
+ */
245
+
246
+ request?: Request) => Promise<void>) | undefined;
247
+ /**
248
+ * The schema for the organization plugin.
249
+ */
250
+ schema?: {
251
+ session?: {
252
+ fields?: {
253
+ activeOrganizationId?: string;
254
+ activeTeamId?: string;
255
+ };
256
+ };
257
+ organization?: {
258
+ modelName?: string;
259
+ fields?: { [key in keyof Omit<Organization, "id">]?: string };
260
+ additionalFields?: { [key in string]: DBFieldAttribute };
261
+ };
262
+ member?: {
263
+ modelName?: string;
264
+ fields?: { [key in keyof Omit<Member, "id">]?: string };
265
+ additionalFields?: { [key in string]: DBFieldAttribute };
266
+ };
267
+ invitation?: {
268
+ modelName?: string;
269
+ fields?: { [key in keyof Omit<Invitation, "id">]?: string };
270
+ additionalFields?: { [key in string]: DBFieldAttribute };
271
+ };
272
+ team?: {
273
+ modelName?: string;
274
+ fields?: { [key in keyof Omit<Team, "id"> | "memberCount"]?: string };
275
+ additionalFields?: { [key in string]: DBFieldAttribute };
276
+ };
277
+ teamMember?: {
278
+ modelName?: string;
279
+ fields?: { [key in keyof Omit<TeamMember, "id"> | "membershipKey"]?: string };
280
+ };
281
+ organizationRole?: {
282
+ modelName?: string;
283
+ fields?: { [key in keyof Omit<OrganizationRole, "id">]?: string };
284
+ additionalFields?: { [key in string]: DBFieldAttribute };
285
+ };
286
+ } | undefined;
287
+ /**
288
+ * Disable organization deletion
289
+ *
290
+ * @default false
291
+ */
292
+ disableOrganizationDeletion?: boolean | undefined;
293
+ /**
294
+ * Hooks for organization
295
+ */
296
+ organizationHooks?: {
297
+ /**
298
+ * A callback that runs before the organization is created
299
+ *
300
+ * You can return a `data` object to override the default data.
301
+ *
302
+ * @example
303
+ * ```ts
304
+ * beforeCreateOrganization: async (data) => {
305
+ * return {
306
+ * data: {
307
+ * ...data.organization,
308
+ * },
309
+ * };
310
+ * }
311
+ * ```
312
+ *
313
+ * You can also throw `new APIError` to stop the organization creation.
314
+ *
315
+ * @example
316
+ * ```ts
317
+ * beforeCreateOrganization: async (data) => {
318
+ * throw new APIError("BAD_REQUEST", {
319
+ * message: "Organization creation is disabled",
320
+ * });
321
+ * }
322
+ */
323
+ beforeCreateOrganization?: (data: {
324
+ organization: {
325
+ name?: string;
326
+ slug?: string;
327
+ logo?: string | null;
328
+ metadata?: Record<string, any>;
329
+ [key: string]: any;
330
+ };
331
+ user: User$1 & Record<string, any>;
332
+ }) => Promise<void | {
333
+ data: Record<string, any>;
334
+ }>;
335
+ /**
336
+ * A callback that runs after the organization is created
337
+ */
338
+ afterCreateOrganization?: (data: {
339
+ organization: Organization & Record<string, any>;
340
+ member: Member & Record<string, any>;
341
+ user: User$1 & Record<string, any>;
342
+ }) => Promise<void>;
343
+ /**
344
+ * A callback that runs before the organization is updated
345
+ *
346
+ * You can return a `data` object to override the default data.
347
+ *
348
+ * @example
349
+ * ```ts
350
+ * beforeUpdateOrganization: async (data) => {
351
+ * return { data: { ...data.organization } };
352
+ * }
353
+ */
354
+ beforeUpdateOrganization?: (data: {
355
+ organization: {
356
+ name?: string;
357
+ slug?: string;
358
+ logo?: string | null;
359
+ metadata?: Record<string, any>;
360
+ [key: string]: any;
361
+ };
362
+ user: User$1 & Record<string, any>;
363
+ member: Member & Record<string, any>;
364
+ }) => Promise<void | {
365
+ data: {
366
+ name?: string;
367
+ slug?: string;
368
+ logo?: string | null;
369
+ metadata?: Record<string, any>;
370
+ [key: string]: any;
371
+ };
372
+ }>;
373
+ /**
374
+ * A callback that runs after the organization is updated
375
+ *
376
+ * @example
377
+ * ```ts
378
+ * afterUpdateOrganization: async (data) => {
379
+ * console.log(data.organization);
380
+ * }
381
+ * ```
382
+ */
383
+ afterUpdateOrganization?: (data: {
384
+ /**
385
+ * Updated organization object
386
+ *
387
+ * This could be `null` if an adapter doesn't return updated organization.
388
+ */
389
+ organization: (Organization & Record<string, any>) | null;
390
+ user: User$1 & Record<string, any>;
391
+ member: Member & Record<string, any>;
392
+ }) => Promise<void>;
393
+ /**
394
+ * A callback that runs before the organization is deleted
395
+ */
396
+ beforeDeleteOrganization?: (data: {
397
+ organization: Organization & Record<string, any>;
398
+ user: User$1 & Record<string, any>;
399
+ }, ctx?: GenericEndpointContext) => Promise<void>;
400
+ /**
401
+ * A callback that runs after the organization is deleted
402
+ */
403
+ afterDeleteOrganization?: (data: {
404
+ organization: Organization & Record<string, any>;
405
+ user: User$1 & Record<string, any>;
406
+ }, ctx?: GenericEndpointContext) => Promise<void>;
407
+ /**
408
+ * Member hooks
409
+ */
410
+ /**
411
+ * A callback that runs before a member is added to an organization
412
+ *
413
+ * You can return a `data` object to override the default data.
414
+ *
415
+ * @example
416
+ * ```ts
417
+ * beforeAddMember: async (data) => {
418
+ * return {
419
+ * data: {
420
+ * ...data.member,
421
+ * role: "custom-role"
422
+ * }
423
+ * };
424
+ * }
425
+ * ```
426
+ */
427
+ beforeAddMember?: (data: {
428
+ member: {
429
+ userId: string;
430
+ organizationId: string;
431
+ role: string;
432
+ [key: string]: any;
433
+ };
434
+ user: User$1 & Record<string, any>;
435
+ organization: Organization & Record<string, any>;
436
+ }) => Promise<void | {
437
+ data: Record<string, any>;
438
+ }>;
439
+ /**
440
+ * A callback that runs after a member is added to an organization
441
+ */
442
+ afterAddMember?: (data: {
443
+ member: Member & Record<string, any>;
444
+ user: User$1 & Record<string, any>;
445
+ organization: Organization & Record<string, any>;
446
+ }) => Promise<void>;
447
+ /**
448
+ * A callback that runs before a member is removed from an organization
449
+ */
450
+ beforeRemoveMember?: (data: {
451
+ member: Member & Record<string, any>;
452
+ user: User$1 & Record<string, any>;
453
+ organization: Organization & Record<string, any>;
454
+ }) => Promise<void>;
455
+ /**
456
+ * A callback that runs after a member is removed from an organization
457
+ */
458
+ afterRemoveMember?: (data: {
459
+ member: Member & Record<string, any>;
460
+ user: User$1 & Record<string, any>;
461
+ organization: Organization & Record<string, any>;
462
+ }) => Promise<void>;
463
+ /**
464
+ * A callback that runs before a member's role is updated
465
+ *
466
+ * You can return a `data` object to override the default data.
467
+ */
468
+ beforeUpdateMemberRole?: (data: {
469
+ member: Member & Record<string, any>;
470
+ newRole: string;
471
+ user: User$1 & Record<string, any>;
472
+ organization: Organization & Record<string, any>;
473
+ }) => Promise<void | {
474
+ data: {
475
+ role: string;
476
+ [key: string]: any;
477
+ };
478
+ }>;
479
+ /**
480
+ * A callback that runs after a member's role is updated
481
+ */
482
+ afterUpdateMemberRole?: (data: {
483
+ member: Member & Record<string, any>;
484
+ previousRole: string;
485
+ user: User$1 & Record<string, any>;
486
+ organization: Organization & Record<string, any>;
487
+ }) => Promise<void>;
488
+ /**
489
+ * Invitation hooks
490
+ */
491
+ /**
492
+ * A callback that runs before an invitation is created
493
+ *
494
+ * You can return a `data` object to override the default data.
495
+ *
496
+ * @example
497
+ * ```ts
498
+ * beforeCreateInvitation: async (data) => {
499
+ * return {
500
+ * data: {
501
+ * ...data.invitation,
502
+ * expiresAt: new Date(Date.now() + 1000 * 60 * 60 * 24 * 7) // 7 days
503
+ * }
504
+ * };
505
+ * }
506
+ * ```
507
+ */
508
+ beforeCreateInvitation?: (data: {
509
+ invitation: {
510
+ email: string;
511
+ role: string;
512
+ organizationId: string;
513
+ inviterId: string;
514
+ teamId?: string;
515
+ [key: string]: any;
516
+ };
517
+ inviter: User$1 & Record<string, any>;
518
+ organization: Organization & Record<string, any>;
519
+ }) => Promise<void | {
520
+ data: Record<string, any>;
521
+ }>;
522
+ /**
523
+ * A callback that runs after an invitation is created
524
+ */
525
+ afterCreateInvitation?: (data: {
526
+ invitation: Invitation & Record<string, any>;
527
+ inviter: User$1 & Record<string, any>;
528
+ organization: Organization & Record<string, any>;
529
+ }) => Promise<void>;
530
+ /**
531
+ * A callback that runs before an invitation is accepted
532
+ */
533
+ beforeAcceptInvitation?: (data: {
534
+ invitation: Invitation & Record<string, any>;
535
+ user: User$1 & Record<string, any>;
536
+ organization: Organization & Record<string, any>;
537
+ }) => Promise<void>;
538
+ /**
539
+ * A callback that runs after an invitation is accepted
540
+ */
541
+ afterAcceptInvitation?: (data: {
542
+ invitation: Invitation & Record<string, any>;
543
+ member: Member & Record<string, any>;
544
+ user: User$1 & Record<string, any>;
545
+ organization: Organization & Record<string, any>;
546
+ }) => Promise<void>;
547
+ /**
548
+ * A callback that runs before an invitation is rejected
549
+ */
550
+ beforeRejectInvitation?: (data: {
551
+ invitation: Invitation & Record<string, any>;
552
+ user: User$1 & Record<string, any>;
553
+ organization: Organization & Record<string, any>;
554
+ }) => Promise<void>;
555
+ /**
556
+ * A callback that runs after an invitation is rejected
557
+ */
558
+ afterRejectInvitation?: (data: {
559
+ invitation: Invitation & Record<string, any>;
560
+ user: User$1 & Record<string, any>;
561
+ organization: Organization & Record<string, any>;
562
+ }) => Promise<void>;
563
+ /**
564
+ * A callback that runs before an invitation is cancelled
565
+ */
566
+ beforeCancelInvitation?: (data: {
567
+ invitation: Invitation & Record<string, any>;
568
+ cancelledBy: User$1 & Record<string, any>;
569
+ organization: Organization & Record<string, any>;
570
+ }) => Promise<void>;
571
+ /**
572
+ * A callback that runs after an invitation is cancelled
573
+ */
574
+ afterCancelInvitation?: (data: {
575
+ invitation: Invitation & Record<string, any>;
576
+ cancelledBy: User$1 & Record<string, any>;
577
+ organization: Organization & Record<string, any>;
578
+ }) => Promise<void>;
579
+ /**
580
+ * Team hooks (when teams are enabled)
581
+ */
582
+ /**
583
+ * A callback that runs before a team is created
584
+ *
585
+ * You can return a `data` object to override the default data.
586
+ */
587
+ beforeCreateTeam?: (data: {
588
+ team: {
589
+ name: string;
590
+ organizationId: string;
591
+ [key: string]: any;
592
+ };
593
+ user?: User$1 & Record<string, any>;
594
+ organization: Organization & Record<string, any>;
595
+ }) => Promise<void | {
596
+ data: Record<string, any>;
597
+ }>;
598
+ /**
599
+ * A callback that runs after a team is created
600
+ */
601
+ afterCreateTeam?: (data: {
602
+ team: Team & Record<string, any>;
603
+ user?: User$1 & Record<string, any>;
604
+ organization: Organization & Record<string, any>;
605
+ }) => Promise<void>;
606
+ /**
607
+ * A callback that runs before a team is updated
608
+ *
609
+ * You can return a `data` object to override the default data.
610
+ */
611
+ beforeUpdateTeam?: (data: {
612
+ team: Team & Record<string, any>;
613
+ updates: {
614
+ name?: string;
615
+ [key: string]: any;
616
+ };
617
+ user: User$1 & Record<string, any>;
618
+ organization: Organization & Record<string, any>;
619
+ }) => Promise<void | {
620
+ data: Record<string, any>;
621
+ }>;
622
+ /**
623
+ * A callback that runs after a team is updated
624
+ */
625
+ afterUpdateTeam?: (data: {
626
+ team: (Team & Record<string, any>) | null;
627
+ user: User$1 & Record<string, any>;
628
+ organization: Organization & Record<string, any>;
629
+ }) => Promise<void>;
630
+ /**
631
+ * A callback that runs before a team is deleted
632
+ */
633
+ beforeDeleteTeam?: (data: {
634
+ team: Team & Record<string, any>;
635
+ user?: User$1 & Record<string, any>;
636
+ organization: Organization & Record<string, any>;
637
+ }) => Promise<void>;
638
+ /**
639
+ * A callback that runs after a team is deleted
640
+ */
641
+ afterDeleteTeam?: (data: {
642
+ team: Team & Record<string, any>;
643
+ user?: User$1 & Record<string, any>;
644
+ organization: Organization & Record<string, any>;
645
+ }) => Promise<void>;
646
+ /**
647
+ * A callback that runs before a member is added to a team
648
+ */
649
+ beforeAddTeamMember?: (data: {
650
+ teamMember: {
651
+ teamId: string;
652
+ userId: string;
653
+ [key: string]: any;
654
+ };
655
+ team: Team & Record<string, any>;
656
+ user: User$1 & Record<string, any>;
657
+ organization: Organization & Record<string, any>;
658
+ }) => Promise<void | {
659
+ data: Record<string, any>;
660
+ }>;
661
+ /**
662
+ * A callback that runs after a member is added to a team
663
+ */
664
+ afterAddTeamMember?: (data: {
665
+ teamMember: TeamMember & Record<string, any>;
666
+ team: Team & Record<string, any>;
667
+ user: User$1 & Record<string, any>;
668
+ organization: Organization & Record<string, any>;
669
+ }) => Promise<void>;
670
+ /**
671
+ * A callback that runs before a member is removed from a team
672
+ */
673
+ beforeRemoveTeamMember?: (data: {
674
+ teamMember: TeamMember & Record<string, any>;
675
+ team: Team & Record<string, any>;
676
+ user: User$1 & Record<string, any>;
677
+ organization: Organization & Record<string, any>;
678
+ }) => Promise<void>;
679
+ /**
680
+ * A callback that runs after a member is removed from a team
681
+ */
682
+ afterRemoveTeamMember?: (data: {
683
+ teamMember: TeamMember & Record<string, any>;
684
+ team: Team & Record<string, any>;
685
+ user: User$1 & Record<string, any>;
686
+ organization: Organization & Record<string, any>;
687
+ }) => Promise<void>;
688
+ } | undefined;
689
+ }
690
+ //#endregion
691
+ export { OrganizationOptions };