@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,119 @@
1
+ import { baseSlugs, defaults } from "@/better-auth/plugin/constants";
2
+ import { generateAdminInviteUrl } from "../../../payload/utils/generate-admin-invite-url";
3
+ import { isAdminWithRoles } from "../utils/payload-access";
4
+ import { getAdminInviteUrlAfterReadHook } from "./hooks/get-url-after-read";
5
+ import { getUrlBeforeChangeHook } from "./hooks/get-url-before-change";
6
+ export function buildAdminInvitationsCollection({ incomingCollections, pluginOptions }) {
7
+ const generateAdminInviteUrlFn = pluginOptions.adminInvitations?.generateInviteUrl ?? generateAdminInviteUrl;
8
+ const adminInvitationSlug = pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;
9
+ const adminRoles = pluginOptions.users?.adminRoles ?? [
10
+ defaults.adminRole
11
+ ];
12
+ const roles = pluginOptions.users?.roles ?? [
13
+ defaults.userRole
14
+ ];
15
+ const allRoleOptions = [
16
+ ...new Set([
17
+ ...adminRoles,
18
+ ...roles
19
+ ])
20
+ ].map((role)=>({
21
+ label: role.split(/[-_\s]/).map((word)=>word.charAt(0).toUpperCase() + word.slice(1)).join(' '),
22
+ value: role
23
+ }));
24
+ const existingAdminInvitationCollection = incomingCollections.find((collection)=>collection.slug === adminInvitationSlug);
25
+ let adminInvitationsCollection = {
26
+ ...existingAdminInvitationCollection,
27
+ slug: adminInvitationSlug,
28
+ admin: {
29
+ defaultColumns: [
30
+ 'role',
31
+ 'token',
32
+ 'url'
33
+ ],
34
+ useAsTitle: 'token',
35
+ group: pluginOptions?.collectionAdminGroup ?? 'Auth',
36
+ ...existingAdminInvitationCollection?.admin,
37
+ ...pluginOptions.adminInvitations?.hidden !== undefined && {
38
+ hidden: pluginOptions.adminInvitations.hidden
39
+ }
40
+ },
41
+ access: {
42
+ create: isAdminWithRoles({
43
+ adminRoles
44
+ }),
45
+ read: isAdminWithRoles({
46
+ adminRoles
47
+ }),
48
+ delete: isAdminWithRoles({
49
+ adminRoles
50
+ }),
51
+ update: isAdminWithRoles({
52
+ adminRoles
53
+ }),
54
+ ...existingAdminInvitationCollection?.access ?? {}
55
+ },
56
+ timestamps: true,
57
+ fields: [
58
+ {
59
+ label: 'Role',
60
+ name: 'role',
61
+ type: 'select',
62
+ options: allRoleOptions,
63
+ required: true,
64
+ defaultValue: pluginOptions.users?.defaultAdminRole ?? defaults.adminRole
65
+ },
66
+ {
67
+ name: 'token',
68
+ label: 'Token',
69
+ index: true,
70
+ type: 'text',
71
+ admin: {
72
+ readOnly: true,
73
+ components: {
74
+ afterInput: [
75
+ {
76
+ path: 'payload-auth/shared/payload/fields#GenerateUuidButton'
77
+ }
78
+ ]
79
+ }
80
+ },
81
+ required: true
82
+ },
83
+ {
84
+ name: 'url',
85
+ label: 'URL',
86
+ type: 'text',
87
+ hooks: {
88
+ beforeChange: [
89
+ getUrlBeforeChangeHook()
90
+ ],
91
+ afterRead: [
92
+ getAdminInviteUrlAfterReadHook({
93
+ generateAdminInviteUrlFn
94
+ })
95
+ ]
96
+ },
97
+ admin: {
98
+ readOnly: true,
99
+ components: {
100
+ afterInput: [
101
+ {
102
+ path: 'payload-auth/shared/payload/fields#FieldCopyButton'
103
+ }
104
+ ]
105
+ }
106
+ },
107
+ virtual: true
108
+ }
109
+ ]
110
+ };
111
+ if (pluginOptions.adminInvitations?.collectionOverrides) {
112
+ adminInvitationsCollection = pluginOptions.adminInvitations.collectionOverrides({
113
+ collection: adminInvitationsCollection
114
+ });
115
+ }
116
+ return adminInvitationsCollection;
117
+ }
118
+
119
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../src/better-auth/plugin/lib/build-collections/admin-invitations/index.ts"],"sourcesContent":["import { baseSlugs, defaults } from '@/better-auth/plugin/constants';\nimport type { BetterAuthPluginOptions } from '@/better-auth/plugin/types';\nimport type { CollectionConfig } from 'payload';\nimport { generateAdminInviteUrl } from '../../../payload/utils/generate-admin-invite-url';\nimport { isAdminWithRoles } from '../utils/payload-access';\nimport { getAdminInviteUrlAfterReadHook } from './hooks/get-url-after-read';\nimport { getUrlBeforeChangeHook } from './hooks/get-url-before-change';\n\nexport function buildAdminInvitationsCollection({\n incomingCollections,\n pluginOptions,\n}: {\n incomingCollections: CollectionConfig[];\n pluginOptions: BetterAuthPluginOptions;\n}): CollectionConfig {\n const generateAdminInviteUrlFn =\n pluginOptions.adminInvitations?.generateInviteUrl ?? generateAdminInviteUrl;\n const adminInvitationSlug = pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;\n const adminRoles = pluginOptions.users?.adminRoles ?? [defaults.adminRole];\n const roles = pluginOptions.users?.roles ?? [defaults.userRole];\n const allRoleOptions = [...new Set([...adminRoles, ...roles])].map(role => ({\n label: role\n .split(/[-_\\s]/)\n .map(word => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' '),\n value: role,\n }));\n const existingAdminInvitationCollection = incomingCollections.find(\n collection => collection.slug === adminInvitationSlug\n ) as CollectionConfig | undefined;\n\n let adminInvitationsCollection: CollectionConfig = {\n ...existingAdminInvitationCollection,\n slug: adminInvitationSlug,\n admin: {\n defaultColumns: ['role', 'token', 'url'],\n useAsTitle: 'token',\n group: pluginOptions?.collectionAdminGroup ?? 'Auth',\n ...existingAdminInvitationCollection?.admin,\n ...(pluginOptions.adminInvitations?.hidden !== undefined && {\n hidden: pluginOptions.adminInvitations.hidden,\n }),\n },\n access: {\n create: isAdminWithRoles({ adminRoles }),\n read: isAdminWithRoles({ adminRoles }),\n delete: isAdminWithRoles({ adminRoles }),\n update: isAdminWithRoles({ adminRoles }),\n ...(existingAdminInvitationCollection?.access ?? {}),\n },\n timestamps: true,\n fields: [\n {\n label: 'Role',\n name: 'role',\n type: 'select',\n options: allRoleOptions,\n required: true,\n defaultValue: pluginOptions.users?.defaultAdminRole ?? defaults.adminRole,\n },\n {\n name: 'token',\n label: 'Token',\n index: true,\n type: 'text',\n admin: {\n readOnly: true,\n components: {\n afterInput: [\n {\n path: 'payload-auth/shared/payload/fields#GenerateUuidButton',\n },\n ],\n },\n },\n required: true,\n },\n {\n name: 'url',\n label: 'URL',\n type: 'text',\n hooks: {\n beforeChange: [getUrlBeforeChangeHook()],\n afterRead: [\n getAdminInviteUrlAfterReadHook({\n generateAdminInviteUrlFn,\n }),\n ],\n },\n admin: {\n readOnly: true,\n components: {\n afterInput: [\n {\n path: 'payload-auth/shared/payload/fields#FieldCopyButton',\n },\n ],\n },\n },\n virtual: true,\n },\n ],\n };\n\n if (pluginOptions.adminInvitations?.collectionOverrides) {\n adminInvitationsCollection = pluginOptions.adminInvitations.collectionOverrides({\n collection: adminInvitationsCollection,\n });\n }\n\n return adminInvitationsCollection;\n}\n"],"names":["baseSlugs","defaults","generateAdminInviteUrl","isAdminWithRoles","getAdminInviteUrlAfterReadHook","getUrlBeforeChangeHook","buildAdminInvitationsCollection","incomingCollections","pluginOptions","generateAdminInviteUrlFn","adminInvitations","generateInviteUrl","adminInvitationSlug","slug","adminRoles","users","adminRole","roles","userRole","allRoleOptions","Set","map","role","label","split","word","charAt","toUpperCase","slice","join","value","existingAdminInvitationCollection","find","collection","adminInvitationsCollection","admin","defaultColumns","useAsTitle","group","collectionAdminGroup","hidden","undefined","access","create","read","delete","update","timestamps","fields","name","type","options","required","defaultValue","defaultAdminRole","index","readOnly","components","afterInput","path","hooks","beforeChange","afterRead","virtual","collectionOverrides"],"mappings":"AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,iCAAiC;AAGrE,SAASC,sBAAsB,QAAQ,mDAAmD;AAC1F,SAASC,gBAAgB,QAAQ,0BAA0B;AAC3D,SAASC,8BAA8B,QAAQ,6BAA6B;AAC5E,SAASC,sBAAsB,QAAQ,gCAAgC;AAEvE,OAAO,SAASC,gCAAgC,EAC9CC,mBAAmB,EACnBC,aAAa,EAId;IACC,MAAMC,2BACJD,cAAcE,gBAAgB,EAAEC,qBAAqBT;IACvD,MAAMU,sBAAsBJ,cAAcE,gBAAgB,EAAEG,QAAQb,UAAUU,gBAAgB;IAC9F,MAAMI,aAAaN,cAAcO,KAAK,EAAED,cAAc;QAACb,SAASe,SAAS;KAAC;IAC1E,MAAMC,QAAQT,cAAcO,KAAK,EAAEE,SAAS;QAAChB,SAASiB,QAAQ;KAAC;IAC/D,MAAMC,iBAAiB;WAAI,IAAIC,IAAI;eAAIN;eAAeG;SAAM;KAAE,CAACI,GAAG,CAACC,CAAAA,OAAS,CAAA;YAC1EC,OAAOD,KACJE,KAAK,CAAC,UACNH,GAAG,CAACI,CAAAA,OAAQA,KAAKC,MAAM,CAAC,GAAGC,WAAW,KAAKF,KAAKG,KAAK,CAAC,IACtDC,IAAI,CAAC;YACRC,OAAOR;QACT,CAAA;IACA,MAAMS,oCAAoCxB,oBAAoByB,IAAI,CAChEC,CAAAA,aAAcA,WAAWpB,IAAI,KAAKD;IAGpC,IAAIsB,6BAA+C;QACjD,GAAGH,iCAAiC;QACpClB,MAAMD;QACNuB,OAAO;YACLC,gBAAgB;gBAAC;gBAAQ;gBAAS;aAAM;YACxCC,YAAY;YACZC,OAAO9B,eAAe+B,wBAAwB;YAC9C,GAAGR,mCAAmCI,KAAK;YAC3C,GAAI3B,cAAcE,gBAAgB,EAAE8B,WAAWC,aAAa;gBAC1DD,QAAQhC,cAAcE,gBAAgB,CAAC8B,MAAM;YAC/C,CAAC;QACH;QACAE,QAAQ;YACNC,QAAQxC,iBAAiB;gBAAEW;YAAW;YACtC8B,MAAMzC,iBAAiB;gBAAEW;YAAW;YACpC+B,QAAQ1C,iBAAiB;gBAAEW;YAAW;YACtCgC,QAAQ3C,iBAAiB;gBAAEW;YAAW;YACtC,GAAIiB,mCAAmCW,UAAU,CAAC,CAAC;QACrD;QACAK,YAAY;QACZC,QAAQ;YACN;gBACEzB,OAAO;gBACP0B,MAAM;gBACNC,MAAM;gBACNC,SAAShC;gBACTiC,UAAU;gBACVC,cAAc7C,cAAcO,KAAK,EAAEuC,oBAAoBrD,SAASe,SAAS;YAC3E;YACA;gBACEiC,MAAM;gBACN1B,OAAO;gBACPgC,OAAO;gBACPL,MAAM;gBACNf,OAAO;oBACLqB,UAAU;oBACVC,YAAY;wBACVC,YAAY;4BACV;gCACEC,MAAM;4BACR;yBACD;oBACH;gBACF;gBACAP,UAAU;YACZ;YACA;gBACEH,MAAM;gBACN1B,OAAO;gBACP2B,MAAM;gBACNU,OAAO;oBACLC,cAAc;wBAACxD;qBAAyB;oBACxCyD,WAAW;wBACT1D,+BAA+B;4BAC7BK;wBACF;qBACD;gBACH;gBACA0B,OAAO;oBACLqB,UAAU;oBACVC,YAAY;wBACVC,YAAY;4BACV;gCACEC,MAAM;4BACR;yBACD;oBACH;gBACF;gBACAI,SAAS;YACX;SACD;IACH;IAEA,IAAIvD,cAAcE,gBAAgB,EAAEsD,qBAAqB;QACvD9B,6BAA6B1B,cAAcE,gBAAgB,CAACsD,mBAAmB,CAAC;YAC9E/B,YAAYC;QACd;IACF;IAEA,OAAOA;AACT"}
@@ -0,0 +1,3 @@
1
+ import type { BuildCollectionProps } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function buildApiKeysCollection({ incomingCollections, pluginOptions, resolvedSchemas, }: BuildCollectionProps): CollectionConfig;
@@ -0,0 +1,177 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug } from "./utils/collection-schema";
4
+ import { filterDuplicateFields } from "./utils/filter-duplicate-fields";
5
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
6
+ export function buildApiKeysCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
7
+ const apiKeySlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.apikey);
8
+ const apiKeySchema = resolvedSchemas[baModelKey.apikey];
9
+ const existingApiKeyCollection = incomingCollections.find((collection)=>collection.slug === apiKeySlug);
10
+ const fieldOverrides = {
11
+ name: ()=>({
12
+ admin: {
13
+ readOnly: true,
14
+ description: 'The name of the API key.'
15
+ }
16
+ }),
17
+ start: ()=>({
18
+ admin: {
19
+ readOnly: true,
20
+ description: 'The starting characters of the API key.'
21
+ }
22
+ }),
23
+ prefix: ()=>({
24
+ admin: {
25
+ readOnly: true,
26
+ description: 'The API Key prefix. Stored as plain text.'
27
+ }
28
+ }),
29
+ key: ()=>({
30
+ admin: {
31
+ readOnly: true,
32
+ description: 'The hashed API key itself.'
33
+ }
34
+ }),
35
+ userId: ()=>({
36
+ admin: {
37
+ readOnly: true,
38
+ description: 'The user associated with the API key.'
39
+ }
40
+ }),
41
+ refillInterval: ()=>({
42
+ admin: {
43
+ readOnly: true,
44
+ description: 'The interval to refill the key in milliseconds.'
45
+ }
46
+ }),
47
+ refillAmount: ()=>({
48
+ admin: {
49
+ readOnly: true,
50
+ description: 'The amount to refill the remaining count of the key.'
51
+ }
52
+ }),
53
+ lastRefillAt: ()=>({
54
+ admin: {
55
+ readOnly: true,
56
+ description: 'The date and time when the key was last refilled.'
57
+ }
58
+ }),
59
+ enabled: ()=>({
60
+ defaultValue: true,
61
+ admin: {
62
+ readOnly: true,
63
+ description: 'Whether the API key is enabled.'
64
+ }
65
+ }),
66
+ rateLimitEnabled: ()=>({
67
+ defaultValue: true,
68
+ admin: {
69
+ readOnly: true,
70
+ description: 'Whether the API key has rate limiting enabled.'
71
+ }
72
+ }),
73
+ rateLimitTimeWindow: ()=>({
74
+ admin: {
75
+ readOnly: true,
76
+ description: 'The time window in milliseconds for the rate limit.'
77
+ }
78
+ }),
79
+ rateLimitMax: ()=>({
80
+ admin: {
81
+ readOnly: true,
82
+ description: 'The maximum number of requests allowed within the rate limit time window.'
83
+ }
84
+ }),
85
+ requestCount: ()=>({
86
+ admin: {
87
+ readOnly: true,
88
+ description: 'The number of requests made within the rate limit time window.'
89
+ }
90
+ }),
91
+ remaining: ()=>({
92
+ admin: {
93
+ readOnly: true,
94
+ description: 'The number of requests remaining.'
95
+ }
96
+ }),
97
+ lastRequest: ()=>({
98
+ admin: {
99
+ readOnly: true,
100
+ description: 'The date and time of the last request made to the key.'
101
+ }
102
+ }),
103
+ expiresAt: ()=>({
104
+ admin: {
105
+ readOnly: true,
106
+ description: 'The date and time of when the API key will expire.'
107
+ }
108
+ }),
109
+ permissions: ()=>({
110
+ admin: {
111
+ readOnly: true,
112
+ description: 'The permissions for the API key.'
113
+ }
114
+ }),
115
+ metadata: ()=>({
116
+ type: 'json',
117
+ admin: {
118
+ readOnly: true,
119
+ description: 'Any additional metadata you want to store with the key.'
120
+ }
121
+ })
122
+ };
123
+ const apiKeyFieldRules = [
124
+ {
125
+ condition: (field)=>field.type === 'date',
126
+ transform: (field)=>({
127
+ ...field,
128
+ saveToJWT: false,
129
+ admin: {
130
+ disableBulkEdit: true,
131
+ hidden: true
132
+ },
133
+ index: true,
134
+ // Using any because PayloadCMS label function receives translation function with dynamic type
135
+ label: ({ t })=>t('general:updatedAt')
136
+ })
137
+ }
138
+ ];
139
+ const collectionFields = getCollectionFields({
140
+ schema: apiKeySchema,
141
+ fieldRules: apiKeyFieldRules,
142
+ additionalProperties: fieldOverrides
143
+ });
144
+ let apiKeyCollection = {
145
+ ...existingApiKeyCollection,
146
+ slug: apiKeySlug,
147
+ admin: {
148
+ hidden: pluginOptions.hidePluginCollections ?? false,
149
+ useAsTitle: apiKeySchema?.fields?.name?.fieldName ?? 'id',
150
+ description: 'API keys are used to authenticate requests to the API.',
151
+ group: pluginOptions?.collectionAdminGroup ?? 'Auth',
152
+ ...existingApiKeyCollection?.admin
153
+ },
154
+ access: {
155
+ ...getAdminAccess(pluginOptions),
156
+ ...existingApiKeyCollection?.access ?? {}
157
+ },
158
+ custom: {
159
+ ...existingApiKeyCollection?.custom ?? {},
160
+ betterAuthModelKey: baModelKey.apikey
161
+ },
162
+ fields: [
163
+ ...existingApiKeyCollection?.fields ?? [],
164
+ // Filter out fields that already exist to prevent duplicates
165
+ ...filterDuplicateFields(existingApiKeyCollection?.fields, collectionFields)
166
+ ]
167
+ };
168
+ if (typeof pluginOptions.pluginCollectionOverrides?.apiKeys === 'function') {
169
+ apiKeyCollection = pluginOptions.pluginCollectionOverrides.apiKeys({
170
+ collection: apiKeyCollection
171
+ });
172
+ }
173
+ assertAllSchemaFields(apiKeyCollection, apiKeySchema);
174
+ return apiKeyCollection;
175
+ }
176
+
177
+ //# sourceMappingURL=api-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/better-auth/plugin/lib/build-collections/api-keys.ts"],"sourcesContent":["import type { Apikey } from '@/better-auth/generated-types';\nimport type { BuildCollectionProps, FieldOverrides, FieldRule } from '@/better-auth/plugin/types';\nimport type { CollectionConfig } from 'payload';\nimport { baModelKey } from '../../constants';\nimport { getAdminAccess } from '../../helpers/get-admin-access';\nimport { assertAllSchemaFields, getSchemaCollectionSlug } from './utils/collection-schema';\nimport { filterDuplicateFields } from './utils/filter-duplicate-fields';\nimport { getCollectionFields } from './utils/transform-schema-fields-to-payload';\n\nexport function buildApiKeysCollection({\n incomingCollections,\n pluginOptions,\n resolvedSchemas,\n}: BuildCollectionProps): CollectionConfig {\n const apiKeySlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.apikey);\n const apiKeySchema = resolvedSchemas[baModelKey.apikey];\n\n const existingApiKeyCollection = incomingCollections.find(\n collection => collection.slug === apiKeySlug\n ) as CollectionConfig | undefined;\n\n const fieldOverrides: FieldOverrides<keyof Apikey> = {\n name: () => ({\n admin: { readOnly: true, description: 'The name of the API key.' },\n }),\n start: () => ({\n admin: { readOnly: true, description: 'The starting characters of the API key.' },\n }),\n prefix: () => ({\n admin: { readOnly: true, description: 'The API Key prefix. Stored as plain text.' },\n }),\n key: () => ({\n admin: { readOnly: true, description: 'The hashed API key itself.' },\n }),\n userId: () => ({\n admin: { readOnly: true, description: 'The user associated with the API key.' },\n }),\n refillInterval: () => ({\n admin: { readOnly: true, description: 'The interval to refill the key in milliseconds.' },\n }),\n refillAmount: () => ({\n admin: {\n readOnly: true,\n description: 'The amount to refill the remaining count of the key.',\n },\n }),\n lastRefillAt: () => ({\n admin: { readOnly: true, description: 'The date and time when the key was last refilled.' },\n }),\n enabled: () => ({\n defaultValue: true,\n admin: { readOnly: true, description: 'Whether the API key is enabled.' },\n }),\n rateLimitEnabled: () => ({\n defaultValue: true,\n admin: { readOnly: true, description: 'Whether the API key has rate limiting enabled.' },\n }),\n rateLimitTimeWindow: () => ({\n admin: { readOnly: true, description: 'The time window in milliseconds for the rate limit.' },\n }),\n rateLimitMax: () => ({\n admin: {\n readOnly: true,\n description: 'The maximum number of requests allowed within the rate limit time window.',\n },\n }),\n requestCount: () => ({\n admin: {\n readOnly: true,\n description: 'The number of requests made within the rate limit time window.',\n },\n }),\n remaining: () => ({\n admin: { readOnly: true, description: 'The number of requests remaining.' },\n }),\n lastRequest: () => ({\n admin: {\n readOnly: true,\n description: 'The date and time of the last request made to the key.',\n },\n }),\n expiresAt: () => ({\n admin: { readOnly: true, description: 'The date and time of when the API key will expire.' },\n }),\n permissions: () => ({\n admin: { readOnly: true, description: 'The permissions for the API key.' },\n }),\n metadata: () => ({\n type: 'json',\n admin: {\n readOnly: true,\n description: 'Any additional metadata you want to store with the key.',\n },\n }),\n };\n\n const apiKeyFieldRules: 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 // Using any because PayloadCMS label function receives translation function with dynamic type\n label: ({ t }: any) => t('general:updatedAt'),\n }),\n },\n ];\n\n const collectionFields = getCollectionFields({\n schema: apiKeySchema,\n fieldRules: apiKeyFieldRules,\n additionalProperties: fieldOverrides,\n });\n\n let apiKeyCollection: CollectionConfig = {\n ...existingApiKeyCollection,\n slug: apiKeySlug,\n admin: {\n hidden: pluginOptions.hidePluginCollections ?? false,\n useAsTitle: apiKeySchema?.fields?.name?.fieldName ?? 'id',\n description: 'API keys are used to authenticate requests to the API.',\n group: pluginOptions?.collectionAdminGroup ?? 'Auth',\n ...existingApiKeyCollection?.admin,\n },\n access: {\n ...getAdminAccess(pluginOptions),\n ...(existingApiKeyCollection?.access ?? {}),\n },\n custom: {\n ...(existingApiKeyCollection?.custom ?? {}),\n betterAuthModelKey: baModelKey.apikey,\n },\n fields: [\n ...(existingApiKeyCollection?.fields ?? []),\n // Filter out fields that already exist to prevent duplicates\n ...filterDuplicateFields(existingApiKeyCollection?.fields, collectionFields),\n ],\n };\n\n if (typeof pluginOptions.pluginCollectionOverrides?.apiKeys === 'function') {\n apiKeyCollection = pluginOptions.pluginCollectionOverrides.apiKeys({\n collection: apiKeyCollection,\n });\n }\n\n assertAllSchemaFields(apiKeyCollection, apiKeySchema);\n\n return apiKeyCollection;\n}\n"],"names":["baModelKey","getAdminAccess","assertAllSchemaFields","getSchemaCollectionSlug","filterDuplicateFields","getCollectionFields","buildApiKeysCollection","incomingCollections","pluginOptions","resolvedSchemas","apiKeySlug","apikey","apiKeySchema","existingApiKeyCollection","find","collection","slug","fieldOverrides","name","admin","readOnly","description","start","prefix","key","userId","refillInterval","refillAmount","lastRefillAt","enabled","defaultValue","rateLimitEnabled","rateLimitTimeWindow","rateLimitMax","requestCount","remaining","lastRequest","expiresAt","permissions","metadata","type","apiKeyFieldRules","condition","field","transform","saveToJWT","disableBulkEdit","hidden","index","label","t","collectionFields","schema","fieldRules","additionalProperties","apiKeyCollection","hidePluginCollections","useAsTitle","fields","fieldName","group","collectionAdminGroup","access","custom","betterAuthModelKey","pluginCollectionOverrides","apiKeys"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { BuildCollectionProps } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function buildDeviceCodeCollection({ incomingCollections, pluginOptions, resolvedSchemas, }: BuildCollectionProps): CollectionConfig;
@@ -0,0 +1,50 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug, getSchemaFieldName } from "./utils/collection-schema";
4
+ import { filterDuplicateFields } from "./utils/filter-duplicate-fields";
5
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
6
+ export function buildDeviceCodeCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
7
+ const deviceCodeSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.deviceCode);
8
+ const deviceCodeSchema = resolvedSchemas[baModelKey.deviceCode];
9
+ const existingDeviceCodeCollection = incomingCollections.find((collection)=>collection.slug === deviceCodeSlug);
10
+ const fieldOverrides = {
11
+ userId: ()=>({
12
+ index: true,
13
+ admin: {
14
+ readOnly: true,
15
+ description: 'The user that is a member of the team.'
16
+ }
17
+ })
18
+ };
19
+ const collectionFields = getCollectionFields({
20
+ schema: deviceCodeSchema,
21
+ additionalProperties: fieldOverrides
22
+ });
23
+ const deviceCodeCollection = {
24
+ ...existingDeviceCodeCollection,
25
+ slug: deviceCodeSlug,
26
+ admin: {
27
+ hidden: pluginOptions.hidePluginCollections ?? false,
28
+ useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.deviceCode, 'deviceCode'),
29
+ description: 'Device codes of an organization team.',
30
+ group: pluginOptions?.collectionAdminGroup ?? 'Auth',
31
+ ...existingDeviceCodeCollection?.admin
32
+ },
33
+ access: {
34
+ ...getAdminAccess(pluginOptions),
35
+ ...existingDeviceCodeCollection?.access ?? {}
36
+ },
37
+ custom: {
38
+ ...existingDeviceCodeCollection?.custom ?? {},
39
+ betterAuthModelKey: baModelKey.deviceCode
40
+ },
41
+ fields: [
42
+ ...existingDeviceCodeCollection?.fields ?? [],
43
+ ...filterDuplicateFields(existingDeviceCodeCollection?.fields, collectionFields)
44
+ ]
45
+ };
46
+ assertAllSchemaFields(deviceCodeCollection, deviceCodeSchema);
47
+ return deviceCodeCollection;
48
+ }
49
+
50
+ //# sourceMappingURL=device-code.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/better-auth/plugin/lib/build-collections/device-code.ts"],"sourcesContent":["import { baModelKey } from '../../constants';\nimport { getAdminAccess } from '../../helpers/get-admin-access';\nimport {\n assertAllSchemaFields,\n getSchemaCollectionSlug,\n getSchemaFieldName,\n} from './utils/collection-schema';\nimport { filterDuplicateFields } from './utils/filter-duplicate-fields';\nimport { getCollectionFields } from './utils/transform-schema-fields-to-payload';\n\nimport type { DeviceCode } from '@/better-auth/generated-types';\nimport type { BuildCollectionProps, FieldOverrides } from '@/better-auth/plugin/types';\nimport type { CollectionConfig } from 'payload';\n\nexport function buildDeviceCodeCollection({\n incomingCollections,\n pluginOptions,\n resolvedSchemas,\n}: BuildCollectionProps): CollectionConfig {\n const deviceCodeSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.deviceCode);\n const deviceCodeSchema = resolvedSchemas[baModelKey.deviceCode];\n\n const existingDeviceCodeCollection = incomingCollections.find(\n collection => collection.slug === deviceCodeSlug\n ) as CollectionConfig | undefined;\n\n const fieldOverrides: FieldOverrides<keyof DeviceCode> = {\n userId: () => ({\n index: true,\n admin: { readOnly: true, description: 'The user that is a member of the team.' },\n }),\n };\n\n const collectionFields = getCollectionFields({\n schema: deviceCodeSchema,\n additionalProperties: fieldOverrides,\n });\n\n const deviceCodeCollection: CollectionConfig = {\n ...existingDeviceCodeCollection,\n slug: deviceCodeSlug,\n admin: {\n hidden: pluginOptions.hidePluginCollections ?? false,\n useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.deviceCode, 'deviceCode'),\n description: 'Device codes of an organization team.',\n group: pluginOptions?.collectionAdminGroup ?? 'Auth',\n ...existingDeviceCodeCollection?.admin,\n },\n access: {\n ...getAdminAccess(pluginOptions),\n ...(existingDeviceCodeCollection?.access ?? {}),\n },\n custom: {\n ...(existingDeviceCodeCollection?.custom ?? {}),\n betterAuthModelKey: baModelKey.deviceCode,\n },\n fields: [\n ...(existingDeviceCodeCollection?.fields ?? []),\n ...filterDuplicateFields(existingDeviceCodeCollection?.fields, collectionFields),\n ],\n };\n\n assertAllSchemaFields(deviceCodeCollection, deviceCodeSchema);\n\n return deviceCodeCollection;\n}\n"],"names":["baModelKey","getAdminAccess","assertAllSchemaFields","getSchemaCollectionSlug","getSchemaFieldName","filterDuplicateFields","getCollectionFields","buildDeviceCodeCollection","incomingCollections","pluginOptions","resolvedSchemas","deviceCodeSlug","deviceCode","deviceCodeSchema","existingDeviceCodeCollection","find","collection","slug","fieldOverrides","userId","index","admin","readOnly","description","collectionFields","schema","additionalProperties","deviceCodeCollection","hidden","hidePluginCollections","useAsTitle","group","collectionAdminGroup","access","custom","betterAuthModelKey","fields"],"mappings":"AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SACEC,qBAAqB,EACrBC,uBAAuB,EACvBC,kBAAkB,QACb,4BAA4B;AACnC,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,mBAAmB,QAAQ,6CAA6C;AAMjF,OAAO,SAASC,0BAA0B,EACxCC,mBAAmB,EACnBC,aAAa,EACbC,eAAe,EACM;IACrB,MAAMC,iBAAiBR,wBAAwBO,iBAAiBV,WAAWY,UAAU;IACrF,MAAMC,mBAAmBH,eAAe,CAACV,WAAWY,UAAU,CAAC;IAE/D,MAAME,+BAA+BN,oBAAoBO,IAAI,CAC3DC,CAAAA,aAAcA,WAAWC,IAAI,KAAKN;IAGpC,MAAMO,iBAAmD;QACvDC,QAAQ,IAAO,CAAA;gBACbC,OAAO;gBACPC,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAyC;YACjF,CAAA;IACF;IAEA,MAAMC,mBAAmBlB,oBAAoB;QAC3CmB,QAAQZ;QACRa,sBAAsBR;IACxB;IAEA,MAAMS,uBAAyC;QAC7C,GAAGb,4BAA4B;QAC/BG,MAAMN;QACNU,OAAO;YACLO,QAAQnB,cAAcoB,qBAAqB,IAAI;YAC/CC,YAAY1B,mBAAmBM,iBAAiBV,WAAWY,UAAU,EAAE;YACvEW,aAAa;YACbQ,OAAOtB,eAAeuB,wBAAwB;YAC9C,GAAGlB,8BAA8BO,KAAK;QACxC;QACAY,QAAQ;YACN,GAAGhC,eAAeQ,cAAc;YAChC,GAAIK,8BAA8BmB,UAAU,CAAC,CAAC;QAChD;QACAC,QAAQ;YACN,GAAIpB,8BAA8BoB,UAAU,CAAC,CAAC;YAC9CC,oBAAoBnC,WAAWY,UAAU;QAC3C;QACAwB,QAAQ;eACFtB,8BAA8BsB,UAAU,EAAE;eAC3C/B,sBAAsBS,8BAA8BsB,QAAQZ;SAChE;IACH;IAEAtB,sBAAsByB,sBAAsBd;IAE5C,OAAOc;AACT"}
@@ -0,0 +1,10 @@
1
+ import type { CollectionConfig } from 'payload';
2
+ import type { BetterAuthPluginOptions, BetterAuthSchemas } from '../../types';
3
+ /**
4
+ * Builds the required collections based on the BetterAuth options and plugins
5
+ */
6
+ export declare function buildCollections({ incomingCollections, pluginOptions, resolvedSchemas, }: {
7
+ incomingCollections: CollectionConfig[];
8
+ pluginOptions: BetterAuthPluginOptions;
9
+ resolvedSchemas: BetterAuthSchemas;
10
+ }): Record<string, CollectionConfig>;
@@ -0,0 +1,73 @@
1
+ import { baModelKey, baseSlugs } from "../../constants";
2
+ import { buildAccountsCollection } from "./accounts/index";
3
+ import { buildAdminInvitationsCollection } from "./admin-invitations";
4
+ import { buildApiKeysCollection } from "./api-keys";
5
+ import { buildDeviceCodeCollection } from "./device-code";
6
+ import { buildInvitationsCollection } from "./invitations";
7
+ import { buildJwksCollection } from "./jwks";
8
+ import { buildMembersCollection } from "./members";
9
+ import { buildOauthAccessTokensCollection } from "./oauth-access-tokens";
10
+ import { buildOauthApplicationsCollection } from "./oauth-applications";
11
+ import { buildOauthConsentsCollection } from "./oauth-consents";
12
+ import { buildOrganizationsCollection } from "./organizations";
13
+ import { buildPasskeysCollection } from "./passkeys";
14
+ import { buildSessionsCollection } from "./sessions";
15
+ import { buildSsoProvidersCollection } from "./sso-providers";
16
+ import { buildSubscriptionsCollection } from "./subscriptions";
17
+ import { buildTeamMembersCollection } from "./team-members";
18
+ import { buildTeamsCollection } from "./teams";
19
+ import { buildTwoFactorsCollection } from "./two-factors";
20
+ import { buildUsersCollection } from "./users/index";
21
+ import { getSchemaCollectionSlug } from "./utils/collection-schema";
22
+ import { buildVerificationsCollection } from "./verifications";
23
+ /**
24
+ * Builds the required collections based on the BetterAuth options and plugins
25
+ */ export function buildCollections({ incomingCollections, pluginOptions, resolvedSchemas }) {
26
+ const collectionBuilders = {
27
+ [baModelKey.user]: (props)=>buildUsersCollection(props),
28
+ [baModelKey.account]: (props)=>buildAccountsCollection(props),
29
+ [baModelKey.session]: (props)=>buildSessionsCollection(props),
30
+ [baModelKey.verification]: (props)=>buildVerificationsCollection(props),
31
+ [baModelKey.organization]: (props)=>buildOrganizationsCollection(props),
32
+ [baModelKey.member]: (props)=>buildMembersCollection(props),
33
+ [baModelKey.invitation]: (props)=>buildInvitationsCollection(props),
34
+ [baModelKey.team]: (props)=>buildTeamsCollection(props),
35
+ [baModelKey.teamMember]: (props)=>buildTeamMembersCollection(props),
36
+ [baModelKey.jwks]: (props)=>buildJwksCollection(props),
37
+ [baModelKey.apikey]: (props)=>buildApiKeysCollection(props),
38
+ [baModelKey.twoFactor]: (props)=>buildTwoFactorsCollection(props),
39
+ [baModelKey.oauthAccessToken]: (props)=>buildOauthAccessTokensCollection(props),
40
+ [baModelKey.oauthApplication]: (props)=>buildOauthApplicationsCollection(props),
41
+ [baModelKey.oauthConsent]: (props)=>buildOauthConsentsCollection(props),
42
+ [baModelKey.passkey]: (props)=>buildPasskeysCollection(props),
43
+ [baModelKey.ssoProvider]: (props)=>buildSsoProvidersCollection(props),
44
+ [baModelKey.subscription]: (props)=>buildSubscriptionsCollection(props),
45
+ [baModelKey.deviceCode]: (props)=>buildDeviceCodeCollection(props)
46
+ };
47
+ const collectionMap = {};
48
+ for (const modelKey of Object.keys(resolvedSchemas)){
49
+ const collectionSlug = getSchemaCollectionSlug(resolvedSchemas, modelKey);
50
+ const builder = collectionBuilders[modelKey];
51
+ if (!builder) continue;
52
+ collectionMap[collectionSlug] = builder({
53
+ incomingCollections,
54
+ pluginOptions,
55
+ resolvedSchemas
56
+ });
57
+ }
58
+ // Add adminInvitations collection as it's not in the collectionSchemaMap
59
+ const adminInvitationsSlug = pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;
60
+ collectionMap[adminInvitationsSlug] = buildAdminInvitationsCollection({
61
+ incomingCollections,
62
+ pluginOptions
63
+ });
64
+ // Then add incoming collections that don't conflict with required ones
65
+ incomingCollections.forEach((c)=>{
66
+ if (!collectionMap[c.slug]) {
67
+ collectionMap[c.slug] = c;
68
+ }
69
+ });
70
+ return collectionMap;
71
+ }
72
+
73
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/better-auth/plugin/lib/build-collections/index.ts"],"sourcesContent":["import type { ModelKey } from '@/better-auth/generated-types';\nimport type { CollectionConfig } from 'payload';\nimport { baModelKey, baseSlugs } from '../../constants';\nimport type { BetterAuthPluginOptions, BetterAuthSchemas, BuildCollectionProps } from '../../types';\nimport { buildAccountsCollection } from './accounts/index';\nimport { buildAdminInvitationsCollection } from './admin-invitations';\nimport { buildApiKeysCollection } from './api-keys';\nimport { buildDeviceCodeCollection } from './device-code';\nimport { buildInvitationsCollection } from './invitations';\nimport { buildJwksCollection } from './jwks';\nimport { buildMembersCollection } from './members';\nimport { buildOauthAccessTokensCollection } from './oauth-access-tokens';\nimport { buildOauthApplicationsCollection } from './oauth-applications';\nimport { buildOauthConsentsCollection } from './oauth-consents';\nimport { buildOrganizationsCollection } from './organizations';\nimport { buildPasskeysCollection } from './passkeys';\nimport { buildSessionsCollection } from './sessions';\nimport { buildSsoProvidersCollection } from './sso-providers';\nimport { buildSubscriptionsCollection } from './subscriptions';\nimport { buildTeamMembersCollection } from './team-members';\nimport { buildTeamsCollection } from './teams';\nimport { buildTwoFactorsCollection } from './two-factors';\nimport { buildUsersCollection } from './users/index';\nimport { getSchemaCollectionSlug } from './utils/collection-schema';\nimport { buildVerificationsCollection } from './verifications';\n\n/**\n * Builds the required collections based on the BetterAuth options and plugins\n */\nexport function buildCollections({\n incomingCollections,\n pluginOptions,\n resolvedSchemas,\n}: {\n incomingCollections: CollectionConfig[];\n pluginOptions: BetterAuthPluginOptions;\n resolvedSchemas: BetterAuthSchemas;\n}): Record<string, CollectionConfig> {\n const collectionBuilders: Record<ModelKey, (props: BuildCollectionProps) => CollectionConfig> = {\n [baModelKey.user]: (props: BuildCollectionProps) => buildUsersCollection(props),\n [baModelKey.account]: (props: BuildCollectionProps) => buildAccountsCollection(props),\n [baModelKey.session]: (props: BuildCollectionProps) => buildSessionsCollection(props),\n [baModelKey.verification]: (props: BuildCollectionProps) => buildVerificationsCollection(props),\n [baModelKey.organization]: (props: BuildCollectionProps) => buildOrganizationsCollection(props),\n [baModelKey.member]: (props: BuildCollectionProps) => buildMembersCollection(props),\n [baModelKey.invitation]: (props: BuildCollectionProps) => buildInvitationsCollection(props),\n [baModelKey.team]: (props: BuildCollectionProps) => buildTeamsCollection(props),\n [baModelKey.teamMember]: (props: BuildCollectionProps) => buildTeamMembersCollection(props),\n [baModelKey.jwks]: (props: BuildCollectionProps) => buildJwksCollection(props),\n [baModelKey.apikey]: (props: BuildCollectionProps) => buildApiKeysCollection(props),\n [baModelKey.twoFactor]: (props: BuildCollectionProps) => buildTwoFactorsCollection(props),\n [baModelKey.oauthAccessToken]: (props: BuildCollectionProps) =>\n buildOauthAccessTokensCollection(props),\n [baModelKey.oauthApplication]: (props: BuildCollectionProps) =>\n buildOauthApplicationsCollection(props),\n [baModelKey.oauthConsent]: (props: BuildCollectionProps) => buildOauthConsentsCollection(props),\n [baModelKey.passkey]: (props: BuildCollectionProps) => buildPasskeysCollection(props),\n [baModelKey.ssoProvider]: (props: BuildCollectionProps) => buildSsoProvidersCollection(props),\n [baModelKey.subscription]: (props: BuildCollectionProps) => buildSubscriptionsCollection(props),\n [baModelKey.deviceCode]: (props: BuildCollectionProps) => buildDeviceCodeCollection(props),\n };\n\n const collectionMap: Record<string, CollectionConfig> = {};\n for (const modelKey of Object.keys(resolvedSchemas) as ModelKey[]) {\n const collectionSlug = getSchemaCollectionSlug(resolvedSchemas, modelKey);\n const builder = collectionBuilders[modelKey];\n if (!builder) continue;\n collectionMap[collectionSlug] = builder({\n incomingCollections,\n pluginOptions,\n resolvedSchemas,\n });\n }\n\n // Add adminInvitations collection as it's not in the collectionSchemaMap\n const adminInvitationsSlug = pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;\n collectionMap[adminInvitationsSlug] = buildAdminInvitationsCollection({\n incomingCollections,\n pluginOptions,\n });\n\n // Then add incoming collections that don't conflict with required ones\n incomingCollections.forEach(c => {\n if (!collectionMap[c.slug]) {\n collectionMap[c.slug] = c;\n }\n });\n\n return collectionMap;\n}\n"],"names":["baModelKey","baseSlugs","buildAccountsCollection","buildAdminInvitationsCollection","buildApiKeysCollection","buildDeviceCodeCollection","buildInvitationsCollection","buildJwksCollection","buildMembersCollection","buildOauthAccessTokensCollection","buildOauthApplicationsCollection","buildOauthConsentsCollection","buildOrganizationsCollection","buildPasskeysCollection","buildSessionsCollection","buildSsoProvidersCollection","buildSubscriptionsCollection","buildTeamMembersCollection","buildTeamsCollection","buildTwoFactorsCollection","buildUsersCollection","getSchemaCollectionSlug","buildVerificationsCollection","buildCollections","incomingCollections","pluginOptions","resolvedSchemas","collectionBuilders","user","props","account","session","verification","organization","member","invitation","team","teamMember","jwks","apikey","twoFactor","oauthAccessToken","oauthApplication","oauthConsent","passkey","ssoProvider","subscription","deviceCode","collectionMap","modelKey","Object","keys","collectionSlug","builder","adminInvitationsSlug","adminInvitations","slug","forEach","c"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { BuildCollectionProps } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function buildInvitationsCollection({ incomingCollections, pluginOptions, resolvedSchemas, }: BuildCollectionProps): CollectionConfig;
@@ -0,0 +1,94 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug, getSchemaFieldName } from "./utils/collection-schema";
4
+ import { filterDuplicateFields } from "./utils/filter-duplicate-fields";
5
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
6
+ export function buildInvitationsCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
7
+ const invitationSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.invitation);
8
+ const invitationSchema = resolvedSchemas[baModelKey.invitation];
9
+ const existingInvitationCollection = incomingCollections.find((collection)=>collection.slug === invitationSlug);
10
+ const fieldOverrides = {
11
+ email: ()=>({
12
+ index: true,
13
+ admin: {
14
+ readOnly: true,
15
+ description: 'The email of the user being invited.'
16
+ }
17
+ }),
18
+ inviterId: ()=>({
19
+ admin: {
20
+ readOnly: true,
21
+ description: 'The user who invited the user.'
22
+ }
23
+ }),
24
+ teamId: ()=>({
25
+ index: true,
26
+ admin: {
27
+ readOnly: true,
28
+ description: 'The team that the user is being invited to.'
29
+ }
30
+ }),
31
+ organizationId: ()=>({
32
+ index: true,
33
+ admin: {
34
+ readOnly: true,
35
+ description: 'The organization that the user is being invited to.'
36
+ }
37
+ }),
38
+ role: ()=>({
39
+ admin: {
40
+ readOnly: true,
41
+ description: 'The role of the user being invited.'
42
+ }
43
+ }),
44
+ status: ()=>({
45
+ defaultValue: 'pending',
46
+ admin: {
47
+ readOnly: true,
48
+ description: 'The status of the invitation.'
49
+ }
50
+ }),
51
+ expiresAt: ()=>({
52
+ admin: {
53
+ readOnly: true,
54
+ description: 'The date and time when the invitation will expire.'
55
+ }
56
+ })
57
+ };
58
+ const collectionFields = getCollectionFields({
59
+ schema: invitationSchema,
60
+ additionalProperties: fieldOverrides
61
+ });
62
+ let invitationCollection = {
63
+ ...existingInvitationCollection,
64
+ slug: invitationSlug,
65
+ admin: {
66
+ hidden: pluginOptions.hidePluginCollections ?? false,
67
+ useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.invitation, 'email'),
68
+ description: 'Invitations to join an organization',
69
+ group: pluginOptions?.collectionAdminGroup ?? 'Auth',
70
+ ...existingInvitationCollection?.admin
71
+ },
72
+ access: {
73
+ ...getAdminAccess(pluginOptions),
74
+ ...existingInvitationCollection?.access ?? {}
75
+ },
76
+ custom: {
77
+ ...existingInvitationCollection?.custom ?? {},
78
+ betterAuthModelKey: baModelKey.invitation
79
+ },
80
+ fields: [
81
+ ...existingInvitationCollection?.fields ?? [],
82
+ ...filterDuplicateFields(existingInvitationCollection?.fields, collectionFields)
83
+ ]
84
+ };
85
+ if (typeof pluginOptions.pluginCollectionOverrides?.invitations === 'function') {
86
+ invitationCollection = pluginOptions.pluginCollectionOverrides.invitations({
87
+ collection: invitationCollection
88
+ });
89
+ }
90
+ assertAllSchemaFields(invitationCollection, invitationSchema);
91
+ return invitationCollection;
92
+ }
93
+
94
+ //# sourceMappingURL=invitations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/better-auth/plugin/lib/build-collections/invitations.ts"],"sourcesContent":["import { baModelKey } from '../../constants';\nimport { getAdminAccess } from '../../helpers/get-admin-access';\nimport {\n assertAllSchemaFields,\n getSchemaCollectionSlug,\n getSchemaFieldName,\n} from './utils/collection-schema';\nimport { filterDuplicateFields } from './utils/filter-duplicate-fields';\nimport { getCollectionFields } from './utils/transform-schema-fields-to-payload';\n\nimport type { Invitation } from '@/better-auth/generated-types';\nimport type { BuildCollectionProps, FieldOverrides } from '@/better-auth/plugin/types';\nimport type { CollectionConfig } from 'payload';\n\nexport function buildInvitationsCollection({\n incomingCollections,\n pluginOptions,\n resolvedSchemas,\n}: BuildCollectionProps): CollectionConfig {\n const invitationSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.invitation);\n const invitationSchema = resolvedSchemas[baModelKey.invitation];\n const existingInvitationCollection = incomingCollections.find(\n collection => collection.slug === invitationSlug\n ) as CollectionConfig | undefined;\n\n const fieldOverrides: FieldOverrides<keyof Invitation> = {\n email: () => ({\n index: true,\n admin: { readOnly: true, description: 'The email of the user being invited.' },\n }),\n inviterId: () => ({\n admin: { readOnly: true, description: 'The user who invited the user.' },\n }),\n teamId: () => ({\n index: true,\n admin: { readOnly: true, description: 'The team that the user is being invited to.' },\n }),\n organizationId: () => ({\n index: true,\n admin: { readOnly: true, description: 'The organization that the user is being invited to.' },\n }),\n role: () => ({\n admin: { readOnly: true, description: 'The role of the user being invited.' },\n }),\n status: () => ({\n defaultValue: 'pending',\n admin: { readOnly: true, description: 'The status of the invitation.' },\n }),\n expiresAt: () => ({\n admin: { readOnly: true, description: 'The date and time when the invitation will expire.' },\n }),\n };\n\n const collectionFields = getCollectionFields({\n schema: invitationSchema,\n additionalProperties: fieldOverrides,\n });\n\n let invitationCollection: CollectionConfig = {\n ...existingInvitationCollection,\n slug: invitationSlug,\n admin: {\n hidden: pluginOptions.hidePluginCollections ?? false,\n useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.invitation, 'email'),\n description: 'Invitations to join an organization',\n group: pluginOptions?.collectionAdminGroup ?? 'Auth',\n ...existingInvitationCollection?.admin,\n },\n access: {\n ...getAdminAccess(pluginOptions),\n ...(existingInvitationCollection?.access ?? {}),\n },\n custom: {\n ...(existingInvitationCollection?.custom ?? {}),\n betterAuthModelKey: baModelKey.invitation,\n },\n fields: [\n ...(existingInvitationCollection?.fields ?? []),\n ...filterDuplicateFields(existingInvitationCollection?.fields, collectionFields),\n ],\n };\n\n if (typeof pluginOptions.pluginCollectionOverrides?.invitations === 'function') {\n invitationCollection = pluginOptions.pluginCollectionOverrides.invitations({\n collection: invitationCollection,\n });\n }\n\n assertAllSchemaFields(invitationCollection, invitationSchema);\n\n return invitationCollection;\n}\n"],"names":["baModelKey","getAdminAccess","assertAllSchemaFields","getSchemaCollectionSlug","getSchemaFieldName","filterDuplicateFields","getCollectionFields","buildInvitationsCollection","incomingCollections","pluginOptions","resolvedSchemas","invitationSlug","invitation","invitationSchema","existingInvitationCollection","find","collection","slug","fieldOverrides","email","index","admin","readOnly","description","inviterId","teamId","organizationId","role","status","defaultValue","expiresAt","collectionFields","schema","additionalProperties","invitationCollection","hidden","hidePluginCollections","useAsTitle","group","collectionAdminGroup","access","custom","betterAuthModelKey","fields","pluginCollectionOverrides","invitations"],"mappings":"AAAA,SAASA,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,cAAc,QAAQ,iCAAiC;AAChE,SACEC,qBAAqB,EACrBC,uBAAuB,EACvBC,kBAAkB,QACb,4BAA4B;AACnC,SAASC,qBAAqB,QAAQ,kCAAkC;AACxE,SAASC,mBAAmB,QAAQ,6CAA6C;AAMjF,OAAO,SAASC,2BAA2B,EACzCC,mBAAmB,EACnBC,aAAa,EACbC,eAAe,EACM;IACrB,MAAMC,iBAAiBR,wBAAwBO,iBAAiBV,WAAWY,UAAU;IACrF,MAAMC,mBAAmBH,eAAe,CAACV,WAAWY,UAAU,CAAC;IAC/D,MAAME,+BAA+BN,oBAAoBO,IAAI,CAC3DC,CAAAA,aAAcA,WAAWC,IAAI,KAAKN;IAGpC,MAAMO,iBAAmD;QACvDC,OAAO,IAAO,CAAA;gBACZC,OAAO;gBACPC,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAuC;YAC/E,CAAA;QACAC,WAAW,IAAO,CAAA;gBAChBH,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAiC;YACzE,CAAA;QACAE,QAAQ,IAAO,CAAA;gBACbL,OAAO;gBACPC,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAA8C;YACtF,CAAA;QACAG,gBAAgB,IAAO,CAAA;gBACrBN,OAAO;gBACPC,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAsD;YAC9F,CAAA;QACAI,MAAM,IAAO,CAAA;gBACXN,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAsC;YAC9E,CAAA;QACAK,QAAQ,IAAO,CAAA;gBACbC,cAAc;gBACdR,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAgC;YACxE,CAAA;QACAO,WAAW,IAAO,CAAA;gBAChBT,OAAO;oBAAEC,UAAU;oBAAMC,aAAa;gBAAqD;YAC7F,CAAA;IACF;IAEA,MAAMQ,mBAAmBzB,oBAAoB;QAC3C0B,QAAQnB;QACRoB,sBAAsBf;IACxB;IAEA,IAAIgB,uBAAyC;QAC3C,GAAGpB,4BAA4B;QAC/BG,MAAMN;QACNU,OAAO;YACLc,QAAQ1B,cAAc2B,qBAAqB,IAAI;YAC/CC,YAAYjC,mBAAmBM,iBAAiBV,WAAWY,UAAU,EAAE;YACvEW,aAAa;YACbe,OAAO7B,eAAe8B,wBAAwB;YAC9C,GAAGzB,8BAA8BO,KAAK;QACxC;QACAmB,QAAQ;YACN,GAAGvC,eAAeQ,cAAc;YAChC,GAAIK,8BAA8B0B,UAAU,CAAC,CAAC;QAChD;QACAC,QAAQ;YACN,GAAI3B,8BAA8B2B,UAAU,CAAC,CAAC;YAC9CC,oBAAoB1C,WAAWY,UAAU;QAC3C;QACA+B,QAAQ;eACF7B,8BAA8B6B,UAAU,EAAE;eAC3CtC,sBAAsBS,8BAA8B6B,QAAQZ;SAChE;IACH;IAEA,IAAI,OAAOtB,cAAcmC,yBAAyB,EAAEC,gBAAgB,YAAY;QAC9EX,uBAAuBzB,cAAcmC,yBAAyB,CAACC,WAAW,CAAC;YACzE7B,YAAYkB;QACd;IACF;IAEAhC,sBAAsBgC,sBAAsBrB;IAE5C,OAAOqB;AACT"}
@@ -0,0 +1,3 @@
1
+ import type { BuildCollectionProps } from '@/better-auth/plugin/types';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function buildJwksCollection({ incomingCollections, pluginOptions, resolvedSchemas, }: BuildCollectionProps): CollectionConfig;