payload-auth 1.8.4 → 1.9.1

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 (139) hide show
  1. package/dist/better-auth/adapter/index.d.ts.map +1 -1
  2. package/dist/better-auth/adapter/index.js +106 -23
  3. package/dist/better-auth/adapter/transform/index.d.ts +6 -6
  4. package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
  5. package/dist/better-auth/adapter/transform/index.js +160 -52
  6. package/dist/better-auth/generated-types.d.ts +14 -11
  7. package/dist/better-auth/generated-types.d.ts.map +1 -1
  8. package/dist/better-auth/generated-types.js +1 -1
  9. package/dist/better-auth/plugin/constants.d.ts +3 -7
  10. package/dist/better-auth/plugin/constants.d.ts.map +1 -1
  11. package/dist/better-auth/plugin/constants.js +5 -9
  12. package/dist/better-auth/plugin/index.d.ts.map +1 -1
  13. package/dist/better-auth/plugin/index.js +8 -12
  14. package/dist/better-auth/plugin/lib/{apply-disabled-default-auth-config.d.ts → apply-ba-admin-config.d.ts} +4 -3
  15. package/dist/better-auth/plugin/lib/apply-ba-admin-config.d.ts.map +1 -0
  16. package/dist/better-auth/plugin/lib/apply-ba-admin-config.js +88 -0
  17. package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +7 -12
  18. package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -1
  19. package/dist/better-auth/plugin/lib/build-collections/api-keys.js +5 -5
  20. package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts.map +1 -1
  21. package/dist/better-auth/plugin/lib/build-collections/device-code.js +8 -3
  22. package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -1
  23. package/dist/better-auth/plugin/lib/build-collections/jwks.js +2 -1
  24. package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -1
  25. package/dist/better-auth/plugin/lib/build-collections/members.js +4 -7
  26. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -1
  27. package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +3 -3
  28. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -1
  29. package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +4 -4
  30. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -1
  31. package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +3 -3
  32. package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -1
  33. package/dist/better-auth/plugin/lib/build-collections/organizations.js +10 -5
  34. package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -1
  35. package/dist/better-auth/plugin/lib/build-collections/sessions.js +2 -2
  36. package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts.map +1 -1
  37. package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +2 -1
  38. package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -1
  39. package/dist/better-auth/plugin/lib/build-collections/teams.js +3 -3
  40. package/dist/better-auth/plugin/lib/build-collections/two-factors.js +2 -2
  41. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -1
  42. package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +10 -2
  43. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts.map +1 -1
  44. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +36 -2
  45. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +0 -1
  46. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -1
  47. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +1 -2
  48. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -1
  49. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +4 -3
  50. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts.map +1 -1
  51. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +36 -2
  52. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +4 -2
  53. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -1
  54. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +103 -33
  55. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +0 -4
  56. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts.map +1 -1
  57. package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +1 -5
  58. package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
  59. package/dist/better-auth/plugin/lib/build-collections/users/index.js +6 -25
  60. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts.map +1 -1
  61. package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +8 -3
  62. package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -1
  63. package/dist/better-auth/plugin/lib/build-collections/verifications.js +3 -3
  64. package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -1
  65. package/dist/better-auth/plugin/lib/get-payload-auth.js +4 -1
  66. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -1
  67. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +3 -4
  68. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +2 -3
  69. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
  70. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +7 -49
  71. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -1
  72. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +6 -1
  73. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -1
  74. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +5 -2
  75. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -1
  76. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +2 -1
  77. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.js +2 -2
  78. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-invite-after-signup-middleware.d.ts +16 -0
  79. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-invite-after-signup-middleware.d.ts.map +1 -0
  80. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-invite-after-signup-middleware.js +96 -0
  81. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -1
  82. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +2 -2
  83. package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -1
  84. package/dist/better-auth/plugin/lib/set-login-methods.js +2 -2
  85. package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts.map +1 -1
  86. package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.js +8 -4
  87. package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts.map +1 -1
  88. package/dist/better-auth/plugin/payload/components/passkeys/index.js +3 -2
  89. package/dist/better-auth/plugin/payload/utils/resolve-base-url.d.ts +9 -0
  90. package/dist/better-auth/plugin/payload/utils/resolve-base-url.d.ts.map +1 -0
  91. package/dist/better-auth/plugin/payload/utils/resolve-base-url.js +49 -0
  92. package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
  93. package/dist/better-auth/plugin/payload/views/admin-login/client.js +1 -1
  94. package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
  95. package/dist/better-auth/plugin/payload/views/admin-login/index.js +3 -2
  96. package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
  97. package/dist/better-auth/plugin/payload/views/admin-signup/client.js +2 -5
  98. package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -1
  99. package/dist/better-auth/plugin/payload/views/admin-signup/index.js +3 -2
  100. package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -1
  101. package/dist/better-auth/plugin/payload/views/forgot-password/index.js +4 -3
  102. package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -1
  103. package/dist/better-auth/plugin/payload/views/reset-password/index.js +4 -3
  104. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -1
  105. package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +3 -2
  106. package/dist/better-auth/plugin/types.d.ts +13 -56
  107. package/dist/better-auth/plugin/types.d.ts.map +1 -1
  108. package/dist/better-auth/plugin/types.js +1 -1
  109. package/dist/better-auth/scripts/generate-types.js +8 -6
  110. package/package.json +20 -17
  111. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts.map +0 -1
  112. package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js +0 -87
  113. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +0 -4
  114. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +0 -1
  115. package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +0 -51
  116. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +0 -4
  117. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts.map +0 -1
  118. package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +0 -90
  119. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +0 -7
  120. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +0 -1
  121. package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +0 -80
  122. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +0 -7
  123. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +0 -1
  124. package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +0 -15
  125. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +0 -3
  126. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +0 -1
  127. package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +0 -17
  128. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +0 -3
  129. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +0 -1
  130. package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +0 -90
  131. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts +0 -8
  132. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts.map +0 -1
  133. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +0 -23
  134. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts +0 -26
  135. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts.map +0 -1
  136. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +0 -62
  137. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +0 -10
  138. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts.map +0 -1
  139. package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +0 -62
@@ -1,51 +0,0 @@
1
- import { baModelKey } from "../../../../constants";
2
- import { getSchemaCollectionSlug, getSchemaFieldName } from "../../utils/collection-schema";
3
- export function getSyncPasswordToUserHook(resolvedSchemas) {
4
- const hook = async ({ doc, req, operation, context })=>{
5
- if (context?.syncAccountHook) return doc;
6
- if (operation !== "create" && operation !== "update") {
7
- return doc;
8
- }
9
- const userSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.user);
10
- const accountSlug = getSchemaCollectionSlug(resolvedSchemas, baModelKey.account);
11
- const userField = getSchemaFieldName(resolvedSchemas, baModelKey.account, "userId");
12
- if (!doc[userField]) {
13
- return doc;
14
- }
15
- const account = await req.payload.findByID({
16
- collection: accountSlug,
17
- id: doc.id,
18
- depth: 0,
19
- req,
20
- showHiddenFields: true
21
- });
22
- if (!account || !account.password) {
23
- return doc;
24
- }
25
- const [salt, hash] = account.password.split(":");
26
- if (!salt || !hash) {
27
- return doc;
28
- }
29
- const userId = typeof doc[userField] === "object" ? doc[userField]?.id : doc[userField];
30
- try {
31
- await req.payload.update({
32
- collection: userSlug,
33
- id: userId,
34
- data: {
35
- salt,
36
- hash
37
- },
38
- req,
39
- context: {
40
- syncPasswordToUser: true
41
- }
42
- });
43
- } catch (error) {
44
- console.error("Failed to sync password to user:", error);
45
- }
46
- return doc;
47
- };
48
- return hook;
49
- }
50
-
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL2FjY291bnRzL2hvb2tzL3N5bmMtcGFzc3dvcmQtdG8tdXNlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHsgYmFNb2RlbEtleSB9IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi9jb25zdGFudHNcIjtcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFNjaGVtYXMgfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9wbHVnaW4vdHlwZXNcIjtcbmltcG9ydCB7XG4gIGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnLFxuICBnZXRTY2hlbWFGaWVsZE5hbWVcbn0gZnJvbSBcIi4uLy4uL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeW5jUGFzc3dvcmRUb1VzZXJIb29rKFxuICByZXNvbHZlZFNjaGVtYXM6IEJldHRlckF1dGhTY2hlbWFzXG4pOiBDb2xsZWN0aW9uQWZ0ZXJDaGFuZ2VIb29rIHtcbiAgY29uc3QgaG9vazogQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9vayA9IGFzeW5jICh7XG4gICAgZG9jLFxuICAgIHJlcSxcbiAgICBvcGVyYXRpb24sXG4gICAgY29udGV4dFxuICB9KSA9PiB7XG4gICAgaWYgKGNvbnRleHQ/LnN5bmNBY2NvdW50SG9vaykgcmV0dXJuIGRvYztcblxuICAgIGlmIChvcGVyYXRpb24gIT09IFwiY3JlYXRlXCIgJiYgb3BlcmF0aW9uICE9PSBcInVwZGF0ZVwiKSB7XG4gICAgICByZXR1cm4gZG9jO1xuICAgIH1cbiAgICBjb25zdCB1c2VyU2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKHJlc29sdmVkU2NoZW1hcywgYmFNb2RlbEtleS51c2VyKTtcbiAgICBjb25zdCBhY2NvdW50U2x1ZyA9IGdldFNjaGVtYUNvbGxlY3Rpb25TbHVnKFxuICAgICAgcmVzb2x2ZWRTY2hlbWFzLFxuICAgICAgYmFNb2RlbEtleS5hY2NvdW50XG4gICAgKTtcbiAgICBjb25zdCB1c2VyRmllbGQgPSBnZXRTY2hlbWFGaWVsZE5hbWUoXG4gICAgICByZXNvbHZlZFNjaGVtYXMsXG4gICAgICBiYU1vZGVsS2V5LmFjY291bnQsXG4gICAgICBcInVzZXJJZFwiXG4gICAgKTtcblxuICAgIGlmICghZG9jW3VzZXJGaWVsZF0pIHtcbiAgICAgIHJldHVybiBkb2M7XG4gICAgfVxuXG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IHJlcS5wYXlsb2FkLmZpbmRCeUlEKHtcbiAgICAgIGNvbGxlY3Rpb246IGFjY291bnRTbHVnLFxuICAgICAgaWQ6IGRvYy5pZCxcbiAgICAgIGRlcHRoOiAwLFxuICAgICAgcmVxLFxuICAgICAgc2hvd0hpZGRlbkZpZWxkczogdHJ1ZVxuICAgIH0pO1xuXG4gICAgaWYgKCFhY2NvdW50IHx8ICFhY2NvdW50LnBhc3N3b3JkKSB7XG4gICAgICByZXR1cm4gZG9jO1xuICAgIH1cblxuICAgIGNvbnN0IFtzYWx0LCBoYXNoXSA9IGFjY291bnQucGFzc3dvcmQuc3BsaXQoXCI6XCIpO1xuXG4gICAgaWYgKCFzYWx0IHx8ICFoYXNoKSB7XG4gICAgICByZXR1cm4gZG9jO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJJZCA9XG4gICAgICB0eXBlb2YgZG9jW3VzZXJGaWVsZF0gPT09IFwib2JqZWN0XCIgPyBkb2NbdXNlckZpZWxkXT8uaWQgOiBkb2NbdXNlckZpZWxkXTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCByZXEucGF5bG9hZC51cGRhdGUoe1xuICAgICAgICBjb2xsZWN0aW9uOiB1c2VyU2x1ZyxcbiAgICAgICAgaWQ6IHVzZXJJZCxcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHNhbHQsXG4gICAgICAgICAgaGFzaFxuICAgICAgICB9LFxuICAgICAgICByZXEsXG4gICAgICAgIGNvbnRleHQ6IHsgc3luY1Bhc3N3b3JkVG9Vc2VyOiB0cnVlIH1cbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHN5bmMgcGFzc3dvcmQgdG8gdXNlcjpcIiwgZXJyb3IpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2M7XG4gIH07XG5cbiAgcmV0dXJuIGhvb2sgYXMgQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9vaztcbn1cbiJdLCJuYW1lcyI6WyJiYU1vZGVsS2V5IiwiZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWciLCJnZXRTY2hlbWFGaWVsZE5hbWUiLCJnZXRTeW5jUGFzc3dvcmRUb1VzZXJIb29rIiwicmVzb2x2ZWRTY2hlbWFzIiwiaG9vayIsImRvYyIsInJlcSIsIm9wZXJhdGlvbiIsImNvbnRleHQiLCJzeW5jQWNjb3VudEhvb2siLCJ1c2VyU2x1ZyIsInVzZXIiLCJhY2NvdW50U2x1ZyIsImFjY291bnQiLCJ1c2VyRmllbGQiLCJwYXlsb2FkIiwiZmluZEJ5SUQiLCJjb2xsZWN0aW9uIiwiaWQiLCJkZXB0aCIsInNob3dIaWRkZW5GaWVsZHMiLCJwYXNzd29yZCIsInNhbHQiLCJoYXNoIiwic3BsaXQiLCJ1c2VySWQiLCJ1cGRhdGUiLCJkYXRhIiwic3luY1Bhc3N3b3JkVG9Vc2VyIiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxVQUFVLFFBQVEsd0JBQWlDO0FBRTVELFNBQ0VDLHVCQUF1QixFQUN2QkMsa0JBQWtCLFFBQ2IsZ0NBQWdDO0FBRXZDLE9BQU8sU0FBU0MsMEJBQ2RDLGVBQWtDO0lBRWxDLE1BQU1DLE9BQWtDLE9BQU8sRUFDN0NDLEdBQUcsRUFDSEMsR0FBRyxFQUNIQyxTQUFTLEVBQ1RDLE9BQU8sRUFDUjtRQUNDLElBQUlBLFNBQVNDLGlCQUFpQixPQUFPSjtRQUVyQyxJQUFJRSxjQUFjLFlBQVlBLGNBQWMsVUFBVTtZQUNwRCxPQUFPRjtRQUNUO1FBQ0EsTUFBTUssV0FBV1Ysd0JBQXdCRyxpQkFBaUJKLFdBQVdZLElBQUk7UUFDekUsTUFBTUMsY0FBY1osd0JBQ2xCRyxpQkFDQUosV0FBV2MsT0FBTztRQUVwQixNQUFNQyxZQUFZYixtQkFDaEJFLGlCQUNBSixXQUFXYyxPQUFPLEVBQ2xCO1FBR0YsSUFBSSxDQUFDUixHQUFHLENBQUNTLFVBQVUsRUFBRTtZQUNuQixPQUFPVDtRQUNUO1FBRUEsTUFBTVEsVUFBVSxNQUFNUCxJQUFJUyxPQUFPLENBQUNDLFFBQVEsQ0FBQztZQUN6Q0MsWUFBWUw7WUFDWk0sSUFBSWIsSUFBSWEsRUFBRTtZQUNWQyxPQUFPO1lBQ1BiO1lBQ0FjLGtCQUFrQjtRQUNwQjtRQUVBLElBQUksQ0FBQ1AsV0FBVyxDQUFDQSxRQUFRUSxRQUFRLEVBQUU7WUFDakMsT0FBT2hCO1FBQ1Q7UUFFQSxNQUFNLENBQUNpQixNQUFNQyxLQUFLLEdBQUdWLFFBQVFRLFFBQVEsQ0FBQ0csS0FBSyxDQUFDO1FBRTVDLElBQUksQ0FBQ0YsUUFBUSxDQUFDQyxNQUFNO1lBQ2xCLE9BQU9sQjtRQUNUO1FBRUEsTUFBTW9CLFNBQ0osT0FBT3BCLEdBQUcsQ0FBQ1MsVUFBVSxLQUFLLFdBQVdULEdBQUcsQ0FBQ1MsVUFBVSxFQUFFSSxLQUFLYixHQUFHLENBQUNTLFVBQVU7UUFFMUUsSUFBSTtZQUNGLE1BQU1SLElBQUlTLE9BQU8sQ0FBQ1csTUFBTSxDQUFDO2dCQUN2QlQsWUFBWVA7Z0JBQ1pRLElBQUlPO2dCQUNKRSxNQUFNO29CQUNKTDtvQkFDQUM7Z0JBQ0Y7Z0JBQ0FqQjtnQkFDQUUsU0FBUztvQkFBRW9CLG9CQUFvQjtnQkFBSztZQUN0QztRQUNGLEVBQUUsT0FBT0MsT0FBTztZQUNkQyxRQUFRRCxLQUFLLENBQUMsb0NBQW9DQTtRQUNwRDtRQUVBLE9BQU94QjtJQUNUO0lBRUEsT0FBT0Q7QUFDVCJ9
@@ -1,4 +0,0 @@
1
- import { type Endpoint } from "payload";
2
- import { PayloadAuthOptions } from "../../../../types";
3
- export declare const getSetAdminRoleEndpoint: (pluginOptions: PayloadAuthOptions, userSlug: string) => Endpoint;
4
- //# sourceMappingURL=set-admin-role.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set-admin-role.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGxC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQvD,eAAO,MAAM,uBAAuB,GAClC,eAAe,kBAAkB,EACjC,UAAU,MAAM,KACf,QA0EF,CAAC"}
@@ -1,90 +0,0 @@
1
- import { status as httpStatus } from "http-status";
2
- import { z } from "zod";
3
- import { adminEndpoints, baseSlugs } from "../../../../constants";
4
- import { getPayloadAuth } from "../../../get-payload-auth";
5
- const setAdminRoleSchema = z.object({
6
- token: z.string().optional(),
7
- redirect: z.string().optional()
8
- });
9
- export const getSetAdminRoleEndpoint = (pluginOptions, userSlug)=>{
10
- const endpoint = {
11
- path: adminEndpoints.setAdminRole,
12
- method: "get",
13
- handler: async (req)=>{
14
- const { config } = req.payload;
15
- const schema = setAdminRoleSchema.safeParse(req.query);
16
- if (!schema.success) {
17
- return Response.json({
18
- message: schema.error.message
19
- }, {
20
- status: httpStatus.BAD_REQUEST
21
- });
22
- }
23
- const payloadAuth = await getPayloadAuth(config);
24
- const session = await payloadAuth.betterAuth.api.getSession({
25
- headers: req.headers
26
- });
27
- if (!session) {
28
- return Response.json({
29
- message: "No session found"
30
- }, {
31
- status: httpStatus.UNAUTHORIZED
32
- });
33
- }
34
- const { token, redirect } = schema.data;
35
- const invite = await req.payload.find({
36
- collection: pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations,
37
- where: {
38
- token: {
39
- equals: token
40
- }
41
- },
42
- limit: 1
43
- });
44
- if (invite.docs.length === 0) {
45
- return Response.json({
46
- message: "Invalid token"
47
- }, {
48
- status: httpStatus.UNAUTHORIZED
49
- });
50
- }
51
- const role = invite.docs[0].role;
52
- try {
53
- const updatedUser = await req.payload.update({
54
- collection: userSlug,
55
- id: session.user.id,
56
- data: {
57
- role: [
58
- role
59
- ]
60
- },
61
- overrideAccess: true
62
- });
63
- await req.payload.delete({
64
- collection: pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations,
65
- where: {
66
- token: {
67
- equals: token
68
- }
69
- }
70
- });
71
- const response = new Response(null, {
72
- status: 307,
73
- headers: {
74
- Location: redirect ?? config.routes.admin
75
- }
76
- });
77
- return response;
78
- } catch (error) {
79
- return Response.json({
80
- message: "Error updating user role"
81
- }, {
82
- status: httpStatus.INTERNAL_SERVER_ERROR
83
- });
84
- }
85
- }
86
- };
87
- return endpoint;
88
- };
89
-
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2VuZHBvaW50cy9zZXQtYWRtaW4tcm9sZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBzdGF0dXMgYXMgaHR0cFN0YXR1cyB9IGZyb20gXCJodHRwLXN0YXR1c1wiO1xuaW1wb3J0IHsgdHlwZSBFbmRwb2ludCB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgeyB6IH0gZnJvbSBcInpvZFwiO1xuaW1wb3J0IHsgYWRtaW5FbmRwb2ludHMsIGJhc2VTbHVncyB9IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi9jb25zdGFudHNcIjtcbmltcG9ydCB7IFBheWxvYWRBdXRoT3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgZ2V0UGF5bG9hZEF1dGggfSBmcm9tIFwiLi4vLi4vLi4vZ2V0LXBheWxvYWQtYXV0aFwiO1xuXG5jb25zdCBzZXRBZG1pblJvbGVTY2hlbWEgPSB6Lm9iamVjdCh7XG4gIHRva2VuOiB6LnN0cmluZygpLm9wdGlvbmFsKCksXG4gIHJlZGlyZWN0OiB6LnN0cmluZygpLm9wdGlvbmFsKClcbn0pO1xuXG5leHBvcnQgY29uc3QgZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQgPSAoXG4gIHBsdWdpbk9wdGlvbnM6IFBheWxvYWRBdXRoT3B0aW9ucyxcbiAgdXNlclNsdWc6IHN0cmluZ1xuKTogRW5kcG9pbnQgPT4ge1xuICBjb25zdCBlbmRwb2ludDogRW5kcG9pbnQgPSB7XG4gICAgcGF0aDogYWRtaW5FbmRwb2ludHMuc2V0QWRtaW5Sb2xlLFxuICAgIG1ldGhvZDogXCJnZXRcIixcbiAgICBoYW5kbGVyOiBhc3luYyAocmVxKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZyB9ID0gcmVxLnBheWxvYWQ7XG4gICAgICBjb25zdCBzY2hlbWEgPSBzZXRBZG1pblJvbGVTY2hlbWEuc2FmZVBhcnNlKHJlcS5xdWVyeSk7XG4gICAgICBpZiAoIXNjaGVtYS5zdWNjZXNzKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZS5qc29uKFxuICAgICAgICAgIHsgbWVzc2FnZTogc2NoZW1hLmVycm9yLm1lc3NhZ2UgfSxcbiAgICAgICAgICB7IHN0YXR1czogaHR0cFN0YXR1cy5CQURfUkVRVUVTVCB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBjb25zdCBwYXlsb2FkQXV0aCA9IGF3YWl0IGdldFBheWxvYWRBdXRoKGNvbmZpZyk7XG4gICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgcGF5bG9hZEF1dGguYmV0dGVyQXV0aC5hcGkuZ2V0U2Vzc2lvbih7XG4gICAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzXG4gICAgICB9KTtcbiAgICAgIGlmICghc2Vzc2lvbikge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2UuanNvbihcbiAgICAgICAgICB7IG1lc3NhZ2U6IFwiTm8gc2Vzc2lvbiBmb3VuZFwiIH0sXG4gICAgICAgICAgeyBzdGF0dXM6IGh0dHBTdGF0dXMuVU5BVVRIT1JJWkVEIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHsgdG9rZW4sIHJlZGlyZWN0IH0gPSBzY2hlbWEuZGF0YTtcbiAgICAgIGNvbnN0IGludml0ZSA9IGF3YWl0IHJlcS5wYXlsb2FkLmZpbmQoe1xuICAgICAgICBjb2xsZWN0aW9uOlxuICAgICAgICAgIHBsdWdpbk9wdGlvbnMuYWRtaW5JbnZpdGF0aW9ucz8uc2x1ZyA/PyBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9ucyxcbiAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICB0b2tlbjogeyBlcXVhbHM6IHRva2VuIH1cbiAgICAgICAgfSxcbiAgICAgICAgbGltaXQ6IDFcbiAgICAgIH0pO1xuICAgICAgaWYgKGludml0ZS5kb2NzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gUmVzcG9uc2UuanNvbihcbiAgICAgICAgICB7IG1lc3NhZ2U6IFwiSW52YWxpZCB0b2tlblwiIH0sXG4gICAgICAgICAgeyBzdGF0dXM6IGh0dHBTdGF0dXMuVU5BVVRIT1JJWkVEIH1cbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJvbGUgPSBpbnZpdGUuZG9jc1swXS5yb2xlIGFzIHN0cmluZztcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZWRVc2VyID0gYXdhaXQgcmVxLnBheWxvYWQudXBkYXRlKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiB1c2VyU2x1ZyxcbiAgICAgICAgICBpZDogc2Vzc2lvbi51c2VyLmlkLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHJvbGU6IFtyb2xlXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb3ZlcnJpZGVBY2Nlc3M6IHRydWVcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0IHJlcS5wYXlsb2FkLmRlbGV0ZSh7XG4gICAgICAgICAgY29sbGVjdGlvbjpcbiAgICAgICAgICAgIHBsdWdpbk9wdGlvbnMuYWRtaW5JbnZpdGF0aW9ucz8uc2x1ZyA/PyBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9ucyxcbiAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgdG9rZW46IHtcbiAgICAgICAgICAgICAgZXF1YWxzOiB0b2tlblxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlID0gbmV3IFJlc3BvbnNlKG51bGwsIHtcbiAgICAgICAgICBzdGF0dXM6IDMwNyxcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBMb2NhdGlvbjogcmVkaXJlY3QgPz8gY29uZmlnLnJvdXRlcy5hZG1pblxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiByZXNwb25zZTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiBSZXNwb25zZS5qc29uKFxuICAgICAgICAgIHsgbWVzc2FnZTogXCJFcnJvciB1cGRhdGluZyB1c2VyIHJvbGVcIiB9LFxuICAgICAgICAgIHsgc3RhdHVzOiBodHRwU3RhdHVzLklOVEVSTkFMX1NFUlZFUl9FUlJPUiB9XG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBlbmRwb2ludDtcbn07XG4iXSwibmFtZXMiOlsic3RhdHVzIiwiaHR0cFN0YXR1cyIsInoiLCJhZG1pbkVuZHBvaW50cyIsImJhc2VTbHVncyIsImdldFBheWxvYWRBdXRoIiwic2V0QWRtaW5Sb2xlU2NoZW1hIiwib2JqZWN0IiwidG9rZW4iLCJzdHJpbmciLCJvcHRpb25hbCIsInJlZGlyZWN0IiwiZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQiLCJwbHVnaW5PcHRpb25zIiwidXNlclNsdWciLCJlbmRwb2ludCIsInBhdGgiLCJzZXRBZG1pblJvbGUiLCJtZXRob2QiLCJoYW5kbGVyIiwicmVxIiwiY29uZmlnIiwicGF5bG9hZCIsInNjaGVtYSIsInNhZmVQYXJzZSIsInF1ZXJ5Iiwic3VjY2VzcyIsIlJlc3BvbnNlIiwianNvbiIsIm1lc3NhZ2UiLCJlcnJvciIsIkJBRF9SRVFVRVNUIiwicGF5bG9hZEF1dGgiLCJzZXNzaW9uIiwiYmV0dGVyQXV0aCIsImFwaSIsImdldFNlc3Npb24iLCJoZWFkZXJzIiwiVU5BVVRIT1JJWkVEIiwiZGF0YSIsImludml0ZSIsImZpbmQiLCJjb2xsZWN0aW9uIiwiYWRtaW5JbnZpdGF0aW9ucyIsInNsdWciLCJ3aGVyZSIsImVxdWFscyIsImxpbWl0IiwiZG9jcyIsImxlbmd0aCIsInJvbGUiLCJ1cGRhdGVkVXNlciIsInVwZGF0ZSIsImlkIiwidXNlciIsIm92ZXJyaWRlQWNjZXNzIiwiZGVsZXRlIiwicmVzcG9uc2UiLCJMb2NhdGlvbiIsInJvdXRlcyIsImFkbWluIiwiSU5URVJOQUxfU0VSVkVSX0VSUk9SIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVQyxVQUFVLFFBQVEsY0FBYztBQUVuRCxTQUFTQyxDQUFDLFFBQVEsTUFBTTtBQUN4QixTQUFTQyxjQUFjLEVBQUVDLFNBQVMsUUFBUSx3QkFBaUM7QUFFM0UsU0FBU0MsY0FBYyxRQUFRLDRCQUE0QjtBQUUzRCxNQUFNQyxxQkFBcUJKLEVBQUVLLE1BQU0sQ0FBQztJQUNsQ0MsT0FBT04sRUFBRU8sTUFBTSxHQUFHQyxRQUFRO0lBQzFCQyxVQUFVVCxFQUFFTyxNQUFNLEdBQUdDLFFBQVE7QUFDL0I7QUFFQSxPQUFPLE1BQU1FLDBCQUEwQixDQUNyQ0MsZUFDQUM7SUFFQSxNQUFNQyxXQUFxQjtRQUN6QkMsTUFBTWIsZUFBZWMsWUFBWTtRQUNqQ0MsUUFBUTtRQUNSQyxTQUFTLE9BQU9DO1lBQ2QsTUFBTSxFQUFFQyxNQUFNLEVBQUUsR0FBR0QsSUFBSUUsT0FBTztZQUM5QixNQUFNQyxTQUFTakIsbUJBQW1Ca0IsU0FBUyxDQUFDSixJQUFJSyxLQUFLO1lBQ3JELElBQUksQ0FBQ0YsT0FBT0csT0FBTyxFQUFFO2dCQUNuQixPQUFPQyxTQUFTQyxJQUFJLENBQ2xCO29CQUFFQyxTQUFTTixPQUFPTyxLQUFLLENBQUNELE9BQU87Z0JBQUMsR0FDaEM7b0JBQUU3QixRQUFRQyxXQUFXOEIsV0FBVztnQkFBQztZQUVyQztZQUNBLE1BQU1DLGNBQWMsTUFBTTNCLGVBQWVnQjtZQUN6QyxNQUFNWSxVQUFVLE1BQU1ELFlBQVlFLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDQyxVQUFVLENBQUM7Z0JBQzFEQyxTQUFTakIsSUFBSWlCLE9BQU87WUFDdEI7WUFDQSxJQUFJLENBQUNKLFNBQVM7Z0JBQ1osT0FBT04sU0FBU0MsSUFBSSxDQUNsQjtvQkFBRUMsU0FBUztnQkFBbUIsR0FDOUI7b0JBQUU3QixRQUFRQyxXQUFXcUMsWUFBWTtnQkFBQztZQUV0QztZQUNBLE1BQU0sRUFBRTlCLEtBQUssRUFBRUcsUUFBUSxFQUFFLEdBQUdZLE9BQU9nQixJQUFJO1lBQ3ZDLE1BQU1DLFNBQVMsTUFBTXBCLElBQUlFLE9BQU8sQ0FBQ21CLElBQUksQ0FBQztnQkFDcENDLFlBQ0U3QixjQUFjOEIsZ0JBQWdCLEVBQUVDLFFBQVF4QyxVQUFVdUMsZ0JBQWdCO2dCQUNwRUUsT0FBTztvQkFDTHJDLE9BQU87d0JBQUVzQyxRQUFRdEM7b0JBQU07Z0JBQ3pCO2dCQUNBdUMsT0FBTztZQUNUO1lBQ0EsSUFBSVAsT0FBT1EsSUFBSSxDQUFDQyxNQUFNLEtBQUssR0FBRztnQkFDNUIsT0FBT3RCLFNBQVNDLElBQUksQ0FDbEI7b0JBQUVDLFNBQVM7Z0JBQWdCLEdBQzNCO29CQUFFN0IsUUFBUUMsV0FBV3FDLFlBQVk7Z0JBQUM7WUFFdEM7WUFDQSxNQUFNWSxPQUFPVixPQUFPUSxJQUFJLENBQUMsRUFBRSxDQUFDRSxJQUFJO1lBQ2hDLElBQUk7Z0JBQ0YsTUFBTUMsY0FBYyxNQUFNL0IsSUFBSUUsT0FBTyxDQUFDOEIsTUFBTSxDQUFDO29CQUMzQ1YsWUFBWTVCO29CQUNadUMsSUFBSXBCLFFBQVFxQixJQUFJLENBQUNELEVBQUU7b0JBQ25CZCxNQUFNO3dCQUNKVyxNQUFNOzRCQUFDQTt5QkFBSztvQkFDZDtvQkFDQUssZ0JBQWdCO2dCQUNsQjtnQkFDQSxNQUFNbkMsSUFBSUUsT0FBTyxDQUFDa0MsTUFBTSxDQUFDO29CQUN2QmQsWUFDRTdCLGNBQWM4QixnQkFBZ0IsRUFBRUMsUUFBUXhDLFVBQVV1QyxnQkFBZ0I7b0JBQ3BFRSxPQUFPO3dCQUNMckMsT0FBTzs0QkFDTHNDLFFBQVF0Qzt3QkFDVjtvQkFDRjtnQkFDRjtnQkFDQSxNQUFNaUQsV0FBVyxJQUFJOUIsU0FBUyxNQUFNO29CQUNsQzNCLFFBQVE7b0JBQ1JxQyxTQUFTO3dCQUNQcUIsVUFBVS9DLFlBQVlVLE9BQU9zQyxNQUFNLENBQUNDLEtBQUs7b0JBQzNDO2dCQUNGO2dCQUNBLE9BQU9IO1lBQ1QsRUFBRSxPQUFPM0IsT0FBTztnQkFDZCxPQUFPSCxTQUFTQyxJQUFJLENBQ2xCO29CQUFFQyxTQUFTO2dCQUEyQixHQUN0QztvQkFBRTdCLFFBQVFDLFdBQVc0RCxxQkFBcUI7Z0JBQUM7WUFFL0M7UUFDRjtJQUNGO0lBRUEsT0FBTzlDO0FBQ1QsRUFBRSJ9
@@ -1,7 +0,0 @@
1
- import { CollectionAfterLoginHook } from "payload";
2
- /**
3
- * This hook is used to sync the admin login token with better-auth session token
4
- * It also creates a new session in better-auth
5
- */
6
- export declare function getAfterLoginHook(): CollectionAfterLoginHook;
7
- //# sourceMappingURL=after-login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"after-login.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/after-login.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAMnD;;;GAGG;AACH,wBAAgB,iBAAiB,IA+EhB,wBAAwB,CACxC"}
@@ -1,80 +0,0 @@
1
- import { generateId } from "better-auth";
2
- import { createAuthMiddleware } from "better-auth/api";
3
- import { setSessionCookie } from "better-auth/cookies";
4
- import { parseSetCookie } from "next/dist/compiled/@edge-runtime/cookies";
5
- import { cookies } from "next/headers";
6
- import { baModelKey } from "../../../../constants";
7
- import { getCollectionByModelKey } from "../../../../helpers/get-collection";
8
- import { getIp } from "../../../../helpers/get-ip";
9
- import { prepareSessionData } from "../../../../helpers/prepare-session-data";
10
- import { getPayloadAuth } from "../../../get-payload-auth";
11
- /**
12
- * This hook is used to sync the admin login token with better-auth session token
13
- * It also creates a new session in better-auth
14
- */ export function getAfterLoginHook() {
15
- const hook = async ({ req, user })=>{
16
- const config = req.payload.config;
17
- const payload = await getPayloadAuth(config);
18
- const collections = req.payload.collections;
19
- const userCollection = getCollectionByModelKey(collections, baModelKey.user);
20
- const sessionCollection = getCollectionByModelKey(collections, baModelKey.session);
21
- const cookieStore = await cookies();
22
- const authContext = await payload.betterAuth.$context;
23
- const sessionExpiration = payload.betterAuth.options.session?.expiresIn || 60 * 60 * 24 * 7; // 7 days
24
- // we can't use internal adapter as we can cause a race condition unless we pass req to the payload.create
25
- const session = await payload.create({
26
- collection: sessionCollection.slug,
27
- data: {
28
- ipAddress: getIp(req.headers, payload.betterAuth.options) || "",
29
- userAgent: req.headers?.get("user-agent") || "",
30
- user: user.id,
31
- token: generateId(32),
32
- expiresAt: new Date(Date.now() + sessionExpiration * 1000)
33
- },
34
- req,
35
- depth: 0
36
- });
37
- const betterAuthHandleRequest = createAuthMiddleware(async (ctx)=>{
38
- ctx.context = {
39
- ...authContext,
40
- user: user
41
- };
42
- await ctx.setSignedCookie(ctx.context.authCookies.sessionToken.name, session.token, ctx.context.secret, ctx.context.authCookies.sessionToken.options);
43
- const filteredSessionData = await prepareSessionData({
44
- sessionData: {
45
- session,
46
- user
47
- },
48
- usersCollection: userCollection,
49
- sessionsCollection: sessionCollection
50
- });
51
- if (filteredSessionData) {
52
- await setSessionCookie(ctx, filteredSessionData);
53
- }
54
- if ("responseHeaders" in ctx) {
55
- return ctx.responseHeaders;
56
- }
57
- return null;
58
- });
59
- // Create a modified request object that matches the expected MiddlewareInputContext type
60
- const modifiedReq = {
61
- ...req,
62
- body: undefined // Explicitly set body to undefined to satisfy type constraint
63
- };
64
- const responseHeaders = await betterAuthHandleRequest(modifiedReq);
65
- const responseCookies = responseHeaders?.getSetCookie().map((cookie)=>parseSetCookie(cookie)).filter(Boolean);
66
- if (responseCookies) {
67
- for (const cookieData of responseCookies){
68
- const { name, value, ...options } = cookieData;
69
- cookieStore.set({
70
- ...options,
71
- name,
72
- value: decodeURIComponent(value)
73
- });
74
- }
75
- }
76
- };
77
- return hook;
78
- }
79
-
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL2FmdGVyLWxvZ2luLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdlbmVyYXRlSWQsIFNlc3Npb24gfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB7IGNyZWF0ZUF1dGhNaWRkbGV3YXJlIH0gZnJvbSBcImJldHRlci1hdXRoL2FwaVwiO1xuaW1wb3J0IHsgc2V0U2Vzc2lvbkNvb2tpZSB9IGZyb20gXCJiZXR0ZXItYXV0aC9jb29raWVzXCI7XG5pbXBvcnQge1xuICBwYXJzZVNldENvb2tpZSxcbiAgdHlwZSBSZXNwb25zZUNvb2tpZVxufSBmcm9tIFwibmV4dC9kaXN0L2NvbXBpbGVkL0BlZGdlLXJ1bnRpbWUvY29va2llc1wiO1xuaW1wb3J0IHsgY29va2llcyB9IGZyb20gXCJuZXh0L2hlYWRlcnNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb25BZnRlckxvZ2luSG9vayB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgeyBiYU1vZGVsS2V5IH0gZnJvbSBcIkAvYmV0dGVyLWF1dGgvcGx1Z2luL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXkgfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvblwiO1xuaW1wb3J0IHsgZ2V0SXAgfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtaXBcIjtcbmltcG9ydCB7IHByZXBhcmVTZXNzaW9uRGF0YSB9IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi9oZWxwZXJzL3ByZXBhcmUtc2Vzc2lvbi1kYXRhXCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkQXV0aCB9IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi9saWIvZ2V0LXBheWxvYWQtYXV0aFwiO1xuLyoqXG4gKiBUaGlzIGhvb2sgaXMgdXNlZCB0byBzeW5jIHRoZSBhZG1pbiBsb2dpbiB0b2tlbiB3aXRoIGJldHRlci1hdXRoIHNlc3Npb24gdG9rZW5cbiAqIEl0IGFsc28gY3JlYXRlcyBhIG5ldyBzZXNzaW9uIGluIGJldHRlci1hdXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBZnRlckxvZ2luSG9vaygpIHtcbiAgY29uc3QgaG9vazogQ29sbGVjdGlvbkFmdGVyTG9naW5Ib29rID0gYXN5bmMgKHsgcmVxLCB1c2VyIH0pID0+IHtcbiAgICBjb25zdCBjb25maWcgPSByZXEucGF5bG9hZC5jb25maWc7XG4gICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IGdldFBheWxvYWRBdXRoKGNvbmZpZyk7XG4gICAgY29uc3QgY29sbGVjdGlvbnMgPSByZXEucGF5bG9hZC5jb2xsZWN0aW9ucztcbiAgICBjb25zdCB1c2VyQ29sbGVjdGlvbiA9IGdldENvbGxlY3Rpb25CeU1vZGVsS2V5KFxuICAgICAgY29sbGVjdGlvbnMsXG4gICAgICBiYU1vZGVsS2V5LnVzZXJcbiAgICApO1xuICAgIGNvbnN0IHNlc3Npb25Db2xsZWN0aW9uID0gZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXkoXG4gICAgICBjb2xsZWN0aW9ucyxcbiAgICAgIGJhTW9kZWxLZXkuc2Vzc2lvblxuICAgICk7XG4gICAgY29uc3QgY29va2llU3RvcmUgPSBhd2FpdCBjb29raWVzKCk7XG4gICAgY29uc3QgYXV0aENvbnRleHQgPSBhd2FpdCBwYXlsb2FkLmJldHRlckF1dGguJGNvbnRleHQ7XG4gICAgY29uc3Qgc2Vzc2lvbkV4cGlyYXRpb24gPVxuICAgICAgcGF5bG9hZC5iZXR0ZXJBdXRoLm9wdGlvbnMuc2Vzc2lvbj8uZXhwaXJlc0luIHx8IDYwICogNjAgKiAyNCAqIDc7IC8vIDcgZGF5c1xuICAgIC8vIHdlIGNhbid0IHVzZSBpbnRlcm5hbCBhZGFwdGVyIGFzIHdlIGNhbiBjYXVzZSBhIHJhY2UgY29uZGl0aW9uIHVubGVzcyB3ZSBwYXNzIHJlcSB0byB0aGUgcGF5bG9hZC5jcmVhdGVcbiAgICBjb25zdCBzZXNzaW9uID0gKGF3YWl0IHBheWxvYWQuY3JlYXRlKHtcbiAgICAgIGNvbGxlY3Rpb246IHNlc3Npb25Db2xsZWN0aW9uLnNsdWcsXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGlwQWRkcmVzczogZ2V0SXAocmVxLmhlYWRlcnMsIHBheWxvYWQuYmV0dGVyQXV0aC5vcHRpb25zKSB8fCBcIlwiLFxuICAgICAgICB1c2VyQWdlbnQ6IHJlcS5oZWFkZXJzPy5nZXQoXCJ1c2VyLWFnZW50XCIpIHx8IFwiXCIsXG4gICAgICAgIHVzZXI6IHVzZXIuaWQsXG4gICAgICAgIHRva2VuOiBnZW5lcmF0ZUlkKDMyKSxcbiAgICAgICAgZXhwaXJlc0F0OiBuZXcgRGF0ZShEYXRlLm5vdygpICsgc2Vzc2lvbkV4cGlyYXRpb24gKiAxMDAwKVxuICAgICAgfSxcbiAgICAgIHJlcSxcbiAgICAgIGRlcHRoOiAwXG4gICAgfSkpIGFzIFNlc3Npb247XG5cbiAgICBjb25zdCBiZXR0ZXJBdXRoSGFuZGxlUmVxdWVzdCA9IGNyZWF0ZUF1dGhNaWRkbGV3YXJlKFxuICAgICAgYXN5bmMgKGN0eCk6IFByb21pc2U8SGVhZGVycyB8IG51bGw+ID0+IHtcbiAgICAgICAgY3R4LmNvbnRleHQgPSB7IC4uLmF1dGhDb250ZXh0LCB1c2VyOiB1c2VyIH07XG4gICAgICAgIGF3YWl0IGN0eC5zZXRTaWduZWRDb29raWUoXG4gICAgICAgICAgY3R4LmNvbnRleHQuYXV0aENvb2tpZXMuc2Vzc2lvblRva2VuLm5hbWUsXG4gICAgICAgICAgc2Vzc2lvbi50b2tlbixcbiAgICAgICAgICBjdHguY29udGV4dC5zZWNyZXQsXG4gICAgICAgICAgY3R4LmNvbnRleHQuYXV0aENvb2tpZXMuc2Vzc2lvblRva2VuLm9wdGlvbnNcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZmlsdGVyZWRTZXNzaW9uRGF0YSA9IGF3YWl0IHByZXBhcmVTZXNzaW9uRGF0YSh7XG4gICAgICAgICAgc2Vzc2lvbkRhdGE6IHsgc2Vzc2lvbiwgdXNlciB9LFxuICAgICAgICAgIHVzZXJzQ29sbGVjdGlvbjogdXNlckNvbGxlY3Rpb24sXG4gICAgICAgICAgc2Vzc2lvbnNDb2xsZWN0aW9uOiBzZXNzaW9uQ29sbGVjdGlvblxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKGZpbHRlcmVkU2Vzc2lvbkRhdGEpIHtcbiAgICAgICAgICBhd2FpdCBzZXRTZXNzaW9uQ29va2llKGN0eCwgZmlsdGVyZWRTZXNzaW9uRGF0YSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFwicmVzcG9uc2VIZWFkZXJzXCIgaW4gY3R4KSB7XG4gICAgICAgICAgcmV0dXJuIGN0eC5yZXNwb25zZUhlYWRlcnMgYXMgSGVhZGVycztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gQ3JlYXRlIGEgbW9kaWZpZWQgcmVxdWVzdCBvYmplY3QgdGhhdCBtYXRjaGVzIHRoZSBleHBlY3RlZCBNaWRkbGV3YXJlSW5wdXRDb250ZXh0IHR5cGVcbiAgICBjb25zdCBtb2RpZmllZFJlcSA9IHtcbiAgICAgIC4uLnJlcSxcbiAgICAgIGJvZHk6IHVuZGVmaW5lZCAvLyBFeHBsaWNpdGx5IHNldCBib2R5IHRvIHVuZGVmaW5lZCB0byBzYXRpc2Z5IHR5cGUgY29uc3RyYWludFxuICAgIH07XG5cbiAgICBjb25zdCByZXNwb25zZUhlYWRlcnMgPSBhd2FpdCBiZXR0ZXJBdXRoSGFuZGxlUmVxdWVzdChtb2RpZmllZFJlcSk7XG4gICAgY29uc3QgcmVzcG9uc2VDb29raWVzID0gcmVzcG9uc2VIZWFkZXJzXG4gICAgICA/LmdldFNldENvb2tpZSgpXG4gICAgICAubWFwKChjb29raWUpID0+IHBhcnNlU2V0Q29va2llKGNvb2tpZSkpXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFJlc3BvbnNlQ29va2llW107XG5cbiAgICBpZiAocmVzcG9uc2VDb29raWVzKSB7XG4gICAgICBmb3IgKGNvbnN0IGNvb2tpZURhdGEgb2YgcmVzcG9uc2VDb29raWVzKSB7XG4gICAgICAgIGNvbnN0IHsgbmFtZSwgdmFsdWUsIC4uLm9wdGlvbnMgfSA9IGNvb2tpZURhdGE7XG4gICAgICAgIGNvb2tpZVN0b3JlLnNldCh7XG4gICAgICAgICAgLi4ub3B0aW9ucyxcbiAgICAgICAgICBuYW1lLFxuICAgICAgICAgIHZhbHVlOiBkZWNvZGVVUklDb21wb25lbnQodmFsdWUpXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZXR1cm4gaG9vayBhcyBDb2xsZWN0aW9uQWZ0ZXJMb2dpbkhvb2s7XG59XG4iXSwibmFtZXMiOlsiZ2VuZXJhdGVJZCIsImNyZWF0ZUF1dGhNaWRkbGV3YXJlIiwic2V0U2Vzc2lvbkNvb2tpZSIsInBhcnNlU2V0Q29va2llIiwiY29va2llcyIsImJhTW9kZWxLZXkiLCJnZXRDb2xsZWN0aW9uQnlNb2RlbEtleSIsImdldElwIiwicHJlcGFyZVNlc3Npb25EYXRhIiwiZ2V0UGF5bG9hZEF1dGgiLCJnZXRBZnRlckxvZ2luSG9vayIsImhvb2siLCJyZXEiLCJ1c2VyIiwiY29uZmlnIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwidXNlckNvbGxlY3Rpb24iLCJzZXNzaW9uQ29sbGVjdGlvbiIsInNlc3Npb24iLCJjb29raWVTdG9yZSIsImF1dGhDb250ZXh0IiwiYmV0dGVyQXV0aCIsIiRjb250ZXh0Iiwic2Vzc2lvbkV4cGlyYXRpb24iLCJvcHRpb25zIiwiZXhwaXJlc0luIiwiY3JlYXRlIiwiY29sbGVjdGlvbiIsInNsdWciLCJkYXRhIiwiaXBBZGRyZXNzIiwiaGVhZGVycyIsInVzZXJBZ2VudCIsImdldCIsImlkIiwidG9rZW4iLCJleHBpcmVzQXQiLCJEYXRlIiwibm93IiwiZGVwdGgiLCJiZXR0ZXJBdXRoSGFuZGxlUmVxdWVzdCIsImN0eCIsImNvbnRleHQiLCJzZXRTaWduZWRDb29raWUiLCJhdXRoQ29va2llcyIsInNlc3Npb25Ub2tlbiIsIm5hbWUiLCJzZWNyZXQiLCJmaWx0ZXJlZFNlc3Npb25EYXRhIiwic2Vzc2lvbkRhdGEiLCJ1c2Vyc0NvbGxlY3Rpb24iLCJzZXNzaW9uc0NvbGxlY3Rpb24iLCJyZXNwb25zZUhlYWRlcnMiLCJtb2RpZmllZFJlcSIsImJvZHkiLCJ1bmRlZmluZWQiLCJyZXNwb25zZUNvb2tpZXMiLCJnZXRTZXRDb29raWUiLCJtYXAiLCJjb29raWUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiY29va2llRGF0YSIsInZhbHVlIiwic2V0IiwiZGVjb2RlVVJJQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxVQUFVLFFBQWlCLGNBQWM7QUFDbEQsU0FBU0Msb0JBQW9CLFFBQVEsa0JBQWtCO0FBQ3ZELFNBQVNDLGdCQUFnQixRQUFRLHNCQUFzQjtBQUN2RCxTQUNFQyxjQUFjLFFBRVQsMkNBQTJDO0FBQ2xELFNBQVNDLE9BQU8sUUFBUSxlQUFlO0FBRXZDLFNBQVNDLFVBQVUsUUFBUSx3QkFBaUM7QUFDNUQsU0FBU0MsdUJBQXVCLFFBQVEscUNBQThDO0FBQ3RGLFNBQVNDLEtBQUssUUFBUSw2QkFBc0M7QUFDNUQsU0FBU0Msa0JBQWtCLFFBQVEsMkNBQW9EO0FBQ3ZGLFNBQVNDLGNBQWMsUUFBUSw0QkFBNEM7QUFDM0U7OztDQUdDLEdBQ0QsT0FBTyxTQUFTQztJQUNkLE1BQU1DLE9BQWlDLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUU7UUFDekQsTUFBTUMsU0FBU0YsSUFBSUcsT0FBTyxDQUFDRCxNQUFNO1FBQ2pDLE1BQU1DLFVBQVUsTUFBTU4sZUFBZUs7UUFDckMsTUFBTUUsY0FBY0osSUFBSUcsT0FBTyxDQUFDQyxXQUFXO1FBQzNDLE1BQU1DLGlCQUFpQlgsd0JBQ3JCVSxhQUNBWCxXQUFXUSxJQUFJO1FBRWpCLE1BQU1LLG9CQUFvQlosd0JBQ3hCVSxhQUNBWCxXQUFXYyxPQUFPO1FBRXBCLE1BQU1DLGNBQWMsTUFBTWhCO1FBQzFCLE1BQU1pQixjQUFjLE1BQU1OLFFBQVFPLFVBQVUsQ0FBQ0MsUUFBUTtRQUNyRCxNQUFNQyxvQkFDSlQsUUFBUU8sVUFBVSxDQUFDRyxPQUFPLENBQUNOLE9BQU8sRUFBRU8sYUFBYSxLQUFLLEtBQUssS0FBSyxHQUFHLFNBQVM7UUFDOUUsMEdBQTBHO1FBQzFHLE1BQU1QLFVBQVcsTUFBTUosUUFBUVksTUFBTSxDQUFDO1lBQ3BDQyxZQUFZVixrQkFBa0JXLElBQUk7WUFDbENDLE1BQU07Z0JBQ0pDLFdBQVd4QixNQUFNSyxJQUFJb0IsT0FBTyxFQUFFakIsUUFBUU8sVUFBVSxDQUFDRyxPQUFPLEtBQUs7Z0JBQzdEUSxXQUFXckIsSUFBSW9CLE9BQU8sRUFBRUUsSUFBSSxpQkFBaUI7Z0JBQzdDckIsTUFBTUEsS0FBS3NCLEVBQUU7Z0JBQ2JDLE9BQU9wQyxXQUFXO2dCQUNsQnFDLFdBQVcsSUFBSUMsS0FBS0EsS0FBS0MsR0FBRyxLQUFLZixvQkFBb0I7WUFDdkQ7WUFDQVo7WUFDQTRCLE9BQU87UUFDVDtRQUVBLE1BQU1DLDBCQUEwQnhDLHFCQUM5QixPQUFPeUM7WUFDTEEsSUFBSUMsT0FBTyxHQUFHO2dCQUFFLEdBQUd0QixXQUFXO2dCQUFFUixNQUFNQTtZQUFLO1lBQzNDLE1BQU02QixJQUFJRSxlQUFlLENBQ3ZCRixJQUFJQyxPQUFPLENBQUNFLFdBQVcsQ0FBQ0MsWUFBWSxDQUFDQyxJQUFJLEVBQ3pDNUIsUUFBUWlCLEtBQUssRUFDYk0sSUFBSUMsT0FBTyxDQUFDSyxNQUFNLEVBQ2xCTixJQUFJQyxPQUFPLENBQUNFLFdBQVcsQ0FBQ0MsWUFBWSxDQUFDckIsT0FBTztZQUU5QyxNQUFNd0Isc0JBQXNCLE1BQU16QyxtQkFBbUI7Z0JBQ25EMEMsYUFBYTtvQkFBRS9CO29CQUFTTjtnQkFBSztnQkFDN0JzQyxpQkFBaUJsQztnQkFDakJtQyxvQkFBb0JsQztZQUN0QjtZQUNBLElBQUkrQixxQkFBcUI7Z0JBQ3ZCLE1BQU0vQyxpQkFBaUJ3QyxLQUFLTztZQUM5QjtZQUNBLElBQUkscUJBQXFCUCxLQUFLO2dCQUM1QixPQUFPQSxJQUFJVyxlQUFlO1lBQzVCO1lBQ0EsT0FBTztRQUNUO1FBR0YseUZBQXlGO1FBQ3pGLE1BQU1DLGNBQWM7WUFDbEIsR0FBRzFDLEdBQUc7WUFDTjJDLE1BQU1DLFVBQVUsOERBQThEO1FBQ2hGO1FBRUEsTUFBTUgsa0JBQWtCLE1BQU1aLHdCQUF3QmE7UUFDdEQsTUFBTUcsa0JBQWtCSixpQkFDcEJLLGVBQ0RDLElBQUksQ0FBQ0MsU0FBV3pELGVBQWV5RCxTQUMvQkMsT0FBT0M7UUFFVixJQUFJTCxpQkFBaUI7WUFDbkIsS0FBSyxNQUFNTSxjQUFjTixnQkFBaUI7Z0JBQ3hDLE1BQU0sRUFBRVYsSUFBSSxFQUFFaUIsS0FBSyxFQUFFLEdBQUd2QyxTQUFTLEdBQUdzQztnQkFDcEMzQyxZQUFZNkMsR0FBRyxDQUFDO29CQUNkLEdBQUd4QyxPQUFPO29CQUNWc0I7b0JBQ0FpQixPQUFPRSxtQkFBbUJGO2dCQUM1QjtZQUNGO1FBQ0Y7SUFDRjtJQUVBLE9BQU9yRDtBQUNUIn0=
@@ -1,7 +0,0 @@
1
- import { CollectionBeforeLoginHook } from "payload";
2
- import type { BetterAuthOptions } from "@/better-auth/plugin/types";
3
- /**
4
- * This hook blocks login attempts if email verification is required and the user's email is not verified
5
- */
6
- export declare function getBeforeLoginHook(betterAuthOptions: BetterAuthOptions): CollectionBeforeLoginHook;
7
- //# sourceMappingURL=before-login.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"before-login.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/before-login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AACpE;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,iBAAiB,EAAE,iBAAiB,6BAgBtE"}
@@ -1,15 +0,0 @@
1
- import { APIError } from "payload";
2
- /**
3
- * This hook blocks login attempts if email verification is required and the user's email is not verified
4
- */ export function getBeforeLoginHook(betterAuthOptions) {
5
- const hook = async ({ user })=>{
6
- const requireEmailVerification = betterAuthOptions.emailAndPassword?.requireEmailVerification ?? false;
7
- if (requireEmailVerification && !user.emailVerified) {
8
- throw new APIError("Email verification required. Please verify your email before logging in.", 403);
9
- }
10
- return user;
11
- };
12
- return hook;
13
- }
14
-
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL2JlZm9yZS1sb2dpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElFcnJvciwgQ29sbGVjdGlvbkJlZm9yZUxvZ2luSG9vayB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgdHlwZSB7IEJldHRlckF1dGhPcHRpb25zIH0gZnJvbSBcIkAvYmV0dGVyLWF1dGgvcGx1Z2luL3R5cGVzXCI7XG4vKipcbiAqIFRoaXMgaG9vayBibG9ja3MgbG9naW4gYXR0ZW1wdHMgaWYgZW1haWwgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkIGFuZCB0aGUgdXNlcidzIGVtYWlsIGlzIG5vdCB2ZXJpZmllZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0QmVmb3JlTG9naW5Ib29rKGJldHRlckF1dGhPcHRpb25zOiBCZXR0ZXJBdXRoT3B0aW9ucykge1xuICBjb25zdCBob29rOiBDb2xsZWN0aW9uQmVmb3JlTG9naW5Ib29rID0gYXN5bmMgKHsgdXNlciB9KSA9PiB7XG4gICAgY29uc3QgcmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uID1cbiAgICAgIGJldHRlckF1dGhPcHRpb25zLmVtYWlsQW5kUGFzc3dvcmQ/LnJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbiA/PyBmYWxzZTtcblxuICAgIGlmIChyZXF1aXJlRW1haWxWZXJpZmljYXRpb24gJiYgIXVzZXIuZW1haWxWZXJpZmllZCkge1xuICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKFxuICAgICAgICBcIkVtYWlsIHZlcmlmaWNhdGlvbiByZXF1aXJlZC4gUGxlYXNlIHZlcmlmeSB5b3VyIGVtYWlsIGJlZm9yZSBsb2dnaW5nIGluLlwiLFxuICAgICAgICA0MDNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXI7XG4gIH07XG5cbiAgcmV0dXJuIGhvb2s7XG59XG4iXSwibmFtZXMiOlsiQVBJRXJyb3IiLCJnZXRCZWZvcmVMb2dpbkhvb2siLCJiZXR0ZXJBdXRoT3B0aW9ucyIsImhvb2siLCJ1c2VyIiwicmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uIiwiZW1haWxBbmRQYXNzd29yZCIsImVtYWlsVmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLFFBQVEsUUFBbUMsVUFBVTtBQUU5RDs7Q0FFQyxHQUNELE9BQU8sU0FBU0MsbUJBQW1CQyxpQkFBb0M7SUFDckUsTUFBTUMsT0FBa0MsT0FBTyxFQUFFQyxJQUFJLEVBQUU7UUFDckQsTUFBTUMsMkJBQ0pILGtCQUFrQkksZ0JBQWdCLEVBQUVELDRCQUE0QjtRQUVsRSxJQUFJQSw0QkFBNEIsQ0FBQ0QsS0FBS0csYUFBYSxFQUFFO1lBQ25ELE1BQU0sSUFBSVAsU0FDUiw0RUFDQTtRQUVKO1FBRUEsT0FBT0k7SUFDVDtJQUVBLE9BQU9EO0FBQ1QifQ==
@@ -1,3 +0,0 @@
1
- import { CollectionBeforeChangeHook } from "payload";
2
- export declare function getOnVerifiedChangeHook(): CollectionBeforeChangeHook;
3
- //# sourceMappingURL=on-verified-change.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"on-verified-change.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAErD,wBAAgB,uBAAuB,+BAmBtC"}
@@ -1,17 +0,0 @@
1
- export function getOnVerifiedChangeHook() {
2
- const hook = async ({ data, originalDoc })=>{
3
- const isVerifiedChangingToTrue = Boolean(data._verified) && !Boolean(originalDoc?._verified);
4
- const isEmailVerifiedChangingToTrue = Boolean(data.emailVerified) && !Boolean(originalDoc?.emailVerified);
5
- if (!isVerifiedChangingToTrue && !isEmailVerifiedChangingToTrue) {
6
- return data;
7
- }
8
- return {
9
- ...data,
10
- _verified: true,
11
- emailVerified: true
12
- };
13
- };
14
- return hook;
15
- }
16
-
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL29uLXZlcmlmaWVkLWNoYW5nZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uQmVmb3JlQ2hhbmdlSG9vayB9IGZyb20gXCJwYXlsb2FkXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPblZlcmlmaWVkQ2hhbmdlSG9vaygpIHtcbiAgY29uc3QgaG9vazogQ29sbGVjdGlvbkJlZm9yZUNoYW5nZUhvb2sgPSBhc3luYyAoeyBkYXRhLCBvcmlnaW5hbERvYyB9KSA9PiB7XG4gICAgY29uc3QgaXNWZXJpZmllZENoYW5naW5nVG9UcnVlID1cbiAgICAgIEJvb2xlYW4oZGF0YS5fdmVyaWZpZWQpICYmICFCb29sZWFuKG9yaWdpbmFsRG9jPy5fdmVyaWZpZWQpO1xuICAgIGNvbnN0IGlzRW1haWxWZXJpZmllZENoYW5naW5nVG9UcnVlID1cbiAgICAgIEJvb2xlYW4oZGF0YS5lbWFpbFZlcmlmaWVkKSAmJiAhQm9vbGVhbihvcmlnaW5hbERvYz8uZW1haWxWZXJpZmllZCk7XG5cbiAgICBpZiAoIWlzVmVyaWZpZWRDaGFuZ2luZ1RvVHJ1ZSAmJiAhaXNFbWFpbFZlcmlmaWVkQ2hhbmdpbmdUb1RydWUpIHtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5kYXRhLFxuICAgICAgX3ZlcmlmaWVkOiB0cnVlLFxuICAgICAgZW1haWxWZXJpZmllZDogdHJ1ZVxuICAgIH07XG4gIH07XG5cbiAgcmV0dXJuIGhvb2s7XG59XG4iXSwibmFtZXMiOlsiZ2V0T25WZXJpZmllZENoYW5nZUhvb2siLCJob29rIiwiZGF0YSIsIm9yaWdpbmFsRG9jIiwiaXNWZXJpZmllZENoYW5naW5nVG9UcnVlIiwiQm9vbGVhbiIsIl92ZXJpZmllZCIsImlzRW1haWxWZXJpZmllZENoYW5naW5nVG9UcnVlIiwiZW1haWxWZXJpZmllZCJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxTQUFTQTtJQUNkLE1BQU1DLE9BQW1DLE9BQU8sRUFBRUMsSUFBSSxFQUFFQyxXQUFXLEVBQUU7UUFDbkUsTUFBTUMsMkJBQ0pDLFFBQVFILEtBQUtJLFNBQVMsS0FBSyxDQUFDRCxRQUFRRixhQUFhRztRQUNuRCxNQUFNQyxnQ0FDSkYsUUFBUUgsS0FBS00sYUFBYSxLQUFLLENBQUNILFFBQVFGLGFBQWFLO1FBRXZELElBQUksQ0FBQ0osNEJBQTRCLENBQUNHLCtCQUErQjtZQUMvRCxPQUFPTDtRQUNUO1FBRUEsT0FBTztZQUNMLEdBQUdBLElBQUk7WUFDUEksV0FBVztZQUNYRSxlQUFlO1FBQ2pCO0lBQ0Y7SUFFQSxPQUFPUDtBQUNUIn0=
@@ -1,3 +0,0 @@
1
- import type { CollectionAfterChangeHook } from "payload";
2
- export declare function getSyncAccountHook(): CollectionAfterChangeHook;
3
- //# sourceMappingURL=sync-account.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync-account.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/sync-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAQzD,wBAAgB,kBAAkB,IAAI,yBAAyB,CA4G9D"}
@@ -1,90 +0,0 @@
1
- import { BETTER_AUTH_CONTEXT_KEY } from "../../../../../adapter";
2
- import { baModelKey } from "../../../../constants";
3
- import { getCollectionByModelKey, getCollectionFieldNameByFieldKey } from "../../../../helpers/get-collection";
4
- export function getSyncAccountHook() {
5
- const hook = async ({ doc, req, operation, context })=>{
6
- if (context?.syncPasswordToUser) return doc;
7
- if (operation !== "create" && operation !== "update") return doc;
8
- const collections = req.payload.collections;
9
- const userCollection = getCollectionByModelKey(collections, baModelKey.user);
10
- const accountCollection = getCollectionByModelKey(collections, baModelKey.account);
11
- const userIdFieldName = getCollectionFieldNameByFieldKey(accountCollection, baModelKey.account, "userId");
12
- const accountIdFieldName = getCollectionFieldNameByFieldKey(accountCollection, baModelKey.account, "accountId");
13
- const providerIdFieldName = getCollectionFieldNameByFieldKey(accountCollection, baModelKey.account, "providerId");
14
- const passwordFieldName = getCollectionFieldNameByFieldKey(accountCollection, baModelKey.account, "password");
15
- const user = await req.payload.findByID({
16
- collection: userCollection.slug,
17
- id: doc.id,
18
- depth: 0,
19
- req,
20
- showHiddenFields: true
21
- });
22
- if (!user || !user.hash || !user.salt) return doc;
23
- const passwordValue = `${user.salt}:${user.hash}`;
24
- if (operation === "create" && !(BETTER_AUTH_CONTEXT_KEY in context)) {
25
- try {
26
- await req.payload.create({
27
- collection: accountCollection.slug,
28
- data: {
29
- [userIdFieldName]: doc.id,
30
- [accountIdFieldName]: doc.id.toString(),
31
- [providerIdFieldName]: "credential",
32
- [passwordFieldName]: passwordValue
33
- },
34
- context: {
35
- syncAccountHook: true
36
- },
37
- req
38
- });
39
- } catch (error) {
40
- console.error("Failed to create account for user:", error);
41
- }
42
- }
43
- if (operation === "update") {
44
- try {
45
- const accounts = await req.payload.find({
46
- collection: accountCollection.slug,
47
- where: {
48
- and: [
49
- {
50
- [userIdFieldName]: {
51
- equals: doc.id
52
- }
53
- },
54
- {
55
- [providerIdFieldName]: {
56
- equals: "credential"
57
- }
58
- }
59
- ]
60
- },
61
- req,
62
- depth: 0,
63
- context: {
64
- syncAccountHook: true
65
- }
66
- });
67
- const account = accounts.docs.at(0);
68
- if (account) {
69
- await req.payload.update({
70
- collection: accountCollection.slug,
71
- id: account.id,
72
- data: {
73
- [passwordFieldName]: passwordValue
74
- },
75
- req,
76
- context: {
77
- syncAccountHook: true
78
- }
79
- });
80
- }
81
- } catch (error) {
82
- console.error("Failed to sync hash/salt to account:", error);
83
- }
84
- }
85
- return doc;
86
- };
87
- return hook;
88
- }
89
-
90
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL3N5bmMtYWNjb3VudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHsgQkVUVEVSX0FVVEhfQ09OVEVYVF9LRVkgfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9hZGFwdGVyXCI7XG5pbXBvcnQgeyBiYU1vZGVsS2V5IH0gZnJvbSBcIkAvYmV0dGVyLWF1dGgvcGx1Z2luL2NvbnN0YW50c1wiO1xuaW1wb3J0IHtcbiAgZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXksXG4gIGdldENvbGxlY3Rpb25GaWVsZE5hbWVCeUZpZWxkS2V5XG59IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi9oZWxwZXJzL2dldC1jb2xsZWN0aW9uXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRTeW5jQWNjb3VudEhvb2soKTogQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9vayB7XG4gIGNvbnN0IGhvb2s6IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgPSBhc3luYyAoe1xuICAgIGRvYyxcbiAgICByZXEsXG4gICAgb3BlcmF0aW9uLFxuICAgIGNvbnRleHRcbiAgfSkgPT4ge1xuICAgIGlmIChjb250ZXh0Py5zeW5jUGFzc3dvcmRUb1VzZXIpIHJldHVybiBkb2M7XG5cbiAgICBpZiAob3BlcmF0aW9uICE9PSBcImNyZWF0ZVwiICYmIG9wZXJhdGlvbiAhPT0gXCJ1cGRhdGVcIikgcmV0dXJuIGRvYztcblxuICAgIGNvbnN0IGNvbGxlY3Rpb25zID0gcmVxLnBheWxvYWQuY29sbGVjdGlvbnM7XG4gICAgY29uc3QgdXNlckNvbGxlY3Rpb24gPSBnZXRDb2xsZWN0aW9uQnlNb2RlbEtleShcbiAgICAgIGNvbGxlY3Rpb25zLFxuICAgICAgYmFNb2RlbEtleS51c2VyXG4gICAgKTtcbiAgICBjb25zdCBhY2NvdW50Q29sbGVjdGlvbiA9IGdldENvbGxlY3Rpb25CeU1vZGVsS2V5KFxuICAgICAgY29sbGVjdGlvbnMsXG4gICAgICBiYU1vZGVsS2V5LmFjY291bnRcbiAgICApO1xuXG4gICAgY29uc3QgdXNlcklkRmllbGROYW1lID0gZ2V0Q29sbGVjdGlvbkZpZWxkTmFtZUJ5RmllbGRLZXkoXG4gICAgICBhY2NvdW50Q29sbGVjdGlvbixcbiAgICAgIGJhTW9kZWxLZXkuYWNjb3VudCxcbiAgICAgIFwidXNlcklkXCJcbiAgICApO1xuICAgIGNvbnN0IGFjY291bnRJZEZpZWxkTmFtZSA9IGdldENvbGxlY3Rpb25GaWVsZE5hbWVCeUZpZWxkS2V5KFxuICAgICAgYWNjb3VudENvbGxlY3Rpb24sXG4gICAgICBiYU1vZGVsS2V5LmFjY291bnQsXG4gICAgICBcImFjY291bnRJZFwiXG4gICAgKTtcbiAgICBjb25zdCBwcm92aWRlcklkRmllbGROYW1lID0gZ2V0Q29sbGVjdGlvbkZpZWxkTmFtZUJ5RmllbGRLZXkoXG4gICAgICBhY2NvdW50Q29sbGVjdGlvbixcbiAgICAgIGJhTW9kZWxLZXkuYWNjb3VudCxcbiAgICAgIFwicHJvdmlkZXJJZFwiXG4gICAgKTtcbiAgICBjb25zdCBwYXNzd29yZEZpZWxkTmFtZSA9IGdldENvbGxlY3Rpb25GaWVsZE5hbWVCeUZpZWxkS2V5KFxuICAgICAgYWNjb3VudENvbGxlY3Rpb24sXG4gICAgICBiYU1vZGVsS2V5LmFjY291bnQsXG4gICAgICBcInBhc3N3b3JkXCJcbiAgICApO1xuXG4gICAgY29uc3QgdXNlciA9IGF3YWl0IHJlcS5wYXlsb2FkLmZpbmRCeUlEKHtcbiAgICAgIGNvbGxlY3Rpb246IHVzZXJDb2xsZWN0aW9uLnNsdWcsXG4gICAgICBpZDogZG9jLmlkLFxuICAgICAgZGVwdGg6IDAsXG4gICAgICByZXEsXG4gICAgICBzaG93SGlkZGVuRmllbGRzOiB0cnVlXG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXIgfHwgIXVzZXIuaGFzaCB8fCAhdXNlci5zYWx0KSByZXR1cm4gZG9jO1xuXG4gICAgY29uc3QgcGFzc3dvcmRWYWx1ZSA9IGAke3VzZXIuc2FsdH06JHt1c2VyLmhhc2h9YDtcblxuICAgIGlmIChvcGVyYXRpb24gPT09IFwiY3JlYXRlXCIgJiYgIShCRVRURVJfQVVUSF9DT05URVhUX0tFWSBpbiBjb250ZXh0KSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgcmVxLnBheWxvYWQuY3JlYXRlKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBhY2NvdW50Q29sbGVjdGlvbi5zbHVnLFxuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIFt1c2VySWRGaWVsZE5hbWVdOiBkb2MuaWQsXG4gICAgICAgICAgICBbYWNjb3VudElkRmllbGROYW1lXTogZG9jLmlkLnRvU3RyaW5nKCksXG4gICAgICAgICAgICBbcHJvdmlkZXJJZEZpZWxkTmFtZV06IFwiY3JlZGVudGlhbFwiLFxuICAgICAgICAgICAgW3Bhc3N3b3JkRmllbGROYW1lXTogcGFzc3dvcmRWYWx1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgY29udGV4dDogeyBzeW5jQWNjb3VudEhvb2s6IHRydWUgfSxcbiAgICAgICAgICByZXFcbiAgICAgICAgfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIGNyZWF0ZSBhY2NvdW50IGZvciB1c2VyOlwiLCBlcnJvcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9wZXJhdGlvbiA9PT0gXCJ1cGRhdGVcIikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgYWNjb3VudHMgPSBhd2FpdCByZXEucGF5bG9hZC5maW5kKHtcbiAgICAgICAgICBjb2xsZWN0aW9uOiBhY2NvdW50Q29sbGVjdGlvbi5zbHVnLFxuICAgICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgICBhbmQ6IFtcbiAgICAgICAgICAgICAgeyBbdXNlcklkRmllbGROYW1lXTogeyBlcXVhbHM6IGRvYy5pZCB9IH0sXG4gICAgICAgICAgICAgIHsgW3Byb3ZpZGVySWRGaWVsZE5hbWVdOiB7IGVxdWFsczogXCJjcmVkZW50aWFsXCIgfSB9XG4gICAgICAgICAgICBdXG4gICAgICAgICAgfSxcbiAgICAgICAgICByZXEsXG4gICAgICAgICAgZGVwdGg6IDAsXG4gICAgICAgICAgY29udGV4dDogeyBzeW5jQWNjb3VudEhvb2s6IHRydWUgfVxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhY2NvdW50ID0gYWNjb3VudHMuZG9jcy5hdCgwKTtcbiAgICAgICAgaWYgKGFjY291bnQpIHtcbiAgICAgICAgICBhd2FpdCByZXEucGF5bG9hZC51cGRhdGUoe1xuICAgICAgICAgICAgY29sbGVjdGlvbjogYWNjb3VudENvbGxlY3Rpb24uc2x1ZyxcbiAgICAgICAgICAgIGlkOiBhY2NvdW50LmlkLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBbcGFzc3dvcmRGaWVsZE5hbWVdOiBwYXNzd29yZFZhbHVlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgY29udGV4dDogeyBzeW5jQWNjb3VudEhvb2s6IHRydWUgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHN5bmMgaGFzaC9zYWx0IHRvIGFjY291bnQ6XCIsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZG9jO1xuICB9O1xuXG4gIHJldHVybiBob29rIGFzIENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2s7XG59XG4iXSwibmFtZXMiOlsiQkVUVEVSX0FVVEhfQ09OVEVYVF9LRVkiLCJiYU1vZGVsS2V5IiwiZ2V0Q29sbGVjdGlvbkJ5TW9kZWxLZXkiLCJnZXRDb2xsZWN0aW9uRmllbGROYW1lQnlGaWVsZEtleSIsImdldFN5bmNBY2NvdW50SG9vayIsImhvb2siLCJkb2MiLCJyZXEiLCJvcGVyYXRpb24iLCJjb250ZXh0Iiwic3luY1Bhc3N3b3JkVG9Vc2VyIiwiY29sbGVjdGlvbnMiLCJwYXlsb2FkIiwidXNlckNvbGxlY3Rpb24iLCJ1c2VyIiwiYWNjb3VudENvbGxlY3Rpb24iLCJhY2NvdW50IiwidXNlcklkRmllbGROYW1lIiwiYWNjb3VudElkRmllbGROYW1lIiwicHJvdmlkZXJJZEZpZWxkTmFtZSIsInBhc3N3b3JkRmllbGROYW1lIiwiZmluZEJ5SUQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImlkIiwiZGVwdGgiLCJzaG93SGlkZGVuRmllbGRzIiwiaGFzaCIsInNhbHQiLCJwYXNzd29yZFZhbHVlIiwiY3JlYXRlIiwiZGF0YSIsInRvU3RyaW5nIiwic3luY0FjY291bnRIb29rIiwiZXJyb3IiLCJjb25zb2xlIiwiYWNjb3VudHMiLCJmaW5kIiwid2hlcmUiLCJhbmQiLCJlcXVhbHMiLCJkb2NzIiwiYXQiLCJ1cGRhdGUiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLHVCQUF1QixRQUFRLHlCQUF3QjtBQUNoRSxTQUFTQyxVQUFVLFFBQVEsd0JBQWlDO0FBQzVELFNBQ0VDLHVCQUF1QixFQUN2QkMsZ0NBQWdDLFFBQzNCLHFDQUE4QztBQUVyRCxPQUFPLFNBQVNDO0lBQ2QsTUFBTUMsT0FBa0MsT0FBTyxFQUM3Q0MsR0FBRyxFQUNIQyxHQUFHLEVBQ0hDLFNBQVMsRUFDVEMsT0FBTyxFQUNSO1FBQ0MsSUFBSUEsU0FBU0Msb0JBQW9CLE9BQU9KO1FBRXhDLElBQUlFLGNBQWMsWUFBWUEsY0FBYyxVQUFVLE9BQU9GO1FBRTdELE1BQU1LLGNBQWNKLElBQUlLLE9BQU8sQ0FBQ0QsV0FBVztRQUMzQyxNQUFNRSxpQkFBaUJYLHdCQUNyQlMsYUFDQVYsV0FBV2EsSUFBSTtRQUVqQixNQUFNQyxvQkFBb0JiLHdCQUN4QlMsYUFDQVYsV0FBV2UsT0FBTztRQUdwQixNQUFNQyxrQkFB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
@@ -1,8 +0,0 @@
1
- import type { SanitizedBetterAuthOptions } from "@/better-auth/plugin/types";
2
- /**
3
- * Adds a before hook to the user create operation to ensure the password is set.
4
- * This is necessary because the password is not set in the user create operation
5
- * and is instead set in the sync password accounts hook.
6
- */
7
- export declare function ensurePasswordSetBeforeUserCreate(options: SanitizedBetterAuthOptions): void;
8
- //# sourceMappingURL=ensure-password-set-before-create.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-password-set-before-create.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAE7E;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,OAAO,EAAE,0BAA0B,QAwBpC"}
@@ -1,23 +0,0 @@
1
- /**
2
- * Adds a before hook to the user create operation to ensure the password is set.
3
- * This is necessary because the password is not set in the user create operation
4
- * and is instead set in the sync password accounts hook.
5
- */ export function ensurePasswordSetBeforeUserCreate(options) {
6
- if (typeof options.databaseHooks !== "object") options.databaseHooks = {};
7
- if (typeof options.databaseHooks.user !== "object") options.databaseHooks.user = {};
8
- if (typeof options.databaseHooks.user.create !== "object") options.databaseHooks.user.create = {};
9
- const initialBeforeUserCreateHook = options.databaseHooks.user.create.before ?? null;
10
- options.databaseHooks.user.create.before = async (user, ctx)=>{
11
- if (!user.password) {
12
- user.password = ctx?.body?.password ?? Array(3).fill(0).map(()=>Math.random().toString(36).slice(2)).join("");
13
- }
14
- if (typeof initialBeforeUserCreateHook === "function") {
15
- return initialBeforeUserCreateHook(user, ctx);
16
- }
17
- return {
18
- data: user
19
- };
20
- };
21
- }
22
-
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvdXRpbHMvZW5zdXJlLXBhc3N3b3JkLXNldC1iZWZvcmUtY3JlYXRlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiQC9iZXR0ZXItYXV0aC9wbHVnaW4vdHlwZXNcIjtcblxuLyoqXG4gKiBBZGRzIGEgYmVmb3JlIGhvb2sgdG8gdGhlIHVzZXIgY3JlYXRlIG9wZXJhdGlvbiB0byBlbnN1cmUgdGhlIHBhc3N3b3JkIGlzIHNldC5cbiAqIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIHBhc3N3b3JkIGlzIG5vdCBzZXQgaW4gdGhlIHVzZXIgY3JlYXRlIG9wZXJhdGlvblxuICogYW5kIGlzIGluc3RlYWQgc2V0IGluIHRoZSBzeW5jIHBhc3N3b3JkIGFjY291bnRzIGhvb2suXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVQYXNzd29yZFNldEJlZm9yZVVzZXJDcmVhdGUoXG4gIG9wdGlvbnM6IFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zXG4pIHtcbiAgaWYgKHR5cGVvZiBvcHRpb25zLmRhdGFiYXNlSG9va3MgIT09IFwib2JqZWN0XCIpIG9wdGlvbnMuZGF0YWJhc2VIb29rcyA9IHt9O1xuICBpZiAodHlwZW9mIG9wdGlvbnMuZGF0YWJhc2VIb29rcy51c2VyICE9PSBcIm9iamVjdFwiKVxuICAgIG9wdGlvbnMuZGF0YWJhc2VIb29rcy51c2VyID0ge307XG4gIGlmICh0eXBlb2Ygb3B0aW9ucy5kYXRhYmFzZUhvb2tzLnVzZXIuY3JlYXRlICE9PSBcIm9iamVjdFwiKVxuICAgIG9wdGlvbnMuZGF0YWJhc2VIb29rcy51c2VyLmNyZWF0ZSA9IHt9O1xuICBjb25zdCBpbml0aWFsQmVmb3JlVXNlckNyZWF0ZUhvb2sgPVxuICAgIG9wdGlvbnMuZGF0YWJhc2VIb29rcy51c2VyLmNyZWF0ZS5iZWZvcmUgPz8gbnVsbDtcblxuICBvcHRpb25zLmRhdGFiYXNlSG9va3MudXNlci5jcmVhdGUuYmVmb3JlID0gYXN5bmMgKHVzZXIsIGN0eCkgPT4ge1xuICAgIGlmICghKHVzZXIgYXMgYW55KS5wYXNzd29yZCkge1xuICAgICAgKHVzZXIgYXMgYW55KS5wYXNzd29yZCA9XG4gICAgICAgIGN0eD8uYm9keT8ucGFzc3dvcmQgPz9cbiAgICAgICAgQXJyYXkoMylcbiAgICAgICAgICAuZmlsbCgwKVxuICAgICAgICAgIC5tYXAoKCkgPT4gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoMikpXG4gICAgICAgICAgLmpvaW4oXCJcIik7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgaW5pdGlhbEJlZm9yZVVzZXJDcmVhdGVIb29rID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIHJldHVybiBpbml0aWFsQmVmb3JlVXNlckNyZWF0ZUhvb2sodXNlciwgY3R4KTtcbiAgICB9XG4gICAgcmV0dXJuIHsgZGF0YTogdXNlciB9O1xuICB9O1xufVxuIl0sIm5hbWVzIjpbImVuc3VyZVBhc3N3b3JkU2V0QmVmb3JlVXNlckNyZWF0ZSIsIm9wdGlvbnMiLCJkYXRhYmFzZUhvb2tzIiwidXNlciIsImNyZWF0ZSIsImluaXRpYWxCZWZvcmVVc2VyQ3JlYXRlSG9vayIsImJlZm9yZSIsImN0eCIsInBhc3N3b3JkIiwiYm9keSIsIkFycmF5IiwiZmlsbCIsIm1hcCIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsInNsaWNlIiwiam9pbiIsImRhdGEiXSwibWFwcGluZ3MiOiJBQUVBOzs7O0NBSUMsR0FDRCxPQUFPLFNBQVNBLGtDQUNkQyxPQUFtQztJQUVuQyxJQUFJLE9BQU9BLFFBQVFDLGFBQWEsS0FBSyxVQUFVRCxRQUFRQyxhQUFhLEdBQUcsQ0FBQztJQUN4RSxJQUFJLE9BQU9ELFFBQVFDLGFBQWEsQ0FBQ0MsSUFBSSxLQUFLLFVBQ3hDRixRQUFRQyxhQUFhLENBQUNDLElBQUksR0FBRyxDQUFDO0lBQ2hDLElBQUksT0FBT0YsUUFBUUMsYUFBYSxDQUFDQyxJQUFJLENBQUNDLE1BQU0sS0FBSyxVQUMvQ0gsUUFBUUMsYUFBYSxDQUFDQyxJQUFJLENBQUNDLE1BQU0sR0FBRyxDQUFDO0lBQ3ZDLE1BQU1DLDhCQUNKSixRQUFRQyxhQUFhLENBQUNDLElBQUksQ0FBQ0MsTUFBTSxDQUFDRSxNQUFNLElBQUk7SUFFOUNMLFFBQVFDLGFBQWEsQ0FBQ0MsSUFBSSxDQUFDQyxNQUFNLENBQUNFLE1BQU0sR0FBRyxPQUFPSCxNQUFNSTtRQUN0RCxJQUFJLENBQUMsQUFBQ0osS0FBYUssUUFBUSxFQUFFO1lBQzFCTCxLQUFhSyxRQUFRLEdBQ3BCRCxLQUFLRSxNQUFNRCxZQUNYRSxNQUFNLEdBQ0hDLElBQUksQ0FBQyxHQUNMQyxHQUFHLENBQUMsSUFBTUMsS0FBS0MsTUFBTSxHQUFHQyxRQUFRLENBQUMsSUFBSUMsS0FBSyxDQUFDLElBQzNDQyxJQUFJLENBQUM7UUFDWjtRQUNBLElBQUksT0FBT1osZ0NBQWdDLFlBQVk7WUFDckQsT0FBT0EsNEJBQTRCRixNQUFNSTtRQUMzQztRQUNBLE9BQU87WUFBRVcsTUFBTWY7UUFBSztJQUN0QjtBQUNGIn0=
@@ -1,26 +0,0 @@
1
- /**
2
- * Custom implementation of password hashing that matches Payload's format
3
- *
4
- * Instead of using better-auth's scrypt, this uses pbkdf2 with the same
5
- * parameters as Payload CMS
6
- *
7
- * @param password The password to hash
8
- * @returns A string in the format {salt}:{hash}
9
- */
10
- export declare const hashPassword: (password: string) => Promise<string>;
11
- /**
12
- * Verifies a password against a stored hash
13
- *
14
- * This function is flexible and can handle:
15
- * 1. A combined string in format {salt}:{hash} (for account passwords)
16
- * 2. When salt and hash need to be combined from user records
17
- *
18
- * @param params Object containing the hash and password
19
- * @returns Boolean indicating if the password matches
20
- */
21
- export declare const verifyPassword: ({ hash, password, salt }: {
22
- hash: string;
23
- password: string;
24
- salt?: string;
25
- }) => Promise<boolean>;
26
- //# sourceMappingURL=password.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"password.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.ts"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,GAAU,UAAU,MAAM,KAAG,OAAO,CAAC,MAAM,CAQnE,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc,GAAU,0BAIlC;IACD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,KAAG,OAAO,CAAC,OAAO,CAyBlB,CAAC"}
@@ -1,62 +0,0 @@
1
- import crypto from "crypto";
2
- /**
3
- * Mimics Payload's internal password hashing using pbkdf2
4
- *
5
- * This generates a hash compatible with Payload's internal auth system
6
- * so that passwords set via better-auth can be used with Payload admin panel
7
- */ function pbkdf2Promisified(password, salt) {
8
- return new Promise((resolve, reject)=>crypto.pbkdf2(password, salt, 25000, 512, "sha256", (err, hashRaw)=>err ? reject(err) : resolve(hashRaw)));
9
- }
10
- /**
11
- * Generates random bytes for the salt
12
- */ function randomBytes() {
13
- return new Promise((resolve, reject)=>crypto.randomBytes(32, (err, saltBuffer)=>err ? reject(err) : resolve(saltBuffer)));
14
- }
15
- /**
16
- * Custom implementation of password hashing that matches Payload's format
17
- *
18
- * Instead of using better-auth's scrypt, this uses pbkdf2 with the same
19
- * parameters as Payload CMS
20
- *
21
- * @param password The password to hash
22
- * @returns A string in the format {salt}:{hash}
23
- */ export const hashPassword = async (password)=>{
24
- const saltBuffer = await randomBytes();
25
- const salt = saltBuffer.toString("hex");
26
- const hashRaw = await pbkdf2Promisified(password, salt);
27
- const hash = hashRaw.toString("hex");
28
- return `${salt}:${hash}`;
29
- };
30
- /**
31
- * Verifies a password against a stored hash
32
- *
33
- * This function is flexible and can handle:
34
- * 1. A combined string in format {salt}:{hash} (for account passwords)
35
- * 2. When salt and hash need to be combined from user records
36
- *
37
- * @param params Object containing the hash and password
38
- * @returns Boolean indicating if the password matches
39
- */ export const verifyPassword = async ({ hash, password, salt })=>{
40
- let saltValue;
41
- let storedHash;
42
- // If salt is provided separately (from user record), use it with the hash
43
- if (salt) {
44
- saltValue = salt;
45
- storedHash = hash;
46
- } else {
47
- // Otherwise, split the combined format (from account.password)
48
- const parts = hash.split(":");
49
- if (parts.length !== 2) {
50
- return false;
51
- }
52
- [saltValue, storedHash] = parts;
53
- }
54
- if (!saltValue || !storedHash) {
55
- return false;
56
- }
57
- const hashRaw = await pbkdf2Promisified(password, saltValue);
58
- const computedHash = hashRaw.toString("hex");
59
- return storedHash === computedHash;
60
- };
61
-
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL3Nhbml0aXplLWJldHRlci1hdXRoLW9wdGlvbnMvdXRpbHMvcGFzc3dvcmQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNyeXB0byBmcm9tIFwiY3J5cHRvXCI7XG5cbi8qKlxuICogTWltaWNzIFBheWxvYWQncyBpbnRlcm5hbCBwYXNzd29yZCBoYXNoaW5nIHVzaW5nIHBia2RmMlxuICpcbiAqIFRoaXMgZ2VuZXJhdGVzIGEgaGFzaCBjb21wYXRpYmxlIHdpdGggUGF5bG9hZCdzIGludGVybmFsIGF1dGggc3lzdGVtXG4gKiBzbyB0aGF0IHBhc3N3b3JkcyBzZXQgdmlhIGJldHRlci1hdXRoIGNhbiBiZSB1c2VkIHdpdGggUGF5bG9hZCBhZG1pbiBwYW5lbFxuICovXG5mdW5jdGlvbiBwYmtkZjJQcm9taXNpZmllZChwYXNzd29yZDogc3RyaW5nLCBzYWx0OiBzdHJpbmcpOiBQcm9taXNlPEJ1ZmZlcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT5cbiAgICBjcnlwdG8ucGJrZGYyKHBhc3N3b3JkLCBzYWx0LCAyNTAwMCwgNTEyLCBcInNoYTI1NlwiLCAoZXJyLCBoYXNoUmF3KSA9PlxuICAgICAgZXJyID8gcmVqZWN0KGVycikgOiByZXNvbHZlKGhhc2hSYXcpXG4gICAgKVxuICApO1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyByYW5kb20gYnl0ZXMgZm9yIHRoZSBzYWx0XG4gKi9cbmZ1bmN0aW9uIHJhbmRvbUJ5dGVzKCk6IFByb21pc2U8QnVmZmVyPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PlxuICAgIGNyeXB0by5yYW5kb21CeXRlcygzMiwgKGVyciwgc2FsdEJ1ZmZlcikgPT5cbiAgICAgIGVyciA/IHJlamVjdChlcnIpIDogcmVzb2x2ZShzYWx0QnVmZmVyKVxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiBDdXN0b20gaW1wbGVtZW50YXRpb24gb2YgcGFzc3dvcmQgaGFzaGluZyB0aGF0IG1hdGNoZXMgUGF5bG9hZCdzIGZvcm1hdFxuICpcbiAqIEluc3RlYWQgb2YgdXNpbmcgYmV0dGVyLWF1dGgncyBzY3J5cHQsIHRoaXMgdXNlcyBwYmtkZjIgd2l0aCB0aGUgc2FtZVxuICogcGFyYW1ldGVycyBhcyBQYXlsb2FkIENNU1xuICpcbiAqIEBwYXJhbSBwYXNzd29yZCBUaGUgcGFzc3dvcmQgdG8gaGFzaFxuICogQHJldHVybnMgQSBzdHJpbmcgaW4gdGhlIGZvcm1hdCB7c2FsdH06e2hhc2h9XG4gKi9cbmV4cG9ydCBjb25zdCBoYXNoUGFzc3dvcmQgPSBhc3luYyAocGFzc3dvcmQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiA9PiB7XG4gIGNvbnN0IHNhbHRCdWZmZXIgPSBhd2FpdCByYW5kb21CeXRlcygpO1xuICBjb25zdCBzYWx0ID0gc2FsdEJ1ZmZlci50b1N0cmluZyhcImhleFwiKTtcblxuICBjb25zdCBoYXNoUmF3ID0gYXdhaXQgcGJrZGYyUHJvbWlzaWZpZWQocGFzc3dvcmQsIHNhbHQpO1xuICBjb25zdCBoYXNoID0gaGFzaFJhdy50b1N0cmluZyhcImhleFwiKTtcblxuICByZXR1cm4gYCR7c2FsdH06JHtoYXNofWA7XG59O1xuXG4vKipcbiAqIFZlcmlmaWVzIGEgcGFzc3dvcmQgYWdhaW5zdCBhIHN0b3JlZCBoYXNoXG4gKlxuICogVGhpcyBmdW5jdGlvbiBpcyBmbGV4aWJsZSBhbmQgY2FuIGhhbmRsZTpcbiAqIDEuIEEgY29tYmluZWQgc3RyaW5nIGluIGZvcm1hdCB7c2FsdH06e2hhc2h9IChmb3IgYWNjb3VudCBwYXNzd29yZHMpXG4gKiAyLiBXaGVuIHNhbHQgYW5kIGhhc2ggbmVlZCB0byBiZSBjb21iaW5lZCBmcm9tIHVzZXIgcmVjb3Jkc1xuICpcbiAqIEBwYXJhbSBwYXJhbXMgT2JqZWN0IGNvbnRhaW5pbmcgdGhlIGhhc2ggYW5kIHBhc3N3b3JkXG4gKiBAcmV0dXJucyBCb29sZWFuIGluZGljYXRpbmcgaWYgdGhlIHBhc3N3b3JkIG1hdGNoZXNcbiAqL1xuZXhwb3J0IGNvbnN0IHZlcmlmeVBhc3N3b3JkID0gYXN5bmMgKHtcbiAgaGFzaCxcbiAgcGFzc3dvcmQsXG4gIHNhbHRcbn06IHtcbiAgaGFzaDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xuICBzYWx0Pzogc3RyaW5nO1xufSk6IFByb21pc2U8Ym9vbGVhbj4gPT4ge1xuICBsZXQgc2FsdFZhbHVlOiBzdHJpbmc7XG4gIGxldCBzdG9yZWRIYXNoOiBzdHJpbmc7XG5cbiAgLy8gSWYgc2FsdCBpcyBwcm92aWRlZCBzZXBhcmF0ZWx5IChmcm9tIHVzZXIgcmVjb3JkKSwgdXNlIGl0IHdpdGggdGhlIGhhc2hcbiAgaWYgKHNhbHQpIHtcbiAgICBzYWx0VmFsdWUgPSBzYWx0O1xuICAgIHN0b3JlZEhhc2ggPSBoYXNoO1xuICB9IGVsc2Uge1xuICAgIC8vIE90aGVyd2lzZSwgc3BsaXQgdGhlIGNvbWJpbmVkIGZvcm1hdCAoZnJvbSBhY2NvdW50LnBhc3N3b3JkKVxuICAgIGNvbnN0IHBhcnRzID0gaGFzaC5zcGxpdChcIjpcIik7XG4gICAgaWYgKHBhcnRzLmxlbmd0aCAhPT0gMikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBbc2FsdFZhbHVlLCBzdG9yZWRIYXNoXSA9IHBhcnRzIGFzIFtzdHJpbmcsIHN0cmluZ107XG4gIH1cblxuICBpZiAoIXNhbHRWYWx1ZSB8fCAhc3RvcmVkSGFzaCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IGhhc2hSYXcgPSBhd2FpdCBwYmtkZjJQcm9taXNpZmllZChwYXNzd29yZCwgc2FsdFZhbHVlKTtcbiAgY29uc3QgY29tcHV0ZWRIYXNoID0gaGFzaFJhdy50b1N0cmluZyhcImhleFwiKTtcblxuICByZXR1cm4gc3RvcmVkSGFzaCA9PT0gY29tcHV0ZWRIYXNoO1xufTtcbiJdLCJuYW1lcyI6WyJjcnlwdG8iLCJwYmtkZjJQcm9taXNpZmllZCIsInBhc3N3b3JkIiwic2FsdCIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwicGJrZGYyIiwiZXJyIiwiaGFzaFJhdyIsInJhbmRvbUJ5dGVzIiwic2FsdEJ1ZmZlciIsImhhc2hQYXNzd29yZCIsInRvU3RyaW5nIiwiaGFzaCIsInZlcmlmeVBhc3N3b3JkIiwic2FsdFZhbHVlIiwic3RvcmVkSGFzaCIsInBhcnRzIiwic3BsaXQiLCJsZW5ndGgiLCJjb21wdXRlZEhhc2giXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFlBQVksU0FBUztBQUU1Qjs7Ozs7Q0FLQyxHQUNELFNBQVNDLGtCQUFrQkMsUUFBZ0IsRUFBRUMsSUFBWTtJQUN2RCxPQUFPLElBQUlDLFFBQVEsQ0FBQ0MsU0FBU0MsU0FDM0JOLE9BQU9PLE1BQU0sQ0FBQ0wsVUFBVUMsTUFBTSxPQUFPLEtBQUssVUFBVSxDQUFDSyxLQUFLQyxVQUN4REQsTUFBTUYsT0FBT0UsT0FBT0gsUUFBUUk7QUFHbEM7QUFFQTs7Q0FFQyxHQUNELFNBQVNDO0lBQ1AsT0FBTyxJQUFJTixRQUFRLENBQUNDLFNBQVNDLFNBQzNCTixPQUFPVSxXQUFXLENBQUMsSUFBSSxDQUFDRixLQUFLRyxhQUMzQkgsTUFBTUYsT0FBT0UsT0FBT0gsUUFBUU07QUFHbEM7QUFFQTs7Ozs7Ozs7Q0FRQyxHQUNELE9BQU8sTUFBTUMsZUFBZSxPQUFPVjtJQUNqQyxNQUFNUyxhQUFhLE1BQU1EO0lBQ3pCLE1BQU1QLE9BQU9RLFdBQVdFLFFBQVEsQ0FBQztJQUVqQyxNQUFNSixVQUFVLE1BQU1SLGtCQUFrQkMsVUFBVUM7SUFDbEQsTUFBTVcsT0FBT0wsUUFBUUksUUFBUSxDQUFDO0lBRTlCLE9BQU8sR0FBR1YsS0FBSyxDQUFDLEVBQUVXLE1BQU07QUFDMUIsRUFBRTtBQUVGOzs7Ozs7Ozs7Q0FTQyxHQUNELE9BQU8sTUFBTUMsaUJBQWlCLE9BQU8sRUFDbkNELElBQUksRUFDSlosUUFBUSxFQUNSQyxJQUFJLEVBS0w7SUFDQyxJQUFJYTtJQUNKLElBQUlDO0lBRUosMEVBQTBFO0lBQzFFLElBQUlkLE1BQU07UUFDUmEsWUFBWWI7UUFDWmMsYUFBYUg7SUFDZixPQUFPO1FBQ0wsK0RBQStEO1FBQy9ELE1BQU1JLFFBQVFKLEtBQUtLLEtBQUssQ0FBQztRQUN6QixJQUFJRCxNQUFNRSxNQUFNLEtBQUssR0FBRztZQUN0QixPQUFPO1FBQ1Q7UUFDQSxDQUFDSixXQUFXQyxXQUFXLEdBQUdDO0lBQzVCO0lBRUEsSUFBSSxDQUFDRixhQUFhLENBQUNDLFlBQVk7UUFDN0IsT0FBTztJQUNUO0lBRUEsTUFBTVIsVUFBVSxNQUFNUixrQkFBa0JDLFVBQVVjO0lBQ2xELE1BQU1LLGVBQWVaLFFBQVFJLFFBQVEsQ0FBQztJQUV0QyxPQUFPSSxlQUFlSTtBQUN4QixFQUFFIn0=
@@ -1,10 +0,0 @@
1
- import type { SanitizedBetterAuthOptions } from "@/better-auth/plugin/types";
2
- /**
3
- * Modifies options object and adds a middleware to check for admin invite for sign up
4
- */
5
- export declare const useAdminInviteAfterEmailSignUpMiddleware: ({ options, adminInvitationCollectionSlug, userCollectionSlug }: {
6
- options: SanitizedBetterAuthOptions;
7
- adminInvitationCollectionSlug: string;
8
- userCollectionSlug: string;
9
- }) => Promise<void>;
10
- //# sourceMappingURL=use-admin-invite-after-email-sign-up-middleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"use-admin-invite-after-email-sign-up-middleware.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAE7E;;GAEG;AACH,eAAO,MAAM,wCAAwC,GAAU,gEAI5D;IACD,OAAO,EAAE,0BAA0B,CAAC;IACpC,6BAA6B,EAAE,MAAM,CAAC;IACtC,kBAAkB,EAAE,MAAM,CAAC;CAC5B,kBA8DA,CAAC"}