@gatwech/auth 1.0.0-beta.18

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 (422) hide show
  1. package/README.md +31 -0
  2. package/dist/access-BO2g7QVe.mjs +45 -0
  3. package/dist/access-C6O_osEz.mjs +79 -0
  4. package/dist/access-DT1f6l5k.mjs +51 -0
  5. package/dist/adapter-factory-BZ2Qiqpn.mjs +640 -0
  6. package/dist/adapters/drizzle-adapter/index.d.mts +47 -0
  7. package/dist/adapters/drizzle-adapter/index.mjs +208 -0
  8. package/dist/adapters/index.d.mts +132 -0
  9. package/dist/adapters/index.mjs +18 -0
  10. package/dist/adapters/kysely-adapter/index.d.mts +47 -0
  11. package/dist/adapters/kysely-adapter/index.mjs +11 -0
  12. package/dist/adapters/memory-adapter/index.d.mts +14 -0
  13. package/dist/adapters/memory-adapter/index.mjs +154 -0
  14. package/dist/adapters/mongodb-adapter/index.d.mts +35 -0
  15. package/dist/adapters/mongodb-adapter/index.mjs +315 -0
  16. package/dist/adapters/prisma-adapter/index.d.mts +34 -0
  17. package/dist/adapters/prisma-adapter/index.mjs +159 -0
  18. package/dist/adapters/test.d.mts +81 -0
  19. package/dist/adapters/test.mjs +793 -0
  20. package/dist/admin-Bcq53Nwj.mjs +743 -0
  21. package/dist/admin-DtfO1PLg.d.mts +1689 -0
  22. package/dist/anonymous-CRt1imBW.mjs +107 -0
  23. package/dist/api/index.d.mts +6 -0
  24. package/dist/api/index.mjs +17 -0
  25. package/dist/api-0pR_I-Nx.mjs +3139 -0
  26. package/dist/auth-CBUoBX6o.mjs +233 -0
  27. package/dist/bearer-Djf_awfo.mjs +63 -0
  28. package/dist/bun-sqlite-dialect-CeNvMaZz.mjs +155 -0
  29. package/dist/captcha-BqaMxlKC.mjs +178 -0
  30. package/dist/chunk-BK_LfMhE.mjs +40 -0
  31. package/dist/client/index.d.mts +186 -0
  32. package/dist/client/index.mjs +7 -0
  33. package/dist/client/plugins/index.d.mts +949 -0
  34. package/dist/client/plugins/index.mjs +539 -0
  35. package/dist/client/react/index.d.mts +179 -0
  36. package/dist/client/react/index.mjs +69 -0
  37. package/dist/client-BOX93C3d.d.mts +1250 -0
  38. package/dist/client-CNY0tn9g.d.mts +628 -0
  39. package/dist/client-CygJhqeB.mjs +29 -0
  40. package/dist/client-WiN43tAS.mjs +17 -0
  41. package/dist/client-aExCkfwm.mjs +30 -0
  42. package/dist/cookies/index.d.mts +7 -0
  43. package/dist/cookies/index.mjs +7 -0
  44. package/dist/cookies-cJObLwn1.mjs +597 -0
  45. package/dist/crypto/index.d.mts +44 -0
  46. package/dist/crypto/index.mjs +4 -0
  47. package/dist/crypto-Bb42eMrH.mjs +70 -0
  48. package/dist/custom-session-L3t7ecsd.mjs +67 -0
  49. package/dist/date-Cx2yCiC4.mjs +115 -0
  50. package/dist/db/index.d.mts +7 -0
  51. package/dist/db/index.mjs +15 -0
  52. package/dist/db-BrstmDhc.mjs +1124 -0
  53. package/dist/device-authorization-V4s3h4Mj.mjs +557 -0
  54. package/dist/dialect-CeddeGHf.mjs +72 -0
  55. package/dist/email-otp-BtDHSw14.mjs +592 -0
  56. package/dist/esm-C-QicDNz.mjs +4090 -0
  57. package/dist/generic-oauth-CL5X27ZI.mjs +445 -0
  58. package/dist/get-request-ip-DSjrEpGo.mjs +27 -0
  59. package/dist/get-tables-BQP7YW9c.mjs +249 -0
  60. package/dist/has-permission-BpAr7uCn.mjs +14 -0
  61. package/dist/haveibeenpwned-cMpJvmzI.mjs +43 -0
  62. package/dist/helper-tmxW3BHj.d.mts +21 -0
  63. package/dist/index-34ONrP8l.d.mts +503 -0
  64. package/dist/index-65G5U5DB-DSdjzreF.d.mts +2543 -0
  65. package/dist/index-B-XKqFvY.d.mts +30 -0
  66. package/dist/index-B3n8e37d.d.mts +165 -0
  67. package/dist/index-BBm8nQ9Q.d.mts +42 -0
  68. package/dist/index-BHoQlf7a.d.mts +7699 -0
  69. package/dist/index-BYMI9r_d.d.mts +257 -0
  70. package/dist/index-BqhKCbPH.d.mts +36 -0
  71. package/dist/index-Buhn3hkR.d.mts +433 -0
  72. package/dist/index-C-u1h_WX.d.mts +174 -0
  73. package/dist/index-C7fQuk-V.d.mts +41 -0
  74. package/dist/index-CM-CFWwr.d.mts +1919 -0
  75. package/dist/index-CuFzhoS6.d.mts +359 -0
  76. package/dist/index-Cxi7TbLE.d.mts +11347 -0
  77. package/dist/index-DB7t8whN.d.mts +1 -0
  78. package/dist/index-DKNNV1kb.d.mts +626 -0
  79. package/dist/index-DR0xXno9.d.mts +113 -0
  80. package/dist/index-D_k662QG.d.mts +833 -0
  81. package/dist/index-DaBcikv9.d.mts +118 -0
  82. package/dist/index-DlaMq1nb.d.mts +955 -0
  83. package/dist/index-DoXZYQpq.d.mts +290 -0
  84. package/dist/index-G6V0Z_Mn.d.mts +125 -0
  85. package/dist/index-z0KSvE5i.d.mts +246 -0
  86. package/dist/index-zjjNBRY2.d.mts +95 -0
  87. package/dist/index.d.mts +12 -0
  88. package/dist/index.mjs +33 -0
  89. package/dist/integrations/next-js.d.mts +21 -0
  90. package/dist/integrations/next-js.mjs +62 -0
  91. package/dist/integrations/node.d.mts +15 -0
  92. package/dist/integrations/node.mjs +15 -0
  93. package/dist/integrations/react-start.d.mts +15 -0
  94. package/dist/integrations/react-start.mjs +46 -0
  95. package/dist/json-D0TBLy4q.mjs +24 -0
  96. package/dist/jwt-CmxZAGe2.mjs +94 -0
  97. package/dist/jwt-lHV4QHpD.mjs +387 -0
  98. package/dist/kysely-adapter-DpzYO8Yf.mjs +181 -0
  99. package/dist/magic-link-Bk-ueorR.mjs +176 -0
  100. package/dist/misc-beA1w3XV.mjs +7 -0
  101. package/dist/multi-session-DRrLKrg9.mjs +144 -0
  102. package/dist/node-sqlite-dialect-BcKxBQnm.mjs +155 -0
  103. package/dist/oauth-proxy-D1sWh9B_.mjs +133 -0
  104. package/dist/oauth2/index.d.mts +60 -0
  105. package/dist/oauth2/index.mjs +19 -0
  106. package/dist/one-tap-DMswkTEc.mjs +113 -0
  107. package/dist/organization-BArHO_5v.mjs +3857 -0
  108. package/dist/parser-DcrIEuXE.mjs +73 -0
  109. package/dist/passkey-CcD4CnhM.mjs +558 -0
  110. package/dist/password-sVC4nePO.mjs +25 -0
  111. package/dist/permission-DLYUF3cW.mjs +15 -0
  112. package/dist/phone-number-rHDIlh-2.mjs +485 -0
  113. package/dist/plugin-helper-4L-lzsjZ.mjs +16 -0
  114. package/dist/plugins/access/index.d.mts +3 -0
  115. package/dist/plugins/access/index.mjs +3 -0
  116. package/dist/plugins/admin/access/index.d.mts +116 -0
  117. package/dist/plugins/admin/access/index.mjs +4 -0
  118. package/dist/plugins/admin/index.d.mts +9 -0
  119. package/dist/plugins/admin/index.mjs +22 -0
  120. package/dist/plugins/anonymous/index.d.mts +7 -0
  121. package/dist/plugins/anonymous/index.mjs +18 -0
  122. package/dist/plugins/bearer/index.d.mts +2 -0
  123. package/dist/plugins/bearer/index.mjs +8 -0
  124. package/dist/plugins/captcha/index.d.mts +2 -0
  125. package/dist/plugins/captcha/index.mjs +4 -0
  126. package/dist/plugins/custom-session/index.d.mts +7 -0
  127. package/dist/plugins/custom-session/index.mjs +19 -0
  128. package/dist/plugins/device-authorization/index.d.mts +4 -0
  129. package/dist/plugins/device-authorization/index.mjs +18 -0
  130. package/dist/plugins/email-otp/index.d.mts +3 -0
  131. package/dist/plugins/email-otp/index.mjs +19 -0
  132. package/dist/plugins/generic-oauth/index.d.mts +7 -0
  133. package/dist/plugins/generic-oauth/index.mjs +18 -0
  134. package/dist/plugins/haveibeenpwned/index.d.mts +2 -0
  135. package/dist/plugins/haveibeenpwned/index.mjs +18 -0
  136. package/dist/plugins/index.d.mts +139 -0
  137. package/dist/plugins/index.mjs +47 -0
  138. package/dist/plugins/jwt/index.d.mts +7 -0
  139. package/dist/plugins/jwt/index.mjs +18 -0
  140. package/dist/plugins/magic-link/index.d.mts +2 -0
  141. package/dist/plugins/magic-link/index.mjs +18 -0
  142. package/dist/plugins/multi-session/index.d.mts +3 -0
  143. package/dist/plugins/multi-session/index.mjs +18 -0
  144. package/dist/plugins/oauth-proxy/index.d.mts +2 -0
  145. package/dist/plugins/oauth-proxy/index.mjs +18 -0
  146. package/dist/plugins/one-tap/index.d.mts +2 -0
  147. package/dist/plugins/one-tap/index.mjs +18 -0
  148. package/dist/plugins/one-time-token/index.d.mts +7 -0
  149. package/dist/plugins/one-time-token/index.mjs +47 -0
  150. package/dist/plugins/organization/access/index.d.mts +4 -0
  151. package/dist/plugins/organization/access/index.mjs +4 -0
  152. package/dist/plugins/organization/index.d.mts +9 -0
  153. package/dist/plugins/organization/index.mjs +22 -0
  154. package/dist/plugins/passkey/index.d.mts +7 -0
  155. package/dist/plugins/passkey/index.mjs +18 -0
  156. package/dist/plugins/phone-number/index.d.mts +7 -0
  157. package/dist/plugins/phone-number/index.mjs +18 -0
  158. package/dist/plugins/two-factor/index.d.mts +7 -0
  159. package/dist/plugins/two-factor/index.mjs +20 -0
  160. package/dist/plugins/username/index.d.mts +4 -0
  161. package/dist/plugins/username/index.mjs +18 -0
  162. package/dist/plugins-3jfNste3.mjs +1544 -0
  163. package/dist/plugins-hFZT3hmK.d.mts +14 -0
  164. package/dist/promise-8rrEHRXd.mjs +23154 -0
  165. package/dist/proxy-CL9PZXJA.mjs +441 -0
  166. package/dist/session-Dgp133Yt.mjs +413 -0
  167. package/dist/social-providers/index.d.mts +1 -0
  168. package/dist/social-providers/index.mjs +3 -0
  169. package/dist/src/adapters/adapter-factory/index.d.ts +10 -0
  170. package/dist/src/adapters/adapter-factory/types.d.ts +124 -0
  171. package/dist/src/adapters/create-test-suite.d.ts +97 -0
  172. package/dist/src/adapters/drizzle-adapter/drizzle-adapter.d.ts +43 -0
  173. package/dist/src/adapters/drizzle-adapter/index.d.ts +1 -0
  174. package/dist/src/adapters/drizzle-adapter/test/generate-schema.d.ts +12 -0
  175. package/dist/src/adapters/index.d.ts +21 -0
  176. package/dist/src/adapters/kysely-adapter/bun-sqlite-dialect.d.ts +58 -0
  177. package/dist/src/adapters/kysely-adapter/dialect.d.ts +13 -0
  178. package/dist/src/adapters/kysely-adapter/index.d.ts +3 -0
  179. package/dist/src/adapters/kysely-adapter/kysely-adapter.d.ts +32 -0
  180. package/dist/src/adapters/kysely-adapter/node-sqlite-dialect.d.ts +58 -0
  181. package/dist/src/adapters/kysely-adapter/types.d.ts +1 -0
  182. package/dist/src/adapters/memory-adapter/index.d.ts +1 -0
  183. package/dist/src/adapters/memory-adapter/memory-adapter.d.ts +9 -0
  184. package/dist/src/adapters/mongodb-adapter/index.d.ts +1 -0
  185. package/dist/src/adapters/mongodb-adapter/mongodb-adapter.d.ts +31 -0
  186. package/dist/src/adapters/prisma-adapter/index.d.ts +1 -0
  187. package/dist/src/adapters/prisma-adapter/prisma-adapter.d.ts +32 -0
  188. package/dist/src/adapters/prisma-adapter/test/auth.d.ts +3 -0
  189. package/dist/src/adapters/prisma-adapter/test/generate-auth-config.d.ts +2 -0
  190. package/dist/src/adapters/prisma-adapter/test/generate-prisma-schema.d.ts +3 -0
  191. package/dist/src/adapters/prisma-adapter/test/get-prisma-client.d.ts +7 -0
  192. package/dist/src/adapters/prisma-adapter/test/push-prisma-schema.d.ts +1 -0
  193. package/dist/src/adapters/test-adapter.d.ts +61 -0
  194. package/dist/src/adapters/test.d.ts +78 -0
  195. package/dist/src/adapters/tests/auth-flow.d.ts +22 -0
  196. package/dist/src/adapters/tests/index.d.ts +5 -0
  197. package/dist/src/adapters/tests/normal.d.ts +87 -0
  198. package/dist/src/adapters/tests/number-id.d.ts +17 -0
  199. package/dist/src/adapters/tests/performance.d.ts +24 -0
  200. package/dist/src/adapters/tests/transactions.d.ts +20 -0
  201. package/dist/src/adapters/utils.d.ts +3 -0
  202. package/dist/src/api/index.d.ts +7150 -0
  203. package/dist/src/api/middlewares/index.d.ts +2 -0
  204. package/dist/src/api/middlewares/oauth.d.ts +15 -0
  205. package/dist/src/api/middlewares/origin-check.d.ts +8 -0
  206. package/dist/src/api/rate-limiter/index.d.ts +13 -0
  207. package/dist/src/api/routes/account.d.ts +623 -0
  208. package/dist/src/api/routes/callback.d.ts +68 -0
  209. package/dist/src/api/routes/email-verification.d.ts +266 -0
  210. package/dist/src/api/routes/error.d.ts +51 -0
  211. package/dist/src/api/routes/index.d.ts +11 -0
  212. package/dist/src/api/routes/ok.d.ts +61 -0
  213. package/dist/src/api/routes/reset-password.d.ts +203 -0
  214. package/dist/src/api/routes/session.d.ts +586 -0
  215. package/dist/src/api/routes/sign-in.d.ts +298 -0
  216. package/dist/src/api/routes/sign-out.d.ts +59 -0
  217. package/dist/src/api/routes/sign-up.d.ts +625 -0
  218. package/dist/src/api/routes/update-user.d.ts +862 -0
  219. package/dist/src/api/to-auth-endpoints.d.ts +3 -0
  220. package/dist/src/auth.d.ts +25 -0
  221. package/dist/src/client/broadcast-channel.d.ts +12 -0
  222. package/dist/src/client/config.d.ts +85 -0
  223. package/dist/src/client/fetch-plugins.d.ts +14 -0
  224. package/dist/src/client/index.d.ts +15 -0
  225. package/dist/src/client/parser.d.ts +12 -0
  226. package/dist/src/client/path-to-object.d.ts +63 -0
  227. package/dist/src/client/plugins/index.d.ts +21 -0
  228. package/dist/src/client/plugins/infer-plugin.d.ts +11 -0
  229. package/dist/src/client/proxy.d.ts +8 -0
  230. package/dist/src/client/query.d.ts +16 -0
  231. package/dist/src/client/react/index.d.ts +130 -0
  232. package/dist/src/client/react/react-store.d.ts +43 -0
  233. package/dist/src/client/session-atom.d.ts +18 -0
  234. package/dist/src/client/session-refresh.d.ts +17 -0
  235. package/dist/src/client/test-plugin.d.ts +147 -0
  236. package/dist/src/client/types.d.ts +49 -0
  237. package/dist/src/client/vanilla.d.ts +124 -0
  238. package/dist/src/cookies/check-cookies.d.ts +4 -0
  239. package/dist/src/cookies/cookie-utils.d.ts +16 -0
  240. package/dist/src/cookies/index.d.ts +56 -0
  241. package/dist/src/cookies/session-store.d.ts +43 -0
  242. package/dist/src/crypto/buffer.d.ts +4 -0
  243. package/dist/src/crypto/index.d.ts +14 -0
  244. package/dist/src/crypto/jwt.d.ts +4 -0
  245. package/dist/src/crypto/password.d.ts +5 -0
  246. package/dist/src/crypto/random.d.ts +1 -0
  247. package/dist/src/db/field.d.ts +97 -0
  248. package/dist/src/db/get-migration.d.ts +18 -0
  249. package/dist/src/db/get-schema.d.ts +6 -0
  250. package/dist/src/db/get-tables.d.ts +3 -0
  251. package/dist/src/db/index.d.ts +10 -0
  252. package/dist/src/db/internal-adapter.d.ts +9 -0
  253. package/dist/src/db/schema.d.ts +76 -0
  254. package/dist/src/db/to-zod.d.ts +31 -0
  255. package/dist/src/db/utils.d.ts +6 -0
  256. package/dist/src/db/with-hooks.d.ts +27 -0
  257. package/dist/src/index.d.ts +14 -0
  258. package/dist/src/init.d.ts +2 -0
  259. package/dist/src/integrations/next-js.d.ts +15 -0
  260. package/dist/src/integrations/node.d.ts +6 -0
  261. package/dist/src/integrations/react-start.d.ts +9 -0
  262. package/dist/src/oauth2/index.d.ts +4 -0
  263. package/dist/src/oauth2/link-account.d.ts +41 -0
  264. package/dist/src/oauth2/state.d.ts +21 -0
  265. package/dist/src/oauth2/utils.d.ts +3 -0
  266. package/dist/src/plugins/access/access.d.ts +25 -0
  267. package/dist/src/plugins/access/index.d.ts +2 -0
  268. package/dist/src/plugins/access/types.d.ts +14 -0
  269. package/dist/src/plugins/additional-fields/client.d.ts +91 -0
  270. package/dist/src/plugins/admin/access/index.d.ts +1 -0
  271. package/dist/src/plugins/admin/access/statement.d.ts +110 -0
  272. package/dist/src/plugins/admin/admin.d.ts +1570 -0
  273. package/dist/src/plugins/admin/client.d.ts +62 -0
  274. package/dist/src/plugins/admin/error-codes.d.ts +21 -0
  275. package/dist/src/plugins/admin/has-permission.d.ts +21 -0
  276. package/dist/src/plugins/admin/index.d.ts +2 -0
  277. package/dist/src/plugins/admin/schema.d.ts +36 -0
  278. package/dist/src/plugins/admin/types.d.ts +77 -0
  279. package/dist/src/plugins/anonymous/client.d.ts +8 -0
  280. package/dist/src/plugins/anonymous/index.d.ts +159 -0
  281. package/dist/src/plugins/api-key/client.d.ts +11 -0
  282. package/dist/src/plugins/api-key/index.d.ts +1431 -0
  283. package/dist/src/plugins/api-key/rate-limit.d.ts +20 -0
  284. package/dist/src/plugins/api-key/routes/create-api-key.d.ts +244 -0
  285. package/dist/src/plugins/api-key/routes/delete-all-expired-api-keys.d.ts +45 -0
  286. package/dist/src/plugins/api-key/routes/delete-api-key.d.ts +112 -0
  287. package/dist/src/plugins/api-key/routes/get-api-key.d.ts +234 -0
  288. package/dist/src/plugins/api-key/routes/index.d.ts +1136 -0
  289. package/dist/src/plugins/api-key/routes/list-api-keys.d.ts +231 -0
  290. package/dist/src/plugins/api-key/routes/update-api-key.d.ts +235 -0
  291. package/dist/src/plugins/api-key/routes/verify-api-key.d.ts +80 -0
  292. package/dist/src/plugins/api-key/schema.d.ts +188 -0
  293. package/dist/src/plugins/api-key/types.d.ts +285 -0
  294. package/dist/src/plugins/bearer/index.d.ts +31 -0
  295. package/dist/src/plugins/captcha/constants.d.ts +9 -0
  296. package/dist/src/plugins/captcha/error-codes.d.ts +9 -0
  297. package/dist/src/plugins/captcha/index.d.ts +7 -0
  298. package/dist/src/plugins/captcha/types.d.ts +23 -0
  299. package/dist/src/plugins/captcha/utils.d.ts +1 -0
  300. package/dist/src/plugins/captcha/verify-handlers/captchafox.d.ts +11 -0
  301. package/dist/src/plugins/captcha/verify-handlers/cloudflare-turnstile.d.ts +10 -0
  302. package/dist/src/plugins/captcha/verify-handlers/google-recaptcha.d.ts +11 -0
  303. package/dist/src/plugins/captcha/verify-handlers/h-captcha.d.ts +11 -0
  304. package/dist/src/plugins/captcha/verify-handlers/index.d.ts +4 -0
  305. package/dist/src/plugins/custom-session/client.d.ts +12 -0
  306. package/dist/src/plugins/custom-session/index.d.ts +89 -0
  307. package/dist/src/plugins/device-authorization/client.d.ts +12 -0
  308. package/dist/src/plugins/device-authorization/index.d.ts +568 -0
  309. package/dist/src/plugins/device-authorization/schema.d.ts +56 -0
  310. package/dist/src/plugins/email-otp/client.d.ts +9 -0
  311. package/dist/src/plugins/email-otp/index.d.ts +826 -0
  312. package/dist/src/plugins/email-otp/utils.d.ts +2 -0
  313. package/dist/src/plugins/generic-oauth/client.d.ts +5 -0
  314. package/dist/src/plugins/generic-oauth/index.d.ts +428 -0
  315. package/dist/src/plugins/haveibeenpwned/index.d.ts +25 -0
  316. package/dist/src/plugins/index.d.ts +28 -0
  317. package/dist/src/plugins/jwt/adapter.d.ts +8 -0
  318. package/dist/src/plugins/jwt/client.d.ts +5 -0
  319. package/dist/src/plugins/jwt/index.d.ts +276 -0
  320. package/dist/src/plugins/jwt/schema.d.ts +18 -0
  321. package/dist/src/plugins/jwt/sign.d.ts +8 -0
  322. package/dist/src/plugins/jwt/types.d.ts +175 -0
  323. package/dist/src/plugins/jwt/utils.d.ts +46 -0
  324. package/dist/src/plugins/last-login-method/client.d.ts +34 -0
  325. package/dist/src/plugins/last-login-method/index.d.ts +103 -0
  326. package/dist/src/plugins/magic-link/client.d.ts +5 -0
  327. package/dist/src/plugins/magic-link/index.d.ts +253 -0
  328. package/dist/src/plugins/magic-link/utils.d.ts +1 -0
  329. package/dist/src/plugins/multi-session/client.d.ts +9 -0
  330. package/dist/src/plugins/multi-session/index.d.ts +284 -0
  331. package/dist/src/plugins/oauth-proxy/index.d.ts +119 -0
  332. package/dist/src/plugins/one-tap/client.d.ts +81 -0
  333. package/dist/src/plugins/one-tap/index.d.ts +114 -0
  334. package/dist/src/plugins/one-time-token/client.d.ts +5 -0
  335. package/dist/src/plugins/one-time-token/index.d.ts +170 -0
  336. package/dist/src/plugins/one-time-token/utils.d.ts +1 -0
  337. package/dist/src/plugins/organization/access/index.d.ts +1 -0
  338. package/dist/src/plugins/organization/access/statement.d.ts +241 -0
  339. package/dist/src/plugins/organization/adapter.d.ts +685 -0
  340. package/dist/src/plugins/organization/call.d.ts +55 -0
  341. package/dist/src/plugins/organization/client.d.ts +344 -0
  342. package/dist/src/plugins/organization/error-codes.d.ts +58 -0
  343. package/dist/src/plugins/organization/has-permission.d.ts +13 -0
  344. package/dist/src/plugins/organization/index.d.ts +4 -0
  345. package/dist/src/plugins/organization/organization.d.ts +412 -0
  346. package/dist/src/plugins/organization/permission.d.ts +27 -0
  347. package/dist/src/plugins/organization/routes/crud-access-control.d.ts +701 -0
  348. package/dist/src/plugins/organization/routes/crud-invites.d.ts +1522 -0
  349. package/dist/src/plugins/organization/routes/crud-members.d.ts +1220 -0
  350. package/dist/src/plugins/organization/routes/crud-org.d.ts +1399 -0
  351. package/dist/src/plugins/organization/routes/crud-team.d.ts +1323 -0
  352. package/dist/src/plugins/organization/schema.d.ts +366 -0
  353. package/dist/src/plugins/organization/types.d.ts +737 -0
  354. package/dist/src/plugins/passkey/client.d.ts +190 -0
  355. package/dist/src/plugins/passkey/error-codes.d.ts +9 -0
  356. package/dist/src/plugins/passkey/index.d.ts +838 -0
  357. package/dist/src/plugins/passkey/schema.d.ts +50 -0
  358. package/dist/src/plugins/passkey/types.d.ts +69 -0
  359. package/dist/src/plugins/passkey/utils.d.ts +2 -0
  360. package/dist/src/plugins/phone-number/client.d.ts +9 -0
  361. package/dist/src/plugins/phone-number/index.d.ts +622 -0
  362. package/dist/src/plugins/phone-number/phone-number-error.d.ts +10 -0
  363. package/dist/src/plugins/two-factor/backup-codes/index.d.ts +387 -0
  364. package/dist/src/plugins/two-factor/client.d.ts +28 -0
  365. package/dist/src/plugins/two-factor/constant.d.ts +2 -0
  366. package/dist/src/plugins/two-factor/error-code.d.ts +11 -0
  367. package/dist/src/plugins/two-factor/index.d.ts +1014 -0
  368. package/dist/src/plugins/two-factor/otp/index.d.ts +282 -0
  369. package/dist/src/plugins/two-factor/schema.d.ts +35 -0
  370. package/dist/src/plugins/two-factor/totp/index.d.ts +298 -0
  371. package/dist/src/plugins/two-factor/types.d.ts +50 -0
  372. package/dist/src/plugins/two-factor/utils.d.ts +1 -0
  373. package/dist/src/plugins/two-factor/verify-two-factor.d.ts +59 -0
  374. package/dist/src/plugins/username/client.d.ts +5 -0
  375. package/dist/src/plugins/username/error-codes.d.ts +10 -0
  376. package/dist/src/plugins/username/index.d.ts +313 -0
  377. package/dist/src/plugins/username/schema.d.ts +27 -0
  378. package/dist/src/social-providers/index.d.ts +1 -0
  379. package/dist/src/test-utils/headers.d.ts +5 -0
  380. package/dist/src/test-utils/index.d.ts +2 -0
  381. package/dist/src/test-utils/test-instance.d.ts +17849 -0
  382. package/dist/src/types/adapter.d.ts +21 -0
  383. package/dist/src/types/api.d.ts +29 -0
  384. package/dist/src/types/helper.d.ts +32 -0
  385. package/dist/src/types/index.d.ts +7 -0
  386. package/dist/src/types/models.d.ts +13 -0
  387. package/dist/src/types/plugins.d.ts +14 -0
  388. package/dist/src/utils/await-object.d.ts +3 -0
  389. package/dist/src/utils/boolean.d.ts +1 -0
  390. package/dist/src/utils/clone.d.ts +1 -0
  391. package/dist/src/utils/constants.d.ts +1 -0
  392. package/dist/src/utils/date.d.ts +1 -0
  393. package/dist/src/utils/ensure-utc.d.ts +1 -0
  394. package/dist/src/utils/get-request-ip.d.ts +2 -0
  395. package/dist/src/utils/hashing.d.ts +6 -0
  396. package/dist/src/utils/hide-metadata.d.ts +3 -0
  397. package/dist/src/utils/id.d.ts +1 -0
  398. package/dist/src/utils/import-util.d.ts +1 -0
  399. package/dist/src/utils/index.d.ts +5 -0
  400. package/dist/src/utils/is-atom.d.ts +2 -0
  401. package/dist/src/utils/is-promise.d.ts +1 -0
  402. package/dist/src/utils/json.d.ts +1 -0
  403. package/dist/src/utils/merger.d.ts +1 -0
  404. package/dist/src/utils/middleware-response.d.ts +8 -0
  405. package/dist/src/utils/misc.d.ts +1 -0
  406. package/dist/src/utils/password.d.ts +6 -0
  407. package/dist/src/utils/plugin-helper.d.ts +5 -0
  408. package/dist/src/utils/shim.d.ts +3 -0
  409. package/dist/src/utils/time.d.ts +4 -0
  410. package/dist/src/utils/url.d.ts +4 -0
  411. package/dist/src/utils/wildcard.d.ts +45 -0
  412. package/dist/test-utils/index.d.mts +17870 -0
  413. package/dist/test-utils/index.mjs +272 -0
  414. package/dist/two-factor-ClUXxom2.mjs +914 -0
  415. package/dist/types/index.d.mts +6 -0
  416. package/dist/types/index.mjs +3 -0
  417. package/dist/types-B1OL7hyf.d.mts +4 -0
  418. package/dist/types-Bjn15Uy6.mjs +1 -0
  419. package/dist/url-VB2gAbTI.mjs +59 -0
  420. package/dist/username-DiGklOGl.mjs +278 -0
  421. package/dist/utils-SOMB4Px5.mjs +132 -0
  422. package/package.json +447 -0
@@ -0,0 +1,737 @@
1
+ import type { AuthContext } from "@gatwech/core";
2
+ import type { DBFieldAttribute } from "@gatwech/core/db";
3
+ import type { Session, User } from "../../types";
4
+ import type { AccessControl, Role } from "../access";
5
+ import type { Invitation, Member, Organization, OrganizationRole, Team, TeamMember } from "./schema";
6
+ export interface OrganizationOptions {
7
+ /**
8
+ * Configure whether new users are able to create new organizations.
9
+ * You can also pass a function that returns a boolean.
10
+ *
11
+ * @example
12
+ * ```ts
13
+ * allowUserToCreateOrganization: async (user) => {
14
+ * const plan = await getUserPlan(user);
15
+ * return plan.name === "pro";
16
+ * }
17
+ * ```
18
+ * @default true
19
+ */
20
+ allowUserToCreateOrganization?: (boolean | ((user: User & Record<string, any>) => Promise<boolean> | boolean)) | undefined;
21
+ /**
22
+ * The maximum number of organizations a user can create.
23
+ *
24
+ * You can also pass a function that returns a boolean
25
+ */
26
+ organizationLimit?: (number | ((user: User) => Promise<boolean> | boolean)) | undefined;
27
+ /**
28
+ * The role that is assigned to the creator of the
29
+ * organization.
30
+ *
31
+ * @default "owner"
32
+ */
33
+ creatorRole?: string | undefined;
34
+ /**
35
+ * The maximum number of members allowed in an organization.
36
+ *
37
+ * @default 100
38
+ */
39
+ membershipLimit?: number | undefined;
40
+ /**
41
+ * Configure the roles and permissions for the
42
+ * organization plugin.
43
+ */
44
+ ac?: AccessControl | undefined;
45
+ /**
46
+ * Custom permissions for roles.
47
+ */
48
+ roles?: {
49
+ [key in string]?: Role<any>;
50
+ } | undefined;
51
+ /**
52
+ * Dynamic access control for the organization plugin.
53
+ */
54
+ dynamicAccessControl?: {
55
+ /**
56
+ * Whether to enable dynamic access control for the organization plugin.
57
+ *
58
+ * @default false
59
+ */
60
+ enabled?: boolean;
61
+ /**
62
+ * The maximum number of roles that can be created for an organization.
63
+ *
64
+ * @default Infinite
65
+ */
66
+ maximumRolesPerOrganization?: number | ((organizationId: string) => Promise<number> | number);
67
+ } | undefined;
68
+ /**
69
+ * Support for team.
70
+ */
71
+ teams?: {
72
+ /**
73
+ * Enable team features.
74
+ */
75
+ enabled: boolean;
76
+ /**
77
+ * Default team configuration
78
+ */
79
+ defaultTeam?: {
80
+ /**
81
+ * Enable creating a default team when an organization is created
82
+ *
83
+ * @default true
84
+ */
85
+ enabled: boolean;
86
+ /**
87
+ * Pass a custom default team creator function
88
+ */
89
+ customCreateDefaultTeam?: (organization: Organization & Record<string, any>, request?: Request) => Promise<Team & Record<string, any>>;
90
+ };
91
+ /**
92
+ * Maximum number of teams an organization can have.
93
+ *
94
+ * You can pass a number or a function that returns a number
95
+ *
96
+ * @default "unlimited"
97
+ *
98
+ * @param organization
99
+ * @param request
100
+ * @returns
101
+ */
102
+ maximumTeams?: ((data: {
103
+ organizationId: string;
104
+ session: {
105
+ user: User;
106
+ session: Session;
107
+ } | null;
108
+ }, request?: Request) => number | Promise<number>) | number;
109
+ /**
110
+ * The maximum number of members per team.
111
+ *
112
+ * if `undefined`, there is no limit.
113
+ *
114
+ * @default undefined
115
+ */
116
+ maximumMembersPerTeam?: number | ((data: {
117
+ teamId: string;
118
+ session: {
119
+ user: User;
120
+ session: Session;
121
+ };
122
+ organizationId: string;
123
+ }) => Promise<number> | number) | undefined;
124
+ /**
125
+ * By default, if an organization does only have one team, they'll not be able to remove it.
126
+ *
127
+ * You can disable this behavior by setting this to `false.
128
+ *
129
+ * @default false
130
+ */
131
+ allowRemovingAllTeams?: boolean;
132
+ };
133
+ /**
134
+ * The expiration time for the invitation link.
135
+ *
136
+ * @default 48 hours
137
+ */
138
+ invitationExpiresIn?: number | undefined;
139
+ /**
140
+ * The maximum invitation a user can send.
141
+ *
142
+ * @default 100
143
+ */
144
+ invitationLimit?: number | ((data: {
145
+ user: User & Record<string, any>;
146
+ organization: Organization & Record<string, any>;
147
+ member: Member & Record<string, any>;
148
+ }, ctx: AuthContext) => Promise<number> | number) | undefined;
149
+ /**
150
+ * Cancel pending invitations on re-invite.
151
+ *
152
+ * @default false
153
+ */
154
+ cancelPendingInvitationsOnReInvite?: boolean | undefined;
155
+ /**
156
+ * Require email verification on accepting or rejecting an invitation
157
+ *
158
+ * @default false
159
+ */
160
+ requireEmailVerificationOnInvitation?: boolean | undefined;
161
+ /**
162
+ * Send an email with the
163
+ * invitation link to the user.
164
+ *
165
+ * Note: Payvo Auth doesn't
166
+ * generate invitation URLs.
167
+ * You'll need to construct the
168
+ * URL using the invitation ID
169
+ * and pass it to the
170
+ * acceptInvitation endpoint for
171
+ * the user to accept the
172
+ * invitation.
173
+ *
174
+ * @example
175
+ * ```ts
176
+ * sendInvitationEmail: async (data) => {
177
+ * const url = `https://yourapp.com/organization/
178
+ * accept-invitation?id=${data.id}`;
179
+ * await sendEmail(data.email, "Invitation to join
180
+ * organization", `Click the link to join the
181
+ * organization: ${url}`);
182
+ * }
183
+ * ```
184
+ */
185
+ sendInvitationEmail?: ((data: {
186
+ /**
187
+ * the invitation id
188
+ */
189
+ id: string;
190
+ /**
191
+ * the role of the user
192
+ */
193
+ role: string;
194
+ /**
195
+ * the email of the user
196
+ */
197
+ email: string;
198
+ /**
199
+ * the organization the user is invited to join
200
+ */
201
+ organization: Organization;
202
+ /**
203
+ * the invitation object
204
+ */
205
+ invitation: Invitation;
206
+ /**
207
+ * the member who is inviting the user
208
+ */
209
+ inviter: Member & {
210
+ user: User;
211
+ };
212
+ },
213
+ /**
214
+ * The request object
215
+ */
216
+ request?: Request) => Promise<void>) | undefined;
217
+ /**
218
+ * The schema for the organization plugin.
219
+ */
220
+ schema?: {
221
+ session?: {
222
+ fields?: {
223
+ activeOrganizationId?: string;
224
+ activeTeamId?: string;
225
+ };
226
+ };
227
+ organization?: {
228
+ modelName?: string;
229
+ fields?: {
230
+ [key in keyof Omit<Organization, "id">]?: string;
231
+ };
232
+ additionalFields?: {
233
+ [key in string]: DBFieldAttribute;
234
+ };
235
+ };
236
+ member?: {
237
+ modelName?: string;
238
+ fields?: {
239
+ [key in keyof Omit<Member, "id">]?: string;
240
+ };
241
+ additionalFields?: {
242
+ [key in string]: DBFieldAttribute;
243
+ };
244
+ };
245
+ invitation?: {
246
+ modelName?: string;
247
+ fields?: {
248
+ [key in keyof Omit<Invitation, "id">]?: string;
249
+ };
250
+ additionalFields?: {
251
+ [key in string]: DBFieldAttribute;
252
+ };
253
+ };
254
+ team?: {
255
+ modelName?: string;
256
+ fields?: {
257
+ [key in keyof Omit<Team, "id">]?: string;
258
+ };
259
+ additionalFields?: {
260
+ [key in string]: DBFieldAttribute;
261
+ };
262
+ };
263
+ teamMember?: {
264
+ modelName?: string;
265
+ fields?: {
266
+ [key in keyof Omit<TeamMember, "id">]?: string;
267
+ };
268
+ };
269
+ organizationRole?: {
270
+ modelName?: string;
271
+ fields?: {
272
+ [key in keyof Omit<OrganizationRole, "id">]?: string;
273
+ };
274
+ additionalFields?: {
275
+ [key in string]: DBFieldAttribute;
276
+ };
277
+ };
278
+ } | undefined;
279
+ /**
280
+ * Disable organization deletion
281
+ *
282
+ * @default false
283
+ */
284
+ disableOrganizationDeletion?: boolean | undefined;
285
+ /**
286
+ * Configure how organization deletion is handled
287
+ *
288
+ * @deprecated Use `organizationHooks` instead
289
+ */
290
+ organizationDeletion?: {
291
+ /**
292
+ * disable deleting organization
293
+ *
294
+ * @deprecated Use `disableOrganizationDeletion` instead
295
+ */
296
+ disabled?: boolean;
297
+ /**
298
+ * A callback that runs before the organization is
299
+ * deleted
300
+ *
301
+ * @deprecated Use `organizationHooks` instead
302
+ * @param data - organization and user object
303
+ * @param request - the request object
304
+ * @returns
305
+ */
306
+ beforeDelete?: (data: {
307
+ organization: Organization;
308
+ user: User;
309
+ }, request?: Request) => Promise<void>;
310
+ /**
311
+ * A callback that runs after the organization is
312
+ * deleted
313
+ *
314
+ * @deprecated Use `organizationHooks` instead
315
+ * @param data - organization and user object
316
+ * @param request - the request object
317
+ * @returns
318
+ */
319
+ afterDelete?: (data: {
320
+ organization: Organization;
321
+ user: User;
322
+ }, request?: Request) => Promise<void>;
323
+ } | undefined;
324
+ /**
325
+ * @deprecated Use `organizationHooks` instead
326
+ */
327
+ organizationCreation?: {
328
+ disabled?: boolean;
329
+ beforeCreate?: (data: {
330
+ organization: Omit<Organization, "id"> & Record<string, any>;
331
+ user: User & Record<string, any>;
332
+ }, request?: Request) => Promise<void | {
333
+ data: Record<string, any>;
334
+ }>;
335
+ afterCreate?: (data: {
336
+ organization: Organization & Record<string, any>;
337
+ member: Member & Record<string, any>;
338
+ user: User & Record<string, any>;
339
+ }, request?: Request) => Promise<void>;
340
+ } | undefined;
341
+ /**
342
+ * Hooks for organization
343
+ */
344
+ organizationHooks?: {
345
+ /**
346
+ * A callback that runs before the organization is created
347
+ *
348
+ * You can return a `data` object to override the default data.
349
+ *
350
+ * @example
351
+ * ```ts
352
+ * beforeCreateOrganization: async (data) => {
353
+ * return {
354
+ * data: {
355
+ * ...data.organization,
356
+ * },
357
+ * };
358
+ * }
359
+ * ```
360
+ *
361
+ * You can also throw `new APIError` to stop the organization creation.
362
+ *
363
+ * @example
364
+ * ```ts
365
+ * beforeCreateOrganization: async (data) => {
366
+ * throw new APIError("BAD_REQUEST", {
367
+ * message: "Organization creation is disabled",
368
+ * });
369
+ * }
370
+ */
371
+ beforeCreateOrganization?: (data: {
372
+ organization: {
373
+ name?: string;
374
+ slug?: string;
375
+ logo?: string;
376
+ metadata?: Record<string, any>;
377
+ [key: string]: any;
378
+ };
379
+ user: User & Record<string, any>;
380
+ }) => Promise<void | {
381
+ data: Record<string, any>;
382
+ }>;
383
+ /**
384
+ * A callback that runs after the organization is created
385
+ */
386
+ afterCreateOrganization?: (data: {
387
+ organization: Organization & Record<string, any>;
388
+ member: Member & Record<string, any>;
389
+ user: User & Record<string, any>;
390
+ }) => Promise<void>;
391
+ /**
392
+ * A callback that runs before the organization is updated
393
+ *
394
+ * You can return a `data` object to override the default data.
395
+ *
396
+ * @example
397
+ * ```ts
398
+ * beforeUpdateOrganization: async (data) => {
399
+ * return { data: { ...data.organization } };
400
+ * }
401
+ */
402
+ beforeUpdateOrganization?: (data: {
403
+ organization: {
404
+ name?: string;
405
+ slug?: string;
406
+ logo?: string;
407
+ metadata?: Record<string, any>;
408
+ [key: string]: any;
409
+ };
410
+ user: User & Record<string, any>;
411
+ member: Member & Record<string, any>;
412
+ }) => Promise<void | {
413
+ data: {
414
+ name?: string;
415
+ slug?: string;
416
+ logo?: string;
417
+ metadata?: Record<string, any>;
418
+ [key: string]: any;
419
+ };
420
+ }>;
421
+ /**
422
+ * A callback that runs after the organization is updated
423
+ *
424
+ * @example
425
+ * ```ts
426
+ * afterUpdateOrganization: async (data) => {
427
+ * console.log(data.organization);
428
+ * }
429
+ * ```
430
+ */
431
+ afterUpdateOrganization?: (data: {
432
+ /**
433
+ * Updated organization object
434
+ *
435
+ * This could be `null` if an adapter doesn't return updated organization.
436
+ */
437
+ organization: (Organization & Record<string, any>) | null;
438
+ user: User & Record<string, any>;
439
+ member: Member & Record<string, any>;
440
+ }) => Promise<void>;
441
+ /**
442
+ * A callback that runs before the organization is deleted
443
+ */
444
+ beforeDeleteOrganization?: (data: {
445
+ organization: Organization & Record<string, any>;
446
+ user: User & Record<string, any>;
447
+ }) => Promise<void>;
448
+ /**
449
+ * A callback that runs after the organization is deleted
450
+ */
451
+ afterDeleteOrganization?: (data: {
452
+ organization: Organization & Record<string, any>;
453
+ user: User & Record<string, any>;
454
+ }) => Promise<void>;
455
+ /**
456
+ * Member hooks
457
+ */
458
+ /**
459
+ * A callback that runs before a member is added to an organization
460
+ *
461
+ * You can return a `data` object to override the default data.
462
+ *
463
+ * @example
464
+ * ```ts
465
+ * beforeAddMember: async (data) => {
466
+ * return {
467
+ * data: {
468
+ * ...data.member,
469
+ * role: "custom-role"
470
+ * }
471
+ * };
472
+ * }
473
+ * ```
474
+ */
475
+ beforeAddMember?: (data: {
476
+ member: {
477
+ userId: string;
478
+ organizationId: string;
479
+ role: string;
480
+ [key: string]: any;
481
+ };
482
+ user: User & Record<string, any>;
483
+ organization: Organization & Record<string, any>;
484
+ }) => Promise<void | {
485
+ data: Record<string, any>;
486
+ }>;
487
+ /**
488
+ * A callback that runs after a member is added to an organization
489
+ */
490
+ afterAddMember?: (data: {
491
+ member: Member & Record<string, any>;
492
+ user: User & Record<string, any>;
493
+ organization: Organization & Record<string, any>;
494
+ }) => Promise<void>;
495
+ /**
496
+ * A callback that runs before a member is removed from an organization
497
+ */
498
+ beforeRemoveMember?: (data: {
499
+ member: Member & Record<string, any>;
500
+ user: User & Record<string, any>;
501
+ organization: Organization & Record<string, any>;
502
+ }) => Promise<void>;
503
+ /**
504
+ * A callback that runs after a member is removed from an organization
505
+ */
506
+ afterRemoveMember?: (data: {
507
+ member: Member & Record<string, any>;
508
+ user: User & Record<string, any>;
509
+ organization: Organization & Record<string, any>;
510
+ }) => Promise<void>;
511
+ /**
512
+ * A callback that runs before a member's role is updated
513
+ *
514
+ * You can return a `data` object to override the default data.
515
+ */
516
+ beforeUpdateMemberRole?: (data: {
517
+ member: Member & Record<string, any>;
518
+ newRole: string;
519
+ user: User & Record<string, any>;
520
+ organization: Organization & Record<string, any>;
521
+ }) => Promise<void | {
522
+ data: {
523
+ role: string;
524
+ [key: string]: any;
525
+ };
526
+ }>;
527
+ /**
528
+ * A callback that runs after a member's role is updated
529
+ */
530
+ afterUpdateMemberRole?: (data: {
531
+ member: Member & Record<string, any>;
532
+ previousRole: string;
533
+ user: User & Record<string, any>;
534
+ organization: Organization & Record<string, any>;
535
+ }) => Promise<void>;
536
+ /**
537
+ * Invitation hooks
538
+ */
539
+ /**
540
+ * A callback that runs before an invitation is created
541
+ *
542
+ * You can return a `data` object to override the default data.
543
+ *
544
+ * @example
545
+ * ```ts
546
+ * beforeCreateInvitation: async (data) => {
547
+ * return {
548
+ * data: {
549
+ * ...data.invitation,
550
+ * expiresAt: new Date(Date.now() + 1000 * 60 * 60 * 24 * 7) // 7 days
551
+ * }
552
+ * };
553
+ * }
554
+ * ```
555
+ */
556
+ beforeCreateInvitation?: (data: {
557
+ invitation: {
558
+ email: string;
559
+ role: string;
560
+ organizationId: string;
561
+ inviterId: string;
562
+ teamId?: string;
563
+ [key: string]: any;
564
+ };
565
+ inviter: User & Record<string, any>;
566
+ organization: Organization & Record<string, any>;
567
+ }) => Promise<void | {
568
+ data: Record<string, any>;
569
+ }>;
570
+ /**
571
+ * A callback that runs after an invitation is created
572
+ */
573
+ afterCreateInvitation?: (data: {
574
+ invitation: Invitation & Record<string, any>;
575
+ inviter: User & Record<string, any>;
576
+ organization: Organization & Record<string, any>;
577
+ }) => Promise<void>;
578
+ /**
579
+ * A callback that runs before an invitation is accepted
580
+ */
581
+ beforeAcceptInvitation?: (data: {
582
+ invitation: Invitation & Record<string, any>;
583
+ user: User & Record<string, any>;
584
+ organization: Organization & Record<string, any>;
585
+ }) => Promise<void>;
586
+ /**
587
+ * A callback that runs after an invitation is accepted
588
+ */
589
+ afterAcceptInvitation?: (data: {
590
+ invitation: Invitation & Record<string, any>;
591
+ member: Member & Record<string, any>;
592
+ user: User & Record<string, any>;
593
+ organization: Organization & Record<string, any>;
594
+ }) => Promise<void>;
595
+ /**
596
+ * A callback that runs before an invitation is rejected
597
+ */
598
+ beforeRejectInvitation?: (data: {
599
+ invitation: Invitation & Record<string, any>;
600
+ user: User & Record<string, any>;
601
+ organization: Organization & Record<string, any>;
602
+ }) => Promise<void>;
603
+ /**
604
+ * A callback that runs after an invitation is rejected
605
+ */
606
+ afterRejectInvitation?: (data: {
607
+ invitation: Invitation & Record<string, any>;
608
+ user: User & Record<string, any>;
609
+ organization: Organization & Record<string, any>;
610
+ }) => Promise<void>;
611
+ /**
612
+ * A callback that runs before an invitation is cancelled
613
+ */
614
+ beforeCancelInvitation?: (data: {
615
+ invitation: Invitation & Record<string, any>;
616
+ cancelledBy: User & Record<string, any>;
617
+ organization: Organization & Record<string, any>;
618
+ }) => Promise<void>;
619
+ /**
620
+ * A callback that runs after an invitation is cancelled
621
+ */
622
+ afterCancelInvitation?: (data: {
623
+ invitation: Invitation & Record<string, any>;
624
+ cancelledBy: User & Record<string, any>;
625
+ organization: Organization & Record<string, any>;
626
+ }) => Promise<void>;
627
+ /**
628
+ * Team hooks (when teams are enabled)
629
+ */
630
+ /**
631
+ * A callback that runs before a team is created
632
+ *
633
+ * You can return a `data` object to override the default data.
634
+ */
635
+ beforeCreateTeam?: (data: {
636
+ team: {
637
+ name: string;
638
+ organizationId: string;
639
+ [key: string]: any;
640
+ };
641
+ user?: User & Record<string, any>;
642
+ organization: Organization & Record<string, any>;
643
+ }) => Promise<void | {
644
+ data: Record<string, any>;
645
+ }>;
646
+ /**
647
+ * A callback that runs after a team is created
648
+ */
649
+ afterCreateTeam?: (data: {
650
+ team: Team & Record<string, any>;
651
+ user?: User & Record<string, any>;
652
+ organization: Organization & Record<string, any>;
653
+ }) => Promise<void>;
654
+ /**
655
+ * A callback that runs before a team is updated
656
+ *
657
+ * You can return a `data` object to override the default data.
658
+ */
659
+ beforeUpdateTeam?: (data: {
660
+ team: Team & Record<string, any>;
661
+ updates: {
662
+ name?: string;
663
+ [key: string]: any;
664
+ };
665
+ user: User & Record<string, any>;
666
+ organization: Organization & Record<string, any>;
667
+ }) => Promise<void | {
668
+ data: Record<string, any>;
669
+ }>;
670
+ /**
671
+ * A callback that runs after a team is updated
672
+ */
673
+ afterUpdateTeam?: (data: {
674
+ team: (Team & Record<string, any>) | null;
675
+ user: User & Record<string, any>;
676
+ organization: Organization & Record<string, any>;
677
+ }) => Promise<void>;
678
+ /**
679
+ * A callback that runs before a team is deleted
680
+ */
681
+ beforeDeleteTeam?: (data: {
682
+ team: Team & Record<string, any>;
683
+ user?: User & Record<string, any>;
684
+ organization: Organization & Record<string, any>;
685
+ }) => Promise<void>;
686
+ /**
687
+ * A callback that runs after a team is deleted
688
+ */
689
+ afterDeleteTeam?: (data: {
690
+ team: Team & Record<string, any>;
691
+ user?: User & Record<string, any>;
692
+ organization: Organization & Record<string, any>;
693
+ }) => Promise<void>;
694
+ /**
695
+ * A callback that runs before a member is added to a team
696
+ */
697
+ beforeAddTeamMember?: (data: {
698
+ teamMember: {
699
+ teamId: string;
700
+ userId: string;
701
+ [key: string]: any;
702
+ };
703
+ team: Team & Record<string, any>;
704
+ user: User & Record<string, any>;
705
+ organization: Organization & Record<string, any>;
706
+ }) => Promise<void | {
707
+ data: Record<string, any>;
708
+ }>;
709
+ /**
710
+ * A callback that runs after a member is added to a team
711
+ */
712
+ afterAddTeamMember?: (data: {
713
+ teamMember: TeamMember & Record<string, any>;
714
+ team: Team & Record<string, any>;
715
+ user: User & Record<string, any>;
716
+ organization: Organization & Record<string, any>;
717
+ }) => Promise<void>;
718
+ /**
719
+ * A callback that runs before a member is removed from a team
720
+ */
721
+ beforeRemoveTeamMember?: (data: {
722
+ teamMember: TeamMember & Record<string, any>;
723
+ team: Team & Record<string, any>;
724
+ user: User & Record<string, any>;
725
+ organization: Organization & Record<string, any>;
726
+ }) => Promise<void>;
727
+ /**
728
+ * A callback that runs after a member is removed from a team
729
+ */
730
+ afterRemoveTeamMember?: (data: {
731
+ teamMember: TeamMember & Record<string, any>;
732
+ team: Team & Record<string, any>;
733
+ user: User & Record<string, any>;
734
+ organization: Organization & Record<string, any>;
735
+ }) => Promise<void>;
736
+ } | undefined;
737
+ }