payload-auth 1.0.0 → 1.0.2

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 (328) hide show
  1. package/dist/authjs/index.d.ts +1 -0
  2. package/dist/authjs/index.d.ts.map +1 -0
  3. package/dist/authjs/index.js +1 -1
  4. package/dist/better-auth/adapter/dev/bin/run.d.ts +1 -0
  5. package/dist/better-auth/adapter/dev/bin/run.d.ts.map +1 -0
  6. package/dist/better-auth/adapter/dev/bin/run.js +1 -1
  7. package/dist/better-auth/adapter/dev/bin/schema.d.ts +1 -0
  8. package/dist/better-auth/adapter/dev/bin/schema.d.ts.map +1 -0
  9. package/dist/better-auth/adapter/dev/bin/schema.js +1 -1
  10. package/dist/better-auth/adapter/dev/collections.d.ts +1 -0
  11. package/dist/better-auth/adapter/dev/collections.d.ts.map +1 -0
  12. package/dist/better-auth/adapter/dev/collections.js +1 -1
  13. package/dist/better-auth/adapter/dev/index.d.ts +1 -0
  14. package/dist/better-auth/adapter/dev/index.d.ts.map +1 -0
  15. package/dist/better-auth/adapter/dev/index.js +1 -1
  16. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +1 -0
  17. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts.map +1 -0
  18. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +1 -1
  19. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +1 -0
  20. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts.map +1 -0
  21. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +1 -1
  22. package/dist/better-auth/adapter/generate-schema/index.d.ts +1 -0
  23. package/dist/better-auth/adapter/generate-schema/index.d.ts.map +1 -0
  24. package/dist/better-auth/adapter/generate-schema/index.js +3 -3
  25. package/dist/better-auth/adapter/generate-schema/utils.d.ts +1 -0
  26. package/dist/better-auth/adapter/generate-schema/utils.d.ts.map +1 -0
  27. package/dist/better-auth/adapter/generate-schema/utils.js +1 -1
  28. package/dist/better-auth/adapter/index.d.ts +3 -2
  29. package/dist/better-auth/adapter/index.d.ts.map +1 -0
  30. package/dist/better-auth/adapter/index.js +3 -3
  31. package/dist/better-auth/adapter/test/adapter.test.d.ts +1 -0
  32. package/dist/better-auth/adapter/test/adapter.test.d.ts.map +1 -0
  33. package/dist/better-auth/adapter/test/adapter.test.js +1 -1
  34. package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +1 -0
  35. package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts.map +1 -0
  36. package/dist/better-auth/adapter/test/better-auth-adapter-test.js +1 -1
  37. package/dist/better-auth/adapter/test/schema.test.d.ts +1 -0
  38. package/dist/better-auth/adapter/test/schema.test.d.ts.map +1 -0
  39. package/dist/better-auth/adapter/test/schema.test.js +1 -1
  40. package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +1 -0
  41. package/dist/better-auth/adapter/test/test_payload1/schema.d.ts.map +1 -0
  42. package/dist/better-auth/adapter/test/test_payload1/schema.js +1 -1
  43. package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +1 -0
  44. package/dist/better-auth/adapter/test/test_payload2/schema.d.ts.map +1 -0
  45. package/dist/better-auth/adapter/test/test_payload2/schema.js +1 -1
  46. package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +1 -0
  47. package/dist/better-auth/adapter/test/test_payload3/schema.d.ts.map +1 -0
  48. package/dist/better-auth/adapter/test/test_payload3/schema.js +1 -1
  49. package/dist/better-auth/adapter/transform/index.d.ts +5 -4
  50. package/dist/better-auth/adapter/transform/index.d.ts.map +1 -0
  51. package/dist/better-auth/adapter/transform/index.js +1 -1
  52. package/dist/better-auth/adapter/types.d.ts +1 -0
  53. package/dist/better-auth/adapter/types.d.ts.map +1 -0
  54. package/dist/better-auth/adapter/types.js +1 -1
  55. package/dist/better-auth/index.d.ts +1 -3
  56. package/dist/better-auth/index.d.ts.map +1 -0
  57. package/dist/better-auth/index.js +1 -4
  58. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts +1 -0
  59. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
  60. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +1 -1
  61. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +1 -0
  62. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts.map +1 -0
  63. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +1 -1
  64. package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts +1 -0
  65. package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts.map +1 -0
  66. package/dist/better-auth/plugin/collections/users/hooks/after-login.js +1 -1
  67. package/dist/better-auth/plugin/collections/users/hooks/after-logout.d.ts +1 -0
  68. package/dist/better-auth/plugin/collections/users/hooks/after-logout.d.ts.map +1 -0
  69. package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +1 -1
  70. package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts +1 -0
  71. package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts.map +1 -0
  72. package/dist/better-auth/plugin/collections/users/hooks/before-login.js +1 -1
  73. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +1 -0
  74. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts.map +1 -0
  75. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +1 -1
  76. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +1 -0
  77. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts.map +1 -0
  78. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +1 -1
  79. package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts +1 -0
  80. package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts.map +1 -0
  81. package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +2 -2
  82. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +1 -0
  83. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts.map +1 -0
  84. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +1 -1
  85. package/dist/better-auth/plugin/helpers/get-ip.d.ts +1 -0
  86. package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -0
  87. package/dist/better-auth/plugin/helpers/get-ip.js +1 -1
  88. package/dist/better-auth/plugin/helpers/index.d.ts +1 -0
  89. package/dist/better-auth/plugin/helpers/index.d.ts.map +1 -0
  90. package/dist/better-auth/plugin/helpers/index.js +1 -1
  91. package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts +3 -2
  92. package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts.map +1 -0
  93. package/dist/better-auth/plugin/helpers/serialize-cookie.js +1 -1
  94. package/dist/better-auth/plugin/index.d.ts +2 -1
  95. package/dist/better-auth/plugin/index.d.ts.map +1 -0
  96. package/dist/better-auth/plugin/index.js +2 -2
  97. package/dist/better-auth/plugin/lib/auth-strategy.d.ts +1 -0
  98. package/dist/better-auth/plugin/lib/auth-strategy.d.ts.map +1 -0
  99. package/dist/better-auth/plugin/lib/auth-strategy.js +1 -1
  100. package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +1 -0
  101. package/dist/better-auth/plugin/lib/build-collection-configs.d.ts.map +1 -0
  102. package/dist/better-auth/plugin/lib/build-collection-configs.js +2 -2
  103. package/dist/better-auth/plugin/lib/config.d.ts +2 -0
  104. package/dist/better-auth/plugin/lib/config.d.ts.map +1 -0
  105. package/dist/better-auth/plugin/lib/config.js +3 -2
  106. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts +1 -0
  107. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts.map +1 -0
  108. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +1 -1
  109. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +1 -0
  110. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -0
  111. package/dist/better-auth/plugin/lib/get-payload-auth.js +1 -1
  112. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +1 -0
  113. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +1 -0
  114. package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +1 -1
  115. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +1 -0
  116. package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -0
  117. package/dist/better-auth/plugin/lib/init-better-auth.js +2 -2
  118. package/dist/better-auth/plugin/lib/password.d.ts +1 -0
  119. package/dist/better-auth/plugin/lib/password.d.ts.map +1 -0
  120. package/dist/better-auth/plugin/lib/password.js +1 -1
  121. package/dist/better-auth/plugin/lib/payload-access.d.ts +1 -0
  122. package/dist/better-auth/plugin/lib/payload-access.d.ts.map +1 -0
  123. package/dist/better-auth/plugin/lib/payload-access.js +1 -1
  124. package/dist/better-auth/plugin/lib/prepare-session-data.d.ts +2 -1
  125. package/dist/better-auth/plugin/lib/prepare-session-data.d.ts.map +1 -0
  126. package/dist/better-auth/plugin/lib/prepare-session-data.js +1 -1
  127. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts +1 -0
  128. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts.map +1 -0
  129. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +1 -1
  130. package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +1 -0
  131. package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts.map +1 -0
  132. package/dist/better-auth/plugin/lib/sanitize-auth-options.js +1 -1
  133. package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +3 -1
  134. package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts.map +1 -0
  135. package/dist/better-auth/plugin/payload/components/admin-buttons.js +3 -6
  136. package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +1 -0
  137. package/dist/better-auth/plugin/payload/components/login-redirect.d.ts.map +1 -0
  138. package/dist/better-auth/plugin/payload/components/login-redirect.js +1 -1
  139. package/dist/better-auth/plugin/payload/components/logo.d.ts +3 -1
  140. package/dist/better-auth/plugin/payload/components/logo.d.ts.map +1 -0
  141. package/dist/better-auth/plugin/payload/components/logo.js +1 -1
  142. package/dist/better-auth/plugin/payload/components/logout.d.ts +3 -1
  143. package/dist/better-auth/plugin/payload/components/logout.d.ts.map +1 -0
  144. package/dist/better-auth/plugin/payload/components/logout.js +1 -1
  145. package/dist/better-auth/plugin/payload/components/sign-in.d.ts +2 -1
  146. package/dist/better-auth/plugin/payload/components/sign-in.d.ts.map +1 -0
  147. package/dist/better-auth/plugin/payload/components/sign-in.js +1 -1
  148. package/dist/better-auth/plugin/payload/components/sign-up.d.ts +2 -1
  149. package/dist/better-auth/plugin/payload/components/sign-up.d.ts.map +1 -0
  150. package/dist/better-auth/plugin/payload/components/sign-up.js +2 -1
  151. package/dist/better-auth/plugin/payload/components/ui/button.d.ts +6 -5
  152. package/dist/better-auth/plugin/payload/components/ui/button.d.ts.map +1 -0
  153. package/dist/better-auth/plugin/payload/components/ui/button.js +1 -1
  154. package/dist/better-auth/plugin/payload/components/ui/card.d.ts +8 -7
  155. package/dist/better-auth/plugin/payload/components/ui/card.d.ts.map +1 -0
  156. package/dist/better-auth/plugin/payload/components/ui/card.js +1 -1
  157. package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +2 -1
  158. package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts.map +1 -0
  159. package/dist/better-auth/plugin/payload/components/ui/checkbox.js +1 -1
  160. package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +1 -0
  161. package/dist/better-auth/plugin/payload/components/ui/cn.d.ts.map +1 -0
  162. package/dist/better-auth/plugin/payload/components/ui/cn.js +1 -1
  163. package/dist/better-auth/plugin/payload/components/ui/input.d.ts +2 -1
  164. package/dist/better-auth/plugin/payload/components/ui/input.d.ts.map +1 -0
  165. package/dist/better-auth/plugin/payload/components/ui/input.js +1 -1
  166. package/dist/better-auth/plugin/payload/components/ui/label.d.ts +2 -1
  167. package/dist/better-auth/plugin/payload/components/ui/label.d.ts.map +1 -0
  168. package/dist/better-auth/plugin/payload/components/ui/label.js +1 -1
  169. package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +2 -1
  170. package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts.map +1 -0
  171. package/dist/better-auth/plugin/payload/components/ui/password-input.js +1 -1
  172. package/dist/better-auth/plugin/payload/exports/client.d.ts +1 -0
  173. package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -0
  174. package/dist/better-auth/plugin/payload/exports/client.js +1 -1
  175. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +1 -0
  176. package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -0
  177. package/dist/better-auth/plugin/payload/exports/rsc.js +1 -1
  178. package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts +3 -1
  179. package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts.map +1 -0
  180. package/dist/better-auth/plugin/payload/views/create-first-admin/index.js +1 -1
  181. package/dist/better-auth/plugin/payload/views/login/index.d.ts +3 -1
  182. package/dist/better-auth/plugin/payload/views/login/index.d.ts.map +1 -0
  183. package/dist/better-auth/plugin/payload/views/login/index.js +1 -1
  184. package/dist/better-auth/plugin/types.d.ts +1 -0
  185. package/dist/better-auth/plugin/types.d.ts.map +1 -0
  186. package/dist/better-auth/plugin/types.js +1 -1
  187. package/dist/better-auth/types.d.ts +1 -0
  188. package/dist/better-auth/types.d.ts.map +1 -0
  189. package/dist/better-auth/types.js +1 -1
  190. package/dist/clerk/admin-ui.d.ts +4 -0
  191. package/dist/clerk/admin-ui.d.ts.map +1 -0
  192. package/dist/clerk/admin-ui.js +5 -0
  193. package/dist/clerk/index.d.ts +7 -1
  194. package/dist/clerk/index.d.ts.map +1 -0
  195. package/dist/clerk/index.js +7 -2
  196. package/dist/clerk/plugin/auth-strategy.d.ts +11 -0
  197. package/dist/clerk/plugin/auth-strategy.d.ts.map +1 -0
  198. package/dist/clerk/plugin/auth-strategy.js +45 -0
  199. package/dist/clerk/plugin/collections/users/access.d.ts +14 -0
  200. package/dist/clerk/plugin/collections/users/access.d.ts.map +1 -0
  201. package/dist/clerk/plugin/collections/users/access.js +36 -0
  202. package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts +14 -0
  203. package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts.map +1 -0
  204. package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.js +108 -0
  205. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts +4 -0
  206. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts.map +1 -0
  207. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.js +5 -0
  208. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts +13 -0
  209. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts.map +1 -0
  210. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.js +33 -0
  211. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts +11 -0
  212. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts.map +1 -0
  213. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.js +27 -0
  214. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts +13 -0
  215. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts.map +1 -0
  216. package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.js +35 -0
  217. package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts +12 -0
  218. package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts.map +1 -0
  219. package/dist/clerk/plugin/collections/users/endpoints/webhook/index.js +86 -0
  220. package/dist/clerk/plugin/collections/users/fields.d.ts +6 -0
  221. package/dist/clerk/plugin/collections/users/fields.d.ts.map +1 -0
  222. package/dist/clerk/plugin/collections/users/fields.js +81 -0
  223. package/dist/clerk/plugin/collections/users/index.d.ts +10 -0
  224. package/dist/clerk/plugin/collections/users/index.d.ts.map +1 -0
  225. package/dist/clerk/plugin/collections/users/index.js +95 -0
  226. package/dist/clerk/plugin/components/after-login-form.d.ts +4 -0
  227. package/dist/clerk/plugin/components/after-login-form.d.ts.map +1 -0
  228. package/dist/clerk/plugin/components/after-login-form.js +65 -0
  229. package/dist/clerk/plugin/components/logout-button.d.ts +2 -0
  230. package/dist/clerk/plugin/components/logout-button.d.ts.map +1 -0
  231. package/dist/clerk/plugin/components/logout-button.js +49 -0
  232. package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts +6 -0
  233. package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts.map +1 -0
  234. package/dist/clerk/plugin/components/sync-clerk-users-button.js +75 -0
  235. package/dist/clerk/plugin.d.ts +6 -0
  236. package/dist/clerk/plugin.d.ts.map +1 -0
  237. package/dist/clerk/plugin.js +63 -0
  238. package/dist/clerk/types.d.ts +63 -0
  239. package/dist/clerk/types.d.ts.map +1 -0
  240. package/dist/clerk/types.js +3 -0
  241. package/dist/clerk/utils/clerk-user.d.ts +24 -0
  242. package/dist/clerk/utils/clerk-user.d.ts.map +1 -0
  243. package/dist/clerk/utils/clerk-user.js +47 -0
  244. package/dist/clerk/utils/index.d.ts +4 -0
  245. package/dist/clerk/utils/index.d.ts.map +1 -0
  246. package/dist/clerk/utils/index.js +5 -0
  247. package/dist/clerk/utils/load-clerk-instance.d.ts +8 -0
  248. package/dist/clerk/utils/load-clerk-instance.d.ts.map +1 -0
  249. package/dist/clerk/utils/load-clerk-instance.js +11 -0
  250. package/dist/clerk/utils/svix.d.ts +9 -0
  251. package/dist/clerk/utils/svix.d.ts.map +1 -0
  252. package/dist/clerk/utils/svix.js +40 -0
  253. package/dist/clerk/utils/user.d.ts +17 -0
  254. package/dist/clerk/utils/user.d.ts.map +1 -0
  255. package/dist/clerk/utils/user.js +46 -0
  256. package/dist/index.d.ts +5 -0
  257. package/dist/index.d.ts.map +1 -0
  258. package/dist/index.js +5 -5
  259. package/dist/kinde/index.d.ts +1 -0
  260. package/dist/kinde/index.d.ts.map +1 -0
  261. package/dist/kinde/index.js +1 -1
  262. package/package.json +39 -12
  263. package/dist/authjs/index.js.map +0 -1
  264. package/dist/better-auth/adapter/dev/bin/run.js.map +0 -1
  265. package/dist/better-auth/adapter/dev/bin/schema.js.map +0 -1
  266. package/dist/better-auth/adapter/dev/collections.js.map +0 -1
  267. package/dist/better-auth/adapter/dev/index.js.map +0 -1
  268. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js.map +0 -1
  269. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js.map +0 -1
  270. package/dist/better-auth/adapter/generate-schema/index.js.map +0 -1
  271. package/dist/better-auth/adapter/generate-schema/utils.js.map +0 -1
  272. package/dist/better-auth/adapter/index.js.map +0 -1
  273. package/dist/better-auth/adapter/test/adapter.test.js.map +0 -1
  274. package/dist/better-auth/adapter/test/better-auth-adapter-test.js.map +0 -1
  275. package/dist/better-auth/adapter/test/schema.test.js.map +0 -1
  276. package/dist/better-auth/adapter/test/test_payload1/schema.js.map +0 -1
  277. package/dist/better-auth/adapter/test/test_payload2/schema.js.map +0 -1
  278. package/dist/better-auth/adapter/test/test_payload3/schema.js.map +0 -1
  279. package/dist/better-auth/adapter/transform/index.js.map +0 -1
  280. package/dist/better-auth/adapter/types.js.map +0 -1
  281. package/dist/better-auth/index.js.map +0 -1
  282. package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js.map +0 -1
  283. package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js.map +0 -1
  284. package/dist/better-auth/plugin/collections/users/hooks/after-login.js.map +0 -1
  285. package/dist/better-auth/plugin/collections/users/hooks/after-logout.js.map +0 -1
  286. package/dist/better-auth/plugin/collections/users/hooks/before-login.js.map +0 -1
  287. package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js.map +0 -1
  288. package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js.map +0 -1
  289. package/dist/better-auth/plugin/collections/users/hooks/sync-account.js.map +0 -1
  290. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js.map +0 -1
  291. package/dist/better-auth/plugin/helpers/get-ip.js.map +0 -1
  292. package/dist/better-auth/plugin/helpers/index.js.map +0 -1
  293. package/dist/better-auth/plugin/helpers/serialize-cookie.js.map +0 -1
  294. package/dist/better-auth/plugin/index.js.map +0 -1
  295. package/dist/better-auth/plugin/lib/auth-strategy.js.map +0 -1
  296. package/dist/better-auth/plugin/lib/build-collection-configs.js.map +0 -1
  297. package/dist/better-auth/plugin/lib/config.js.map +0 -1
  298. package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js.map +0 -1
  299. package/dist/better-auth/plugin/lib/get-payload-auth.js.map +0 -1
  300. package/dist/better-auth/plugin/lib/get-required-collection-slugs.js.map +0 -1
  301. package/dist/better-auth/plugin/lib/init-better-auth.js.map +0 -1
  302. package/dist/better-auth/plugin/lib/password.js.map +0 -1
  303. package/dist/better-auth/plugin/lib/payload-access.js.map +0 -1
  304. package/dist/better-auth/plugin/lib/prepare-session-data.js.map +0 -1
  305. package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js.map +0 -1
  306. package/dist/better-auth/plugin/lib/sanitize-auth-options.js.map +0 -1
  307. package/dist/better-auth/plugin/payload/components/admin-buttons.js.map +0 -1
  308. package/dist/better-auth/plugin/payload/components/login-redirect.js.map +0 -1
  309. package/dist/better-auth/plugin/payload/components/logo.js.map +0 -1
  310. package/dist/better-auth/plugin/payload/components/logout.js.map +0 -1
  311. package/dist/better-auth/plugin/payload/components/sign-in.js.map +0 -1
  312. package/dist/better-auth/plugin/payload/components/sign-up.js.map +0 -1
  313. package/dist/better-auth/plugin/payload/components/ui/button.js.map +0 -1
  314. package/dist/better-auth/plugin/payload/components/ui/card.js.map +0 -1
  315. package/dist/better-auth/plugin/payload/components/ui/checkbox.js.map +0 -1
  316. package/dist/better-auth/plugin/payload/components/ui/cn.js.map +0 -1
  317. package/dist/better-auth/plugin/payload/components/ui/input.js.map +0 -1
  318. package/dist/better-auth/plugin/payload/components/ui/label.js.map +0 -1
  319. package/dist/better-auth/plugin/payload/components/ui/password-input.js.map +0 -1
  320. package/dist/better-auth/plugin/payload/exports/client.js.map +0 -1
  321. package/dist/better-auth/plugin/payload/exports/rsc.js.map +0 -1
  322. package/dist/better-auth/plugin/payload/views/create-first-admin/index.js.map +0 -1
  323. package/dist/better-auth/plugin/payload/views/login/index.js.map +0 -1
  324. package/dist/better-auth/plugin/types.js.map +0 -1
  325. package/dist/better-auth/types.js.map +0 -1
  326. package/dist/clerk/index.js.map +0 -1
  327. package/dist/index.js.map +0 -1
  328. package/dist/kinde/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/config.ts"],"sourcesContent":["export const supportedBetterAuthPluginIds = {\n harmonyEmail: 'harmony-email',\n harmonyPhoneNumber: 'harmony-phone-number',\n twoFactor: 'two-factor',\n username: 'username',\n anonymous: 'anonymous',\n phoneNumber: 'phone-number',\n magicLink: 'magic-link',\n emailOtp: 'email-otp',\n passkey: 'passkey',\n oneTap: 'one-tap',\n admin: 'admin',\n apiKey: 'api-key',\n organization: 'organization',\n multiSession: 'multi-session',\n openApi: 'open-api',\n jwt: 'jwt',\n nextCookies: 'next-cookies',\n sso: 'sso',\n oidc: 'oidc',\n} as const\n\nexport const baseCollectionSlugs = {\n users: 'users',\n sessions: 'sessions',\n accounts: 'accounts',\n verifications: 'verifications',\n} as const\n\nexport const betterAuthPluginSlugs = {\n apiKeys: 'apiKeys',\n jwks: 'jwks',\n twoFactors: 'twoFactors',\n passkeys: 'passkeys',\n oauthApplications: 'oauthApplications',\n oauthAccessTokens: 'oauthAccessTokens',\n oauthConsents: 'oauthConsents',\n ssoProviders: 'ssoProviders',\n organizations: 'organizations',\n invitations: 'invitations',\n members: 'members',\n teams: 'teams',\n} as const\n"],"names":["supportedBetterAuthPluginIds","harmonyEmail","harmonyPhoneNumber","twoFactor","username","anonymous","phoneNumber","magicLink","emailOtp","passkey","oneTap","admin","apiKey","organization","multiSession","openApi","jwt","nextCookies","sso","oidc","baseCollectionSlugs","users","sessions","accounts","verifications","betterAuthPluginSlugs","apiKeys","jwks","twoFactors","passkeys","oauthApplications","oauthAccessTokens","oauthConsents","ssoProviders","organizations","invitations","members","teams"],"mappings":"AAAA,OAAO,MAAMA,+BAA+B;IAC1CC,cAAc;IACdC,oBAAoB;IACpBC,WAAW;IACXC,UAAU;IACVC,WAAW;IACXC,aAAa;IACbC,WAAW;IACXC,UAAU;IACVC,SAAS;IACTC,QAAQ;IACRC,OAAO;IACPC,QAAQ;IACRC,cAAc;IACdC,cAAc;IACdC,SAAS;IACTC,KAAK;IACLC,aAAa;IACbC,KAAK;IACLC,MAAM;AACR,EAAU;AAEV,OAAO,MAAMC,sBAAsB;IACjCC,OAAO;IACPC,UAAU;IACVC,UAAU;IACVC,eAAe;AACjB,EAAU;AAEV,OAAO,MAAMC,wBAAwB;IACnCC,SAAS;IACTC,MAAM;IACNC,YAAY;IACZC,UAAU;IACVC,mBAAmB;IACnBC,mBAAmB;IACnBC,eAAe;IACfC,cAAc;IACdC,eAAe;IACfC,aAAa;IACbC,SAAS;IACTC,OAAO;AACT,EAAU"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/ensure-password-set-before-create.ts"],"sourcesContent":["import type { SanitizedBetterAuthOptions } from '..'\n\n/**\n * Adds a before hook to the user create operation to ensure the password is set.\n * This is necessary because the password is not set in the user create operation\n * and is instead set in the sync password accounts hook.\n */\nexport function ensurePasswordSetBeforeUserCreate(options: SanitizedBetterAuthOptions) {\n if (typeof options.databaseHooks !== 'object') options.databaseHooks = {}\n if (typeof options.databaseHooks.user !== 'object') options.databaseHooks.user = {}\n if (typeof options.databaseHooks.user.create !== 'object') options.databaseHooks.user.create = {}\n const initialBeforeUserCreateHook = options.databaseHooks.user.create.before ?? null\n\n options.databaseHooks.user.create.before = async (user, ctx) => {\n if (!(user as any).password) {\n ;(user as any).password =\n ctx?.body?.password ??\n Array(3)\n .fill(0)\n .map(() => Math.random().toString(36).slice(2))\n .join('')\n }\n if (typeof initialBeforeUserCreateHook === 'function') {\n return initialBeforeUserCreateHook(user, ctx)\n }\n return { data: user }\n }\n}\n"],"names":["ensurePasswordSetBeforeUserCreate","options","databaseHooks","user","create","initialBeforeUserCreateHook","before","ctx","password","body","Array","fill","map","Math","random","toString","slice","join","data"],"mappings":"AAEA;;;;CAIC,GACD,OAAO,SAASA,kCAAkCC,OAAmC;IACnF,IAAI,OAAOA,QAAQC,aAAa,KAAK,UAAUD,QAAQC,aAAa,GAAG,CAAC;IACxE,IAAI,OAAOD,QAAQC,aAAa,CAACC,IAAI,KAAK,UAAUF,QAAQC,aAAa,CAACC,IAAI,GAAG,CAAC;IAClF,IAAI,OAAOF,QAAQC,aAAa,CAACC,IAAI,CAACC,MAAM,KAAK,UAAUH,QAAQC,aAAa,CAACC,IAAI,CAACC,MAAM,GAAG,CAAC;IAChG,MAAMC,8BAA8BJ,QAAQC,aAAa,CAACC,IAAI,CAACC,MAAM,CAACE,MAAM,IAAI;IAEhFL,QAAQC,aAAa,CAACC,IAAI,CAACC,MAAM,CAACE,MAAM,GAAG,OAAOH,MAAMI;QACtD,IAAI,CAAC,AAACJ,KAAaK,QAAQ,EAAE;;YACzBL,KAAaK,QAAQ,GACrBD,KAAKE,MAAMD,YACXE,MAAM,GACHC,IAAI,CAAC,GACLC,GAAG,CAAC,IAAMC,KAAKC,MAAM,GAAGC,QAAQ,CAAC,IAAIC,KAAK,CAAC,IAC3CC,IAAI,CAAC;QACZ;QACA,IAAI,OAAOZ,gCAAgC,YAAY;YACrD,OAAOA,4BAA4BF,MAAMI;QAC3C;QACA,OAAO;YAAEW,MAAMf;QAAK;IACtB;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/get-payload-auth.ts"],"sourcesContent":["import type { BasePayload, SanitizedConfig } from 'payload'\nimport { BetterAuthReturn, TPlugins } from '../types'\nimport { getPayload } from 'payload'\nexport async function getPayloadAuth<P extends TPlugins>(\n config: Promise<SanitizedConfig> | SanitizedConfig,\n): Promise<BasePayload & { betterAuth: BetterAuthReturn<P> }> {\n const payload = (await getPayload({ config })) as BasePayload & {\n betterAuth: BetterAuthReturn<P>\n }\n return payload\n}\n"],"names":["getPayload","getPayloadAuth","config","payload"],"mappings":"AAEA,SAASA,UAAU,QAAQ,UAAS;AACpC,OAAO,eAAeC,eACpBC,MAAkD;IAElD,MAAMC,UAAW,MAAMH,WAAW;QAAEE;IAAO;IAG3C,OAAOC;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/get-required-collection-slugs.ts"],"sourcesContent":["import { getAuthTables } from 'better-auth/db'\nimport type { PayloadBetterAuthPluginOptions, SanitizedBetterAuthOptions } from '..'\n\n/**\n * Determines which collections are required based on the BetterAuth options and plugins\n */\nexport function getRequiredCollectionSlugs({\n logTables,\n pluginOptions,\n sanitizedBAOptions,\n}: {\n logTables: boolean\n pluginOptions: PayloadBetterAuthPluginOptions\n sanitizedBAOptions: SanitizedBetterAuthOptions\n}) {\n // Always include the base required collections (User, Account, Session, Verification)\n const userCollectionSlug = pluginOptions.users?.slug ?? 'users'\n const accountCollectionSlug = pluginOptions.accounts?.slug ?? 'accounts'\n const sessionCollectionSlug = pluginOptions.sessions?.slug ?? 'sessions'\n const verificationCollectionSlug = pluginOptions.verifications?.slug ?? 'verifications'\n\n const requiredCollectionSlugs = new Set([\n userCollectionSlug,\n accountCollectionSlug,\n sessionCollectionSlug,\n verificationCollectionSlug,\n ])\n\n // If we have better auth options, use getAuthTables to determine additional tables needed\n if (sanitizedBAOptions) {\n try {\n // Get the tables required by the auth configuration\n const tables = getAuthTables({\n ...sanitizedBAOptions,\n })\n\n const plugins = sanitizedBAOptions.plugins ?? []\n if (logTables) {\n console.log(\n 'Better Auth plugins:',\n plugins.map((plugin) => plugin.id),\n )\n console.log(\n 'Better Auth tables required:',\n Object.keys(tables).map((key) => tables[key].modelName),\n )\n }\n\n // Add all table slugs to the required collections set\n Object.values(tables).forEach((table) => {\n if (table.modelName) {\n requiredCollectionSlugs.add(table.modelName)\n }\n })\n } catch (error) {\n console.error('Error determining required auth tables:', error)\n console.warn('Falling back to base collections only')\n\n // Log the plugins that were attempted to be used\n if (sanitizedBAOptions.plugins?.length ?? 0 > 0) {\n console.warn(\n 'Plugins that may have caused the error:',\n sanitizedBAOptions.plugins?.map((plugin) => {\n // Type-safe way to get plugin identification\n return typeof plugin === 'object' && plugin !== null && 'name' in plugin\n ? plugin.name\n : 'unnamed plugin'\n }),\n )\n }\n }\n }\n\n // if (enable_debug_logs) {\n // console.log('Required collection slugs: ', Array.from(requiredCollectionSlugs))\n // }\n\n return requiredCollectionSlugs\n}\n"],"names":["getAuthTables","getRequiredCollectionSlugs","logTables","pluginOptions","sanitizedBAOptions","userCollectionSlug","users","slug","accountCollectionSlug","accounts","sessionCollectionSlug","sessions","verificationCollectionSlug","verifications","requiredCollectionSlugs","Set","tables","plugins","console","log","map","plugin","id","Object","keys","key","modelName","values","forEach","table","add","error","warn","length","name"],"mappings":"AAAA,SAASA,aAAa,QAAQ,iBAAgB;AAG9C;;CAEC,GACD,OAAO,SAASC,2BAA2B,EACzCC,SAAS,EACTC,aAAa,EACbC,kBAAkB,EAKnB;IACC,sFAAsF;IACtF,MAAMC,qBAAqBF,cAAcG,KAAK,EAAEC,QAAQ;IACxD,MAAMC,wBAAwBL,cAAcM,QAAQ,EAAEF,QAAQ;IAC9D,MAAMG,wBAAwBP,cAAcQ,QAAQ,EAAEJ,QAAQ;IAC9D,MAAMK,6BAA6BT,cAAcU,aAAa,EAAEN,QAAQ;IAExE,MAAMO,0BAA0B,IAAIC,IAAI;QACtCV;QACAG;QACAE;QACAE;KACD;IAED,0FAA0F;IAC1F,IAAIR,oBAAoB;QACtB,IAAI;YACF,oDAAoD;YACpD,MAAMY,SAAShB,cAAc;gBAC3B,GAAGI,kBAAkB;YACvB;YAEA,MAAMa,UAAUb,mBAAmBa,OAAO,IAAI,EAAE;YAChD,IAAIf,WAAW;gBACbgB,QAAQC,GAAG,CACT,wBACAF,QAAQG,GAAG,CAAC,CAACC,SAAWA,OAAOC,EAAE;gBAEnCJ,QAAQC,GAAG,CACT,gCACAI,OAAOC,IAAI,CAACR,QAAQI,GAAG,CAAC,CAACK,MAAQT,MAAM,CAACS,IAAI,CAACC,SAAS;YAE1D;YAEA,sDAAsD;YACtDH,OAAOI,MAAM,CAACX,QAAQY,OAAO,CAAC,CAACC;gBAC7B,IAAIA,MAAMH,SAAS,EAAE;oBACnBZ,wBAAwBgB,GAAG,CAACD,MAAMH,SAAS;gBAC7C;YACF;QACF,EAAE,OAAOK,OAAO;YACdb,QAAQa,KAAK,CAAC,2CAA2CA;YACzDb,QAAQc,IAAI,CAAC;YAEb,iDAAiD;YACjD,IAAI5B,mBAAmBa,OAAO,EAAEgB,UAAU,IAAI,GAAG;gBAC/Cf,QAAQc,IAAI,CACV,2CACA5B,mBAAmBa,OAAO,EAAEG,IAAI,CAACC;oBAC/B,6CAA6C;oBAC7C,OAAO,OAAOA,WAAW,YAAYA,WAAW,QAAQ,UAAUA,SAC9DA,OAAOa,IAAI,GACX;gBACN;YAEJ;QACF;IACF;IAEA,2BAA2B;IAC3B,oFAAoF;IACpF,IAAI;IAEJ,OAAOpB;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/init-better-auth.ts"],"sourcesContent":["import { betterAuth } from \"better-auth\"\nimport { BetterAuthFunctionOptions, BetterAuthReturn, TPlugins } from \"../types\"\nimport { BasePayload } from \"payload\"\nimport { payloadAdapter } from \"payload-auth/better-auth/adapter\"\n\nexport function initBetterAuth<P extends TPlugins>({\n payload,\n options,\n}: {\n payload: BasePayload\n options: BetterAuthFunctionOptions<P>\n}): BetterAuthReturn<P> {\n const auth = betterAuth({\n ...options,\n database: payloadAdapter(payload, {\n enableDebugLogs: options.enableDebugLogs ?? false,\n }),\n })\n\n return auth as unknown as BetterAuthReturn<P>\n}\n"],"names":["betterAuth","payloadAdapter","initBetterAuth","payload","options","auth","database","enableDebugLogs"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAa;AAGxC,SAASC,cAAc,QAAQ,mCAAkC;AAEjE,OAAO,SAASC,eAAmC,EACjDC,OAAO,EACPC,OAAO,EAIR;IACC,MAAMC,OAAOL,WAAW;QACtB,GAAGI,OAAO;QACVE,UAAUL,eAAeE,SAAS;YAChCI,iBAAiBH,QAAQG,eAAe,IAAI;QAC9C;IACF;IAEA,OAAOF;AACT"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/password.ts"],"sourcesContent":["import crypto from 'crypto'\n\n/**\n * Mimics Payload's internal password hashing using pbkdf2\n *\n * This generates a hash compatible with Payload's internal auth system\n * so that passwords set via better-auth can be used with Payload admin panel\n */\nfunction pbkdf2Promisified(password: string, salt: string): Promise<Buffer> {\n return new Promise((resolve, reject) =>\n crypto.pbkdf2(password, salt, 25000, 512, 'sha256', (err, hashRaw) =>\n err ? reject(err) : resolve(hashRaw),\n ),\n )\n}\n\n/**\n * Generates random bytes for the salt\n */\nfunction randomBytes(): Promise<Buffer> {\n return new Promise((resolve, reject) =>\n crypto.randomBytes(32, (err, saltBuffer) => (err ? reject(err) : resolve(saltBuffer))),\n )\n}\n\n/**\n * Custom implementation of password hashing that matches Payload's format\n *\n * Instead of using better-auth's scrypt, this uses pbkdf2 with the same\n * parameters as Payload CMS\n *\n * @param password The password to hash\n * @returns A string in the format {salt}:{hash}\n */\nexport const hashPassword = async (password: string): Promise<string> => {\n const saltBuffer = await randomBytes()\n const salt = saltBuffer.toString('hex')\n\n const hashRaw = await pbkdf2Promisified(password, salt)\n const hash = hashRaw.toString('hex')\n\n return `${salt}:${hash}`\n}\n\n/**\n * Verifies a password against a stored hash\n *\n * This function is flexible and can handle:\n * 1. A combined string in format {salt}:{hash} (for account passwords)\n * 2. When salt and hash need to be combined from user records\n *\n * @param params Object containing the hash and password\n * @returns Boolean indicating if the password matches\n */\nexport const verifyPassword = async ({\n hash,\n password,\n salt,\n}: {\n hash: string\n password: string\n salt?: string\n}): Promise<boolean> => {\n let saltValue: string\n let storedHash: string\n\n // If salt is provided separately (from user record), use it with the hash\n if (salt) {\n saltValue = salt\n storedHash = hash\n } else {\n // Otherwise, split the combined format (from account.password)\n const parts = hash.split(':')\n if (parts.length !== 2) {\n return false\n }\n ;[saltValue, storedHash] = parts\n }\n\n if (!saltValue || !storedHash) {\n return false\n }\n\n const hashRaw = await pbkdf2Promisified(password, saltValue)\n const computedHash = hashRaw.toString('hex')\n\n return storedHash === computedHash\n}\n"],"names":["crypto","pbkdf2Promisified","password","salt","Promise","resolve","reject","pbkdf2","err","hashRaw","randomBytes","saltBuffer","hashPassword","toString","hash","verifyPassword","saltValue","storedHash","parts","split","length","computedHash"],"mappings":"AAAA,OAAOA,YAAY,SAAQ;AAE3B;;;;;CAKC,GACD,SAASC,kBAAkBC,QAAgB,EAAEC,IAAY;IACvD,OAAO,IAAIC,QAAQ,CAACC,SAASC,SAC3BN,OAAOO,MAAM,CAACL,UAAUC,MAAM,OAAO,KAAK,UAAU,CAACK,KAAKC,UACxDD,MAAMF,OAAOE,OAAOH,QAAQI;AAGlC;AAEA;;CAEC,GACD,SAASC;IACP,OAAO,IAAIN,QAAQ,CAACC,SAASC,SAC3BN,OAAOU,WAAW,CAAC,IAAI,CAACF,KAAKG,aAAgBH,MAAMF,OAAOE,OAAOH,QAAQM;AAE7E;AAEA;;;;;;;;CAQC,GACD,OAAO,MAAMC,eAAe,OAAOV;IACjC,MAAMS,aAAa,MAAMD;IACzB,MAAMP,OAAOQ,WAAWE,QAAQ,CAAC;IAEjC,MAAMJ,UAAU,MAAMR,kBAAkBC,UAAUC;IAClD,MAAMW,OAAOL,QAAQI,QAAQ,CAAC;IAE9B,OAAO,GAAGV,KAAK,CAAC,EAAEW,MAAM;AAC1B,EAAC;AAED;;;;;;;;;CASC,GACD,OAAO,MAAMC,iBAAiB,OAAO,EACnCD,IAAI,EACJZ,QAAQ,EACRC,IAAI,EAKL;IACC,IAAIa;IACJ,IAAIC;IAEJ,0EAA0E;IAC1E,IAAId,MAAM;QACRa,YAAYb;QACZc,aAAaH;IACf,OAAO;QACL,+DAA+D;QAC/D,MAAMI,QAAQJ,KAAKK,KAAK,CAAC;QACzB,IAAID,MAAME,MAAM,KAAK,GAAG;YACtB,OAAO;QACT;;QACC,CAACJ,WAAWC,WAAW,GAAGC;IAC7B;IAEA,IAAI,CAACF,aAAa,CAACC,YAAY;QAC7B,OAAO;IACT;IAEA,MAAMR,UAAU,MAAMR,kBAAkBC,UAAUc;IAClD,MAAMK,eAAeZ,QAAQI,QAAQ,CAAC;IAEtC,OAAOI,eAAeI;AACxB,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/payload-access.ts"],"sourcesContent":["import type { Access, FieldAccess } from 'payload'\n\nexport type AdminRolesConfig = {\n adminRoles?: string[]\n}\n\nexport type AdminOrCurrentUserConfig = AdminRolesConfig & {\n idField?: string\n}\n\nexport type AdminOrCurrentUserUpdateConfig = AdminOrCurrentUserConfig & {\n allowedFields?: string[]\n userSlug: string\n}\n\nexport const isAdminWithRoles =\n (config: AdminRolesConfig = {}): FieldAccess =>\n ({ req }) => {\n const { adminRoles = ['admin'] } = config\n if (!req?.user || !req.user.role || !adminRoles.includes(req.user.role)) return false\n return true\n }\n\nexport const isAdminOrCurrentUserWithRoles =\n (config: AdminOrCurrentUserConfig = {}): Access =>\n ({ req }) => {\n const { adminRoles = ['admin'], idField = 'id' } = config\n if (isAdminWithRoles({ adminRoles })({ req })) return true\n if (!req?.user) return false\n return {\n [idField]: {\n equals: req?.user?.id,\n },\n }\n }\n\nexport const isAdminOrCurrentUserUpdateWithAllowedFields = (\n config: AdminOrCurrentUserUpdateConfig,\n): Access => {\n return async ({ req, id, data }) => {\n const { adminRoles = ['admin'], allowedFields = [], userSlug, idField = 'id' } = config\n const user = req.user\n\n if (isAdminWithRoles({ adminRoles })({ req })) return true\n\n if (!user) return false\n\n if (user[idField] === id && data) {\n const dataKeys = Object.keys(data)\n\n const hasCurrentPassword = dataKeys.includes('currentPassword')\n const hasPassword = dataKeys.includes('password')\n\n if (hasPassword || hasCurrentPassword) {\n if (!(hasCurrentPassword && hasPassword)) return false\n try {\n if (!user.email) return false\n\n const result = await req.payload.login({\n collection: userSlug,\n data: {\n email: user.email,\n password: data.currentPassword,\n },\n })\n\n if (!result) return false\n\n allowedFields.push('password', 'currentPassword')\n } catch (error) {\n return false\n }\n }\n\n const hasDisallowedField = dataKeys.some((key) => !allowedFields.includes(key))\n\n return !hasDisallowedField\n }\n\n return false\n }\n}\n"],"names":["isAdminWithRoles","config","req","adminRoles","user","role","includes","isAdminOrCurrentUserWithRoles","idField","equals","id","isAdminOrCurrentUserUpdateWithAllowedFields","data","allowedFields","userSlug","dataKeys","Object","keys","hasCurrentPassword","hasPassword","email","result","payload","login","collection","password","currentPassword","push","error","hasDisallowedField","some","key"],"mappings":"AAeA,OAAO,MAAMA,mBACX,CAACC,SAA2B,CAAC,CAAC,GAC9B,CAAC,EAAEC,GAAG,EAAE;QACN,MAAM,EAAEC,aAAa;YAAC;SAAQ,EAAE,GAAGF;QACnC,IAAI,CAACC,KAAKE,QAAQ,CAACF,IAAIE,IAAI,CAACC,IAAI,IAAI,CAACF,WAAWG,QAAQ,CAACJ,IAAIE,IAAI,CAACC,IAAI,GAAG,OAAO;QAChF,OAAO;IACT,EAAC;AAEH,OAAO,MAAME,gCACX,CAACN,SAAmC,CAAC,CAAC,GACtC,CAAC,EAAEC,GAAG,EAAE;QACN,MAAM,EAAEC,aAAa;YAAC;SAAQ,EAAEK,UAAU,IAAI,EAAE,GAAGP;QACnD,IAAID,iBAAiB;YAAEG;QAAW,GAAG;YAAED;QAAI,IAAI,OAAO;QACtD,IAAI,CAACA,KAAKE,MAAM,OAAO;QACvB,OAAO;YACL,CAACI,QAAQ,EAAE;gBACTC,QAAQP,KAAKE,MAAMM;YACrB;QACF;IACF,EAAC;AAEH,OAAO,MAAMC,8CAA8C,CACzDV;IAEA,OAAO,OAAO,EAAEC,GAAG,EAAEQ,EAAE,EAAEE,IAAI,EAAE;QAC7B,MAAM,EAAET,aAAa;YAAC;SAAQ,EAAEU,gBAAgB,EAAE,EAAEC,QAAQ,EAAEN,UAAU,IAAI,EAAE,GAAGP;QACjF,MAAMG,OAAOF,IAAIE,IAAI;QAErB,IAAIJ,iBAAiB;YAAEG;QAAW,GAAG;YAAED;QAAI,IAAI,OAAO;QAEtD,IAAI,CAACE,MAAM,OAAO;QAElB,IAAIA,IAAI,CAACI,QAAQ,KAAKE,MAAME,MAAM;YAChC,MAAMG,WAAWC,OAAOC,IAAI,CAACL;YAE7B,MAAMM,qBAAqBH,SAAST,QAAQ,CAAC;YAC7C,MAAMa,cAAcJ,SAAST,QAAQ,CAAC;YAEtC,IAAIa,eAAeD,oBAAoB;gBACrC,IAAI,CAAEA,CAAAA,sBAAsBC,WAAU,GAAI,OAAO;gBACjD,IAAI;oBACF,IAAI,CAACf,KAAKgB,KAAK,EAAE,OAAO;oBAExB,MAAMC,SAAS,MAAMnB,IAAIoB,OAAO,CAACC,KAAK,CAAC;wBACrCC,YAAYV;wBACZF,MAAM;4BACJQ,OAAOhB,KAAKgB,KAAK;4BACjBK,UAAUb,KAAKc,eAAe;wBAChC;oBACF;oBAEA,IAAI,CAACL,QAAQ,OAAO;oBAEpBR,cAAcc,IAAI,CAAC,YAAY;gBACjC,EAAE,OAAOC,OAAO;oBACd,OAAO;gBACT;YACF;YAEA,MAAMC,qBAAqBd,SAASe,IAAI,CAAC,CAACC,MAAQ,CAAClB,cAAcP,QAAQ,CAACyB;YAE1E,OAAO,CAACF;QACV;QAEA,OAAO;IACT;AACF,EAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/prepare-session-data.ts"],"sourcesContent":["import { getFieldsToSign } from 'payload'\nimport type { Config, Payload } from 'payload'\n\ntype CollectionSlugs = {\n userCollectionSlug: string\n sessionCollectionSlug: string\n}\n\n/**\n * Prepares session data for cookie cache by filtering user and session objects\n * based on the payload configuration's 'saveToJwt' property\n */\nexport async function prepareSessionData({\n newSession,\n payloadConfig,\n collectionSlugs,\n}: {\n newSession: {\n user: any\n session: any\n }\n payloadConfig: Payload['config'] | Config\n collectionSlugs: CollectionSlugs\n}) {\n if (!newSession || !newSession.user) {\n return null\n }\n\n const { userCollectionSlug, sessionCollectionSlug } = collectionSlugs\n\n const userCollection = payloadConfig?.collections?.find((c) => c.slug === userCollectionSlug)\n const sessionCollection = payloadConfig?.collections?.find(\n (c) => c.slug === sessionCollectionSlug,\n )\n\n if (!userCollection) {\n throw new Error(`User collection with slug '${userCollectionSlug}' not found`)\n }\n\n const filteredUser = getFieldsToSign({\n collectionConfig: userCollection,\n email: newSession.user.email,\n user: newSession.user,\n })\n\n let filteredSession = newSession.session\n const isImpersonated = newSession.session.impersonatedBy\n if (sessionCollection && newSession.session) {\n filteredSession = getFieldsToSign({\n collectionConfig: sessionCollection,\n email: newSession.user.email,\n user: newSession.session,\n }) as typeof newSession.session\n\n // getFieldsToSign is meant for auth collections so we remove the email and collection fields\n delete filteredSession.email\n delete filteredSession.collection\n }\n\n if (isImpersonated) {\n filteredSession.impersonatedBy = newSession.session.impersonatedBy\n }\n\n return {\n ...newSession,\n user: filteredUser,\n session: filteredSession,\n }\n}\n"],"names":["getFieldsToSign","prepareSessionData","newSession","payloadConfig","collectionSlugs","user","userCollectionSlug","sessionCollectionSlug","userCollection","collections","find","c","slug","sessionCollection","Error","filteredUser","collectionConfig","email","filteredSession","session","isImpersonated","impersonatedBy","collection"],"mappings":"AAAA,SAASA,eAAe,QAAQ,UAAS;AAQzC;;;CAGC,GACD,OAAO,eAAeC,mBAAmB,EACvCC,UAAU,EACVC,aAAa,EACbC,eAAe,EAQhB;IACC,IAAI,CAACF,cAAc,CAACA,WAAWG,IAAI,EAAE;QACnC,OAAO;IACT;IAEA,MAAM,EAAEC,kBAAkB,EAAEC,qBAAqB,EAAE,GAAGH;IAEtD,MAAMI,iBAAiBL,eAAeM,aAAaC,KAAK,CAACC,IAAMA,EAAEC,IAAI,KAAKN;IAC1E,MAAMO,oBAAoBV,eAAeM,aAAaC,KACpD,CAACC,IAAMA,EAAEC,IAAI,KAAKL;IAGpB,IAAI,CAACC,gBAAgB;QACnB,MAAM,IAAIM,MAAM,CAAC,2BAA2B,EAAER,mBAAmB,WAAW,CAAC;IAC/E;IAEA,MAAMS,eAAef,gBAAgB;QACnCgB,kBAAkBR;QAClBS,OAAOf,WAAWG,IAAI,CAACY,KAAK;QAC5BZ,MAAMH,WAAWG,IAAI;IACvB;IAEA,IAAIa,kBAAkBhB,WAAWiB,OAAO;IACxC,MAAMC,iBAAiBlB,WAAWiB,OAAO,CAACE,cAAc;IACxD,IAAIR,qBAAqBX,WAAWiB,OAAO,EAAE;QAC3CD,kBAAkBlB,gBAAgB;YAChCgB,kBAAkBH;YAClBI,OAAOf,WAAWG,IAAI,CAACY,KAAK;YAC5BZ,MAAMH,WAAWiB,OAAO;QAC1B;QAEA,6FAA6F;QAC7F,OAAOD,gBAAgBD,KAAK;QAC5B,OAAOC,gBAAgBI,UAAU;IACnC;IAEA,IAAIF,gBAAgB;QAClBF,gBAAgBG,cAAc,GAAGnB,WAAWiB,OAAO,CAACE,cAAc;IACpE;IAEA,OAAO;QACL,GAAGnB,UAAU;QACbG,MAAMU;QACNI,SAASD;IACX;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/respect-save-to-jwt-fields-middleware.ts"],"sourcesContent":["import { setCookieCache } from 'better-auth/cookies'\nimport { createAuthMiddleware } from 'better-auth/api'\nimport type { SanitizedBetterAuthOptions, PayloadBetterAuthPluginOptions } from '..'\nimport type { Config, Payload } from 'payload'\nimport { prepareSessionData } from './prepare-session-data'\n\n/**\n * Sets up a middleware that enforces the saveToJwt configuration when setting session data.\n * This ensures that only fields specified in saveToJwt are included in the cookie cache\n * for both user and session objects.\n *\n * The middleware runs after authentication and filters the session data based on\n * the collection configurations before storing it in the cookie cache.\n */\nexport function respectSaveToJwtFieldsMiddleware({\n sanitizedOptions,\n payloadConfig,\n pluginOptions,\n}: {\n sanitizedOptions: SanitizedBetterAuthOptions\n payloadConfig: Payload['config'] | Config\n pluginOptions: PayloadBetterAuthPluginOptions\n}) {\n if (typeof sanitizedOptions.hooks !== 'object') sanitizedOptions.hooks = {}\n\n sanitizedOptions.hooks.after = createAuthMiddleware(async (ctx) => {\n const newSession = ctx.context?.newSession\n if (!newSession) return\n\n const filteredSessionData = await prepareSessionData({\n newSession,\n payloadConfig,\n collectionSlugs: {\n userCollectionSlug: pluginOptions.users?.slug ?? 'users',\n sessionCollectionSlug: pluginOptions.sessions?.slug ?? 'sessions',\n },\n })\n\n if (filteredSessionData) {\n await setCookieCache(ctx, filteredSessionData as any)\n }\n })\n}\n"],"names":["setCookieCache","createAuthMiddleware","prepareSessionData","respectSaveToJwtFieldsMiddleware","sanitizedOptions","payloadConfig","pluginOptions","hooks","after","ctx","newSession","context","filteredSessionData","collectionSlugs","userCollectionSlug","users","slug","sessionCollectionSlug","sessions"],"mappings":"AAAA,SAASA,cAAc,QAAQ,sBAAqB;AACpD,SAASC,oBAAoB,QAAQ,kBAAiB;AAGtD,SAASC,kBAAkB,QAAQ,yBAAwB;AAE3D;;;;;;;CAOC,GACD,OAAO,SAASC,iCAAiC,EAC/CC,gBAAgB,EAChBC,aAAa,EACbC,aAAa,EAKd;IACC,IAAI,OAAOF,iBAAiBG,KAAK,KAAK,UAAUH,iBAAiBG,KAAK,GAAG,CAAC;IAE1EH,iBAAiBG,KAAK,CAACC,KAAK,GAAGP,qBAAqB,OAAOQ;QACzD,MAAMC,aAAaD,IAAIE,OAAO,EAAED;QAChC,IAAI,CAACA,YAAY;QAEjB,MAAME,sBAAsB,MAAMV,mBAAmB;YACnDQ;YACAL;YACAQ,iBAAiB;gBACfC,oBAAoBR,cAAcS,KAAK,EAAEC,QAAQ;gBACjDC,uBAAuBX,cAAcY,QAAQ,EAAEF,QAAQ;YACzD;QACF;QAEA,IAAIJ,qBAAqB;YACvB,MAAMZ,eAAeS,KAAKG;QAC5B;IACF;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../src/plugin/lib/sanitize-auth-options.ts"],"sourcesContent":["import type { PayloadBetterAuthPluginOptions, SanitizedBetterAuthOptions } from '..'\nimport { supportedBetterAuthPluginIds, betterAuthPluginSlugs, baseCollectionSlugs } from './config'\nimport { ensurePasswordSetBeforeUserCreate } from './ensure-password-set-before-create'\nimport { verifyPassword, hashPassword } from './password'\n\n/**\n * Sanitizes the BetterAuth options\n */\nexport function sanitizeBetterAuthOptions(\n options: PayloadBetterAuthPluginOptions,\n): SanitizedBetterAuthOptions {\n const baOptions = options.betterAuthOptions\n const userCollectionSlug = options.users?.slug ?? 'users'\n const accountCollectionSlug = options.accounts?.slug ?? 'accounts'\n const sessionCollectionSlug = options.sessions?.slug ?? 'sessions'\n const verificationCollectionSlug = options.verifications?.slug ?? 'verifications'\n\n const res: SanitizedBetterAuthOptions = { ...baOptions }\n\n res.user = {\n ...(baOptions?.user ?? {}),\n modelName: userCollectionSlug,\n }\n\n res.account = {\n ...(baOptions?.account ?? {}),\n modelName: accountCollectionSlug,\n fields: {\n userId: 'user',\n },\n }\n\n res.session = {\n ...(baOptions?.session ?? {}),\n modelName: sessionCollectionSlug,\n fields: {\n userId: 'user',\n },\n }\n\n res.verification = {\n ...(baOptions?.verification ?? {}),\n modelName: verificationCollectionSlug,\n }\n\n res.emailAndPassword = {\n ...(baOptions?.emailAndPassword ?? {}),\n enabled: baOptions?.emailAndPassword?.enabled ?? true,\n }\n\n if (res.emailAndPassword.enabled) {\n res.emailAndPassword.password = {\n ...(res.emailAndPassword.password ?? {}),\n verify: async ({ hash, password }) => {\n return await verifyPassword({ hash, password })\n },\n hash: async (password) => {\n return await hashPassword(password)\n },\n }\n }\n\n if (Boolean(options.users?.blockFirstBetterAuthVerificationEmail)) {\n const originalSendVerificationEmail = baOptions?.emailVerification?.sendVerificationEmail\n // Only override sendVerificationEmail if the developer provided their own implementation\n if (typeof originalSendVerificationEmail === 'function') {\n res.emailVerification = res?.emailVerification || {}\n res.emailVerification.sendVerificationEmail = async (data, request) => {\n try {\n const user = data.user\n const createdAt = new Date(user.createdAt)\n const now = new Date()\n // If the user was created less than one minute ago, don't send the verification email\n // as we rely on payload to send the initial email\n if (now.getTime() - createdAt.getTime() < 60000) {\n return\n }\n\n await originalSendVerificationEmail(data, request)\n } catch (error) {\n console.error('Error sending verification email:', error)\n }\n }\n }\n }\n\n ensurePasswordSetBeforeUserCreate(res)\n\n if (res.plugins) {\n try {\n const supportedPlugins = res.plugins.filter((plugin) => {\n return Object.values(supportedBetterAuthPluginIds).includes(\n plugin.id as (typeof supportedBetterAuthPluginIds)[keyof typeof supportedBetterAuthPluginIds],\n )\n })\n\n if (supportedPlugins.length !== res.plugins.length) {\n console.warn(\n `Unsupported BetterAuth plugins detected: ${res.plugins\n .filter(\n (p) =>\n !Object.values(supportedBetterAuthPluginIds).includes(\n p.id as (typeof supportedBetterAuthPluginIds)[keyof typeof supportedBetterAuthPluginIds],\n ),\n )\n .map((p) => p.id)\n .join(', ')}. Supported plugins are: ${Object.values(supportedBetterAuthPluginIds).join(\n ', ',\n )}. \n These plugins will be ignored.`,\n )\n }\n\n // Add the schema to the supported plugins\n if (supportedPlugins.length > 0) {\n supportedPlugins.forEach((plugin) => {\n const pluginId =\n plugin.id as (typeof supportedBetterAuthPluginIds)[keyof typeof supportedBetterAuthPluginIds]\n\n switch (pluginId) {\n case supportedBetterAuthPluginIds.admin:\n const adminPlugin = plugin as any\n if (!adminPlugin.adminRoles)\n adminPlugin.adminRoles = options.users?.adminRoles ?? ['admin']\n adminPlugin.adminRoles = options.users?.adminRoles ?? ['admin']\n Object.assign(plugin, adminPlugin)\n break\n case supportedBetterAuthPluginIds.apiKey:\n const apiKeyPlugin = plugin as any\n if (!apiKeyPlugin.schema) apiKeyPlugin.schema = {}\n if (!apiKeyPlugin.schema.apikey) apiKeyPlugin.schema.apikey = {}\n apiKeyPlugin.schema.apikey = {\n ...apiKeyPlugin.schema.apikey,\n modelName: betterAuthPluginSlugs.apiKeys,\n fields: {\n ...(plugin.schema?.apikey?.fields ?? {}),\n userId: {\n ...(plugin.schema?.apikey?.fields?.userId ?? {}),\n fieldName: 'user',\n },\n },\n }\n Object.assign(plugin, apiKeyPlugin)\n break\n case supportedBetterAuthPluginIds.passkey:\n const passkeyPlugin = plugin as any\n if (!passkeyPlugin.schema) passkeyPlugin.schema = {}\n if (!passkeyPlugin.schema.passkey) passkeyPlugin.schema.passkey = {}\n passkeyPlugin.schema.passkey = {\n ...passkeyPlugin.schema.passkey,\n modelName: betterAuthPluginSlugs.passkeys,\n fields: {\n ...(passkeyPlugin.schema.passkey.fields || {}),\n userId: {\n ...passkeyPlugin.schema.passkey.fields.userId,\n fieldName: 'user',\n },\n },\n }\n Object.assign(plugin, passkeyPlugin)\n break\n case supportedBetterAuthPluginIds.organization:\n const organizationPlugin = plugin as any\n if (!organizationPlugin.schema) organizationPlugin.schema = {}\n if (!organizationPlugin.schema.organization) organizationPlugin.schema.member = {}\n if (!organizationPlugin.schema.invitation) organizationPlugin.schema.invitation = {}\n if (!organizationPlugin.schema.team) organizationPlugin.schema.team = {}\n if (!organizationPlugin.schema.session) organizationPlugin.schema.session = {}\n organizationPlugin.schema = {\n ...organizationPlugin.schema,\n organization: {\n ...organizationPlugin.schema.organization,\n modelName: betterAuthPluginSlugs.organizations,\n fields: {\n ...(organizationPlugin.schema.organization.fields ?? {}),\n },\n },\n member: {\n ...organizationPlugin.schema.member,\n modelName: betterAuthPluginSlugs.members,\n fields: {\n ...(organizationPlugin.schema.member.fields ?? {}),\n organizationId: {\n ...(organizationPlugin.schema.member.fields?.organizationId ?? {}),\n fieldName: 'organization',\n },\n userId: {\n ...(organizationPlugin.schema.member.fields?.userId ?? {}),\n fieldName: 'user',\n },\n teamId: {\n ...(organizationPlugin.schema.member.fields?.teamId ?? {}),\n fieldName: 'team',\n },\n },\n },\n invitation: {\n ...organizationPlugin.schema.invitation,\n modelName: betterAuthPluginSlugs.invitations,\n fields: {\n ...(organizationPlugin.schema.invitation.fields ?? {}),\n organizationId: {\n ...(organizationPlugin.schema.invitation.fields?.organizationId ?? {}),\n fieldName: 'organization',\n },\n inviterId: {\n ...(organizationPlugin.schema.invitation.fields?.inviterId ?? {}),\n fieldName: 'inviter',\n },\n teamId: {\n ...(organizationPlugin.schema.invitation.fields?.teamId ?? {}),\n fieldName: 'team',\n },\n },\n },\n team: {\n ...organizationPlugin.schema.team,\n modelName: betterAuthPluginSlugs.teams,\n fields: {\n ...(organizationPlugin.schema.team.fields ?? {}),\n organizationId: {\n ...(organizationPlugin.schema.team.fields?.organizationId ?? {}),\n fieldName: 'organization',\n },\n },\n },\n session: {\n ...organizationPlugin.schema.session,\n modelName: baseCollectionSlugs.sessions,\n fields: {\n ...(organizationPlugin.schema.session.fields ?? {}),\n activeOrganizationId: {\n ...(organizationPlugin.schema.session.fields?.activeOrganizationId ?? {}),\n fieldName: 'activeOrganization',\n },\n },\n },\n }\n Object.assign(plugin, organizationPlugin)\n break\n case supportedBetterAuthPluginIds.sso:\n const ssoPlugin = plugin as any\n if (!ssoPlugin.schema) ssoPlugin.schema = {}\n if (!ssoPlugin.schema.sso) ssoPlugin.schema.sso = {}\n ssoPlugin.schema.sso = {\n ...ssoPlugin.schema.sso,\n modelName: betterAuthPluginSlugs.ssoProviders,\n fields: {\n ...(ssoPlugin.schema.sso.fields ?? {}),\n userId: {\n ...(ssoPlugin.schema.sso.fields?.userId ?? {}),\n fieldName: 'user',\n },\n },\n }\n Object.assign(plugin, ssoPlugin)\n break\n case supportedBetterAuthPluginIds.oidc:\n const oidcPlugin = plugin as any\n if (!oidcPlugin.schema) oidcPlugin.schema = {}\n if (!oidcPlugin.schema.oauthApplication) oidcPlugin.schema.oauthApplication = {}\n if (!oidcPlugin.schema.oauthAccessToken) oidcPlugin.schema.oauthAccessToken = {}\n if (!oidcPlugin.schema.oauthConsent) oidcPlugin.schema.oauthConsent = {}\n oidcPlugin.schema = {\n ...oidcPlugin.schema,\n oauthApplication: {\n ...oidcPlugin.schema.oauthApplication,\n modelName: betterAuthPluginSlugs.oauthApplications,\n fields: {\n ...(oidcPlugin.schema.oauthApplication.fields ?? {}),\n userId: {\n ...(oidcPlugin.schema.oauthApplication.fields?.userId ?? {}),\n fieldName: 'user',\n },\n },\n },\n oauthAccessToken: {\n ...oidcPlugin.schema.oauthAccessToken,\n modelName: betterAuthPluginSlugs.oauthAccessTokens,\n fields: {\n ...(oidcPlugin.schema.oauthAccessToken.fields ?? {}),\n userId: {\n ...(oidcPlugin.schema.oauthAccessToken.fields?.userId ?? {}),\n fieldName: 'user',\n },\n clientId: {\n ...(oidcPlugin.schema.oauthAccessToken.fields?.clientId ?? {}),\n fieldName: 'client',\n },\n },\n },\n oauthConsent: {\n ...oidcPlugin.schema.oauthConsent,\n modelName: betterAuthPluginSlugs.oauthConsents,\n fields: {\n ...(oidcPlugin.schema.oauthConsent.fields ?? {}),\n userId: {\n ...(oidcPlugin.schema.oauthConsent.fields?.userId ?? {}),\n fieldName: 'user',\n },\n clientId: {\n ...(oidcPlugin.schema.oauthConsent.fields?.clientId ?? {}),\n fieldName: 'client',\n },\n },\n },\n }\n Object.assign(plugin, oidcPlugin)\n break\n default:\n break\n }\n })\n }\n // Make sure only the supported plugins are used\n Object.assign(res.plugins, supportedPlugins)\n } catch (error) {\n throw new Error(`Error sanitizing BetterAuth plugins: ${error}`)\n }\n }\n\n return res\n}\n"],"names":["supportedBetterAuthPluginIds","betterAuthPluginSlugs","baseCollectionSlugs","ensurePasswordSetBeforeUserCreate","verifyPassword","hashPassword","sanitizeBetterAuthOptions","options","baOptions","betterAuthOptions","userCollectionSlug","users","slug","accountCollectionSlug","accounts","sessionCollectionSlug","sessions","verificationCollectionSlug","verifications","res","user","modelName","account","fields","userId","session","verification","emailAndPassword","enabled","password","verify","hash","Boolean","blockFirstBetterAuthVerificationEmail","originalSendVerificationEmail","emailVerification","sendVerificationEmail","data","request","createdAt","Date","now","getTime","error","console","plugins","supportedPlugins","filter","plugin","Object","values","includes","id","length","warn","p","map","join","forEach","pluginId","admin","adminPlugin","adminRoles","assign","apiKey","apiKeyPlugin","schema","apikey","apiKeys","fieldName","passkey","passkeyPlugin","passkeys","organization","organizationPlugin","member","invitation","team","organizations","members","organizationId","teamId","invitations","inviterId","teams","activeOrganizationId","sso","ssoPlugin","ssoProviders","oidc","oidcPlugin","oauthApplication","oauthAccessToken","oauthConsent","oauthApplications","oauthAccessTokens","clientId","oauthConsents","Error"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/components/admin-buttons.tsx"],"sourcesContent":["'use client'\n\nimport React, { useEffect, useState } from 'react'\nimport { adminClient } from 'better-auth/client/plugins'\nimport { createAuthClient } from 'better-auth/react'\nimport { useParams, usePathname, useRouter } from 'next/navigation'\nimport { toast } from 'sonner'\nimport { Toaster } from 'sonner'\nimport { Button } from '@payloadcms/ui'\nimport './styles.css'\n\nimport '@payloadcms/ui/styles.css'\n\nasync function getDocumentData(id: string, path: string) {\n const apiUrl = `${path}/api`\n try {\n // Try to load the /api page and parse the HTML response\n const response = await fetch(apiUrl)\n if (response.ok) {\n const htmlResponse = await response.text()\n // Parse the HTML to extract user data\n try {\n let documentData: any = null\n const parser = new DOMParser()\n const doc = parser.parseFromString(htmlResponse, 'text/html')\n\n // Look for the JSON data in the query inspector\n const jsonRows = doc.querySelectorAll('.query-inspector__row-line')\n if (jsonRows.length > 0) {\n documentData = {}\n\n jsonRows.forEach((row) => {\n const keyMatch = row.innerHTML.match(/\"([^\"]+)\"\\s*:/)\n if (keyMatch) {\n const key = keyMatch[1].trim()\n const valueElement = row.querySelector('.query-inspector__value')\n if (valueElement) {\n let value = valueElement.textContent?.trim() ?? ''\n\n // Convert values to appropriate types\n if (value === 'true') value = 'true'\n else if (value === 'false') value = 'false'\n else if (value === 'null') value = 'null'\n else if (!isNaN(Number(value))) value = Number(value).toString()\n else if (value.startsWith('\"') && value.endsWith('\"')) {\n value = value.substring(1, value.length - 1).trim()\n }\n\n documentData[key] = value\n }\n }\n })\n }\n\n return documentData\n } catch (parseError) {\n console.error('Error parsing document data from HTML:', parseError)\n return null\n }\n }\n } catch (apiError) {\n console.error('Error fetching document data from API:', apiError)\n }\n}\n\nexport default function AdminButtons({ userSlug }: { userSlug: string }) {\n const router = useRouter()\n const path = usePathname()\n const params = useParams()\n const [id, setId] = useState('')\n const [documentData, setDocumentData] = useState<any>(null)\n\n const authClient = createAuthClient({\n plugins: [adminClient()],\n })\n\n useEffect(() => {\n async function fetchDocumentData() {\n // Get the ID from the params.segments array\n const segments = params.segments as string[]\n const userSlugIndex = segments.findIndex((segment) => segment === userSlug)\n const id =\n userSlugIndex !== -1 && userSlugIndex < segments.length - 1\n ? segments[userSlugIndex + 1]\n : segments[segments.length - 1]\n\n const documentData = await getDocumentData(id, path)\n setId(id)\n setDocumentData(documentData)\n }\n fetchDocumentData()\n }, [params, path, userSlug])\n\n const handleImpersonate = async () => {\n await authClient.admin.impersonateUser({\n userId: id,\n fetchOptions: {\n onSuccess() {\n router.push('/')\n },\n onError(error: any) {\n console.error('Error impersonating user:', error)\n toast.error('Failed to impersonate user')\n },\n },\n })\n }\n\n const handleBan = async () => {\n await authClient.admin.banUser({\n userId: id,\n fetchOptions: {\n onSuccess() {\n toast.success('User banned successfully')\n router.refresh()\n },\n onError(error: any) {\n console.error('Error banning user:', error)\n toast.error('Failed to ban user')\n },\n },\n })\n }\n\n const handleUnban = async () => {\n await authClient.admin.unbanUser({\n userId: id,\n fetchOptions: {\n onSuccess() {\n toast.success('User unbanned successfully')\n router.refresh()\n },\n onError(error: any) {\n console.error('Error unbanning user:', error)\n toast.error('Failed to unban user')\n },\n },\n })\n }\n\n const handleRevokeAllSessions = async () => {\n await authClient.admin.revokeUserSessions({\n userId: id,\n fetchOptions: {\n onSuccess() {\n toast.success('All sessions revoked successfully')\n router.refresh()\n },\n onError(error: any) {\n console.error('Error revoking all sessions:', error)\n toast.error('Failed to revoke all sessions')\n },\n },\n })\n }\n\n return (\n <>\n <style>{`\n .admin-actions-container {\n display: flex;\n flex-direction: column;\n }\n .admin-actions-container h3 {\n margin-bottom: 1rem;\n }\n .admin-actions-container .btn {\n margin-block: 0.5rem;\n }\n .ban-button {\n background-color: oklch(0.258 0.092 26.042);\n color: oklch(0.577 0.245 27.325);\n border: 1px solid oklch(0.396 0.141 25.723);\n &:hover {\n color: #fff;\n background-color: oklch(0.505 0.213 27.518);\n }\n }\n .revoke-sessions-button {\n --theme-elevation-800: oklch(0.396 0.141 25.723);\n color: oklch(0.637 0.237 25.331);\n &:hover {\n --theme-elevation-400: oklch(0.396 0.141 25.723);\n color: #fff;\n background-color: oklch(0.396 0.141 25.723);\n }\n }\n `}</style>\n <div className=\"admin-actions-container\">\n <h3>Admin Actions</h3>\n <div style={{ display: 'flex', flexWrap: 'wrap', columnGap: '0.5rem' }}>\n <Button onClick={handleImpersonate} buttonStyle=\"primary\">\n Impersonate\n </Button>\n <Button\n onClick={handleRevokeAllSessions}\n buttonStyle=\"secondary\"\n className=\"revoke-sessions-button\"\n >\n Revoke All Sessions\n </Button>\n <Button onClick={handleBan} buttonStyle=\"error\" className=\"ban-button\">\n Ban\n </Button>\n <Button onClick={handleUnban} buttonStyle=\"primary\">\n Unban\n </Button>\n </div>\n </div>\n <Toaster />\n </>\n )\n}\n"],"names":["React","useEffect","useState","adminClient","createAuthClient","useParams","usePathname","useRouter","toast","Toaster","Button","getDocumentData","id","path","apiUrl","response","fetch","ok","htmlResponse","text","documentData","parser","DOMParser","doc","parseFromString","jsonRows","querySelectorAll","length","forEach","row","keyMatch","innerHTML","match","key","trim","valueElement","querySelector","value","textContent","isNaN","Number","toString","startsWith","endsWith","substring","parseError","console","error","apiError","AdminButtons","userSlug","router","params","setId","setDocumentData","authClient","plugins","fetchDocumentData","segments","userSlugIndex","findIndex","segment","handleImpersonate","admin","impersonateUser","userId","fetchOptions","onSuccess","push","onError","handleBan","banUser","success","refresh","handleUnban","unbanUser","handleRevokeAllSessions","revokeUserSessions","style","div","className","h3","display","flexWrap","columnGap","onClick","buttonStyle"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/components/login-redirect.tsx"],"sourcesContent":["import { redirect } from 'next/navigation'\n\nexport default function LoginRedirect() {\n redirect('/admin/login')\n}\n"],"names":["redirect","LoginRedirect"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,kBAAiB;AAE1C,eAAe,SAASC;IACtBD,SAAS;AACX"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/components/logo.tsx"],"sourcesContent":["import React from 'react'\n\nexport default function Logo() {\n return (\n <div className=\"flex items-center justify-center w-full mb-8\">\n <svg\n width=\"60\"\n height=\"45\"\n viewBox=\"0 0 60 45\"\n fill=\"none\"\n className=\"w-5 h-5\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 0H15V15H30V30H15V45H0V30V15V0ZM45 30V15H30V0H45H60V15V30V45H45H30V30H45Z\"\n className=\"fill-black dark:fill-white\"\n />\n </svg>\n <div className=\"ml-2 font-semibold text-black dark:text-white\">\n Payload <span className=\"text-blue-600 dark:text-blue-400\">&times;</span> Better Auth\n </div>\n </div>\n )\n}\n"],"names":["React","Logo","div","className","svg","width","height","viewBox","fill","xmlns","path","fillRule","clipRule","d","span"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,eAAe,SAASC;IACtB,qBACE,MAACC;QAAIC,WAAU;;0BACb,KAACC;gBACCC,OAAM;gBACNC,QAAO;gBACPC,SAAQ;gBACRC,MAAK;gBACLL,WAAU;gBACVM,OAAM;0BAEN,cAAA,KAACC;oBACCC,UAAS;oBACTC,UAAS;oBACTC,GAAE;oBACFV,WAAU;;;0BAGd,MAACD;gBAAIC,WAAU;;oBAAgD;kCACrD,KAACW;wBAAKX,WAAU;kCAAmC;;oBAAc;;;;;AAIjF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/components/logout.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\nimport { useRouter } from 'next/navigation'\nimport { Loader2, LogOut } from 'lucide-react'\nimport { createAuthClient } from 'better-auth/react'\n\nexport default function LogoutButton() {\n const [loading, setLoading] = React.useState(false)\n const router = useRouter()\n\n const handleLogout = async () => {\n setLoading(true)\n try {\n await createAuthClient().signOut({\n fetchOptions: {\n onResponse: () => {\n setLoading(false)\n },\n onError: () => {\n setLoading(false)\n },\n onSuccess: () => {\n router.refresh()\n },\n },\n })\n } catch (error) {\n setLoading(false)\n }\n }\n\n return (\n <button\n onClick={handleLogout}\n disabled={loading}\n style={{\n background: 'transparent',\n border: 'none',\n cursor: 'pointer',\n padding: '8px',\n borderRadius: '4px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.2s ease',\n }}\n onMouseOver={(e) => (e.currentTarget.style.backgroundColor = 'rgba(0, 0, 0, 0.05)')}\n onMouseOut={(e) => (e.currentTarget.style.backgroundColor = 'transparent')}\n >\n {loading ? (\n <Loader2 style={{ height: '32px', width: '32px', animation: 'spin 1s linear infinite' }} />\n ) : (\n <LogOut style={{ height: '32px', width: '32px' }} />\n )}\n </button>\n )\n}\n"],"names":["React","useRouter","Loader2","LogOut","createAuthClient","LogoutButton","loading","setLoading","useState","router","handleLogout","signOut","fetchOptions","onResponse","onError","onSuccess","refresh","error","button","onClick","disabled","style","background","border","cursor","padding","borderRadius","display","alignItems","justifyContent","transition","onMouseOver","e","currentTarget","backgroundColor","onMouseOut","height","width","animation"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AACzB,SAASC,SAAS,QAAQ,kBAAiB;AAC3C,SAASC,OAAO,EAAEC,MAAM,QAAQ,eAAc;AAC9C,SAASC,gBAAgB,QAAQ,oBAAmB;AAEpD,eAAe,SAASC;IACtB,MAAM,CAACC,SAASC,WAAW,GAAGP,MAAMQ,QAAQ,CAAC;IAC7C,MAAMC,SAASR;IAEf,MAAMS,eAAe;QACnBH,WAAW;QACX,IAAI;YACF,MAAMH,mBAAmBO,OAAO,CAAC;gBAC/BC,cAAc;oBACZC,YAAY;wBACVN,WAAW;oBACb;oBACAO,SAAS;wBACPP,WAAW;oBACb;oBACAQ,WAAW;wBACTN,OAAOO,OAAO;oBAChB;gBACF;YACF;QACF,EAAE,OAAOC,OAAO;YACdV,WAAW;QACb;IACF;IAEA,qBACE,KAACW;QACCC,SAAST;QACTU,UAAUd;QACVe,OAAO;YACLC,YAAY;YACZC,QAAQ;YACRC,QAAQ;YACRC,SAAS;YACTC,cAAc;YACdC,SAAS;YACTC,YAAY;YACZC,gBAAgB;YAChBC,YAAY;QACd;QACAC,aAAa,CAACC,IAAOA,EAAEC,aAAa,CAACZ,KAAK,CAACa,eAAe,GAAG;QAC7DC,YAAY,CAACH,IAAOA,EAAEC,aAAa,CAACZ,KAAK,CAACa,eAAe,GAAG;kBAE3D5B,wBACC,KAACJ;YAAQmB,OAAO;gBAAEe,QAAQ;gBAAQC,OAAO;gBAAQC,WAAW;YAA0B;2BAEtF,KAACnC;YAAOkB,OAAO;gBAAEe,QAAQ;gBAAQC,OAAO;YAAO;;;AAIvD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/components/sign-in.tsx"],"sourcesContent":["'use client'\n\nimport { createAuthClient } from 'better-auth/react'\nimport { Button } from './ui/button'\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './ui/card'\nimport { Checkbox } from './ui/checkbox'\nimport { Input } from './ui/input'\nimport { Label } from './ui/label'\nimport { PasswordInput } from './ui/password-input'\nimport { DiscordLogoIcon, GitHubLogoIcon } from '@radix-ui/react-icons'\nimport { Key, Loader2 } from 'lucide-react'\nimport Link from 'next/link'\nimport { useRouter } from 'next/navigation'\nimport { useState } from 'react'\nimport { toast } from 'sonner'\nimport { passkeyClient } from 'better-auth/client/plugins'\n\nexport default function SignIn({ admin = false }: { admin?: boolean }) {\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [rememberMe, setRememberMe] = useState(false)\n const router = useRouter()\n const [loading, setLoading] = useState(false)\n\n const authClient = createAuthClient({\n plugins: [passkeyClient()],\n })\n\n return (\n <Card className=\"z-50 rounded-md rounded-t-none w-full max-w-md shadow-lg\">\n <CardHeader className=\"space-y-1\">\n <CardTitle className=\"text-xl md:text-2xl font-bold\">Sign In</CardTitle>\n <CardDescription className=\"text-sm text-muted-foreground\">\n {admin\n ? 'Enter your credentials to access the admin dashboard'\n : 'Enter your credentials to access your account'}\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"email\" className=\"text-sm font-medium\">\n Email\n </Label>\n <Input\n id=\"email\"\n type=\"email\"\n placeholder=\"m@example.com\"\n required\n onChange={(e) => {\n setEmail(e.target.value)\n }}\n value={email}\n className=\"w-full\"\n />\n </div>\n <div className=\"space-y-2\">\n <div className=\"flex items-center justify-between\">\n <Label htmlFor=\"password\" className=\"text-sm font-medium\">\n Password\n </Label>\n <Link href=\"/forget-password\" className=\"text-xs text-primary hover:underline\">\n Forgot password?\n </Link>\n </div>\n <PasswordInput\n id=\"password\"\n value={password}\n onChange={(e: any) => setPassword(e.target.value)}\n autoComplete=\"password\"\n placeholder=\"Password\"\n className=\"w-full\"\n />\n </div>\n {!admin && (\n <div className=\"flex items-center gap-2\">\n <Checkbox\n id=\"remember\"\n onClick={() => {\n setRememberMe(!rememberMe)\n }}\n />\n <Label htmlFor=\"remember\" className=\"text-sm\">\n Remember me\n </Label>\n </div>\n )}\n\n <Button\n type=\"submit\"\n className=\"w-full\"\n variant=\"outline\"\n disabled={loading}\n onClick={async () => {\n await authClient.signIn.email({\n email: email,\n password: password,\n callbackURL: admin ? '/admin' : '/dashboard',\n rememberMe,\n fetchOptions: {\n onRequest: () => {\n setLoading(true)\n },\n onResponse: () => {\n setLoading(false)\n },\n onError: (ctx) => {\n toast.error(ctx.error.message)\n },\n },\n })\n }}\n >\n {loading ? <Loader2 size={16} className=\"animate-spin mr-2\" /> : null}\n {loading ? 'Signing in...' : 'Sign in'}\n </Button>\n\n {!admin && (\n <div>\n <div className=\"relative my-4\">\n <div className=\"relative flex justify-center text-xs uppercase border-b border-muted pb-4\">\n <span className=\"bg-card px-2 text-muted-foreground\">Or continue with</span>\n </div>\n </div>\n\n <div className=\"grid grid-cols-4 gap-2 sm:grid-cols-7\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'github',\n callbackURL: '/dashboard',\n })\n }}\n title=\"GitHub\"\n >\n <GitHubLogoIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'discord',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Discord\"\n >\n <DiscordLogoIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'google',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Google\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 256 262\"\n >\n <path\n fill=\"#4285F4\"\n d=\"M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622l38.755 30.023l2.685.268c24.659-22.774 38.875-56.282 38.875-96.027\"\n />\n <path\n fill=\"#34A853\"\n d=\"M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055c-34.523 0-63.824-22.773-74.269-54.25l-1.531.13l-40.298 31.187l-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82c0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602z\"\n />\n <path\n fill=\"#EB4335\"\n d=\"M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0C79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251\"\n />\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n const { data } = await authClient.signIn.social({\n provider: 'microsoft',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Microsoft\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M2 3h9v9H2zm9 19H2v-9h9zM21 3v9h-9V3zm0 19h-9v-9h9z\"\n ></path>\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'twitch',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Twitch\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M11.64 5.93h1.43v4.28h-1.43m3.93-4.28H17v4.28h-1.43M7 2L3.43 5.57v12.86h4.28V22l3.58-3.57h2.85L20.57 12V2m-1.43 9.29l-2.85 2.85h-2.86l-2.5 2.5v-2.5H7.71V3.43h11.43Z\"\n ></path>\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'facebook',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Facebook\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95\"\n ></path>\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'twitter',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Twitter\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 14 14\"\n >\n <g fill=\"none\">\n <g clipPath=\"url(#primeTwitter0)\">\n <path\n fill=\"currentColor\"\n d=\"M11.025.656h2.147L8.482 6.03L14 13.344H9.68L6.294 8.909l-3.87 4.435H.275l5.016-5.75L0 .657h4.43L7.486 4.71zm-.755 11.4h1.19L3.78 1.877H2.504z\"\n ></path>\n </g>\n <defs>\n <clipPath id=\"primeTwitter0\">\n <path fill=\"#fff\" d=\"M0 0h14v14H0z\"></path>\n </clipPath>\n </defs>\n </g>\n </svg>\n </Button>\n </div>\n </div>\n )}\n\n <Button\n className=\"w-full flex items-center justify-center gap-2 mt-2\"\n onClick={async () => {\n await authClient.signIn.passkey({\n fetchOptions: {\n onSuccess(context) {\n router.push(admin ? '/admin' : '/dashboard')\n },\n onError(context) {\n toast.error(context.error.message)\n },\n },\n })\n }}\n >\n <Key size={16} />\n <span>Sign in with Passkey</span>\n </Button>\n </div>\n </CardContent>\n <CardFooter className=\"flex flex-col\">\n <div className=\"w-full border-t pt-4\">\n <p className=\"text-center text-xs text-muted-foreground\">\n Secured by{' '}\n <Link\n href=\"https://github.com/forrestdevs/payload-better-auth\"\n className=\"font-medium text-orange-500\"\n >\n payload-better-auth\n </Link>\n </p>\n </div>\n </CardFooter>\n </Card>\n )\n}\n"],"names":["createAuthClient","Button","Card","CardContent","CardDescription","CardFooter","CardHeader","CardTitle","Checkbox","Input","Label","PasswordInput","DiscordLogoIcon","GitHubLogoIcon","Key","Loader2","Link","useRouter","useState","toast","passkeyClient","SignIn","admin","email","setEmail","password","setPassword","rememberMe","setRememberMe","router","loading","setLoading","authClient","plugins","className","div","htmlFor","id","type","placeholder","required","onChange","e","target","value","href","autoComplete","onClick","variant","disabled","signIn","callbackURL","fetchOptions","onRequest","onResponse","onError","ctx","error","message","size","span","social","provider","title","svg","xmlns","width","height","viewBox","path","fill","d","data","g","clipPath","defs","passkey","onSuccess","context","push","p"],"mappings":"AAAA;;AAEA,SAASA,gBAAgB,QAAQ,oBAAmB;AACpD,SAASC,MAAM,QAAQ,cAAa;AACpC,SAASC,IAAI,EAAEC,WAAW,EAAEC,eAAe,EAAEC,UAAU,EAAEC,UAAU,EAAEC,SAAS,QAAQ,YAAW;AACjG,SAASC,QAAQ,QAAQ,gBAAe;AACxC,SAASC,KAAK,QAAQ,aAAY;AAClC,SAASC,KAAK,QAAQ,aAAY;AAClC,SAASC,aAAa,QAAQ,sBAAqB;AACnD,SAASC,eAAe,EAAEC,cAAc,QAAQ,wBAAuB;AACvE,SAASC,GAAG,EAAEC,OAAO,QAAQ,eAAc;AAC3C,OAAOC,UAAU,YAAW;AAC5B,SAASC,SAAS,QAAQ,kBAAiB;AAC3C,SAASC,QAAQ,QAAQ,QAAO;AAChC,SAASC,KAAK,QAAQ,SAAQ;AAC9B,SAASC,aAAa,QAAQ,6BAA4B;AAE1D,eAAe,SAASC,OAAO,EAAEC,QAAQ,KAAK,EAAuB;IACnE,MAAM,CAACC,OAAOC,SAAS,GAAGN,SAAS;IACnC,MAAM,CAACO,UAAUC,YAAY,GAAGR,SAAS;IACzC,MAAM,CAACS,YAAYC,cAAc,GAAGV,SAAS;IAC7C,MAAMW,SAASZ;IACf,MAAM,CAACa,SAASC,WAAW,GAAGb,SAAS;IAEvC,MAAMc,aAAahC,iBAAiB;QAClCiC,SAAS;YAACb;SAAgB;IAC5B;IAEA,qBACE,MAAClB;QAAKgC,WAAU;;0BACd,MAAC5B;gBAAW4B,WAAU;;kCACpB,KAAC3B;wBAAU2B,WAAU;kCAAgC;;kCACrD,KAAC9B;wBAAgB8B,WAAU;kCACxBZ,QACG,yDACA;;;;0BAGR,KAACnB;gBAAY+B,WAAU;0BACrB,cAAA,MAACC;oBAAID,WAAU;;sCACb,MAACC;4BAAID,WAAU;;8CACb,KAACxB;oCAAM0B,SAAQ;oCAAQF,WAAU;8CAAsB;;8CAGvD,KAACzB;oCACC4B,IAAG;oCACHC,MAAK;oCACLC,aAAY;oCACZC,QAAQ;oCACRC,UAAU,CAACC;wCACTlB,SAASkB,EAAEC,MAAM,CAACC,KAAK;oCACzB;oCACAA,OAAOrB;oCACPW,WAAU;;;;sCAGd,MAACC;4BAAID,WAAU;;8CACb,MAACC;oCAAID,WAAU;;sDACb,KAACxB;4CAAM0B,SAAQ;4CAAWF,WAAU;sDAAsB;;sDAG1D,KAAClB;4CAAK6B,MAAK;4CAAmBX,WAAU;sDAAuC;;;;8CAIjF,KAACvB;oCACC0B,IAAG;oCACHO,OAAOnB;oCACPgB,UAAU,CAACC,IAAWhB,YAAYgB,EAAEC,MAAM,CAACC,KAAK;oCAChDE,cAAa;oCACbP,aAAY;oCACZL,WAAU;;;;wBAGb,CAACZ,uBACA,MAACa;4BAAID,WAAU;;8CACb,KAAC1B;oCACC6B,IAAG;oCACHU,SAAS;wCACPnB,cAAc,CAACD;oCACjB;;8CAEF,KAACjB;oCAAM0B,SAAQ;oCAAWF,WAAU;8CAAU;;;;sCAMlD,MAACjC;4BACCqC,MAAK;4BACLJ,WAAU;4BACVc,SAAQ;4BACRC,UAAUnB;4BACViB,SAAS;gCACP,MAAMf,WAAWkB,MAAM,CAAC3B,KAAK,CAAC;oCAC5BA,OAAOA;oCACPE,UAAUA;oCACV0B,aAAa7B,QAAQ,WAAW;oCAChCK;oCACAyB,cAAc;wCACZC,WAAW;4CACTtB,WAAW;wCACb;wCACAuB,YAAY;4CACVvB,WAAW;wCACb;wCACAwB,SAAS,CAACC;4CACRrC,MAAMsC,KAAK,CAACD,IAAIC,KAAK,CAACC,OAAO;wCAC/B;oCACF;gCACF;4BACF;;gCAEC5B,wBAAU,KAACf;oCAAQ4C,MAAM;oCAAIzB,WAAU;qCAAyB;gCAChEJ,UAAU,kBAAkB;;;wBAG9B,CAACR,uBACA,MAACa;;8CACC,KAACA;oCAAID,WAAU;8CACb,cAAA,KAACC;wCAAID,WAAU;kDACb,cAAA,KAAC0B;4CAAK1B,WAAU;sDAAqC;;;;8CAIzD,MAACC;oCAAID,WAAU;;sDACb,KAACjC;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAMf,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC7BC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,KAAClD;gDAAeqB,WAAU;;;sDAE5B,KAACjC;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAMf,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC7BC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,KAACnD;gDAAgBsB,WAAU;;;sDAE7B,KAACjC;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAMf,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC7BC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,MAACC;gDACCC,OAAM;gDACNC,OAAM;gDACNC,QAAO;gDACPC,SAAQ;;kEAER,KAACC;wDACCC,MAAK;wDACLC,GAAE;;kEAEJ,KAACF;wDACCC,MAAK;wDACLC,GAAE;;kEAEJ,KAACF;wDACCC,MAAK;wDACLC,GAAE;;kEAEJ,KAACF;wDACCC,MAAK;wDACLC,GAAE;;;;;sDAIR,KAACtE;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAM,EAAEyB,IAAI,EAAE,GAAG,MAAMxC,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC9CC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,KAACC;gDACCC,OAAM;gDACNC,OAAM;gDACNC,QAAO;gDACPC,SAAQ;0DAER,cAAA,KAACC;oDACCC,MAAK;oDACLC,GAAE;;;;sDAIR,KAACtE;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAMf,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC7BC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,KAACC;gDACCC,OAAM;gDACNC,OAAM;gDACNC,QAAO;gDACPC,SAAQ;0DAER,cAAA,KAACC;oDACCC,MAAK;oDACLC,GAAE;;;;sDAIR,KAACtE;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAMf,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC7BC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,KAACC;gDACCC,OAAM;gDACNC,OAAM;gDACNC,QAAO;gDACPC,SAAQ;0DAER,cAAA,KAACC;oDACCC,MAAK;oDACLC,GAAE;;;;sDAIR,KAACtE;4CACC+C,SAAQ;4CACRW,MAAK;4CACLzB,WAAU;4CACVa,SAAS;gDACP,MAAMf,WAAWkB,MAAM,CAACW,MAAM,CAAC;oDAC7BC,UAAU;oDACVX,aAAa;gDACf;4CACF;4CACAY,OAAM;sDAEN,cAAA,KAACC;gDACCC,OAAM;gDACNC,OAAM;gDACNC,QAAO;gDACPC,SAAQ;0DAER,cAAA,MAACK;oDAAEH,MAAK;;sEACN,KAACG;4DAAEC,UAAS;sEACV,cAAA,KAACL;gEACCC,MAAK;gEACLC,GAAE;;;sEAGN,KAACI;sEACC,cAAA,KAACD;gEAASrC,IAAG;0EACX,cAAA,KAACgC;oEAAKC,MAAK;oEAAOC,GAAE;;;;;;;;;;;;sCAUpC,MAACtE;4BACCiC,WAAU;4BACVa,SAAS;gCACP,MAAMf,WAAWkB,MAAM,CAAC0B,OAAO,CAAC;oCAC9BxB,cAAc;wCACZyB,WAAUC,OAAO;4CACfjD,OAAOkD,IAAI,CAACzD,QAAQ,WAAW;wCACjC;wCACAiC,SAAQuB,OAAO;4CACb3D,MAAMsC,KAAK,CAACqB,QAAQrB,KAAK,CAACC,OAAO;wCACnC;oCACF;gCACF;4BACF;;8CAEA,KAAC5C;oCAAI6C,MAAM;;8CACX,KAACC;8CAAK;;;;;;;0BAIZ,KAACvD;gBAAW6B,WAAU;0BACpB,cAAA,KAACC;oBAAID,WAAU;8BACb,cAAA,MAAC8C;wBAAE9C,WAAU;;4BAA4C;4BAC5C;0CACX,KAAClB;gCACC6B,MAAK;gCACLX,WAAU;0CACX;;;;;;;;AAQb"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/components/sign-up.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from './ui/button'\nimport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle } from './ui/card'\nimport { Input } from './ui/input'\nimport { Label } from './ui/label'\nimport { PasswordInput } from './ui/password-input'\nimport { DiscordLogoIcon, GitHubLogoIcon } from '@radix-ui/react-icons'\nimport { useState } from 'react'\nimport Image from 'next/image'\nimport { Loader2, X } from 'lucide-react'\nimport { toast } from 'sonner'\nimport { useRouter } from 'next/navigation'\nimport Link from 'next/link'\nimport { createAuthClient } from 'better-auth/react'\nimport { inferAdditionalFields } from 'better-auth/client/plugins'\n\nexport function SignUp({\n admin = false,\n apiRoute,\n userSlug,\n defaultAdminRole,\n}: {\n admin?: boolean\n apiRoute: string\n userSlug: string\n defaultAdminRole: string\n}) {\n const [firstName, setFirstName] = useState('')\n const [lastName, setLastName] = useState('')\n const [email, setEmail] = useState('')\n const [password, setPassword] = useState('')\n const [passwordConfirmation, setPasswordConfirmation] = useState('')\n const [image, setImage] = useState<File | null>(null)\n const [imagePreview, setImagePreview] = useState<string | null>(null)\n const router = useRouter()\n\n const authClient = createAuthClient({\n plugins: [\n inferAdditionalFields({\n user: {\n role: {\n type: 'string',\n },\n },\n }),\n ],\n })\n\n const handleImageChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0]\n if (file) {\n setImage(file)\n const reader = new FileReader()\n reader.onloadend = () => {\n setImagePreview(reader.result as string)\n }\n reader.readAsDataURL(file)\n }\n }\n\n const addAdminRole = async (userId: string) => {\n try {\n const req = await fetch(\n `${process.env.NEXT_PUBLIC_SERVER_URL}${apiRoute}/${userSlug}/${userId}`,\n {\n method: 'PATCH',\n credentials: 'include',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify({\n role: defaultAdminRole ?? 'admin',\n }),\n },\n )\n } catch (err) {\n console.log(err)\n }\n }\n const [loading, setLoading] = useState(false)\n\n return (\n <Card className=\"z-50 rounded-md rounded-t-none w-full max-w-md shadow-lg\">\n <CardHeader className=\"space-y-1\">\n <CardTitle className=\"text-xl md:text-2xl font-bold\">Sign Up</CardTitle>\n <CardDescription className=\"text-sm text-muted-foreground\">\n Enter your information to create an account\n </CardDescription>\n </CardHeader>\n <CardContent className=\"space-y-4\">\n <div className=\"space-y-4\">\n <div className=\"grid grid-cols-2 gap-4\">\n <div className=\"space-y-2\">\n <Label htmlFor=\"first-name\" className=\"text-sm font-medium\">\n First name\n </Label>\n <Input\n id=\"first-name\"\n placeholder=\"Max\"\n required\n onChange={(e) => {\n setFirstName(e.target.value)\n }}\n value={firstName}\n className=\"w-full\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"last-name\" className=\"text-sm font-medium\">\n Last name\n </Label>\n <Input\n id=\"last-name\"\n placeholder=\"Robinson\"\n required\n onChange={(e) => {\n setLastName(e.target.value)\n }}\n value={lastName}\n className=\"w-full\"\n />\n </div>\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"email\" className=\"text-sm font-medium\">\n Email\n </Label>\n <Input\n id=\"email\"\n type=\"email\"\n placeholder=\"m@example.com\"\n required\n onChange={(e) => {\n setEmail(e.target.value)\n }}\n value={email}\n className=\"w-full\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"password\" className=\"text-sm font-medium\">\n Password\n </Label>\n <PasswordInput\n id=\"password\"\n value={password}\n onChange={(e: any) => setPassword(e.target.value)}\n autoComplete=\"new-password\"\n placeholder=\"Password\"\n className=\"w-full\"\n />\n </div>\n <div className=\"space-y-2\">\n <Label htmlFor=\"password_confirmation\" className=\"text-sm font-medium\">\n Confirm Password\n </Label>\n <PasswordInput\n id=\"password_confirmation\"\n value={passwordConfirmation}\n onChange={(e: any) => setPasswordConfirmation(e.target.value)}\n autoComplete=\"new-password\"\n placeholder=\"Confirm Password\"\n className=\"w-full\"\n />\n </div>\n\n {!admin && (\n <div className=\"space-y-2\">\n <Label htmlFor=\"image\" className=\"text-sm font-medium\">\n Profile Image (optional)\n </Label>\n <div className=\"flex items-center gap-3\">\n {imagePreview && (\n <div className=\"relative w-12 h-12 rounded-full overflow-hidden flex-shrink-0\">\n <Image src={imagePreview} alt=\"Profile preview\" fill className=\"object-cover\" />\n </div>\n )}\n <div className=\"flex-1 flex items-center gap-2\">\n <Input\n id=\"image\"\n type=\"file\"\n accept=\"image/*\"\n onChange={handleImageChange}\n className=\"w-full text-sm\"\n />\n {imagePreview && (\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className=\"h-8 w-8 flex-shrink-0\"\n onClick={() => {\n setImage(null)\n setImagePreview(null)\n }}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n )}\n </div>\n </div>\n </div>\n )}\n\n <Button\n type=\"submit\"\n className=\"w-full\"\n disabled={loading}\n onClick={async () => {\n if (password !== passwordConfirmation) {\n toast.error('Please ensure your password and confirm password match.')\n return\n }\n const user = await authClient.signUp.email({\n email,\n password,\n role: admin ? 'admin' : 'user',\n name: `${firstName} ${lastName}`,\n callbackURL: admin ? '/admin' : '/dashboard',\n fetchOptions: {\n onResponse: () => {\n setLoading(false)\n },\n onRequest: () => {\n setLoading(true)\n },\n onError: (ctx) => {\n toast.error(ctx.error.message)\n },\n onSuccess: async () => {\n router.push(admin ? '/admin' : '/dashboard')\n },\n },\n })\n\n const userId = user.data?.user.id\n\n if (userId && admin) {\n await addAdminRole(userId)\n }\n }}\n >\n {loading ? <Loader2 size={16} className=\"animate-spin mr-2\" /> : null}\n {loading ? 'Creating account...' : 'Create an account'}\n </Button>\n\n {!admin && (\n <div>\n <div className=\"relative my-4\">\n <div className=\"relative flex justify-center text-xs uppercase border-b border-muted pb-4\">\n <span className=\"bg-card px-2 text-muted-foreground\">Or continue with</span>\n </div>\n </div>\n <div className=\"grid grid-cols-4 gap-2 sm:grid-cols-7\">\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'github',\n callbackURL: '/dashboard',\n })\n }}\n title=\"GitHub\"\n >\n <GitHubLogoIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'discord',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Discord\"\n >\n <DiscordLogoIcon className=\"h-4 w-4\" />\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'google',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Google\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 256 262\"\n >\n <path\n fill=\"#4285F4\"\n d=\"M255.878 133.451c0-10.734-.871-18.567-2.756-26.69H130.55v48.448h71.947c-1.45 12.04-9.283 30.172-26.69 42.356l-.244 1.622l38.755 30.023l2.685.268c24.659-22.774 38.875-56.282 38.875-96.027\"\n />\n <path\n fill=\"#34A853\"\n d=\"M130.55 261.1c35.248 0 64.839-11.605 86.453-31.622l-41.196-31.913c-11.024 7.688-25.82 13.055-45.257 13.055c-34.523 0-63.824-22.773-74.269-54.25l-1.531.13l-40.298 31.187l-.527 1.465C35.393 231.798 79.49 261.1 130.55 261.1\"\n />\n <path\n fill=\"#FBBC05\"\n d=\"M56.281 156.37c-2.756-8.123-4.351-16.827-4.351-25.82c0-8.994 1.595-17.697 4.206-25.82l-.073-1.73L15.26 71.312l-1.335.635C5.077 89.644 0 109.517 0 130.55s5.077 40.905 13.925 58.602z\"\n />\n <path\n fill=\"#EB4335\"\n d=\"M130.55 50.479c24.514 0 41.05 10.589 50.479 19.438l36.844-35.974C195.245 12.91 165.798 0 130.55 0C79.49 0 35.393 29.301 13.925 71.947l42.211 32.783c10.59-31.477 39.891-54.251 74.414-54.251\"\n />\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n const { data } = await authClient.signIn.social({\n provider: 'microsoft',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Microsoft\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M2 3h9v9H2zm9 19H2v-9h9zM21 3v9h-9V3zm0 19h-9v-9h9z\"\n ></path>\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'twitch',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Twitch\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M11.64 5.93h1.43v4.28h-1.43m3.93-4.28H17v4.28h-1.43M7 2L3.43 5.57v12.86h4.28V22l3.58-3.57h2.85L20.57 12V2m-1.43 9.29l-2.85 2.85h-2.86l-2.5 2.5v-2.5H7.71V3.43h11.43Z\"\n ></path>\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'facebook',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Facebook\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M22 12c0-5.52-4.48-10-10-10S2 6.48 2 12c0 4.84 3.44 8.87 8 9.8V15H8v-3h2V9.5C10 7.57 11.57 6 13.5 6H16v3h-2c-.55 0-1 .45-1 1v2h3v3h-3v6.95c5.05-.5 9-4.76 9-9.95\"\n ></path>\n </svg>\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon\"\n className=\"h-10 w-10\"\n onClick={async () => {\n await authClient.signIn.social({\n provider: 'twitter',\n callbackURL: '/dashboard',\n })\n }}\n title=\"Twitter\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 14 14\"\n >\n <g fill=\"none\">\n <g clipPath=\"url(#primeTwitter0)\">\n <path\n fill=\"currentColor\"\n d=\"M11.025.656h2.147L8.482 6.03L14 13.344H9.68L6.294 8.909l-3.87 4.435H.275l5.016-5.75L0 .657h4.43L7.486 4.71zm-.755 11.4h1.19L3.78 1.877H2.504z\"\n ></path>\n </g>\n <defs>\n <clipPath id=\"primeTwitter0\">\n <path fill=\"#fff\" d=\"M0 0h14v14H0z\"></path>\n </clipPath>\n </defs>\n </g>\n </svg>\n </Button>\n </div>\n </div>\n )}\n </div>\n </CardContent>\n <CardFooter className=\"flex flex-col\">\n <div className=\"w-full border-t pt-4\">\n <p className=\"text-center text-xs text-muted-foreground\">\n Secured by{' '}\n <Link\n className=\"font-medium text-orange-500\"\n href=\"https://github.com/forrestdevs/payload-better-auth\"\n >\n payload-better-auth\n </Link>\n </p>\n </div>\n </CardFooter>\n </Card>\n )\n}\n\nasync function convertImageToBase64(file: File): Promise<string> {\n return new Promise((resolve, reject) => {\n const reader = new FileReader()\n reader.onloadend = () => resolve(reader.result as string)\n reader.onerror = reject\n reader.readAsDataURL(file)\n })\n}\n"],"names":["Button","Card","CardContent","CardDescription","CardFooter","CardHeader","CardTitle","Input","Label","PasswordInput","DiscordLogoIcon","GitHubLogoIcon","useState","Image","Loader2","X","toast","useRouter","Link","createAuthClient","inferAdditionalFields","SignUp","admin","apiRoute","userSlug","defaultAdminRole","firstName","setFirstName","lastName","setLastName","email","setEmail","password","setPassword","passwordConfirmation","setPasswordConfirmation","image","setImage","imagePreview","setImagePreview","router","authClient","plugins","user","role","type","handleImageChange","e","file","target","files","reader","FileReader","onloadend","result","readAsDataURL","addAdminRole","userId","req","fetch","process","env","NEXT_PUBLIC_SERVER_URL","method","credentials","headers","body","JSON","stringify","err","console","log","loading","setLoading","className","div","htmlFor","id","placeholder","required","onChange","value","autoComplete","src","alt","fill","accept","variant","size","onClick","disabled","error","signUp","name","callbackURL","fetchOptions","onResponse","onRequest","onError","ctx","message","onSuccess","push","data","span","signIn","social","provider","title","svg","xmlns","width","height","viewBox","path","d","g","clipPath","defs","p","href","convertImageToBase64","Promise","resolve","reject","onerror"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/button.tsx"],"sourcesContent":["import * as React from 'react'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva, type VariantProps } from 'class-variance-authority'\n\nimport { cn } from './cn'\n\nconst buttonVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n {\n variants: {\n variant: {\n default: 'bg-primary text-primary-foreground shadow-xs hover:bg-primary/90',\n destructive:\n 'bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50',\n secondary: 'bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80',\n ghost: 'hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50',\n link: 'text-primary underline-offset-4 hover:underline',\n },\n size: {\n default: 'h-9 px-4 py-2 has-[>svg]:px-3',\n sm: 'h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5',\n lg: 'h-10 rounded-md px-6 has-[>svg]:px-4',\n icon: 'size-9',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'default',\n },\n },\n)\n\nfunction Button({\n className,\n variant,\n size,\n asChild = false,\n ...props\n}: React.ComponentProps<'button'> &\n VariantProps<typeof buttonVariants> & {\n asChild?: boolean\n }) {\n const Comp = asChild ? Slot : 'button'\n\n return (\n <Comp\n data-slot=\"button\"\n className={cn(buttonVariants({ variant, size, className }))}\n {...props}\n />\n )\n}\n\nexport { Button, buttonVariants }\n"],"names":["React","Slot","cva","cn","buttonVariants","variants","variant","default","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","className","asChild","props","Comp","data-slot"],"mappings":";AAAA,YAAYA,WAAW,QAAO;AAC9B,SAASC,IAAI,QAAQ,uBAAsB;AAC3C,SAASC,GAAG,QAA2B,2BAA0B;AAEjE,SAASC,EAAE,QAAQ,OAAM;AAEzB,MAAMC,iBAAiBF,IACrB,+bACA;IACEG,UAAU;QACRC,SAAS;YACPC,SAAS;YACTC,aACE;YACFC,SACE;YACFC,WAAW;YACXC,OAAO;YACPC,MAAM;QACR;QACAC,MAAM;YACJN,SAAS;YACTO,IAAI;YACJC,IAAI;YACJC,MAAM;QACR;IACF;IACAC,iBAAiB;QACfX,SAAS;QACTO,MAAM;IACR;AACF;AAGF,SAASK,OAAO,EACdC,SAAS,EACTb,OAAO,EACPO,IAAI,EACJO,UAAU,KAAK,EACf,GAAGC,OAIF;IACD,MAAMC,OAAOF,UAAUnB,OAAO;IAE9B,qBACE,KAACqB;QACCC,aAAU;QACVJ,WAAWhB,GAAGC,eAAe;YAAEE;YAASO;YAAMM;QAAU;QACvD,GAAGE,KAAK;;AAGf;AAEA,SAASH,MAAM,EAAEd,cAAc,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from './cn'\n\nfunction Card({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card\"\n className={cn(\n 'bg-card text-card-foreground flex flex-col gap-6 rounded-xl border py-6 shadow-sm',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardHeader({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-header\"\n className={cn(\n '@container/card-header grid auto-rows-min grid-rows-[auto_auto] items-start gap-1.5 px-6 has-[data-slot=card-action]:grid-cols-[1fr_auto] [.border-b]:pb-6',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction CardTitle({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-title\"\n className={cn('leading-none font-semibold', className)}\n {...props}\n />\n )\n}\n\nfunction CardDescription({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-description\"\n className={cn('text-muted-foreground text-sm', className)}\n {...props}\n />\n )\n}\n\nfunction CardAction({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-action\"\n className={cn('col-start-2 row-span-2 row-start-1 self-start justify-self-end', className)}\n {...props}\n />\n )\n}\n\nfunction CardContent({ className, ...props }: React.ComponentProps<'div'>) {\n return <div data-slot=\"card-content\" className={cn('px-6', className)} {...props} />\n}\n\nfunction CardFooter({ className, ...props }: React.ComponentProps<'div'>) {\n return (\n <div\n data-slot=\"card-footer\"\n className={cn('flex items-center px-6 [.border-t]:pt-6', className)}\n {...props}\n />\n )\n}\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardAction, CardDescription, CardContent }\n"],"names":["React","cn","Card","className","props","div","data-slot","CardHeader","CardTitle","CardDescription","CardAction","CardContent","CardFooter"],"mappings":";AAAA,YAAYA,WAAW,QAAO;AAE9B,SAASC,EAAE,QAAQ,OAAM;AAEzB,SAASC,KAAK,EAAEC,SAAS,EAAE,GAAGC,OAAoC;IAChE,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GACT,qFACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASG,WAAW,EAAEJ,SAAS,EAAE,GAAGC,OAAoC;IACtE,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GACT,8JACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASI,UAAU,EAAEL,SAAS,EAAE,GAAGC,OAAoC;IACrE,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GAAG,8BAA8BE;QAC3C,GAAGC,KAAK;;AAGf;AAEA,SAASK,gBAAgB,EAAEN,SAAS,EAAE,GAAGC,OAAoC;IAC3E,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GAAG,iCAAiCE;QAC9C,GAAGC,KAAK;;AAGf;AAEA,SAASM,WAAW,EAAEP,SAAS,EAAE,GAAGC,OAAoC;IACtE,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GAAG,kEAAkEE;QAC/E,GAAGC,KAAK;;AAGf;AAEA,SAASO,YAAY,EAAER,SAAS,EAAE,GAAGC,OAAoC;IACvE,qBAAO,KAACC;QAAIC,aAAU;QAAeH,WAAWF,GAAG,QAAQE;QAAa,GAAGC,KAAK;;AAClF;AAEA,SAASQ,WAAW,EAAET,SAAS,EAAE,GAAGC,OAAoC;IACtE,qBACE,KAACC;QACCC,aAAU;QACVH,WAAWF,GAAG,2CAA2CE;QACxD,GAAGC,KAAK;;AAGf;AAEA,SAASF,IAAI,EAAEK,UAAU,EAAEK,UAAU,EAAEJ,SAAS,EAAEE,UAAU,EAAED,eAAe,EAAEE,WAAW,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/checkbox.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { CheckIcon } from 'lucide-react'\n\nimport { cn } from './cn'\n\nfunction Checkbox({ className, ...props }: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n 'peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50',\n className,\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n"],"names":["React","CheckboxPrimitive","CheckIcon","cn","Checkbox","className","props","Root","data-slot","Indicator"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAO;AAC9B,YAAYC,uBAAuB,2BAA0B;AAC7D,SAASC,SAAS,QAAQ,eAAc;AAExC,SAASC,EAAE,QAAQ,OAAM;AAEzB,SAASC,SAAS,EAAEC,SAAS,EAAE,GAAGC,OAA4D;IAC5F,qBACE,KAACL,kBAAkBM,IAAI;QACrBC,aAAU;QACVH,WAAWF,GACT,+eACAE;QAED,GAAGC,KAAK;kBAET,cAAA,KAACL,kBAAkBQ,SAAS;YAC1BD,aAAU;YACVH,WAAU;sBAEV,cAAA,KAACH;gBAAUG,WAAU;;;;AAI7B;AAEA,SAASD,QAAQ,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n"],"names":["clsx","twMerge","cn","inputs"],"mappings":"AAAA,SAASA,IAAI,QAAyB,OAAM;AAC5C,SAASC,OAAO,QAAQ,iBAAgB;AAExC,OAAO,SAASC,GAAG,GAAGC,MAAoB;IACxC,OAAOF,QAAQD,KAAKG;AACtB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/input.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from './cn'\n\nfunction Input({ className, type, ...props }: React.ComponentProps<'input'>) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n 'file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n 'focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]',\n 'aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n"],"names":["React","cn","Input","className","type","props","input","data-slot"],"mappings":";AAAA,YAAYA,WAAW,QAAO;AAE9B,SAASC,EAAE,QAAQ,OAAM;AAEzB,SAASC,MAAM,EAAEC,SAAS,EAAEC,IAAI,EAAE,GAAGC,OAAsC;IACzE,qBACE,KAACC;QACCF,MAAMA;QACNG,aAAU;QACVJ,WAAWF,GACT,mcACA,iFACA,0GACAE;QAED,GAAGE,KAAK;;AAGf;AAEA,SAASH,KAAK,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/label.tsx"],"sourcesContent":["'use client'\n\nimport * as React from 'react'\nimport * as LabelPrimitive from '@radix-ui/react-label'\n\nimport { cn } from './cn'\n\nfunction Label({ className, ...props }: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n 'flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',\n className,\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n"],"names":["React","LabelPrimitive","cn","Label","className","props","Root","data-slot"],"mappings":"AAAA;;AAEA,YAAYA,WAAW,QAAO;AAC9B,YAAYC,oBAAoB,wBAAuB;AAEvD,SAASC,EAAE,QAAQ,OAAM;AAEzB,SAASC,MAAM,EAAEC,SAAS,EAAE,GAAGC,OAAyD;IACtF,qBACE,KAACJ,eAAeK,IAAI;QAClBC,aAAU;QACVH,WAAWF,GACT,uNACAE;QAED,GAAGC,KAAK;;AAGf;AAEA,SAASF,KAAK,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/components/ui/password-input.tsx"],"sourcesContent":["'use client'\n\nimport { EyeIcon, EyeOffIcon } from 'lucide-react'\nimport * as React from 'react'\n\nimport { Button } from './button'\nimport { Input } from './input'\nimport { cn } from './cn'\n\nexport function PasswordInput({ className, ...props }: React.ComponentProps<'input'>) {\n const [showPassword, setShowPassword] = React.useState(false)\n const disabled = props.value === '' || props.value === undefined || props.disabled\n\n return (\n <div className=\"relative\">\n <Input\n {...props}\n type={showPassword ? 'text' : 'password'}\n name=\"password_fake\"\n className={cn('hide-password-toggle pr-10', className)}\n />\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n className=\"absolute right-0 top-0 h-full px-3 py-2 hover:bg-transparent\"\n onClick={() => setShowPassword((prev) => !prev)}\n disabled={disabled}\n >\n {showPassword && !disabled ? (\n <EyeIcon className=\"h-4 w-4\" aria-hidden=\"true\" />\n ) : (\n <EyeOffIcon className=\"h-4 w-4\" aria-hidden=\"true\" />\n )}\n <span className=\"sr-only\">{showPassword ? 'Hide password' : 'Show password'}</span>\n </Button>\n\n <style>{`\n\t\t.hide-password-toggle::-ms-reveal,\n\t\t.hide-password-toggle::-ms-clear {\n\t\t\tvisibility: hidden;\n\t\t\tpointer-events: none;\n\t\t\tdisplay: none;\n\t\t}\n\t`}</style>\n </div>\n )\n}\n"],"names":["EyeIcon","EyeOffIcon","React","Button","Input","cn","PasswordInput","className","props","showPassword","setShowPassword","useState","disabled","value","undefined","div","type","name","variant","size","onClick","prev","aria-hidden","span","style"],"mappings":"AAAA;;AAEA,SAASA,OAAO,EAAEC,UAAU,QAAQ,eAAc;AAClD,YAAYC,WAAW,QAAO;AAE9B,SAASC,MAAM,QAAQ,WAAU;AACjC,SAASC,KAAK,QAAQ,UAAS;AAC/B,SAASC,EAAE,QAAQ,OAAM;AAEzB,OAAO,SAASC,cAAc,EAAEC,SAAS,EAAE,GAAGC,OAAsC;IAClF,MAAM,CAACC,cAAcC,gBAAgB,GAAGR,MAAMS,QAAQ,CAAC;IACvD,MAAMC,WAAWJ,MAAMK,KAAK,KAAK,MAAML,MAAMK,KAAK,KAAKC,aAAaN,MAAMI,QAAQ;IAElF,qBACE,MAACG;QAAIR,WAAU;;0BACb,KAACH;gBACE,GAAGI,KAAK;gBACTQ,MAAMP,eAAe,SAAS;gBAC9BQ,MAAK;gBACLV,WAAWF,GAAG,8BAA8BE;;0BAE9C,MAACJ;gBACCa,MAAK;gBACLE,SAAQ;gBACRC,MAAK;gBACLZ,WAAU;gBACVa,SAAS,IAAMV,gBAAgB,CAACW,OAAS,CAACA;gBAC1CT,UAAUA;;oBAETH,gBAAgB,CAACG,yBAChB,KAACZ;wBAAQO,WAAU;wBAAUe,eAAY;uCAEzC,KAACrB;wBAAWM,WAAU;wBAAUe,eAAY;;kCAE9C,KAACC;wBAAKhB,WAAU;kCAAWE,eAAe,kBAAkB;;;;0BAG9D,KAACe;0BAAO,CAAC;;;;;;;CAOd,CAAC;;;;AAGF"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/exports/client.ts"],"sourcesContent":["import AdminButtons from '../components/admin-buttons'\nimport LogoutButton from '../components/logout'\n\nexport { AdminButtons, LogoutButton }\n"],"names":["AdminButtons","LogoutButton"],"mappings":"AAAA,OAAOA,kBAAkB,8BAA6B;AACtD,OAAOC,kBAAkB,uBAAsB;AAE/C,SAASD,YAAY,EAAEC,YAAY,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/plugin/payload/exports/rsc.ts"],"sourcesContent":["import LoginRedirect from '../components/login-redirect'\nimport Logo from '../components/logo'\nimport CreateFirstAdmin from '../views/create-first-admin/index'\nimport Login from '../views/login/index'\n\nexport { LoginRedirect, Logo, CreateFirstAdmin, Login }\n"],"names":["LoginRedirect","Logo","CreateFirstAdmin","Login"],"mappings":"AAAA,OAAOA,mBAAmB,+BAA8B;AACxD,OAAOC,UAAU,qBAAoB;AACrC,OAAOC,sBAAsB,oCAAmC;AAChE,OAAOC,WAAW,uBAAsB;AAExC,SAASH,aAAa,EAAEC,IAAI,EAAEC,gBAAgB,EAAEC,KAAK,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/views/create-first-admin/index.tsx"],"sourcesContent":["import React from 'react'\nimport type { AdminViewServerProps, ServerProps } from 'payload'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { redirect } from 'next/navigation'\nimport { Gutter } from '@payloadcms/ui'\nimport { SignUp } from '../../components/sign-up'\nimport Logo from '../../components/logo'\n\nexport default async function CreateFirstAdmin({\n initPageResult,\n params,\n searchParams,\n defaultAdminRole,\n}: AdminViewServerProps & { defaultAdminRole: string }) {\n const { locale, permissions, req } = initPageResult\n const {\n i18n,\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n admin: { components: { afterLogin, beforeLogin, graphics } = {}, user: userSlug },\n routes: { admin, api },\n } = config\n\n const adminCount = await req.payload.count({\n collection: userSlug,\n where: {\n role: {\n equals: defaultAdminRole ?? 'admin',\n },\n },\n })\n\n if (adminCount.totalDocs > 0) {\n redirect(admin)\n }\n\n // const addRoleAction = async (userId: string) => {\n // 'use server'\n // await payload.update({\n // collection: userSlug,\n // id: userId,\n // data: {\n // role: defaultAdminRole ?? 'admin',\n // },\n // })\n // }\n\n // Filter out the first component from afterLogin array or set to undefined if not more than 1\n const filteredAfterLogin =\n Array.isArray(afterLogin) && afterLogin.length > 1 ? afterLogin.slice(1) : undefined\n\n return (\n <Gutter className=\"mt-40\">\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n marginBottom: '1.5rem',\n }}\n >\n {RenderServerComponent({\n Component: graphics?.Logo,\n Fallback: () => <Logo />,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user: user ?? undefined,\n } satisfies ServerProps,\n })}\n </div>\n {RenderServerComponent({\n Component: beforeLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user: user ?? undefined,\n } satisfies ServerProps,\n })}\n <div\n style={{\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <SignUp\n admin={true}\n apiRoute={api}\n userSlug={userSlug}\n defaultAdminRole={defaultAdminRole}\n />\n </div>\n {RenderServerComponent({\n Component: filteredAfterLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user: user ?? undefined,\n } satisfies ServerProps,\n })}\n </div>\n </Gutter>\n )\n}\n"],"names":["React","RenderServerComponent","redirect","Gutter","SignUp","Logo","CreateFirstAdmin","initPageResult","params","searchParams","defaultAdminRole","locale","permissions","req","i18n","payload","config","user","admin","components","afterLogin","beforeLogin","graphics","userSlug","routes","api","adminCount","count","collection","where","role","equals","totalDocs","filteredAfterLogin","Array","isArray","length","slice","undefined","className","div","style","display","flexDirection","alignItems","justifyContent","width","marginBottom","Component","Fallback","importMap","serverProps","apiRoute"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,QAAQ,QAAQ,kBAAiB;AAC1C,SAASC,MAAM,QAAQ,iBAAgB;AACvC,SAASC,MAAM,QAAQ,2BAA0B;AACjD,OAAOC,UAAU,wBAAuB;AAExC,eAAe,eAAeC,iBAAiB,EAC7CC,cAAc,EACdC,MAAM,EACNC,YAAY,EACZC,gBAAgB,EACoC;IACpD,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGN;IACrC,MAAM,EACJO,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGJ;IAEJ,MAAM,EACJK,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAEL,MAAMM,QAAQ,EAAE,EACjFC,QAAQ,EAAEN,KAAK,EAAEO,GAAG,EAAE,EACvB,GAAGT;IAEJ,MAAMU,aAAa,MAAMb,IAAIE,OAAO,CAACY,KAAK,CAAC;QACzCC,YAAYL;QACZM,OAAO;YACLC,MAAM;gBACJC,QAAQrB,oBAAoB;YAC9B;QACF;IACF;IAEA,IAAIgB,WAAWM,SAAS,GAAG,GAAG;QAC5B9B,SAASgB;IACX;IAEA,oDAAoD;IACpD,iBAAiB;IACjB,2BAA2B;IAC3B,4BAA4B;IAC5B,kBAAkB;IAClB,cAAc;IACd,2CAA2C;IAC3C,SAAS;IACT,OAAO;IACP,IAAI;IAEJ,8FAA8F;IAC9F,MAAMe,qBACJC,MAAMC,OAAO,CAACf,eAAeA,WAAWgB,MAAM,GAAG,IAAIhB,WAAWiB,KAAK,CAAC,KAAKC;IAE7E,qBACE,KAACnC;QAAOoC,WAAU;kBAChB,cAAA,MAACC;YACCC,OAAO;gBACLC,SAAS;gBACTC,eAAe;gBACfC,YAAY;gBACZC,gBAAgB;YAClB;;8BAEA,KAACL;oBACCC,OAAO;wBACLC,SAAS;wBACTG,gBAAgB;wBAChBC,OAAO;wBACPC,cAAc;oBAChB;8BAEC9C,sBAAsB;wBACrB+C,WAAW1B,UAAUjB;wBACrB4C,UAAU,kBAAM,KAAC5C;wBACjB6C,WAAWnC,QAAQmC,SAAS;wBAC5BC,aAAa;4BACXrC;4BACAH;4BACAH;4BACAO;4BACAH;4BACAH;4BACAQ,MAAMA,QAAQqB;wBAChB;oBACF;;gBAEDrC,sBAAsB;oBACrB+C,WAAW3B;oBACX6B,WAAWnC,QAAQmC,SAAS;oBAC5BC,aAAa;wBACXrC;wBACAH;wBACAH;wBACAO;wBACAH;wBACAH;wBACAQ,MAAMA,QAAQqB;oBAChB;gBACF;8BACA,KAACE;oBACCC,OAAO;wBACLC,SAAS;wBACTC,eAAe;wBACfC,YAAY;wBACZC,gBAAgB;oBAClB;8BAEA,cAAA,KAACzC;wBACCc,OAAO;wBACPkC,UAAU3B;wBACVF,UAAUA;wBACVb,kBAAkBA;;;gBAGrBT,sBAAsB;oBACrB+C,WAAWf;oBACXiB,WAAWnC,QAAQmC,SAAS;oBAC5BC,aAAa;wBACXrC;wBACAH;wBACAH;wBACAO;wBACAH;wBACAH;wBACAQ,MAAMA,QAAQqB;oBAChB;gBACF;;;;AAIR"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/plugin/payload/views/login/index.tsx"],"sourcesContent":["import React from 'react'\nimport type { AdminViewServerProps, ServerProps } from 'payload'\nimport { RenderServerComponent } from '@payloadcms/ui/elements/RenderServerComponent'\nimport { redirect } from 'next/navigation'\nimport { Gutter } from '@payloadcms/ui'\nimport SignIn from '../../components/sign-in'\nimport Logo from '../../components/logo'\n\nexport default async function LoginView({\n initPageResult,\n params,\n searchParams,\n defaultAdminRole,\n}: AdminViewServerProps & { defaultAdminRole: string }) {\n const { locale, permissions, req } = initPageResult\n const {\n i18n,\n payload: { config },\n payload,\n user,\n } = req\n\n const {\n admin: { components: { afterLogin, beforeLogin, graphics } = {}, user: userSlug },\n routes: { admin },\n } = config\n\n const adminCount = await req.payload.count({\n collection: userSlug,\n where: {\n role: {\n equals: defaultAdminRole ?? 'admin',\n },\n },\n })\n\n // Filter out the first component from afterLogin array or set to undefined if not more than 1\n const filteredAfterLogin =\n Array.isArray(afterLogin) && afterLogin.length > 1 ? afterLogin.slice(1) : undefined\n\n if (adminCount.totalDocs === 0) {\n redirect(`${admin}/create-first-admin`)\n }\n\n return (\n <Gutter className=\"mt-40\">\n {RenderServerComponent({\n Component: graphics?.Logo,\n Fallback: () => <Logo />,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user: user ?? undefined,\n } satisfies ServerProps,\n })}\n {RenderServerComponent({\n Component: beforeLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user: user ?? undefined,\n } satisfies ServerProps,\n })}\n <div className=\"flex flex-col items-center justify-center\">\n <SignIn admin={true} />\n </div>\n {RenderServerComponent({\n Component: filteredAfterLogin,\n importMap: payload.importMap,\n serverProps: {\n i18n,\n locale,\n params,\n payload,\n permissions,\n searchParams,\n user: user ?? undefined,\n } satisfies ServerProps,\n })}\n </Gutter>\n )\n}\n"],"names":["React","RenderServerComponent","redirect","Gutter","SignIn","Logo","LoginView","initPageResult","params","searchParams","defaultAdminRole","locale","permissions","req","i18n","payload","config","user","admin","components","afterLogin","beforeLogin","graphics","userSlug","routes","adminCount","count","collection","where","role","equals","filteredAfterLogin","Array","isArray","length","slice","undefined","totalDocs","className","Component","Fallback","importMap","serverProps","div"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,qBAAqB,QAAQ,gDAA+C;AACrF,SAASC,QAAQ,QAAQ,kBAAiB;AAC1C,SAASC,MAAM,QAAQ,iBAAgB;AACvC,OAAOC,YAAY,2BAA0B;AAC7C,OAAOC,UAAU,wBAAuB;AAExC,eAAe,eAAeC,UAAU,EACtCC,cAAc,EACdC,MAAM,EACNC,YAAY,EACZC,gBAAgB,EACoC;IACpD,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAEC,GAAG,EAAE,GAAGN;IACrC,MAAM,EACJO,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACnBD,OAAO,EACPE,IAAI,EACL,GAAGJ;IAEJ,MAAM,EACJK,OAAO,EAAEC,YAAY,EAAEC,UAAU,EAAEC,WAAW,EAAEC,QAAQ,EAAE,GAAG,CAAC,CAAC,EAAEL,MAAMM,QAAQ,EAAE,EACjFC,QAAQ,EAAEN,KAAK,EAAE,EAClB,GAAGF;IAEJ,MAAMS,aAAa,MAAMZ,IAAIE,OAAO,CAACW,KAAK,CAAC;QACzCC,YAAYJ;QACZK,OAAO;YACLC,MAAM;gBACJC,QAAQpB,oBAAoB;YAC9B;QACF;IACF;IAEA,8FAA8F;IAC9F,MAAMqB,qBACJC,MAAMC,OAAO,CAACb,eAAeA,WAAWc,MAAM,GAAG,IAAId,WAAWe,KAAK,CAAC,KAAKC;IAE7E,IAAIX,WAAWY,SAAS,KAAK,GAAG;QAC9BnC,SAAS,GAAGgB,MAAM,mBAAmB,CAAC;IACxC;IAEA,qBACE,MAACf;QAAOmC,WAAU;;YACfrC,sBAAsB;gBACrBsC,WAAWjB,UAAUjB;gBACrBmC,UAAU,kBAAM,KAACnC;gBACjBoC,WAAW1B,QAAQ0B,SAAS;gBAC5BC,aAAa;oBACX5B;oBACAH;oBACAH;oBACAO;oBACAH;oBACAH;oBACAQ,MAAMA,QAAQmB;gBAChB;YACF;YACCnC,sBAAsB;gBACrBsC,WAAWlB;gBACXoB,WAAW1B,QAAQ0B,SAAS;gBAC5BC,aAAa;oBACX5B;oBACAH;oBACAH;oBACAO;oBACAH;oBACAH;oBACAQ,MAAMA,QAAQmB;gBAChB;YACF;0BACA,KAACO;gBAAIL,WAAU;0BACb,cAAA,KAAClC;oBAAOc,OAAO;;;YAEhBjB,sBAAsB;gBACrBsC,WAAWR;gBACXU,WAAW1B,QAAQ0B,SAAS;gBAC5BC,aAAa;oBACX5B;oBACAH;oBACAH;oBACAO;oBACAH;oBACAH;oBACAQ,MAAMA,QAAQmB;gBAChB;YACF;;;AAGN"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/plugin/types.ts"],"sourcesContent":["import type { UnionToIntersection, betterAuth } from 'better-auth'\nimport type {\n BetterAuthOptions,\n BetterAuthPlugin,\n InferAPI,\n InferPluginTypes,\n} from 'better-auth/types'\nimport type { BasePayload, CollectionConfig, Config, Endpoint, PayloadRequest } from 'payload'\n\n/**\n * BetterAuth options with the following caveats:\n * - The `database` option is removed as it is configured internally\n * - The `user` `modelName` and `fields` is removed as it is configured internally\n * - The `account` `modelName` and `fields` is removed as it is configured internally\n * - The `session` `modelName` and `fields` is removed as it is configured internally\n * - The `verification` `modelName` and `fields` is removed as it is configured internally\n *\n * @see https://www.better-auth.com/docs/reference/options\n */\nexport interface PayloadBetterAuthOptions\n extends Omit<\n BetterAuthOptions,\n 'database' | 'user' | 'account' | 'verification' | 'session' | 'advanced'\n > {\n user?: Omit<NonNullable<BetterAuthOptions['user']>, 'modelName' | 'fields'> | undefined\n account?: Omit<NonNullable<BetterAuthOptions['account']>, 'modelName' | 'fields'> | undefined\n session?: Omit<NonNullable<BetterAuthOptions['session']>, 'modelName' | 'fields'> | undefined\n verification?:\n | Omit<NonNullable<BetterAuthOptions['verification']>, 'modelName' | 'fields'>\n | undefined\n advanced?: Omit<NonNullable<BetterAuthOptions['advanced']>, 'generateId'> | undefined\n}\n\nexport interface SanitizedBetterAuthOptions extends Omit<BetterAuthOptions, 'database'> {}\n\nexport interface PayloadBetterAuthPluginOptions {\n /**\n * Disable the plugin\n * @default false\n */\n disabled?: boolean\n /**\n * Enable debug logs\n * @default false\n */\n enableDebugLogs?: boolean\n /**\n * Log the tables that are needed for better-auth on init\n * @default false\n */\n logTables?: boolean\n /**\n * Hide the plugin collections from the payload admin UI\n * @default false\n */\n hidePluginCollections?: boolean\n /**\n * Configure the Users collections:\n */\n users?: {\n /**\n * Will set the `modelName` for the `user` table in better-auth\n *\n * and the `slug` for the `users` collection in payload\n *\n * @default 'users'\n */\n slug?: string | undefined\n /**\n * Define better-auth admin plugin access control\n *\n * This will also set the role which gives the user access to the payload admin UI\n * @see https://www.better-auth.com/docs/plugins/admin#access-control\n *\n * @default [\"admin\"]\n */\n adminRoles?: string[]\n /**\n * Define roles for the users collection\n *\n * This should match the roles in the better-auth admin plugin if you are using it\n * @see https://www.better-auth.com/docs/plugins/admin#access-control\n */\n roles?: string[]\n /**\n * Hide the `users` collection from the payload admin UI\n */\n hidden?: boolean | undefined\n /**\n * Define which fields users can update themselves\n *\n * Password field is automatically included and doesn't need to be specified here\n *\n * @example ['name', 'dateOfBirth', 'phoneNumber']\n * @default ['name']\n */\n allowedFields?: string[] | undefined\n /**\n * Function to override the collection configuration\n *\n * This allows modifying the collection config after it has been built\n * Example use cases include adding saveToJwt to specific fields or\n * modifying field descriptions\n *\n * @param options Object containing the collection config and potentially additional parameters\n * @returns Modified collection config\n */\n collectionOverrides?: (options: { collection: CollectionConfig }) => CollectionConfig\n /**\n * This will block the first on sign up verification email from better-auth.\n * If you are using Payload's userCollection.verify option, you will want to set this to true.\n * Function that will be blocked: options.emailVerificationsendVerificationEmail\n * @default false\n */\n blockFirstBetterAuthVerificationEmail?: boolean\n }\n /**\n * Configure the Accounts collections:\n */\n accounts?: {\n /**\n * Will set the `modelName` for the `account` table in better-auth\n *\n * and the `slug` for the `accounts` collection in payload\n *\n * @default 'accounts'\n */\n slug?: string | undefined\n /**\n * Hide the `accounts` collection from the payload admin UI\n */\n hidden?: boolean | undefined\n /**\n * Function to override the collection configuration\n *\n * This allows modifying the collection config after it has been built\n *\n * @param options Object containing the collection config and potentially additional parameters\n * @returns Modified collection config\n */\n collectionOverrides?: (options: { collection: CollectionConfig }) => CollectionConfig\n }\n /**\n * Configure the Sessions collections:\n */\n sessions?: {\n /**\n * Will set the `modelName` for the `session` table in better-auth\n *\n * and the `slug` for the `sessions` collection in payload\n *\n * @default 'sessions'\n */\n slug?: string | undefined\n /**\n * Hide the `sessions` collection from the payload admin UI\n */\n hidden?: boolean | undefined\n /**\n * Function to override the collection configuration\n *\n * This allows modifying the collection config after it has been built\n *\n * @param options Object containing the collection config and potentially additional parameters\n * @returns Modified collection config\n */\n collectionOverrides?: (options: { collection: CollectionConfig }) => CollectionConfig\n }\n /**\n * Configure the Verifications collections:\n */\n verifications?: {\n /**\n * Will set the `modelName` for the `verification` table in better-auth\n *\n * and the `slug` for the `verifications` collection in payload\n *\n * @default 'verifications'\n */\n slug?: string | undefined\n /**\n * Hide the `verifications` collection from the payload admin UI\n */\n hidden?: boolean | undefined\n }\n /**\n * BetterAuth options with the following caveats:\n * - The `database` option is removed as it is configured internally\n * - The `user` `modelName` and `fields` is removed as it is configured internally\n * - The `account` `modelName` and `fields` is removed as it is configured internally\n * - The `session` `modelName` and `fields` is removed as it is configured internally\n * - The `verification` `modelName` and `fields` is removed as it is configured internally\n *\n * @see https://www.better-auth.com/docs/reference/options\n */\n betterAuthOptions?: PayloadBetterAuthOptions\n}\n\nexport interface PayloadBetterAuthPlugin {\n (config: Config): Config\n pluginOptions: PayloadBetterAuthPluginOptions\n}\n\nexport interface PayloadRequestWithBetterAuth<TPlugins extends BetterAuthPlugin[] = []>\n extends PayloadRequest {\n payload: BasePayload & {\n betterAuth: BetterAuthReturn<TPlugins>\n }\n}\n\nexport type CollectionHookWithBetterAuth<T extends (args: any) => any> = T extends (\n args: infer A,\n) => infer R\n ? (args: Omit<A, 'req'> & { req: PayloadRequestWithBetterAuth }) => R\n : never\n\nexport type EndpointWithBetterAuth = Omit<Endpoint, 'handler'> & {\n handler: (req: PayloadRequestWithBetterAuth) => Promise<Response> | Response\n}\n\nexport type ExtractEndpoints<T> = T extends BetterAuthPlugin\n ? T extends { endpoints?: infer E }\n ? E\n : {}\n : {}\n\nexport type TPlugins<TPlugins extends BetterAuthPlugin[] = BetterAuthPlugin[]> = TPlugins\nexport type PluginInferTypes<T extends TPlugins> = {\n [K in keyof InferPluginTypes<{ plugins: T }>]: InferPluginTypes<{ plugins: T }>[K]\n}\n\nexport type BetterAuthReturn<T extends TPlugins> = Omit<ReturnType<typeof betterAuth>, '$Infer'> & {\n api: T extends (infer P)[] ? InferAPI<UnionToIntersection<ExtractEndpoints<P>>> : {}\n $Infer: ReturnType<typeof betterAuth>['$Infer'] & PluginInferTypes<T>\n}\n\nexport type BetterAuthFunctionOptions<P extends TPlugins> = Omit<\n BetterAuthOptions,\n 'database' | 'plugins'\n> & {\n enableDebugLogs?: boolean\n plugins: P\n}\n"],"names":[],"mappings":"AA4OA,WAMC"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"sourcesContent":["export * from './adapter/types'\nexport * from './plugin/types'\n"],"names":[],"mappings":"AAAA,cAAc,kBAAiB;AAC/B,cAAc,iBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export const clerk = \"clerk\";\n"],"names":["clerk"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,QAAQ"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// These re-exports will be used by consumers of the library\nexport * from \"payload-auth/better-auth\";\nexport * from \"payload-auth/clerk\";\nexport * from \"payload-auth/kinde\";\nexport * from \"payload-auth/authjs\";\n"],"names":[],"mappings":"AAAA,4DAA4D;AAC5D,cAAc,2BAA2B;AACzC,cAAc,qBAAqB;AACnC,cAAc,qBAAqB;AACnC,cAAc,sBAAsB"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export const kinde = \"kinde\";\n"],"names":["kinde"],"mappings":"AAAA,OAAO,MAAMA,QAAQ,QAAQ"}