payload-auth 1.4.0 → 1.5.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 (213) hide show
  1. package/dist/better-auth/adapter/index.d.ts +10 -0
  2. package/dist/better-auth/adapter/index.d.ts.map +1 -1
  3. package/dist/better-auth/adapter/index.js +151 -125
  4. package/dist/better-auth/adapter/transform/index.d.ts +2 -4
  5. package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
  6. package/dist/better-auth/adapter/transform/index.js +435 -311
  7. package/dist/better-auth/generated-types.d.ts +216 -0
  8. package/dist/better-auth/generated-types.d.ts.map +1 -0
  9. package/dist/better-auth/generated-types.js +4 -0
  10. package/dist/better-auth/plugin/constants.d.ts +146 -3
  11. package/dist/better-auth/plugin/constants.d.ts.map +1 -1
  12. package/dist/better-auth/plugin/constants.js +149 -6
  13. package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts +13 -0
  14. package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts.map +1 -0
  15. package/dist/better-auth/plugin/helpers/check-plugin-exists.js +14 -0
  16. package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts +22 -0
  17. package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts.map +1 -0
  18. package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +50 -0
  19. package/dist/better-auth/plugin/helpers/get-collection-schema-map.d.ts +16 -0
  20. package/dist/better-auth/plugin/helpers/get-collection-schema-map.d.ts.map +1 -0
  21. package/dist/better-auth/plugin/helpers/get-collection-schema-map.js +108 -0
  22. package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts +6 -0
  23. package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts.map +1 -0
  24. package/dist/better-auth/plugin/helpers/get-collection-slug.js +20 -0
  25. package/dist/better-auth/plugin/helpers/get-collection.d.ts +41 -0
  26. package/dist/better-auth/plugin/helpers/get-collection.d.ts.map +1 -0
  27. package/dist/better-auth/plugin/helpers/get-collection.js +62 -0
  28. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +52 -14
  29. package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -1
  30. package/dist/better-auth/plugin/helpers/prepare-session-data.js +41 -35
  31. package/dist/better-auth/plugin/index.d.ts +3 -3
  32. package/dist/better-auth/plugin/index.d.ts.map +1 -1
  33. package/dist/better-auth/plugin/index.js +31 -40
  34. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +2 -6
  35. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -1
  36. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +22 -7
  37. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +3 -6
  38. package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -1
  39. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +96 -102
  40. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +2 -2
  41. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -1
  42. package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +6 -5
  43. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +3 -5
  44. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -1
  45. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +97 -113
  46. package/dist/better-auth/plugin/lib/build-collections/index.d.ts +6 -6
  47. package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -1
  48. package/dist/better-auth/plugin/lib/build-collections/index.js +68 -84
  49. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +2 -4
  50. package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -1
  51. package/dist/better-auth/plugin/lib/build-collections/invitations.js +75 -70
  52. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +3 -5
  53. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -1
  54. package/dist/better-auth/plugin/lib/build-collections/jwks.js +46 -28
  55. package/dist/better-auth/plugin/lib/build-collections/members.d.ts +3 -5
  56. package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -1
  57. package/dist/better-auth/plugin/lib/build-collections/members.js +52 -48
  58. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +3 -5
  59. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -1
  60. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +74 -64
  61. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +3 -5
  62. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -1
  63. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +78 -71
  64. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +3 -5
  65. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -1
  66. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +68 -45
  67. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +3 -5
  68. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -1
  69. package/dist/better-auth/plugin/lib/build-collections/organizations.js +52 -39
  70. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +3 -5
  71. package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -1
  72. package/dist/better-auth/plugin/lib/build-collections/passkeys.js +60 -64
  73. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +3 -7
  74. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -1
  75. package/dist/better-auth/plugin/lib/build-collections/sessions.js +100 -96
  76. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +3 -5
  77. package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -1
  78. package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +56 -56
  79. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts +4 -0
  80. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts.map +1 -0
  81. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +113 -0
  82. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +3 -5
  83. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -1
  84. package/dist/better-auth/plugin/lib/build-collections/teams.js +62 -30
  85. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +3 -5
  86. package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -1
  87. package/dist/better-auth/plugin/lib/build-collections/two-factors.js +50 -37
  88. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -1
  89. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +5 -5
  90. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +3 -3
  91. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +6 -0
  92. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -0
  93. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +7 -0
  94. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +4 -4
  95. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +2 -2
  96. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +1 -1
  97. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +93 -96
  98. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +1 -6
  99. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -1
  100. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +27 -16
  101. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +1 -5
  102. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -1
  103. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +16 -8
  104. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +2 -6
  105. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -1
  106. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +25 -6
  107. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +2 -1
  108. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -1
  109. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +5 -8
  110. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +7 -0
  111. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts.map +1 -0
  112. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +8 -0
  113. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +1 -1
  114. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -1
  115. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +15 -12
  116. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +1 -6
  117. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -1
  118. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +21 -10
  119. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +3 -7
  120. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
  121. package/dist/better-auth/plugin/lib/build-collections/users/index.js +153 -210
  122. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts +16 -0
  123. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts.map +1 -0
  124. package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js +32 -0
  125. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +1 -1
  126. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -1
  127. package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +1 -1
  128. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +17 -0
  129. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts.map +1 -0
  130. package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +21 -0
  131. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +22 -0
  132. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts.map +1 -0
  133. package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +95 -0
  134. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +3 -6
  135. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -1
  136. package/dist/better-auth/plugin/lib/build-collections/verifications.js +62 -40
  137. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -1
  138. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +4 -3
  139. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -1
  140. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -1
  141. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +8 -15
  142. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +5 -3
  143. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
  144. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +56 -69
  145. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -1
  146. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -1
  147. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +16 -55
  148. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -1
  149. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -1
  150. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +21 -83
  151. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -1
  152. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -1
  153. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +8 -15
  154. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -1
  155. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -1
  156. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +8 -15
  157. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts +3 -0
  158. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts.map +1 -0
  159. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js +10 -0
  160. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +3 -3
  161. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -1
  162. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +3 -3
  163. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts +5 -4
  164. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -1
  165. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +19 -17
  166. package/dist/better-auth/plugin/lib/set-login-methods.d.ts +1 -1
  167. package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -1
  168. package/dist/better-auth/plugin/lib/set-login-methods.js +5 -6
  169. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
  170. package/dist/better-auth/plugin/payload/views/admin-login/client.js +2 -2
  171. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +4 -4
  172. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
  173. package/dist/better-auth/plugin/payload/views/admin-login/index.js +7 -8
  174. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +1 -1
  175. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
  176. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +27 -7
  177. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +4 -5
  178. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -1
  179. package/dist/better-auth/plugin/payload/views/admin-signup/index.js +6 -6
  180. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +1 -5
  181. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -1
  182. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +1 -1
  183. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +3 -3
  184. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -1
  185. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +10 -7
  186. package/dist/better-auth/plugin/types.d.ts +41 -13
  187. package/dist/better-auth/plugin/types.d.ts.map +1 -1
  188. package/dist/better-auth/plugin/types.js +1 -1
  189. package/dist/better-auth/plugin/utils/set.d.ts +40 -0
  190. package/dist/better-auth/plugin/utils/set.d.ts.map +1 -0
  191. package/dist/better-auth/plugin/utils/set.js +84 -0
  192. package/dist/better-auth/scripts/generate-types.d.ts +2 -0
  193. package/dist/better-auth/scripts/generate-types.d.ts.map +1 -0
  194. package/dist/better-auth/scripts/generate-types.js +219 -0
  195. package/dist/shared/form/validation.d.ts +31 -7
  196. package/dist/shared/form/validation.d.ts.map +1 -1
  197. package/dist/shared/form/validation.js +13 -5
  198. package/package.json +14 -4
  199. package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts +0 -3
  200. package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts.map +0 -1
  201. package/dist/better-auth/plugin/helpers/check-passkey-plugin.js +0 -6
  202. package/dist/better-auth/plugin/helpers/check-two-factor-plugin.d.ts +0 -3
  203. package/dist/better-auth/plugin/helpers/check-two-factor-plugin.d.ts.map +0 -1
  204. package/dist/better-auth/plugin/helpers/check-two-factor-plugin.js +0 -6
  205. package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts +0 -3
  206. package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts.map +0 -1
  207. package/dist/better-auth/plugin/helpers/check-username-plugin.js +0 -6
  208. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +0 -10
  209. package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +0 -1
  210. package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +0 -35
  211. package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts +0 -15
  212. package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts.map +0 -1
  213. package/dist/better-auth/plugin/payload/utils/generate-metadata.js +0 -74
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Checks if a plugin with the specified ID exists in the Better Auth options
3
+ *
4
+ * This utility function examines the plugins array in the provided Better Auth options
5
+ * to determine if a plugin with the given ID is already registered.
6
+ *
7
+ * @param options - The Better Auth configuration options
8
+ * @param pluginId - The unique identifier of the plugin to check for
9
+ * @returns `true` if a plugin with the specified ID exists, `false` otherwise
10
+ */ export function checkPluginExists(options, pluginId) {
11
+ return options.plugins?.some((plugin)=>plugin.id === pluginId) || false;
12
+ }
13
+
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9jaGVjay1wbHVnaW4tZXhpc3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBwbHVnaW4gd2l0aCB0aGUgc3BlY2lmaWVkIElEIGV4aXN0cyBpbiB0aGUgQmV0dGVyIEF1dGggb3B0aW9uc1xuICpcbiAqIFRoaXMgdXRpbGl0eSBmdW5jdGlvbiBleGFtaW5lcyB0aGUgcGx1Z2lucyBhcnJheSBpbiB0aGUgcHJvdmlkZWQgQmV0dGVyIEF1dGggb3B0aW9uc1xuICogdG8gZGV0ZXJtaW5lIGlmIGEgcGx1Z2luIHdpdGggdGhlIGdpdmVuIElEIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBCZXR0ZXIgQXV0aCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcGx1Z2luIHRvIGNoZWNrIGZvclxuICogQHJldHVybnMgYHRydWVgIGlmIGEgcGx1Z2luIHdpdGggdGhlIHNwZWNpZmllZCBJRCBleGlzdHMsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BsdWdpbkV4aXN0cyhvcHRpb25zOiBCZXR0ZXJBdXRoT3B0aW9ucywgcGx1Z2luSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3B0aW9ucy5wbHVnaW5zPy5zb21lKChwbHVnaW4pID0+IHBsdWdpbi5pZCA9PT0gcGx1Z2luSWQpIHx8IGZhbHNlXG59XG4iXSwibmFtZXMiOlsiY2hlY2tQbHVnaW5FeGlzdHMiLCJvcHRpb25zIiwicGx1Z2luSWQiLCJwbHVnaW5zIiwic29tZSIsInBsdWdpbiIsImlkIl0sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7O0NBU0MsR0FDRCxPQUFPLFNBQVNBLGtCQUFrQkMsT0FBMEIsRUFBRUMsUUFBZ0I7SUFDNUUsT0FBT0QsUUFBUUUsT0FBTyxFQUFFQyxLQUFLLENBQUNDLFNBQVdBLE9BQU9DLEVBQUUsS0FBS0osYUFBYTtBQUN0RSJ9
@@ -0,0 +1,22 @@
1
+ import { type FieldAttribute } from 'better-auth/db';
2
+ import type { BetterAuthOptions } from 'better-auth';
3
+ /**
4
+ * This is a slighlty modfied version of the getSchema function from better-auth.
5
+ * Found here: https://github.com/better-auth/better-auth/blob/main/packages/better-auth/src/db/get-schema.ts
6
+ *
7
+ * We DON'T do this:
8
+ * actualFields[field.fieldName || key] = field;
9
+ *
10
+ * Instead we will do this:
11
+ * actualFields[key] = field;
12
+ *
13
+ * This is to contain consistency when statically hard coded keys.
14
+ *
15
+ * @param config - The better auth config
16
+ * @returns The schema for the better auth tables
17
+ */
18
+ export declare function getBetterAuthSchema(config: BetterAuthOptions): Record<string, {
19
+ fields: Record<string, FieldAttribute>;
20
+ order: number;
21
+ }>;
22
+ //# sourceMappingURL=get-better-auth-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-better-auth-schema.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-better-auth-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB;YAK/C,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;WAC/B,MAAM;GAgClB"}
@@ -0,0 +1,50 @@
1
+ import { getAuthTables } from "better-auth/db";
2
+ /**
3
+ * This is a slighlty modfied version of the getSchema function from better-auth.
4
+ * Found here: https://github.com/better-auth/better-auth/blob/main/packages/better-auth/src/db/get-schema.ts
5
+ *
6
+ * We DON'T do this:
7
+ * actualFields[field.fieldName || key] = field;
8
+ *
9
+ * Instead we will do this:
10
+ * actualFields[key] = field;
11
+ *
12
+ * This is to contain consistency when statically hard coded keys.
13
+ *
14
+ * @param config - The better auth config
15
+ * @returns The schema for the better auth tables
16
+ */ export function getBetterAuthSchema(config) {
17
+ const tables = getAuthTables(config);
18
+ let schema = {};
19
+ for(const key in tables){
20
+ const table = tables[key];
21
+ const fields = table.fields;
22
+ let actualFields = {};
23
+ Object.entries(fields).forEach(([key, field])=>{
24
+ actualFields[key] = field;
25
+ if (field.references) {
26
+ const refTable = tables[field.references.model];
27
+ if (refTable) {
28
+ actualFields[key].references = {
29
+ model: refTable.modelName,
30
+ field: field.references.field
31
+ };
32
+ }
33
+ }
34
+ });
35
+ if (schema[table.modelName]) {
36
+ schema[table.modelName].fields = {
37
+ ...schema[table.modelName].fields,
38
+ ...actualFields
39
+ };
40
+ continue;
41
+ }
42
+ schema[table.modelName] = {
43
+ fields: actualFields,
44
+ order: table.order || Infinity
45
+ };
46
+ }
47
+ return schema;
48
+ }
49
+
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtYmV0dGVyLWF1dGgtc2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEF1dGhUYWJsZXMsIHR5cGUgRmllbGRBdHRyaWJ1dGUgfSBmcm9tICdiZXR0ZXItYXV0aC9kYidcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICdiZXR0ZXItYXV0aCdcblxuLyoqXG4gKiBUaGlzIGlzIGEgc2xpZ2hsdHkgbW9kZmllZCB2ZXJzaW9uIG9mIHRoZSBnZXRTY2hlbWEgZnVuY3Rpb24gZnJvbSBiZXR0ZXItYXV0aC5cbiAqIEZvdW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZXR0ZXItYXV0aC9iZXR0ZXItYXV0aC9ibG9iL21haW4vcGFja2FnZXMvYmV0dGVyLWF1dGgvc3JjL2RiL2dldC1zY2hlbWEudHNcbiAqXG4gKiBXZSBET04nVCBkbyB0aGlzOlxuICogYWN0dWFsRmllbGRzW2ZpZWxkLmZpZWxkTmFtZSB8fCBrZXldID0gZmllbGQ7XG4gKlxuICogSW5zdGVhZCB3ZSB3aWxsIGRvIHRoaXM6XG4gKiBhY3R1YWxGaWVsZHNba2V5XSA9IGZpZWxkO1xuICpcbiAqIFRoaXMgaXMgdG8gY29udGFpbiBjb25zaXN0ZW5jeSB3aGVuIHN0YXRpY2FsbHkgaGFyZCBjb2RlZCBrZXlzLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgYmV0dGVyIGF1dGggY29uZmlnXG4gKiBAcmV0dXJucyBUaGUgc2NoZW1hIGZvciB0aGUgYmV0dGVyIGF1dGggdGFibGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCZXR0ZXJBdXRoU2NoZW1hKGNvbmZpZzogQmV0dGVyQXV0aE9wdGlvbnMpIHtcbiAgY29uc3QgdGFibGVzID0gZ2V0QXV0aFRhYmxlcyhjb25maWcpXG4gIGxldCBzY2hlbWE6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZEF0dHJpYnV0ZT5cbiAgICAgIG9yZGVyOiBudW1iZXJcbiAgICB9XG4gID4gPSB7fVxuICBmb3IgKGNvbnN0IGtleSBpbiB0YWJsZXMpIHtcbiAgICBjb25zdCB0YWJsZSA9IHRhYmxlc1trZXldXG4gICAgY29uc3QgZmllbGRzID0gdGFibGUuZmllbGRzXG4gICAgbGV0IGFjdHVhbEZpZWxkczogUmVjb3JkPHN0cmluZywgRmllbGRBdHRyaWJ1dGU+ID0ge31cbiAgICBPYmplY3QuZW50cmllcyhmaWVsZHMpLmZvckVhY2goKFtrZXksIGZpZWxkXSkgPT4ge1xuICAgICAgYWN0dWFsRmllbGRzW2tleV0gPSBmaWVsZFxuICAgICAgaWYgKGZpZWxkLnJlZmVyZW5jZXMpIHtcbiAgICAgICAgY29uc3QgcmVmVGFibGUgPSB0YWJsZXNbZmllbGQucmVmZXJlbmNlcy5tb2RlbF1cbiAgICAgICAgaWYgKHJlZlRhYmxlKSB7XG4gICAgICAgICAgYWN0dWFsRmllbGRzW2tleV0ucmVmZXJlbmNlcyA9IHtcbiAgICAgICAgICAgIG1vZGVsOiByZWZUYWJsZS5tb2RlbE5hbWUsXG4gICAgICAgICAgICBmaWVsZDogZmllbGQucmVmZXJlbmNlcy5maWVsZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKHNjaGVtYVt0YWJsZS5tb2RlbE5hbWVdKSB7XG4gICAgICBzY2hlbWFbdGFibGUubW9kZWxOYW1lXS5maWVsZHMgPSB7XG4gICAgICAgIC4uLnNjaGVtYVt0YWJsZS5tb2RlbE5hbWVdLmZpZWxkcyxcbiAgICAgICAgLi4uYWN0dWFsRmllbGRzXG4gICAgICB9XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBzY2hlbWFbdGFibGUubW9kZWxOYW1lXSA9IHtcbiAgICAgIGZpZWxkczogYWN0dWFsRmllbGRzLFxuICAgICAgb3JkZXI6IHRhYmxlLm9yZGVyIHx8IEluZmluaXR5XG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cbiJdLCJuYW1lcyI6WyJnZXRBdXRoVGFibGVzIiwiZ2V0QmV0dGVyQXV0aFNjaGVtYSIsImNvbmZpZyIsInRhYmxlcyIsInNjaGVtYSIsImtleSIsInRhYmxlIiwiZmllbGRzIiwiYWN0dWFsRmllbGRzIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJmaWVsZCIsInJlZmVyZW5jZXMiLCJyZWZUYWJsZSIsIm1vZGVsIiwibW9kZWxOYW1lIiwib3JkZXIiLCJJbmZpbml0eSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxRQUE2QixpQkFBZ0I7QUFHbkU7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FDRCxPQUFPLFNBQVNDLG9CQUFvQkMsTUFBeUI7SUFDM0QsTUFBTUMsU0FBU0gsY0FBY0U7SUFDN0IsSUFBSUUsU0FNQSxDQUFDO0lBQ0wsSUFBSyxNQUFNQyxPQUFPRixPQUFRO1FBQ3hCLE1BQU1HLFFBQVFILE1BQU0sQ0FBQ0UsSUFBSTtRQUN6QixNQUFNRSxTQUFTRCxNQUFNQyxNQUFNO1FBQzNCLElBQUlDLGVBQStDLENBQUM7UUFDcERDLE9BQU9DLE9BQU8sQ0FBQ0gsUUFBUUksT0FBTyxDQUFDLENBQUMsQ0FBQ04sS0FBS08sTUFBTTtZQUMxQ0osWUFBWSxDQUFDSCxJQUFJLEdBQUdPO1lBQ3BCLElBQUlBLE1BQU1DLFVBQVUsRUFBRTtnQkFDcEIsTUFBTUMsV0FBV1gsTUFBTSxDQUFDUyxNQUFNQyxVQUFVLENBQUNFLEtBQUssQ0FBQztnQkFDL0MsSUFBSUQsVUFBVTtvQkFDWk4sWUFBWSxDQUFDSCxJQUFJLENBQUNRLFVBQVUsR0FBRzt3QkFDN0JFLE9BQU9ELFNBQVNFLFNBQVM7d0JBQ3pCSixPQUFPQSxNQUFNQyxVQUFVLENBQUNELEtBQUs7b0JBQy9CO2dCQUNGO1lBQ0Y7UUFDRjtRQUNBLElBQUlSLE1BQU0sQ0FBQ0UsTUFBTVUsU0FBUyxDQUFDLEVBQUU7WUFDM0JaLE1BQU0sQ0FBQ0UsTUFBTVUsU0FBUyxDQUFDLENBQUNULE1BQU0sR0FBRztnQkFDL0IsR0FBR0gsTUFBTSxDQUFDRSxNQUFNVSxTQUFTLENBQUMsQ0FBQ1QsTUFBTTtnQkFDakMsR0FBR0MsWUFBWTtZQUNqQjtZQUNBO1FBQ0Y7UUFDQUosTUFBTSxDQUFDRSxNQUFNVSxTQUFTLENBQUMsR0FBRztZQUN4QlQsUUFBUUM7WUFDUlMsT0FBT1gsTUFBTVcsS0FBSyxJQUFJQztRQUN4QjtJQUNGO0lBQ0EsT0FBT2Q7QUFDVCJ9
@@ -0,0 +1,16 @@
1
+ import { baModelKey } from '../constants';
2
+ import { BetterAuthPluginOptions } from '../types';
3
+ export type CollectionSchemaMap = Record<keyof typeof baModelKey, {
4
+ collectionSlug: string;
5
+ fields: Record<string, string>;
6
+ }>;
7
+ export declare function getDefaultCollectionSchemaMap(pluginOptions: BetterAuthPluginOptions): CollectionSchemaMap;
8
+ /**
9
+ * Builds a collection schema map by analyzing collection overrides and extracting
10
+ * BetterAuth model keys and field mappings
11
+ *
12
+ * @param collectionOverrides - Collection override functions provided in plugin options
13
+ * @returns A collection schema map with default values merged with any overrides
14
+ */
15
+ export declare function buildCollectionSchemaMap(pluginOptions: BetterAuthPluginOptions): CollectionSchemaMap;
16
+ //# sourceMappingURL=get-collection-schema-map.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-collection-schema-map.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-collection-schema-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,UAAU,EAAE,MAAM,cAAc,CAAA;AAQvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC,MAAM,OAAO,UAAU,EACvB;IACE,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CACF,CAAA;AAED,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,uBAAuB,GAAG,mBAAmB,CAmCzG;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,uBAAuB,GAAG,mBAAmB,CA0CpG"}
@@ -0,0 +1,108 @@
1
+ import { baModelFieldKeysToFieldNames, baModelKey } from "../constants";
2
+ import { getAuthTables } from "better-auth/db";
3
+ import { flattenAllFields } from "payload/shared";
4
+ import { getDeafultCollectionSlug } from "./get-collection-slug";
5
+ export function getDefaultCollectionSchemaMap(pluginOptions) {
6
+ const tables = getAuthTables(pluginOptions.betterAuthOptions ?? {});
7
+ const map = {};
8
+ Object.entries(tables).forEach(([key, table])=>{
9
+ const fieldNames = Object.entries(table.fields).map(([k, v])=>k);
10
+ const typedKey = key;
11
+ const value = {
12
+ collectionSlug: getDeafultCollectionSlug({
13
+ modelKey: typedKey,
14
+ pluginOptions
15
+ }),
16
+ fields: fieldNames.reduce((acc, field)=>{
17
+ if (typedKey in baModelFieldKeysToFieldNames && field in baModelFieldKeysToFieldNames[typedKey]) {
18
+ const fieldMapping = baModelFieldKeysToFieldNames[typedKey];
19
+ const typedField = field;
20
+ acc[field] = fieldMapping[typedField] || field;
21
+ } else {
22
+ acc[field] = field;
23
+ }
24
+ return acc;
25
+ }, {})
26
+ };
27
+ map[typedKey] = value;
28
+ });
29
+ // always add the role field to the user collection if not already present
30
+ if (!map[baModelKey.user].fields.role) {
31
+ map[baModelKey.user].fields.role = baModelFieldKeysToFieldNames.user.role;
32
+ }
33
+ return map;
34
+ }
35
+ /**
36
+ * Builds a collection schema map by analyzing collection overrides and extracting
37
+ * BetterAuth model keys and field mappings
38
+ *
39
+ * @param collectionOverrides - Collection override functions provided in plugin options
40
+ * @returns A collection schema map with default values merged with any overrides
41
+ */ export function buildCollectionSchemaMap(pluginOptions) {
42
+ const collectionOverrides = {
43
+ users: pluginOptions.users?.collectionOverrides,
44
+ accounts: pluginOptions.accounts?.collectionOverrides,
45
+ sessions: pluginOptions.sessions?.collectionOverrides,
46
+ verifications: pluginOptions.verifications?.collectionOverrides,
47
+ ...pluginOptions.pluginCollectionOverrides
48
+ };
49
+ const defaultCollectionSchemaMap = getDefaultCollectionSchemaMap(pluginOptions);
50
+ if (!collectionOverrides || Object.keys(collectionOverrides).length === 0) {
51
+ return {
52
+ ...defaultCollectionSchemaMap
53
+ };
54
+ }
55
+ const schemaMap = {
56
+ ...defaultCollectionSchemaMap
57
+ };
58
+ Object.entries(collectionOverrides).forEach(([collectionSlug, overrideFunction])=>{
59
+ if (!overrideFunction) return;
60
+ const modifiedCollection = overrideFunction({
61
+ collection: {
62
+ slug: collectionSlug,
63
+ fields: []
64
+ }
65
+ });
66
+ const modelKey = assertModelKey(modifiedCollection);
67
+ schemaMap[modelKey].collectionSlug = modifiedCollection.slug;
68
+ const flattenedFields = flattenAllFields(modifiedCollection);
69
+ if (flattenedFields && Array.isArray(flattenedFields)) {
70
+ flattenedFields.forEach((field)=>{
71
+ // we only want to process fields that have a betterAuthFieldKey
72
+ // because its possible the user has added additional fields
73
+ if (field.custom?.betterAuthFieldKey) {
74
+ const fieldKey = assertFieldKey(field, modelKey, modifiedCollection.slug);
75
+ schemaMap[modelKey].fields[fieldKey] = field.name;
76
+ }
77
+ });
78
+ }
79
+ });
80
+ return schemaMap;
81
+ }
82
+ function assertFieldKey(field, modelKey, collectionSlug) {
83
+ const fieldKey = field.custom?.betterAuthFieldKey;
84
+ // Assert that fieldKey is a valid key in the baModelFieldKeysToFieldNames mapping
85
+ if (!Object.values(baModelFieldKeysToFieldNames).some((fieldMap)=>Object.keys(fieldMap).includes(fieldKey))) {
86
+ throw new Error(`Invalid custom.betterAuthFieldKey: ${fieldKey} for field ${field.name} in collection ${collectionSlug},
87
+ must be one of ${Object.keys(baModelFieldKeysToFieldNames[modelKey]).join(', ')}`);
88
+ }
89
+ return fieldKey;
90
+ }
91
+ /**
92
+ * Asserts that a collection has a valid BetterAuth model key and returns it
93
+ *
94
+ * @param collection - The collection to check for a BetterAuth model key
95
+ * @returns The BetterAuth model key
96
+ * @throws Error if the collection does not have a valid BetterAuth model key
97
+ */ function assertModelKey(collection) {
98
+ if (!collection.custom?.betterAuthModelKey) {
99
+ throw new Error(`Collection ${collection.slug} is missing a betterAuthModelKey in its custom field`);
100
+ }
101
+ const modelKey = collection.custom.betterAuthModelKey;
102
+ if (!Object.values(baModelKey).includes(modelKey)) {
103
+ throw new Error(`Collection ${collection.slug} has an invalid betterAuthModelKey: ${modelKey}`);
104
+ }
105
+ return modelKey;
106
+ }
107
+
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zY2hlbWEtbWFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhTW9kZWxGaWVsZEtleXNUb0ZpZWxkTmFtZXMsIGJhTW9kZWxLZXkgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRBdXRoVGFibGVzIH0gZnJvbSAnYmV0dGVyLWF1dGgvZGInXG5pbXBvcnQgeyBCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ2JldHRlci1hdXRoL3R5cGVzJ1xuaW1wb3J0IHsgYmFNb2RlbEtleVRvU2x1ZyB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IEZsYXR0ZW5lZEZpZWxkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB7IGZsYXR0ZW5BbGxGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3NoYXJlZCdcbmltcG9ydCB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnIH0gZnJvbSAnLi9nZXQtY29sbGVjdGlvbi1zbHVnJ1xuaW1wb3J0IHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvblNjaGVtYU1hcCA9IFJlY29yZDxcbiAga2V5b2YgdHlwZW9mIGJhTW9kZWxLZXksXG4gIHtcbiAgICBjb2xsZWN0aW9uU2x1Zzogc3RyaW5nXG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIH1cbj5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwKHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zKTogQ29sbGVjdGlvblNjaGVtYU1hcCB7XG4gIGNvbnN0IHRhYmxlcyA9IGdldEF1dGhUYWJsZXMocGx1Z2luT3B0aW9ucy5iZXR0ZXJBdXRoT3B0aW9ucyA/PyB7fSlcbiAgY29uc3QgbWFwID0ge30gYXMgQ29sbGVjdGlvblNjaGVtYU1hcFxuICBPYmplY3QuZW50cmllcyh0YWJsZXMpLmZvckVhY2goKFtrZXksIHRhYmxlXSkgPT4ge1xuICAgIGNvbnN0IGZpZWxkTmFtZXMgPSBPYmplY3QuZW50cmllcyh0YWJsZS5maWVsZHMpLm1hcCgoW2ssIHZdKSA9PiBrKVxuICAgIGNvbnN0IHR5cGVkS2V5ID0ga2V5IGFzIGtleW9mIHR5cGVvZiBiYU1vZGVsS2V5VG9TbHVnXG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICBjb2xsZWN0aW9uU2x1ZzogZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnKHsgbW9kZWxLZXk6IHR5cGVkS2V5LCBwbHVnaW5PcHRpb25zIH0pLFxuICAgICAgZmllbGRzOiBmaWVsZE5hbWVzLnJlZHVjZShcbiAgICAgICAgKGFjYywgZmllbGQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0eXBlZEtleSBpbiBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzICYmXG4gICAgICAgICAgICBmaWVsZCBpbiBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzW3R5cGVkS2V5IGFzIGtleW9mIHR5cGVvZiBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRNYXBwaW5nID0gYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc1t0eXBlZEtleSBhcyBrZXlvZiB0eXBlb2YgYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc11cbiAgICAgICAgICAgIGNvbnN0IHR5cGVkRmllbGQgPSBmaWVsZCBhcyBrZXlvZiB0eXBlb2YgZmllbGRNYXBwaW5nXG4gICAgICAgICAgICBhY2NbZmllbGRdID0gZmllbGRNYXBwaW5nW3R5cGVkRmllbGRdIHx8IGZpZWxkXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjY1tmaWVsZF0gPSBmaWVsZFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBtYXBbdHlwZWRLZXldID0gdmFsdWVcbiAgfSlcblxuICAvLyBhbHdheXMgYWRkIHRoZSByb2xlIGZpZWxkIHRvIHRoZSB1c2VyIGNvbGxlY3Rpb24gaWYgbm90IGFscmVhZHkgcHJlc2VudFxuICBpZiAoIW1hcFtiYU1vZGVsS2V5LnVzZXJdLmZpZWxkcy5yb2xlKSB7XG4gICAgbWFwW2JhTW9kZWxLZXkudXNlcl0uZmllbGRzLnJvbGUgPSBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzLnVzZXIucm9sZVxuICB9XG5cbiAgcmV0dXJuIG1hcFxufVxuXG50eXBlIENvbGxlY3Rpb25PdmVycmlkZSA9ICgob3B0aW9uczogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnIH0pID0+IENvbGxlY3Rpb25Db25maWcpIHwgdW5kZWZpbmVkXG5cbnR5cGUgQ29sbGVjdGlvbk92ZXJyaWRlcyA9IFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25PdmVycmlkZT5cblxuLyoqXG4gKiBCdWlsZHMgYSBjb2xsZWN0aW9uIHNjaGVtYSBtYXAgYnkgYW5hbHl6aW5nIGNvbGxlY3Rpb24gb3ZlcnJpZGVzIGFuZCBleHRyYWN0aW5nXG4gKiBCZXR0ZXJBdXRoIG1vZGVsIGtleXMgYW5kIGZpZWxkIG1hcHBpbmdzXG4gKlxuICogQHBhcmFtIGNvbGxlY3Rpb25PdmVycmlkZXMgLSBDb2xsZWN0aW9uIG92ZXJyaWRlIGZ1bmN0aW9ucyBwcm92aWRlZCBpbiBwbHVnaW4gb3B0aW9uc1xuICogQHJldHVybnMgQSBjb2xsZWN0aW9uIHNjaGVtYSBtYXAgd2l0aCBkZWZhdWx0IHZhbHVlcyBtZXJnZWQgd2l0aCBhbnkgb3ZlcnJpZGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENvbGxlY3Rpb25TY2hlbWFNYXAocGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMpOiBDb2xsZWN0aW9uU2NoZW1hTWFwIHtcbiAgY29uc3QgY29sbGVjdGlvbk92ZXJyaWRlcyA9IHtcbiAgICB1c2VyczogcGx1Z2luT3B0aW9ucy51c2Vycz8uY29sbGVjdGlvbk92ZXJyaWRlcyxcbiAgICBhY2NvdW50czogcGx1Z2luT3B0aW9ucy5hY2NvdW50cz8uY29sbGVjdGlvbk92ZXJyaWRlcyxcbiAgICBzZXNzaW9uczogcGx1Z2luT3B0aW9ucy5zZXNzaW9ucz8uY29sbGVjdGlvbk92ZXJyaWRlcyxcbiAgICB2ZXJpZmljYXRpb25zOiBwbHVnaW5PcHRpb25zLnZlcmlmaWNhdGlvbnM/LmNvbGxlY3Rpb25PdmVycmlkZXMsXG4gICAgLi4ucGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzXG4gIH1cblxuICBjb25zdCBkZWZhdWx0Q29sbGVjdGlvblNjaGVtYU1hcCA9IGdldERlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwKHBsdWdpbk9wdGlvbnMpXG5cbiAgaWYgKCFjb2xsZWN0aW9uT3ZlcnJpZGVzIHx8IE9iamVjdC5rZXlzKGNvbGxlY3Rpb25PdmVycmlkZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IC4uLmRlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYU1hcCA9IHsgLi4uZGVmYXVsdENvbGxlY3Rpb25TY2hlbWFNYXAgfVxuXG4gIE9iamVjdC5lbnRyaWVzKGNvbGxlY3Rpb25PdmVycmlkZXMpLmZvckVhY2goKFtjb2xsZWN0aW9uU2x1Zywgb3ZlcnJpZGVGdW5jdGlvbl0pID0+IHtcbiAgICBpZiAoIW92ZXJyaWRlRnVuY3Rpb24pIHJldHVyblxuXG4gICAgY29uc3QgbW9kaWZpZWRDb2xsZWN0aW9uID0gb3ZlcnJpZGVGdW5jdGlvbih7XG4gICAgICBjb2xsZWN0aW9uOiB7XG4gICAgICAgIHNsdWc6IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHM6IFtdXG4gICAgICB9XG4gICAgfSlcbiAgICBjb25zdCBtb2RlbEtleSA9IGFzc2VydE1vZGVsS2V5KG1vZGlmaWVkQ29sbGVjdGlvbilcbiAgICBzY2hlbWFNYXBbbW9kZWxLZXldLmNvbGxlY3Rpb25TbHVnID0gbW9kaWZpZWRDb2xsZWN0aW9uLnNsdWdcbiAgICBjb25zdCBmbGF0dGVuZWRGaWVsZHMgPSBmbGF0dGVuQWxsRmllbGRzKG1vZGlmaWVkQ29sbGVjdGlvbilcbiAgICBpZiAoZmxhdHRlbmVkRmllbGRzICYmIEFycmF5LmlzQXJyYXkoZmxhdHRlbmVkRmllbGRzKSkge1xuICAgICAgZmxhdHRlbmVkRmllbGRzLmZvckVhY2goKGZpZWxkOiBGbGF0dGVuZWRGaWVsZCkgPT4ge1xuICAgICAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gcHJvY2VzcyBmaWVsZHMgdGhhdCBoYXZlIGEgYmV0dGVyQXV0aEZpZWxkS2V5XG4gICAgICAgIC8vIGJlY2F1c2UgaXRzIHBvc3NpYmxlIHRoZSB1c2VyIGhhcyBhZGRlZCBhZGRpdGlvbmFsIGZpZWxkc1xuICAgICAgICBpZiAoZmllbGQuY3VzdG9tPy5iZXR0ZXJBdXRoRmllbGRLZXkpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEtleSA9IGFzc2VydEZpZWxkS2V5KGZpZWxkLCBtb2RlbEtleSwgbW9kaWZpZWRDb2xsZWN0aW9uLnNsdWcpXG4gICAgICAgICAgc2NoZW1hTWFwW21vZGVsS2V5XS5maWVsZHNbZmllbGRLZXldID0gZmllbGQubmFtZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hTWFwXG59XG5cbmZ1bmN0aW9uIGFzc2VydEZpZWxkS2V5KGZpZWxkOiBGbGF0dGVuZWRGaWVsZCwgbW9kZWxLZXk6IGtleW9mIHR5cGVvZiBiYU1vZGVsS2V5LCBjb2xsZWN0aW9uU2x1Zzogc3RyaW5nKSB7XG4gIGNvbnN0IGZpZWxkS2V5ID0gZmllbGQuY3VzdG9tPy5iZXR0ZXJBdXRoRmllbGRLZXkgYXMgc3RyaW5nXG5cbiAgLy8gQXNzZXJ0IHRoYXQgZmllbGRLZXkgaXMgYSB2YWxpZCBrZXkgaW4gdGhlIGJhTW9kZWxGaWVsZEtleXNUb0ZpZWxkTmFtZXMgbWFwcGluZ1xuICBpZiAoIU9iamVjdC52YWx1ZXMoYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lcykuc29tZSgoZmllbGRNYXApID0+IE9iamVjdC5rZXlzKGZpZWxkTWFwKS5pbmNsdWRlcyhmaWVsZEtleSkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgY3VzdG9tLmJldHRlckF1dGhGaWVsZEtleTogJHtmaWVsZEtleX0gZm9yIGZpZWxkICR7ZmllbGQubmFtZX0gaW4gY29sbGVjdGlvbiAke2NvbGxlY3Rpb25TbHVnfSwgXG4gICAgICAgIG11c3QgYmUgb25lIG9mICR7T2JqZWN0LmtleXMoYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc1ttb2RlbEtleSBhcyBrZXlvZiB0eXBlb2YgYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc10pLmpvaW4oJywgJyl9YFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBmaWVsZEtleVxufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIGNvbGxlY3Rpb24gaGFzIGEgdmFsaWQgQmV0dGVyQXV0aCBtb2RlbCBrZXkgYW5kIHJldHVybnMgaXRcbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvbiAtIFRoZSBjb2xsZWN0aW9uIHRvIGNoZWNrIGZvciBhIEJldHRlckF1dGggbW9kZWwga2V5XG4gKiBAcmV0dXJucyBUaGUgQmV0dGVyQXV0aCBtb2RlbCBrZXlcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGNvbGxlY3Rpb24gZG9lcyBub3QgaGF2ZSBhIHZhbGlkIEJldHRlckF1dGggbW9kZWwga2V5XG4gKi9cbmZ1bmN0aW9uIGFzc2VydE1vZGVsS2V5KGNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWcpOiBrZXlvZiB0eXBlb2YgYmFNb2RlbEtleSB7XG4gIGlmICghY29sbGVjdGlvbi5jdXN0b20/LmJldHRlckF1dGhNb2RlbEtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29sbGVjdGlvbiAke2NvbGxlY3Rpb24uc2x1Z30gaXMgbWlzc2luZyBhIGJldHRlckF1dGhNb2RlbEtleSBpbiBpdHMgY3VzdG9tIGZpZWxkYClcbiAgfVxuXG4gIGNvbnN0IG1vZGVsS2V5ID0gY29sbGVjdGlvbi5jdXN0b20uYmV0dGVyQXV0aE1vZGVsS2V5IGFzIGtleW9mIHR5cGVvZiBiYU1vZGVsS2V5XG5cbiAgaWYgKCFPYmplY3QudmFsdWVzKGJhTW9kZWxLZXkpLmluY2x1ZGVzKG1vZGVsS2V5IGFzIGFueSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvbGxlY3Rpb24gJHtjb2xsZWN0aW9uLnNsdWd9IGhhcyBhbiBpbnZhbGlkIGJldHRlckF1dGhNb2RlbEtleTogJHttb2RlbEtleX1gKVxuICB9XG5cbiAgcmV0dXJuIG1vZGVsS2V5XG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lcyIsImJhTW9kZWxLZXkiLCJnZXRBdXRoVGFibGVzIiwiZmxhdHRlbkFsbEZpZWxkcyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImdldERlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwIiwicGx1Z2luT3B0aW9ucyIsInRhYmxlcyIsImJldHRlckF1dGhPcHRpb25zIiwibWFwIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJrZXkiLCJ0YWJsZSIsImZpZWxkTmFtZXMiLCJmaWVsZHMiLCJrIiwidiIsInR5cGVkS2V5IiwidmFsdWUiLCJjb2xsZWN0aW9uU2x1ZyIsIm1vZGVsS2V5IiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJmaWVsZE1hcHBpbmciLCJ0eXBlZEZpZWxkIiwidXNlciIsInJvbGUiLCJidWlsZENvbGxlY3Rpb25TY2hlbWFNYXAiLCJjb2xsZWN0aW9uT3ZlcnJpZGVzIiwidXNlcnMiLCJhY2NvdW50cyIsInNlc3Npb25zIiwidmVyaWZpY2F0aW9ucyIsInBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXMiLCJkZWZhdWx0Q29sbGVjdGlvblNjaGVtYU1hcCIsImtleXMiLCJsZW5ndGgiLCJzY2hlbWFNYXAiLCJvdmVycmlkZUZ1bmN0aW9uIiwibW9kaWZpZWRDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsInNsdWciLCJhc3NlcnRNb2RlbEtleSIsImZsYXR0ZW5lZEZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsImN1c3RvbSIsImJldHRlckF1dGhGaWVsZEtleSIsImZpZWxkS2V5IiwiYXNzZXJ0RmllbGRLZXkiLCJuYW1lIiwidmFsdWVzIiwic29tZSIsImZpZWxkTWFwIiwiaW5jbHVkZXMiLCJFcnJvciIsImpvaW4iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLDRCQUE0QixFQUFFQyxVQUFVLFFBQVEsZUFBYztBQUN2RSxTQUFTQyxhQUFhLFFBQVEsaUJBQWdCO0FBSTlDLFNBQVNDLGdCQUFnQixRQUFRLGlCQUFnQjtBQUVqRCxTQUFTQyx3QkFBd0IsUUFBUSx3QkFBdUI7QUFXaEUsT0FBTyxTQUFTQyw4QkFBOEJDLGFBQXNDO0lBQ2xGLE1BQU1DLFNBQVNMLGNBQWNJLGNBQWNFLGlCQUFpQixJQUFJLENBQUM7SUFDakUsTUFBTUMsTUFBTSxDQUFDO0lBQ2JDLE9BQU9DLE9BQU8sQ0FBQ0osUUFBUUssT0FBTyxDQUFDLENBQUMsQ0FBQ0MsS0FBS0MsTUFBTTtRQUMxQyxNQUFNQyxhQUFhTCxPQUFPQyxPQUFPLENBQUNHLE1BQU1FLE1BQU0sRUFBRVAsR0FBRyxDQUFDLENBQUMsQ0FBQ1EsR0FBR0MsRUFBRSxHQUFLRDtRQUNoRSxNQUFNRSxXQUFXTjtRQUNqQixNQUFNTyxRQUFRO1lBQ1pDLGdCQUFnQmpCLHlCQUF5QjtnQkFBRWtCLFVBQVVIO2dCQUFVYjtZQUFjO1lBQzdFVSxRQUFRRCxXQUFXUSxNQUFNLENBQ3ZCLENBQUNDLEtBQUtDO2dCQUNKLElBQ0VOLFlBQVluQixnQ0FDWnlCLFNBQVN6Qiw0QkFBNEIsQ0FBQ21CLFNBQXNELEVBQzVGO29CQUNBLE1BQU1PLGVBQWUxQiw0QkFBNEIsQ0FBQ21CLFNBQXNEO29CQUN4RyxNQUFNUSxhQUFhRjtvQkFDbkJELEdBQUcsQ0FBQ0MsTUFBTSxHQUFHQyxZQUFZLENBQUNDLFdBQVcsSUFBSUY7Z0JBQzNDLE9BQU87b0JBQ0xELEdBQUcsQ0FBQ0MsTUFBTSxHQUFHQTtnQkFDZjtnQkFDQSxPQUFPRDtZQUNULEdBQ0EsQ0FBQztRQUVMO1FBRUFmLEdBQUcsQ0FBQ1UsU0FBUyxHQUFHQztJQUNsQjtJQUVBLDBFQUEwRTtJQUMxRSxJQUFJLENBQUNYLEdBQUcsQ0FBQ1IsV0FBVzJCLElBQUksQ0FBQyxDQUFDWixNQUFNLENBQUNhLElBQUksRUFBRTtRQUNyQ3BCLEdBQUcsQ0FBQ1IsV0FBVzJCLElBQUksQ0FBQyxDQUFDWixNQUFNLENBQUNhLElBQUksR0FBRzdCLDZCQUE2QjRCLElBQUksQ0FBQ0MsSUFBSTtJQUMzRTtJQUVBLE9BQU9wQjtBQUNUO0FBTUE7Ozs7OztDQU1DLEdBQ0QsT0FBTyxTQUFTcUIseUJBQXlCeEIsYUFBc0M7SUFDN0UsTUFBTXlCLHNCQUFzQjtRQUMxQkMsT0FBTzFCLGNBQWMwQixLQUFLLEVBQUVEO1FBQzVCRSxVQUFVM0IsY0FBYzJCLFFBQVEsRUFBRUY7UUFDbENHLFVBQVU1QixjQUFjNEIsUUFBUSxFQUFFSDtRQUNsQ0ksZUFBZTdCLGNBQWM2QixhQUFhLEVBQUVKO1FBQzVDLEdBQUd6QixjQUFjOEIseUJBQXlCO0lBQzVDO0lBRUEsTUFBTUMsNkJBQTZCaEMsOEJBQThCQztJQUVqRSxJQUFJLENBQUN5Qix1QkFBdUJyQixPQUFPNEIsSUFBSSxDQUFDUCxxQkFBcUJRLE1BQU0sS0FBSyxHQUFHO1FBQ3pFLE9BQU87WUFBRSxHQUFHRiwwQkFBMEI7UUFBQztJQUN6QztJQUVBLE1BQU1HLFlBQVk7UUFBRSxHQUFHSCwwQkFBMEI7SUFBQztJQUVsRDNCLE9BQU9DLE9BQU8sQ0FBQ29CLHFCQUFxQm5CLE9BQU8sQ0FBQyxDQUFDLENBQUNTLGdCQUFnQm9CLGlCQUFpQjtRQUM3RSxJQUFJLENBQUNBLGtCQUFrQjtRQUV2QixNQUFNQyxxQkFBcUJELGlCQUFpQjtZQUMxQ0UsWUFBWTtnQkFDVkMsTUFBTXZCO2dCQUNOTCxRQUFRLEVBQUU7WUFDWjtRQUNGO1FBQ0EsTUFBTU0sV0FBV3VCLGVBQWVIO1FBQ2hDRixTQUFTLENBQUNsQixTQUFTLENBQUNELGNBQWMsR0FBR3FCLG1CQUFtQkUsSUFBSTtRQUM1RCxNQUFNRSxrQkFBa0IzQyxpQkFBaUJ1QztRQUN6QyxJQUFJSSxtQkFBbUJDLE1BQU1DLE9BQU8sQ0FBQ0Ysa0JBQWtCO1lBQ3JEQSxnQkFBZ0JsQyxPQUFPLENBQUMsQ0FBQ2E7Z0JBQ3ZCLGdFQUFnRTtnQkFDaEUsNERBQTREO2dCQUM1RCxJQUFJQSxNQUFNd0IsTUFBTSxFQUFFQyxvQkFBb0I7b0JBQ3BDLE1BQU1DLFdBQVdDLGVBQWUzQixPQUFPSCxVQUFVb0IsbUJBQW1CRSxJQUFJO29CQUN4RUosU0FBUyxDQUFDbEIsU0FBUyxDQUFDTixNQUFNLENBQUNtQyxTQUFTLEdBQUcxQixNQUFNNEIsSUFBSTtnQkFDbkQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPYjtBQUNUO0FBRUEsU0FBU1ksZUFBZTNCLEtBQXFCLEVBQUVILFFBQWlDLEVBQUVELGNBQXNCO0lBQ3RHLE1BQU04QixXQUFXMUIsTUFBTXdCLE1BQU0sRUFBRUM7SUFFL0Isa0ZBQWtGO0lBQ2xGLElBQUksQ0FBQ3hDLE9BQU80QyxNQUFNLENBQUN0RCw4QkFBOEJ1RCxJQUFJLENBQUMsQ0FBQ0MsV0FBYTlDLE9BQU80QixJQUFJLENBQUNrQixVQUFVQyxRQUFRLENBQUNOLFlBQVk7UUFDN0csTUFBTSxJQUFJTyxNQUNSLENBQUMsbUNBQW1DLEVBQUVQLFNBQVMsV0FBVyxFQUFFMUIsTUFBTTRCLElBQUksQ0FBQyxlQUFlLEVBQUVoQyxlQUFlO3VCQUN0RixFQUFFWCxPQUFPNEIsSUFBSSxDQUFDdEMsNEJBQTRCLENBQUNzQixTQUFzRCxFQUFFcUMsSUFBSSxDQUFDLE9BQU87SUFFcEk7SUFFQSxPQUFPUjtBQUNUO0FBRUE7Ozs7OztDQU1DLEdBQ0QsU0FBU04sZUFBZUYsVUFBNEI7SUFDbEQsSUFBSSxDQUFDQSxXQUFXTSxNQUFNLEVBQUVXLG9CQUFvQjtRQUMxQyxNQUFNLElBQUlGLE1BQU0sQ0FBQyxXQUFXLEVBQUVmLFdBQVdDLElBQUksQ0FBQyxvREFBb0QsQ0FBQztJQUNyRztJQUVBLE1BQU10QixXQUFXcUIsV0FBV00sTUFBTSxDQUFDVyxrQkFBa0I7SUFFckQsSUFBSSxDQUFDbEQsT0FBTzRDLE1BQU0sQ0FBQ3JELFlBQVl3RCxRQUFRLENBQUNuQyxXQUFrQjtRQUN4RCxNQUFNLElBQUlvQyxNQUFNLENBQUMsV0FBVyxFQUFFZixXQUFXQyxJQUFJLENBQUMsb0NBQW9DLEVBQUV0QixVQUFVO0lBQ2hHO0lBRUEsT0FBT0E7QUFDVCJ9
@@ -0,0 +1,6 @@
1
+ import type { BetterAuthPluginOptions } from '../types';
2
+ export declare function getDeafultCollectionSlug({ pluginOptions, modelKey }: {
3
+ pluginOptions: BetterAuthPluginOptions;
4
+ modelKey: string;
5
+ }): string;
6
+ //# sourceMappingURL=get-collection-slug.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-collection-slug.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-collection-slug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGvD,wBAAgB,wBAAwB,CAAC,EACvC,aAAa,EACb,QAAQ,EACT,EAAE;IACD,aAAa,EAAE,uBAAuB,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAiBT"}
@@ -0,0 +1,20 @@
1
+ import { baseSlugs, baModelKeyToSlug } from "../constants";
2
+ export function getDeafultCollectionSlug({ pluginOptions, modelKey }) {
3
+ const baseSlug = baModelKeyToSlug[modelKey] ?? modelKey;
4
+ switch(modelKey){
5
+ case 'user':
6
+ return pluginOptions.users?.slug ?? baseSlugs.users;
7
+ case 'account':
8
+ return pluginOptions.accounts?.slug ?? baseSlugs.accounts;
9
+ case 'session':
10
+ return pluginOptions.sessions?.slug ?? baseSlugs.sessions;
11
+ case 'verification':
12
+ return pluginOptions.verifications?.slug ?? baseSlugs.verifications;
13
+ case 'adminInvitation':
14
+ return pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;
15
+ default:
16
+ return baseSlug;
17
+ }
18
+ }
19
+
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zbHVnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGJhc2VTbHVncywgYmFNb2RlbEtleVRvU2x1ZyB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlYWZ1bHRDb2xsZWN0aW9uU2x1Zyh7XG4gIHBsdWdpbk9wdGlvbnMsXG4gIG1vZGVsS2V5XG59OiB7XG4gIHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zXG4gIG1vZGVsS2V5OiBzdHJpbmdcbn0pOiBzdHJpbmcge1xuICBjb25zdCBiYXNlU2x1ZyA9IGJhTW9kZWxLZXlUb1NsdWdbbW9kZWxLZXkgYXMga2V5b2YgdHlwZW9mIGJhTW9kZWxLZXlUb1NsdWddID8/IG1vZGVsS2V5XG4gIFxuICBzd2l0Y2ggKG1vZGVsS2V5KSB7XG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gcGx1Z2luT3B0aW9ucy51c2Vycz8uc2x1ZyA/PyBiYXNlU2x1Z3MudXNlcnNcbiAgICBjYXNlICdhY2NvdW50JzpcbiAgICAgIHJldHVybiBwbHVnaW5PcHRpb25zLmFjY291bnRzPy5zbHVnID8/IGJhc2VTbHVncy5hY2NvdW50c1xuICAgIGNhc2UgJ3Nlc3Npb24nOlxuICAgICAgcmV0dXJuIHBsdWdpbk9wdGlvbnMuc2Vzc2lvbnM/LnNsdWcgPz8gYmFzZVNsdWdzLnNlc3Npb25zXG4gICAgY2FzZSAndmVyaWZpY2F0aW9uJzpcbiAgICAgIHJldHVybiBwbHVnaW5PcHRpb25zLnZlcmlmaWNhdGlvbnM/LnNsdWcgPz8gYmFzZVNsdWdzLnZlcmlmaWNhdGlvbnNcbiAgICBjYXNlICdhZG1pbkludml0YXRpb24nOlxuICAgICAgcmV0dXJuIHBsdWdpbk9wdGlvbnMuYWRtaW5JbnZpdGF0aW9ucz8uc2x1ZyA/PyBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9uc1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gYmFzZVNsdWdcbiAgfVxufSAiXSwibmFtZXMiOlsiYmFzZVNsdWdzIiwiYmFNb2RlbEtleVRvU2x1ZyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsInBsdWdpbk9wdGlvbnMiLCJtb2RlbEtleSIsImJhc2VTbHVnIiwidXNlcnMiLCJzbHVnIiwiYWNjb3VudHMiLCJzZXNzaW9ucyIsInZlcmlmaWNhdGlvbnMiLCJhZG1pbkludml0YXRpb25zIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxTQUFTLEVBQUVDLGdCQUFnQixRQUFRLGVBQWM7QUFFMUQsT0FBTyxTQUFTQyx5QkFBeUIsRUFDdkNDLGFBQWEsRUFDYkMsUUFBUSxFQUlUO0lBQ0MsTUFBTUMsV0FBV0osZ0JBQWdCLENBQUNHLFNBQTBDLElBQUlBO0lBRWhGLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU9ELGNBQWNHLEtBQUssRUFBRUMsUUFBUVAsVUFBVU0sS0FBSztRQUNyRCxLQUFLO1lBQ0gsT0FBT0gsY0FBY0ssUUFBUSxFQUFFRCxRQUFRUCxVQUFVUSxRQUFRO1FBQzNELEtBQUs7WUFDSCxPQUFPTCxjQUFjTSxRQUFRLEVBQUVGLFFBQVFQLFVBQVVTLFFBQVE7UUFDM0QsS0FBSztZQUNILE9BQU9OLGNBQWNPLGFBQWEsRUFBRUgsUUFBUVAsVUFBVVUsYUFBYTtRQUNyRSxLQUFLO1lBQ0gsT0FBT1AsY0FBY1EsZ0JBQWdCLEVBQUVKLFFBQVFQLFVBQVVXLGdCQUFnQjtRQUMzRTtZQUNFLE9BQU9OO0lBQ1g7QUFDRiJ9
@@ -0,0 +1,41 @@
1
+ import type { Collection, CollectionConfig, Field } from 'payload';
2
+ /**
3
+ * Retrieves a collection from the collection map based on its Better Auth model key
4
+ *
5
+ * This function searches through the provided collection map to find a collection
6
+ * that has been marked with a specific Better Auth model key in its custom properties.
7
+ * It's used to map between Better Auth's internal model keys and Payload CMS collections.
8
+ *
9
+ * @param collectionMap - Map of all available collections
10
+ * @param betterAuthModelKey - The Better Auth model key to search for
11
+ * @returns The matched collection configuration
12
+ * @throws {Error} If no collection with the specified Better Auth model key is found
13
+ */
14
+ export declare function getMappedCollection({ collectionMap, betterAuthModelKey }: {
15
+ collectionMap: Record<string, CollectionConfig>;
16
+ betterAuthModelKey: string;
17
+ }): CollectionConfig;
18
+ interface MappedField extends Omit<Field, 'type'> {
19
+ name: string;
20
+ type: Exclude<Field['type'], 'tabs' | 'row' | 'collapsible'>;
21
+ }
22
+ /**
23
+ * Retrieves a field from a collection based on its Better Auth field key
24
+ *
25
+ * This function searches through the fields of a provided collection to find a field
26
+ * that has been marked with a specific Better Auth field key in its custom properties.
27
+ * It's used to map between Better Auth's internal field keys and Payload CMS field configurations.
28
+ *
29
+ * @param collection - The collection configuration to search within
30
+ * @param betterAuthFieldKey - The Better Auth field key to search for
31
+ * @returns The matched field configuration with a guaranteed name and non-UI type
32
+ * @throws {Error} If no field with the specified Better Auth field key is found
33
+ * @throws {Error} If the found field is a UI-only field type (tabs, row, collapsible)
34
+ */
35
+ export declare function getMappedField({ collection, betterAuthFieldKey }: {
36
+ collection: CollectionConfig;
37
+ betterAuthFieldKey: string;
38
+ }): MappedField;
39
+ export declare function transformCollectionsToCollectionConfigs(collections: Record<string, Collection>): Record<string, CollectionConfig>;
40
+ export {};
41
+ //# sourceMappingURL=get-collection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-collection.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,kBAAkB,EACnB,EAAE;IACD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC/C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,gBAAgB,CAcnB;AAED,UAAU,WAAY,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC,CAAA;CAC7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,kBAAkB,EACnB,EAAE;IACD,UAAU,EAAE,gBAAgB,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,WAAW,CAmBd;AAED,wBAAgB,uCAAuC,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIjI"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Retrieves a collection from the collection map based on its Better Auth model key
3
+ *
4
+ * This function searches through the provided collection map to find a collection
5
+ * that has been marked with a specific Better Auth model key in its custom properties.
6
+ * It's used to map between Better Auth's internal model keys and Payload CMS collections.
7
+ *
8
+ * @param collectionMap - Map of all available collections
9
+ * @param betterAuthModelKey - The Better Auth model key to search for
10
+ * @returns The matched collection configuration
11
+ * @throws {Error} If no collection with the specified Better Auth model key is found
12
+ */ export function getMappedCollection({ collectionMap, betterAuthModelKey }) {
13
+ // Find the collection that has the matching betterAuthModelKey in its custom properties
14
+ const collection = Object.values(collectionMap).find((c)=>{
15
+ return c.custom?.betterAuthModelKey === betterAuthModelKey;
16
+ });
17
+ // Throw an error if no matching collection is found
18
+ if (!collection) {
19
+ const error = new Error(`Collection with key ${betterAuthModelKey} not found`);
20
+ Error.captureStackTrace(error, getMappedCollection);
21
+ throw error;
22
+ }
23
+ return collection;
24
+ }
25
+ /**
26
+ * Retrieves a field from a collection based on its Better Auth field key
27
+ *
28
+ * This function searches through the fields of a provided collection to find a field
29
+ * that has been marked with a specific Better Auth field key in its custom properties.
30
+ * It's used to map between Better Auth's internal field keys and Payload CMS field configurations.
31
+ *
32
+ * @param collection - The collection configuration to search within
33
+ * @param betterAuthFieldKey - The Better Auth field key to search for
34
+ * @returns The matched field configuration with a guaranteed name and non-UI type
35
+ * @throws {Error} If no field with the specified Better Auth field key is found
36
+ * @throws {Error} If the found field is a UI-only field type (tabs, row, collapsible)
37
+ */ export function getMappedField({ collection, betterAuthFieldKey }) {
38
+ // Find the field that has the matching betterAuthFieldKey in its custom properties
39
+ const field = collection.fields.find((f)=>f.custom?.betterAuthFieldKey === betterAuthFieldKey);
40
+ // Throw an error if no matching field is found
41
+ if (!field) {
42
+ throw new Error(`Field with key ${betterAuthFieldKey} not found`);
43
+ }
44
+ // Filter out UI-based fields that don't have a name or aren't data fields
45
+ // These field types are used for layout purposes only and cannot store data
46
+ switch(field.type){
47
+ case 'tabs':
48
+ case 'row':
49
+ case 'collapsible':
50
+ throw new Error(`Field with key ${betterAuthFieldKey} is a UI-only field and cannot be used for data`);
51
+ default:
52
+ return field;
53
+ }
54
+ }
55
+ export function transformCollectionsToCollectionConfigs(collections) {
56
+ return Object.fromEntries(Object.entries(collections).map(([slug, collection])=>[
57
+ slug,
58
+ collection.config
59
+ ]));
60
+ }
61
+
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb24sIENvbGxlY3Rpb25Db25maWcsIEZpZWxkIH0gZnJvbSAncGF5bG9hZCdcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBjb2xsZWN0aW9uIGZyb20gdGhlIGNvbGxlY3Rpb24gbWFwIGJhc2VkIG9uIGl0cyBCZXR0ZXIgQXV0aCBtb2RlbCBrZXlcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHNlYXJjaGVzIHRocm91Z2ggdGhlIHByb3ZpZGVkIGNvbGxlY3Rpb24gbWFwIHRvIGZpbmQgYSBjb2xsZWN0aW9uXG4gKiB0aGF0IGhhcyBiZWVuIG1hcmtlZCB3aXRoIGEgc3BlY2lmaWMgQmV0dGVyIEF1dGggbW9kZWwga2V5IGluIGl0cyBjdXN0b20gcHJvcGVydGllcy5cbiAqIEl0J3MgdXNlZCB0byBtYXAgYmV0d2VlbiBCZXR0ZXIgQXV0aCdzIGludGVybmFsIG1vZGVsIGtleXMgYW5kIFBheWxvYWQgQ01TIGNvbGxlY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBjb2xsZWN0aW9uTWFwIC0gTWFwIG9mIGFsbCBhdmFpbGFibGUgY29sbGVjdGlvbnNcbiAqIEBwYXJhbSBiZXR0ZXJBdXRoTW9kZWxLZXkgLSBUaGUgQmV0dGVyIEF1dGggbW9kZWwga2V5IHRvIHNlYXJjaCBmb3JcbiAqIEByZXR1cm5zIFRoZSBtYXRjaGVkIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvblxuICogQHRocm93cyB7RXJyb3J9IElmIG5vIGNvbGxlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIEJldHRlciBBdXRoIG1vZGVsIGtleSBpcyBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFwcGVkQ29sbGVjdGlvbih7XG4gIGNvbGxlY3Rpb25NYXAsXG4gIGJldHRlckF1dGhNb2RlbEtleVxufToge1xuICBjb2xsZWN0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPlxuICBiZXR0ZXJBdXRoTW9kZWxLZXk6IHN0cmluZ1xufSk6IENvbGxlY3Rpb25Db25maWcge1xuICAvLyBGaW5kIHRoZSBjb2xsZWN0aW9uIHRoYXQgaGFzIHRoZSBtYXRjaGluZyBiZXR0ZXJBdXRoTW9kZWxLZXkgaW4gaXRzIGN1c3RvbSBwcm9wZXJ0aWVzXG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBPYmplY3QudmFsdWVzKGNvbGxlY3Rpb25NYXApLmZpbmQoKGMpID0+IHtcbiAgICByZXR1cm4gYy5jdXN0b20/LmJldHRlckF1dGhNb2RlbEtleSA9PT0gYmV0dGVyQXV0aE1vZGVsS2V5XG4gIH0pXG5cbiAgLy8gVGhyb3cgYW4gZXJyb3IgaWYgbm8gbWF0Y2hpbmcgY29sbGVjdGlvbiBpcyBmb3VuZFxuICBpZiAoIWNvbGxlY3Rpb24pIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgQ29sbGVjdGlvbiB3aXRoIGtleSAke2JldHRlckF1dGhNb2RlbEtleX0gbm90IGZvdW5kYClcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnJvciwgZ2V0TWFwcGVkQ29sbGVjdGlvbilcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgcmV0dXJuIGNvbGxlY3Rpb25cbn1cblxuaW50ZXJmYWNlIE1hcHBlZEZpZWxkIGV4dGVuZHMgT21pdDxGaWVsZCwgJ3R5cGUnPiB7XG4gIG5hbWU6IHN0cmluZ1xuICB0eXBlOiBFeGNsdWRlPEZpZWxkWyd0eXBlJ10sICd0YWJzJyB8ICdyb3cnIHwgJ2NvbGxhcHNpYmxlJz5cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBmaWVsZCBmcm9tIGEgY29sbGVjdGlvbiBiYXNlZCBvbiBpdHMgQmV0dGVyIEF1dGggZmllbGQga2V5XG4gKlxuICogVGhpcyBmdW5jdGlvbiBzZWFyY2hlcyB0aHJvdWdoIHRoZSBmaWVsZHMgb2YgYSBwcm92aWRlZCBjb2xsZWN0aW9uIHRvIGZpbmQgYSBmaWVsZFxuICogdGhhdCBoYXMgYmVlbiBtYXJrZWQgd2l0aCBhIHNwZWNpZmljIEJldHRlciBBdXRoIGZpZWxkIGtleSBpbiBpdHMgY3VzdG9tIHByb3BlcnRpZXMuXG4gKiBJdCdzIHVzZWQgdG8gbWFwIGJldHdlZW4gQmV0dGVyIEF1dGgncyBpbnRlcm5hbCBmaWVsZCBrZXlzIGFuZCBQYXlsb2FkIENNUyBmaWVsZCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvbiAtIFRoZSBjb2xsZWN0aW9uIGNvbmZpZ3VyYXRpb24gdG8gc2VhcmNoIHdpdGhpblxuICogQHBhcmFtIGJldHRlckF1dGhGaWVsZEtleSAtIFRoZSBCZXR0ZXIgQXV0aCBmaWVsZCBrZXkgdG8gc2VhcmNoIGZvclxuICogQHJldHVybnMgVGhlIG1hdGNoZWQgZmllbGQgY29uZmlndXJhdGlvbiB3aXRoIGEgZ3VhcmFudGVlZCBuYW1lIGFuZCBub24tVUkgdHlwZVxuICogQHRocm93cyB7RXJyb3J9IElmIG5vIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBCZXR0ZXIgQXV0aCBmaWVsZCBrZXkgaXMgZm91bmRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm91bmQgZmllbGQgaXMgYSBVSS1vbmx5IGZpZWxkIHR5cGUgKHRhYnMsIHJvdywgY29sbGFwc2libGUpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXBwZWRGaWVsZCh7XG4gIGNvbGxlY3Rpb24sXG4gIGJldHRlckF1dGhGaWVsZEtleVxufToge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnXG4gIGJldHRlckF1dGhGaWVsZEtleTogc3RyaW5nXG59KTogTWFwcGVkRmllbGQge1xuICAvLyBGaW5kIHRoZSBmaWVsZCB0aGF0IGhhcyB0aGUgbWF0Y2hpbmcgYmV0dGVyQXV0aEZpZWxkS2V5IGluIGl0cyBjdXN0b20gcHJvcGVydGllc1xuICBjb25zdCBmaWVsZCA9IGNvbGxlY3Rpb24uZmllbGRzLmZpbmQoKGYpID0+IGYuY3VzdG9tPy5iZXR0ZXJBdXRoRmllbGRLZXkgPT09IGJldHRlckF1dGhGaWVsZEtleSlcblxuICAvLyBUaHJvdyBhbiBlcnJvciBpZiBubyBtYXRjaGluZyBmaWVsZCBpcyBmb3VuZFxuICBpZiAoIWZpZWxkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGaWVsZCB3aXRoIGtleSAke2JldHRlckF1dGhGaWVsZEtleX0gbm90IGZvdW5kYClcbiAgfVxuXG4gIC8vIEZpbHRlciBvdXQgVUktYmFzZWQgZmllbGRzIHRoYXQgZG9uJ3QgaGF2ZSBhIG5hbWUgb3IgYXJlbid0IGRhdGEgZmllbGRzXG4gIC8vIFRoZXNlIGZpZWxkIHR5cGVzIGFyZSB1c2VkIGZvciBsYXlvdXQgcHVycG9zZXMgb25seSBhbmQgY2Fubm90IHN0b3JlIGRhdGFcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAndGFicyc6XG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpZWxkIHdpdGgga2V5ICR7YmV0dGVyQXV0aEZpZWxkS2V5fSBpcyBhIFVJLW9ubHkgZmllbGQgYW5kIGNhbm5vdCBiZSB1c2VkIGZvciBkYXRhYClcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZpZWxkIGFzIE1hcHBlZEZpZWxkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNvbGxlY3Rpb25zVG9Db2xsZWN0aW9uQ29uZmlncyhjb2xsZWN0aW9uczogUmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbj4pOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoY29sbGVjdGlvbnMpLm1hcCgoW3NsdWcsIGNvbGxlY3Rpb25dKSA9PiBbc2x1ZywgY29sbGVjdGlvbi5jb25maWddKVxuICApXG59XG4iXSwibmFtZXMiOlsiZ2V0TWFwcGVkQ29sbGVjdGlvbiIsImNvbGxlY3Rpb25NYXAiLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJjb2xsZWN0aW9uIiwiT2JqZWN0IiwidmFsdWVzIiwiZmluZCIsImMiLCJjdXN0b20iLCJlcnJvciIsIkVycm9yIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJnZXRNYXBwZWRGaWVsZCIsImJldHRlckF1dGhGaWVsZEtleSIsImZpZWxkIiwiZmllbGRzIiwiZiIsInR5cGUiLCJ0cmFuc2Zvcm1Db2xsZWN0aW9uc1RvQ29sbGVjdGlvbkNvbmZpZ3MiLCJjb2xsZWN0aW9ucyIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsIm1hcCIsInNsdWciLCJjb25maWciXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7OztDQVdDLEdBQ0QsT0FBTyxTQUFTQSxvQkFBb0IsRUFDbENDLGFBQWEsRUFDYkMsa0JBQWtCLEVBSW5CO0lBQ0Msd0ZBQXdGO0lBQ3hGLE1BQU1DLGFBQWFDLE9BQU9DLE1BQU0sQ0FBQ0osZUFBZUssSUFBSSxDQUFDLENBQUNDO1FBQ3BELE9BQU9BLEVBQUVDLE1BQU0sRUFBRU4sdUJBQXVCQTtJQUMxQztJQUVBLG9EQUFvRDtJQUNwRCxJQUFJLENBQUNDLFlBQVk7UUFDZixNQUFNTSxRQUFRLElBQUlDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRVIsbUJBQW1CLFVBQVUsQ0FBQztRQUM3RVEsTUFBTUMsaUJBQWlCLENBQUNGLE9BQU9UO1FBQy9CLE1BQU1TO0lBQ1I7SUFFQSxPQUFPTjtBQUNUO0FBT0E7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsT0FBTyxTQUFTUyxlQUFlLEVBQzdCVCxVQUFVLEVBQ1ZVLGtCQUFrQixFQUluQjtJQUNDLG1GQUFtRjtJQUNuRixNQUFNQyxRQUFRWCxXQUFXWSxNQUFNLENBQUNULElBQUksQ0FBQyxDQUFDVSxJQUFNQSxFQUFFUixNQUFNLEVBQUVLLHVCQUF1QkE7SUFFN0UsK0NBQStDO0lBQy9DLElBQUksQ0FBQ0MsT0FBTztRQUNWLE1BQU0sSUFBSUosTUFBTSxDQUFDLGVBQWUsRUFBRUcsbUJBQW1CLFVBQVUsQ0FBQztJQUNsRTtJQUVBLDBFQUEwRTtJQUMxRSw0RUFBNEU7SUFDNUUsT0FBUUMsTUFBTUcsSUFBSTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCxNQUFNLElBQUlQLE1BQU0sQ0FBQyxlQUFlLEVBQUVHLG1CQUFtQiwrQ0FBK0MsQ0FBQztRQUN2RztZQUNFLE9BQU9DO0lBQ1g7QUFDRjtBQUVBLE9BQU8sU0FBU0ksd0NBQXdDQyxXQUF1QztJQUM3RixPQUFPZixPQUFPZ0IsV0FBVyxDQUN2QmhCLE9BQU9pQixPQUFPLENBQUNGLGFBQWFHLEdBQUcsQ0FBQyxDQUFDLENBQUNDLE1BQU1wQixXQUFXLEdBQUs7WUFBQ29CO1lBQU1wQixXQUFXcUIsTUFBTTtTQUFDO0FBRXJGIn0=
@@ -1,22 +1,60 @@
1
- import type { Config, Payload } from 'payload';
2
- type CollectionSlugs = {
3
- userCollectionSlug: string;
4
- sessionCollectionSlug: string;
5
- };
1
+ import { Session, User } from 'better-auth';
2
+ import type { CollectionConfig } from 'payload';
3
+ export declare function prepareUser({ user, userCollection }: {
4
+ user: User & Record<string, any>;
5
+ userCollection: CollectionConfig;
6
+ }): Promise<{
7
+ id: string;
8
+ name: string;
9
+ email: string;
10
+ emailVerified: boolean;
11
+ createdAt: Date;
12
+ updatedAt: Date;
13
+ image?: string | null | undefined;
14
+ } & Record<string, any>>;
15
+ export declare function prepareSession({ session, sessionCollection }: {
16
+ session: Session & Record<string, any>;
17
+ sessionCollection: CollectionConfig;
18
+ }): Promise<{
19
+ id: string;
20
+ createdAt: Date;
21
+ updatedAt: Date;
22
+ userId: string;
23
+ expiresAt: Date;
24
+ token: string;
25
+ ipAddress?: string | null | undefined;
26
+ userAgent?: string | null | undefined;
27
+ } & Record<string, any>>;
6
28
  /**
7
29
  * Prepares session data for cookie cache by filtering user and session objects
8
30
  * based on the payload configuration's 'saveToJwt' property
9
31
  */
10
- export declare function prepareSessionData({ newSession, payloadConfig, collectionSlugs }: {
11
- newSession: {
12
- user: any;
13
- session: any;
32
+ export declare function prepareSessionData({ sessionData, usersCollection, sessionsCollection }: {
33
+ sessionData: {
34
+ session: Session & Record<string, any>;
35
+ user: User & Record<string, any>;
14
36
  };
15
- payloadConfig: Payload['config'] | Config | Promise<Payload['config'] | Config>;
16
- collectionSlugs: CollectionSlugs;
37
+ usersCollection: CollectionConfig;
38
+ sessionsCollection: CollectionConfig;
17
39
  }): Promise<{
18
- user: Record<string, unknown>;
19
- session: any;
40
+ session: {
41
+ id: string;
42
+ createdAt: Date;
43
+ updatedAt: Date;
44
+ userId: string;
45
+ expiresAt: Date;
46
+ token: string;
47
+ ipAddress?: string | null | undefined;
48
+ userAgent?: string | null | undefined;
49
+ } & Record<string, any>;
50
+ user: {
51
+ id: string;
52
+ name: string;
53
+ email: string;
54
+ emailVerified: boolean;
55
+ createdAt: Date;
56
+ updatedAt: Date;
57
+ image?: string | null | undefined;
58
+ } & Record<string, any>;
20
59
  } | null>;
21
- export {};
22
60
  //# sourceMappingURL=prepare-session-data.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-session-data.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/prepare-session-data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAE9C,KAAK,eAAe,GAAG;IACrB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,qBAAqB,EAAE,MAAM,CAAA;CAC9B,CAAA;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,UAAU,EACV,aAAa,EACb,eAAe,EAChB,EAAE;IACD,UAAU,EAAE;QACV,IAAI,EAAE,GAAG,CAAA;QACT,OAAO,EAAE,GAAG,CAAA;KACb,CAAA;IACD,aAAa,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,CAAA;IAC/E,eAAe,EAAE,eAAe,CAAA;CACjC;;;UA6CA"}
1
+ {"version":3,"file":"prepare-session-data.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/prepare-session-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAc,gBAAgB,EAAmB,MAAM,SAAS,CAAA;AAK5E,wBAAsB,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,cAAc,EAAE,gBAAgB,CAAA;CAAE;;;;;;;;yBAWjI;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,iBAAiB,EAClB,EAAE;IACD,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtC,iBAAiB,EAAE,gBAAgB,CAAA;CACpC;;;;;;;;;yBAiBA;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,WAAW,EACX,eAAe,EACf,kBAAkB,EACnB,EAAE;IACD,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACtC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACjC,CAAA;IACD,eAAe,EAAE,gBAAgB,CAAA;IACjC,kBAAkB,EAAE,gBAAgB,CAAA;CACrC;;;;;;;;;;;;;;;;;;;;UAYA"}
@@ -1,43 +1,49 @@
1
1
  import { getFieldsToSign } from "payload";
2
+ export async function prepareUser({ user, userCollection }) {
3
+ const newUser = getFieldsToSign({
4
+ collectionConfig: userCollection,
5
+ email: user.email,
6
+ user: {
7
+ ...user,
8
+ collection: userCollection.slug
9
+ }
10
+ });
11
+ return newUser;
12
+ }
13
+ export async function prepareSession({ session, sessionCollection }) {
14
+ const filteredSession = getFieldsToSign({
15
+ collectionConfig: sessionCollection,
16
+ email: '',
17
+ user: {
18
+ ...session,
19
+ collection: sessionCollection.slug
20
+ }
21
+ });
22
+ delete filteredSession.email;
23
+ delete filteredSession.collection;
24
+ Object.assign(filteredSession, {
25
+ userId: session.userId
26
+ });
27
+ return filteredSession;
28
+ }
2
29
  /**
3
30
  * Prepares session data for cookie cache by filtering user and session objects
4
31
  * based on the payload configuration's 'saveToJwt' property
5
- */ export async function prepareSessionData({ newSession, payloadConfig, collectionSlugs }) {
6
- if (!newSession || !newSession.user) {
7
- return null;
8
- }
9
- const awaitedPayloadConfig = await payloadConfig;
10
- const { userCollectionSlug, sessionCollectionSlug } = collectionSlugs;
11
- const userCollection = awaitedPayloadConfig?.collections?.find((c)=>c.slug === userCollectionSlug);
12
- const sessionCollection = awaitedPayloadConfig?.collections?.find((c)=>c.slug === sessionCollectionSlug);
13
- if (!userCollection) {
14
- throw new Error(`User collection with slug '${userCollectionSlug}' not found`);
15
- }
16
- const filteredUser = getFieldsToSign({
17
- collectionConfig: userCollection,
18
- email: newSession.user.email,
19
- user: newSession.user
32
+ */ export async function prepareSessionData({ sessionData, usersCollection, sessionsCollection }) {
33
+ if (!sessionData || !sessionData.user) return null;
34
+ const newUser = await prepareUser({
35
+ user: sessionData.user,
36
+ userCollection: usersCollection
37
+ });
38
+ const newSession = await prepareSession({
39
+ session: sessionData.session,
40
+ sessionCollection: sessionsCollection
20
41
  });
21
- let filteredSession = newSession.session;
22
- const isImpersonated = newSession.session.impersonatedBy;
23
- if (sessionCollection && newSession.session) {
24
- filteredSession = getFieldsToSign({
25
- collectionConfig: sessionCollection,
26
- email: newSession.user.email,
27
- user: newSession.session
28
- });
29
- // getFieldsToSign is meant for auth collections so we remove the email and collection fields
30
- delete filteredSession.email;
31
- delete filteredSession.collection;
32
- }
33
- if (isImpersonated) {
34
- filteredSession.impersonatedBy = newSession.session.impersonatedBy;
35
- }
36
- return {
37
- ...newSession,
38
- user: filteredUser,
39
- session: filteredSession
42
+ const newSessionData = {
43
+ session: newSession,
44
+ user: newUser
40
45
  };
46
+ return newSessionData;
41
47
  }
42
48
 
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9wcmVwYXJlLXNlc3Npb24tZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRGaWVsZHNUb1NpZ24gfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBDb25maWcsIFBheWxvYWQgfSBmcm9tICdwYXlsb2FkJ1xuXG50eXBlIENvbGxlY3Rpb25TbHVncyA9IHtcbiAgdXNlckNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbiAgc2Vzc2lvbkNvbGxlY3Rpb25TbHVnOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBQcmVwYXJlcyBzZXNzaW9uIGRhdGEgZm9yIGNvb2tpZSBjYWNoZSBieSBmaWx0ZXJpbmcgdXNlciBhbmQgc2Vzc2lvbiBvYmplY3RzXG4gKiBiYXNlZCBvbiB0aGUgcGF5bG9hZCBjb25maWd1cmF0aW9uJ3MgJ3NhdmVUb0p3dCcgcHJvcGVydHlcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVTZXNzaW9uRGF0YSh7XG4gIG5ld1Nlc3Npb24sXG4gIHBheWxvYWRDb25maWcsXG4gIGNvbGxlY3Rpb25TbHVnc1xufToge1xuICBuZXdTZXNzaW9uOiB7XG4gICAgdXNlcjogYW55XG4gICAgc2Vzc2lvbjogYW55XG4gIH1cbiAgcGF5bG9hZENvbmZpZzogUGF5bG9hZFsnY29uZmlnJ10gfCBDb25maWcgfCBQcm9taXNlPFBheWxvYWRbJ2NvbmZpZyddIHwgQ29uZmlnPlxuICBjb2xsZWN0aW9uU2x1Z3M6IENvbGxlY3Rpb25TbHVnc1xufSkge1xuICBpZiAoIW5ld1Nlc3Npb24gfHwgIW5ld1Nlc3Npb24udXNlcikge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBjb25zdCBhd2FpdGVkUGF5bG9hZENvbmZpZyA9IGF3YWl0IHBheWxvYWRDb25maWdcblxuICBjb25zdCB7IHVzZXJDb2xsZWN0aW9uU2x1Zywgc2Vzc2lvbkNvbGxlY3Rpb25TbHVnIH0gPSBjb2xsZWN0aW9uU2x1Z3NcblxuICBjb25zdCB1c2VyQ29sbGVjdGlvbiA9IGF3YWl0ZWRQYXlsb2FkQ29uZmlnPy5jb2xsZWN0aW9ucz8uZmluZCgoYykgPT4gYy5zbHVnID09PSB1c2VyQ29sbGVjdGlvblNsdWcpXG4gIGNvbnN0IHNlc3Npb25Db2xsZWN0aW9uID0gYXdhaXRlZFBheWxvYWRDb25maWc/LmNvbGxlY3Rpb25zPy5maW5kKChjKSA9PiBjLnNsdWcgPT09IHNlc3Npb25Db2xsZWN0aW9uU2x1ZylcblxuICBpZiAoIXVzZXJDb2xsZWN0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVc2VyIGNvbGxlY3Rpb24gd2l0aCBzbHVnICcke3VzZXJDb2xsZWN0aW9uU2x1Z30nIG5vdCBmb3VuZGApXG4gIH1cblxuICBjb25zdCBmaWx0ZXJlZFVzZXIgPSBnZXRGaWVsZHNUb1NpZ24oe1xuICAgIGNvbGxlY3Rpb25Db25maWc6IHVzZXJDb2xsZWN0aW9uLFxuICAgIGVtYWlsOiBuZXdTZXNzaW9uLnVzZXIuZW1haWwsXG4gICAgdXNlcjogbmV3U2Vzc2lvbi51c2VyXG4gIH0pXG5cbiAgbGV0IGZpbHRlcmVkU2Vzc2lvbiA9IG5ld1Nlc3Npb24uc2Vzc2lvblxuICBjb25zdCBpc0ltcGVyc29uYXRlZCA9IG5ld1Nlc3Npb24uc2Vzc2lvbi5pbXBlcnNvbmF0ZWRCeVxuICBpZiAoc2Vzc2lvbkNvbGxlY3Rpb24gJiYgbmV3U2Vzc2lvbi5zZXNzaW9uKSB7XG4gICAgZmlsdGVyZWRTZXNzaW9uID0gZ2V0RmllbGRzVG9TaWduKHtcbiAgICAgIGNvbGxlY3Rpb25Db25maWc6IHNlc3Npb25Db2xsZWN0aW9uLFxuICAgICAgZW1haWw6IG5ld1Nlc3Npb24udXNlci5lbWFpbCxcbiAgICAgIHVzZXI6IG5ld1Nlc3Npb24uc2Vzc2lvblxuICAgIH0pIGFzIHR5cGVvZiBuZXdTZXNzaW9uLnNlc3Npb25cblxuICAgIC8vIGdldEZpZWxkc1RvU2lnbiBpcyBtZWFudCBmb3IgYXV0aCBjb2xsZWN0aW9ucyBzbyB3ZSByZW1vdmUgdGhlIGVtYWlsIGFuZCBjb2xsZWN0aW9uIGZpZWxkc1xuICAgIGRlbGV0ZSBmaWx0ZXJlZFNlc3Npb24uZW1haWxcbiAgICBkZWxldGUgZmlsdGVyZWRTZXNzaW9uLmNvbGxlY3Rpb25cbiAgfVxuXG4gIGlmIChpc0ltcGVyc29uYXRlZCkge1xuICAgIGZpbHRlcmVkU2Vzc2lvbi5pbXBlcnNvbmF0ZWRCeSA9IG5ld1Nlc3Npb24uc2Vzc2lvbi5pbXBlcnNvbmF0ZWRCeVxuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5uZXdTZXNzaW9uLFxuICAgIHVzZXI6IGZpbHRlcmVkVXNlcixcbiAgICBzZXNzaW9uOiBmaWx0ZXJlZFNlc3Npb25cbiAgfVxufVxuIl0sIm5hbWVzIjpbImdldEZpZWxkc1RvU2lnbiIsInByZXBhcmVTZXNzaW9uRGF0YSIsIm5ld1Nlc3Npb24iLCJwYXlsb2FkQ29uZmlnIiwiY29sbGVjdGlvblNsdWdzIiwidXNlciIsImF3YWl0ZWRQYXlsb2FkQ29uZmlnIiwidXNlckNvbGxlY3Rpb25TbHVnIiwic2Vzc2lvbkNvbGxlY3Rpb25TbHVnIiwidXNlckNvbGxlY3Rpb24iLCJjb2xsZWN0aW9ucyIsImZpbmQiLCJjIiwic2x1ZyIsInNlc3Npb25Db2xsZWN0aW9uIiwiRXJyb3IiLCJmaWx0ZXJlZFVzZXIiLCJjb2xsZWN0aW9uQ29uZmlnIiwiZW1haWwiLCJmaWx0ZXJlZFNlc3Npb24iLCJzZXNzaW9uIiwiaXNJbXBlcnNvbmF0ZWQiLCJpbXBlcnNvbmF0ZWRCeSIsImNvbGxlY3Rpb24iXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLGVBQWUsUUFBUSxVQUFTO0FBUXpDOzs7Q0FHQyxHQUNELE9BQU8sZUFBZUMsbUJBQW1CLEVBQ3ZDQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsZUFBZSxFQVFoQjtJQUNDLElBQUksQ0FBQ0YsY0FBYyxDQUFDQSxXQUFXRyxJQUFJLEVBQUU7UUFDbkMsT0FBTztJQUNUO0lBRUEsTUFBTUMsdUJBQXVCLE1BQU1IO0lBRW5DLE1BQU0sRUFBRUksa0JBQWtCLEVBQUVDLHFCQUFxQixFQUFFLEdBQUdKO0lBRXRELE1BQU1LLGlCQUFpQkgsc0JBQXNCSSxhQUFhQyxLQUFLLENBQUNDLElBQU1BLEVBQUVDLElBQUksS0FBS047SUFDakYsTUFBTU8sb0JBQW9CUixzQkFBc0JJLGFBQWFDLEtBQUssQ0FBQ0MsSUFBTUEsRUFBRUMsSUFBSSxLQUFLTDtJQUVwRixJQUFJLENBQUNDLGdCQUFnQjtRQUNuQixNQUFNLElBQUlNLE1BQU0sQ0FBQywyQkFBMkIsRUFBRVIsbUJBQW1CLFdBQVcsQ0FBQztJQUMvRTtJQUVBLE1BQU1TLGVBQWVoQixnQkFBZ0I7UUFDbkNpQixrQkFBa0JSO1FBQ2xCUyxPQUFPaEIsV0FBV0csSUFBSSxDQUFDYSxLQUFLO1FBQzVCYixNQUFNSCxXQUFXRyxJQUFJO0lBQ3ZCO0lBRUEsSUFBSWMsa0JBQWtCakIsV0FBV2tCLE9BQU87SUFDeEMsTUFBTUMsaUJBQWlCbkIsV0FBV2tCLE9BQU8sQ0FBQ0UsY0FBYztJQUN4RCxJQUFJUixxQkFBcUJaLFdBQVdrQixPQUFPLEVBQUU7UUFDM0NELGtCQUFrQm5CLGdCQUFnQjtZQUNoQ2lCLGtCQUFrQkg7WUFDbEJJLE9BQU9oQixXQUFXRyxJQUFJLENBQUNhLEtBQUs7WUFDNUJiLE1BQU1ILFdBQVdrQixPQUFPO1FBQzFCO1FBRUEsNkZBQTZGO1FBQzdGLE9BQU9ELGdCQUFnQkQsS0FBSztRQUM1QixPQUFPQyxnQkFBZ0JJLFVBQVU7SUFDbkM7SUFFQSxJQUFJRixnQkFBZ0I7UUFDbEJGLGdCQUFnQkcsY0FBYyxHQUFHcEIsV0FBV2tCLE9BQU8sQ0FBQ0UsY0FBYztJQUNwRTtJQUVBLE9BQU87UUFDTCxHQUFHcEIsVUFBVTtRQUNiRyxNQUFNVztRQUNOSSxTQUFTRDtJQUNYO0FBQ0YifQ==
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9wcmVwYXJlLXNlc3Npb24tZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXNzaW9uLCBVc2VyIH0gZnJvbSAnYmV0dGVyLWF1dGgnXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb24sIENvbGxlY3Rpb25Db25maWcsIENvbmZpZywgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBnZXRGaWVsZHNUb1NpZ24gfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgYmFNb2RlbEtleSB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IENvbGxlY3Rpb25TY2hlbWFNYXAgfSBmcm9tICcuL2dldC1jb2xsZWN0aW9uLXNjaGVtYS1tYXAnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmVwYXJlVXNlcih7IHVzZXIsIHVzZXJDb2xsZWN0aW9uIH06IHsgdXNlcjogVXNlciAmIFJlY29yZDxzdHJpbmcsIGFueT47IHVzZXJDb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnIH0pIHtcbiAgY29uc3QgbmV3VXNlciA9IGdldEZpZWxkc1RvU2lnbih7XG4gICAgY29sbGVjdGlvbkNvbmZpZzogdXNlckNvbGxlY3Rpb24sXG4gICAgZW1haWw6IHVzZXIuZW1haWwsXG4gICAgdXNlcjoge1xuICAgICAgLi4udXNlcixcbiAgICAgIGNvbGxlY3Rpb246IHVzZXJDb2xsZWN0aW9uLnNsdWdcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG5ld1VzZXIgYXMgVXNlciAmIFJlY29yZDxzdHJpbmcsIGFueT5cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVTZXNzaW9uKHtcbiAgc2Vzc2lvbixcbiAgc2Vzc2lvbkNvbGxlY3Rpb25cbn06IHtcbiAgc2Vzc2lvbjogU2Vzc2lvbiAmIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgc2Vzc2lvbkNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWdcbn0pIHtcbiAgY29uc3QgZmlsdGVyZWRTZXNzaW9uID0gZ2V0RmllbGRzVG9TaWduKHtcbiAgICBjb2xsZWN0aW9uQ29uZmlnOiBzZXNzaW9uQ29sbGVjdGlvbixcbiAgICBlbWFpbDogJycsXG4gICAgdXNlcjoge1xuICAgICAgLi4uc2Vzc2lvbixcbiAgICAgIGNvbGxlY3Rpb246IHNlc3Npb25Db2xsZWN0aW9uLnNsdWdcbiAgICB9XG4gIH0pXG5cbiAgZGVsZXRlIGZpbHRlcmVkU2Vzc2lvbi5lbWFpbFxuICBkZWxldGUgZmlsdGVyZWRTZXNzaW9uLmNvbGxlY3Rpb25cbiAgT2JqZWN0LmFzc2lnbihmaWx0ZXJlZFNlc3Npb24sIHtcbiAgICB1c2VySWQ6IHNlc3Npb24udXNlcklkXG4gIH0pXG5cbiAgcmV0dXJuIGZpbHRlcmVkU2Vzc2lvbiBhcyBTZXNzaW9uICYgUmVjb3JkPHN0cmluZywgYW55PlxufVxuXG4vKipcbiAqIFByZXBhcmVzIHNlc3Npb24gZGF0YSBmb3IgY29va2llIGNhY2hlIGJ5IGZpbHRlcmluZyB1c2VyIGFuZCBzZXNzaW9uIG9iamVjdHNcbiAqIGJhc2VkIG9uIHRoZSBwYXlsb2FkIGNvbmZpZ3VyYXRpb24ncyAnc2F2ZVRvSnd0JyBwcm9wZXJ0eVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVNlc3Npb25EYXRhKHtcbiAgc2Vzc2lvbkRhdGEsXG4gIHVzZXJzQ29sbGVjdGlvbixcbiAgc2Vzc2lvbnNDb2xsZWN0aW9uXG59OiB7XG4gIHNlc3Npb25EYXRhOiB7XG4gICAgc2Vzc2lvbjogU2Vzc2lvbiAmIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICB1c2VyOiBVc2VyICYgUmVjb3JkPHN0cmluZywgYW55PlxuICB9XG4gIHVzZXJzQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBzZXNzaW9uc0NvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWdcbn0pIHtcbiAgaWYgKCFzZXNzaW9uRGF0YSB8fCAhc2Vzc2lvbkRhdGEudXNlcikgcmV0dXJuIG51bGxcblxuICBjb25zdCBuZXdVc2VyID0gYXdhaXQgcHJlcGFyZVVzZXIoeyB1c2VyOiBzZXNzaW9uRGF0YS51c2VyLCB1c2VyQ29sbGVjdGlvbjogdXNlcnNDb2xsZWN0aW9uIH0pXG4gIGNvbnN0IG5ld1Nlc3Npb24gPSBhd2FpdCBwcmVwYXJlU2Vzc2lvbih7IHNlc3Npb246IHNlc3Npb25EYXRhLnNlc3Npb24sIHNlc3Npb25Db2xsZWN0aW9uOiBzZXNzaW9uc0NvbGxlY3Rpb24gfSlcblxuICBjb25zdCBuZXdTZXNzaW9uRGF0YSA9IHtcbiAgICBzZXNzaW9uOiBuZXdTZXNzaW9uLFxuICAgIHVzZXI6IG5ld1VzZXJcbiAgfVxuXG4gIHJldHVybiBuZXdTZXNzaW9uRGF0YVxufVxuIl0sIm5hbWVzIjpbImdldEZpZWxkc1RvU2lnbiIsInByZXBhcmVVc2VyIiwidXNlciIsInVzZXJDb2xsZWN0aW9uIiwibmV3VXNlciIsImNvbGxlY3Rpb25Db25maWciLCJlbWFpbCIsImNvbGxlY3Rpb24iLCJzbHVnIiwicHJlcGFyZVNlc3Npb24iLCJzZXNzaW9uIiwic2Vzc2lvbkNvbGxlY3Rpb24iLCJmaWx0ZXJlZFNlc3Npb24iLCJPYmplY3QiLCJhc3NpZ24iLCJ1c2VySWQiLCJwcmVwYXJlU2Vzc2lvbkRhdGEiLCJzZXNzaW9uRGF0YSIsInVzZXJzQ29sbGVjdGlvbiIsInNlc3Npb25zQ29sbGVjdGlvbiIsIm5ld1Nlc3Npb24iLCJuZXdTZXNzaW9uRGF0YSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsZUFBZSxRQUFRLFVBQVM7QUFJekMsT0FBTyxlQUFlQyxZQUFZLEVBQUVDLElBQUksRUFBRUMsY0FBYyxFQUEwRTtJQUNoSSxNQUFNQyxVQUFVSixnQkFBZ0I7UUFDOUJLLGtCQUFrQkY7UUFDbEJHLE9BQU9KLEtBQUtJLEtBQUs7UUFDakJKLE1BQU07WUFDSixHQUFHQSxJQUFJO1lBQ1BLLFlBQVlKLGVBQWVLLElBQUk7UUFDakM7SUFDRjtJQUVBLE9BQU9KO0FBQ1Q7QUFFQSxPQUFPLGVBQWVLLGVBQWUsRUFDbkNDLE9BQU8sRUFDUEMsaUJBQWlCLEVBSWxCO0lBQ0MsTUFBTUMsa0JBQWtCWixnQkFBZ0I7UUFDdENLLGtCQUFrQk07UUFDbEJMLE9BQU87UUFDUEosTUFBTTtZQUNKLEdBQUdRLE9BQU87WUFDVkgsWUFBWUksa0JBQWtCSCxJQUFJO1FBQ3BDO0lBQ0Y7SUFFQSxPQUFPSSxnQkFBZ0JOLEtBQUs7SUFDNUIsT0FBT00sZ0JBQWdCTCxVQUFVO0lBQ2pDTSxPQUFPQyxNQUFNLENBQUNGLGlCQUFpQjtRQUM3QkcsUUFBUUwsUUFBUUssTUFBTTtJQUN4QjtJQUVBLE9BQU9IO0FBQ1Q7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLGVBQWVJLG1CQUFtQixFQUN2Q0MsV0FBVyxFQUNYQyxlQUFlLEVBQ2ZDLGtCQUFrQixFQVFuQjtJQUNDLElBQUksQ0FBQ0YsZUFBZSxDQUFDQSxZQUFZZixJQUFJLEVBQUUsT0FBTztJQUU5QyxNQUFNRSxVQUFVLE1BQU1ILFlBQVk7UUFBRUMsTUFBTWUsWUFBWWYsSUFBSTtRQUFFQyxnQkFBZ0JlO0lBQWdCO0lBQzVGLE1BQU1FLGFBQWEsTUFBTVgsZUFBZTtRQUFFQyxTQUFTTyxZQUFZUCxPQUFPO1FBQUVDLG1CQUFtQlE7SUFBbUI7SUFFOUcsTUFBTUUsaUJBQWlCO1FBQ3JCWCxTQUFTVTtRQUNUbEIsTUFBTUU7SUFDUjtJQUVBLE9BQU9pQjtBQUNUIn0=
@@ -1,8 +1,8 @@
1
- import type { Config } from 'payload';
1
+ import { type Config } from 'payload';
2
2
  import type { BetterAuthPluginOptions } from './types';
3
- export { sanitizeBetterAuthOptions } from './lib/sanitize-better-auth-options/index';
3
+ export * from './helpers/index';
4
4
  export { getPayloadAuth } from './lib/get-payload-auth';
5
+ export { sanitizeBetterAuthOptions } from './lib/sanitize-better-auth-options/index';
5
6
  export * from './types';
6
- export * from './helpers/index';
7
7
  export declare function betterAuthPlugin(pluginOptions: BetterAuthPluginOptions): (config: Config) => Config;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AACrC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAStD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,cAAc,SAAS,CAAA;AACvB,cAAc,iBAAiB,CAAA;AAE/B,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,IAC7D,QAAQ,MAAM,KAAG,MAAM,CAqJhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,MAAM,EAAc,MAAM,SAAS,CAAA;AAQ1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAItD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,cAAc,SAAS,CAAA;AAEvB,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,IAC7D,QAAQ,MAAM,KAAG,MAAM,CA2IhC"}