better-auth 1.2.0-beta.16 → 1.2.0-beta.19

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 (902) hide show
  1. package/dist/adapters/drizzle-adapter/drizzle-adapter.d.ts +67 -0
  2. package/dist/adapters/drizzle-adapter/drizzle-adapter.d.ts.map +1 -0
  3. package/dist/adapters/drizzle-adapter/index.cjs +285 -0
  4. package/dist/adapters/drizzle-adapter/index.d.ts +2 -0
  5. package/dist/adapters/drizzle-adapter/index.d.ts.map +1 -0
  6. package/dist/adapters/drizzle-adapter/index.mjs +283 -0
  7. package/dist/adapters/kysely-adapter/dialect.d.ts +8 -0
  8. package/dist/adapters/kysely-adapter/dialect.d.ts.map +1 -0
  9. package/dist/adapters/kysely-adapter/index.cjs +29 -0
  10. package/dist/adapters/kysely-adapter/index.d.ts +4 -0
  11. package/dist/adapters/kysely-adapter/index.d.ts.map +1 -0
  12. package/dist/adapters/kysely-adapter/index.mjs +22 -0
  13. package/dist/adapters/kysely-adapter/kysely-adapter.d.ts +57 -0
  14. package/dist/adapters/kysely-adapter/kysely-adapter.d.ts.map +1 -0
  15. package/dist/adapters/kysely-adapter/types.d.ts +2 -0
  16. package/dist/adapters/kysely-adapter/types.d.ts.map +1 -0
  17. package/dist/adapters/memory-adapter/index.cjs +28 -0
  18. package/dist/adapters/memory-adapter/index.d.ts +2 -0
  19. package/dist/adapters/memory-adapter/index.d.ts.map +1 -0
  20. package/dist/adapters/memory-adapter/index.mjs +22 -0
  21. package/dist/adapters/memory-adapter/memory-adapter.d.ts +50 -0
  22. package/dist/adapters/memory-adapter/memory-adapter.d.ts.map +1 -0
  23. package/dist/adapters/mongodb-adapter/index.cjs +282 -0
  24. package/dist/adapters/mongodb-adapter/index.d.ts +2 -0
  25. package/dist/adapters/mongodb-adapter/index.d.ts.map +1 -0
  26. package/dist/adapters/mongodb-adapter/index.mjs +280 -0
  27. package/dist/adapters/mongodb-adapter/mongodb-adapter.d.ts +48 -0
  28. package/dist/adapters/mongodb-adapter/mongodb-adapter.d.ts.map +1 -0
  29. package/dist/adapters/prisma-adapter/index.cjs +254 -0
  30. package/dist/adapters/prisma-adapter/index.d.ts +2 -0
  31. package/dist/adapters/prisma-adapter/index.d.ts.map +1 -0
  32. package/dist/adapters/prisma-adapter/index.mjs +252 -0
  33. package/dist/adapters/prisma-adapter/prisma-adapter.d.ts +57 -0
  34. package/dist/adapters/prisma-adapter/prisma-adapter.d.ts.map +1 -0
  35. package/dist/adapters/test.cjs +18 -6
  36. package/dist/adapters/test.d.ts +4 -12
  37. package/dist/adapters/test.d.ts.map +1 -0
  38. package/dist/adapters/test.mjs +439 -0
  39. package/dist/adapters/utils.d.ts +3 -0
  40. package/dist/adapters/utils.d.ts.map +1 -0
  41. package/dist/api/call.d.ts +1143 -0
  42. package/dist/api/call.d.ts.map +1 -0
  43. package/dist/api/index.cjs +788 -0
  44. package/dist/api/index.d.ts +7145 -0
  45. package/dist/api/index.d.ts.map +1 -0
  46. package/dist/api/index.mjs +745 -0
  47. package/dist/api/middlewares/index.d.ts +2 -0
  48. package/dist/api/middlewares/index.d.ts.map +1 -0
  49. package/dist/api/middlewares/origin-check.d.ts +24 -0
  50. package/dist/api/middlewares/origin-check.d.ts.map +1 -0
  51. package/dist/api/rate-limiter/index.d.ts +7 -0
  52. package/dist/api/rate-limiter/index.d.ts.map +1 -0
  53. package/dist/api/routes/account.d.ts +283 -0
  54. package/dist/api/routes/account.d.ts.map +1 -0
  55. package/dist/api/routes/callback.d.ts +84 -0
  56. package/dist/api/routes/callback.d.ts.map +1 -0
  57. package/dist/api/routes/email-verification.d.ts +205 -0
  58. package/dist/api/routes/email-verification.d.ts.map +1 -0
  59. package/dist/api/routes/error.d.ts +46 -0
  60. package/dist/api/routes/error.d.ts.map +1 -0
  61. package/dist/api/routes/forget-password.d.ts +221 -0
  62. package/dist/api/routes/forget-password.d.ts.map +1 -0
  63. package/dist/api/routes/index.d.ts +12 -0
  64. package/dist/api/routes/index.d.ts.map +1 -0
  65. package/dist/api/routes/ok.d.ts +55 -0
  66. package/dist/api/routes/ok.d.ts.map +1 -0
  67. package/dist/api/routes/session.d.ts +606 -0
  68. package/dist/api/routes/session.d.ts.map +1 -0
  69. package/dist/api/routes/sign-in.d.ts +329 -0
  70. package/dist/api/routes/sign-in.d.ts.map +1 -0
  71. package/dist/api/routes/sign-out.d.ts +55 -0
  72. package/dist/api/routes/sign-out.d.ts.map +1 -0
  73. package/dist/api/routes/sign-up.d.ts +768 -0
  74. package/dist/api/routes/sign-up.d.ts.map +1 -0
  75. package/dist/api/routes/update-user.d.ts +1160 -0
  76. package/dist/api/routes/update-user.d.ts.map +1 -0
  77. package/dist/api/to-auth-endpoints.d.ts +4 -0
  78. package/dist/api/to-auth-endpoints.d.ts.map +1 -0
  79. package/dist/auth.d.ts +3590 -0
  80. package/dist/auth.d.ts.map +1 -0
  81. package/dist/client/config.d.ts +74 -0
  82. package/dist/client/config.d.ts.map +1 -0
  83. package/dist/client/fetch-plugins.d.ts +8 -0
  84. package/dist/client/fetch-plugins.d.ts.map +1 -0
  85. package/dist/client/index.cjs +51 -0
  86. package/dist/client/index.d.ts +11 -0
  87. package/dist/client/index.d.ts.map +1 -0
  88. package/dist/client/index.mjs +47 -0
  89. package/dist/client/parser.d.ts +13 -0
  90. package/dist/client/parser.d.ts.map +1 -0
  91. package/dist/client/path-to-object.d.ts +63 -0
  92. package/dist/client/path-to-object.d.ts.map +1 -0
  93. package/dist/client/plugins/index.cjs +569 -0
  94. package/dist/client/plugins/index.d.ts +21 -0
  95. package/dist/client/plugins/index.d.ts.map +1 -0
  96. package/dist/client/plugins/index.mjs +548 -0
  97. package/dist/client/plugins/infer-plugin.d.ts +12 -0
  98. package/dist/client/plugins/infer-plugin.d.ts.map +1 -0
  99. package/dist/client/proxy.d.ts +9 -0
  100. package/dist/client/proxy.d.ts.map +1 -0
  101. package/dist/client/query.d.ts +14 -0
  102. package/dist/client/query.d.ts.map +1 -0
  103. package/dist/client/react/index.cjs +65 -0
  104. package/dist/client/react/index.d.ts +113 -0
  105. package/dist/client/react/index.d.ts.map +1 -0
  106. package/dist/client/react/index.mjs +61 -0
  107. package/dist/client/react/react-store.d.ts +21 -0
  108. package/dist/client/react/react-store.d.ts.map +1 -0
  109. package/dist/client/session-atom.d.ts +16 -0
  110. package/dist/client/session-atom.d.ts.map +1 -0
  111. package/dist/client/solid/index.cjs +58 -0
  112. package/dist/client/solid/index.d.ts +106 -0
  113. package/dist/client/solid/index.d.ts.map +1 -0
  114. package/dist/client/solid/index.mjs +56 -0
  115. package/dist/client/solid/solid-store.d.ts +10 -0
  116. package/dist/client/solid/solid-store.d.ts.map +1 -0
  117. package/dist/client/svelte/index.cjs +42 -0
  118. package/dist/client/svelte/index.d.ts +111 -0
  119. package/dist/client/svelte/index.d.ts.map +1 -0
  120. package/dist/client/svelte/index.mjs +40 -0
  121. package/dist/client/test-plugin.d.ts +130 -0
  122. package/dist/client/test-plugin.d.ts.map +1 -0
  123. package/dist/client/types.d.ts +79 -0
  124. package/dist/client/types.d.ts.map +1 -0
  125. package/dist/client/vanilla.d.ts +110 -0
  126. package/dist/client/vanilla.d.ts.map +1 -0
  127. package/dist/client/vue/index.cjs +87 -0
  128. package/dist/client/vue/index.d.ts +134 -0
  129. package/dist/client/vue/index.d.ts.map +1 -0
  130. package/dist/client/vue/index.mjs +85 -0
  131. package/dist/client/vue/vue-store.d.ts +5 -0
  132. package/dist/client/vue/vue-store.d.ts.map +1 -0
  133. package/dist/cookies/check-cookies.d.ts +5 -0
  134. package/dist/cookies/check-cookies.d.ts.map +1 -0
  135. package/dist/cookies/cookie-utils.d.ts +17 -0
  136. package/dist/cookies/cookie-utils.d.ts.map +1 -0
  137. package/dist/cookies/index.cjs +392 -0
  138. package/dist/cookies/index.d.ts +51 -0
  139. package/dist/cookies/index.d.ts.map +1 -0
  140. package/dist/cookies/index.mjs +381 -0
  141. package/dist/crypto/buffer.d.ts +5 -0
  142. package/dist/crypto/buffer.d.ts.map +1 -0
  143. package/dist/crypto/hash.d.ts +3 -0
  144. package/dist/crypto/hash.d.ts.map +1 -0
  145. package/dist/crypto/index.cjs +57 -0
  146. package/dist/crypto/index.d.ts +16 -0
  147. package/dist/crypto/index.d.ts.map +1 -0
  148. package/dist/crypto/index.mjs +48 -0
  149. package/dist/crypto/jwt.d.ts +2 -0
  150. package/dist/crypto/jwt.d.ts.map +1 -0
  151. package/dist/crypto/password.d.ts +6 -0
  152. package/dist/crypto/password.d.ts.map +1 -0
  153. package/dist/crypto/random.d.ts +2 -0
  154. package/dist/crypto/random.d.ts.map +1 -0
  155. package/dist/db/field.d.ts +148 -0
  156. package/dist/db/field.d.ts.map +1 -0
  157. package/dist/db/get-migration.d.ts +19 -0
  158. package/dist/db/get-migration.d.ts.map +1 -0
  159. package/dist/db/get-schema.d.ts +7 -0
  160. package/dist/db/get-schema.d.ts.map +1 -0
  161. package/dist/db/get-tables.d.ts +23 -0
  162. package/dist/db/get-tables.d.ts.map +1 -0
  163. package/dist/db/index.cjs +99 -0
  164. package/dist/db/index.d.ts +10 -0
  165. package/dist/db/index.d.ts.map +1 -0
  166. package/dist/db/index.mjs +72 -0
  167. package/dist/db/internal-adapter.d.ts +219 -0
  168. package/dist/db/internal-adapter.d.ts.map +1 -0
  169. package/dist/db/schema.d.ts +216 -0
  170. package/dist/db/schema.d.ts.map +1 -0
  171. package/dist/db/to-zod.d.ts +4 -0
  172. package/dist/db/to-zod.d.ts.map +1 -0
  173. package/dist/db/utils.d.ts +6 -0
  174. package/dist/db/utils.d.ts.map +1 -0
  175. package/dist/db/with-hooks.d.ts +19 -0
  176. package/dist/db/with-hooks.d.ts.map +1 -0
  177. package/dist/error/codes.d.ts +26 -0
  178. package/dist/error/codes.d.ts.map +1 -0
  179. package/dist/error/index.d.ts +7 -0
  180. package/dist/error/index.d.ts.map +1 -0
  181. package/dist/index.cjs +98 -101
  182. package/dist/index.d.ts +7 -26
  183. package/dist/index.d.ts.map +1 -0
  184. package/dist/index.mjs +249 -0
  185. package/dist/init.d.ts +71 -0
  186. package/dist/init.d.ts.map +1 -0
  187. package/dist/integrations/next-js.cjs +101 -0
  188. package/dist/integrations/next-js.d.ts +24 -0
  189. package/dist/integrations/next-js.d.ts.map +1 -0
  190. package/dist/integrations/next-js.mjs +98 -0
  191. package/dist/integrations/node.cjs +23 -0
  192. package/dist/integrations/node.d.ts +7 -0
  193. package/dist/integrations/node.d.ts.map +1 -0
  194. package/dist/integrations/node.mjs +20 -0
  195. package/dist/integrations/solid-start.cjs +13 -0
  196. package/dist/integrations/solid-start.d.ts +11 -0
  197. package/dist/integrations/solid-start.d.ts.map +1 -0
  198. package/dist/integrations/solid-start.mjs +11 -0
  199. package/dist/integrations/svelte-kit.cjs +37 -0
  200. package/dist/integrations/svelte-kit.d.ts +20 -0
  201. package/dist/integrations/svelte-kit.d.ts.map +1 -0
  202. package/dist/integrations/svelte-kit.mjs +33 -0
  203. package/dist/oauth2/create-authorization-url.d.ts +14 -0
  204. package/dist/oauth2/create-authorization-url.d.ts.map +1 -0
  205. package/dist/oauth2/index.cjs +30 -0
  206. package/dist/oauth2/index.d.ts +6 -0
  207. package/dist/oauth2/index.d.ts.map +1 -0
  208. package/dist/oauth2/index.mjs +18 -0
  209. package/dist/oauth2/link-account.d.ts +40 -0
  210. package/dist/oauth2/link-account.d.ts.map +1 -0
  211. package/dist/oauth2/state.d.ts +20 -0
  212. package/dist/oauth2/state.d.ts.map +1 -0
  213. package/dist/oauth2/types.d.ts +112 -0
  214. package/dist/oauth2/types.d.ts.map +1 -0
  215. package/dist/oauth2/utils.d.ts +4 -0
  216. package/dist/oauth2/utils.d.ts.map +1 -0
  217. package/dist/oauth2/validate-authorization-code.d.ts +12 -0
  218. package/dist/oauth2/validate-authorization-code.d.ts.map +1 -0
  219. package/dist/plugins/access/access.d.ts +26 -0
  220. package/dist/plugins/access/access.d.ts.map +1 -0
  221. package/dist/plugins/access/index.cjs +72 -0
  222. package/dist/plugins/access/index.d.ts +3 -0
  223. package/dist/plugins/access/index.d.ts.map +1 -0
  224. package/dist/plugins/access/index.mjs +69 -0
  225. package/dist/plugins/access/types.d.ts +15 -0
  226. package/dist/plugins/access/types.d.ts.map +1 -0
  227. package/dist/plugins/additional-fields/client.d.ts +93 -0
  228. package/dist/plugins/additional-fields/client.d.ts.map +1 -0
  229. package/dist/plugins/admin/access/index.cjs +28 -0
  230. package/dist/plugins/admin/access/index.d.ts +2 -0
  231. package/dist/plugins/admin/access/index.d.ts.map +1 -0
  232. package/dist/plugins/admin/access/index.mjs +22 -0
  233. package/dist/plugins/admin/access/statement.d.ts +111 -0
  234. package/dist/plugins/admin/access/statement.d.ts.map +1 -0
  235. package/dist/plugins/admin/admin.d.ts +1390 -0
  236. package/dist/plugins/admin/admin.d.ts.map +1 -0
  237. package/dist/plugins/admin/call.d.ts +23 -0
  238. package/dist/plugins/admin/call.d.ts.map +1 -0
  239. package/dist/plugins/admin/client.d.ts +43 -0
  240. package/dist/plugins/admin/client.d.ts.map +1 -0
  241. package/dist/plugins/admin/error-codes.d.ts +14 -0
  242. package/dist/plugins/admin/error-codes.d.ts.map +1 -0
  243. package/dist/plugins/admin/has-permission.d.ts +10 -0
  244. package/dist/plugins/admin/has-permission.d.ts.map +1 -0
  245. package/dist/plugins/admin/index.cjs +44 -0
  246. package/dist/plugins/admin/index.d.ts +2 -0
  247. package/dist/plugins/admin/index.d.ts.map +1 -0
  248. package/dist/plugins/admin/index.mjs +38 -0
  249. package/dist/plugins/anonymous/client.d.ts +9 -0
  250. package/dist/plugins/anonymous/client.d.ts.map +1 -0
  251. package/dist/plugins/anonymous/index.cjs +186 -0
  252. package/dist/plugins/anonymous/index.d.ts +152 -0
  253. package/dist/plugins/anonymous/index.d.ts.map +1 -0
  254. package/dist/plugins/anonymous/index.mjs +184 -0
  255. package/dist/plugins/api-key/client.d.ts +9 -0
  256. package/dist/plugins/api-key/client.d.ts.map +1 -0
  257. package/dist/plugins/api-key/index.d.ts +873 -0
  258. package/dist/plugins/api-key/index.d.ts.map +1 -0
  259. package/dist/plugins/api-key/rate-limit.d.ts +21 -0
  260. package/dist/plugins/api-key/rate-limit.d.ts.map +1 -0
  261. package/dist/plugins/api-key/routes/create-api-key.d.ts +137 -0
  262. package/dist/plugins/api-key/routes/create-api-key.d.ts.map +1 -0
  263. package/dist/plugins/api-key/routes/delete-all-expired-api-keys.d.ts +40 -0
  264. package/dist/plugins/api-key/routes/delete-all-expired-api-keys.d.ts.map +1 -0
  265. package/dist/plugins/api-key/routes/delete-api-key.d.ts +80 -0
  266. package/dist/plugins/api-key/routes/delete-api-key.d.ts.map +1 -0
  267. package/dist/plugins/api-key/routes/get-api-key.d.ts +118 -0
  268. package/dist/plugins/api-key/routes/get-api-key.d.ts.map +1 -0
  269. package/dist/plugins/api-key/routes/index.d.ts +709 -0
  270. package/dist/plugins/api-key/routes/index.d.ts.map +1 -0
  271. package/dist/plugins/api-key/routes/list-api-keys.d.ts +108 -0
  272. package/dist/plugins/api-key/routes/list-api-keys.d.ts.map +1 -0
  273. package/dist/plugins/api-key/routes/update-api-key.d.ts +135 -0
  274. package/dist/plugins/api-key/routes/update-api-key.d.ts.map +1 -0
  275. package/dist/plugins/api-key/routes/verify-api-key.d.ts +137 -0
  276. package/dist/plugins/api-key/routes/verify-api-key.d.ts.map +1 -0
  277. package/dist/plugins/api-key/schema.d.ts +189 -0
  278. package/dist/plugins/api-key/schema.d.ts.map +1 -0
  279. package/dist/plugins/api-key/types.d.ts +267 -0
  280. package/dist/plugins/api-key/types.d.ts.map +1 -0
  281. package/dist/plugins/bearer/index.cjs +120 -0
  282. package/dist/plugins/bearer/index.d.ts +48 -0
  283. package/dist/plugins/bearer/index.d.ts.map +1 -0
  284. package/dist/plugins/bearer/index.mjs +118 -0
  285. package/dist/plugins/captcha/constants.d.ts +8 -0
  286. package/dist/plugins/captcha/constants.d.ts.map +1 -0
  287. package/dist/plugins/captcha/error-codes.d.ts +7 -0
  288. package/dist/plugins/captcha/error-codes.d.ts.map +1 -0
  289. package/dist/plugins/captcha/index.cjs +134 -0
  290. package/dist/plugins/captcha/index.d.ts +14 -0
  291. package/dist/plugins/captcha/index.d.ts.map +1 -0
  292. package/dist/plugins/captcha/index.mjs +132 -0
  293. package/dist/plugins/captcha/types.d.ts +21 -0
  294. package/dist/plugins/captcha/types.d.ts.map +1 -0
  295. package/dist/plugins/captcha/verify-handlers/cloudflare-turnstile.d.ts +10 -0
  296. package/dist/plugins/captcha/verify-handlers/cloudflare-turnstile.d.ts.map +1 -0
  297. package/dist/plugins/captcha/verify-handlers/google-recaptcha.d.ts +10 -0
  298. package/dist/plugins/captcha/verify-handlers/google-recaptcha.d.ts.map +1 -0
  299. package/dist/plugins/captcha/verify-handlers/index.d.ts +3 -0
  300. package/dist/plugins/captcha/verify-handlers/index.d.ts.map +1 -0
  301. package/dist/plugins/custom-session/client.d.ts +12 -0
  302. package/dist/plugins/custom-session/client.d.ts.map +1 -0
  303. package/dist/plugins/custom-session/index.cjs +76 -0
  304. package/dist/plugins/custom-session/index.d.ts +58 -0
  305. package/dist/plugins/custom-session/index.d.ts.map +1 -0
  306. package/dist/plugins/custom-session/index.mjs +74 -0
  307. package/dist/plugins/email-otp/client.d.ts +6 -0
  308. package/dist/plugins/email-otp/client.d.ts.map +1 -0
  309. package/dist/plugins/email-otp/index.cjs +707 -0
  310. package/dist/plugins/email-otp/index.d.ts +606 -0
  311. package/dist/plugins/email-otp/index.d.ts.map +1 -0
  312. package/dist/plugins/email-otp/index.mjs +705 -0
  313. package/dist/plugins/generic-oauth/client.d.ts +6 -0
  314. package/dist/plugins/generic-oauth/client.d.ts.map +1 -0
  315. package/dist/plugins/generic-oauth/index.cjs +542 -0
  316. package/dist/plugins/generic-oauth/index.d.ts +354 -0
  317. package/dist/plugins/generic-oauth/index.d.ts.map +1 -0
  318. package/dist/plugins/generic-oauth/index.mjs +540 -0
  319. package/dist/plugins/index.cjs +1396 -0
  320. package/dist/plugins/index.d.ts +23 -0
  321. package/dist/plugins/index.d.ts.map +1 -0
  322. package/dist/plugins/index.mjs +1371 -0
  323. package/dist/plugins/jwt/adapter.d.ts +23 -0
  324. package/dist/plugins/jwt/adapter.d.ts.map +1 -0
  325. package/dist/plugins/jwt/client.d.ts +6 -0
  326. package/dist/plugins/jwt/client.d.ts.map +1 -0
  327. package/dist/plugins/jwt/index.cjs +282 -0
  328. package/dist/plugins/jwt/index.d.ts +277 -0
  329. package/dist/plugins/jwt/index.d.ts.map +1 -0
  330. package/dist/plugins/jwt/index.mjs +280 -0
  331. package/dist/plugins/jwt/schema.d.ts +37 -0
  332. package/dist/plugins/jwt/schema.d.ts.map +1 -0
  333. package/dist/plugins/jwt/utils.d.ts +11 -0
  334. package/dist/plugins/jwt/utils.d.ts.map +1 -0
  335. package/dist/plugins/magic-link/client.d.ts +6 -0
  336. package/dist/plugins/magic-link/client.d.ts.map +1 -0
  337. package/dist/plugins/magic-link/index.cjs +242 -0
  338. package/dist/plugins/magic-link/index.d.ts +218 -0
  339. package/dist/plugins/magic-link/index.d.ts.map +1 -0
  340. package/dist/plugins/magic-link/index.mjs +240 -0
  341. package/dist/plugins/multi-session/client.d.ts +10 -0
  342. package/dist/plugins/multi-session/client.d.ts.map +1 -0
  343. package/dist/plugins/multi-session/index.cjs +271 -0
  344. package/dist/plugins/multi-session/index.d.ts +257 -0
  345. package/dist/plugins/multi-session/index.d.ts.map +1 -0
  346. package/dist/plugins/multi-session/index.mjs +269 -0
  347. package/dist/plugins/oauth-proxy/index.cjs +174 -0
  348. package/dist/plugins/oauth-proxy/index.d.ts +134 -0
  349. package/dist/plugins/oauth-proxy/index.d.ts.map +1 -0
  350. package/dist/plugins/oauth-proxy/index.mjs +172 -0
  351. package/dist/plugins/oidc-provider/authorize.d.ts +4 -0
  352. package/dist/plugins/oidc-provider/authorize.d.ts.map +1 -0
  353. package/dist/plugins/oidc-provider/client.d.ts +6 -0
  354. package/dist/plugins/oidc-provider/client.d.ts.map +1 -0
  355. package/dist/plugins/oidc-provider/index.cjs +1039 -0
  356. package/dist/plugins/oidc-provider/index.d.ts +483 -0
  357. package/dist/plugins/oidc-provider/index.d.ts.map +1 -0
  358. package/dist/plugins/oidc-provider/index.mjs +1037 -0
  359. package/dist/plugins/oidc-provider/schema.d.ts +105 -0
  360. package/dist/plugins/oidc-provider/schema.d.ts.map +1 -0
  361. package/dist/plugins/oidc-provider/types.d.ts +496 -0
  362. package/dist/plugins/oidc-provider/types.d.ts.map +1 -0
  363. package/dist/plugins/oidc-provider/ui.d.ts +9 -0
  364. package/dist/plugins/oidc-provider/ui.d.ts.map +1 -0
  365. package/dist/plugins/one-tap/client.d.ts +82 -0
  366. package/dist/plugins/one-tap/client.d.ts.map +1 -0
  367. package/dist/plugins/one-tap/index.cjs +197 -0
  368. package/dist/plugins/one-tap/index.d.ts +114 -0
  369. package/dist/plugins/one-tap/index.d.ts.map +1 -0
  370. package/dist/plugins/one-tap/index.mjs +195 -0
  371. package/dist/plugins/open-api/generator.d.ts +101 -0
  372. package/dist/plugins/open-api/generator.d.ts.map +1 -0
  373. package/dist/plugins/open-api/index.cjs +480 -0
  374. package/dist/plugins/open-api/index.d.ts +152 -0
  375. package/dist/plugins/open-api/index.d.ts.map +1 -0
  376. package/dist/plugins/open-api/index.mjs +478 -0
  377. package/dist/plugins/open-api/logo.d.ts +2 -0
  378. package/dist/plugins/open-api/logo.d.ts.map +1 -0
  379. package/dist/plugins/organization/access/index.d.ts +2 -0
  380. package/dist/plugins/organization/access/index.d.ts.map +1 -0
  381. package/dist/plugins/organization/access/statement.d.ts +180 -0
  382. package/dist/plugins/organization/access/statement.d.ts.map +1 -0
  383. package/dist/plugins/organization/adapter.d.ts +291 -0
  384. package/dist/plugins/organization/adapter.d.ts.map +1 -0
  385. package/dist/plugins/organization/call.d.ts +41 -0
  386. package/dist/plugins/organization/call.d.ts.map +1 -0
  387. package/dist/plugins/organization/client.d.ts +334 -0
  388. package/dist/plugins/organization/client.d.ts.map +1 -0
  389. package/dist/plugins/organization/error-codes.d.ts +31 -0
  390. package/dist/plugins/organization/error-codes.d.ts.map +1 -0
  391. package/dist/plugins/organization/has-permission.d.ts +9 -0
  392. package/dist/plugins/organization/has-permission.d.ts.map +1 -0
  393. package/dist/plugins/organization/index.cjs +44 -0
  394. package/dist/plugins/organization/index.d.ts +2 -0
  395. package/dist/plugins/organization/index.d.ts.map +1 -0
  396. package/dist/plugins/organization/index.mjs +38 -0
  397. package/dist/plugins/organization/organization.d.ts +6764 -0
  398. package/dist/plugins/organization/organization.d.ts.map +1 -0
  399. package/dist/plugins/organization/routes/crud-invites.d.ts +2382 -0
  400. package/dist/plugins/organization/routes/crud-invites.d.ts.map +1 -0
  401. package/dist/plugins/organization/routes/crud-members.d.ts +578 -0
  402. package/dist/plugins/organization/routes/crud-members.d.ts.map +1 -0
  403. package/dist/plugins/organization/routes/crud-org.d.ts +789 -0
  404. package/dist/plugins/organization/routes/crud-org.d.ts.map +1 -0
  405. package/dist/plugins/organization/routes/crud-team.d.ts +348 -0
  406. package/dist/plugins/organization/routes/crud-team.d.ts.map +1 -0
  407. package/dist/plugins/organization/schema.d.ts +159 -0
  408. package/dist/plugins/organization/schema.d.ts.map +1 -0
  409. package/dist/plugins/passkey/client.d.ts +140 -0
  410. package/dist/plugins/passkey/client.d.ts.map +1 -0
  411. package/dist/plugins/passkey/index.cjs +831 -0
  412. package/dist/plugins/passkey/index.d.ts +847 -0
  413. package/dist/plugins/passkey/index.d.ts.map +1 -0
  414. package/dist/plugins/passkey/index.mjs +829 -0
  415. package/dist/plugins/phone-number/client.d.ts +10 -0
  416. package/dist/plugins/phone-number/client.d.ts.map +1 -0
  417. package/dist/plugins/phone-number/index.cjs +605 -0
  418. package/dist/plugins/phone-number/index.d.ts +477 -0
  419. package/dist/plugins/phone-number/index.d.ts.map +1 -0
  420. package/dist/plugins/phone-number/index.mjs +603 -0
  421. package/dist/plugins/sso/client.d.ts +6 -0
  422. package/dist/plugins/sso/client.d.ts.map +1 -0
  423. package/dist/plugins/sso/index.cjs +582 -0
  424. package/dist/plugins/sso/index.d.ts +490 -0
  425. package/dist/plugins/sso/index.d.ts.map +1 -0
  426. package/dist/plugins/sso/index.mjs +580 -0
  427. package/dist/plugins/two-factor/backup-codes/index.d.ts +348 -0
  428. package/dist/plugins/two-factor/backup-codes/index.d.ts.map +1 -0
  429. package/dist/plugins/two-factor/client.d.ts +29 -0
  430. package/dist/plugins/two-factor/client.d.ts.map +1 -0
  431. package/dist/plugins/two-factor/constant.d.ts +3 -0
  432. package/dist/plugins/two-factor/constant.d.ts.map +1 -0
  433. package/dist/plugins/two-factor/error-code.d.ts +9 -0
  434. package/dist/plugins/two-factor/error-code.d.ts.map +1 -0
  435. package/dist/plugins/two-factor/index.cjs +982 -0
  436. package/dist/plugins/two-factor/index.d.ts +1199 -0
  437. package/dist/plugins/two-factor/index.d.ts.map +1 -0
  438. package/dist/plugins/two-factor/index.mjs +979 -0
  439. package/dist/plugins/two-factor/otp/index.d.ts +352 -0
  440. package/dist/plugins/two-factor/otp/index.d.ts.map +1 -0
  441. package/dist/plugins/two-factor/schema.d.ts +36 -0
  442. package/dist/plugins/two-factor/schema.d.ts.map +1 -0
  443. package/dist/plugins/two-factor/totp/index.d.ts +367 -0
  444. package/dist/plugins/two-factor/totp/index.d.ts.map +1 -0
  445. package/dist/plugins/two-factor/types.d.ts +52 -0
  446. package/dist/plugins/two-factor/types.d.ts.map +1 -0
  447. package/dist/plugins/two-factor/verify-middleware.d.ts +76 -0
  448. package/dist/plugins/two-factor/verify-middleware.d.ts.map +1 -0
  449. package/dist/plugins/username/client.d.ts +6 -0
  450. package/dist/plugins/username/client.d.ts.map +1 -0
  451. package/dist/plugins/username/index.cjs +302 -0
  452. package/dist/plugins/username/index.d.ts +166 -0
  453. package/dist/plugins/username/index.d.ts.map +1 -0
  454. package/dist/plugins/username/index.mjs +300 -0
  455. package/dist/plugins/username/schema.d.ts +21 -0
  456. package/dist/plugins/username/schema.d.ts.map +1 -0
  457. package/dist/shared/better-auth.0TC26uRi.mjs +16 -0
  458. package/dist/shared/better-auth.0YzTc-oD.mjs +349 -0
  459. package/dist/shared/better-auth.8zoxzg-F.mjs +40 -0
  460. package/dist/shared/better-auth.ANpbi45u.cjs +22 -0
  461. package/dist/shared/better-auth.B4Qoxdgc.mjs +10 -0
  462. package/dist/shared/better-auth.B5NYxGA3.mjs +1126 -0
  463. package/dist/shared/better-auth.BBVHlTCJ.mjs +140 -0
  464. package/dist/shared/better-auth.BEphVDyL.cjs +251 -0
  465. package/dist/shared/better-auth.BG6vHVNT.cjs +30 -0
  466. package/dist/shared/better-auth.BIdFil5c.mjs +2966 -0
  467. package/dist/shared/better-auth.BLDOwz3i.cjs +7 -0
  468. package/dist/shared/better-auth.BMYo0QR-.cjs +10 -0
  469. package/dist/shared/better-auth.BUPPRXfK.mjs +7 -0
  470. package/dist/shared/better-auth.BXzrqpD0.mjs +89 -0
  471. package/dist/shared/better-auth.BcoSd9tC.mjs +10 -0
  472. package/dist/shared/better-auth.Bg6iw3ig.cjs +9 -0
  473. package/dist/shared/better-auth.BgkOX1Ei.cjs +36 -0
  474. package/dist/shared/better-auth.BopGaOCJ.mjs +1072 -0
  475. package/dist/shared/better-auth.BsGMIUYy.cjs +144 -0
  476. package/dist/shared/better-auth.BtJHz7JQ.mjs +21 -0
  477. package/dist/shared/better-auth.C1-vpKly.cjs +12 -0
  478. package/dist/shared/better-auth.C1hdVENX.cjs +7 -0
  479. package/dist/shared/better-auth.C24Bzw4w.mjs +174 -0
  480. package/dist/shared/better-auth.CDXNofOe.cjs +44 -0
  481. package/dist/shared/better-auth.CHh0hgk_.cjs +3007 -0
  482. package/dist/shared/better-auth.CHyZMcYK.cjs +190 -0
  483. package/dist/shared/better-auth.CKg1f8vU.cjs +1135 -0
  484. package/dist/shared/better-auth.CQvoVIBD.mjs +81 -0
  485. package/dist/shared/better-auth.CUdxApHl.cjs +18 -0
  486. package/dist/shared/better-auth.CW6D9eSx.mjs +5 -0
  487. package/dist/shared/better-auth.CYeOI8C-.cjs +12 -0
  488. package/dist/shared/better-auth.CZu6g_Il.cjs +92 -0
  489. package/dist/shared/better-auth.C_Zl7Etp.cjs +83 -0
  490. package/dist/shared/better-auth.CuZPmFi8.mjs +30 -0
  491. package/dist/shared/better-auth.Cytp8fGy.cjs +200 -0
  492. package/dist/shared/better-auth.D-2CmEwz.mjs +5 -0
  493. package/dist/shared/better-auth.D3mtHEZg.cjs +23 -0
  494. package/dist/shared/better-auth.D7syfoJW.mjs +133 -0
  495. package/dist/shared/better-auth.D8LeJoj0.mjs +173 -0
  496. package/dist/shared/better-auth.DDEbWX-S.mjs +8 -0
  497. package/dist/shared/better-auth.DH3YjMQH.mjs +55 -0
  498. package/dist/shared/better-auth.DMLPzZdQ.cjs +23 -0
  499. package/dist/shared/better-auth.DNqtHmvg.cjs +22 -0
  500. package/dist/shared/better-auth.DORkW_Ge.mjs +249 -0
  501. package/dist/shared/better-auth.DQI8AD7d.mjs +20 -0
  502. package/dist/shared/better-auth.DQRQ_nOW.cjs +1074 -0
  503. package/dist/shared/better-auth.DZnoWLte.cjs +175 -0
  504. package/dist/shared/better-auth.D_yrCdEQ.mjs +59 -0
  505. package/dist/shared/better-auth.DdjqxOIu.cjs +139 -0
  506. package/dist/shared/better-auth.Ddw8bVyV.mjs +35 -0
  507. package/dist/shared/better-auth.DdzSJf-n.mjs +19 -0
  508. package/dist/shared/better-auth.DhsGZ30Q.cjs +126 -0
  509. package/dist/shared/better-auth.DiSjtgs9.cjs +45 -0
  510. package/dist/shared/better-auth.DnER2-iT.cjs +37 -0
  511. package/dist/shared/better-auth.DssCybTk.cjs +64 -0
  512. package/dist/shared/better-auth.Duk7IG0N.mjs +34 -0
  513. package/dist/shared/better-auth.Ffl9CCnn.mjs +2293 -0
  514. package/dist/shared/better-auth.GpOOav9x.cjs +60 -0
  515. package/dist/shared/better-auth.HHZU10im.mjs +405 -0
  516. package/dist/shared/better-auth.OT3XFeFk.mjs +48 -0
  517. package/dist/shared/better-auth.YUF6P-PB.cjs +52 -0
  518. package/dist/shared/better-auth.YwDQhoPc.mjs +41 -0
  519. package/dist/shared/better-auth.am4QbDex.cjs +37 -0
  520. package/dist/shared/better-auth.cd8Jd_oV.mjs +197 -0
  521. package/dist/shared/better-auth.ffWeg50w.mjs +124 -0
  522. package/dist/shared/better-auth.fsvwNeUx.mjs +28 -0
  523. package/dist/shared/better-auth.lwzD09PV.cjs +408 -0
  524. package/dist/shared/better-auth.sN5DUs9C.cjs +351 -0
  525. package/dist/shared/better-auth.tB5eU6EY.mjs +21 -0
  526. package/dist/shared/better-auth.uUYJdWSr.cjs +2319 -0
  527. package/dist/social-providers/apple.d.ts +93 -0
  528. package/dist/social-providers/apple.d.ts.map +1 -0
  529. package/dist/social-providers/discord.d.ts +101 -0
  530. package/dist/social-providers/discord.d.ts.map +1 -0
  531. package/dist/social-providers/dropbox.d.ts +44 -0
  532. package/dist/social-providers/dropbox.d.ts.map +1 -0
  533. package/dist/social-providers/facebook.d.ts +52 -0
  534. package/dist/social-providers/facebook.d.ts.map +1 -0
  535. package/dist/social-providers/github.d.ts +77 -0
  536. package/dist/social-providers/github.d.ts.map +1 -0
  537. package/dist/social-providers/gitlab.d.ts +76 -0
  538. package/dist/social-providers/gitlab.d.ts.map +1 -0
  539. package/dist/social-providers/google.d.ts +62 -0
  540. package/dist/social-providers/google.d.ts.map +1 -0
  541. package/dist/social-providers/index.cjs +1217 -0
  542. package/dist/social-providers/index.d.ts +477 -0
  543. package/dist/social-providers/index.d.ts.map +1 -0
  544. package/dist/social-providers/index.mjs +1195 -0
  545. package/dist/social-providers/linkedin.d.ts +55 -0
  546. package/dist/social-providers/linkedin.d.ts.map +1 -0
  547. package/dist/social-providers/microsoft-entra-id.d.ts +56 -0
  548. package/dist/social-providers/microsoft-entra-id.d.ts.map +1 -0
  549. package/dist/social-providers/reddit.d.ts +40 -0
  550. package/dist/social-providers/reddit.d.ts.map +1 -0
  551. package/dist/social-providers/roblox.d.ts +48 -0
  552. package/dist/social-providers/roblox.d.ts.map +1 -0
  553. package/dist/social-providers/spotify.d.ts +39 -0
  554. package/dist/social-providers/spotify.d.ts.map +1 -0
  555. package/dist/social-providers/tiktok.d.ts +145 -0
  556. package/dist/social-providers/tiktok.d.ts.map +1 -0
  557. package/dist/social-providers/twitch.d.ts +50 -0
  558. package/dist/social-providers/twitch.d.ts.map +1 -0
  559. package/dist/social-providers/twitter.d.ts +119 -0
  560. package/dist/social-providers/twitter.d.ts.map +1 -0
  561. package/dist/social-providers/vk.d.ts +59 -0
  562. package/dist/social-providers/vk.d.ts.map +1 -0
  563. package/dist/tsconfig.declarations.tsbuildinfo +1 -0
  564. package/dist/types/adapter.d.ts +119 -0
  565. package/dist/types/adapter.d.ts.map +1 -0
  566. package/dist/types/api.d.ts +28 -0
  567. package/dist/types/api.d.ts.map +1 -0
  568. package/dist/types/context.d.ts +13 -0
  569. package/dist/types/context.d.ts.map +1 -0
  570. package/dist/types/helper.d.ts +32 -0
  571. package/dist/types/helper.d.ts.map +1 -0
  572. package/dist/types/index.d.ts +9 -0
  573. package/dist/types/index.d.ts.map +1 -0
  574. package/dist/types/models.d.ts +35 -0
  575. package/dist/types/models.d.ts.map +1 -0
  576. package/dist/types/options.d.ts +794 -0
  577. package/dist/types/options.d.ts.map +1 -0
  578. package/dist/types/plugins.d.ts +120 -0
  579. package/dist/types/plugins.d.ts.map +1 -0
  580. package/dist/utils/boolean.d.ts +2 -0
  581. package/dist/utils/boolean.d.ts.map +1 -0
  582. package/dist/utils/callback-url.d.ts +7 -0
  583. package/dist/utils/callback-url.d.ts.map +1 -0
  584. package/dist/utils/clone.d.ts +2 -0
  585. package/dist/utils/clone.d.ts.map +1 -0
  586. package/dist/utils/constants.d.ts +2 -0
  587. package/dist/utils/constants.d.ts.map +1 -0
  588. package/dist/utils/date.d.ts +2 -0
  589. package/dist/utils/date.d.ts.map +1 -0
  590. package/dist/utils/env.d.ts +10 -0
  591. package/dist/utils/env.d.ts.map +1 -0
  592. package/dist/utils/get-request-ip.d.ts +3 -0
  593. package/dist/utils/get-request-ip.d.ts.map +1 -0
  594. package/dist/utils/hide-metadata.d.ts +4 -0
  595. package/dist/utils/hide-metadata.d.ts.map +1 -0
  596. package/dist/utils/id.d.ts +2 -0
  597. package/dist/utils/id.d.ts.map +1 -0
  598. package/dist/utils/index.d.ts +7 -0
  599. package/dist/utils/index.d.ts.map +1 -0
  600. package/dist/utils/json.d.ts +2 -0
  601. package/dist/utils/json.d.ts.map +1 -0
  602. package/dist/utils/logger.d.ts +15 -0
  603. package/dist/utils/logger.d.ts.map +1 -0
  604. package/dist/utils/merger.d.ts +2 -0
  605. package/dist/utils/merger.d.ts.map +1 -0
  606. package/dist/utils/middleware-response.d.ts +9 -0
  607. package/dist/utils/middleware-response.d.ts.map +1 -0
  608. package/dist/utils/misc.d.ts +2 -0
  609. package/dist/utils/misc.d.ts.map +1 -0
  610. package/dist/utils/password.d.ts +7 -0
  611. package/dist/utils/password.d.ts.map +1 -0
  612. package/dist/utils/plugin-helper.d.ts +6 -0
  613. package/dist/utils/plugin-helper.d.ts.map +1 -0
  614. package/dist/utils/shim.d.ts +4 -0
  615. package/dist/utils/shim.d.ts.map +1 -0
  616. package/dist/utils/time.d.ts +29 -0
  617. package/dist/utils/time.d.ts.map +1 -0
  618. package/dist/utils/url.d.ts +6 -0
  619. package/dist/utils/url.d.ts.map +1 -0
  620. package/dist/utils/wildcard.d.ts +46 -0
  621. package/dist/utils/wildcard.d.ts.map +1 -0
  622. package/package.json +220 -218
  623. package/dist/adapters/drizzle.cjs +0 -274
  624. package/dist/adapters/drizzle.d.cts +0 -76
  625. package/dist/adapters/drizzle.d.ts +0 -76
  626. package/dist/adapters/drizzle.js +0 -272
  627. package/dist/adapters/kysely.cjs +0 -24
  628. package/dist/adapters/kysely.d.cts +0 -68
  629. package/dist/adapters/kysely.d.ts +0 -68
  630. package/dist/adapters/kysely.js +0 -11
  631. package/dist/adapters/memory.cjs +0 -20
  632. package/dist/adapters/memory.d.cts +0 -59
  633. package/dist/adapters/memory.d.ts +0 -59
  634. package/dist/adapters/memory.js +0 -11
  635. package/dist/adapters/mongodb.cjs +0 -273
  636. package/dist/adapters/mongodb.d.cts +0 -57
  637. package/dist/adapters/mongodb.d.ts +0 -57
  638. package/dist/adapters/mongodb.js +0 -271
  639. package/dist/adapters/prisma.cjs +0 -244
  640. package/dist/adapters/prisma.d.cts +0 -65
  641. package/dist/adapters/prisma.d.ts +0 -65
  642. package/dist/adapters/prisma.js +0 -242
  643. package/dist/adapters/test.d.cts +0 -16
  644. package/dist/adapters/test.js +0 -427
  645. package/dist/api.cjs +0 -179
  646. package/dist/api.d.cts +0 -8
  647. package/dist/api.d.ts +0 -8
  648. package/dist/api.js +0 -14
  649. package/dist/auth-B79moDlX.d.cts +0 -17513
  650. package/dist/auth-Kwau5-bb.d.ts +0 -17513
  651. package/dist/chunk-24JP47BJ.cjs +0 -514
  652. package/dist/chunk-2HPSCSV7.cjs +0 -8
  653. package/dist/chunk-2NRCW4MM.cjs +0 -276
  654. package/dist/chunk-36B4OZI7.cjs +0 -108
  655. package/dist/chunk-3XTQSPPA.js +0 -6
  656. package/dist/chunk-3YL6DMDX.cjs +0 -579
  657. package/dist/chunk-42QFDXM5.js +0 -168
  658. package/dist/chunk-4O3PNNJ5.js +0 -22
  659. package/dist/chunk-4YAPAKAB.cjs +0 -73
  660. package/dist/chunk-53IPO2PJ.js +0 -22
  661. package/dist/chunk-5ILVRGRP.cjs +0 -1066
  662. package/dist/chunk-6AFMN526.cjs +0 -45
  663. package/dist/chunk-6YBMZW4E.js +0 -274
  664. package/dist/chunk-74IS7WMH.js +0 -89
  665. package/dist/chunk-7KKMYVNZ.js +0 -42
  666. package/dist/chunk-7T4E7I7S.cjs +0 -1084
  667. package/dist/chunk-BAFWUSRZ.cjs +0 -277
  668. package/dist/chunk-BVPUB4ND.cjs +0 -2225
  669. package/dist/chunk-CAT6XI46.js +0 -275
  670. package/dist/chunk-CCKQSGIR.cjs +0 -8
  671. package/dist/chunk-CDEGAT2X.cjs +0 -38
  672. package/dist/chunk-CF7NIEGH.cjs +0 -38
  673. package/dist/chunk-COHCMRZR.cjs +0 -448
  674. package/dist/chunk-CWVCOYJV.cjs +0 -28
  675. package/dist/chunk-DINP2XPU.js +0 -677
  676. package/dist/chunk-DMXPQ4IV.js +0 -98
  677. package/dist/chunk-EHFDU6IF.cjs +0 -45
  678. package/dist/chunk-ENJOFIER.js +0 -212
  679. package/dist/chunk-EORFSCDW.cjs +0 -91
  680. package/dist/chunk-FDBO3FVG.cjs +0 -1135
  681. package/dist/chunk-FURNA6HY.js +0 -6
  682. package/dist/chunk-GBOJH32L.cjs +0 -82
  683. package/dist/chunk-GEW4G4Y7.cjs +0 -1007
  684. package/dist/chunk-GYDUPG7X.js +0 -36
  685. package/dist/chunk-H74YRRNV.cjs +0 -92
  686. package/dist/chunk-HC2USFT2.cjs +0 -214
  687. package/dist/chunk-HVHN3Y2L.js +0 -126
  688. package/dist/chunk-IGDRZOHV.js +0 -134
  689. package/dist/chunk-IX6WCVID.cjs +0 -1971
  690. package/dist/chunk-J6F3TU5V.js +0 -1082
  691. package/dist/chunk-JEYF2ARX.js +0 -21
  692. package/dist/chunk-JOH6QBAP.cjs +0 -362
  693. package/dist/chunk-JUPDDQC4.cjs +0 -23
  694. package/dist/chunk-KEQSKZI2.js +0 -239
  695. package/dist/chunk-KIQWU6Z4.cjs +0 -278
  696. package/dist/chunk-KLDFBLYL.js +0 -85
  697. package/dist/chunk-LJJIONSX.cjs +0 -45
  698. package/dist/chunk-LKPN4Y5Z.js +0 -31
  699. package/dist/chunk-M5XMVH2M.js +0 -1114
  700. package/dist/chunk-NC57F4RJ.cjs +0 -3703
  701. package/dist/chunk-NSBXOWUM.js +0 -1064
  702. package/dist/chunk-NTBGYF7H.cjs +0 -241
  703. package/dist/chunk-OA7Z7IZT.cjs +0 -24
  704. package/dist/chunk-PEZRSDZS.cjs +0 -23
  705. package/dist/chunk-Q4E77C7B.js +0 -1005
  706. package/dist/chunk-Q4XYQ7DC.js +0 -156
  707. package/dist/chunk-QUVBQTGS.js +0 -274
  708. package/dist/chunk-R42K7GPF.js +0 -132
  709. package/dist/chunk-REY76NPL.cjs +0 -136
  710. package/dist/chunk-RJUH2LYP.js +0 -577
  711. package/dist/chunk-RXJOBUFI.js +0 -43
  712. package/dist/chunk-S5UORXJH.cjs +0 -65
  713. package/dist/chunk-SENLFMI2.js +0 -142
  714. package/dist/chunk-SVC7H7K4.cjs +0 -138
  715. package/dist/chunk-TBGNSOTL.js +0 -1955
  716. package/dist/chunk-THOAPE5K.js +0 -70
  717. package/dist/chunk-TJWK22XS.js +0 -446
  718. package/dist/chunk-TOKZL3ZI.js +0 -42
  719. package/dist/chunk-TOSIKQ2I.cjs +0 -144
  720. package/dist/chunk-TQQSPPNA.js +0 -41
  721. package/dist/chunk-U4I57HJ4.cjs +0 -129
  722. package/dist/chunk-UNWCXKMP.js +0 -20
  723. package/dist/chunk-UQC2FUXC.cjs +0 -224
  724. package/dist/chunk-VOUL66AG.js +0 -512
  725. package/dist/chunk-VXYIYABQ.cjs +0 -46
  726. package/dist/chunk-WBFH3ZYN.js +0 -352
  727. package/dist/chunk-WMXBA6LX.js +0 -11
  728. package/dist/chunk-WVVF7K6P.js +0 -79
  729. package/dist/chunk-WZ6OIVJK.js +0 -207
  730. package/dist/chunk-X3J3BWQR.js +0 -2223
  731. package/dist/chunk-XDMVO6BH.cjs +0 -170
  732. package/dist/chunk-XFCIANZX.js +0 -60
  733. package/dist/chunk-XRF73UDB.js +0 -3654
  734. package/dist/chunk-Y64QYLA4.cjs +0 -158
  735. package/dist/chunk-Y6QT4U6Z.cjs +0 -679
  736. package/dist/chunk-ZBKCS3KP.cjs +0 -13
  737. package/dist/client/plugins.cjs +0 -572
  738. package/dist/client/plugins.d.cts +0 -758
  739. package/dist/client/plugins.d.ts +0 -758
  740. package/dist/client/plugins.js +0 -549
  741. package/dist/client.cjs +0 -24
  742. package/dist/client.d.cts +0 -138
  743. package/dist/client.d.ts +0 -138
  744. package/dist/client.js +0 -7
  745. package/dist/cookies.cjs +0 -46
  746. package/dist/cookies.d.cts +0 -8
  747. package/dist/cookies.d.ts +0 -8
  748. package/dist/cookies.js +0 -5
  749. package/dist/crypto.cjs +0 -42
  750. package/dist/crypto.d.cts +0 -30
  751. package/dist/crypto.d.ts +0 -30
  752. package/dist/crypto.js +0 -1
  753. package/dist/db.cjs +0 -120
  754. package/dist/db.d.cts +0 -56
  755. package/dist/db.d.ts +0 -56
  756. package/dist/db.js +0 -11
  757. package/dist/helper-DFk-nDjL.d.cts +0 -29
  758. package/dist/helper-DFk-nDjL.d.ts +0 -29
  759. package/dist/hide-metadata-DEHJp1rk.d.cts +0 -5
  760. package/dist/hide-metadata-DEHJp1rk.d.ts +0 -5
  761. package/dist/index-BKfxieJM.d.ts +0 -1500
  762. package/dist/index-Bo3yOPaO.d.cts +0 -1500
  763. package/dist/index-CpB6VxxI.d.ts +0 -5116
  764. package/dist/index-UqpJkXzo.d.cts +0 -5116
  765. package/dist/index.d.cts +0 -26
  766. package/dist/index.js +0 -217
  767. package/dist/next-js.cjs +0 -100
  768. package/dist/next-js.d.cts +0 -34
  769. package/dist/next-js.d.ts +0 -34
  770. package/dist/next-js.js +0 -97
  771. package/dist/node.cjs +0 -24
  772. package/dist/node.d.cts +0 -17
  773. package/dist/node.d.ts +0 -17
  774. package/dist/node.js +0 -21
  775. package/dist/oauth2.cjs +0 -37
  776. package/dist/oauth2.d.cts +0 -39
  777. package/dist/oauth2.d.ts +0 -39
  778. package/dist/oauth2.js +0 -4
  779. package/dist/plugins/access.cjs +0 -15
  780. package/dist/plugins/access.d.cts +0 -42
  781. package/dist/plugins/access.d.ts +0 -42
  782. package/dist/plugins/access.js +0 -2
  783. package/dist/plugins/admin/access.cjs +0 -28
  784. package/dist/plugins/admin/access.d.cts +0 -116
  785. package/dist/plugins/admin/access.d.ts +0 -116
  786. package/dist/plugins/admin/access.js +0 -3
  787. package/dist/plugins/admin.cjs +0 -28
  788. package/dist/plugins/admin.d.cts +0 -1398
  789. package/dist/plugins/admin.d.ts +0 -1398
  790. package/dist/plugins/admin.js +0 -19
  791. package/dist/plugins/anonymous.cjs +0 -24
  792. package/dist/plugins/anonymous.d.cts +0 -160
  793. package/dist/plugins/anonymous.d.ts +0 -160
  794. package/dist/plugins/anonymous.js +0 -15
  795. package/dist/plugins/bearer.cjs +0 -24
  796. package/dist/plugins/bearer.d.cts +0 -57
  797. package/dist/plugins/bearer.d.ts +0 -57
  798. package/dist/plugins/bearer.js +0 -15
  799. package/dist/plugins/captcha.cjs +0 -10
  800. package/dist/plugins/captcha.d.cts +0 -21
  801. package/dist/plugins/captcha.d.ts +0 -21
  802. package/dist/plugins/captcha.js +0 -1
  803. package/dist/plugins/custom-session.cjs +0 -24
  804. package/dist/plugins/custom-session.d.cts +0 -66
  805. package/dist/plugins/custom-session.d.ts +0 -66
  806. package/dist/plugins/custom-session.js +0 -15
  807. package/dist/plugins/email-otp.cjs +0 -25
  808. package/dist/plugins/email-otp.d.cts +0 -615
  809. package/dist/plugins/email-otp.d.ts +0 -615
  810. package/dist/plugins/email-otp.js +0 -16
  811. package/dist/plugins/generic-oauth.cjs +0 -24
  812. package/dist/plugins/generic-oauth.d.cts +0 -356
  813. package/dist/plugins/generic-oauth.d.ts +0 -356
  814. package/dist/plugins/generic-oauth.js +0 -15
  815. package/dist/plugins/jwt.cjs +0 -24
  816. package/dist/plugins/jwt.d.cts +0 -303
  817. package/dist/plugins/jwt.d.ts +0 -303
  818. package/dist/plugins/jwt.js +0 -15
  819. package/dist/plugins/magic-link.cjs +0 -24
  820. package/dist/plugins/magic-link.d.cts +0 -220
  821. package/dist/plugins/magic-link.d.ts +0 -220
  822. package/dist/plugins/magic-link.js +0 -15
  823. package/dist/plugins/multi-session.cjs +0 -24
  824. package/dist/plugins/multi-session.d.cts +0 -265
  825. package/dist/plugins/multi-session.d.ts +0 -265
  826. package/dist/plugins/multi-session.js +0 -15
  827. package/dist/plugins/oidc-provider.cjs +0 -24
  828. package/dist/plugins/oidc-provider.d.cts +0 -977
  829. package/dist/plugins/oidc-provider.d.ts +0 -977
  830. package/dist/plugins/oidc-provider.js +0 -15
  831. package/dist/plugins/one-tap.cjs +0 -24
  832. package/dist/plugins/one-tap.d.cts +0 -116
  833. package/dist/plugins/one-tap.d.ts +0 -116
  834. package/dist/plugins/one-tap.js +0 -15
  835. package/dist/plugins/open-api.cjs +0 -26
  836. package/dist/plugins/open-api.d.cts +0 -260
  837. package/dist/plugins/open-api.d.ts +0 -260
  838. package/dist/plugins/open-api.js +0 -17
  839. package/dist/plugins/organization.cjs +0 -27
  840. package/dist/plugins/organization.d.cts +0 -10
  841. package/dist/plugins/organization.d.ts +0 -10
  842. package/dist/plugins/organization.js +0 -18
  843. package/dist/plugins/passkey.cjs +0 -799
  844. package/dist/plugins/passkey.d.cts +0 -833
  845. package/dist/plugins/passkey.d.ts +0 -833
  846. package/dist/plugins/passkey.js +0 -797
  847. package/dist/plugins/phone-number.cjs +0 -24
  848. package/dist/plugins/phone-number.d.cts +0 -483
  849. package/dist/plugins/phone-number.d.ts +0 -483
  850. package/dist/plugins/phone-number.js +0 -15
  851. package/dist/plugins/sso.cjs +0 -566
  852. package/dist/plugins/sso.d.cts +0 -496
  853. package/dist/plugins/sso.d.ts +0 -496
  854. package/dist/plugins/sso.js +0 -564
  855. package/dist/plugins/two-factor.cjs +0 -31
  856. package/dist/plugins/two-factor.d.cts +0 -1394
  857. package/dist/plugins/two-factor.d.ts +0 -1394
  858. package/dist/plugins/two-factor.js +0 -18
  859. package/dist/plugins/username.cjs +0 -25
  860. package/dist/plugins/username.d.cts +0 -194
  861. package/dist/plugins/username.d.ts +0 -194
  862. package/dist/plugins/username.js +0 -16
  863. package/dist/plugins.cjs +0 -139
  864. package/dist/plugins.d.cts +0 -164
  865. package/dist/plugins.d.ts +0 -164
  866. package/dist/plugins.js +0 -42
  867. package/dist/react.cjs +0 -64
  868. package/dist/react.d.cts +0 -140
  869. package/dist/react.d.ts +0 -140
  870. package/dist/react.js +0 -60
  871. package/dist/social.cjs +0 -93
  872. package/dist/social.d.cts +0 -4
  873. package/dist/social.d.ts +0 -4
  874. package/dist/social.js +0 -8
  875. package/dist/solid-start.cjs +0 -14
  876. package/dist/solid-start.d.cts +0 -12
  877. package/dist/solid-start.d.ts +0 -12
  878. package/dist/solid-start.js +0 -12
  879. package/dist/solid.cjs +0 -56
  880. package/dist/solid.d.cts +0 -115
  881. package/dist/solid.d.ts +0 -115
  882. package/dist/solid.js +0 -54
  883. package/dist/state-C7IUhB_Z.d.cts +0 -22
  884. package/dist/state-D32_8TuF.d.ts +0 -22
  885. package/dist/svelte-kit.cjs +0 -38
  886. package/dist/svelte-kit.d.cts +0 -29
  887. package/dist/svelte-kit.d.ts +0 -29
  888. package/dist/svelte-kit.js +0 -34
  889. package/dist/svelte.cjs +0 -40
  890. package/dist/svelte.d.cts +0 -120
  891. package/dist/svelte.d.ts +0 -120
  892. package/dist/svelte.js +0 -38
  893. package/dist/types.cjs +0 -4
  894. package/dist/types.d.cts +0 -137
  895. package/dist/types.d.ts +0 -137
  896. package/dist/types.js +0 -1
  897. package/dist/vue.cjs +0 -85
  898. package/dist/vue.d.cts +0 -143
  899. package/dist/vue.d.ts +0 -143
  900. package/dist/vue.js +0 -83
  901. /package/dist/{chunk-NIMYOIVU.cjs → types/index.cjs} +0 -0
  902. /package/dist/{chunk-SK6Y2YH6.js → types/index.mjs} +0 -0
@@ -0,0 +1,1072 @@
1
+ import { z } from 'zod';
2
+ import { APIError } from 'better-call';
3
+ import { a as createAuthEndpoint, c as createAuthMiddleware, g as getSessionFromCtx } from './better-auth.BIdFil5c.mjs';
4
+ import { setSessionCookie, deleteSessionCookie } from '../cookies/index.mjs';
5
+ import { m as mergeSchema } from './better-auth.C24Bzw4w.mjs';
6
+ import './better-auth.8zoxzg-F.mjs';
7
+ import './better-auth.DH3YjMQH.mjs';
8
+ import 'defu';
9
+ import { g as getDate } from './better-auth.CW6D9eSx.mjs';
10
+ import { g as getEndpointResponse } from './better-auth.DQI8AD7d.mjs';
11
+ import { a as adminMiddleware } from './better-auth.BtJHz7JQ.mjs';
12
+ import { defaultRoles } from '../plugins/admin/access/index.mjs';
13
+
14
+ const ADMIN_ERROR_CODES = {
15
+ FAILED_TO_CREATE_USER: "Failed to create user",
16
+ USER_ALREADY_EXISTS: "User already exists",
17
+ YOU_CANNOT_BAN_YOURSELF: "You cannot ban yourself",
18
+ YOU_ARE_NOT_ALLOWED_TO_CHANGE_USERS_ROLE: "You are not allowed to change users role",
19
+ YOU_ARE_NOT_ALLOWED_TO_CREATE_USERS: "You are not allowed to create users",
20
+ YOU_ARE_NOT_ALLOWED_TO_LIST_USERS: "You are not allowed to list users",
21
+ YOU_ARE_NOT_ALLOWED_TO_LIST_USERS_SESSIONS: "You are not allowed to list users sessions",
22
+ YOU_ARE_NOT_ALLOWED_TO_BAN_USERS: "You are not allowed to ban users",
23
+ YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS: "You are not allowed to impersonate users",
24
+ YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS: "You are not allowed to revoke users sessions",
25
+ YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS: "You are not allowed to delete users"
26
+ };
27
+
28
+ const hasPermission = (input) => {
29
+ if (input.options?.adminUserIds?.includes(input.userId)) {
30
+ return true;
31
+ }
32
+ const roles = (input.role || input.options?.defaultRole || "user").split(",");
33
+ const acRoles = input.options?.roles || defaultRoles;
34
+ for (const role of roles) {
35
+ const _role = acRoles[role];
36
+ const result = _role?.authorize(input.permission);
37
+ if (result?.success) {
38
+ return true;
39
+ }
40
+ }
41
+ return false;
42
+ };
43
+
44
+ const admin = (options) => {
45
+ const opts = {
46
+ ...options
47
+ };
48
+ return {
49
+ id: "admin",
50
+ init(ctx) {
51
+ return {
52
+ options: {
53
+ databaseHooks: {
54
+ user: {
55
+ create: {
56
+ async before(user) {
57
+ return {
58
+ data: {
59
+ role: options?.defaultRole ?? "user",
60
+ ...user
61
+ }
62
+ };
63
+ }
64
+ }
65
+ },
66
+ session: {
67
+ create: {
68
+ async before(session) {
69
+ const user = await ctx.internalAdapter.findUserById(
70
+ session.userId
71
+ );
72
+ if (user.banned) {
73
+ if (user.banExpires && user.banExpires.getTime() < Date.now()) {
74
+ await ctx.internalAdapter.updateUser(session.userId, {
75
+ banned: false,
76
+ banReason: null,
77
+ banExpires: null
78
+ });
79
+ return;
80
+ }
81
+ return false;
82
+ }
83
+ }
84
+ }
85
+ }
86
+ }
87
+ }
88
+ };
89
+ },
90
+ hooks: {
91
+ after: [
92
+ {
93
+ matcher(context) {
94
+ return context.path === "/list-sessions";
95
+ },
96
+ handler: createAuthMiddleware(async (ctx) => {
97
+ const response = await getEndpointResponse(ctx);
98
+ if (!response) {
99
+ return;
100
+ }
101
+ const newJson = response.filter((session) => {
102
+ return !session.impersonatedBy;
103
+ });
104
+ return ctx.json(newJson);
105
+ })
106
+ }
107
+ ]
108
+ },
109
+ endpoints: {
110
+ setRole: createAuthEndpoint(
111
+ "/admin/set-role",
112
+ {
113
+ method: "POST",
114
+ body: z.object({
115
+ userId: z.string({
116
+ description: "The user id"
117
+ }),
118
+ role: z.string({
119
+ description: "The role to set. `admin` or `user` by default"
120
+ })
121
+ }),
122
+ use: [adminMiddleware],
123
+ metadata: {
124
+ openapi: {
125
+ operationId: "setRole",
126
+ summary: "Set the role of a user",
127
+ description: "Set the role of a user",
128
+ responses: {
129
+ 200: {
130
+ description: "User role updated",
131
+ content: {
132
+ "application/json": {
133
+ schema: {
134
+ type: "object",
135
+ properties: {
136
+ user: {
137
+ $ref: "#/components/schemas/User"
138
+ }
139
+ }
140
+ }
141
+ }
142
+ }
143
+ }
144
+ }
145
+ }
146
+ }
147
+ },
148
+ async (ctx) => {
149
+ const canSetRole = hasPermission({
150
+ userId: ctx.context.session.user.id,
151
+ role: ctx.context.session.user.role,
152
+ options: ctx.context.adminOptions,
153
+ permission: {
154
+ user: ["set-role"]
155
+ }
156
+ });
157
+ if (!canSetRole) {
158
+ throw new APIError("FORBIDDEN", {
159
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_CHANGE_USERS_ROLE
160
+ });
161
+ }
162
+ const updatedUser = await ctx.context.internalAdapter.updateUser(
163
+ ctx.body.userId,
164
+ {
165
+ role: ctx.body.role
166
+ },
167
+ ctx
168
+ );
169
+ return ctx.json({
170
+ user: updatedUser
171
+ });
172
+ }
173
+ ),
174
+ createUser: createAuthEndpoint(
175
+ "/admin/create-user",
176
+ {
177
+ method: "POST",
178
+ body: z.object({
179
+ email: z.string({
180
+ description: "The email of the user"
181
+ }),
182
+ password: z.string({
183
+ description: "The password of the user"
184
+ }),
185
+ name: z.string({
186
+ description: "The name of the user"
187
+ }),
188
+ role: z.string({
189
+ description: "The role of the user"
190
+ }),
191
+ /**
192
+ * extra fields for user
193
+ */
194
+ data: z.optional(
195
+ z.record(z.any(), {
196
+ description: "Extra fields for the user. Including custom additional fields."
197
+ })
198
+ )
199
+ }),
200
+ use: [adminMiddleware],
201
+ metadata: {
202
+ openapi: {
203
+ operationId: "createUser",
204
+ summary: "Create a new user",
205
+ description: "Create a new user",
206
+ responses: {
207
+ 200: {
208
+ description: "User created",
209
+ content: {
210
+ "application/json": {
211
+ schema: {
212
+ type: "object",
213
+ properties: {
214
+ user: {
215
+ $ref: "#/components/schemas/User"
216
+ }
217
+ }
218
+ }
219
+ }
220
+ }
221
+ }
222
+ }
223
+ }
224
+ }
225
+ },
226
+ async (ctx) => {
227
+ const session = ctx.context.session;
228
+ const canCreateUser = hasPermission({
229
+ userId: ctx.context.session.user.id,
230
+ role: session.user.role,
231
+ options: ctx.context.adminOptions,
232
+ permission: {
233
+ user: ["create"]
234
+ }
235
+ });
236
+ if (!canCreateUser) {
237
+ throw new APIError("FORBIDDEN", {
238
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_CREATE_USERS
239
+ });
240
+ }
241
+ const existUser = await ctx.context.internalAdapter.findUserByEmail(
242
+ ctx.body.email
243
+ );
244
+ if (existUser) {
245
+ throw new APIError("BAD_REQUEST", {
246
+ message: ADMIN_ERROR_CODES.USER_ALREADY_EXISTS
247
+ });
248
+ }
249
+ const user = await ctx.context.internalAdapter.createUser({
250
+ email: ctx.body.email,
251
+ name: ctx.body.name,
252
+ role: ctx.body.role,
253
+ ...ctx.body.data
254
+ });
255
+ if (!user) {
256
+ throw new APIError("INTERNAL_SERVER_ERROR", {
257
+ message: ADMIN_ERROR_CODES.FAILED_TO_CREATE_USER
258
+ });
259
+ }
260
+ const hashedPassword = await ctx.context.password.hash(
261
+ ctx.body.password
262
+ );
263
+ await ctx.context.internalAdapter.linkAccount(
264
+ {
265
+ accountId: user.id,
266
+ providerId: "credential",
267
+ password: hashedPassword,
268
+ userId: user.id
269
+ },
270
+ ctx
271
+ );
272
+ return ctx.json({
273
+ user
274
+ });
275
+ }
276
+ ),
277
+ listUsers: createAuthEndpoint(
278
+ "/admin/list-users",
279
+ {
280
+ method: "GET",
281
+ use: [adminMiddleware],
282
+ query: z.object({
283
+ searchValue: z.string({
284
+ description: "The value to search for"
285
+ }).optional(),
286
+ searchField: z.enum(["email", "name"], {
287
+ description: "The field to search in, defaults to email. Can be `email` or `name`"
288
+ }).optional(),
289
+ searchOperator: z.enum(["contains", "starts_with", "ends_with"], {
290
+ description: "The operator to use for the search. Can be `contains`, `starts_with` or `ends_with`"
291
+ }).optional(),
292
+ limit: z.string({
293
+ description: "The number of users to return"
294
+ }).or(z.number()).optional(),
295
+ offset: z.string({
296
+ description: "The offset to start from"
297
+ }).or(z.number()).optional(),
298
+ sortBy: z.string({
299
+ description: "The field to sort by"
300
+ }).optional(),
301
+ sortDirection: z.enum(["asc", "desc"], {
302
+ description: "The direction to sort by"
303
+ }).optional(),
304
+ filterField: z.string({
305
+ description: "The field to filter by"
306
+ }).optional(),
307
+ filterValue: z.string({
308
+ description: "The value to filter by"
309
+ }).or(z.number()).or(z.boolean()).optional(),
310
+ filterOperator: z.enum(["eq", "ne", "lt", "lte", "gt", "gte"], {
311
+ description: "The operator to use for the filter"
312
+ }).optional()
313
+ }),
314
+ metadata: {
315
+ openapi: {
316
+ operationId: "listUsers",
317
+ summary: "List users",
318
+ description: "List users",
319
+ responses: {
320
+ 200: {
321
+ description: "List of users",
322
+ content: {
323
+ "application/json": {
324
+ schema: {
325
+ type: "object",
326
+ properties: {
327
+ users: {
328
+ type: "array",
329
+ items: {
330
+ $ref: "#/components/schemas/User"
331
+ }
332
+ },
333
+ total: {
334
+ type: "number"
335
+ },
336
+ limit: {
337
+ type: ["number", "undefined"]
338
+ },
339
+ offset: {
340
+ type: ["number", "undefined"]
341
+ }
342
+ }
343
+ }
344
+ }
345
+ }
346
+ }
347
+ }
348
+ }
349
+ }
350
+ },
351
+ async (ctx) => {
352
+ const session = ctx.context.session;
353
+ const canListUsers = hasPermission({
354
+ userId: ctx.context.session.user.id,
355
+ role: session.user.role,
356
+ options: ctx.context.adminOptions,
357
+ permission: {
358
+ user: ["list"]
359
+ }
360
+ });
361
+ if (!canListUsers) {
362
+ throw new APIError("FORBIDDEN", {
363
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_LIST_USERS
364
+ });
365
+ }
366
+ const where = [];
367
+ if (ctx.query?.searchValue) {
368
+ where.push({
369
+ field: ctx.query.searchField || "email",
370
+ operator: ctx.query.searchOperator || "contains",
371
+ value: ctx.query.searchValue
372
+ });
373
+ }
374
+ if (ctx.query?.filterValue) {
375
+ where.push({
376
+ field: ctx.query.filterField || "email",
377
+ operator: ctx.query.filterOperator || "eq",
378
+ value: ctx.query.filterValue
379
+ });
380
+ }
381
+ try {
382
+ const users = await ctx.context.internalAdapter.listUsers(
383
+ Number(ctx.query?.limit) || void 0,
384
+ Number(ctx.query?.offset) || void 0,
385
+ ctx.query?.sortBy ? {
386
+ field: ctx.query.sortBy,
387
+ direction: ctx.query.sortDirection || "asc"
388
+ } : void 0,
389
+ where.length ? where : void 0
390
+ );
391
+ const total = await ctx.context.internalAdapter.countTotalUsers();
392
+ return ctx.json({
393
+ users,
394
+ total,
395
+ limit: Number(ctx.query?.limit) || void 0,
396
+ offset: Number(ctx.query?.offset) || void 0
397
+ });
398
+ } catch (e) {
399
+ return ctx.json({
400
+ users: [],
401
+ total: 0
402
+ });
403
+ }
404
+ }
405
+ ),
406
+ listUserSessions: createAuthEndpoint(
407
+ "/admin/list-user-sessions",
408
+ {
409
+ method: "POST",
410
+ use: [adminMiddleware],
411
+ body: z.object({
412
+ userId: z.string({
413
+ description: "The user id"
414
+ })
415
+ }),
416
+ metadata: {
417
+ openapi: {
418
+ operationId: "listUserSessions",
419
+ summary: "List user sessions",
420
+ description: "List user sessions",
421
+ responses: {
422
+ 200: {
423
+ description: "List of user sessions",
424
+ content: {
425
+ "application/json": {
426
+ schema: {
427
+ type: "object",
428
+ properties: {
429
+ sessions: {
430
+ type: "array",
431
+ items: {
432
+ $ref: "#/components/schemas/Session"
433
+ }
434
+ }
435
+ }
436
+ }
437
+ }
438
+ }
439
+ }
440
+ }
441
+ }
442
+ }
443
+ },
444
+ async (ctx) => {
445
+ const session = ctx.context.session;
446
+ const canListSessions = hasPermission({
447
+ userId: ctx.context.session.user.id,
448
+ role: session.user.role,
449
+ options: ctx.context.adminOptions,
450
+ permission: {
451
+ session: ["list"]
452
+ }
453
+ });
454
+ if (!canListSessions) {
455
+ throw new APIError("FORBIDDEN", {
456
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_LIST_USERS_SESSIONS
457
+ });
458
+ }
459
+ const sessions = await ctx.context.internalAdapter.listSessions(
460
+ ctx.body.userId
461
+ );
462
+ return {
463
+ sessions
464
+ };
465
+ }
466
+ ),
467
+ unbanUser: createAuthEndpoint(
468
+ "/admin/unban-user",
469
+ {
470
+ method: "POST",
471
+ body: z.object({
472
+ userId: z.string({
473
+ description: "The user id"
474
+ })
475
+ }),
476
+ use: [adminMiddleware],
477
+ metadata: {
478
+ openapi: {
479
+ operationId: "unbanUser",
480
+ summary: "Unban a user",
481
+ description: "Unban a user",
482
+ responses: {
483
+ 200: {
484
+ description: "User unbanned",
485
+ content: {
486
+ "application/json": {
487
+ schema: {
488
+ type: "object",
489
+ properties: {
490
+ user: {
491
+ $ref: "#/components/schemas/User"
492
+ }
493
+ }
494
+ }
495
+ }
496
+ }
497
+ }
498
+ }
499
+ }
500
+ }
501
+ },
502
+ async (ctx) => {
503
+ const session = ctx.context.session;
504
+ const canBanUser = hasPermission({
505
+ userId: ctx.context.session.user.id,
506
+ role: session.user.role,
507
+ options: ctx.context.adminOptions,
508
+ permission: {
509
+ user: ["ban"]
510
+ }
511
+ });
512
+ if (!canBanUser) {
513
+ throw new APIError("FORBIDDEN", {
514
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_BAN_USERS
515
+ });
516
+ }
517
+ const user = await ctx.context.internalAdapter.updateUser(
518
+ ctx.body.userId,
519
+ {
520
+ banned: false,
521
+ banExpires: null,
522
+ banReason: null
523
+ }
524
+ );
525
+ return ctx.json({
526
+ user
527
+ });
528
+ }
529
+ ),
530
+ banUser: createAuthEndpoint(
531
+ "/admin/ban-user",
532
+ {
533
+ method: "POST",
534
+ body: z.object({
535
+ userId: z.string({
536
+ description: "The user id"
537
+ }),
538
+ /**
539
+ * Reason for the ban
540
+ */
541
+ banReason: z.string({
542
+ description: "The reason for the ban"
543
+ }).optional(),
544
+ /**
545
+ * Number of seconds until the ban expires
546
+ */
547
+ banExpiresIn: z.number({
548
+ description: "The number of seconds until the ban expires"
549
+ }).optional()
550
+ }),
551
+ use: [adminMiddleware],
552
+ metadata: {
553
+ openapi: {
554
+ operationId: "banUser",
555
+ summary: "Ban a user",
556
+ description: "Ban a user",
557
+ responses: {
558
+ 200: {
559
+ description: "User banned",
560
+ content: {
561
+ "application/json": {
562
+ schema: {
563
+ type: "object",
564
+ properties: {
565
+ user: {
566
+ $ref: "#/components/schemas/User"
567
+ }
568
+ }
569
+ }
570
+ }
571
+ }
572
+ }
573
+ }
574
+ }
575
+ }
576
+ },
577
+ async (ctx) => {
578
+ const session = ctx.context.session;
579
+ const canBanUser = hasPermission({
580
+ userId: ctx.context.session.user.id,
581
+ role: session.user.role,
582
+ options: ctx.context.adminOptions,
583
+ permission: {
584
+ user: ["ban"]
585
+ }
586
+ });
587
+ if (!canBanUser) {
588
+ throw new APIError("FORBIDDEN", {
589
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_BAN_USERS
590
+ });
591
+ }
592
+ if (ctx.body.userId === ctx.context.session.user.id) {
593
+ throw new APIError("BAD_REQUEST", {
594
+ message: ADMIN_ERROR_CODES.YOU_CANNOT_BAN_YOURSELF
595
+ });
596
+ }
597
+ const user = await ctx.context.internalAdapter.updateUser(
598
+ ctx.body.userId,
599
+ {
600
+ banned: true,
601
+ banReason: ctx.body.banReason || options?.defaultBanReason || "No reason",
602
+ banExpires: ctx.body.banExpiresIn ? getDate(ctx.body.banExpiresIn, "sec") : options?.defaultBanExpiresIn ? getDate(options.defaultBanExpiresIn, "sec") : void 0
603
+ },
604
+ ctx
605
+ );
606
+ await ctx.context.internalAdapter.deleteSessions(ctx.body.userId);
607
+ return ctx.json({
608
+ user
609
+ });
610
+ }
611
+ ),
612
+ impersonateUser: createAuthEndpoint(
613
+ "/admin/impersonate-user",
614
+ {
615
+ method: "POST",
616
+ body: z.object({
617
+ userId: z.string({
618
+ description: "The user id"
619
+ })
620
+ }),
621
+ use: [adminMiddleware],
622
+ metadata: {
623
+ openapi: {
624
+ operationId: "impersonateUser",
625
+ summary: "Impersonate a user",
626
+ description: "Impersonate a user",
627
+ responses: {
628
+ 200: {
629
+ description: "Impersonation session created",
630
+ content: {
631
+ "application/json": {
632
+ schema: {
633
+ type: "object",
634
+ properties: {
635
+ session: {
636
+ $ref: "#/components/schemas/Session"
637
+ },
638
+ user: {
639
+ $ref: "#/components/schemas/User"
640
+ }
641
+ }
642
+ }
643
+ }
644
+ }
645
+ }
646
+ }
647
+ }
648
+ }
649
+ },
650
+ async (ctx) => {
651
+ const canImpersonateUser = hasPermission({
652
+ userId: ctx.context.session.user.id,
653
+ role: ctx.context.session.user.role,
654
+ options: ctx.context.adminOptions,
655
+ permission: {
656
+ user: ["impersonate"]
657
+ }
658
+ });
659
+ if (!canImpersonateUser) {
660
+ throw new APIError("FORBIDDEN", {
661
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_IMPERSONATE_USERS
662
+ });
663
+ }
664
+ const targetUser = await ctx.context.internalAdapter.findUserById(
665
+ ctx.body.userId
666
+ );
667
+ if (!targetUser) {
668
+ throw new APIError("NOT_FOUND", {
669
+ message: "User not found"
670
+ });
671
+ }
672
+ const session = await ctx.context.internalAdapter.createSession(
673
+ targetUser.id,
674
+ void 0,
675
+ true,
676
+ {
677
+ impersonatedBy: ctx.context.session.user.id,
678
+ expiresAt: options?.impersonationSessionDuration ? getDate(options.impersonationSessionDuration, "sec") : getDate(60 * 60, "sec")
679
+ // 1 hour
680
+ },
681
+ ctx,
682
+ true
683
+ );
684
+ if (!session) {
685
+ throw new APIError("INTERNAL_SERVER_ERROR", {
686
+ message: ADMIN_ERROR_CODES.FAILED_TO_CREATE_USER
687
+ });
688
+ }
689
+ const authCookies = ctx.context.authCookies;
690
+ deleteSessionCookie(ctx);
691
+ await ctx.setSignedCookie(
692
+ "admin_session",
693
+ ctx.context.session.session.token,
694
+ ctx.context.secret,
695
+ authCookies.sessionToken.options
696
+ );
697
+ await setSessionCookie(
698
+ ctx,
699
+ {
700
+ session,
701
+ user: targetUser
702
+ },
703
+ true
704
+ );
705
+ return ctx.json({
706
+ session,
707
+ user: targetUser
708
+ });
709
+ }
710
+ ),
711
+ stopImpersonating: createAuthEndpoint(
712
+ "/admin/stop-impersonating",
713
+ {
714
+ method: "POST"
715
+ },
716
+ async (ctx) => {
717
+ const session = await getSessionFromCtx(ctx);
718
+ if (!session) {
719
+ throw new APIError("UNAUTHORIZED");
720
+ }
721
+ if (!session.session.impersonatedBy) {
722
+ throw new APIError("BAD_REQUEST", {
723
+ message: "You are not impersonating anyone"
724
+ });
725
+ }
726
+ const user = await ctx.context.internalAdapter.findUserById(
727
+ session.session.impersonatedBy
728
+ );
729
+ if (!user) {
730
+ throw new APIError("INTERNAL_SERVER_ERROR", {
731
+ message: "Failed to find user"
732
+ });
733
+ }
734
+ const adminCookie = await ctx.getSignedCookie(
735
+ "admin_session",
736
+ ctx.context.secret
737
+ );
738
+ if (!adminCookie) {
739
+ throw new APIError("INTERNAL_SERVER_ERROR", {
740
+ message: "Failed to find admin session"
741
+ });
742
+ }
743
+ const adminSession = await ctx.context.internalAdapter.findSession(adminCookie);
744
+ if (!adminSession || adminSession.session.userId !== user.id) {
745
+ throw new APIError("INTERNAL_SERVER_ERROR", {
746
+ message: "Failed to find admin session"
747
+ });
748
+ }
749
+ await setSessionCookie(ctx, adminSession);
750
+ return ctx.json(adminSession);
751
+ }
752
+ ),
753
+ revokeUserSession: createAuthEndpoint(
754
+ "/admin/revoke-user-session",
755
+ {
756
+ method: "POST",
757
+ body: z.object({
758
+ sessionToken: z.string({
759
+ description: "The session token"
760
+ })
761
+ }),
762
+ use: [adminMiddleware],
763
+ metadata: {
764
+ openapi: {
765
+ operationId: "revokeUserSession",
766
+ summary: "Revoke a user session",
767
+ description: "Revoke a user session",
768
+ responses: {
769
+ 200: {
770
+ description: "Session revoked",
771
+ content: {
772
+ "application/json": {
773
+ schema: {
774
+ type: "object",
775
+ properties: {
776
+ success: {
777
+ type: "boolean"
778
+ }
779
+ }
780
+ }
781
+ }
782
+ }
783
+ }
784
+ }
785
+ }
786
+ }
787
+ },
788
+ async (ctx) => {
789
+ const session = ctx.context.session;
790
+ const canRevokeSession = hasPermission({
791
+ userId: ctx.context.session.user.id,
792
+ role: session.user.role,
793
+ options: ctx.context.adminOptions,
794
+ permission: {
795
+ session: ["revoke"]
796
+ }
797
+ });
798
+ if (!canRevokeSession) {
799
+ throw new APIError("FORBIDDEN", {
800
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS
801
+ });
802
+ }
803
+ await ctx.context.internalAdapter.deleteSession(
804
+ ctx.body.sessionToken
805
+ );
806
+ return ctx.json({
807
+ success: true
808
+ });
809
+ }
810
+ ),
811
+ revokeUserSessions: createAuthEndpoint(
812
+ "/admin/revoke-user-sessions",
813
+ {
814
+ method: "POST",
815
+ body: z.object({
816
+ userId: z.string({
817
+ description: "The user id"
818
+ })
819
+ }),
820
+ use: [adminMiddleware],
821
+ metadata: {
822
+ openapi: {
823
+ operationId: "revokeUserSessions",
824
+ summary: "Revoke all user sessions",
825
+ description: "Revoke all user sessions",
826
+ responses: {
827
+ 200: {
828
+ description: "Sessions revoked",
829
+ content: {
830
+ "application/json": {
831
+ schema: {
832
+ type: "object",
833
+ properties: {
834
+ success: {
835
+ type: "boolean"
836
+ }
837
+ }
838
+ }
839
+ }
840
+ }
841
+ }
842
+ }
843
+ }
844
+ }
845
+ },
846
+ async (ctx) => {
847
+ const session = ctx.context.session;
848
+ const canRevokeSession = hasPermission({
849
+ userId: ctx.context.session.user.id,
850
+ role: session.user.role,
851
+ options: ctx.context.adminOptions,
852
+ permission: {
853
+ session: ["revoke"]
854
+ }
855
+ });
856
+ if (!canRevokeSession) {
857
+ throw new APIError("FORBIDDEN", {
858
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_REVOKE_USERS_SESSIONS
859
+ });
860
+ }
861
+ await ctx.context.internalAdapter.deleteSessions(ctx.body.userId);
862
+ return ctx.json({
863
+ success: true
864
+ });
865
+ }
866
+ ),
867
+ removeUser: createAuthEndpoint(
868
+ "/admin/remove-user",
869
+ {
870
+ method: "POST",
871
+ body: z.object({
872
+ userId: z.string({
873
+ description: "The user id"
874
+ })
875
+ }),
876
+ use: [adminMiddleware],
877
+ metadata: {
878
+ openapi: {
879
+ operationId: "removeUser",
880
+ summary: "Remove a user",
881
+ description: "Delete a user and all their sessions and accounts. Cannot be undone.",
882
+ responses: {
883
+ 200: {
884
+ description: "User removed",
885
+ content: {
886
+ "application/json": {
887
+ schema: {
888
+ type: "object",
889
+ properties: {
890
+ success: {
891
+ type: "boolean"
892
+ }
893
+ }
894
+ }
895
+ }
896
+ }
897
+ }
898
+ }
899
+ }
900
+ }
901
+ },
902
+ async (ctx) => {
903
+ const session = ctx.context.session;
904
+ const canDeleteUser = hasPermission({
905
+ userId: ctx.context.session.user.id,
906
+ role: session.user.role,
907
+ options: ctx.context.adminOptions,
908
+ permission: {
909
+ user: ["delete"]
910
+ }
911
+ });
912
+ if (!canDeleteUser) {
913
+ throw new APIError("FORBIDDEN", {
914
+ message: ADMIN_ERROR_CODES.YOU_ARE_NOT_ALLOWED_TO_DELETE_USERS
915
+ });
916
+ }
917
+ await ctx.context.internalAdapter.deleteUser(ctx.body.userId);
918
+ return ctx.json({
919
+ success: true
920
+ });
921
+ }
922
+ ),
923
+ setUserPassword: createAuthEndpoint(
924
+ "/admin/set-user-password",
925
+ {
926
+ method: "POST",
927
+ body: z.object({
928
+ newPassword: z.string(),
929
+ userId: z.string()
930
+ }),
931
+ use: [adminMiddleware]
932
+ },
933
+ async (ctx) => {
934
+ const hashedPassword = await ctx.context.password.hash(
935
+ ctx.body.newPassword
936
+ );
937
+ await ctx.context.internalAdapter.updatePassword(
938
+ ctx.body.userId,
939
+ hashedPassword
940
+ );
941
+ return ctx.json({
942
+ status: true
943
+ });
944
+ }
945
+ ),
946
+ userHasPermission: createAuthEndpoint(
947
+ "/admin/has-permission",
948
+ {
949
+ method: "POST",
950
+ body: z.object({
951
+ permission: z.record(z.string(), z.array(z.string())),
952
+ userId: z.string().optional(),
953
+ role: z.string().optional()
954
+ }),
955
+ metadata: {
956
+ openapi: {
957
+ description: "Check if the user has permission",
958
+ requestBody: {
959
+ content: {
960
+ "application/json": {
961
+ schema: {
962
+ type: "object",
963
+ properties: {
964
+ permission: {
965
+ type: "object",
966
+ description: "The permission to check"
967
+ }
968
+ },
969
+ required: ["permission"]
970
+ }
971
+ }
972
+ }
973
+ },
974
+ responses: {
975
+ "200": {
976
+ description: "Success",
977
+ content: {
978
+ "application/json": {
979
+ schema: {
980
+ type: "object",
981
+ properties: {
982
+ error: {
983
+ type: "string"
984
+ },
985
+ success: {
986
+ type: "boolean"
987
+ }
988
+ },
989
+ required: ["success"]
990
+ }
991
+ }
992
+ }
993
+ }
994
+ }
995
+ },
996
+ $Infer: {
997
+ body: {}
998
+ }
999
+ }
1000
+ },
1001
+ async (ctx) => {
1002
+ if (!ctx.body.permission || Object.keys(ctx.body.permission).length > 1) {
1003
+ throw new APIError("BAD_REQUEST", {
1004
+ message: "invalid permission check. you can only check one resource permission at a time."
1005
+ });
1006
+ }
1007
+ const session = ctx.context.session;
1008
+ if (!session && (ctx.request || ctx.headers) && !ctx.body.userId && !ctx.body.role) {
1009
+ throw new APIError("UNAUTHORIZED");
1010
+ }
1011
+ const user = session?.user || await ctx.context.internalAdapter.findUserById(
1012
+ ctx.body.userId
1013
+ ) || (ctx.body.role ? { id: "", role: ctx.body.role } : null);
1014
+ if (!user) {
1015
+ throw new APIError("BAD_REQUEST", {
1016
+ message: "user not found"
1017
+ });
1018
+ }
1019
+ const result = hasPermission({
1020
+ userId: user.id,
1021
+ role: user.role,
1022
+ options,
1023
+ permission: ctx.body.permission
1024
+ });
1025
+ return ctx.json({
1026
+ error: null,
1027
+ success: result
1028
+ });
1029
+ }
1030
+ )
1031
+ },
1032
+ $ERROR_CODES: ADMIN_ERROR_CODES,
1033
+ schema: mergeSchema(schema, opts.schema)
1034
+ };
1035
+ };
1036
+ const schema = {
1037
+ user: {
1038
+ fields: {
1039
+ role: {
1040
+ type: "string",
1041
+ required: false,
1042
+ input: false
1043
+ },
1044
+ banned: {
1045
+ type: "boolean",
1046
+ defaultValue: false,
1047
+ required: false,
1048
+ input: false
1049
+ },
1050
+ banReason: {
1051
+ type: "string",
1052
+ required: false,
1053
+ input: false
1054
+ },
1055
+ banExpires: {
1056
+ type: "date",
1057
+ required: false,
1058
+ input: false
1059
+ }
1060
+ }
1061
+ },
1062
+ session: {
1063
+ fields: {
1064
+ impersonatedBy: {
1065
+ type: "string",
1066
+ required: false
1067
+ }
1068
+ }
1069
+ }
1070
+ };
1071
+
1072
+ export { admin as a };