@revealui/auth 0.0.1-pre.0

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 (413) hide show
  1. package/LICENSE +202 -0
  2. package/dist/better-auth/adapter/__tests__/transform.test.js +213 -0
  3. package/dist/better-auth/adapter/__tests__/transform.test.js.map +1 -0
  4. package/dist/better-auth/adapter/generate-schema/biome.d.js +2 -0
  5. package/dist/better-auth/adapter/generate-schema/biome.d.js.map +1 -0
  6. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +5 -0
  7. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +482 -0
  8. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js.map +1 -0
  9. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +1 -0
  10. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +42 -0
  11. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js.map +1 -0
  12. package/dist/better-auth/adapter/generate-schema/index.d.ts +4 -0
  13. package/dist/better-auth/adapter/generate-schema/index.js +19 -0
  14. package/dist/better-auth/adapter/generate-schema/index.js.map +1 -0
  15. package/dist/better-auth/adapter/generate-schema/utils.d.ts +2 -0
  16. package/dist/better-auth/adapter/generate-schema/utils.js +20 -0
  17. package/dist/better-auth/adapter/generate-schema/utils.js.map +1 -0
  18. package/dist/better-auth/adapter/index.d.ts +15 -0
  19. package/dist/better-auth/adapter/index.js +731 -0
  20. package/dist/better-auth/adapter/index.js.map +1 -0
  21. package/dist/better-auth/adapter/tests/adapter.test.js +174 -0
  22. package/dist/better-auth/adapter/tests/adapter.test.js.map +1 -0
  23. package/dist/better-auth/adapter/tests/base-collections-tests.js +575 -0
  24. package/dist/better-auth/adapter/tests/base-collections-tests.js.map +1 -0
  25. package/dist/better-auth/adapter/tests/dev/index.js +117 -0
  26. package/dist/better-auth/adapter/tests/dev/index.js.map +1 -0
  27. package/dist/better-auth/adapter/tests/dev/migrate.js +26 -0
  28. package/dist/better-auth/adapter/tests/dev/migrate.js.map +1 -0
  29. package/dist/better-auth/adapter/tests/dev/migrations/20250423_232936_init.js +218 -0
  30. package/dist/better-auth/adapter/tests/dev/migrations/20250423_232936_init.js.map +1 -0
  31. package/dist/better-auth/adapter/tests/dev/schema.js +160 -0
  32. package/dist/better-auth/adapter/tests/dev/schema.js.map +1 -0
  33. package/dist/better-auth/adapter/tests/plugins-tests.js +2 -0
  34. package/dist/better-auth/adapter/tests/plugins-tests.js.map +1 -0
  35. package/dist/better-auth/adapter/transform/index.d.ts +27 -0
  36. package/dist/better-auth/adapter/transform/index.js +664 -0
  37. package/dist/better-auth/adapter/transform/index.js.map +1 -0
  38. package/dist/better-auth/adapter/types.d.ts +10 -0
  39. package/dist/better-auth/adapter/types.js +3 -0
  40. package/dist/better-auth/adapter/types.js.map +1 -0
  41. package/dist/better-auth/generated-types.d.ts +285 -0
  42. package/dist/better-auth/index.d.ts +3 -0
  43. package/dist/better-auth/index.js +5 -0
  44. package/dist/better-auth/index.js.map +1 -0
  45. package/dist/better-auth/plugin/__tests__/plugin.test.js +162 -0
  46. package/dist/better-auth/plugin/__tests__/plugin.test.js.map +1 -0
  47. package/dist/better-auth/plugin/constants.d.ts +220 -0
  48. package/dist/better-auth/plugin/constants.js +249 -0
  49. package/dist/better-auth/plugin/constants.js.map +1 -0
  50. package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts +12 -0
  51. package/dist/better-auth/plugin/helpers/check-plugin-exists.js +14 -0
  52. package/dist/better-auth/plugin/helpers/check-plugin-exists.js.map +1 -0
  53. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +29 -0
  54. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +46 -0
  55. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js.map +1 -0
  56. package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +7 -0
  57. package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
  58. package/dist/better-auth/plugin/helpers/get-admin-access.js.map +1 -0
  59. package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +5 -0
  60. package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
  61. package/dist/better-auth/plugin/helpers/get-all-roles.js.map +1 -0
  62. package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts +18 -0
  63. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +70 -0
  64. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js.map +1 -0
  65. package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts +5 -0
  66. package/dist/better-auth/plugin/helpers/get-collection-slug.js +20 -0
  67. package/dist/better-auth/plugin/helpers/get-collection-slug.js.map +1 -0
  68. package/dist/better-auth/plugin/helpers/get-collection.d.ts +15 -0
  69. package/dist/better-auth/plugin/helpers/get-collection.js +29 -0
  70. package/dist/better-auth/plugin/helpers/get-collection.js.map +1 -0
  71. package/dist/better-auth/plugin/helpers/get-ip.d.ts +2 -0
  72. package/dist/better-auth/plugin/helpers/get-ip.js +31 -0
  73. package/dist/better-auth/plugin/helpers/get-ip.js.map +1 -0
  74. package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts +2 -0
  75. package/dist/better-auth/plugin/helpers/get-signed-cookie.js +65 -0
  76. package/dist/better-auth/plugin/helpers/get-signed-cookie.js.map +1 -0
  77. package/dist/better-auth/plugin/helpers/index.d.ts +1 -0
  78. package/dist/better-auth/plugin/helpers/index.js +3 -0
  79. package/dist/better-auth/plugin/helpers/index.js.map +1 -0
  80. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +59 -0
  81. package/dist/better-auth/plugin/helpers/prepare-session-data.js +49 -0
  82. package/dist/better-auth/plugin/helpers/prepare-session-data.js.map +1 -0
  83. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts +20 -0
  84. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js +67 -0
  85. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js.map +1 -0
  86. package/dist/better-auth/plugin/index.d.ts +11 -0
  87. package/dist/better-auth/plugin/index.js +125 -0
  88. package/dist/better-auth/plugin/index.js.map +1 -0
  89. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts +12 -0
  90. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js +87 -0
  91. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js.map +1 -0
  92. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +3 -0
  93. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +60 -0
  94. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js.map +1 -0
  95. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +3 -0
  96. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +154 -0
  97. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js.map +1 -0
  98. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +5 -0
  99. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
  100. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js.map +1 -0
  101. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +2 -0
  102. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
  103. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js.map +1 -0
  104. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +6 -0
  105. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +119 -0
  106. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js.map +1 -0
  107. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +3 -0
  108. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +177 -0
  109. package/dist/better-auth/plugin/lib/build-collections/api-keys.js.map +1 -0
  110. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts +3 -0
  111. package/dist/better-auth/plugin/lib/build-collections/device-code.js +50 -0
  112. package/dist/better-auth/plugin/lib/build-collections/device-code.js.map +1 -0
  113. package/dist/better-auth/plugin/lib/build-collections/index.d.ts +10 -0
  114. package/dist/better-auth/plugin/lib/build-collections/index.js +73 -0
  115. package/dist/better-auth/plugin/lib/build-collections/index.js.map +1 -0
  116. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +3 -0
  117. package/dist/better-auth/plugin/lib/build-collections/invitations.js +94 -0
  118. package/dist/better-auth/plugin/lib/build-collections/invitations.js.map +1 -0
  119. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +3 -0
  120. package/dist/better-auth/plugin/lib/build-collections/jwks.js +59 -0
  121. package/dist/better-auth/plugin/lib/build-collections/jwks.js.map +1 -0
  122. package/dist/better-auth/plugin/lib/build-collections/members.d.ts +3 -0
  123. package/dist/better-auth/plugin/lib/build-collections/members.js +73 -0
  124. package/dist/better-auth/plugin/lib/build-collections/members.js.map +1 -0
  125. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +3 -0
  126. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +107 -0
  127. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js.map +1 -0
  128. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +3 -0
  129. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +118 -0
  130. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js.map +1 -0
  131. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +3 -0
  132. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +89 -0
  133. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js.map +1 -0
  134. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +3 -0
  135. package/dist/better-auth/plugin/lib/build-collections/organizations.js +70 -0
  136. package/dist/better-auth/plugin/lib/build-collections/organizations.js.map +1 -0
  137. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +3 -0
  138. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +115 -0
  139. package/dist/better-auth/plugin/lib/build-collections/passkeys.js.map +1 -0
  140. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +3 -0
  141. package/dist/better-auth/plugin/lib/build-collections/sessions.js +170 -0
  142. package/dist/better-auth/plugin/lib/build-collections/sessions.js.map +1 -0
  143. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +3 -0
  144. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +81 -0
  145. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js.map +1 -0
  146. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts +3 -0
  147. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +111 -0
  148. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js.map +1 -0
  149. package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts +3 -0
  150. package/dist/better-auth/plugin/lib/build-collections/team-members.js +57 -0
  151. package/dist/better-auth/plugin/lib/build-collections/team-members.js.map +1 -0
  152. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +3 -0
  153. package/dist/better-auth/plugin/lib/build-collections/teams.js +76 -0
  154. package/dist/better-auth/plugin/lib/build-collections/teams.js.map +1 -0
  155. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +3 -0
  156. package/dist/better-auth/plugin/lib/build-collections/two-factors.js +67 -0
  157. package/dist/better-auth/plugin/lib/build-collections/two-factors.js.map +1 -0
  158. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +7 -0
  159. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +53 -0
  160. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js.map +1 -0
  161. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +11 -0
  162. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +75 -0
  163. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js.map +1 -0
  164. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +4 -0
  165. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +6 -0
  166. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js.map +1 -0
  167. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +2 -0
  168. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +115 -0
  169. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js.map +1 -0
  170. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +3 -0
  171. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +64 -0
  172. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js.map +1 -0
  173. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +3 -0
  174. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +80 -0
  175. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js.map +1 -0
  176. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +6 -0
  177. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +79 -0
  178. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js.map +1 -0
  179. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +2 -0
  180. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +82 -0
  181. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js.map +1 -0
  182. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +2 -0
  183. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +54 -0
  184. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js.map +1 -0
  185. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +6 -0
  186. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +15 -0
  187. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js.map +1 -0
  188. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +6 -0
  189. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +8 -0
  190. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js.map +1 -0
  191. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +2 -0
  192. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +17 -0
  193. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js.map +1 -0
  194. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +2 -0
  195. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +91 -0
  196. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js.map +1 -0
  197. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +3 -0
  198. package/dist/better-auth/plugin/lib/build-collections/users/index.js +341 -0
  199. package/dist/better-auth/plugin/lib/build-collections/users/index.js.map +1 -0
  200. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts +15 -0
  201. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js +24 -0
  202. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js.map +1 -0
  203. package/dist/better-auth/plugin/lib/build-collections/utils/filter-duplicate-fields.d.ts +10 -0
  204. package/dist/better-auth/plugin/lib/build-collections/utils/filter-duplicate-fields.js +67 -0
  205. package/dist/better-auth/plugin/lib/build-collections/utils/filter-duplicate-fields.js.map +1 -0
  206. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts +9 -0
  207. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js +94 -0
  208. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js.map +1 -0
  209. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +7 -0
  210. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +35 -0
  211. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js.map +1 -0
  212. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +12 -0
  213. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +25 -0
  214. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js.map +1 -0
  215. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts +14 -0
  216. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +67 -0
  217. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js.map +1 -0
  218. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +20 -0
  219. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +98 -0
  220. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js.map +1 -0
  221. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +3 -0
  222. package/dist/better-auth/plugin/lib/build-collections/verifications.js +87 -0
  223. package/dist/better-auth/plugin/lib/build-collections/verifications.js.map +1 -0
  224. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +5 -0
  225. package/dist/better-auth/plugin/lib/get-payload-auth.js +9 -0
  226. package/dist/better-auth/plugin/lib/get-payload-auth.js.map +1 -0
  227. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +7 -0
  228. package/dist/better-auth/plugin/lib/init-better-auth.js +46 -0
  229. package/dist/better-auth/plugin/lib/init-better-auth.js.map +1 -0
  230. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +2 -0
  231. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +9 -0
  232. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js.map +1 -0
  233. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -0
  234. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +10 -0
  235. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js.map +1 -0
  236. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts +2 -0
  237. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js +8 -0
  238. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js.map +1 -0
  239. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +10 -0
  240. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +156 -0
  241. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js.map +1 -0
  242. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -0
  243. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +18 -0
  244. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js.map +1 -0
  245. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -0
  246. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +34 -0
  247. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js.map +1 -0
  248. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -0
  249. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +11 -0
  250. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js.map +1 -0
  251. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -0
  252. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +10 -0
  253. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js.map +1 -0
  254. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts +2 -0
  255. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js +11 -0
  256. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js.map +1 -0
  257. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts +7 -0
  258. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
  259. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js.map +1 -0
  260. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts +25 -0
  261. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
  262. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js.map +1 -0
  263. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +9 -0
  264. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +47 -0
  265. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js.map +1 -0
  266. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts +15 -0
  267. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +42 -0
  268. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js.map +1 -0
  269. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +9 -0
  270. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +63 -0
  271. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js.map +1 -0
  272. package/dist/better-auth/plugin/lib/set-login-methods.d.ts +4 -0
  273. package/dist/better-auth/plugin/lib/set-login-methods.js +14 -0
  274. package/dist/better-auth/plugin/lib/set-login-methods.js.map +1 -0
  275. package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +9 -0
  276. package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +143 -0
  277. package/dist/better-auth/plugin/payload/components/admin-buttons/index.js.map +1 -0
  278. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +10 -0
  279. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +219 -0
  280. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js.map +1 -0
  281. package/dist/better-auth/plugin/payload/components/logout-button.d.ts +4 -0
  282. package/dist/better-auth/plugin/payload/components/logout-button.js +24 -0
  283. package/dist/better-auth/plugin/payload/components/logout-button.js.map +1 -0
  284. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts +8 -0
  285. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +117 -0
  286. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js.map +1 -0
  287. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts +3 -0
  288. package/dist/better-auth/plugin/payload/components/passkeys/client.js +66 -0
  289. package/dist/better-auth/plugin/payload/components/passkeys/client.js.map +1 -0
  290. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts +4 -0
  291. package/dist/better-auth/plugin/payload/components/passkeys/index.js +52 -0
  292. package/dist/better-auth/plugin/payload/components/passkeys/index.js.map +1 -0
  293. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts +8 -0
  294. package/dist/better-auth/plugin/payload/components/passkeys/list.js +57 -0
  295. package/dist/better-auth/plugin/payload/components/passkeys/list.js.map +1 -0
  296. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts +22 -0
  297. package/dist/better-auth/plugin/payload/components/passkeys/types.js +3 -0
  298. package/dist/better-auth/plugin/payload/components/passkeys/types.js.map +1 -0
  299. package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +6 -0
  300. package/dist/better-auth/plugin/payload/components/rsc-redirect.js +7 -0
  301. package/dist/better-auth/plugin/payload/components/rsc-redirect.js.map +1 -0
  302. package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.d.ts +15 -0
  303. package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.js +157 -0
  304. package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.js.map +1 -0
  305. package/dist/better-auth/plugin/payload/components/token-field.d.ts +4 -0
  306. package/dist/better-auth/plugin/payload/components/token-field.js +31 -0
  307. package/dist/better-auth/plugin/payload/components/token-field.js.map +1 -0
  308. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.d.ts +8 -0
  309. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.js +300 -0
  310. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.js.map +1 -0
  311. package/dist/better-auth/plugin/payload/exports/client.d.ts +6 -0
  312. package/dist/better-auth/plugin/payload/exports/client.js +8 -0
  313. package/dist/better-auth/plugin/payload/exports/client.js.map +1 -0
  314. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +8 -0
  315. package/dist/better-auth/plugin/payload/exports/rsc.js +10 -0
  316. package/dist/better-auth/plugin/payload/exports/rsc.js.map +1 -0
  317. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +2 -0
  318. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +9 -0
  319. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js.map +1 -0
  320. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +1 -0
  321. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +22 -0
  322. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js.map +1 -0
  323. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +19 -0
  324. package/dist/better-auth/plugin/payload/views/admin-login/client.js +226 -0
  325. package/dist/better-auth/plugin/payload/views/admin-login/client.js.map +1 -0
  326. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +10 -0
  327. package/dist/better-auth/plugin/payload/views/admin-login/index.js +150 -0
  328. package/dist/better-auth/plugin/payload/views/admin-login/index.js.map +1 -0
  329. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +16 -0
  330. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +299 -0
  331. package/dist/better-auth/plugin/payload/views/admin-signup/client.js.map +1 -0
  332. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +9 -0
  333. package/dist/better-auth/plugin/payload/views/admin-signup/index.js +104 -0
  334. package/dist/better-auth/plugin/payload/views/admin-signup/index.js.map +1 -0
  335. package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +7 -0
  336. package/dist/better-auth/plugin/payload/views/forgot-password/client.js +119 -0
  337. package/dist/better-auth/plugin/payload/views/forgot-password/client.js.map +1 -0
  338. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +8 -0
  339. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +78 -0
  340. package/dist/better-auth/plugin/payload/views/forgot-password/index.js.map +1 -0
  341. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +10 -0
  342. package/dist/better-auth/plugin/payload/views/reset-password/client.js +144 -0
  343. package/dist/better-auth/plugin/payload/views/reset-password/client.js.map +1 -0
  344. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +8 -0
  345. package/dist/better-auth/plugin/payload/views/reset-password/index.js +96 -0
  346. package/dist/better-auth/plugin/payload/views/reset-password/index.js.map +1 -0
  347. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.d.ts +6 -0
  348. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.js +96 -0
  349. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.js.map +1 -0
  350. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +9 -0
  351. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +56 -0
  352. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js.map +1 -0
  353. package/dist/better-auth/plugin/types.d.ts +429 -0
  354. package/dist/better-auth/plugin/types.js +3 -0
  355. package/dist/better-auth/plugin/types.js.map +1 -0
  356. package/dist/better-auth/plugin/utils/set.d.ts +39 -0
  357. package/dist/better-auth/plugin/utils/set.js +103 -0
  358. package/dist/better-auth/plugin/utils/set.js.map +1 -0
  359. package/dist/better-auth/scripts/generate-types.d.ts +1 -0
  360. package/dist/better-auth/scripts/generate-types.js +234 -0
  361. package/dist/better-auth/scripts/generate-types.js.map +1 -0
  362. package/dist/better-auth/types.d.ts +2 -0
  363. package/dist/better-auth/types.js +4 -0
  364. package/dist/better-auth/types.js.map +1 -0
  365. package/dist/index.d.ts +1 -0
  366. package/dist/index.js +4 -0
  367. package/dist/index.js.map +1 -0
  368. package/dist/shared/components/icons.d.ts +7 -0
  369. package/dist/shared/components/icons.js +442 -0
  370. package/dist/shared/components/icons.js.map +1 -0
  371. package/dist/shared/components/logo.d.ts +3 -0
  372. package/dist/shared/components/logo.js +24 -0
  373. package/dist/shared/components/logo.js.map +1 -0
  374. package/dist/shared/form/components/submit.d.ts +7 -0
  375. package/dist/shared/form/components/submit.js +16 -0
  376. package/dist/shared/form/components/submit.js.map +1 -0
  377. package/dist/shared/form/fields/text-field.d.ts +8 -0
  378. package/dist/shared/form/fields/text-field.js +37 -0
  379. package/dist/shared/form/fields/text-field.js.map +1 -0
  380. package/dist/shared/form/index.d.ts +4 -0
  381. package/dist/shared/form/index.js +8 -0
  382. package/dist/shared/form/index.js.map +1 -0
  383. package/dist/shared/form/ui/header/index.d.ts +8 -0
  384. package/dist/shared/form/ui/header/index.js +24 -0
  385. package/dist/shared/form/ui/header/index.js.map +1 -0
  386. package/dist/shared/form/ui/index.d.ts +31 -0
  387. package/dist/shared/form/ui/index.js +57 -0
  388. package/dist/shared/form/ui/index.js.map +1 -0
  389. package/dist/shared/form/validation.d.ts +51 -0
  390. package/dist/shared/form/validation.js +127 -0
  391. package/dist/shared/form/validation.js.map +1 -0
  392. package/dist/shared/index.d.ts +2 -0
  393. package/dist/shared/index.js +4 -0
  394. package/dist/shared/index.js.map +1 -0
  395. package/dist/shared/payload/fields/field-copy-button/index.d.ts +3 -0
  396. package/dist/shared/payload/fields/field-copy-button/index.js +38 -0
  397. package/dist/shared/payload/fields/field-copy-button/index.js.map +1 -0
  398. package/dist/shared/payload/fields/generate-uuid-button/index.d.ts +3 -0
  399. package/dist/shared/payload/fields/generate-uuid-button/index.js +26 -0
  400. package/dist/shared/payload/fields/generate-uuid-button/index.js.map +1 -0
  401. package/dist/shared/payload/fields/index.d.ts +2 -0
  402. package/dist/shared/payload/fields/index.js +4 -0
  403. package/dist/shared/payload/fields/index.js.map +1 -0
  404. package/dist/shared/utils/regex.d.ts +2 -0
  405. package/dist/shared/utils/regex.js +4 -0
  406. package/dist/shared/utils/regex.js.map +1 -0
  407. package/dist/shared/utils/try-catch.d.ts +11 -0
  408. package/dist/shared/utils/try-catch.js +17 -0
  409. package/dist/shared/utils/try-catch.js.map +1 -0
  410. package/dist/shared/utils/value-or-default.d.ts +9 -0
  411. package/dist/shared/utils/value-or-default.js +12 -0
  412. package/dist/shared/utils/value-or-default.js.map +1 -0
  413. package/package.json +122 -0
@@ -0,0 +1,125 @@
1
+ import { getPayload } from "payload";
2
+ import { payloadAdapter } from "../adapter/index";
3
+ import { getDefaultBetterAuthSchema } from "./helpers/get-better-auth-schema";
4
+ import { syncResolvedSchemaWithCollectionMap } from "./helpers/sync-resolved-schema-with-collection-map";
5
+ import { applyDisabledDefaultAuthConfig } from "./lib/apply-disabled-default-auth-config";
6
+ import { buildCollections } from "./lib/build-collections/index";
7
+ import { initBetterAuth } from "./lib/init-better-auth";
8
+ import { sanitizeBetterAuthOptions } from "./lib/sanitize-better-auth-options/index";
9
+ import { setLoginMethods } from "./lib/set-login-methods";
10
+ import { set } from "./utils/set";
11
+ export * from "./helpers/index";
12
+ export { getPayloadAuth } from "./lib/get-payload-auth";
13
+ export { sanitizeBetterAuthOptions } from "./lib/sanitize-better-auth-options/index";
14
+ export * from "./types";
15
+ function buildBetterAuthData({ payloadConfig, pluginOptions }) {
16
+ pluginOptions = setLoginMethods({
17
+ pluginOptions
18
+ });
19
+ const defaultBetterAuthSchemas = getDefaultBetterAuthSchema(pluginOptions);
20
+ let collectionMap = buildCollections({
21
+ resolvedSchemas: defaultBetterAuthSchemas,
22
+ incomingCollections: payloadConfig.collections ?? [],
23
+ pluginOptions
24
+ });
25
+ const resolvedBetterAuthSchemas = syncResolvedSchemaWithCollectionMap(defaultBetterAuthSchemas, collectionMap);
26
+ // We need to build the collections a second time with the resolved schemas
27
+ // due to hooks, endpoints, useAsTitle, etc should rely on resolvedBetterAuthSchemas to get slugs
28
+ // if they are referencing to other collections then it self.
29
+ collectionMap = buildCollections({
30
+ resolvedSchemas: resolvedBetterAuthSchemas,
31
+ incomingCollections: payloadConfig.collections ?? [],
32
+ pluginOptions
33
+ });
34
+ const sanitizedBetterAuthOptions = sanitizeBetterAuthOptions({
35
+ config: payloadConfig,
36
+ pluginOptions,
37
+ resolvedSchemas: resolvedBetterAuthSchemas
38
+ });
39
+ pluginOptions.betterAuthOptions = sanitizedBetterAuthOptions;
40
+ return {
41
+ pluginOptions,
42
+ collectionMap,
43
+ resolvedBetterAuthSchemas,
44
+ sanitizedBetterAuthOptions
45
+ };
46
+ }
47
+ export function betterAuthPlugin(pluginOptions) {
48
+ return (config)=>{
49
+ if (pluginOptions.disabled) {
50
+ return config;
51
+ }
52
+ config.custom = {
53
+ ...config.custom,
54
+ hasBetterAuthPlugin: true
55
+ };
56
+ const { collectionMap, resolvedBetterAuthSchemas, sanitizedBetterAuthOptions } = buildBetterAuthData({
57
+ payloadConfig: config,
58
+ pluginOptions
59
+ });
60
+ set(config, 'custom.betterAuth.config', sanitizedBetterAuthOptions);
61
+ // ---------------------- Finalize config -----------------
62
+ if (pluginOptions.disableDefaultPayloadAuth) {
63
+ applyDisabledDefaultAuthConfig({
64
+ config,
65
+ pluginOptions,
66
+ collectionMap,
67
+ resolvedBetterAuthSchemas
68
+ });
69
+ }
70
+ config.collections = config.collections ?? [];
71
+ config.collections = Object.values(collectionMap);
72
+ const incomingOnInit = config.onInit;
73
+ config.onInit = async (payload)=>{
74
+ try {
75
+ // Execute any existing onInit functions first
76
+ if (incomingOnInit) {
77
+ await incomingOnInit(payload);
78
+ }
79
+ // Initialize and set the betterAuth instance
80
+ const auth = initBetterAuth({
81
+ payload,
82
+ idType: payload.db.defaultIDType,
83
+ options: {
84
+ ...sanitizedBetterAuthOptions,
85
+ enableDebugLogs: pluginOptions.debug?.enableDebugLogs ?? false,
86
+ plugins: [
87
+ ...sanitizedBetterAuthOptions.plugins ?? []
88
+ ]
89
+ }
90
+ });
91
+ // Type-safe extension of payload with betterAuth
92
+ Object.defineProperty(payload, 'betterAuth', {
93
+ value: auth,
94
+ writable: false,
95
+ configurable: false
96
+ });
97
+ } catch (error) {
98
+ console.error('Failed to initialize BetterAuth:', error);
99
+ throw error;
100
+ }
101
+ };
102
+ return config;
103
+ };
104
+ }
105
+ export function withPayloadAuth({ payloadConfig }) {
106
+ const betterAuthConfig = payloadConfig.custom?.betterAuth?.config;
107
+ if (!betterAuthConfig) {
108
+ throw new Error('BetterAuth config not found. Not set payloadConfig.custom.betterAuth.config');
109
+ }
110
+ const optionsWithAdapter = {
111
+ ...betterAuthConfig,
112
+ database: payloadAdapter({
113
+ payloadClient: async ()=>await getPayload({
114
+ config: payloadConfig
115
+ }),
116
+ adapterConfig: {
117
+ enableDebugLogs: false,
118
+ idType: payloadConfig.db.defaultIDType
119
+ }
120
+ })
121
+ };
122
+ return optionsWithAdapter;
123
+ }
124
+
125
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/better-auth/plugin/index.ts"],"sourcesContent":["import type { BetterAuthOptions } from 'better-auth/types';\nimport { type Config, type SanitizedConfig, getPayload } from 'payload';\nimport { payloadAdapter } from '../adapter/index';\nimport { getDefaultBetterAuthSchema } from './helpers/get-better-auth-schema';\nimport { syncResolvedSchemaWithCollectionMap } from './helpers/sync-resolved-schema-with-collection-map';\nimport { applyDisabledDefaultAuthConfig } from './lib/apply-disabled-default-auth-config';\nimport { buildCollections } from './lib/build-collections/index';\nimport { initBetterAuth } from './lib/init-better-auth';\nimport { sanitizeBetterAuthOptions } from './lib/sanitize-better-auth-options/index';\nimport { setLoginMethods } from './lib/set-login-methods';\nimport type { BetterAuthPluginOptions } from './types';\nimport { set } from './utils/set';\n\nexport * from './helpers/index';\nexport { getPayloadAuth } from './lib/get-payload-auth';\nexport { sanitizeBetterAuthOptions } from './lib/sanitize-better-auth-options/index';\nexport * from './types';\n\nfunction buildBetterAuthData({\n payloadConfig,\n pluginOptions,\n}: {\n payloadConfig: SanitizedConfig;\n pluginOptions: BetterAuthPluginOptions;\n}) {\n pluginOptions = setLoginMethods({ pluginOptions });\n\n const defaultBetterAuthSchemas = getDefaultBetterAuthSchema(pluginOptions);\n\n let collectionMap = buildCollections({\n resolvedSchemas: defaultBetterAuthSchemas,\n incomingCollections: payloadConfig.collections ?? [],\n pluginOptions,\n });\n\n const resolvedBetterAuthSchemas = syncResolvedSchemaWithCollectionMap(\n defaultBetterAuthSchemas,\n collectionMap\n );\n\n // We need to build the collections a second time with the resolved schemas\n // due to hooks, endpoints, useAsTitle, etc should rely on resolvedBetterAuthSchemas to get slugs\n // if they are referencing to other collections then it self.\n collectionMap = buildCollections({\n resolvedSchemas: resolvedBetterAuthSchemas,\n incomingCollections: payloadConfig.collections ?? [],\n pluginOptions,\n });\n\n const sanitizedBetterAuthOptions = sanitizeBetterAuthOptions({\n config: payloadConfig,\n pluginOptions,\n resolvedSchemas: resolvedBetterAuthSchemas,\n });\n\n pluginOptions.betterAuthOptions = sanitizedBetterAuthOptions;\n\n return {\n pluginOptions,\n collectionMap,\n resolvedBetterAuthSchemas,\n sanitizedBetterAuthOptions,\n };\n}\n\nexport function betterAuthPlugin(pluginOptions: BetterAuthPluginOptions) {\n return (config: Config): Config => {\n if (pluginOptions.disabled) {\n return config;\n }\n\n config.custom = {\n ...config.custom,\n hasBetterAuthPlugin: true,\n };\n\n const { collectionMap, resolvedBetterAuthSchemas, sanitizedBetterAuthOptions } =\n buildBetterAuthData({\n payloadConfig: config as unknown as SanitizedConfig,\n pluginOptions,\n });\n\n set(config, 'custom.betterAuth.config', sanitizedBetterAuthOptions);\n\n // ---------------------- Finalize config -----------------\n if (pluginOptions.disableDefaultPayloadAuth) {\n applyDisabledDefaultAuthConfig({\n config,\n pluginOptions,\n collectionMap,\n resolvedBetterAuthSchemas,\n });\n }\n\n config.collections = config.collections ?? [];\n config.collections = Object.values(collectionMap);\n\n const incomingOnInit = config.onInit;\n\n config.onInit = async payload => {\n try {\n // Execute any existing onInit functions first\n if (incomingOnInit) {\n await incomingOnInit(payload);\n }\n\n // Initialize and set the betterAuth instance\n const auth = initBetterAuth<NonNullable<typeof sanitizedBetterAuthOptions.plugins>>({\n payload,\n idType: payload.db.defaultIDType,\n options: {\n ...sanitizedBetterAuthOptions,\n enableDebugLogs: pluginOptions.debug?.enableDebugLogs ?? false,\n plugins: [...(sanitizedBetterAuthOptions.plugins ?? [])],\n },\n });\n\n // Type-safe extension of payload with betterAuth\n Object.defineProperty(payload, 'betterAuth', {\n value: auth,\n writable: false,\n configurable: false,\n });\n } catch (error) {\n console.error('Failed to initialize BetterAuth:', error);\n throw error;\n }\n };\n return config;\n };\n}\n\nexport function withPayloadAuth({\n payloadConfig,\n}: {\n payloadConfig: SanitizedConfig;\n}): BetterAuthOptions {\n const betterAuthConfig = payloadConfig.custom?.betterAuth?.config as BetterAuthOptions;\n\n if (!betterAuthConfig) {\n throw new Error('BetterAuth config not found. Not set payloadConfig.custom.betterAuth.config');\n }\n\n const optionsWithAdapter: BetterAuthOptions = {\n ...betterAuthConfig,\n database: payloadAdapter({\n payloadClient: async () => await getPayload({ config: payloadConfig }),\n adapterConfig: {\n enableDebugLogs: false,\n idType: payloadConfig.db.defaultIDType,\n },\n }),\n };\n\n return optionsWithAdapter;\n}\n"],"names":["getPayload","payloadAdapter","getDefaultBetterAuthSchema","syncResolvedSchemaWithCollectionMap","applyDisabledDefaultAuthConfig","buildCollections","initBetterAuth","sanitizeBetterAuthOptions","setLoginMethods","set","getPayloadAuth","buildBetterAuthData","payloadConfig","pluginOptions","defaultBetterAuthSchemas","collectionMap","resolvedSchemas","incomingCollections","collections","resolvedBetterAuthSchemas","sanitizedBetterAuthOptions","config","betterAuthOptions","betterAuthPlugin","disabled","custom","hasBetterAuthPlugin","disableDefaultPayloadAuth","Object","values","incomingOnInit","onInit","payload","auth","idType","db","defaultIDType","options","enableDebugLogs","debug","plugins","defineProperty","value","writable","configurable","error","console","withPayloadAuth","betterAuthConfig","betterAuth","Error","optionsWithAdapter","database","payloadClient","adapterConfig"],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CollectionConfig, Config } from 'payload';
2
+ import type { BetterAuthPluginOptions, BetterAuthSchemas } from '../types';
3
+ /**
4
+ * Applies all admin-related overrides when `disableDefaultPayloadAuth` is `true`.
5
+ * Mutates the provided Payload config in-place.
6
+ */
7
+ export declare function applyDisabledDefaultAuthConfig({ config, pluginOptions, collectionMap, resolvedBetterAuthSchemas, }: {
8
+ config: Config;
9
+ pluginOptions: BetterAuthPluginOptions;
10
+ collectionMap: Record<string, CollectionConfig>;
11
+ resolvedBetterAuthSchemas: BetterAuthSchemas;
12
+ }): void;
@@ -0,0 +1,87 @@
1
+ import { adminRoutes, baModelKey, baseSlugs, supportedBAPluginIds } from "../constants";
2
+ import { checkPluginExists } from "../helpers/check-plugin-exists";
3
+ /**
4
+ * Applies all admin-related overrides when `disableDefaultPayloadAuth` is `true`.
5
+ * Mutates the provided Payload config in-place.
6
+ */ export function applyDisabledDefaultAuthConfig({ config, pluginOptions, collectionMap, resolvedBetterAuthSchemas }) {
7
+ config.admin = {
8
+ ...config.admin,
9
+ components: {
10
+ ...config.admin?.components,
11
+ afterLogin: [
12
+ {
13
+ path: 'payload-auth/better-auth/plugin/rsc#RSCRedirect',
14
+ serverProps: {
15
+ pluginOptions,
16
+ redirectTo: `${config.routes?.admin === undefined ? '/admin' : config.routes.admin.replace(/\/+$/, '')}${adminRoutes.adminLogin}`
17
+ }
18
+ },
19
+ ...config.admin?.components?.afterLogin ?? []
20
+ ],
21
+ logout: {
22
+ Button: {
23
+ path: 'payload-auth/better-auth/plugin/client#LogoutButton'
24
+ }
25
+ },
26
+ views: {
27
+ ...config.admin?.components?.views,
28
+ adminLogin: {
29
+ path: adminRoutes.adminLogin,
30
+ Component: {
31
+ path: 'payload-auth/better-auth/plugin/rsc#AdminLogin',
32
+ serverProps: {
33
+ pluginOptions,
34
+ adminInvitationsSlug: collectionMap[baseSlugs.adminInvitations]?.slug ?? 'admin-invitations'
35
+ }
36
+ }
37
+ },
38
+ adminSignup: {
39
+ path: adminRoutes.adminSignup,
40
+ Component: {
41
+ path: 'payload-auth/better-auth/plugin/rsc#AdminSignup',
42
+ serverProps: {
43
+ pluginOptions,
44
+ adminInvitationsSlug: collectionMap[baseSlugs.adminInvitations]?.slug ?? 'admin-invitations'
45
+ }
46
+ }
47
+ },
48
+ forgotPassword: {
49
+ path: adminRoutes.forgotPassword,
50
+ Component: {
51
+ path: 'payload-auth/better-auth/plugin/rsc#ForgotPassword',
52
+ serverProps: {
53
+ pluginOptions
54
+ }
55
+ }
56
+ },
57
+ resetPassword: {
58
+ path: adminRoutes.resetPassword,
59
+ Component: {
60
+ path: 'payload-auth/better-auth/plugin/rsc#ResetPassword',
61
+ serverProps: {
62
+ pluginOptions
63
+ }
64
+ }
65
+ },
66
+ ...checkPluginExists(pluginOptions.betterAuthOptions ?? {}, supportedBAPluginIds.twoFactor) && {
67
+ twoFactorVerify: {
68
+ path: adminRoutes.twoFactorVerify,
69
+ Component: {
70
+ path: 'payload-auth/better-auth/plugin/rsc#TwoFactorVerify',
71
+ serverProps: {
72
+ pluginOptions,
73
+ verificationsSlug: resolvedBetterAuthSchemas[baModelKey.verification].modelName
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ },
80
+ routes: {
81
+ ...config.admin?.routes,
82
+ login: adminRoutes.loginRedirect
83
+ }
84
+ };
85
+ }
86
+
87
+ //# sourceMappingURL=apply-disabled-default-auth-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/better-auth/plugin/lib/apply-disabled-default-auth-config.ts"],"sourcesContent":["import type { CollectionConfig, Config } from 'payload';\nimport { adminRoutes, baModelKey, baseSlugs, supportedBAPluginIds } from '../constants';\nimport { checkPluginExists } from '../helpers/check-plugin-exists';\nimport type { BetterAuthPluginOptions, BetterAuthSchemas } from '../types';\n\n/**\n * Applies all admin-related overrides when `disableDefaultPayloadAuth` is `true`.\n * Mutates the provided Payload config in-place.\n */\nexport function applyDisabledDefaultAuthConfig({\n config,\n pluginOptions,\n collectionMap,\n resolvedBetterAuthSchemas,\n}: {\n config: Config;\n pluginOptions: BetterAuthPluginOptions;\n collectionMap: Record<string, CollectionConfig>;\n resolvedBetterAuthSchemas: BetterAuthSchemas;\n}): void {\n config.admin = {\n ...config.admin,\n components: {\n ...config.admin?.components,\n afterLogin: [\n {\n path: 'payload-auth/better-auth/plugin/rsc#RSCRedirect',\n serverProps: {\n pluginOptions,\n redirectTo: `${config.routes?.admin === undefined ? '/admin' : config.routes.admin.replace(/\\/+$/, '')}${adminRoutes.adminLogin}`,\n },\n },\n ...(config.admin?.components?.afterLogin ?? []),\n ],\n logout: {\n Button: {\n path: 'payload-auth/better-auth/plugin/client#LogoutButton',\n },\n },\n views: {\n ...config.admin?.components?.views,\n adminLogin: {\n path: adminRoutes.adminLogin,\n Component: {\n path: 'payload-auth/better-auth/plugin/rsc#AdminLogin',\n serverProps: {\n pluginOptions,\n adminInvitationsSlug:\n collectionMap[baseSlugs.adminInvitations]?.slug ?? 'admin-invitations',\n },\n },\n },\n adminSignup: {\n path: adminRoutes.adminSignup,\n Component: {\n path: 'payload-auth/better-auth/plugin/rsc#AdminSignup',\n serverProps: {\n pluginOptions,\n adminInvitationsSlug:\n collectionMap[baseSlugs.adminInvitations]?.slug ?? 'admin-invitations',\n },\n },\n },\n forgotPassword: {\n path: adminRoutes.forgotPassword,\n Component: {\n path: 'payload-auth/better-auth/plugin/rsc#ForgotPassword',\n serverProps: {\n pluginOptions,\n },\n },\n },\n resetPassword: {\n path: adminRoutes.resetPassword,\n Component: {\n path: 'payload-auth/better-auth/plugin/rsc#ResetPassword',\n serverProps: {\n pluginOptions,\n },\n },\n },\n ...(checkPluginExists(\n pluginOptions.betterAuthOptions ?? {},\n supportedBAPluginIds.twoFactor\n ) && {\n twoFactorVerify: {\n path: adminRoutes.twoFactorVerify,\n Component: {\n path: 'payload-auth/better-auth/plugin/rsc#TwoFactorVerify',\n serverProps: {\n pluginOptions,\n verificationsSlug: resolvedBetterAuthSchemas[baModelKey.verification].modelName,\n },\n },\n },\n }),\n },\n },\n routes: {\n ...config.admin?.routes,\n login: adminRoutes.loginRedirect,\n },\n };\n}\n"],"names":["adminRoutes","baModelKey","baseSlugs","supportedBAPluginIds","checkPluginExists","applyDisabledDefaultAuthConfig","config","pluginOptions","collectionMap","resolvedBetterAuthSchemas","admin","components","afterLogin","path","serverProps","redirectTo","routes","undefined","replace","adminLogin","logout","Button","views","Component","adminInvitationsSlug","adminInvitations","slug","adminSignup","forgotPassword","resetPassword","betterAuthOptions","twoFactor","twoFactorVerify","verificationsSlug","verification","modelName","login","loginRedirect"],"mappings":"AACA,SAASA,WAAW,EAAEC,UAAU,EAAEC,SAAS,EAAEC,oBAAoB,QAAQ,eAAe;AACxF,SAASC,iBAAiB,QAAQ,iCAAiC;AAGnE;;;CAGC,GACD,OAAO,SAASC,+BAA+B,EAC7CC,MAAM,EACNC,aAAa,EACbC,aAAa,EACbC,yBAAyB,EAM1B;IACCH,OAAOI,KAAK,GAAG;QACb,GAAGJ,OAAOI,KAAK;QACfC,YAAY;YACV,GAAGL,OAAOI,KAAK,EAAEC,UAAU;YAC3BC,YAAY;gBACV;oBACEC,MAAM;oBACNC,aAAa;wBACXP;wBACAQ,YAAY,GAAGT,OAAOU,MAAM,EAAEN,UAAUO,YAAY,WAAWX,OAAOU,MAAM,CAACN,KAAK,CAACQ,OAAO,CAAC,QAAQ,MAAMlB,YAAYmB,UAAU,EAAE;oBACnI;gBACF;mBACIb,OAAOI,KAAK,EAAEC,YAAYC,cAAc,EAAE;aAC/C;YACDQ,QAAQ;gBACNC,QAAQ;oBACNR,MAAM;gBACR;YACF;YACAS,OAAO;gBACL,GAAGhB,OAAOI,KAAK,EAAEC,YAAYW,KAAK;gBAClCH,YAAY;oBACVN,MAAMb,YAAYmB,UAAU;oBAC5BI,WAAW;wBACTV,MAAM;wBACNC,aAAa;4BACXP;4BACAiB,sBACEhB,aAAa,CAACN,UAAUuB,gBAAgB,CAAC,EAAEC,QAAQ;wBACvD;oBACF;gBACF;gBACAC,aAAa;oBACXd,MAAMb,YAAY2B,WAAW;oBAC7BJ,WAAW;wBACTV,MAAM;wBACNC,aAAa;4BACXP;4BACAiB,sBACEhB,aAAa,CAACN,UAAUuB,gBAAgB,CAAC,EAAEC,QAAQ;wBACvD;oBACF;gBACF;gBACAE,gBAAgB;oBACdf,MAAMb,YAAY4B,cAAc;oBAChCL,WAAW;wBACTV,MAAM;wBACNC,aAAa;4BACXP;wBACF;oBACF;gBACF;gBACAsB,eAAe;oBACbhB,MAAMb,YAAY6B,aAAa;oBAC/BN,WAAW;wBACTV,MAAM;wBACNC,aAAa;4BACXP;wBACF;oBACF;gBACF;gBACA,GAAIH,kBACFG,cAAcuB,iBAAiB,IAAI,CAAC,GACpC3B,qBAAqB4B,SAAS,KAC3B;oBACHC,iBAAiB;wBACfnB,MAAMb,YAAYgC,eAAe;wBACjCT,WAAW;4BACTV,MAAM;4BACNC,aAAa;gCACXP;gCACA0B,mBAAmBxB,yBAAyB,CAACR,WAAWiC,YAAY,CAAC,CAACC,SAAS;4BACjF;wBACF;oBACF;gBACF,CAAC;YACH;QACF;QACAnB,QAAQ;YACN,GAAGV,OAAOI,KAAK,EAAEM,MAAM;YACvBoB,OAAOpC,YAAYqC,aAAa;QAClC;IACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import type { BetterAuthSchemas } from '@/better-auth/plugin/types';
2
+ import type { CollectionAfterChangeHook } from 'payload';
3
+ export declare function getSyncPasswordToUserHook(resolvedSchemas: BetterAuthSchemas): CollectionAfterChangeHook;
@@ -0,0 +1,60 @@
1
+ import { baModelKey } from "@/better-auth/plugin/constants";
2
+ import { getSchemaCollectionSlug, getSchemaFieldName } from "../../utils/collection-schema";
3
+ export function getSyncPasswordToUserHook(resolvedSchemas) {
4
+ const hook = async ({ doc, req, operation, context })=>{
5
+ if (context?.syncAccountHook) return doc;
6
+ if (operation !== 'create' && operation !== 'update') {
7
+ return doc;
8
+ }
9
+ const userSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.user);
10
+ const accountSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.account);
11
+ const userField = getSchemaFieldName(resolvedSchemas, baModelKey.account, 'userId');
12
+ if (!doc[userField]) {
13
+ return doc;
14
+ }
15
+ const account = await req.payload.findByID({
16
+ collection: accountSlug,
17
+ id: doc.id,
18
+ depth: 0,
19
+ req,
20
+ showHiddenFields: true
21
+ });
22
+ const password = account?.password;
23
+ if (!password) {
24
+ return doc;
25
+ }
26
+ const [salt, hash] = password.split(':');
27
+ if (!salt || !hash) {
28
+ return doc;
29
+ }
30
+ const userId = typeof doc[userField] === 'object' ? doc[userField]?.id : doc[userField];
31
+ try {
32
+ await req.payload.update({
33
+ collection: userSlug,
34
+ id: userId,
35
+ data: {
36
+ salt,
37
+ hash
38
+ },
39
+ req,
40
+ context: {
41
+ syncPasswordToUser: true
42
+ }
43
+ });
44
+ } catch (error) {
45
+ req.payload.logger.error('Failed to sync password to user', {
46
+ operation: 'syncPasswordToUser',
47
+ error: error instanceof Error ? error.message : String(error),
48
+ stack: error instanceof Error ? error.stack : undefined,
49
+ context: {
50
+ userId,
51
+ accountId: doc.id
52
+ }
53
+ });
54
+ }
55
+ return doc;
56
+ };
57
+ return hook;
58
+ }
59
+
60
+ //# sourceMappingURL=sync-password-to-user.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.ts"],"sourcesContent":["import { baModelKey } from '@/better-auth/plugin/constants';\nimport type { BetterAuthSchemas } from '@/better-auth/plugin/types';\nimport type { CollectionAfterChangeHook, CollectionSlug } from 'payload';\nimport { getSchemaCollectionSlug, getSchemaFieldName } from '../../utils/collection-schema';\n\ntype AccountWithPassword = {\n password?: string | null;\n};\n\ntype SyncAccountContext = {\n syncAccountHook?: boolean;\n};\n\nexport function getSyncPasswordToUserHook(\n resolvedSchemas: BetterAuthSchemas\n): CollectionAfterChangeHook {\n const hook: CollectionAfterChangeHook = async ({ doc, req, operation, context }) => {\n if ((context as SyncAccountContext | undefined)?.syncAccountHook) return doc;\n\n if (operation !== 'create' && operation !== 'update') {\n return doc;\n }\n const userSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.user);\n const accountSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.account);\n const userField = getSchemaFieldName(resolvedSchemas, baModelKey.account, 'userId');\n\n if (!doc[userField]) {\n return doc;\n }\n\n const account = await req.payload.findByID({\n collection: accountSlug as CollectionSlug,\n id: doc.id,\n depth: 0,\n req,\n showHiddenFields: true,\n });\n\n const password = (account as AccountWithPassword | null)?.password;\n if (!password) {\n return doc;\n }\n\n const [salt, hash] = password.split(':');\n\n if (!salt || !hash) {\n return doc;\n }\n\n const userId = typeof doc[userField] === 'object' ? doc[userField]?.id : doc[userField];\n\n try {\n await req.payload.update({\n collection: userSlug as CollectionSlug,\n id: userId,\n data: {\n salt,\n hash,\n },\n req,\n context: { syncPasswordToUser: true },\n });\n } catch (error) {\n req.payload.logger.error('Failed to sync password to user', {\n operation: 'syncPasswordToUser',\n error: error instanceof Error ? error.message : String(error),\n stack: error instanceof Error ? error.stack : undefined,\n context: { userId, accountId: doc.id },\n });\n }\n\n return doc;\n };\n\n return hook;\n}\n"],"names":["baModelKey","getSchemaCollectionSlug","getSchemaFieldName","getSyncPasswordToUserHook","resolvedSchemas","hook","doc","req","operation","context","syncAccountHook","userSlug","user","accountSlug","account","userField","payload","findByID","collection","id","depth","showHiddenFields","password","salt","hash","split","userId","update","data","syncPasswordToUser","error","logger","Error","message","String","stack","undefined","accountId"],"mappings":"AAAA,SAASA,UAAU,QAAQ,iCAAiC;AAG5D,SAASC,uBAAuB,EAAEC,kBAAkB,QAAQ,gCAAgC;AAU5F,OAAO,SAASC,0BACdC,eAAkC;IAElC,MAAMC,OAAkC,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,SAAS,EAAEC,OAAO,EAAE;QAC7E,IAAKA,SAA4CC,iBAAiB,OAAOJ;QAEzE,IAAIE,cAAc,YAAYA,cAAc,UAAU;YACpD,OAAOF;QACT;QACA,MAAMK,WAAWV,wBAAwBG,iBAAiBJ,WAAWY,IAAI;QACzE,MAAMC,cAAcZ,wBAAwBG,iBAAiBJ,WAAWc,OAAO;QAC/E,MAAMC,YAAYb,mBAAmBE,iBAAiBJ,WAAWc,OAAO,EAAE;QAE1E,IAAI,CAACR,GAAG,CAACS,UAAU,EAAE;YACnB,OAAOT;QACT;QAEA,MAAMQ,UAAU,MAAMP,IAAIS,OAAO,CAACC,QAAQ,CAAC;YACzCC,YAAYL;YACZM,IAAIb,IAAIa,EAAE;YACVC,OAAO;YACPb;YACAc,kBAAkB;QACpB;QAEA,MAAMC,WAAYR,SAAwCQ;QAC1D,IAAI,CAACA,UAAU;YACb,OAAOhB;QACT;QAEA,MAAM,CAACiB,MAAMC,KAAK,GAAGF,SAASG,KAAK,CAAC;QAEpC,IAAI,CAACF,QAAQ,CAACC,MAAM;YAClB,OAAOlB;QACT;QAEA,MAAMoB,SAAS,OAAOpB,GAAG,CAACS,UAAU,KAAK,WAAWT,GAAG,CAACS,UAAU,EAAEI,KAAKb,GAAG,CAACS,UAAU;QAEvF,IAAI;YACF,MAAMR,IAAIS,OAAO,CAACW,MAAM,CAAC;gBACvBT,YAAYP;gBACZQ,IAAIO;gBACJE,MAAM;oBACJL;oBACAC;gBACF;gBACAjB;gBACAE,SAAS;oBAAEoB,oBAAoB;gBAAK;YACtC;QACF,EAAE,OAAOC,OAAO;YACdvB,IAAIS,OAAO,CAACe,MAAM,CAACD,KAAK,CAAC,mCAAmC;gBAC1DtB,WAAW;gBACXsB,OAAOA,iBAAiBE,QAAQF,MAAMG,OAAO,GAAGC,OAAOJ;gBACvDK,OAAOL,iBAAiBE,QAAQF,MAAMK,KAAK,GAAGC;gBAC9C3B,SAAS;oBAAEiB;oBAAQW,WAAW/B,IAAIa,EAAE;gBAAC;YACvC;QACF;QAEA,OAAOb;IACT;IAEA,OAAOD;AACT"}
@@ -0,0 +1,3 @@
1
+ import type { BuildCollectionProps } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function buildAccountsCollection({ incomingCollections, pluginOptions, resolvedSchemas, }: BuildCollectionProps): CollectionConfig;
@@ -0,0 +1,154 @@
1
+ import { baModelKey, defaults } from "@/better-auth/plugin/constants";
2
+ import { assertAllSchemaFields, getSchemaCollectionSlug, getSchemaFieldName } from "../utils/collection-schema";
3
+ import { filterDuplicateFields } from "../utils/filter-duplicate-fields";
4
+ import { isAdminOrCurrentUserWithRoles, isAdminWithRoles } from "../utils/payload-access";
5
+ import { getCollectionFields } from "../utils/transform-schema-fields-to-payload";
6
+ import { getSyncPasswordToUserHook } from "./hooks/sync-password-to-user";
7
+ export function buildAccountsCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
8
+ const accountSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.account);
9
+ const accountSchema = resolvedSchemas[baModelKey.account];
10
+ const adminRoles = pluginOptions.users?.adminRoles ?? [
11
+ defaults.adminRole
12
+ ];
13
+ const existingAccountCollection = incomingCollections.find((collection)=>collection.slug === accountSlug);
14
+ const accountFieldRules = [
15
+ {
16
+ condition: (field)=>field.type === 'date',
17
+ transform: (field)=>({
18
+ ...field,
19
+ saveToJWT: false,
20
+ admin: {
21
+ disableBulkEdit: true,
22
+ hidden: true
23
+ },
24
+ index: true,
25
+ label: 'general:updatedAt'
26
+ })
27
+ }
28
+ ];
29
+ const fieldOverrides = {
30
+ userId: ()=>({
31
+ index: true,
32
+ admin: {
33
+ readOnly: true,
34
+ description: 'The user that the account belongs to'
35
+ }
36
+ }),
37
+ accountId: ()=>({
38
+ index: true,
39
+ admin: {
40
+ readOnly: true,
41
+ description: 'The id of the account as provided by the SSO or equal to userId for credential accounts'
42
+ }
43
+ }),
44
+ providerId: ()=>({
45
+ admin: {
46
+ readOnly: true,
47
+ description: 'The id of the provider as provided by the SSO'
48
+ }
49
+ }),
50
+ accessToken: ()=>({
51
+ admin: {
52
+ readOnly: true,
53
+ description: 'The access token of the account. Returned by the provider'
54
+ }
55
+ }),
56
+ refreshToken: ()=>({
57
+ admin: {
58
+ readOnly: true,
59
+ description: 'The refresh token of the account. Returned by the provider'
60
+ }
61
+ }),
62
+ accessTokenExpiresAt: ()=>({
63
+ admin: {
64
+ readOnly: true,
65
+ description: 'The date and time when the access token will expire'
66
+ }
67
+ }),
68
+ refreshTokenExpiresAt: ()=>({
69
+ admin: {
70
+ readOnly: true,
71
+ description: 'The date and time when the refresh token will expire'
72
+ }
73
+ }),
74
+ scope: ()=>({
75
+ admin: {
76
+ readOnly: true,
77
+ description: 'The scope of the account. Returned by the provider'
78
+ }
79
+ }),
80
+ idToken: ()=>({
81
+ admin: {
82
+ readOnly: true,
83
+ description: 'The id token for the account. Returned by the provider'
84
+ }
85
+ }),
86
+ password: ()=>({
87
+ admin: {
88
+ readOnly: true,
89
+ hidden: true,
90
+ description: 'The hashed password of the account. Mainly used for email and password authentication'
91
+ }
92
+ })
93
+ };
94
+ const collectionFields = getCollectionFields({
95
+ schema: accountSchema,
96
+ fieldRules: accountFieldRules,
97
+ additionalProperties: fieldOverrides
98
+ });
99
+ let accountCollection = {
100
+ slug: accountSlug,
101
+ admin: {
102
+ useAsTitle: 'accountId',
103
+ description: 'Accounts are used to store user accounts for authentication providers',
104
+ group: pluginOptions?.collectionAdminGroup ?? 'Auth',
105
+ ...existingAccountCollection?.admin,
106
+ ...pluginOptions.accounts?.hidden !== undefined && {
107
+ hidden: pluginOptions.accounts.hidden
108
+ }
109
+ },
110
+ access: {
111
+ create: isAdminWithRoles({
112
+ adminRoles
113
+ }),
114
+ delete: isAdminWithRoles({
115
+ adminRoles
116
+ }),
117
+ read: isAdminOrCurrentUserWithRoles({
118
+ adminRoles,
119
+ idField: getSchemaFieldName(resolvedSchemas, baModelKey.account, 'userId')
120
+ }),
121
+ update: isAdminWithRoles({
122
+ adminRoles
123
+ }),
124
+ ...existingAccountCollection?.access ?? {}
125
+ },
126
+ custom: {
127
+ ...existingAccountCollection?.custom ?? {},
128
+ betterAuthModelKey: baModelKey.account
129
+ },
130
+ hooks: {
131
+ afterChange: [
132
+ ...existingAccountCollection?.hooks?.afterChange ?? [],
133
+ ...pluginOptions.disableDefaultPayloadAuth ? [] : [
134
+ getSyncPasswordToUserHook(resolvedSchemas)
135
+ ]
136
+ ]
137
+ },
138
+ fields: [
139
+ ...existingAccountCollection?.fields ?? [],
140
+ // Filter out fields that already exist to prevent duplicates
141
+ ...filterDuplicateFields(existingAccountCollection?.fields, collectionFields)
142
+ ],
143
+ ...existingAccountCollection
144
+ };
145
+ if (typeof pluginOptions.accounts?.collectionOverrides === 'function') {
146
+ accountCollection = pluginOptions.accounts.collectionOverrides({
147
+ collection: accountCollection
148
+ });
149
+ }
150
+ assertAllSchemaFields(accountCollection, accountSchema);
151
+ return accountCollection;
152
+ }
153
+
154
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/better-auth/plugin/lib/build-collections/accounts/index.ts"],"sourcesContent":["import type { Account } from '@/better-auth/generated-types';\nimport { baModelKey, defaults } from '@/better-auth/plugin/constants';\nimport type { BuildCollectionProps, FieldOverrides, FieldRule } from '@/better-auth/plugin/types';\nimport type { CollectionConfig } from 'payload';\nimport {\n assertAllSchemaFields,\n getSchemaCollectionSlug,\n getSchemaFieldName,\n} from '../utils/collection-schema';\nimport { filterDuplicateFields } from '../utils/filter-duplicate-fields';\nimport { isAdminOrCurrentUserWithRoles, isAdminWithRoles } from '../utils/payload-access';\nimport { getCollectionFields } from '../utils/transform-schema-fields-to-payload';\nimport { getSyncPasswordToUserHook } from './hooks/sync-password-to-user';\n\nexport function buildAccountsCollection({\n incomingCollections,\n pluginOptions,\n resolvedSchemas,\n}: BuildCollectionProps): CollectionConfig {\n const accountSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.account);\n const accountSchema = resolvedSchemas[baModelKey.account];\n const adminRoles = pluginOptions.users?.adminRoles ?? [defaults.adminRole];\n\n const existingAccountCollection = incomingCollections.find(\n collection => collection.slug === accountSlug\n ) as CollectionConfig | undefined;\n\n const accountFieldRules: FieldRule[] = [\n {\n condition: field => field.type === 'date',\n transform: field => ({\n ...field,\n saveToJWT: false,\n admin: {\n disableBulkEdit: true,\n hidden: true,\n },\n index: true,\n label: 'general:updatedAt',\n }),\n },\n ];\n\n const fieldOverrides: FieldOverrides<keyof Account> = {\n userId: () => ({\n index: true,\n admin: {\n readOnly: true,\n description: 'The user that the account belongs to',\n },\n }),\n accountId: () => ({\n index: true,\n admin: {\n readOnly: true,\n description:\n 'The id of the account as provided by the SSO or equal to userId for credential accounts',\n },\n }),\n providerId: () => ({\n admin: {\n readOnly: true,\n description: 'The id of the provider as provided by the SSO',\n },\n }),\n accessToken: () => ({\n admin: {\n readOnly: true,\n description: 'The access token of the account. Returned by the provider',\n },\n }),\n refreshToken: () => ({\n admin: {\n readOnly: true,\n description: 'The refresh token of the account. Returned by the provider',\n },\n }),\n accessTokenExpiresAt: () => ({\n admin: {\n readOnly: true,\n description: 'The date and time when the access token will expire',\n },\n }),\n refreshTokenExpiresAt: () => ({\n admin: {\n readOnly: true,\n description: 'The date and time when the refresh token will expire',\n },\n }),\n scope: () => ({\n admin: {\n readOnly: true,\n description: 'The scope of the account. Returned by the provider',\n },\n }),\n idToken: () => ({\n admin: {\n readOnly: true,\n description: 'The id token for the account. Returned by the provider',\n },\n }),\n password: () => ({\n admin: {\n readOnly: true,\n hidden: true,\n description:\n 'The hashed password of the account. Mainly used for email and password authentication',\n },\n }),\n };\n\n const collectionFields = getCollectionFields({\n schema: accountSchema,\n fieldRules: accountFieldRules,\n additionalProperties: fieldOverrides,\n });\n\n let accountCollection: CollectionConfig = {\n slug: accountSlug,\n admin: {\n useAsTitle: 'accountId',\n description: 'Accounts are used to store user accounts for authentication providers',\n group: pluginOptions?.collectionAdminGroup ?? 'Auth',\n ...existingAccountCollection?.admin,\n ...(pluginOptions.accounts?.hidden !== undefined && {\n hidden: pluginOptions.accounts.hidden,\n }),\n },\n access: {\n create: isAdminWithRoles({ adminRoles }),\n delete: isAdminWithRoles({ adminRoles }),\n read: isAdminOrCurrentUserWithRoles({\n adminRoles,\n idField: getSchemaFieldName(resolvedSchemas, baModelKey.account, 'userId'),\n }),\n update: isAdminWithRoles({ adminRoles }),\n ...(existingAccountCollection?.access ?? {}),\n },\n custom: {\n ...(existingAccountCollection?.custom ?? {}),\n betterAuthModelKey: baModelKey.account,\n },\n hooks: {\n afterChange: [\n ...(existingAccountCollection?.hooks?.afterChange ?? []),\n ...(pluginOptions.disableDefaultPayloadAuth\n ? []\n : [getSyncPasswordToUserHook(resolvedSchemas)]),\n ],\n },\n fields: [\n ...(existingAccountCollection?.fields ?? []),\n // Filter out fields that already exist to prevent duplicates\n ...filterDuplicateFields(existingAccountCollection?.fields, collectionFields),\n ],\n ...existingAccountCollection,\n };\n\n if (typeof pluginOptions.accounts?.collectionOverrides === 'function') {\n accountCollection = pluginOptions.accounts.collectionOverrides({\n collection: accountCollection,\n });\n }\n\n assertAllSchemaFields(accountCollection, accountSchema);\n\n return accountCollection;\n}\n"],"names":["baModelKey","defaults","assertAllSchemaFields","getSchemaCollectionSlug","getSchemaFieldName","filterDuplicateFields","isAdminOrCurrentUserWithRoles","isAdminWithRoles","getCollectionFields","getSyncPasswordToUserHook","buildAccountsCollection","incomingCollections","pluginOptions","resolvedSchemas","accountSlug","account","accountSchema","adminRoles","users","adminRole","existingAccountCollection","find","collection","slug","accountFieldRules","condition","field","type","transform","saveToJWT","admin","disableBulkEdit","hidden","index","label","fieldOverrides","userId","readOnly","description","accountId","providerId","accessToken","refreshToken","accessTokenExpiresAt","refreshTokenExpiresAt","scope","idToken","password","collectionFields","schema","fieldRules","additionalProperties","accountCollection","useAsTitle","group","collectionAdminGroup","accounts","undefined","access","create","delete","read","idField","update","custom","betterAuthModelKey","hooks","afterChange","disableDefaultPayloadAuth","fields","collectionOverrides"],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { GenerateAdminInviteUrlFn } from '@/better-auth/plugin/types';
2
+ import type { FieldHook } from 'payload';
3
+ export declare const getAdminInviteUrlAfterReadHook: ({ generateAdminInviteUrlFn, }: {
4
+ generateAdminInviteUrlFn: GenerateAdminInviteUrlFn;
5
+ }) => FieldHook;
@@ -0,0 +1,11 @@
1
+ export const getAdminInviteUrlAfterReadHook = ({ generateAdminInviteUrlFn })=>{
2
+ const hook = async ({ req, data })=>{
3
+ return generateAdminInviteUrlFn({
4
+ payload: req.payload,
5
+ token: data?.token
6
+ });
7
+ };
8
+ return hook;
9
+ };
10
+
11
+ //# sourceMappingURL=get-url-after-read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.ts"],"sourcesContent":["import type { GenerateAdminInviteUrlFn } from '@/better-auth/plugin/types';\nimport type { FieldHook } from 'payload';\n\nexport const getAdminInviteUrlAfterReadHook = ({\n generateAdminInviteUrlFn,\n}: {\n generateAdminInviteUrlFn: GenerateAdminInviteUrlFn;\n}) => {\n const hook: FieldHook = async ({ req, data }) => {\n return generateAdminInviteUrlFn({\n payload: req.payload,\n token: data?.token,\n });\n };\n return hook;\n};\n"],"names":["getAdminInviteUrlAfterReadHook","generateAdminInviteUrlFn","hook","req","data","payload","token"],"mappings":"AAGA,OAAO,MAAMA,iCAAiC,CAAC,EAC7CC,wBAAwB,EAGzB;IACC,MAAMC,OAAkB,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAE;QAC1C,OAAOH,yBAAyB;YAC9BI,SAASF,IAAIE,OAAO;YACpBC,OAAOF,MAAME;QACf;IACF;IACA,OAAOJ;AACT,EAAE"}
@@ -0,0 +1,2 @@
1
+ import type { FieldHook } from 'payload';
2
+ export declare const getUrlBeforeChangeHook: () => FieldHook;
@@ -0,0 +1,8 @@
1
+ export const getUrlBeforeChangeHook = ()=>{
2
+ const hook = ({ siblingData })=>{
3
+ siblingData.url = undefined;
4
+ };
5
+ return hook;
6
+ };
7
+
8
+ //# sourceMappingURL=get-url-before-change.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.ts"],"sourcesContent":["import type { FieldHook } from 'payload';\n\nexport const getUrlBeforeChangeHook = () => {\n const hook: FieldHook = ({ siblingData }) => {\n siblingData.url = undefined;\n };\n return hook;\n};\n"],"names":["getUrlBeforeChangeHook","hook","siblingData","url","undefined"],"mappings":"AAEA,OAAO,MAAMA,yBAAyB;IACpC,MAAMC,OAAkB,CAAC,EAAEC,WAAW,EAAE;QACtCA,YAAYC,GAAG,GAAGC;IACpB;IACA,OAAOH;AACT,EAAE"}
@@ -0,0 +1,6 @@
1
+ import type { BetterAuthPluginOptions } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function buildAdminInvitationsCollection({ incomingCollections, pluginOptions, }: {
4
+ incomingCollections: CollectionConfig[];
5
+ pluginOptions: BetterAuthPluginOptions;
6
+ }): CollectionConfig;