@luochuanyuewu/payload-auth 1.8.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 (424) hide show
  1. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +24 -0
  2. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts.map +1 -0
  3. package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +317 -0
  4. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +2 -0
  5. package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts.map +1 -0
  6. package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +23 -0
  7. package/dist/better-auth/adapter/generate-schema/index.d.ts +5 -0
  8. package/dist/better-auth/adapter/generate-schema/index.d.ts.map +1 -0
  9. package/dist/better-auth/adapter/generate-schema/index.js +19 -0
  10. package/dist/better-auth/adapter/generate-schema/utils.d.ts +3 -0
  11. package/dist/better-auth/adapter/generate-schema/utils.d.ts.map +1 -0
  12. package/dist/better-auth/adapter/generate-schema/utils.js +20 -0
  13. package/dist/better-auth/adapter/index.d.ts +16 -0
  14. package/dist/better-auth/adapter/index.d.ts.map +1 -0
  15. package/dist/better-auth/adapter/index.js +717 -0
  16. package/dist/better-auth/adapter/transform/index.d.ts +31 -0
  17. package/dist/better-auth/adapter/transform/index.d.ts.map +1 -0
  18. package/dist/better-auth/adapter/transform/index.js +729 -0
  19. package/dist/better-auth/adapter/types.d.ts +11 -0
  20. package/dist/better-auth/adapter/types.d.ts.map +1 -0
  21. package/dist/better-auth/adapter/types.js +3 -0
  22. package/dist/better-auth/generated-types.d.ts +329 -0
  23. package/dist/better-auth/generated-types.d.ts.map +1 -0
  24. package/dist/better-auth/generated-types.js +4 -0
  25. package/dist/better-auth/index.d.ts +4 -0
  26. package/dist/better-auth/index.d.ts.map +1 -0
  27. package/dist/better-auth/index.js +5 -0
  28. package/dist/better-auth/plugin/constants.d.ts +231 -0
  29. package/dist/better-auth/plugin/constants.d.ts.map +1 -0
  30. package/dist/better-auth/plugin/constants.js +259 -0
  31. package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts +13 -0
  32. package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts.map +1 -0
  33. package/dist/better-auth/plugin/helpers/check-plugin-exists.js +14 -0
  34. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +30 -0
  35. package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts.map +1 -0
  36. package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +46 -0
  37. package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +8 -0
  38. package/dist/better-auth/plugin/helpers/get-admin-access.d.ts.map +1 -0
  39. package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
  40. package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +6 -0
  41. package/dist/better-auth/plugin/helpers/get-all-roles.d.ts.map +1 -0
  42. package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
  43. package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts +19 -0
  44. package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts.map +1 -0
  45. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +75 -0
  46. package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts +6 -0
  47. package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts.map +1 -0
  48. package/dist/better-auth/plugin/helpers/get-collection-slug.js +20 -0
  49. package/dist/better-auth/plugin/helpers/get-collection.d.ts +28 -0
  50. package/dist/better-auth/plugin/helpers/get-collection.d.ts.map +1 -0
  51. package/dist/better-auth/plugin/helpers/get-collection.js +49 -0
  52. package/dist/better-auth/plugin/helpers/get-ip.d.ts +3 -0
  53. package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -0
  54. package/dist/better-auth/plugin/helpers/get-ip.js +31 -0
  55. package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts +3 -0
  56. package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts.map +1 -0
  57. package/dist/better-auth/plugin/helpers/get-signed-cookie.js +63 -0
  58. package/dist/better-auth/plugin/helpers/index.d.ts +2 -0
  59. package/dist/better-auth/plugin/helpers/index.d.ts.map +1 -0
  60. package/dist/better-auth/plugin/helpers/index.js +3 -0
  61. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +60 -0
  62. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -0
  63. package/dist/better-auth/plugin/helpers/prepare-session-data.js +49 -0
  64. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts +21 -0
  65. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts.map +1 -0
  66. package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js +63 -0
  67. package/dist/better-auth/plugin/index.d.ts +8 -0
  68. package/dist/better-auth/plugin/index.d.ts.map +1 -0
  69. package/dist/better-auth/plugin/index.js +103 -0
  70. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts +13 -0
  71. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts.map +1 -0
  72. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js +87 -0
  73. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +4 -0
  74. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
  75. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +51 -0
  76. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +4 -0
  77. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -0
  78. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +150 -0
  79. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +6 -0
  80. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts.map +1 -0
  81. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
  82. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +3 -0
  83. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts.map +1 -0
  84. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
  85. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +7 -0
  86. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -0
  87. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +117 -0
  88. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +4 -0
  89. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -0
  90. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +174 -0
  91. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts +4 -0
  92. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts.map +1 -0
  93. package/dist/better-auth/plugin/lib/build-collections/device-code.js +49 -0
  94. package/dist/better-auth/plugin/lib/build-collections/index.d.ts +11 -0
  95. package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -0
  96. package/dist/better-auth/plugin/lib/build-collections/index.js +79 -0
  97. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +4 -0
  98. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -0
  99. package/dist/better-auth/plugin/lib/build-collections/invitations.js +93 -0
  100. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +4 -0
  101. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -0
  102. package/dist/better-auth/plugin/lib/build-collections/jwks.js +58 -0
  103. package/dist/better-auth/plugin/lib/build-collections/members.d.ts +4 -0
  104. package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -0
  105. package/dist/better-auth/plugin/lib/build-collections/members.js +72 -0
  106. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +4 -0
  107. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -0
  108. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +105 -0
  109. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +4 -0
  110. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -0
  111. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +117 -0
  112. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +4 -0
  113. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -0
  114. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +87 -0
  115. package/dist/better-auth/plugin/lib/build-collections/organization-roles.d.ts +4 -0
  116. package/dist/better-auth/plugin/lib/build-collections/organization-roles.d.ts.map +1 -0
  117. package/dist/better-auth/plugin/lib/build-collections/organization-roles.js +65 -0
  118. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +4 -0
  119. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -0
  120. package/dist/better-auth/plugin/lib/build-collections/organizations.js +106 -0
  121. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +4 -0
  122. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -0
  123. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +115 -0
  124. package/dist/better-auth/plugin/lib/build-collections/rate-limit.d.ts +4 -0
  125. package/dist/better-auth/plugin/lib/build-collections/rate-limit.d.ts.map +1 -0
  126. package/dist/better-auth/plugin/lib/build-collections/rate-limit.js +54 -0
  127. package/dist/better-auth/plugin/lib/build-collections/scim-provider.d.ts +4 -0
  128. package/dist/better-auth/plugin/lib/build-collections/scim-provider.d.ts.map +1 -0
  129. package/dist/better-auth/plugin/lib/build-collections/scim-provider.js +65 -0
  130. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +4 -0
  131. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -0
  132. package/dist/better-auth/plugin/lib/build-collections/sessions.js +140 -0
  133. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +4 -0
  134. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -0
  135. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +80 -0
  136. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts +4 -0
  137. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts.map +1 -0
  138. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +110 -0
  139. package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts +4 -0
  140. package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts.map +1 -0
  141. package/dist/better-auth/plugin/lib/build-collections/team-members.js +63 -0
  142. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +4 -0
  143. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -0
  144. package/dist/better-auth/plugin/lib/build-collections/teams.js +74 -0
  145. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +4 -0
  146. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -0
  147. package/dist/better-auth/plugin/lib/build-collections/two-factors.js +66 -0
  148. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +8 -0
  149. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -0
  150. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +52 -0
  151. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +12 -0
  152. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts.map +1 -0
  153. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +68 -0
  154. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +5 -0
  155. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -0
  156. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +6 -0
  157. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +3 -0
  158. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -0
  159. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +114 -0
  160. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +4 -0
  161. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts.map +1 -0
  162. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +64 -0
  163. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +4 -0
  164. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts.map +1 -0
  165. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +90 -0
  166. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +7 -0
  167. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -0
  168. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +80 -0
  169. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +3 -0
  170. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -0
  171. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +79 -0
  172. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +3 -0
  173. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -0
  174. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +54 -0
  175. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +7 -0
  176. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -0
  177. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +15 -0
  178. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +7 -0
  179. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts.map +1 -0
  180. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +8 -0
  181. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +3 -0
  182. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -0
  183. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +17 -0
  184. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +3 -0
  185. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -0
  186. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +90 -0
  187. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +4 -0
  188. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -0
  189. package/dist/better-auth/plugin/lib/build-collections/users/index.js +333 -0
  190. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts +16 -0
  191. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts.map +1 -0
  192. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js +24 -0
  193. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts +11 -0
  194. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts.map +1 -0
  195. package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js +112 -0
  196. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +8 -0
  197. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -0
  198. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +31 -0
  199. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +12 -0
  200. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts.map +1 -0
  201. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +26 -0
  202. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts +18 -0
  203. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts.map +1 -0
  204. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +84 -0
  205. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +21 -0
  206. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts.map +1 -0
  207. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +95 -0
  208. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +4 -0
  209. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -0
  210. package/dist/better-auth/plugin/lib/build-collections/verifications.js +82 -0
  211. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +6 -0
  212. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -0
  213. package/dist/better-auth/plugin/lib/get-payload-auth.js +9 -0
  214. package/dist/better-auth/plugin/lib/init-better-auth.d.ts +8 -0
  215. package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -0
  216. package/dist/better-auth/plugin/lib/init-better-auth.js +16 -0
  217. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +3 -0
  218. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -0
  219. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +12 -0
  220. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +3 -0
  221. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -0
  222. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +10 -0
  223. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts +3 -0
  224. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts.map +1 -0
  225. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js +8 -0
  226. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +12 -0
  227. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -0
  228. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +146 -0
  229. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +3 -0
  230. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -0
  231. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +18 -0
  232. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +3 -0
  233. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -0
  234. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +34 -0
  235. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +3 -0
  236. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -0
  237. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +11 -0
  238. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +3 -0
  239. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -0
  240. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +10 -0
  241. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts +3 -0
  242. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts.map +1 -0
  243. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js +11 -0
  244. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.d.ts +8 -0
  245. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.d.ts.map +1 -0
  246. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.js +20 -0
  247. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-before-role-middleware.d.ts +8 -0
  248. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-before-role-middleware.d.ts.map +1 -0
  249. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-before-role-middleware.js +20 -0
  250. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.d.ts +14 -0
  251. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.d.ts.map +1 -0
  252. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.js +38 -0
  253. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts +8 -0
  254. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts.map +1 -0
  255. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
  256. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts +26 -0
  257. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts.map +1 -0
  258. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
  259. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +10 -0
  260. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -0
  261. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +42 -0
  262. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +10 -0
  263. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts.map +1 -0
  264. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +62 -0
  265. package/dist/better-auth/plugin/lib/set-login-methods.d.ts +5 -0
  266. package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -0
  267. package/dist/better-auth/plugin/lib/set-login-methods.js +14 -0
  268. package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +10 -0
  269. package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts.map +1 -0
  270. package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +116 -0
  271. package/dist/better-auth/plugin/payload/components/admin-buttons/index.scss +36 -0
  272. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +11 -0
  273. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts.map +1 -0
  274. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +213 -0
  275. package/dist/better-auth/plugin/payload/components/admin-invite-button/index.scss +136 -0
  276. package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts +4 -0
  277. package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts.map +1 -0
  278. package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.js +197 -0
  279. package/dist/better-auth/plugin/payload/components/login-form/context.d.ts +49 -0
  280. package/dist/better-auth/plugin/payload/components/login-form/context.d.ts.map +1 -0
  281. package/dist/better-auth/plugin/payload/components/login-form/context.js +94 -0
  282. package/dist/better-auth/plugin/payload/components/login-form/credentials-form.d.ts +4 -0
  283. package/dist/better-auth/plugin/payload/components/login-form/credentials-form.d.ts.map +1 -0
  284. package/dist/better-auth/plugin/payload/components/login-form/credentials-form.js +167 -0
  285. package/dist/better-auth/plugin/payload/components/login-form/index.d.ts +5 -0
  286. package/dist/better-auth/plugin/payload/components/login-form/index.d.ts.map +1 -0
  287. package/dist/better-auth/plugin/payload/components/login-form/index.js +6 -0
  288. package/dist/better-auth/plugin/payload/components/login-form/index.scss +58 -0
  289. package/dist/better-auth/plugin/payload/components/logout-button.d.ts +5 -0
  290. package/dist/better-auth/plugin/payload/components/logout-button.d.ts.map +1 -0
  291. package/dist/better-auth/plugin/payload/components/logout-button.js +24 -0
  292. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts +9 -0
  293. package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts.map +1 -0
  294. package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +122 -0
  295. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts +3 -0
  296. package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts.map +1 -0
  297. package/dist/better-auth/plugin/payload/components/passkeys/client.js +61 -0
  298. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts +5 -0
  299. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts.map +1 -0
  300. package/dist/better-auth/plugin/payload/components/passkeys/index.js +42 -0
  301. package/dist/better-auth/plugin/payload/components/passkeys/index.scss +98 -0
  302. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts +9 -0
  303. package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts.map +1 -0
  304. package/dist/better-auth/plugin/payload/components/passkeys/list.js +57 -0
  305. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts +23 -0
  306. package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts.map +1 -0
  307. package/dist/better-auth/plugin/payload/components/passkeys/types.js +3 -0
  308. package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +7 -0
  309. package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts.map +1 -0
  310. package/dist/better-auth/plugin/payload/components/rsc-redirect.js +13 -0
  311. package/dist/better-auth/plugin/payload/components/token-field.d.ts +4 -0
  312. package/dist/better-auth/plugin/payload/components/token-field.d.ts.map +1 -0
  313. package/dist/better-auth/plugin/payload/components/token-field.js +29 -0
  314. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.d.ts +9 -0
  315. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.d.ts.map +1 -0
  316. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.js +347 -0
  317. package/dist/better-auth/plugin/payload/components/two-factor-auth/index.scss +116 -0
  318. package/dist/better-auth/plugin/payload/exports/client.d.ts +7 -0
  319. package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -0
  320. package/dist/better-auth/plugin/payload/exports/client.js +8 -0
  321. package/dist/better-auth/plugin/payload/exports/rsc.d.ts +9 -0
  322. package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -0
  323. package/dist/better-auth/plugin/payload/exports/rsc.js +10 -0
  324. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +3 -0
  325. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts.map +1 -0
  326. package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +9 -0
  327. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +2 -0
  328. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts.map +1 -0
  329. package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +22 -0
  330. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +23 -0
  331. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -0
  332. package/dist/better-auth/plugin/payload/views/admin-login/client.js +24 -0
  333. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +11 -0
  334. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -0
  335. package/dist/better-auth/plugin/payload/views/admin-login/index.js +143 -0
  336. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +23 -0
  337. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -0
  338. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +185 -0
  339. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +10 -0
  340. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -0
  341. package/dist/better-auth/plugin/payload/views/admin-signup/index.js +92 -0
  342. package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +7 -0
  343. package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -0
  344. package/dist/better-auth/plugin/payload/views/forgot-password/client.js +104 -0
  345. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +9 -0
  346. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -0
  347. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +61 -0
  348. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +11 -0
  349. package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts.map +1 -0
  350. package/dist/better-auth/plugin/payload/views/reset-password/client.js +111 -0
  351. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +9 -0
  352. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -0
  353. package/dist/better-auth/plugin/payload/views/reset-password/index.js +78 -0
  354. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.d.ts +9 -0
  355. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.d.ts.map +1 -0
  356. package/dist/better-auth/plugin/payload/views/two-factor-verify/client.js +79 -0
  357. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +10 -0
  358. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -0
  359. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +49 -0
  360. package/dist/better-auth/plugin/types.d.ts +448 -0
  361. package/dist/better-auth/plugin/types.d.ts.map +1 -0
  362. package/dist/better-auth/plugin/types.js +3 -0
  363. package/dist/better-auth/plugin/utils/set.d.ts +40 -0
  364. package/dist/better-auth/plugin/utils/set.d.ts.map +1 -0
  365. package/dist/better-auth/plugin/utils/set.js +84 -0
  366. package/dist/better-auth/scripts/generate-types.d.ts +2 -0
  367. package/dist/better-auth/scripts/generate-types.d.ts.map +1 -0
  368. package/dist/better-auth/scripts/generate-types.js +225 -0
  369. package/dist/better-auth/types.d.ts +3 -0
  370. package/dist/better-auth/types.d.ts.map +1 -0
  371. package/dist/better-auth/types.js +4 -0
  372. package/dist/index.d.ts +2 -0
  373. package/dist/index.d.ts.map +1 -0
  374. package/dist/index.js +4 -0
  375. package/dist/shared/components/icons.d.ts +8 -0
  376. package/dist/shared/components/icons.d.ts.map +1 -0
  377. package/dist/shared/components/icons.js +436 -0
  378. package/dist/shared/components/logo.d.ts +3 -0
  379. package/dist/shared/components/logo.d.ts.map +1 -0
  380. package/dist/shared/components/logo.js +24 -0
  381. package/dist/shared/form/components/submit.d.ts +8 -0
  382. package/dist/shared/form/components/submit.d.ts.map +1 -0
  383. package/dist/shared/form/components/submit.js +23 -0
  384. package/dist/shared/form/fields/text-field.d.ts +9 -0
  385. package/dist/shared/form/fields/text-field.d.ts.map +1 -0
  386. package/dist/shared/form/fields/text-field.js +44 -0
  387. package/dist/shared/form/index.d.ts +28 -0
  388. package/dist/shared/form/index.d.ts.map +1 -0
  389. package/dist/shared/form/index.js +17 -0
  390. package/dist/shared/form/ui/header/index.d.ts +9 -0
  391. package/dist/shared/form/ui/header/index.d.ts.map +1 -0
  392. package/dist/shared/form/ui/header/index.js +23 -0
  393. package/dist/shared/form/ui/header/index.scss +8 -0
  394. package/dist/shared/form/ui/index.d.ts +34 -0
  395. package/dist/shared/form/ui/index.d.ts.map +1 -0
  396. package/dist/shared/form/ui/index.js +70 -0
  397. package/dist/shared/form/ui/index.scss +27 -0
  398. package/dist/shared/form/validation.d.ts +65 -0
  399. package/dist/shared/form/validation.d.ts.map +1 -0
  400. package/dist/shared/form/validation.js +108 -0
  401. package/dist/shared/index.d.ts +3 -0
  402. package/dist/shared/index.d.ts.map +1 -0
  403. package/dist/shared/index.js +4 -0
  404. package/dist/shared/payload/fields/field-copy-button/index.css +47 -0
  405. package/dist/shared/payload/fields/field-copy-button/index.d.ts +4 -0
  406. package/dist/shared/payload/fields/field-copy-button/index.d.ts.map +1 -0
  407. package/dist/shared/payload/fields/field-copy-button/index.js +38 -0
  408. package/dist/shared/payload/fields/generate-uuid-button/index.css +14 -0
  409. package/dist/shared/payload/fields/generate-uuid-button/index.d.ts +4 -0
  410. package/dist/shared/payload/fields/generate-uuid-button/index.d.ts.map +1 -0
  411. package/dist/shared/payload/fields/generate-uuid-button/index.js +26 -0
  412. package/dist/shared/payload/fields/index.d.ts +3 -0
  413. package/dist/shared/payload/fields/index.d.ts.map +1 -0
  414. package/dist/shared/payload/fields/index.js +4 -0
  415. package/dist/shared/utils/regex.d.ts +3 -0
  416. package/dist/shared/utils/regex.d.ts.map +1 -0
  417. package/dist/shared/utils/regex.js +4 -0
  418. package/dist/shared/utils/try-catch.d.ts +12 -0
  419. package/dist/shared/utils/try-catch.d.ts.map +1 -0
  420. package/dist/shared/utils/try-catch.js +17 -0
  421. package/dist/shared/utils/value-or-default.d.ts +10 -0
  422. package/dist/shared/utils/value-or-default.d.ts.map +1 -0
  423. package/dist/shared/utils/value-or-default.js +12 -0
  424. package/package.json +124 -0
@@ -0,0 +1,174 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug } from "./utils/collection-schema";
4
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
5
+ export function buildApiKeysCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
6
+ const apiKeySlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.apikey);
7
+ const apiKeySchema = resolvedSchemas[baModelKey.apikey];
8
+ const existingApiKeyCollection = incomingCollections.find((collection)=>collection.slug === apiKeySlug);
9
+ const fieldOverrides = {
10
+ name: ()=>({
11
+ admin: {
12
+ readOnly: true,
13
+ description: "The name of the API key."
14
+ }
15
+ }),
16
+ start: ()=>({
17
+ admin: {
18
+ readOnly: true,
19
+ description: "The starting characters of the API key."
20
+ }
21
+ }),
22
+ prefix: ()=>({
23
+ admin: {
24
+ readOnly: true,
25
+ description: "The API Key prefix. Stored as plain text."
26
+ }
27
+ }),
28
+ key: ()=>({
29
+ admin: {
30
+ readOnly: true,
31
+ description: "The hashed API key itself."
32
+ }
33
+ }),
34
+ userId: ()=>({
35
+ admin: {
36
+ readOnly: true,
37
+ description: "The user associated with the API key."
38
+ }
39
+ }),
40
+ refillInterval: ()=>({
41
+ admin: {
42
+ readOnly: true,
43
+ description: "The interval to refill the key in milliseconds."
44
+ }
45
+ }),
46
+ refillAmount: ()=>({
47
+ admin: {
48
+ readOnly: true,
49
+ description: "The amount to refill the remaining count of the key."
50
+ }
51
+ }),
52
+ lastRefillAt: ()=>({
53
+ admin: {
54
+ readOnly: true,
55
+ description: "The date and time when the key was last refilled."
56
+ }
57
+ }),
58
+ enabled: ()=>({
59
+ defaultValue: true,
60
+ admin: {
61
+ readOnly: true,
62
+ description: "Whether the API key is enabled."
63
+ }
64
+ }),
65
+ rateLimitEnabled: ()=>({
66
+ defaultValue: true,
67
+ admin: {
68
+ readOnly: true,
69
+ description: "Whether the API key has rate limiting enabled."
70
+ }
71
+ }),
72
+ rateLimitTimeWindow: ()=>({
73
+ admin: {
74
+ readOnly: true,
75
+ description: "The time window in milliseconds for the rate limit."
76
+ }
77
+ }),
78
+ rateLimitMax: ()=>({
79
+ admin: {
80
+ readOnly: true,
81
+ description: "The maximum number of requests allowed within the rate limit time window."
82
+ }
83
+ }),
84
+ requestCount: ()=>({
85
+ admin: {
86
+ readOnly: true,
87
+ description: "The number of requests made within the rate limit time window."
88
+ }
89
+ }),
90
+ remaining: ()=>({
91
+ admin: {
92
+ readOnly: true,
93
+ description: "The number of requests remaining."
94
+ }
95
+ }),
96
+ lastRequest: ()=>({
97
+ admin: {
98
+ readOnly: true,
99
+ description: "The date and time of the last request made to the key."
100
+ }
101
+ }),
102
+ expiresAt: ()=>({
103
+ admin: {
104
+ readOnly: true,
105
+ description: "The date and time of when the API key will expire."
106
+ }
107
+ }),
108
+ permissions: ()=>({
109
+ admin: {
110
+ readOnly: true,
111
+ description: "The permissions for the API key."
112
+ }
113
+ }),
114
+ metadata: ()=>({
115
+ type: "json",
116
+ admin: {
117
+ readOnly: true,
118
+ description: "Any additional metadata you want to store with the key."
119
+ }
120
+ })
121
+ };
122
+ const apiKeyFieldRules = [
123
+ {
124
+ condition: (field)=>field.type === "date",
125
+ transform: (field)=>({
126
+ ...field,
127
+ saveToJWT: false,
128
+ admin: {
129
+ disableBulkEdit: true,
130
+ hidden: true
131
+ },
132
+ index: true,
133
+ label: ({ t })=>t("general:updatedAt")
134
+ })
135
+ }
136
+ ];
137
+ const collectionFields = getCollectionFields({
138
+ schema: apiKeySchema,
139
+ fieldRules: apiKeyFieldRules,
140
+ additionalProperties: fieldOverrides
141
+ });
142
+ let apiKeyCollection = {
143
+ ...existingApiKeyCollection,
144
+ slug: apiKeySlug,
145
+ admin: {
146
+ hidden: pluginOptions.hidePluginCollections ?? false,
147
+ useAsTitle: apiKeySchema?.fields?.name?.fieldName,
148
+ description: "API keys are used to authenticate requests to the API.",
149
+ group: pluginOptions?.collectionAdminGroup ?? "Auth",
150
+ ...existingApiKeyCollection?.admin
151
+ },
152
+ access: {
153
+ ...getAdminAccess(pluginOptions),
154
+ ...existingApiKeyCollection?.access ?? {}
155
+ },
156
+ custom: {
157
+ ...existingApiKeyCollection?.custom ?? {},
158
+ betterAuthModelKey: baModelKey.apikey
159
+ },
160
+ fields: [
161
+ ...existingApiKeyCollection?.fields ?? [],
162
+ ...collectionFields ?? []
163
+ ]
164
+ };
165
+ if (typeof pluginOptions.pluginCollectionOverrides?.apiKeys === "function") {
166
+ apiKeyCollection = pluginOptions.pluginCollectionOverrides.apiKeys({
167
+ collection: apiKeyCollection
168
+ });
169
+ }
170
+ assertAllSchemaFields(apiKeyCollection, apiKeySchema);
171
+ return apiKeyCollection;
172
+ }
173
+
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2FwaS1rZXlzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgdHlwZSB7IEFwaWtleSB9IGZyb20gXCJAL2JldHRlci1hdXRoL2dlbmVyYXRlZC10eXBlc1wiO1xuaW1wb3J0IHR5cGUge1xuICBCdWlsZENvbGxlY3Rpb25Qcm9wcyxcbiAgRmllbGRPdmVycmlkZXMsXG4gIEZpZWxkUnVsZVxufSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9wbHVnaW4vdHlwZXNcIjtcbmltcG9ydCB7IGJhTW9kZWxLZXkgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBnZXRBZG1pbkFjY2VzcyB9IGZyb20gXCIuLi8uLi9oZWxwZXJzL2dldC1hZG1pbi1hY2Nlc3NcIjtcbmltcG9ydCB7XG4gIGFzc2VydEFsbFNjaGVtYUZpZWxkcyxcbiAgZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWdcbn0gZnJvbSBcIi4vdXRpbHMvY29sbGVjdGlvbi1zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbGxlY3Rpb25GaWVsZHMgfSBmcm9tIFwiLi91dGlscy90cmFuc2Zvcm0tc2NoZW1hLWZpZWxkcy10by1wYXlsb2FkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEFwaUtleXNDb2xsZWN0aW9uKHtcbiAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgcGx1Z2luT3B0aW9ucyxcbiAgcmVzb2x2ZWRTY2hlbWFzXG59OiBCdWlsZENvbGxlY3Rpb25Qcm9wcyk6IENvbGxlY3Rpb25Db25maWcge1xuICBjb25zdCBhcGlLZXlTbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkuYXBpa2V5XG4gICk7XG4gIGNvbnN0IGFwaUtleVNjaGVtYSA9IHJlc29sdmVkU2NoZW1hc1tiYU1vZGVsS2V5LmFwaWtleV07XG5cbiAgY29uc3QgZXhpc3RpbmdBcGlLZXlDb2xsZWN0aW9uID0gaW5jb21pbmdDb2xsZWN0aW9ucy5maW5kKFxuICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IGFwaUtleVNsdWdcbiAgKSBhcyBDb2xsZWN0aW9uQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGZpZWxkT3ZlcnJpZGVzOiBGaWVsZE92ZXJyaWRlczxrZXlvZiBBcGlrZXk+ID0ge1xuICAgIG5hbWU6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246IFwiVGhlIG5hbWUgb2YgdGhlIEFQSSBrZXkuXCIgfVxuICAgIH0pLFxuICAgIHN0YXJ0OiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBzdGFydGluZyBjaGFyYWN0ZXJzIG9mIHRoZSBBUEkga2V5LlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgcHJlZml4OiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBBUEkgS2V5IHByZWZpeC4gU3RvcmVkIGFzIHBsYWluIHRleHQuXCJcbiAgICAgIH1cbiAgICB9KSxcbiAgICBrZXk6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246IFwiVGhlIGhhc2hlZCBBUEkga2V5IGl0c2VsZi5cIiB9XG4gICAgfSksXG4gICAgdXNlcklkOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB1c2VyIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVBJIGtleS5cIlxuICAgICAgfVxuICAgIH0pLFxuICAgIHJlZmlsbEludGVydmFsOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBpbnRlcnZhbCB0byByZWZpbGwgdGhlIGtleSBpbiBtaWxsaXNlY29uZHMuXCJcbiAgICAgIH1cbiAgICB9KSxcbiAgICByZWZpbGxBbW91bnQ6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGFtb3VudCB0byByZWZpbGwgdGhlIHJlbWFpbmluZyBjb3VudCBvZiB0aGUga2V5LlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgbGFzdFJlZmlsbEF0OiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIGtleSB3YXMgbGFzdCByZWZpbGxlZC5cIlxuICAgICAgfVxuICAgIH0pLFxuICAgIGVuYWJsZWQ6ICgpID0+ICh7XG4gICAgICBkZWZhdWx0VmFsdWU6IHRydWUsXG4gICAgICBhZG1pbjogeyByZWFkT25seTogdHJ1ZSwgZGVzY3JpcHRpb246IFwiV2hldGhlciB0aGUgQVBJIGtleSBpcyBlbmFibGVkLlwiIH1cbiAgICB9KSxcbiAgICByYXRlTGltaXRFbmFibGVkOiAoKSA9PiAoe1xuICAgICAgZGVmYXVsdFZhbHVlOiB0cnVlLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdGhlIEFQSSBrZXkgaGFzIHJhdGUgbGltaXRpbmcgZW5hYmxlZC5cIlxuICAgICAgfVxuICAgIH0pLFxuICAgIHJhdGVMaW1pdFRpbWVXaW5kb3c6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHRpbWUgd2luZG93IGluIG1pbGxpc2Vjb25kcyBmb3IgdGhlIHJhdGUgbGltaXQuXCJcbiAgICAgIH1cbiAgICB9KSxcbiAgICByYXRlTGltaXRNYXg6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVxdWVzdHMgYWxsb3dlZCB3aXRoaW4gdGhlIHJhdGUgbGltaXQgdGltZSB3aW5kb3cuXCJcbiAgICAgIH1cbiAgICB9KSxcbiAgICByZXF1ZXN0Q291bnQ6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJUaGUgbnVtYmVyIG9mIHJlcXVlc3RzIG1hZGUgd2l0aGluIHRoZSByYXRlIGxpbWl0IHRpbWUgd2luZG93LlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgcmVtYWluaW5nOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBudW1iZXIgb2YgcmVxdWVzdHMgcmVtYWluaW5nLlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgbGFzdFJlcXVlc3Q6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGRhdGUgYW5kIHRpbWUgb2YgdGhlIGxhc3QgcmVxdWVzdCBtYWRlIHRvIHRoZSBrZXkuXCJcbiAgICAgIH1cbiAgICB9KSxcbiAgICBleHBpcmVzQXQ6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGRhdGUgYW5kIHRpbWUgb2Ygd2hlbiB0aGUgQVBJIGtleSB3aWxsIGV4cGlyZS5cIlxuICAgICAgfVxuICAgIH0pLFxuICAgIHBlcm1pc3Npb25zOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiBcIlRoZSBwZXJtaXNzaW9ucyBmb3IgdGhlIEFQSSBrZXkuXCIgfVxuICAgIH0pLFxuICAgIG1ldGFkYXRhOiAoKSA9PiAoe1xuICAgICAgdHlwZTogXCJqc29uXCIsXG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiQW55IGFkZGl0aW9uYWwgbWV0YWRhdGEgeW91IHdhbnQgdG8gc3RvcmUgd2l0aCB0aGUga2V5LlwiXG4gICAgICB9XG4gICAgfSlcbiAgfTtcblxuICBjb25zdCBhcGlLZXlGaWVsZFJ1bGVzOiBGaWVsZFJ1bGVbXSA9IFtcbiAgICB7XG4gICAgICBjb25kaXRpb246IChmaWVsZCkgPT4gZmllbGQudHlwZSA9PT0gXCJkYXRlXCIsXG4gICAgICB0cmFuc2Zvcm06IChmaWVsZCkgPT4gKHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIHNhdmVUb0pXVDogZmFsc2UsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBpbmRleDogdHJ1ZSxcbiAgICAgICAgbGFiZWw6ICh7IHQgfTogYW55KSA9PiB0KFwiZ2VuZXJhbDp1cGRhdGVkQXRcIilcbiAgICAgIH0pXG4gICAgfVxuICBdO1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25GaWVsZHMgPSBnZXRDb2xsZWN0aW9uRmllbGRzKHtcbiAgICBzY2hlbWE6IGFwaUtleVNjaGVtYSxcbiAgICBmaWVsZFJ1bGVzOiBhcGlLZXlGaWVsZFJ1bGVzLFxuICAgIGFkZGl0aW9uYWxQcm9wZXJ0aWVzOiBmaWVsZE92ZXJyaWRlc1xuICB9KTtcblxuICBsZXQgYXBpS2V5Q29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgICAuLi5leGlzdGluZ0FwaUtleUNvbGxlY3Rpb24sXG4gICAgc2x1ZzogYXBpS2V5U2x1ZyxcbiAgICBhZG1pbjoge1xuICAgICAgaGlkZGVuOiBwbHVnaW5PcHRpb25zLmhpZGVQbHVnaW5Db2xsZWN0aW9ucyA/PyBmYWxzZSxcbiAgICAgIHVzZUFzVGl0bGU6IGFwaUtleVNjaGVtYT8uZmllbGRzPy5uYW1lPy5maWVsZE5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogXCJBUEkga2V5cyBhcmUgdXNlZCB0byBhdXRoZW50aWNhdGUgcmVxdWVzdHMgdG8gdGhlIEFQSS5cIixcbiAgICAgIGdyb3VwOiBwbHVnaW5PcHRpb25zPy5jb2xsZWN0aW9uQWRtaW5Hcm91cCA/PyBcIkF1dGhcIixcbiAgICAgIC4uLmV4aXN0aW5nQXBpS2V5Q29sbGVjdGlvbj8uYWRtaW5cbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgLi4uZ2V0QWRtaW5BY2Nlc3MocGx1Z2luT3B0aW9ucyksXG4gICAgICAuLi4oZXhpc3RpbmdBcGlLZXlDb2xsZWN0aW9uPy5hY2Nlc3MgPz8ge30pXG4gICAgfSxcbiAgICBjdXN0b206IHtcbiAgICAgIC4uLihleGlzdGluZ0FwaUtleUNvbGxlY3Rpb24/LmN1c3RvbSA/PyB7fSksXG4gICAgICBiZXR0ZXJBdXRoTW9kZWxLZXk6IGJhTW9kZWxLZXkuYXBpa2V5XG4gICAgfSxcbiAgICBmaWVsZHM6IFtcbiAgICAgIC4uLihleGlzdGluZ0FwaUtleUNvbGxlY3Rpb24/LmZpZWxkcyA/PyBbXSksXG4gICAgICAuLi4oY29sbGVjdGlvbkZpZWxkcyA/PyBbXSlcbiAgICBdXG4gIH07XG5cbiAgaWYgKHR5cGVvZiBwbHVnaW5PcHRpb25zLnBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXM/LmFwaUtleXMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgIGFwaUtleUNvbGxlY3Rpb24gPSBwbHVnaW5PcHRpb25zLnBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXMuYXBpS2V5cyh7XG4gICAgICBjb2xsZWN0aW9uOiBhcGlLZXlDb2xsZWN0aW9uXG4gICAgfSk7XG4gIH1cblxuICBhc3NlcnRBbGxTY2hlbWFGaWVsZHMoYXBpS2V5Q29sbGVjdGlvbiwgYXBpS2V5U2NoZW1hKTtcblxuICByZXR1cm4gYXBpS2V5Q29sbGVjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsS2V5IiwiZ2V0QWRtaW5BY2Nlc3MiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImdldENvbGxlY3Rpb25GaWVsZHMiLCJidWlsZEFwaUtleXNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJyZXNvbHZlZFNjaGVtYXMiLCJhcGlLZXlTbHVnIiwiYXBpa2V5IiwiYXBpS2V5U2NoZW1hIiwiZXhpc3RpbmdBcGlLZXlDb2xsZWN0aW9uIiwiZmluZCIsImNvbGxlY3Rpb24iLCJzbHVnIiwiZmllbGRPdmVycmlkZXMiLCJuYW1lIiwiYWRtaW4iLCJyZWFkT25seSIsImRlc2NyaXB0aW9uIiwic3RhcnQiLCJwcmVmaXgiLCJrZXkiLCJ1c2VySWQiLCJyZWZpbGxJbnRlcnZhbCIsInJlZmlsbEFtb3VudCIsImxhc3RSZWZpbGxBdCIsImVuYWJsZWQiLCJkZWZhdWx0VmFsdWUiLCJyYXRlTGltaXRFbmFibGVkIiwicmF0ZUxpbWl0VGltZVdpbmRvdyIsInJhdGVMaW1pdE1heCIsInJlcXVlc3RDb3VudCIsInJlbWFpbmluZyIsImxhc3RSZXF1ZXN0IiwiZXhwaXJlc0F0IiwicGVybWlzc2lvbnMiLCJtZXRhZGF0YSIsInR5cGUiLCJhcGlLZXlGaWVsZFJ1bGVzIiwiY29uZGl0aW9uIiwiZmllbGQiLCJ0cmFuc2Zvcm0iLCJzYXZlVG9KV1QiLCJkaXNhYmxlQnVsa0VkaXQiLCJoaWRkZW4iLCJpbmRleCIsImxhYmVsIiwidCIsImNvbGxlY3Rpb25GaWVsZHMiLCJzY2hlbWEiLCJmaWVsZFJ1bGVzIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJhcGlLZXlDb2xsZWN0aW9uIiwiaGlkZVBsdWdpbkNvbGxlY3Rpb25zIiwidXNlQXNUaXRsZSIsImZpZWxkcyIsImZpZWxkTmFtZSIsImdyb3VwIiwiY29sbGVjdGlvbkFkbWluR3JvdXAiLCJhY2Nlc3MiLCJjdXN0b20iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJwbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzIiwiYXBpS2V5cyJdLCJtYXBwaW5ncyI6IkFBT0EsU0FBU0EsVUFBVSxRQUFRLGtCQUFrQjtBQUM3QyxTQUFTQyxjQUFjLFFBQVEsaUNBQWlDO0FBQ2hFLFNBQ0VDLHFCQUFxQixFQUNyQkMsdUJBQXVCLFFBQ2xCLDRCQUE0QjtBQUNuQyxTQUFTQyxtQkFBbUIsUUFBUSw2Q0FBNkM7QUFFakYsT0FBTyxTQUFTQyx1QkFBdUIsRUFDckNDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ007SUFDckIsTUFBTUMsYUFBYU4sd0JBQ2pCSyxpQkFDQVIsV0FBV1UsTUFBTTtJQUVuQixNQUFNQyxlQUFlSCxlQUFlLENBQUNSLFdBQVdVLE1BQU0sQ0FBQztJQUV2RCxNQUFNRSwyQkFBMkJOLG9CQUFvQk8sSUFBSSxDQUN2RCxDQUFDQyxhQUFlQSxXQUFXQyxJQUFJLEtBQUtOO0lBR3RDLE1BQU1PLGlCQUErQztRQUNuREMsTUFBTSxJQUFPLENBQUE7Z0JBQ1hDLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQTJCO1lBQ25FLENBQUE7UUFDQUMsT0FBTyxJQUFPLENBQUE7Z0JBQ1pILE9BQU87b0JBQ0xDLFVBQVU7b0JBQ1ZDLGFBQWE7Z0JBQ2Y7WUFDRixDQUFBO1FBQ0FFLFFBQVEsSUFBTyxDQUFBO2dCQUNiSixPQUFPO29CQUNMQyxVQUFVO29CQUNWQyxhQUFhO2dCQUNmO1lBQ0YsQ0FBQTtRQUNBRyxLQUFLLElBQU8sQ0FBQTtnQkFDVkwsT0FB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
@@ -0,0 +1,4 @@
1
+ import type { CollectionConfig } from "payload";
2
+ import type { BuildCollectionProps } from "@/better-auth/plugin/types";
3
+ export declare function buildDeviceCodeCollection({ incomingCollections, pluginOptions, resolvedSchemas }: BuildCollectionProps): CollectionConfig;
4
+ //# sourceMappingURL=device-code.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"device-code.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/device-code.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,yBAAyB,CAAC,EACxC,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE,oBAAoB,GAAG,gBAAgB,CAyDzC"}
@@ -0,0 +1,49 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug, getSchemaFieldName } from "./utils/collection-schema";
4
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
5
+ export function buildDeviceCodeCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
6
+ const deviceCodeSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.deviceCode);
7
+ const deviceCodeSchema = resolvedSchemas[baModelKey.deviceCode];
8
+ const existingDeviceCodeCollection = incomingCollections.find((collection)=>collection.slug === deviceCodeSlug);
9
+ const fieldOverrides = {
10
+ userId: ()=>({
11
+ index: true,
12
+ admin: {
13
+ readOnly: true,
14
+ description: "The user that is a member of the team."
15
+ }
16
+ })
17
+ };
18
+ const collectionFields = getCollectionFields({
19
+ schema: deviceCodeSchema,
20
+ additionalProperties: fieldOverrides
21
+ });
22
+ let deviceCodeCollection = {
23
+ ...existingDeviceCodeCollection,
24
+ slug: deviceCodeSlug,
25
+ admin: {
26
+ hidden: pluginOptions.hidePluginCollections ?? false,
27
+ useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.deviceCode, "deviceCode"),
28
+ description: "Device codes of an organization team.",
29
+ group: pluginOptions?.collectionAdminGroup ?? "Auth",
30
+ ...existingDeviceCodeCollection?.admin
31
+ },
32
+ access: {
33
+ ...getAdminAccess(pluginOptions),
34
+ ...existingDeviceCodeCollection?.access ?? {}
35
+ },
36
+ custom: {
37
+ ...existingDeviceCodeCollection?.custom ?? {},
38
+ betterAuthModelKey: baModelKey.deviceCode
39
+ },
40
+ fields: [
41
+ ...existingDeviceCodeCollection?.fields ?? [],
42
+ ...collectionFields ?? []
43
+ ]
44
+ };
45
+ assertAllSchemaFields(deviceCodeCollection, deviceCodeSchema);
46
+ return deviceCodeCollection;
47
+ }
48
+
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2RldmljZS1jb2RlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgdHlwZSB7IERldmljZUNvZGUgfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb2xsZWN0aW9uUHJvcHMsXG4gIEZpZWxkT3ZlcnJpZGVzXG59IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi90eXBlc1wiO1xuaW1wb3J0IHsgYmFNb2RlbEtleSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFkbWluQWNjZXNzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvZ2V0LWFkbWluLWFjY2Vzc1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzLFxuICBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyxcbiAgZ2V0U2NoZW1hRmllbGROYW1lXG59IGZyb20gXCIuL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uRmllbGRzIH0gZnJvbSBcIi4vdXRpbHMvdHJhbnNmb3JtLXNjaGVtYS1maWVsZHMtdG8tcGF5bG9hZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGREZXZpY2VDb2RlQ29sbGVjdGlvbih7XG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnMsXG4gIHJlc29sdmVkU2NoZW1hc1xufTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3QgZGV2aWNlQ29kZVNsdWcgPSBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyhcbiAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgYmFNb2RlbEtleS5kZXZpY2VDb2RlXG4gICk7XG4gIGNvbnN0IGRldmljZUNvZGVTY2hlbWEgPSByZXNvbHZlZFNjaGVtYXNbYmFNb2RlbEtleS5kZXZpY2VDb2RlXTtcblxuICBjb25zdCBleGlzdGluZ0RldmljZUNvZGVDb2xsZWN0aW9uID0gaW5jb21pbmdDb2xsZWN0aW9ucy5maW5kKFxuICAgIChjb2xsZWN0aW9uKSA9PiBjb2xsZWN0aW9uLnNsdWcgPT09IGRldmljZUNvZGVTbHVnXG4gICkgYXMgQ29sbGVjdGlvbkNvbmZpZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdCBmaWVsZE92ZXJyaWRlczogRmllbGRPdmVycmlkZXM8a2V5b2YgRGV2aWNlQ29kZT4gPSB7XG4gICAgdXNlcklkOiAoKSA9PiAoe1xuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHVzZXIgdGhhdCBpcyBhIG1lbWJlciBvZiB0aGUgdGVhbS5cIlxuICAgICAgfVxuICAgIH0pXG4gIH07XG5cbiAgY29uc3QgY29sbGVjdGlvbkZpZWxkcyA9IGdldENvbGxlY3Rpb25GaWVsZHMoe1xuICAgIHNjaGVtYTogZGV2aWNlQ29kZVNjaGVtYSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmllbGRPdmVycmlkZXNcbiAgfSk7XG5cbiAgbGV0IGRldmljZUNvZGVDb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIC4uLmV4aXN0aW5nRGV2aWNlQ29kZUNvbGxlY3Rpb24sXG4gICAgc2x1ZzogZGV2aWNlQ29kZVNsdWcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy5oaWRlUGx1Z2luQ29sbGVjdGlvbnMgPz8gZmFsc2UsXG4gICAgICB1c2VBc1RpdGxlOiBnZXRTY2hlbWFGaWVsZE5hbWUoXG4gICAgICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICAgICAgYmFNb2RlbEtleS5kZXZpY2VDb2RlLFxuICAgICAgICBcImRldmljZUNvZGVcIlxuICAgICAgKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRldmljZSBjb2RlcyBvZiBhbiBvcmdhbml6YXRpb24gdGVhbS5cIixcbiAgICAgIGdyb3VwOiBwbHVnaW5PcHRpb25zPy5jb2xsZWN0aW9uQWRtaW5Hcm91cCA/PyBcIkF1dGhcIixcbiAgICAgIC4uLmV4aXN0aW5nRGV2aWNlQ29kZUNvbGxlY3Rpb24/LmFkbWluXG4gICAgfSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIC4uLmdldEFkbWluQWNjZXNzKHBsdWdpbk9wdGlvbnMpLFxuICAgICAgLi4uKGV4aXN0aW5nRGV2aWNlQ29kZUNvbGxlY3Rpb24/LmFjY2VzcyA/PyB7fSlcbiAgICB9LFxuICAgIGN1c3RvbToge1xuICAgICAgLi4uKGV4aXN0aW5nRGV2aWNlQ29kZUNvbGxlY3Rpb24/LmN1c3RvbSA/PyB7fSksXG4gICAgICBiZXR0ZXJBdXRoTW9kZWxLZXk6IGJhTW9kZWxLZXkuZGV2aWNlQ29kZVxuICAgIH0sXG4gICAgZmllbGRzOiBbXG4gICAgICAuLi4oZXhpc3RpbmdEZXZpY2VDb2RlQ29sbGVjdGlvbj8uZmllbGRzID8/IFtdKSxcbiAgICAgIC4uLihjb2xsZWN0aW9uRmllbGRzID8/IFtdKVxuICAgIF1cbiAgfTtcblxuICBhc3NlcnRBbGxTY2hlbWFGaWVsZHMoZGV2aWNlQ29kZUNvbGxlY3Rpb24sIGRldmljZUNvZGVTY2hlbWEpO1xuXG4gIHJldHVybiBkZXZpY2VDb2RlQ29sbGVjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsS2V5IiwiZ2V0QWRtaW5BY2Nlc3MiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImdldFNjaGVtYUZpZWxkTmFtZSIsImdldENvbGxlY3Rpb25GaWVsZHMiLCJidWlsZERldmljZUNvZGVDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJyZXNvbHZlZFNjaGVtYXMiLCJkZXZpY2VDb2RlU2x1ZyIsImRldmljZUNvZGUiLCJkZXZpY2VDb2RlU2NoZW1hIiwiZXhpc3RpbmdEZXZpY2VDb2RlQ29sbGVjdGlvbiIsImZpbmQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImZpZWxkT3ZlcnJpZGVzIiwidXNlcklkIiwiaW5kZXgiLCJhZG1pbiIsInJlYWRPbmx5IiwiZGVzY3JpcHRpb24iLCJjb2xsZWN0aW9uRmllbGRzIiwic2NoZW1hIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJkZXZpY2VDb2RlQ29sbGVjdGlvbiIsImhpZGRlbiIsImhpZGVQbHVnaW5Db2xsZWN0aW9ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiYWNjZXNzIiwiY3VzdG9tIiwiYmV0dGVyQXV0aE1vZGVsS2V5IiwiZmllbGRzIl0sIm1hcHBpbmdzIjoiQUFNQSxTQUFTQSxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLFNBQVNDLGNBQWMsUUFBUSxpQ0FBaUM7QUFDaEUsU0FDRUMscUJBQXFCLEVBQ3JCQyx1QkFBdUIsRUFDdkJDLGtCQUFrQixRQUNiLDRCQUE0QjtBQUNuQyxTQUFTQyxtQkFBbUIsUUFBUSw2Q0FBNkM7QUFFakYsT0FBTyxTQUFTQywwQkFBMEIsRUFDeENDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ007SUFDckIsTUFBTUMsaUJBQWlCUCx3QkFDckJNLGlCQUNBVCxXQUFXVyxVQUFVO0lBRXZCLE1BQU1DLG1CQUFtQkgsZUFBZSxDQUFDVCxXQUFXVyxVQUFVLENBQUM7SUFFL0QsTUFBTUUsK0JBQStCTixvQkFBb0JPLElBQUksQ0FDM0QsQ0FBQ0MsYUFBZUEsV0FBV0MsSUFBSSxLQUFLTjtJQUd0QyxNQUFNTyxpQkFBbUQ7UUFDdkRDLFFBQVEsSUFBTyxDQUFBO2dCQUNiQyxPQUFPO2dCQUNQQyxPQUFPO29CQUNMQyxVQUFVO29CQUNWQyxhQUFhO2dCQUNmO1lBQ0YsQ0FBQTtJQUNGO0lBRUEsTUFBTUMsbUJBQW1CbEIsb0JBQW9CO1FBQzNDbUIsUUFBUVo7UUFDUmEsc0JBQXNCUjtJQUN4QjtJQUVBLElBQUlTLHVCQUF5QztRQUMzQyxHQUFHYiw0QkFBNEI7UUFDL0JHLE1BQU1OO1FBQ05VLE9BQU87WUFDTE8sUUFBUW5CLGNBQWNvQixxQkFBcUIsSUFBSTtZQUMvQ0MsWUFBWXpCLG1CQUNWSyxpQkFDQVQsV0FBV1csVUFBVSxFQUNyQjtZQUVGVyxhQUFhO1lBQ2JRLE9BQU90QixlQUFldUIsd0JBQXdCO1lBQzlDLEdBQUdsQiw4QkFBOEJPLEtBQUs7UUFDeEM7UUFDQVksUUFBUTtZQUNOLEdBQUcvQixlQUFlTyxjQUFjO1lBQ2hDLEdBQUlLLDhCQUE4Qm1CLFVBQVUsQ0FBQyxDQUFDO1FBQ2hEO1FBQ0FDLFFBQVE7WUFDTixHQUFJcEIsOEJBQThCb0IsVUFBVSxDQUFDLENBQUM7WUFDOUNDLG9CQUFvQmxDLFdBQVdXLFVBQVU7UUFDM0M7UUFDQXdCLFFBQVE7ZUFDRnRCLDhCQUE4QnNCLFVBQVUsRUFBRTtlQUMxQ1osb0JBQW9CLEVBQUU7U0FDM0I7SUFDSDtJQUVBckIsc0JBQXNCd0Isc0JBQXNCZDtJQUU1QyxPQUFPYztBQUNUIn0=
@@ -0,0 +1,11 @@
1
+ import type { CollectionConfig } from "payload";
2
+ import type { BetterAuthSchemas, PayloadAuthOptions } 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: PayloadAuthOptions;
9
+ resolvedSchemas: BetterAuthSchemas;
10
+ }): Record<string, CollectionConfig>;
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,KAAK,EACV,iBAAiB,EAEjB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AA0BrB;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE;IACD,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,aAAa,EAAE,kBAAkB,CAAC;IAClC,eAAe,EAAE,iBAAiB,CAAC;CACpC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CA+EnC"}
@@ -0,0 +1,79 @@
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 { buildOrganizationRolesCollection } from "./organization-roles";
13
+ import { buildOrganizationsCollection } from "./organizations";
14
+ import { buildPasskeysCollection } from "./passkeys";
15
+ import { buildRateLimitCollection } from "./rate-limit";
16
+ import { buildScimProviderCollection } from "./scim-provider";
17
+ import { buildSessionsCollection } from "./sessions";
18
+ import { buildSsoProvidersCollection } from "./sso-providers";
19
+ import { buildSubscriptionsCollection } from "./subscriptions";
20
+ import { buildTeamMembersCollection } from "./team-members";
21
+ import { buildTeamsCollection } from "./teams";
22
+ import { buildTwoFactorsCollection } from "./two-factors";
23
+ import { buildUsersCollection } from "./users/index";
24
+ import { getSchemaCollectionSlug } from "./utils/collection-schema";
25
+ import { buildVerificationsCollection } from "./verifications";
26
+ /**
27
+ * Builds the required collections based on the BetterAuth options and plugins
28
+ */ export function buildCollections({ incomingCollections, pluginOptions, resolvedSchemas }) {
29
+ const collectionBuilders = {
30
+ [baModelKey.user]: (props)=>buildUsersCollection(props),
31
+ [baModelKey.account]: (props)=>buildAccountsCollection(props),
32
+ [baModelKey.session]: (props)=>buildSessionsCollection(props),
33
+ [baModelKey.verification]: (props)=>buildVerificationsCollection(props),
34
+ [baModelKey.organization]: (props)=>buildOrganizationsCollection(props),
35
+ [baModelKey.member]: (props)=>buildMembersCollection(props),
36
+ [baModelKey.invitation]: (props)=>buildInvitationsCollection(props),
37
+ [baModelKey.team]: (props)=>buildTeamsCollection(props),
38
+ [baModelKey.teamMember]: (props)=>buildTeamMembersCollection(props),
39
+ [baModelKey.jwks]: (props)=>buildJwksCollection(props),
40
+ [baModelKey.apikey]: (props)=>buildApiKeysCollection(props),
41
+ [baModelKey.twoFactor]: (props)=>buildTwoFactorsCollection(props),
42
+ [baModelKey.oauthAccessToken]: (props)=>buildOauthAccessTokensCollection(props),
43
+ [baModelKey.oauthApplication]: (props)=>buildOauthApplicationsCollection(props),
44
+ [baModelKey.oauthConsent]: (props)=>buildOauthConsentsCollection(props),
45
+ [baModelKey.passkey]: (props)=>buildPasskeysCollection(props),
46
+ [baModelKey.ssoProvider]: (props)=>buildSsoProvidersCollection(props),
47
+ [baModelKey.subscription]: (props)=>buildSubscriptionsCollection(props),
48
+ [baModelKey.deviceCode]: (props)=>buildDeviceCodeCollection(props),
49
+ [baModelKey.rateLimit]: (props)=>buildRateLimitCollection(props),
50
+ [baModelKey.scimProvider]: (props)=>buildScimProviderCollection(props),
51
+ [baModelKey.organizationRole]: (props)=>buildOrganizationRolesCollection(props)
52
+ };
53
+ const collectionMap = {};
54
+ for (const modelKey of Object.keys(resolvedSchemas)){
55
+ const collectionSlug = getSchemaCollectionSlug(resolvedSchemas, modelKey);
56
+ const builder = collectionBuilders[modelKey];
57
+ if (!builder) continue;
58
+ collectionMap[collectionSlug] = builder({
59
+ incomingCollections,
60
+ pluginOptions,
61
+ resolvedSchemas
62
+ });
63
+ }
64
+ // Add adminInvitations collection as it's not in the collectionSchemaMap
65
+ const adminInvitationsSlug = pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;
66
+ collectionMap[adminInvitationsSlug] = buildAdminInvitationsCollection({
67
+ incomingCollections,
68
+ pluginOptions
69
+ });
70
+ // Then add incoming collections that don't conflict with required ones
71
+ incomingCollections.forEach((c)=>{
72
+ if (!collectionMap[c.slug]) {
73
+ collectionMap[c.slug] = c;
74
+ }
75
+ });
76
+ return collectionMap;
77
+ }
78
+
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgdHlwZSB7IE1vZGVsS2V5IH0gZnJvbSBcIkAvYmV0dGVyLWF1dGgvZ2VuZXJhdGVkLXR5cGVzXCI7XG5pbXBvcnQgeyBiYU1vZGVsS2V5LCBiYXNlU2x1Z3MgfSBmcm9tIFwiLi4vLi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgdHlwZSB7XG4gIEJldHRlckF1dGhTY2hlbWFzLFxuICBCdWlsZENvbGxlY3Rpb25Qcm9wcyxcbiAgUGF5bG9hZEF1dGhPcHRpb25zXG59IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgYnVpbGRBY2NvdW50c0NvbGxlY3Rpb24gfSBmcm9tIFwiLi9hY2NvdW50cy9pbmRleFwiO1xuaW1wb3J0IHsgYnVpbGRBZG1pbkludml0YXRpb25zQ29sbGVjdGlvbiB9IGZyb20gXCIuL2FkbWluLWludml0YXRpb25zXCI7XG5pbXBvcnQgeyBidWlsZEFwaUtleXNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vYXBpLWtleXNcIjtcbmltcG9ydCB7IGJ1aWxkRGV2aWNlQ29kZUNvbGxlY3Rpb24gfSBmcm9tIFwiLi9kZXZpY2UtY29kZVwiO1xuaW1wb3J0IHsgYnVpbGRJbnZpdGF0aW9uc0NvbGxlY3Rpb24gfSBmcm9tIFwiLi9pbnZpdGF0aW9uc1wiO1xuaW1wb3J0IHsgYnVpbGRKd2tzQ29sbGVjdGlvbiB9IGZyb20gXCIuL2p3a3NcIjtcbmltcG9ydCB7IGJ1aWxkTWVtYmVyc0NvbGxlY3Rpb24gfSBmcm9tIFwiLi9tZW1iZXJzXCI7XG5pbXBvcnQgeyBidWlsZE9hdXRoQWNjZXNzVG9rZW5zQ29sbGVjdGlvbiB9IGZyb20gXCIuL29hdXRoLWFjY2Vzcy10b2tlbnNcIjtcbmltcG9ydCB7IGJ1aWxkT2F1dGhBcHBsaWNhdGlvbnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vb2F1dGgtYXBwbGljYXRpb25zXCI7XG5pbXBvcnQgeyBidWlsZE9hdXRoQ29uc2VudHNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vb2F1dGgtY29uc2VudHNcIjtcbmltcG9ydCB7IGJ1aWxkT3JnYW5pemF0aW9uUm9sZXNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vb3JnYW5pemF0aW9uLXJvbGVzXCI7XG5pbXBvcnQgeyBidWlsZE9yZ2FuaXphdGlvbnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vb3JnYW5pemF0aW9uc1wiO1xuaW1wb3J0IHsgYnVpbGRQYXNza2V5c0NvbGxlY3Rpb24gfSBmcm9tIFwiLi9wYXNza2V5c1wiO1xuaW1wb3J0IHsgYnVpbGRSYXRlTGltaXRDb2xsZWN0aW9uIH0gZnJvbSBcIi4vcmF0ZS1saW1pdFwiO1xuaW1wb3J0IHsgYnVpbGRTY2ltUHJvdmlkZXJDb2xsZWN0aW9uIH0gZnJvbSBcIi4vc2NpbS1wcm92aWRlclwiO1xuaW1wb3J0IHsgYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24gfSBmcm9tIFwiLi9zZXNzaW9uc1wiO1xuaW1wb3J0IHsgYnVpbGRTc29Qcm92aWRlcnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vc3NvLXByb3ZpZGVyc1wiO1xuaW1wb3J0IHsgYnVpbGRTdWJzY3JpcHRpb25zQ29sbGVjdGlvbiB9IGZyb20gXCIuL3N1YnNjcmlwdGlvbnNcIjtcbmltcG9ydCB7IGJ1aWxkVGVhbU1lbWJlcnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vdGVhbS1tZW1iZXJzXCI7XG5pbXBvcnQgeyBidWlsZFRlYW1zQ29sbGVjdGlvbiB9IGZyb20gXCIuL3RlYW1zXCI7XG5pbXBvcnQgeyBidWlsZFR3b0ZhY3RvcnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vdHdvLWZhY3RvcnNcIjtcbmltcG9ydCB7IGJ1aWxkVXNlcnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vdXNlcnMvaW5kZXhcIjtcbmltcG9ydCB7IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnIH0gZnJvbSBcIi4vdXRpbHMvY29sbGVjdGlvbi1zY2hlbWFcIjtcbmltcG9ydCB7IGJ1aWxkVmVyaWZpY2F0aW9uc0NvbGxlY3Rpb24gfSBmcm9tIFwiLi92ZXJpZmljYXRpb25zXCI7XG5cbi8qKlxuICogQnVpbGRzIHRoZSByZXF1aXJlZCBjb2xsZWN0aW9ucyBiYXNlZCBvbiB0aGUgQmV0dGVyQXV0aCBvcHRpb25zIGFuZCBwbHVnaW5zXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENvbGxlY3Rpb25zKHtcbiAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgcGx1Z2luT3B0aW9ucyxcbiAgcmVzb2x2ZWRTY2hlbWFzXG59OiB7XG4gIGluY29taW5nQ29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXTtcbiAgcGx1Z2luT3B0aW9uczogUGF5bG9hZEF1dGhPcHRpb25zO1xuICByZXNvbHZlZFNjaGVtYXM6IEJldHRlckF1dGhTY2hlbWFzO1xufSk6IFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25Db25maWc+IHtcbiAgY29uc3QgY29sbGVjdGlvbkJ1aWxkZXJzOiBSZWNvcmQ8XG4gICAgTW9kZWxLZXksXG4gICAgKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT4gQ29sbGVjdGlvbkNvbmZpZ1xuICA+ID0ge1xuICAgIFtiYU1vZGVsS2V5LnVzZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRVc2Vyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LmFjY291bnRdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRBY2NvdW50c0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnNlc3Npb25dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnZlcmlmaWNhdGlvbl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+XG4gICAgICBidWlsZFZlcmlmaWNhdGlvbnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vcmdhbml6YXRpb25dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRPcmdhbml6YXRpb25zQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkubWVtYmVyXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT5cbiAgICAgIGJ1aWxkTWVtYmVyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lmludml0YXRpb25dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRJbnZpdGF0aW9uc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnRlYW1dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRUZWFtc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnRlYW1NZW1iZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRUZWFtTWVtYmVyc0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5Lmp3a3NdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRKd2tzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuYXBpa2V5XTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT5cbiAgICAgIGJ1aWxkQXBpS2V5c0NvbGxlY3Rpb24ocHJvcHMpLFxuICAgIFtiYU1vZGVsS2V5LnR3b0ZhY3Rvcl06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+XG4gICAgICBidWlsZFR3b0ZhY3RvcnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vYXV0aEFjY2Vzc1Rva2VuXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT5cbiAgICAgIGJ1aWxkT2F1dGhBY2Nlc3NUb2tlbnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vYXV0aEFwcGxpY2F0aW9uXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT5cbiAgICAgIGJ1aWxkT2F1dGhBcHBsaWNhdGlvbnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vYXV0aENvbnNlbnRdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRPYXV0aENvbnNlbnRzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkucGFzc2tleV06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+XG4gICAgICBidWlsZFBhc3NrZXlzQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuc3NvUHJvdmlkZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRTc29Qcm92aWRlcnNDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5zdWJzY3JpcHRpb25dOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRTdWJzY3JpcHRpb25zQ29sbGVjdGlvbihwcm9wcyksXG4gICAgW2JhTW9kZWxLZXkuZGV2aWNlQ29kZV06IChwcm9wczogQnVpbGRDb2xsZWN0aW9uUHJvcHMpID0+XG4gICAgICBidWlsZERldmljZUNvZGVDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5yYXRlTGltaXRdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRSYXRlTGltaXRDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5zY2ltUHJvdmlkZXJdOiAocHJvcHM6IEJ1aWxkQ29sbGVjdGlvblByb3BzKSA9PlxuICAgICAgYnVpbGRTY2ltUHJvdmlkZXJDb2xsZWN0aW9uKHByb3BzKSxcbiAgICBbYmFNb2RlbEtleS5vcmdhbml6YXRpb25Sb2xlXTogKHByb3BzOiBCdWlsZENvbGxlY3Rpb25Qcm9wcykgPT5cbiAgICAgIGJ1aWxkT3JnYW5pemF0aW9uUm9sZXNDb2xsZWN0aW9uKHByb3BzKVxuICB9O1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25NYXA6IFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25Db25maWc+ID0ge307XG4gIGZvciAoY29uc3QgbW9kZWxLZXkgb2YgT2JqZWN0LmtleXMocmVzb2x2ZWRTY2hlbWFzKSBhcyBNb2RlbEtleVtdKSB7XG4gICAgY29uc3QgY29sbGVjdGlvblNsdWcgPSBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyhyZXNvbHZlZFNjaGVtYXMsIG1vZGVsS2V5KTtcbiAgICBjb25zdCBidWlsZGVyID0gY29sbGVjdGlvbkJ1aWxkZXJzW21vZGVsS2V5XTtcbiAgICBpZiAoIWJ1aWxkZXIpIGNvbnRpbnVlO1xuICAgIGNvbGxlY3Rpb25NYXBbY29sbGVjdGlvblNsdWddID0gYnVpbGRlcih7XG4gICAgICBpbmNvbWluZ0NvbGxlY3Rpb25zLFxuICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgIHJlc29sdmVkU2NoZW1hc1xuICAgIH0pO1xuICB9XG5cbiAgLy8gQWRkIGFkbWluSW52aXRhdGlvbnMgY29sbGVjdGlvbiBhcyBpdCdzIG5vdCBpbiB0aGUgY29sbGVjdGlvblNjaGVtYU1hcFxuICBjb25zdCBhZG1pbkludml0YXRpb25zU2x1ZyA9XG4gICAgcGx1Z2luT3B0aW9ucy5hZG1pbkludml0YXRpb25zPy5zbHVnID8/IGJhc2VTbHVncy5hZG1pbkludml0YXRpb25zO1xuICBjb2xsZWN0aW9uTWFwW2FkbWluSW52aXRhdGlvbnNTbHVnXSA9IGJ1aWxkQWRtaW5JbnZpdGF0aW9uc0NvbGxlY3Rpb24oe1xuICAgIGluY29taW5nQ29sbGVjdGlvbnMsXG4gICAgcGx1Z2luT3B0aW9uc1xuICB9KTtcblxuICAvLyBUaGVuIGFkZCBpbmNvbWluZyBjb2xsZWN0aW9ucyB0aGF0IGRvbid0IGNvbmZsaWN0IHdpdGggcmVxdWlyZWQgb25lc1xuICBpbmNvbWluZ0NvbGxlY3Rpb25zLmZvckVhY2goKGMpID0+IHtcbiAgICBpZiAoIWNvbGxlY3Rpb25NYXBbYy5zbHVnXSkge1xuICAgICAgY29sbGVjdGlvbk1hcFtjLnNsdWddID0gYztcbiAgICB9XG4gIH0pO1xuXG4gIHJldHVybiBjb2xsZWN0aW9uTWFwO1xufVxuIl0sIm5hbWVzIjpbImJhTW9kZWxLZXkiLCJiYXNlU2x1Z3MiLCJidWlsZEFjY291bnRzQ29sbGVjdGlvbiIsImJ1aWxkQWRtaW5JbnZpdGF0aW9uc0NvbGxlY3Rpb24iLCJidWlsZEFwaUtleXNDb2xsZWN0aW9uIiwiYnVpbGREZXZpY2VDb2RlQ29sbGVjdGlvbiIsImJ1aWxkSW52aXRhdGlvbnNDb2xsZWN0aW9uIiwiYnVpbGRKd2tzQ29sbGVjdGlvbiIsImJ1aWxkTWVtYmVyc0NvbGxlY3Rpb24iLCJidWlsZE9hdXRoQWNjZXNzVG9rZW5zQ29sbGVjdGlvbiIsImJ1aWxkT2F1dGhBcHBsaWNhdGlvbnNDb2xsZWN0aW9uIiwiYnVpbGRPYXV0aENvbnNlbnRzQ29sbGVjdGlvbiIsImJ1aWxkT3JnYW5pemF0aW9uUm9sZXNDb2xsZWN0aW9uIiwiYnVpbGRPcmdhbml6YXRpb25zQ29sbGVjdGlvbiIsImJ1aWxkUGFzc2tleXNDb2xsZWN0aW9uIiwiYnVpbGRSYXRlTGltaXRDb2xsZWN0aW9uIiwiYnVpbGRTY2ltUHJvdmlkZXJDb2xsZWN0aW9uIiwiYnVpbGRTZXNzaW9uc0NvbGxlY3Rpb24iLCJidWlsZFNzb1Byb3ZpZGVyc0NvbGxlY3Rpb24iLCJidWlsZFN1YnNjcmlwdGlvbnNDb2xsZWN0aW9uIiwiYnVpbGRUZWFtTWVtYmVyc0NvbGxlY3Rpb24iLCJidWlsZFRlYW1zQ29sbGVjdGlvbiIsImJ1aWxkVHdvRmFjdG9yc0NvbGxlY3Rpb24iLCJidWlsZFVzZXJzQ29sbGVjdGlvbiIsImdldFNjaGVtYUNvbGxlY3Rpb25TbHVnIiwiYnVpbGRWZXJpZmljYXRpb25zQ29sbGVjdGlvbiIsImJ1aWxkQ29sbGVjdGlvbnMiLCJpbmNvbWluZ0NvbGxlY3Rpb25zIiwicGx1Z2luT3B0aW9ucyIsInJlc29sdmVkU2NoZW1hcyIsImNvbGxlY3Rpb25CdWlsZGVycyIsInVzZXIiLCJwcm9wcyIsImFjY291bnQiLCJzZXNzaW9uIiwidmVyaWZpY2F0aW9uIiwib3JnYW5pemF0aW9uIiwibWVtYmVyIiwiaW52aXRhdGlvbiIsInRlYW0iLCJ0ZWFtTWVtYmVyIiwiandrcyIsImFwaWtleSIsInR3b0ZhY3RvciIsIm9hdXRoQWNjZXNzVG9rZW4iLCJvYXV0aEFwcGxpY2F0aW9uIiwib2F1dGhDb25zZW50IiwicGFzc2tleSIsInNzb1Byb3ZpZGVyIiwic3Vic2NyaXB0aW9uIiwiZGV2aWNlQ29kZSIsInJhdGVMaW1pdCIsInNjaW1Qcm92aWRlciIsIm9yZ2FuaXphdGlvblJvbGUiLCJjb2xsZWN0aW9uTWFwIiwibW9kZWxLZXkiLCJPYmplY3QiLCJrZXlzIiwiY29sbGVjdGlvblNsdWciLCJidWlsZGVyIiwiYWRtaW5JbnZpdGF0aW9uc1NsdWciLCJhZG1pbkludml0YXRpb25zIiwic2x1ZyIsImZvckVhY2giLCJjIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxVQUFVLEVBQUVDLFNBQVMsUUFBUSxrQkFBa0I7QUFNeEQsU0FBU0MsdUJBQXVCLFFBQVEsbUJBQW1CO0FBQzNELFNBQVNDLCtCQUErQixRQUFRLHNCQUFzQjtBQUN0RSxTQUFTQyxzQkFBc0IsUUFBUSxhQUFhO0FBQ3BELFNBQVNDLHlCQUF5QixRQUFRLGdCQUFnQjtBQUMxRCxTQUFTQywwQkFBMEIsUUFBUSxnQkFBZ0I7QUFDM0QsU0FBU0MsbUJBQW1CLFFBQVEsU0FBUztBQUM3QyxTQUFTQyxzQkFBc0IsUUFBUSxZQUFZO0FBQ25ELFNBQVNDLGdDQUFnQyxRQUFRLHdC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
@@ -0,0 +1,4 @@
1
+ import type { CollectionConfig } from "payload";
2
+ import type { BuildCollectionProps } from "@/better-auth/plugin/types";
3
+ export declare function buildInvitationsCollection({ incomingCollections, pluginOptions, resolvedSchemas }: BuildCollectionProps): CollectionConfig;
4
+ //# sourceMappingURL=invitations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invitations.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/invitations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,0BAA0B,CAAC,EACzC,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE,oBAAoB,GAAG,gBAAgB,CAiGzC"}
@@ -0,0 +1,93 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug, getSchemaFieldName } from "./utils/collection-schema";
4
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
5
+ export function buildInvitationsCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
6
+ const invitationSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.invitation);
7
+ const invitationSchema = resolvedSchemas[baModelKey.invitation];
8
+ const existingInvitationCollection = incomingCollections.find((collection)=>collection.slug === invitationSlug);
9
+ const fieldOverrides = {
10
+ email: ()=>({
11
+ index: true,
12
+ admin: {
13
+ readOnly: true,
14
+ description: "The email of the user being invited."
15
+ }
16
+ }),
17
+ inviterId: ()=>({
18
+ admin: {
19
+ readOnly: true,
20
+ description: "The user who invited the user."
21
+ }
22
+ }),
23
+ teamId: ()=>({
24
+ index: true,
25
+ admin: {
26
+ readOnly: true,
27
+ description: "The team that the user is being invited to."
28
+ }
29
+ }),
30
+ organizationId: ()=>({
31
+ index: true,
32
+ admin: {
33
+ readOnly: true,
34
+ description: "The organization that the user is being invited to."
35
+ }
36
+ }),
37
+ role: ()=>({
38
+ admin: {
39
+ readOnly: true,
40
+ description: "The role of the user being invited."
41
+ }
42
+ }),
43
+ status: ()=>({
44
+ defaultValue: "pending",
45
+ admin: {
46
+ readOnly: true,
47
+ description: "The status of the invitation."
48
+ }
49
+ }),
50
+ expiresAt: ()=>({
51
+ admin: {
52
+ readOnly: true,
53
+ description: "The date and time when the invitation will expire."
54
+ }
55
+ })
56
+ };
57
+ const collectionFields = getCollectionFields({
58
+ schema: invitationSchema,
59
+ additionalProperties: fieldOverrides
60
+ });
61
+ let invitationCollection = {
62
+ ...existingInvitationCollection,
63
+ slug: invitationSlug,
64
+ admin: {
65
+ hidden: pluginOptions.hidePluginCollections ?? false,
66
+ useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.invitation, "email"),
67
+ description: "Invitations to join an organization",
68
+ group: pluginOptions?.collectionAdminGroup ?? "Auth",
69
+ ...existingInvitationCollection?.admin
70
+ },
71
+ access: {
72
+ ...getAdminAccess(pluginOptions),
73
+ ...existingInvitationCollection?.access ?? {}
74
+ },
75
+ custom: {
76
+ ...existingInvitationCollection?.custom ?? {},
77
+ betterAuthModelKey: baModelKey.invitation
78
+ },
79
+ fields: [
80
+ ...existingInvitationCollection?.fields ?? [],
81
+ ...collectionFields ?? []
82
+ ]
83
+ };
84
+ if (typeof pluginOptions.pluginCollectionOverrides?.invitations === "function") {
85
+ invitationCollection = pluginOptions.pluginCollectionOverrides.invitations({
86
+ collection: invitationCollection
87
+ });
88
+ }
89
+ assertAllSchemaFields(invitationCollection, invitationSchema);
90
+ return invitationCollection;
91
+ }
92
+
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2ludml0YXRpb25zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgdHlwZSB7IEludml0YXRpb24gfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9nZW5lcmF0ZWQtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHtcbiAgQnVpbGRDb2xsZWN0aW9uUHJvcHMsXG4gIEZpZWxkT3ZlcnJpZGVzXG59IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi90eXBlc1wiO1xuaW1wb3J0IHsgYmFNb2RlbEtleSB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFkbWluQWNjZXNzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvZ2V0LWFkbWluLWFjY2Vzc1wiO1xuaW1wb3J0IHtcbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzLFxuICBnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyxcbiAgZ2V0U2NoZW1hRmllbGROYW1lXG59IGZyb20gXCIuL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hXCI7XG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uRmllbGRzIH0gZnJvbSBcIi4vdXRpbHMvdHJhbnNmb3JtLXNjaGVtYS1maWVsZHMtdG8tcGF5bG9hZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRJbnZpdGF0aW9uc0NvbGxlY3Rpb24oe1xuICBpbmNvbWluZ0NvbGxlY3Rpb25zLFxuICBwbHVnaW5PcHRpb25zLFxuICByZXNvbHZlZFNjaGVtYXNcbn06IEJ1aWxkQ29sbGVjdGlvblByb3BzKTogQ29sbGVjdGlvbkNvbmZpZyB7XG4gIGNvbnN0IGludml0YXRpb25TbHVnID0gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoXG4gICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgIGJhTW9kZWxLZXkuaW52aXRhdGlvblxuICApO1xuICBjb25zdCBpbnZpdGF0aW9uU2NoZW1hID0gcmVzb2x2ZWRTY2hlbWFzW2JhTW9kZWxLZXkuaW52aXRhdGlvbl07XG4gIGNvbnN0IGV4aXN0aW5nSW52aXRhdGlvbkNvbGxlY3Rpb24gPSBpbmNvbWluZ0NvbGxlY3Rpb25zLmZpbmQoXG4gICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gaW52aXRhdGlvblNsdWdcbiAgKSBhcyBDb2xsZWN0aW9uQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGZpZWxkT3ZlcnJpZGVzOiBGaWVsZE92ZXJyaWRlczxrZXlvZiBJbnZpdGF0aW9uPiA9IHtcbiAgICBlbWFpbDogKCkgPT4gKHtcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBlbWFpbCBvZiB0aGUgdXNlciBiZWluZyBpbnZpdGVkLlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgaW52aXRlcklkOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgcmVhZE9ubHk6IHRydWUsIGRlc2NyaXB0aW9uOiBcIlRoZSB1c2VyIHdobyBpbnZpdGVkIHRoZSB1c2VyLlwiIH1cbiAgICB9KSxcbiAgICB0ZWFtSWQ6ICgpID0+ICh7XG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgdGVhbSB0aGF0IHRoZSB1c2VyIGlzIGJlaW5nIGludml0ZWQgdG8uXCJcbiAgICAgIH1cbiAgICB9KSxcbiAgICBvcmdhbml6YXRpb25JZDogKCkgPT4gKHtcbiAgICAgIGluZGV4OiB0cnVlLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBvcmdhbml6YXRpb24gdGhhdCB0aGUgdXNlciBpcyBiZWluZyBpbnZpdGVkIHRvLlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgcm9sZTogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcm9sZSBvZiB0aGUgdXNlciBiZWluZyBpbnZpdGVkLlwiXG4gICAgICB9XG4gICAgfSksXG4gICAgc3RhdHVzOiAoKSA9PiAoe1xuICAgICAgZGVmYXVsdFZhbHVlOiBcInBlbmRpbmdcIixcbiAgICAgIGFkbWluOiB7IHJlYWRPbmx5OiB0cnVlLCBkZXNjcmlwdGlvbjogXCJUaGUgc3RhdHVzIG9mIHRoZSBpbnZpdGF0aW9uLlwiIH1cbiAgICB9KSxcbiAgICBleHBpcmVzQXQ6ICgpID0+ICh7XG4gICAgICBhZG1pbjoge1xuICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgaW52aXRhdGlvbiB3aWxsIGV4cGlyZS5cIlxuICAgICAgfVxuICAgIH0pXG4gIH07XG5cbiAgY29uc3QgY29sbGVjdGlvbkZpZWxkcyA9IGdldENvbGxlY3Rpb25GaWVsZHMoe1xuICAgIHNjaGVtYTogaW52aXRhdGlvblNjaGVtYSxcbiAgICBhZGRpdGlvbmFsUHJvcGVydGllczogZmllbGRPdmVycmlkZXNcbiAgfSk7XG5cbiAgbGV0IGludml0YXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIC4uLmV4aXN0aW5nSW52aXRhdGlvbkNvbGxlY3Rpb24sXG4gICAgc2x1ZzogaW52aXRhdGlvblNsdWcsXG4gICAgYWRtaW46IHtcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy5oaWRlUGx1Z2luQ29sbGVjdGlvbnMgPz8gZmFsc2UsXG4gICAgICB1c2VBc1RpdGxlOiBnZXRTY2hlbWFGaWVsZE5hbWUoXG4gICAgICAgIHJlc29sdmVkU2NoZW1hcyxcbiAgICAgICAgYmFNb2RlbEtleS5pbnZpdGF0aW9uLFxuICAgICAgICBcImVtYWlsXCJcbiAgICAgICksXG4gICAgICBkZXNjcmlwdGlvbjogXCJJbnZpdGF0aW9ucyB0byBqb2luIGFuIG9yZ2FuaXphdGlvblwiLFxuICAgICAgZ3JvdXA6IHBsdWdpbk9wdGlvbnM/LmNvbGxlY3Rpb25BZG1pbkdyb3VwID8/IFwiQXV0aFwiLFxuICAgICAgLi4uZXhpc3RpbmdJbnZpdGF0aW9uQ29sbGVjdGlvbj8uYWRtaW5cbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgLi4uZ2V0QWRtaW5BY2Nlc3MocGx1Z2luT3B0aW9ucyksXG4gICAgICAuLi4oZXhpc3RpbmdJbnZpdGF0aW9uQ29sbGVjdGlvbj8uYWNjZXNzID8/IHt9KVxuICAgIH0sXG4gICAgY3VzdG9tOiB7XG4gICAgICAuLi4oZXhpc3RpbmdJbnZpdGF0aW9uQ29sbGVjdGlvbj8uY3VzdG9tID8/IHt9KSxcbiAgICAgIGJldHRlckF1dGhNb2RlbEtleTogYmFNb2RlbEtleS5pbnZpdGF0aW9uXG4gICAgfSxcbiAgICBmaWVsZHM6IFtcbiAgICAgIC4uLihleGlzdGluZ0ludml0YXRpb25Db2xsZWN0aW9uPy5maWVsZHMgPz8gW10pLFxuICAgICAgLi4uKGNvbGxlY3Rpb25GaWVsZHMgPz8gW10pXG4gICAgXVxuICB9O1xuXG4gIGlmIChcbiAgICB0eXBlb2YgcGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzPy5pbnZpdGF0aW9ucyA9PT0gXCJmdW5jdGlvblwiXG4gICkge1xuICAgIGludml0YXRpb25Db2xsZWN0aW9uID0gcGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzLmludml0YXRpb25zKHtcbiAgICAgIGNvbGxlY3Rpb246IGludml0YXRpb25Db2xsZWN0aW9uXG4gICAgfSk7XG4gIH1cblxuICBhc3NlcnRBbGxTY2hlbWFGaWVsZHMoaW52aXRhdGlvbkNvbGxlY3Rpb24sIGludml0YXRpb25TY2hlbWEpO1xuXG4gIHJldHVybiBpbnZpdGF0aW9uQ29sbGVjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsS2V5IiwiZ2V0QWRtaW5BY2Nlc3MiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImdldFNjaGVtYUZpZWxkTmFtZSIsImdldENvbGxlY3Rpb25GaWVsZHMiLCJidWlsZEludml0YXRpb25zQ29sbGVjdGlvbiIsImluY29taW5nQ29sbGVjdGlvbnMiLCJwbHVnaW5PcHRpb25zIiwicmVzb2x2ZWRTY2hlbWFzIiwiaW52aXRhdGlvblNsdWciLCJpbnZpdGF0aW9uIiwiaW52aXRhdGlvblNjaGVtYSIsImV4aXN0aW5nSW52aXRhdGlvbkNvbGxlY3Rpb24iLCJmaW5kIiwiY29sbGVjdGlvbiIsInNsdWciLCJmaWVsZE92ZXJyaWRlcyIsImVtYWlsIiwiaW5kZXgiLCJhZG1pbiIsInJlYWRPbmx5IiwiZGVzY3JpcHRpb24iLCJpbnZpdGVySWQiLCJ0ZWFtSWQiLCJvcmdhbml6YXRpb25JZCIsInJvbGUiLCJzdGF0dXMiLCJkZWZhdWx0VmFsdWUiLCJleHBpcmVzQXQiLCJjb2xsZWN0aW9uRmllbGRzIiwic2NoZW1hIiwiYWRkaXRpb25hbFByb3BlcnRpZXMiLCJpbnZpdGF0aW9uQ29sbGVjdGlvbiIsImhpZGRlbiIsImhpZGVQbHVnaW5Db2xsZWN0aW9ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiYWNjZXNzIiwiY3VzdG9tIiwiYmV0dGVyQXV0aE1vZGVsS2V5IiwiZmllbGRzIiwicGx1Z2luQ29sbGVjdGlvbk92ZXJyaWRlcyIsImludml0YXRpb25zIl0sIm1hcHBpbmdzIjoiQUFNQSxTQUFTQSxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLFNBQVNDLGNBQWMsUUFBUSxpQ0FBaUM7QUFDaEUsU0FDRUMscUJBQXFCLEVBQ3JCQyx1QkFBdUIsRUFDdkJDLGtCQUFrQixRQUNiLDRCQUE0QjtBQUNuQyxTQUFTQyxtQkFBbUIsUUFBUSw2Q0FBNkM7QUFFakYsT0FBTyxTQUFTQywyQkFBMkIsRUFDekNDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ007SUFDckIsTUFBTUMsaUJBQWlCUCx3QkFDckJNLGlCQUNBVCxXQUFXVyxVQUFVO0lBRXZCLE1BQU1DLG1CQUFtQkgsZUFBZSxDQUFDVCxXQUFXVyxVQUFVLENBQUM7SUFDL0QsTUFBTUUsK0JBQStCTixvQkFBb0JPLElBQUksQ0FDM0QsQ0FBQ0MsYUFBZUEsV0FBV0MsSUFBSSxLQUFLTjtJQUd0QyxNQUFNTyxpQkFBbUQ7UUFDdkRDLE9BQU8sSUFBTyxDQUFBO2dCQUNaQyxPQUFPO2dCQUNQQyxPQUFPO29CQUNMQyxVQUFVO29CQUNWQyxhQUFhO2dCQUNmO1lBQ0YsQ0FBQTtRQUNBQyxXQUFXLElBQU8sQ0FBQTtnQkFDaEJILE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQWlDO1lBQ3pFLENBQUE7UUFDQUUsUUFBUSxJQUFPLENBQUE7Z0JBQ2JMLE9BQU87Z0JBQ1BDLE9BQU87b0JBQ0xDLFVBQVU7b0JBQ1ZDLGFBQWE7Z0JBQ2Y7WUFDRixDQUFBO1FBQ0FHLGdCQUFnQixJQUFPLENBQUE7Z0JBQ3JCTixPQUFPO2dCQUNQQyxPQUFPO29CQUNMQyxVQUFVO29CQUNWQyxhQUFhO2dCQUNmO1lBQ0YsQ0FBQTtRQUNBSSxNQUFNLElBQU8sQ0FBQTtnQkFDWE4sT0FBTztvQkFDTEMsVUFBVTtvQkFDVkMsYUFBYTtnQkFDZjtZQUNGLENBQUE7UUFDQUssUUFBUSxJQUFPLENBQUE7Z0JBQ2JDLGNBQWM7Z0JBQ2RSLE9BQU87b0JBQUVDLFVBQVU7b0JBQU1DLGFBQWE7Z0JBQWdDO1lBQ3hFLENBQUE7UUFDQU8sV0FBVyxJQUFPLENBQUE7Z0JBQ2hCVCxPQUFPO29CQUNMQyxVQUFVO29CQUNWQyxhQUFhO2dCQUNmO1lBQ0YsQ0FBQTtJQUNGO0lBRUEsTUFBTVEsbUJBQW1CekIsb0JBQW9CO1FBQzNDMEIsUUFBUW5CO1FBQ1JvQixzQkFBc0JmO0lBQ3hCO0lBRUEsSUFBSWdCLHVCQUF5QztRQUMzQyxHQUFHcEIsNEJBQTRCO1FBQy9CRyxNQUFNTjtRQUNOVSxPQUFPO1lBQ0xjLFFBQVExQixjQUFjMkIscUJBQXFCLElBQUk7WUFDL0NDLFlBQVloQyxtQkFDVkssaUJBQ0FULFdBQVdXLFVBQVUsRUFDckI7WUFFRlcsYUFBYTtZQUNiZSxPQUFPN0IsZUFBZThCLHdCQUF3QjtZQUM5QyxHQUFHekIsOEJBQThCTyxLQUFLO1FBQ3hDO1FBQ0FtQixRQUFRO1lBQ04sR0FBR3RDLGVBQWVPLGNBQWM7WUFDaEMsR0FBSUssOEJBQThCMEIsVUFBVSxDQUFDLENBQUM7UUFDaEQ7UUFDQUMsUUFBUTtZQUNOLEdBQUkzQiw4QkFBOEIyQixVQUFVLENBQUMsQ0FBQztZQUM5Q0Msb0JBQW9CekMsV0FBV1csVUFBVTtRQUMzQztRQUNBK0IsUUFBUTtlQUNGN0IsOEJBQThCNkIsVUFBVSxFQUFFO2VBQzFDWixvQkFBb0IsRUFBRTtTQUMzQjtJQUNIO0lBRUEsSUFDRSxPQUFPdEIsY0FBY21DLHlCQUF5QixFQUFFQyxnQkFBZ0IsWUFDaEU7UUFDQVgsdUJBQXVCekIsY0FBY21DLHlCQUF5QixDQUFDQyxXQUFXLENBQUM7WUFDekU3QixZQUFZa0I7UUFDZDtJQUNGO0lBRUEvQixzQkFBc0IrQixzQkFBc0JyQjtJQUU1QyxPQUFPcUI7QUFDVCJ9
@@ -0,0 +1,4 @@
1
+ import type { CollectionConfig } from "payload";
2
+ import type { BuildCollectionProps } from "@/better-auth/plugin/types";
3
+ export declare function buildJwksCollection({ incomingCollections, pluginOptions, resolvedSchemas }: BuildCollectionProps): CollectionConfig;
4
+ //# sourceMappingURL=jwks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jwks.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/jwks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,mBAAmB,CAAC,EAClC,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE,oBAAoB,GAAG,gBAAgB,CA4DzC"}
@@ -0,0 +1,58 @@
1
+ import { baModelKey } from "../../constants";
2
+ import { getAdminAccess } from "../../helpers/get-admin-access";
3
+ import { assertAllSchemaFields, getSchemaCollectionSlug, getSchemaFieldName } from "./utils/collection-schema";
4
+ import { getCollectionFields } from "./utils/transform-schema-fields-to-payload";
5
+ export function buildJwksCollection({ incomingCollections, pluginOptions, resolvedSchemas }) {
6
+ const jwksSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.jwks);
7
+ const jwksSchema = resolvedSchemas[baModelKey.jwks];
8
+ const existingJwksCollection = incomingCollections.find((collection)=>collection.slug === jwksSlug);
9
+ const fieldOverrides = {
10
+ publicKey: ()=>({
11
+ index: true,
12
+ admin: {
13
+ description: "The public part of the web key"
14
+ }
15
+ }),
16
+ privateKey: ()=>({
17
+ admin: {
18
+ description: "The private part of the web key"
19
+ }
20
+ })
21
+ };
22
+ const collectionFields = getCollectionFields({
23
+ schema: jwksSchema,
24
+ additionalProperties: fieldOverrides
25
+ });
26
+ let jwksCollection = {
27
+ ...existingJwksCollection,
28
+ slug: jwksSlug,
29
+ admin: {
30
+ hidden: pluginOptions.hidePluginCollections ?? false,
31
+ useAsTitle: getSchemaFieldName(resolvedSchemas, baModelKey.jwks, "publicKey"),
32
+ description: "JWKS are used to verify the signature of the JWT token",
33
+ group: pluginOptions?.collectionAdminGroup ?? "Auth",
34
+ ...existingJwksCollection?.admin
35
+ },
36
+ access: {
37
+ ...getAdminAccess(pluginOptions),
38
+ ...existingJwksCollection?.access ?? {}
39
+ },
40
+ custom: {
41
+ ...existingJwksCollection?.custom ?? {},
42
+ betterAuthModelKey: baModelKey.jwks
43
+ },
44
+ fields: [
45
+ ...existingJwksCollection?.fields ?? [],
46
+ ...collectionFields ?? []
47
+ ]
48
+ };
49
+ if (typeof pluginOptions.pluginCollectionOverrides?.jwks === "function") {
50
+ jwksCollection = pluginOptions.pluginCollectionOverrides.jwks({
51
+ collection: jwksCollection
52
+ });
53
+ }
54
+ assertAllSchemaFields(jwksCollection, jwksSchema);
55
+ return jwksCollection;
56
+ }
57
+
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2p3a3MudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSBcInBheWxvYWRcIjtcbmltcG9ydCB0eXBlIHsgSndrcyB9IGZyb20gXCJAL2JldHRlci1hdXRoL2dlbmVyYXRlZC10eXBlc1wiO1xuaW1wb3J0IHR5cGUge1xuICBCdWlsZENvbGxlY3Rpb25Qcm9wcyxcbiAgRmllbGRPdmVycmlkZXNcbn0gZnJvbSBcIkAvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzXCI7XG5pbXBvcnQgeyBiYU1vZGVsS2V5IH0gZnJvbSBcIi4uLy4uL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0QWRtaW5BY2Nlc3MgfSBmcm9tIFwiLi4vLi4vaGVscGVycy9nZXQtYWRtaW4tYWNjZXNzXCI7XG5pbXBvcnQge1xuICBhc3NlcnRBbGxTY2hlbWFGaWVsZHMsXG4gIGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnLFxuICBnZXRTY2hlbWFGaWVsZE5hbWVcbn0gZnJvbSBcIi4vdXRpbHMvY29sbGVjdGlvbi1zY2hlbWFcIjtcbmltcG9ydCB7IGdldENvbGxlY3Rpb25GaWVsZHMgfSBmcm9tIFwiLi91dGlscy90cmFuc2Zvcm0tc2NoZW1hLWZpZWxkcy10by1wYXlsb2FkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZEp3a3NDb2xsZWN0aW9uKHtcbiAgaW5jb21pbmdDb2xsZWN0aW9ucyxcbiAgcGx1Z2luT3B0aW9ucyxcbiAgcmVzb2x2ZWRTY2hlbWFzXG59OiBCdWlsZENvbGxlY3Rpb25Qcm9wcyk6IENvbGxlY3Rpb25Db25maWcge1xuICBjb25zdCBqd2tzU2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKHJlc29sdmVkU2NoZW1hcywgYmFNb2RlbEtleS5qd2tzKTtcbiAgY29uc3Qgandrc1NjaGVtYSA9IHJlc29sdmVkU2NoZW1hc1tiYU1vZGVsS2V5Lmp3a3NdO1xuXG4gIGNvbnN0IGV4aXN0aW5nSndrc0NvbGxlY3Rpb24gPSBpbmNvbWluZ0NvbGxlY3Rpb25zLmZpbmQoXG4gICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gandrc1NsdWdcbiAgKSBhcyBDb2xsZWN0aW9uQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGZpZWxkT3ZlcnJpZGVzOiBGaWVsZE92ZXJyaWRlczxrZXlvZiBKd2tzPiA9IHtcbiAgICBwdWJsaWNLZXk6ICgpID0+ICh7XG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiBcIlRoZSBwdWJsaWMgcGFydCBvZiB0aGUgd2ViIGtleVwiIH1cbiAgICB9KSxcbiAgICBwcml2YXRlS2V5OiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246IFwiVGhlIHByaXZhdGUgcGFydCBvZiB0aGUgd2ViIGtleVwiIH1cbiAgICB9KVxuICB9O1xuXG4gIGNvbnN0IGNvbGxlY3Rpb25GaWVsZHMgPSBnZXRDb2xsZWN0aW9uRmllbGRzKHtcbiAgICBzY2hlbWE6IGp3a3NTY2hlbWEsXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZpZWxkT3ZlcnJpZGVzXG4gIH0pO1xuXG4gIGxldCBqd2tzQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgICAuLi5leGlzdGluZ0p3a3NDb2xsZWN0aW9uLFxuICAgIHNsdWc6IGp3a3NTbHVnLFxuICAgIGFkbWluOiB7XG4gICAgICBoaWRkZW46IHBsdWdpbk9wdGlvbnMuaGlkZVBsdWdpbkNvbGxlY3Rpb25zID8/IGZhbHNlLFxuICAgICAgdXNlQXNUaXRsZTogZ2V0U2NoZW1hRmllbGROYW1lKFxuICAgICAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgICAgIGJhTW9kZWxLZXkuandrcyxcbiAgICAgICAgXCJwdWJsaWNLZXlcIlxuICAgICAgKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkpXS1MgYXJlIHVzZWQgdG8gdmVyaWZ5IHRoZSBzaWduYXR1cmUgb2YgdGhlIEpXVCB0b2tlblwiLFxuICAgICAgZ3JvdXA6IHBsdWdpbk9wdGlvbnM/LmNvbGxlY3Rpb25BZG1pbkdyb3VwID8/IFwiQXV0aFwiLFxuICAgICAgLi4uZXhpc3RpbmdKd2tzQ29sbGVjdGlvbj8uYWRtaW5cbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgLi4uZ2V0QWRtaW5BY2Nlc3MocGx1Z2luT3B0aW9ucyksXG4gICAgICAuLi4oZXhpc3RpbmdKd2tzQ29sbGVjdGlvbj8uYWNjZXNzID8/IHt9KVxuICAgIH0sXG4gICAgY3VzdG9tOiB7XG4gICAgICAuLi4oZXhpc3RpbmdKd2tzQ29sbGVjdGlvbj8uY3VzdG9tID8/IHt9KSxcbiAgICAgIGJldHRlckF1dGhNb2RlbEtleTogYmFNb2RlbEtleS5qd2tzXG4gICAgfSxcbiAgICBmaWVsZHM6IFtcbiAgICAgIC4uLihleGlzdGluZ0p3a3NDb2xsZWN0aW9uPy5maWVsZHMgPz8gW10pLFxuICAgICAgLi4uKGNvbGxlY3Rpb25GaWVsZHMgPz8gW10pXG4gICAgXVxuICB9O1xuXG4gIGlmICh0eXBlb2YgcGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzPy5qd2tzID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICBqd2tzQ29sbGVjdGlvbiA9IHBsdWdpbk9wdGlvbnMucGx1Z2luQ29sbGVjdGlvbk92ZXJyaWRlcy5qd2tzKHtcbiAgICAgIGNvbGxlY3Rpb246IGp3a3NDb2xsZWN0aW9uXG4gICAgfSk7XG4gIH1cblxuICBhc3NlcnRBbGxTY2hlbWFGaWVsZHMoandrc0NvbGxlY3Rpb24sIGp3a3NTY2hlbWEpO1xuXG4gIHJldHVybiBqd2tzQ29sbGVjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsS2V5IiwiZ2V0QWRtaW5BY2Nlc3MiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImdldFNjaGVtYUZpZWxkTmFtZSIsImdldENvbGxlY3Rpb25GaWVsZHMiLCJidWlsZEp3a3NDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJyZXNvbHZlZFNjaGVtYXMiLCJqd2tzU2x1ZyIsImp3a3MiLCJqd2tzU2NoZW1hIiwiZXhpc3RpbmdKd2tzQ29sbGVjdGlvbiIsImZpbmQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImZpZWxkT3ZlcnJpZGVzIiwicHVibGljS2V5IiwiaW5kZXgiLCJhZG1pbiIsImRlc2NyaXB0aW9uIiwicHJpdmF0ZUtleSIsImNvbGxlY3Rpb25GaWVsZHMiLCJzY2hlbWEiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsImp3a3NDb2xsZWN0aW9uIiwiaGlkZGVuIiwiaGlkZVBsdWdpbkNvbGxlY3Rpb25zIiwidXNlQXNUaXRsZSIsImdyb3VwIiwiY29sbGVjdGlvbkFkbWluR3JvdXAiLCJhY2Nlc3MiLCJjdXN0b20iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJmaWVsZHMiLCJwbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzIl0sIm1hcHBpbmdzIjoiQUFNQSxTQUFTQSxVQUFVLFFBQVEsa0JBQWtCO0FBQzdDLFNBQVNDLGNBQWMsUUFBUSxpQ0FBaUM7QUFDaEUsU0FDRUMscUJBQXFCLEVBQ3JCQyx1QkFBdUIsRUFDdkJDLGtCQUFrQixRQUNiLDRCQUE0QjtBQUNuQyxTQUFTQyxtQkFBbUIsUUFBUSw2Q0FBNkM7QUFFakYsT0FBTyxTQUFTQyxvQkFBb0IsRUFDbENDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUNiQyxlQUFlLEVBQ007SUFDckIsTUFBTUMsV0FBV1Asd0JBQXdCTSxpQkFBaUJULFdBQVdXLElBQUk7SUFDekUsTUFBTUMsYUFBYUgsZUFBZSxDQUFDVCxXQUFXVyxJQUFJLENBQUM7SUFFbkQsTUFBTUUseUJBQXlCTixvQkFBb0JPLElBQUksQ0FDckQsQ0FBQ0MsYUFBZUEsV0FBV0MsSUFBSSxLQUFLTjtJQUd0QyxNQUFNTyxpQkFBNkM7UUFDakRDLFdBQVcsSUFBTyxDQUFBO2dCQUNoQkMsT0FBTztnQkFDUEMsT0FBTztvQkFBRUMsYUFBYTtnQkFBaUM7WUFDekQsQ0FBQTtRQUNBQyxZQUFZLElBQU8sQ0FBQTtnQkFDakJGLE9BQU87b0JBQUVDLGFBQWE7Z0JBQWtDO1lBQzFELENBQUE7SUFDRjtJQUVBLE1BQU1FLG1CQUFtQmxCLG9CQUFvQjtRQUMzQ21CLFFBQVFaO1FBQ1JhLHNCQUFzQlI7SUFDeEI7SUFFQSxJQUFJUyxpQkFBbUM7UUFDckMsR0FBR2Isc0JBQXNCO1FBQ3pCRyxNQUFNTjtRQUNOVSxPQUFPO1lBQ0xPLFFBQVFuQixjQUFjb0IscUJBQXFCLElBQUk7WUFDL0NDLFlBQVl6QixtQkFDVkssaUJBQ0FULFdBQVdXLElBQUksRUFDZjtZQUVGVSxhQUFhO1lBQ2JTLE9BQU90QixlQUFldUIsd0JBQXdCO1lBQzlDLEdBQUdsQix3QkFBd0JPLEtBQUs7UUFDbEM7UUFDQVksUUFBUTtZQUNOLEdBQUcvQixlQUFlTyxjQUFjO1lBQ2hDLEdBQUlLLHdCQUF3Qm1CLFVBQVUsQ0FBQyxDQUFDO1FBQzFDO1FBQ0FDLFFBQVE7WUFDTixHQUFJcEIsd0JBQXdCb0IsVUFBVSxDQUFDLENBQUM7WUFDeENDLG9CQUFvQmxDLFdBQVdXLElBQUk7UUFDckM7UUFDQXdCLFFBQVE7ZUFDRnRCLHdCQUF3QnNCLFVBQVUsRUFBRTtlQUNwQ1osb0JBQW9CLEVBQUU7U0FDM0I7SUFDSDtJQUVBLElBQUksT0FBT2YsY0FBYzRCLHlCQUF5QixFQUFFekIsU0FBUyxZQUFZO1FBQ3ZFZSxpQkFBaUJsQixjQUFjNEIseUJBQXlCLENBQUN6QixJQUFJLENBQUM7WUFDNURJLFlBQVlXO1FBQ2Q7SUFDRjtJQUVBeEIsc0JBQXNCd0IsZ0JBQWdCZDtJQUV0QyxPQUFPYztBQUNUIn0=
@@ -0,0 +1,4 @@
1
+ import type { CollectionConfig } from "payload";
2
+ import type { BuildCollectionProps } from "@/better-auth/plugin/types";
3
+ export declare function buildMembersCollection({ incomingCollections, pluginOptions, resolvedSchemas }: BuildCollectionProps): CollectionConfig;
4
+ //# sourceMappingURL=members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/members.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD,OAAO,KAAK,EACV,oBAAoB,EAErB,MAAM,4BAA4B,CAAC;AAUpC,wBAAgB,sBAAsB,CAAC,EACrC,mBAAmB,EACnB,aAAa,EACb,eAAe,EAChB,EAAE,oBAAoB,GAAG,gBAAgB,CA6EzC"}