payload-auth 1.0.1 → 1.1.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.
- package/dist/authjs/index.d.ts +1 -0
- package/dist/authjs/index.d.ts.map +1 -0
- package/dist/authjs/index.js +1 -1
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js +1 -1
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.js +1 -1
- package/dist/better-auth/adapter/generate-schema/index.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/index.js +3 -3
- package/dist/better-auth/adapter/generate-schema/utils.d.ts +1 -0
- package/dist/better-auth/adapter/generate-schema/utils.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/utils.js +1 -1
- package/dist/better-auth/adapter/index.d.ts +3 -2
- package/dist/better-auth/adapter/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/index.js +115 -69
- package/dist/better-auth/adapter/transform/index.d.ts +19 -6
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/transform/index.js +387 -96
- package/dist/better-auth/adapter/types.d.ts +3 -1
- package/dist/better-auth/adapter/types.d.ts.map +1 -0
- package/dist/better-auth/adapter/types.js +1 -1
- package/dist/better-auth/index.d.ts +1 -0
- package/dist/better-auth/index.d.ts.map +1 -0
- package/dist/better-auth/index.js +1 -1
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.js +5 -0
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/check-username-plugin.js +5 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +1 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.js +8 -8
- package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +8 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
- package/dist/better-auth/plugin/helpers/get-admin-routes.d.ts +14 -0
- package/dist/better-auth/plugin/helpers/get-admin-routes.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-admin-routes.js +6 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +6 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
- package/dist/better-auth/plugin/helpers/get-ip.d.ts +2 -1
- package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-ip.js +14 -14
- package/dist/better-auth/plugin/helpers/get-requst-collection.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/get-requst-collection.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-requst-collection.js +14 -0
- package/dist/better-auth/plugin/helpers/index.d.ts +2 -1
- package/dist/better-auth/plugin/helpers/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/index.js +2 -2
- package/dist/better-auth/plugin/{lib → helpers}/prepare-session-data.d.ts +3 -2
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.js +42 -0
- package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts +3 -2
- package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/serialize-cookie.js +34 -34
- package/dist/better-auth/plugin/index.d.ts +8 -7
- package/dist/better-auth/plugin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/index.js +145 -37
- package/dist/better-auth/plugin/{collections → lib/build-collections}/accounts/hooks/sync-password-to-user.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +47 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +159 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +107 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.js +196 -0
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts +12 -0
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/index.js +96 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.js +91 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.js +43 -0
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/members.js +71 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +98 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +113 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +67 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.js +59 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.js +108 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.js +123 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +83 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.js +45 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.js +56 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +52 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/forgot-password.js +96 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +13 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +67 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/login.js +115 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +110 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/reset-password.js +62 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +42 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +79 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +153 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/after-login.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +75 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/after-logout.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +74 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +45 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/before-login.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +18 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +14 -0
- package/dist/better-auth/plugin/{collections → lib/build-collections}/users/hooks/sync-account.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +82 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.js +345 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +31 -0
- package/dist/better-auth/plugin/lib/{payload-access.d.ts → build-collections/utils/payload-access.d.ts} +2 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +64 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.js +63 -0
- package/dist/better-auth/plugin/lib/{config.d.ts → constants.d.ts} +14 -0
- package/dist/better-auth/plugin/lib/constants.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/constants.js +56 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +3 -2
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.js +2 -2
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +5 -4
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +26 -43
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts +5 -3
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/init-better-auth.js +6 -6
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +8 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +17 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +118 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +58 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +86 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +17 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +17 -0
- package/dist/better-auth/plugin/lib/{ensure-password-set-before-create.d.ts → sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts} +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
- package/dist/better-auth/plugin/lib/{password.d.ts → sanitize-better-auth-options/utils/password.d.ts} +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
- package/dist/better-auth/plugin/lib/{respect-save-to-jwt-fields-middleware.d.ts → sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts} +6 -5
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +30 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +8 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +115 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.scss +31 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +11 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +196 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.scss +131 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts +14 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.js +111 -0
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.scss +51 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.js +23 -0
- package/dist/better-auth/plugin/payload/components/form-header/index.scss +8 -0
- package/dist/better-auth/plugin/payload/components/icons.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/icons.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/icons.js +437 -0
- package/dist/better-auth/plugin/payload/components/logo.d.ts +4 -1
- package/dist/better-auth/plugin/payload/components/logo.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logo.js +22 -34
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts +6 -0
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logout-button.js +27 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +7 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.js +8 -0
- package/dist/better-auth/plugin/payload/components/styles.css +2 -2
- package/dist/better-auth/plugin/payload/components/token-field.d.ts +5 -0
- package/dist/better-auth/plugin/payload/components/token-field.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/token-field.js +30 -0
- package/dist/better-auth/plugin/payload/exports/client.d.ts +7 -3
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/client.js +7 -4
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts +10 -5
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/rsc.js +10 -6
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +3 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +8 -0
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts +15 -0
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/generate-metadata.js +74 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +2 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +23 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/client.d.ts +12 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/client.js +92 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.d.ts +11 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.js +84 -0
- package/dist/better-auth/plugin/payload/views/admin-invite/index.scss +25 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/client.d.ts +14 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/client.js +95 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts +11 -3
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.js +124 -92
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.scss +29 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +8 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.js +119 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.js +69 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.scss +0 -0
- package/dist/better-auth/plugin/payload/views/inactivity/index.d.ts +5 -0
- package/dist/better-auth/plugin/payload/views/inactivity/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/inactivity/index.js +12 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/login-field.js +54 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.d.ts +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.js +121 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/index.scss +31 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.d.ts +56 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/fields/password/types.js +3 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.d.ts +17 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.js +137 -0
- package/dist/better-auth/plugin/payload/views/login/form/index.scss +23 -0
- package/dist/better-auth/plugin/payload/views/login/index.d.ts +11 -4
- package/dist/better-auth/plugin/payload/views/login/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/index.js +81 -61
- package/dist/better-auth/plugin/payload/views/login/index.scss +10 -0
- package/dist/better-auth/plugin/payload/views/logout/client.d.ts +8 -0
- package/dist/better-auth/plugin/payload/views/logout/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/logout/client.js +76 -0
- package/dist/better-auth/plugin/payload/views/logout/index.d.ts +8 -0
- package/dist/better-auth/plugin/payload/views/logout/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/logout/index.js +14 -0
- package/dist/better-auth/plugin/payload/views/logout/index.scss +0 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +7 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.js +72 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +5 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.js +81 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.scss +9 -0
- package/dist/better-auth/plugin/payload/views/reset-password/metadata.d.ts +3 -0
- package/dist/better-auth/plugin/payload/views/reset-password/metadata.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/metadata.js +11 -0
- package/dist/better-auth/plugin/types.d.ts +171 -33
- package/dist/better-auth/plugin/types.d.ts.map +1 -0
- package/dist/better-auth/plugin/types.js +1 -1
- package/dist/better-auth/types.d.ts +1 -0
- package/dist/better-auth/types.d.ts.map +1 -0
- package/dist/better-auth/types.js +1 -1
- package/dist/clerk/admin-ui.d.ts +4 -0
- package/dist/clerk/admin-ui.d.ts.map +1 -0
- package/dist/clerk/admin-ui.js +5 -0
- package/dist/clerk/index.d.ts +7 -1
- package/dist/clerk/index.d.ts.map +1 -0
- package/dist/clerk/index.js +7 -2
- package/dist/clerk/plugin/auth-strategy.d.ts +11 -0
- package/dist/clerk/plugin/auth-strategy.d.ts.map +1 -0
- package/dist/clerk/plugin/auth-strategy.js +45 -0
- package/dist/clerk/plugin/collections/users/access.d.ts +14 -0
- package/dist/clerk/plugin/collections/users/access.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/access.js +36 -0
- package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts +14 -0
- package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/sync-from-clerk.js +108 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts +4 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/index.js +5 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts +13 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userCreated.js +33 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts +11 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userDeleted.js +27 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts +13 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/handlers/userUpdated.js +35 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts +12 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/index.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/endpoints/webhook/index.js +86 -0
- package/dist/clerk/plugin/collections/users/fields.d.ts +6 -0
- package/dist/clerk/plugin/collections/users/fields.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/fields.js +81 -0
- package/dist/clerk/plugin/collections/users/index.d.ts +10 -0
- package/dist/clerk/plugin/collections/users/index.d.ts.map +1 -0
- package/dist/clerk/plugin/collections/users/index.js +95 -0
- package/dist/clerk/plugin/components/after-login-form.d.ts +4 -0
- package/dist/clerk/plugin/components/after-login-form.d.ts.map +1 -0
- package/dist/clerk/plugin/components/after-login-form.js +65 -0
- package/dist/clerk/plugin/components/logout-button.d.ts +2 -0
- package/dist/clerk/plugin/components/logout-button.d.ts.map +1 -0
- package/dist/clerk/plugin/components/logout-button.js +49 -0
- package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts +6 -0
- package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts.map +1 -0
- package/dist/clerk/plugin/components/sync-clerk-users-button.js +75 -0
- package/dist/clerk/plugin.d.ts +6 -0
- package/dist/clerk/plugin.d.ts.map +1 -0
- package/dist/clerk/plugin.js +63 -0
- package/dist/clerk/types.d.ts +63 -0
- package/dist/clerk/types.d.ts.map +1 -0
- package/dist/clerk/types.js +3 -0
- package/dist/clerk/utils/clerk-user.d.ts +21 -0
- package/dist/clerk/utils/clerk-user.d.ts.map +1 -0
- package/dist/clerk/utils/clerk-user.js +45 -0
- package/dist/clerk/utils/index.d.ts +4 -0
- package/dist/clerk/utils/index.d.ts.map +1 -0
- package/dist/clerk/utils/index.js +5 -0
- package/dist/clerk/utils/load-clerk-instance.d.ts +8 -0
- package/dist/clerk/utils/load-clerk-instance.d.ts.map +1 -0
- package/dist/clerk/utils/load-clerk-instance.js +11 -0
- package/dist/clerk/utils/svix.d.ts +9 -0
- package/dist/clerk/utils/svix.d.ts.map +1 -0
- package/dist/clerk/utils/svix.js +40 -0
- package/dist/clerk/utils/user.d.ts +17 -0
- package/dist/clerk/utils/user.d.ts.map +1 -0
- package/dist/clerk/utils/user.js +46 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -5
- package/dist/kinde/index.d.ts +1 -0
- package/dist/kinde/index.d.ts.map +1 -0
- package/dist/kinde/index.js +1 -1
- package/package.json +44 -18
- package/LICENSE.md +0 -17
- package/dist/authjs/index.js.map +0 -1
- package/dist/better-auth/adapter/dev/bin/run.d.ts +0 -1
- package/dist/better-auth/adapter/dev/bin/run.js +0 -64
- package/dist/better-auth/adapter/dev/bin/run.js.map +0 -1
- package/dist/better-auth/adapter/dev/bin/schema.d.ts +0 -22
- package/dist/better-auth/adapter/dev/bin/schema.js +0 -160
- package/dist/better-auth/adapter/dev/bin/schema.js.map +0 -1
- package/dist/better-auth/adapter/dev/collections.d.ts +0 -3
- package/dist/better-auth/adapter/dev/collections.js +0 -212
- package/dist/better-auth/adapter/dev/collections.js.map +0 -1
- package/dist/better-auth/adapter/dev/index.d.ts +0 -3
- package/dist/better-auth/adapter/dev/index.js +0 -168
- package/dist/better-auth/adapter/dev/index.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/index.js.map +0 -1
- package/dist/better-auth/adapter/generate-schema/utils.js.map +0 -1
- package/dist/better-auth/adapter/index.js.map +0 -1
- package/dist/better-auth/adapter/test/adapter.test.d.ts +0 -1
- package/dist/better-auth/adapter/test/adapter.test.js +0 -181
- package/dist/better-auth/adapter/test/adapter.test.js.map +0 -1
- package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +0 -7
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js +0 -425
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js.map +0 -1
- package/dist/better-auth/adapter/test/schema.test.d.ts +0 -1
- package/dist/better-auth/adapter/test/schema.test.js +0 -796
- package/dist/better-auth/adapter/test/schema.test.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +0 -23
- package/dist/better-auth/adapter/test/test_payload1/schema.js +0 -177
- package/dist/better-auth/adapter/test/test_payload1/schema.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +0 -23
- package/dist/better-auth/adapter/test/test_payload2/schema.js +0 -167
- package/dist/better-auth/adapter/test/test_payload2/schema.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +0 -23
- package/dist/better-auth/adapter/test/test_payload3/schema.js +0 -198
- package/dist/better-auth/adapter/test/test_payload3/schema.js.map +0 -1
- package/dist/better-auth/adapter/transform/index.js.map +0 -1
- package/dist/better-auth/adapter/types.js.map +0 -1
- package/dist/better-auth/index.js.map +0 -1
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +0 -47
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +0 -6
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +0 -106
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-login.js +0 -71
- package/dist/better-auth/plugin/collections/users/hooks/after-login.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +0 -49
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/before-login.js +0 -18
- package/dist/better-auth/plugin/collections/users/hooks/before-login.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +0 -5
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +0 -33
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +0 -2
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +0 -14
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +0 -82
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.js.map +0 -1
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.js.map +0 -1
- package/dist/better-auth/plugin/helpers/get-ip.js.map +0 -1
- package/dist/better-auth/plugin/helpers/index.js.map +0 -1
- package/dist/better-auth/plugin/helpers/serialize-cookie.js.map +0 -1
- package/dist/better-auth/plugin/index.js.map +0 -1
- package/dist/better-auth/plugin/lib/auth-strategy.d.ts +0 -8
- package/dist/better-auth/plugin/lib/auth-strategy.js +0 -48
- package/dist/better-auth/plugin/lib/auth-strategy.js.map +0 -1
- package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +0 -11
- package/dist/better-auth/plugin/lib/build-collection-configs.js +0 -1558
- package/dist/better-auth/plugin/lib/build-collection-configs.js.map +0 -1
- package/dist/better-auth/plugin/lib/config.js +0 -43
- package/dist/better-auth/plugin/lib/config.js.map +0 -1
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +0 -24
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js.map +0 -1
- package/dist/better-auth/plugin/lib/get-payload-auth.js.map +0 -1
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js.map +0 -1
- package/dist/better-auth/plugin/lib/init-better-auth.js.map +0 -1
- package/dist/better-auth/plugin/lib/password.js +0 -63
- package/dist/better-auth/plugin/lib/password.js.map +0 -1
- package/dist/better-auth/plugin/lib/payload-access.js +0 -64
- package/dist/better-auth/plugin/lib/payload-access.js.map +0 -1
- package/dist/better-auth/plugin/lib/prepare-session-data.js +0 -42
- package/dist/better-auth/plugin/lib/prepare-session-data.js.map +0 -1
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +0 -30
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js.map +0 -1
- package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +0 -5
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js +0 -298
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +0 -5
- package/dist/better-auth/plugin/payload/components/admin-buttons.js +0 -222
- package/dist/better-auth/plugin/payload/components/admin-buttons.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +0 -1
- package/dist/better-auth/plugin/payload/components/login-redirect.js +0 -6
- package/dist/better-auth/plugin/payload/components/login-redirect.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/logo.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/logout.d.ts +0 -1
- package/dist/better-auth/plugin/payload/components/logout.js +0 -61
- package/dist/better-auth/plugin/payload/components/logout.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-in.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/sign-in.js +0 -384
- package/dist/better-auth/plugin/payload/components/sign-in.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-up.d.ts +0 -6
- package/dist/better-auth/plugin/payload/components/sign-up.js +0 -502
- package/dist/better-auth/plugin/payload/components/sign-up.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/button.d.ts +0 -10
- package/dist/better-auth/plugin/payload/components/ui/button.js +0 -42
- package/dist/better-auth/plugin/payload/components/ui/button.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/card.d.ts +0 -9
- package/dist/better-auth/plugin/payload/components/ui/card.js +0 -55
- package/dist/better-auth/plugin/payload/components/ui/card.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +0 -4
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js +0 -23
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +0 -2
- package/dist/better-auth/plugin/payload/components/ui/cn.js +0 -7
- package/dist/better-auth/plugin/payload/components/ui/cn.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/input.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/ui/input.js +0 -14
- package/dist/better-auth/plugin/payload/components/ui/input.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/label.d.ts +0 -4
- package/dist/better-auth/plugin/payload/components/ui/label.js +0 -15
- package/dist/better-auth/plugin/payload/components/ui/label.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +0 -2
- package/dist/better-auth/plugin/payload/components/ui/password-input.js +0 -55
- package/dist/better-auth/plugin/payload/components/ui/password-input.js.map +0 -1
- package/dist/better-auth/plugin/payload/exports/client.js.map +0 -1
- package/dist/better-auth/plugin/payload/exports/rsc.js.map +0 -1
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.js.map +0 -1
- package/dist/better-auth/plugin/payload/views/login/index.js.map +0 -1
- package/dist/better-auth/plugin/types.js.map +0 -1
- package/dist/better-auth/types.js.map +0 -1
- package/dist/clerk/index.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/kinde/index.js.map +0 -1
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* EXAMPLE COLLECTIONS FOR BETTER AUTH
|
|
3
|
-
*
|
|
4
|
-
* Below is what your Payload collections should look like.
|
|
5
|
-
* Please copy these to your actual collection configs.
|
|
6
|
-
* Make sure to add an authStrategy for the users collection if there is one.
|
|
7
|
-
*
|
|
8
|
-
* Example auth strategy:
|
|
9
|
-
* auth: {
|
|
10
|
-
* disableLocalStrategy: true,
|
|
11
|
-
* strategies: [
|
|
12
|
-
* betterAuthStrategy(),
|
|
13
|
-
* // Add other strategies as needed
|
|
14
|
-
* ],
|
|
15
|
-
* },
|
|
16
|
-
*/ const User = {
|
|
17
|
-
slug: 'user',
|
|
18
|
-
admin: {
|
|
19
|
-
useAsTitle: 'name'
|
|
20
|
-
},
|
|
21
|
-
fields: [
|
|
22
|
-
{
|
|
23
|
-
name: 'name',
|
|
24
|
-
type: 'text',
|
|
25
|
-
required: true
|
|
26
|
-
},
|
|
27
|
-
{
|
|
28
|
-
name: 'email',
|
|
29
|
-
type: 'email',
|
|
30
|
-
required: true,
|
|
31
|
-
unique: true
|
|
32
|
-
},
|
|
33
|
-
{
|
|
34
|
-
name: 'emailVerified',
|
|
35
|
-
type: 'checkbox',
|
|
36
|
-
required: true
|
|
37
|
-
},
|
|
38
|
-
{
|
|
39
|
-
name: 'image',
|
|
40
|
-
type: 'upload',
|
|
41
|
-
relationTo: 'media'
|
|
42
|
-
}
|
|
43
|
-
],
|
|
44
|
-
timestamps: true
|
|
45
|
-
};
|
|
46
|
-
const Session = {
|
|
47
|
-
slug: 'session',
|
|
48
|
-
admin: {
|
|
49
|
-
useAsTitle: 'expiresAt'
|
|
50
|
-
},
|
|
51
|
-
fields: [
|
|
52
|
-
{
|
|
53
|
-
name: 'expiresAt',
|
|
54
|
-
type: 'date',
|
|
55
|
-
required: true
|
|
56
|
-
},
|
|
57
|
-
{
|
|
58
|
-
name: 'token',
|
|
59
|
-
type: 'text',
|
|
60
|
-
required: true,
|
|
61
|
-
unique: true
|
|
62
|
-
},
|
|
63
|
-
{
|
|
64
|
-
name: 'ipAddress',
|
|
65
|
-
type: 'text'
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
name: 'userAgent',
|
|
69
|
-
type: 'text'
|
|
70
|
-
},
|
|
71
|
-
{
|
|
72
|
-
name: 'userId',
|
|
73
|
-
type: 'relationship',
|
|
74
|
-
required: true,
|
|
75
|
-
relationTo: 'user'
|
|
76
|
-
}
|
|
77
|
-
],
|
|
78
|
-
timestamps: true
|
|
79
|
-
};
|
|
80
|
-
const Account = {
|
|
81
|
-
slug: 'account',
|
|
82
|
-
admin: {
|
|
83
|
-
useAsTitle: 'accountId'
|
|
84
|
-
},
|
|
85
|
-
fields: [
|
|
86
|
-
{
|
|
87
|
-
name: 'accountId',
|
|
88
|
-
type: 'text',
|
|
89
|
-
required: true
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
name: 'providerId',
|
|
93
|
-
type: 'text',
|
|
94
|
-
required: true
|
|
95
|
-
},
|
|
96
|
-
{
|
|
97
|
-
name: 'userId',
|
|
98
|
-
type: 'relationship',
|
|
99
|
-
required: true,
|
|
100
|
-
relationTo: 'user'
|
|
101
|
-
},
|
|
102
|
-
{
|
|
103
|
-
name: 'accessToken',
|
|
104
|
-
type: 'text'
|
|
105
|
-
},
|
|
106
|
-
{
|
|
107
|
-
name: 'refreshToken',
|
|
108
|
-
type: 'text'
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
name: 'idToken',
|
|
112
|
-
type: 'text'
|
|
113
|
-
},
|
|
114
|
-
{
|
|
115
|
-
name: 'accessTokenExpiresAt',
|
|
116
|
-
type: 'date'
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
name: 'refreshTokenExpiresAt',
|
|
120
|
-
type: 'date'
|
|
121
|
-
},
|
|
122
|
-
{
|
|
123
|
-
name: 'scope',
|
|
124
|
-
type: 'text'
|
|
125
|
-
},
|
|
126
|
-
{
|
|
127
|
-
name: 'password',
|
|
128
|
-
type: 'text'
|
|
129
|
-
}
|
|
130
|
-
],
|
|
131
|
-
timestamps: true
|
|
132
|
-
};
|
|
133
|
-
const Verification = {
|
|
134
|
-
slug: 'verification',
|
|
135
|
-
admin: {
|
|
136
|
-
useAsTitle: 'identifier'
|
|
137
|
-
},
|
|
138
|
-
fields: [
|
|
139
|
-
{
|
|
140
|
-
name: 'identifier',
|
|
141
|
-
type: 'text',
|
|
142
|
-
required: true
|
|
143
|
-
},
|
|
144
|
-
{
|
|
145
|
-
name: 'value',
|
|
146
|
-
type: 'text',
|
|
147
|
-
required: true
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
name: 'expiresAt',
|
|
151
|
-
type: 'date',
|
|
152
|
-
required: true
|
|
153
|
-
}
|
|
154
|
-
],
|
|
155
|
-
timestamps: true
|
|
156
|
-
};
|
|
157
|
-
const Admin = {
|
|
158
|
-
slug: 'admin',
|
|
159
|
-
admin: {
|
|
160
|
-
useAsTitle: 'name'
|
|
161
|
-
},
|
|
162
|
-
fields: [
|
|
163
|
-
{
|
|
164
|
-
name: 'name',
|
|
165
|
-
type: 'text',
|
|
166
|
-
required: true
|
|
167
|
-
},
|
|
168
|
-
{
|
|
169
|
-
name: 'isAdmin',
|
|
170
|
-
type: 'checkbox',
|
|
171
|
-
required: true
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
name: 'status',
|
|
175
|
-
type: 'text'
|
|
176
|
-
},
|
|
177
|
-
{
|
|
178
|
-
name: 'date',
|
|
179
|
-
type: 'date'
|
|
180
|
-
},
|
|
181
|
-
{
|
|
182
|
-
name: 'number',
|
|
183
|
-
type: 'number'
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
name: 'str_array',
|
|
187
|
-
type: 'text'
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
name: 'num_array',
|
|
191
|
-
type: 'text'
|
|
192
|
-
}
|
|
193
|
-
],
|
|
194
|
-
timestamps: true
|
|
195
|
-
};
|
|
196
|
-
export { User, Session, Account, Verification, Admin };
|
|
197
|
-
|
|
198
|
-
//# sourceMappingURL=schema.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/test/test_payload3/schema.ts"],"sourcesContent":["/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n *\n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n *\n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from 'payload'\n\nconst User: CollectionConfig = {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n ],\n timestamps: true,\n} as const\n\nconst Session: CollectionConfig = {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n ],\n timestamps: true,\n} as const\n\nconst Account: CollectionConfig = {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'text',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n required: true,\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nconst Verification: CollectionConfig = {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nconst Admin: CollectionConfig = {\n slug: 'admin',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'isAdmin',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'status',\n type: 'text',\n },\n {\n name: 'date',\n type: 'date',\n },\n {\n name: 'number',\n type: 'number',\n },\n {\n name: 'str_array',\n type: 'text',\n },\n {\n name: 'num_array',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nexport { User, Session, Account, Verification, Admin }\n"],"names":["User","slug","admin","useAsTitle","fields","name","type","required","unique","relationTo","timestamps","Session","Account","Verification","Admin"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAGD,MAAMA,OAAyB;IAC7BC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNG,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAMC,UAA4B;IAChCV,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAME,UAA4B;IAChCX,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;QACA;YACEJ,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,MAAMG,eAAiC;IACrCZ,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDG,YAAY;AACd;AAEA,MAAMI,QAA0B;IAC9Bb,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,SAASV,IAAI,EAAEW,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAEC,KAAK,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/transform/index.ts"],"sourcesContent":["import { BetterAuthError } from 'better-auth'\nimport { getAuthTables } from 'better-auth/db'\nimport type { BetterAuthOptions, Where } from 'better-auth'\nimport type { CollectionSlug, Where as PayloadWhere } from 'payload'\n\nexport const createTransform = (options: BetterAuthOptions, enableDebugLogs: boolean) => {\n const schema = getAuthTables(options)\n\n function debugLog(message: any[]) {\n if (enableDebugLogs) {\n console.log(`[payload-db-adapter]`, ...message)\n }\n }\n\n function getField(model: string, field: string) {\n if (field === 'id') {\n return field\n }\n const f = (schema as Record<string, any>)[model]?.fields[field]\n const fieldName = f?.fieldName || field\n debugLog(['getField: ', model, fieldName])\n return fieldName\n }\n\n function getModelName(model: string): CollectionSlug {\n const collection = (schema as Record<string, any>)[model]?.modelName || model\n if (!collection) {\n throw new BetterAuthError(`Model ${model} does not exist in the database.`)\n }\n return collection as CollectionSlug\n }\n\n function singleIdQuery(where: PayloadWhere) {\n if (!where || 'and' in where || 'or' in where) return null\n\n // For a single id query like { id: { equals: 15 } }\n // First, check if there's an id field in the where clause\n if ('id' in where || '_id' in where) {\n const idField = 'id' in where ? 'id' : '_id'\n const condition = where[idField]\n\n // Check if condition is an object with equals operator\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'equals' in condition\n ) {\n const value = condition.equals\n if (typeof value === 'string' || typeof value === 'number') {\n return value\n }\n }\n\n // Check for contains operator with single value\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'contains' in condition &&\n Array.isArray(condition.contains) &&\n condition.contains.length === 1\n ) {\n const value = condition.contains[0]\n if (typeof value === 'string' || typeof value === 'number') {\n return value\n }\n }\n }\n\n return null\n }\n\n function multipleIdsQuery(where: PayloadWhere) {\n if (!where || 'and' in where || 'or' in where) return null\n if ('id' in where || '_id' in where) {\n const idField = 'id' in where ? 'id' : '_id'\n const condition = where[idField]\n\n // Check if this is an 'in' operator with id field and array of values\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'in' in condition &&\n Array.isArray(condition.in) &&\n condition.in.length > 1 &&\n condition.in.every((id: unknown) => typeof id === 'string' || typeof id === 'number')\n ) {\n return condition.in as (number | string)[]\n }\n\n // Also check for contains operator with array of IDs\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'contains' in condition &&\n Array.isArray(condition.contains) &&\n condition.contains.length > 1 &&\n condition.contains.every((id: unknown) => typeof id === 'string' || typeof id === 'number')\n ) {\n return condition.contains as (number | string)[]\n }\n }\n\n return null\n }\n\n function transformInput(data: Record<string, any>, model: string, action: 'create' | 'update') {\n const transformedData: Record<string, any> = {}\n const schemaFields = (schema as Record<string, any>)[model].fields\n for (const dataField in data) {\n if (data[dataField] === undefined && action === 'update') {\n continue\n }\n const updatedFieldName = schemaFields[dataField]?.fieldName\n\n if (updatedFieldName) {\n if (\n schemaFields[dataField].type === 'string' &&\n typeof data[dataField] === 'number' &&\n updatedFieldName.endsWith('Id')\n ) {\n debugLog([\n 'Incoming data is typeof number but stored as typeof string',\n dataField,\n data[dataField].toString(),\n ])\n transformedData[updatedFieldName] = data[dataField].toString()\n } else {\n transformedData[updatedFieldName] = data[dataField]\n }\n } else {\n transformedData[dataField] = data[dataField]\n }\n }\n\n return transformedData\n }\n\n function transformOutput<T extends Record<string, any> | undefined>(doc: T): T {\n if (!doc || typeof doc !== 'object') return doc\n\n const result = { ...doc } as any\n\n // Scan for relationship fields that contain objects with IDs\n Object.entries(doc).forEach(([key, value]) => {\n // If the value is an object with an id property, it's likely a relationship\n if (value && typeof value === 'object' && 'id' in value) {\n // Create a new field with Id suffix containing just the ID\n const newKey = `${key}Id`\n result[newKey] = value.id\n\n //also remove the object and just keep the id\n result[key] = value.id\n\n // Keep the original value as well for backward compatibility\n } else if (Array.isArray(value)) {\n // Handle arrays of relationships\n if (value.length > 0 && typeof value[0] === 'object' && 'id' in value[0]) {\n const newKey = `${key}Ids`\n result[newKey] = value.map((item) => item.id)\n\n //also remove the object and just keep the id\n result[key] = value.map((item) => item.id)\n }\n }\n })\n\n // Scan for date fields and convert them to Date objects\n Object.entries(result).forEach(([key, value]) => {\n // Check if the field is a date string (ISO format)\n if (\n typeof value === 'string' &&\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$/.test(value)\n ) {\n result[key] = new Date(value)\n } else if (\n // Also check for date-like field names\n (key.endsWith('At') || key.endsWith('Date') || key === 'date') &&\n typeof value === 'string' &&\n !isNaN(Date.parse(value))\n ) {\n result[key] = new Date(value)\n }\n })\n\n return result as T\n }\n\n function operatorToPayload(operator: string, value: any) {\n switch (operator) {\n case 'eq':\n return { equals: value }\n case 'ne':\n return { not_equals: value }\n case 'gt':\n return { greater_than: value }\n case 'gte':\n return { greater_than_equal: value }\n case 'lt':\n return { less_than: value }\n case 'lte':\n return { less_than_equal: value }\n case 'contains':\n return { contains: value }\n case 'in':\n return { in: value }\n case 'starts_with':\n return { like: `${value}%` }\n case 'ends_with':\n return { like: `%${value}` }\n default:\n return { equals: value }\n }\n }\n\n function convertWhereValue(value: any, field: string) {\n if (field === 'id' || field === '_id') {\n if (typeof value === 'object') {\n return value.id\n }\n return value\n }\n return value\n }\n\n function convertWhereClause(model: string, where?: Where[]): PayloadWhere {\n if (!where) return {}\n if (where.length === 1) {\n const w = where[0]\n if (!w) {\n return {}\n }\n\n const field = getField(model, w.field)\n const value = convertWhereValue(w.value, field)\n\n const res = {\n [field]: operatorToPayload(w.operator ?? '', value),\n }\n\n return res\n }\n const and = where.filter((w) => w.connector === 'AND' || !w.connector)\n const or = where.filter((w) => w.connector === 'OR')\n const andClause = and.map((w) => {\n const field = getField(model, w.field)\n const value = convertWhereValue(w.value, field)\n return {\n [field]: operatorToPayload(w.operator ?? '', value),\n }\n })\n const orClause = or.map((w) => {\n const field = getField(model, w.field)\n const value = convertWhereValue(w.value, field)\n return {\n [field]: operatorToPayload(w.operator ?? '', value),\n }\n })\n\n return {\n ...(andClause.length ? { AND: andClause } : {}),\n ...(orClause.length ? { OR: orClause } : {}),\n }\n }\n\n function convertSelect(model: string, select?: string[]) {\n if (!select || select.length === 0) return undefined\n return select.reduce((acc, field) => ({ ...acc, [getField(model, field)]: true }), {})\n }\n\n function convertSort(model: string, sortBy?: { field: string; direction: 'asc' | 'desc' }) {\n if (!sortBy) return undefined\n return `${sortBy.direction === 'desc' ? '-' : ''}${getField(model, sortBy.field)}`\n }\n\n return {\n getField,\n getModelName,\n singleIdQuery,\n multipleIdsQuery,\n transformInput,\n transformOutput,\n convertWhereClause,\n convertSelect,\n convertSort,\n }\n}\n"],"names":["BetterAuthError","getAuthTables","createTransform","options","enableDebugLogs","schema","debugLog","message","console","log","getField","model","field","f","fields","fieldName","getModelName","collection","modelName","singleIdQuery","where","idField","condition","Array","isArray","value","equals","contains","length","multipleIdsQuery","in","every","id","transformInput","data","action","transformedData","schemaFields","dataField","undefined","updatedFieldName","type","endsWith","toString","transformOutput","doc","result","Object","entries","forEach","key","newKey","map","item","test","Date","isNaN","parse","operatorToPayload","operator","not_equals","greater_than","greater_than_equal","less_than","less_than_equal","like","convertWhereValue","convertWhereClause","w","res","and","filter","connector","or","andClause","orClause","AND","OR","convertSelect","select","reduce","acc","convertSort","sortBy","direction"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adapter/types.ts"],"sourcesContent":["import type { BasePayload } from \"payload\";\nimport type { AdapterInstance } from \"better-auth\";\n\nexport type PayloadAdapterOptions = {\n enableDebugLogs?: boolean;\n};\n\nexport type PayloadAdapter = (\n payloadClient: BasePayload | Promise<BasePayload> | (() => Promise<BasePayload>),\n config?: PayloadAdapterOptions\n) => AdapterInstance;\n"],"names":[],"mappings":"AAOA,WAGqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './adapter'\nexport * from './plugin'\nexport * from './types'"],"names":[],"mappings":"AAAA,cAAc,YAAW;AACzB,cAAc,WAAU;AACxB,cAAc,UAAS"}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
export const getSyncPasswordToUserHook = (options)=>{
|
|
2
|
-
const hook = async ({ doc, req, operation, context })=>{
|
|
3
|
-
if (context?.syncAccountHook) return doc;
|
|
4
|
-
if (operation !== 'create' && operation !== 'update') {
|
|
5
|
-
return doc;
|
|
6
|
-
}
|
|
7
|
-
const userField = req.payload.betterAuth.options.account?.fields?.userId || 'userId';
|
|
8
|
-
if (!doc[userField]) {
|
|
9
|
-
return doc;
|
|
10
|
-
}
|
|
11
|
-
const account = await req.payload.findByID({
|
|
12
|
-
collection: options.accountSlug,
|
|
13
|
-
id: doc.id,
|
|
14
|
-
depth: 0,
|
|
15
|
-
req,
|
|
16
|
-
showHiddenFields: true
|
|
17
|
-
});
|
|
18
|
-
if (!account || !account.password) {
|
|
19
|
-
return doc;
|
|
20
|
-
}
|
|
21
|
-
const [salt, hash] = account.password.split(':');
|
|
22
|
-
if (!salt || !hash) {
|
|
23
|
-
return doc;
|
|
24
|
-
}
|
|
25
|
-
const userId = typeof doc[userField] === 'string' ? doc[userField] : doc[userField]?.id;
|
|
26
|
-
try {
|
|
27
|
-
await req.payload.update({
|
|
28
|
-
collection: options.userSlug,
|
|
29
|
-
id: userId,
|
|
30
|
-
data: {
|
|
31
|
-
salt,
|
|
32
|
-
hash
|
|
33
|
-
},
|
|
34
|
-
req,
|
|
35
|
-
context: {
|
|
36
|
-
syncPasswordToUser: true
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
} catch (error) {
|
|
40
|
-
console.error('Failed to sync password to user:', error);
|
|
41
|
-
}
|
|
42
|
-
return doc;
|
|
43
|
-
};
|
|
44
|
-
return hook;
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
//# sourceMappingURL=sync-password-to-user.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/plugin/collections/accounts/hooks/sync-password-to-user.ts"],"sourcesContent":["import type { CollectionAfterChangeHook } from 'payload'\nimport type { CollectionHookWithBetterAuth } from '../../../types'\n\ntype CollectionAfterChangeHookWithBetterAuth =\n CollectionHookWithBetterAuth<CollectionAfterChangeHook>\n\ntype SyncPasswordToUserOptions = {\n userSlug: string\n accountSlug: string\n}\n\nexport const getSyncPasswordToUserHook = (\n options: SyncPasswordToUserOptions,\n): CollectionAfterChangeHook => {\n const hook: CollectionAfterChangeHookWithBetterAuth = async ({\n doc,\n req,\n operation,\n context,\n }) => {\n if (context?.syncAccountHook) return doc\n\n if (operation !== 'create' && operation !== 'update') {\n return doc\n }\n\n const userField = req.payload.betterAuth.options.account?.fields?.userId || 'userId'\n\n if (!doc[userField]) {\n return doc\n }\n\n const account = await req.payload.findByID({\n collection: options.accountSlug,\n id: doc.id,\n depth: 0,\n req,\n showHiddenFields: true,\n })\n\n if (!account || !account.password) {\n return doc\n }\n\n const [salt, hash] = account.password.split(':')\n\n if (!salt || !hash) {\n return doc\n }\n\n const userId = typeof doc[userField] === 'string' ? doc[userField] : doc[userField]?.id\n\n try {\n await req.payload.update({\n collection: options.userSlug,\n id: userId,\n data: {\n salt,\n hash,\n },\n req,\n context: { syncPasswordToUser: true },\n })\n } catch (error) {\n console.error('Failed to sync password to user:', error)\n }\n\n return doc\n }\n\n return hook as CollectionAfterChangeHook\n}\n"],"names":["getSyncPasswordToUserHook","options","hook","doc","req","operation","context","syncAccountHook","userField","payload","betterAuth","account","fields","userId","findByID","collection","accountSlug","id","depth","showHiddenFields","password","salt","hash","split","update","userSlug","data","syncPasswordToUser","error","console"],"mappings":"AAWA,OAAO,MAAMA,4BAA4B,CACvCC;IAEA,MAAMC,OAAgD,OAAO,EAC3DC,GAAG,EACHC,GAAG,EACHC,SAAS,EACTC,OAAO,EACR;QACC,IAAIA,SAASC,iBAAiB,OAAOJ;QAErC,IAAIE,cAAc,YAAYA,cAAc,UAAU;YACpD,OAAOF;QACT;QAEA,MAAMK,YAAYJ,IAAIK,OAAO,CAACC,UAAU,CAACT,OAAO,CAACU,OAAO,EAAEC,QAAQC,UAAU;QAE5E,IAAI,CAACV,GAAG,CAACK,UAAU,EAAE;YACnB,OAAOL;QACT;QAEA,MAAMQ,UAAU,MAAMP,IAAIK,OAAO,CAACK,QAAQ,CAAC;YACzCC,YAAYd,QAAQe,WAAW;YAC/BC,IAAId,IAAIc,EAAE;YACVC,OAAO;YACPd;YACAe,kBAAkB;QACpB;QAEA,IAAI,CAACR,WAAW,CAACA,QAAQS,QAAQ,EAAE;YACjC,OAAOjB;QACT;QAEA,MAAM,CAACkB,MAAMC,KAAK,GAAGX,QAAQS,QAAQ,CAACG,KAAK,CAAC;QAE5C,IAAI,CAACF,QAAQ,CAACC,MAAM;YAClB,OAAOnB;QACT;QAEA,MAAMU,SAAS,OAAOV,GAAG,CAACK,UAAU,KAAK,WAAWL,GAAG,CAACK,UAAU,GAAGL,GAAG,CAACK,UAAU,EAAES;QAErF,IAAI;YACF,MAAMb,IAAIK,OAAO,CAACe,MAAM,CAAC;gBACvBT,YAAYd,QAAQwB,QAAQ;gBAC5BR,IAAIJ;gBACJa,MAAM;oBACJL;oBACAC;gBACF;gBACAlB;gBACAE,SAAS;oBAAEqB,oBAAoB;gBAAK;YACtC;QACF,EAAE,OAAOC,OAAO;YACdC,QAAQD,KAAK,CAAC,oCAAoCA;QACpD;QAEA,OAAOzB;IACT;IAEA,OAAOD;AACT,EAAC"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
import { setCookieCache } from 'better-auth/cookies';
|
|
2
|
-
import { getFieldsToSign, refreshOperation } from 'payload';
|
|
3
|
-
import { getPayloadAuth } from '../../../lib/get-payload-auth';
|
|
4
|
-
export const getRefreshTokenEndpoint = (options)=>{
|
|
5
|
-
const userSlug = options?.userSlug;
|
|
6
|
-
const endpoint = {
|
|
7
|
-
path: '/refresh-token',
|
|
8
|
-
method: 'post',
|
|
9
|
-
handler: async (req)=>{
|
|
10
|
-
const payload = await getPayloadAuth(req.payload.config);
|
|
11
|
-
const betterAuth = payload.betterAuth;
|
|
12
|
-
const authContext = await betterAuth?.$context;
|
|
13
|
-
const userCollection = payload.collections[userSlug];
|
|
14
|
-
if (!betterAuth || !authContext) {
|
|
15
|
-
return new Response(JSON.stringify({
|
|
16
|
-
message: 'BetterAuth not initialized'
|
|
17
|
-
}), {
|
|
18
|
-
status: 500
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
const sessionTokenName = authContext.authCookies.sessionToken.name;
|
|
22
|
-
const cookieHeader = req.headers.get('cookie') || '';
|
|
23
|
-
const hasSessionToken = cookieHeader.includes(`${sessionTokenName}=`);
|
|
24
|
-
if (!hasSessionToken) {
|
|
25
|
-
try {
|
|
26
|
-
const result = await refreshOperation({
|
|
27
|
-
collection: userCollection,
|
|
28
|
-
req
|
|
29
|
-
});
|
|
30
|
-
return new Response(JSON.stringify(result), {
|
|
31
|
-
status: 200
|
|
32
|
-
});
|
|
33
|
-
} catch (error) {
|
|
34
|
-
console.error('Token refresh failed:', error);
|
|
35
|
-
return new Response(JSON.stringify({
|
|
36
|
-
message: 'Token refresh failed'
|
|
37
|
-
}), {
|
|
38
|
-
status: 401
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
// @ts-ignore - @TODO, fix type of .api
|
|
43
|
-
const session = await betterAuth.api.getSession({
|
|
44
|
-
headers: req.headers,
|
|
45
|
-
query: {
|
|
46
|
-
disableCookieCache: true
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
if (!session?.session?.userId) {
|
|
50
|
-
return new Response(JSON.stringify({
|
|
51
|
-
message: 'No user in session'
|
|
52
|
-
}), {
|
|
53
|
-
status: 401
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
const user = await payload.findByID({
|
|
57
|
-
collection: userSlug,
|
|
58
|
-
id: session.session.userId
|
|
59
|
-
});
|
|
60
|
-
if (!user) {
|
|
61
|
-
return new Response(JSON.stringify({
|
|
62
|
-
message: 'No user found'
|
|
63
|
-
}), {
|
|
64
|
-
status: 401
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
const cookieCacheFields = getFieldsToSign({
|
|
68
|
-
collectionConfig: userCollection.config,
|
|
69
|
-
email: user.email,
|
|
70
|
-
user: user
|
|
71
|
-
});
|
|
72
|
-
const responseData = {
|
|
73
|
-
refreshedToken: null,
|
|
74
|
-
setCookie: !!authContext.options.session?.cookieCache?.enabled,
|
|
75
|
-
strategy: 'better-auth',
|
|
76
|
-
user: {
|
|
77
|
-
...user,
|
|
78
|
-
collection: userSlug
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
const response = new Response(JSON.stringify(responseData), {
|
|
82
|
-
status: 200
|
|
83
|
-
});
|
|
84
|
-
const ctx = {
|
|
85
|
-
context: authContext,
|
|
86
|
-
setCookie (name, value, options) {
|
|
87
|
-
const path = options?.path || '/';
|
|
88
|
-
const maxAge = options?.maxAge ? `; Max-Age=${options.maxAge}` : '';
|
|
89
|
-
const httpOnly = options?.httpOnly ? '; HttpOnly' : '';
|
|
90
|
-
const secure = options?.secure ? '; Secure' : '';
|
|
91
|
-
const sameSite = options?.sameSite ? `; SameSite=${options.sameSite}` : '; SameSite=Lax';
|
|
92
|
-
response.headers.set('Set-Cookie', `${name}=${value}; Path=${path}${maxAge}${httpOnly}${secure}${sameSite}`);
|
|
93
|
-
return name;
|
|
94
|
-
}
|
|
95
|
-
};
|
|
96
|
-
await setCookieCache(ctx, {
|
|
97
|
-
session: session.session,
|
|
98
|
-
user: cookieCacheFields
|
|
99
|
-
});
|
|
100
|
-
return response;
|
|
101
|
-
}
|
|
102
|
-
};
|
|
103
|
-
return endpoint;
|
|
104
|
-
};
|
|
105
|
-
|
|
106
|
-
//# sourceMappingURL=refresh-token.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/plugin/collections/users/endpoints/refresh-token.ts"],"sourcesContent":["import { setCookieCache } from 'better-auth/cookies'\nimport { CollectionSlug, type Endpoint, getFieldsToSign, refreshOperation, User } from 'payload'\nimport { GenericEndpointContext } from 'better-auth/types'\nimport { EndpointWithBetterAuth } from '../../../types'\nimport { getPayloadAuth } from '../../../lib/get-payload-auth'\n\ntype RefreshTokenEndpointOptions = {\n userSlug: CollectionSlug\n}\n\nexport const getRefreshTokenEndpoint = (options?: RefreshTokenEndpointOptions): Endpoint => {\n const userSlug = options?.userSlug\n\n const endpoint: EndpointWithBetterAuth = {\n path: '/refresh-token',\n method: 'post',\n handler: async (req) => {\n const payload = await getPayloadAuth(req.payload.config)\n const betterAuth = payload.betterAuth\n const authContext = await betterAuth?.$context\n const userCollection = payload.collections[userSlug as CollectionSlug]\n\n if (!betterAuth || !authContext) {\n return new Response(JSON.stringify({ message: 'BetterAuth not initialized' }), {\n status: 500,\n })\n }\n\n const sessionTokenName = authContext.authCookies.sessionToken.name\n const cookieHeader = req.headers.get('cookie') || ''\n const hasSessionToken = cookieHeader.includes(`${sessionTokenName}=`)\n\n if (!hasSessionToken) {\n try {\n const result = await refreshOperation({ collection: userCollection, req })\n return new Response(JSON.stringify(result), { status: 200 })\n } catch (error) {\n console.error('Token refresh failed:', error)\n return new Response(JSON.stringify({ message: 'Token refresh failed' }), { status: 401 })\n }\n }\n\n // @ts-ignore - @TODO, fix type of .api\n const session = await betterAuth.api.getSession({\n headers: req.headers,\n query: { disableCookieCache: true },\n })\n\n if (!session?.session?.userId) {\n return new Response(JSON.stringify({ message: 'No user in session' }), { status: 401 })\n }\n\n const user = await payload.findByID({\n collection: userSlug as string,\n id: session.session.userId,\n })\n\n if (!user) {\n return new Response(JSON.stringify({ message: 'No user found' }), { status: 401 })\n }\n\n const cookieCacheFields = getFieldsToSign({\n collectionConfig: userCollection.config,\n email: user.email,\n user: user as User,\n })\n\n const responseData = {\n refreshedToken: null,\n setCookie: !!authContext.options.session?.cookieCache?.enabled,\n strategy: 'better-auth',\n user: { ...user, collection: userSlug },\n }\n\n const response = new Response(JSON.stringify(responseData), {\n status: 200,\n })\n\n const ctx = {\n context: authContext,\n setCookie(name, value, options) {\n const path = options?.path || '/'\n const maxAge = options?.maxAge ? `; Max-Age=${options.maxAge}` : ''\n const httpOnly = options?.httpOnly ? '; HttpOnly' : ''\n const secure = options?.secure ? '; Secure' : ''\n const sameSite = options?.sameSite ? `; SameSite=${options.sameSite}` : '; SameSite=Lax'\n\n response.headers.set(\n 'Set-Cookie',\n `${name}=${value}; Path=${path}${maxAge}${httpOnly}${secure}${sameSite}`,\n )\n return name\n },\n } as GenericEndpointContext\n\n await setCookieCache(ctx, {\n session: session.session,\n user: cookieCacheFields as any,\n })\n\n return response\n },\n }\n\n return endpoint as unknown as Endpoint\n}\n"],"names":["setCookieCache","getFieldsToSign","refreshOperation","getPayloadAuth","getRefreshTokenEndpoint","options","userSlug","endpoint","path","method","handler","req","payload","config","betterAuth","authContext","$context","userCollection","collections","Response","JSON","stringify","message","status","sessionTokenName","authCookies","sessionToken","name","cookieHeader","headers","get","hasSessionToken","includes","result","collection","error","console","session","api","getSession","query","disableCookieCache","userId","user","findByID","id","cookieCacheFields","collectionConfig","email","responseData","refreshedToken","setCookie","cookieCache","enabled","strategy","response","ctx","context","value","maxAge","httpOnly","secure","sameSite","set"],"mappings":"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"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { generateId } from 'better-auth';
|
|
2
|
-
import { createAuthMiddleware } from 'better-auth/api';
|
|
3
|
-
import { setCookieCache } from 'better-auth/cookies';
|
|
4
|
-
import { parseSetCookie } from 'next/dist/compiled/@edge-runtime/cookies';
|
|
5
|
-
import { cookies } from 'next/headers';
|
|
6
|
-
import { getPayloadAuth } from '../../../lib/get-payload-auth';
|
|
7
|
-
import { getIp } from '../../../helpers/get-ip';
|
|
8
|
-
import { prepareSessionData } from '../../../lib/prepare-session-data';
|
|
9
|
-
/**
|
|
10
|
-
* This hook is used to sync the admin login token with better-auth session token
|
|
11
|
-
* It also creates a new session in better-auth
|
|
12
|
-
*/ export const getAfterLoginHook = (options)=>{
|
|
13
|
-
const hook = async ({ collection, context, req, token, user })=>{
|
|
14
|
-
const config = req.payload.config;
|
|
15
|
-
const payload = await getPayloadAuth(config);
|
|
16
|
-
const cookieStore = await cookies();
|
|
17
|
-
const authContext = await payload.betterAuth.$context;
|
|
18
|
-
const sessionExpiration = payload.betterAuth.options.session?.expiresIn || 60 * 60 * 24 * 7 // 7 days
|
|
19
|
-
;
|
|
20
|
-
// we can't use internal adapter as we can cause a race condition unless we pass req to the payload.create
|
|
21
|
-
const session = await payload.create({
|
|
22
|
-
collection: options.sessionsCollectionSlug,
|
|
23
|
-
data: {
|
|
24
|
-
ipAddress: getIp(req.headers, payload.betterAuth.options) || '',
|
|
25
|
-
userAgent: req.headers?.get('user-agent') || '',
|
|
26
|
-
user: user.id,
|
|
27
|
-
token: generateId(32),
|
|
28
|
-
expiresAt: new Date(Date.now() + sessionExpiration * 1000)
|
|
29
|
-
},
|
|
30
|
-
req
|
|
31
|
-
});
|
|
32
|
-
const betterAuthHandleRequest = createAuthMiddleware(async (ctx)=>{
|
|
33
|
-
ctx.context = {
|
|
34
|
-
...authContext,
|
|
35
|
-
user: user
|
|
36
|
-
};
|
|
37
|
-
await ctx.setSignedCookie(ctx.context.authCookies.sessionToken.name, session.token, ctx.context.secret, ctx.context.authCookies.sessionToken.options);
|
|
38
|
-
const filteredSessionData = await prepareSessionData({
|
|
39
|
-
newSession: {
|
|
40
|
-
session,
|
|
41
|
-
user
|
|
42
|
-
},
|
|
43
|
-
payloadConfig: config,
|
|
44
|
-
collectionSlugs: {
|
|
45
|
-
userCollectionSlug: options.usersCollectionSlug,
|
|
46
|
-
sessionCollectionSlug: options.sessionsCollectionSlug
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
await setCookieCache(ctx, filteredSessionData);
|
|
50
|
-
if ('responseHeaders' in ctx) {
|
|
51
|
-
return ctx.responseHeaders;
|
|
52
|
-
}
|
|
53
|
-
return null;
|
|
54
|
-
});
|
|
55
|
-
const responseHeaders = await betterAuthHandleRequest(req);
|
|
56
|
-
const responseCookies = responseHeaders?.getSetCookie().map((cookie)=>parseSetCookie(cookie)).filter(Boolean);
|
|
57
|
-
if (responseCookies) {
|
|
58
|
-
for (const cookieData of responseCookies){
|
|
59
|
-
const { name, value, ...options } = cookieData;
|
|
60
|
-
cookieStore.set({
|
|
61
|
-
...options,
|
|
62
|
-
name,
|
|
63
|
-
value: decodeURIComponent(value)
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
return hook;
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
//# sourceMappingURL=after-login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/plugin/collections/users/hooks/after-login.ts"],"sourcesContent":["import { generateId, Session } from 'better-auth'\nimport { createAuthMiddleware } from 'better-auth/api'\nimport { setCookieCache } from 'better-auth/cookies'\nimport { parseSetCookie, type ResponseCookie } from 'next/dist/compiled/@edge-runtime/cookies'\nimport { cookies } from 'next/headers'\nimport { CollectionAfterLoginHook } from 'payload'\nimport { getPayloadAuth } from '../../../lib/get-payload-auth'\nimport { getIp } from '../../../helpers/get-ip'\nimport { prepareSessionData } from '../../../lib/prepare-session-data'\n\ntype AfterLoginOptions = {\n usersCollectionSlug: string\n sessionsCollectionSlug: string\n}\n\n/**\n * This hook is used to sync the admin login token with better-auth session token\n * It also creates a new session in better-auth\n */\nexport const getAfterLoginHook = (options: AfterLoginOptions): CollectionAfterLoginHook => {\n const hook: CollectionAfterLoginHook = async ({ collection, context, req, token, user }) => {\n const config = req.payload.config\n const payload = await getPayloadAuth(config)\n const cookieStore = await cookies()\n const authContext = await payload.betterAuth.$context\n\n const sessionExpiration = payload.betterAuth.options.session?.expiresIn || 60 * 60 * 24 * 7 // 7 days\n // we can't use internal adapter as we can cause a race condition unless we pass req to the payload.create\n const session = (await payload.create({\n collection: options.sessionsCollectionSlug,\n data: {\n ipAddress: getIp(req.headers, payload.betterAuth.options) || '',\n userAgent: req.headers?.get('user-agent') || '',\n user: user.id,\n token: generateId(32),\n expiresAt: new Date(Date.now() + sessionExpiration * 1000),\n },\n req,\n })) as Session\n\n const betterAuthHandleRequest = createAuthMiddleware(async (ctx): Promise<Headers | null> => {\n ctx.context = { ...authContext, user: user }\n await ctx.setSignedCookie(\n ctx.context.authCookies.sessionToken.name,\n session.token,\n ctx.context.secret,\n ctx.context.authCookies.sessionToken.options,\n )\n const filteredSessionData = await prepareSessionData({\n newSession: { session, user },\n payloadConfig: config,\n collectionSlugs: {\n userCollectionSlug: options.usersCollectionSlug,\n sessionCollectionSlug: options.sessionsCollectionSlug,\n },\n })\n await setCookieCache(ctx, filteredSessionData as any)\n if ('responseHeaders' in ctx) {\n return ctx.responseHeaders as Headers\n }\n return null\n })\n\n const responseHeaders = await betterAuthHandleRequest(req)\n const responseCookies = responseHeaders\n ?.getSetCookie()\n .map((cookie) => parseSetCookie(cookie))\n .filter(Boolean) as ResponseCookie[]\n\n if (responseCookies) {\n for (const cookieData of responseCookies) {\n const { name, value, ...options } = cookieData\n cookieStore.set({\n ...options,\n name,\n value: decodeURIComponent(value),\n })\n }\n }\n }\n\n return hook as CollectionAfterLoginHook\n}\n"],"names":["generateId","createAuthMiddleware","setCookieCache","parseSetCookie","cookies","getPayloadAuth","getIp","prepareSessionData","getAfterLoginHook","options","hook","collection","context","req","token","user","config","payload","cookieStore","authContext","betterAuth","$context","sessionExpiration","session","expiresIn","create","sessionsCollectionSlug","data","ipAddress","headers","userAgent","get","id","expiresAt","Date","now","betterAuthHandleRequest","ctx","setSignedCookie","authCookies","sessionToken","name","secret","filteredSessionData","newSession","payloadConfig","collectionSlugs","userCollectionSlug","usersCollectionSlug","sessionCollectionSlug","responseHeaders","responseCookies","getSetCookie","map","cookie","filter","Boolean","cookieData","value","set","decodeURIComponent"],"mappings":"AAAA,SAASA,UAAU,QAAiB,cAAa;AACjD,SAASC,oBAAoB,QAAQ,kBAAiB;AACtD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,cAAc,QAA6B,2CAA0C;AAC9F,SAASC,OAAO,QAAQ,eAAc;AAEtC,SAASC,cAAc,QAAQ,gCAA+B;AAC9D,SAASC,KAAK,QAAQ,0BAAyB;AAC/C,SAASC,kBAAkB,QAAQ,oCAAmC;AAOtE;;;CAGC,GACD,OAAO,MAAMC,oBAAoB,CAACC;IAChC,MAAMC,OAAiC,OAAO,EAAEC,UAAU,EAAEC,OAAO,EAAEC,GAAG,EAAEC,KAAK,EAAEC,IAAI,EAAE;QACrF,MAAMC,SAASH,IAAII,OAAO,CAACD,MAAM;QACjC,MAAMC,UAAU,MAAMZ,eAAeW;QACrC,MAAME,cAAc,MAAMd;QAC1B,MAAMe,cAAc,MAAMF,QAAQG,UAAU,CAACC,QAAQ;QAErD,MAAMC,oBAAoBL,QAAQG,UAAU,CAACX,OAAO,CAACc,OAAO,EAAEC,aAAa,KAAK,KAAK,KAAK,EAAE,SAAS;;QACrG,0GAA0G;QAC1G,MAAMD,UAAW,MAAMN,QAAQQ,MAAM,CAAC;YACpCd,YAAYF,QAAQiB,sBAAsB;YAC1CC,MAAM;gBACJC,WAAWtB,MAAMO,IAAIgB,OAAO,EAAEZ,QAAQG,UAAU,CAACX,OAAO,KAAK;gBAC7DqB,WAAWjB,IAAIgB,OAAO,EAAEE,IAAI,iBAAiB;gBAC7ChB,MAAMA,KAAKiB,EAAE;gBACblB,OAAOd,WAAW;gBAClBiC,WAAW,IAAIC,KAAKA,KAAKC,GAAG,KAAKb,oBAAoB;YACvD;YACAT;QACF;QAEA,MAAMuB,0BAA0BnC,qBAAqB,OAAOoC;YAC1DA,IAAIzB,OAAO,GAAG;gBAAE,GAAGO,WAAW;gBAAEJ,MAAMA;YAAK;YAC3C,MAAMsB,IAAIC,eAAe,CACvBD,IAAIzB,OAAO,CAAC2B,WAAW,CAACC,YAAY,CAACC,IAAI,EACzClB,QAAQT,KAAK,EACbuB,IAAIzB,OAAO,CAAC8B,MAAM,EAClBL,IAAIzB,OAAO,CAAC2B,WAAW,CAACC,YAAY,CAAC/B,OAAO;YAE9C,MAAMkC,sBAAsB,MAAMpC,mBAAmB;gBACnDqC,YAAY;oBAAErB;oBAASR;gBAAK;gBAC5B8B,eAAe7B;gBACf8B,iBAAiB;oBACfC,oBAAoBtC,QAAQuC,mBAAmB;oBAC/CC,uBAAuBxC,QAAQiB,sBAAsB;gBACvD;YACF;YACA,MAAMxB,eAAemC,KAAKM;YAC1B,IAAI,qBAAqBN,KAAK;gBAC5B,OAAOA,IAAIa,eAAe;YAC5B;YACA,OAAO;QACT;QAEA,MAAMA,kBAAkB,MAAMd,wBAAwBvB;QACtD,MAAMsC,kBAAkBD,iBACpBE,eACDC,IAAI,CAACC,SAAWnD,eAAemD,SAC/BC,OAAOC;QAEV,IAAIL,iBAAiB;YACnB,KAAK,MAAMM,cAAcN,gBAAiB;gBACxC,MAAM,EAAEV,IAAI,EAAEiB,KAAK,EAAE,GAAGjD,SAAS,GAAGgD;gBACpCvC,YAAYyC,GAAG,CAAC;oBACd,GAAGlD,OAAO;oBACVgC;oBACAiB,OAAOE,mBAAmBF;gBAC5B;YACF;QACF;IACF;IAEA,OAAOhD;AACT,EAAC"}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { cookies } from 'next/headers';
|
|
2
|
-
import { getPayloadAuth } from '../../../lib/get-payload-auth';
|
|
3
|
-
export const getAfterLogoutHook = (options)=>{
|
|
4
|
-
const hook = async ({ req })=>{
|
|
5
|
-
const cookieStore = await cookies();
|
|
6
|
-
const payload = await getPayloadAuth(req.payload.config);
|
|
7
|
-
const authContext = await payload.betterAuth.$context;
|
|
8
|
-
const sessionTokenName = authContext.authCookies.sessionToken.name;
|
|
9
|
-
const sessionDataName = authContext.authCookies.sessionData.name;
|
|
10
|
-
const dontRememberTokenName = authContext.authCookies.dontRememberToken.name;
|
|
11
|
-
const sessionCookieValue = cookieStore.get(sessionTokenName)?.value;
|
|
12
|
-
if (sessionCookieValue) {
|
|
13
|
-
const payload = req.payload;
|
|
14
|
-
const [token] = sessionCookieValue.split('.');
|
|
15
|
-
const { docs: sessions } = await payload.find({
|
|
16
|
-
collection: options.sessionsCollectionSlug,
|
|
17
|
-
where: {
|
|
18
|
-
token: {
|
|
19
|
-
equals: token
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
limit: 1
|
|
23
|
-
});
|
|
24
|
-
const session = sessions.at(0);
|
|
25
|
-
if (session) {
|
|
26
|
-
await payload.delete({
|
|
27
|
-
collection: options.sessionsCollectionSlug,
|
|
28
|
-
id: session.id
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
const baseMultiSessionName = sessionTokenName + '_multi';
|
|
33
|
-
const multiSessionCookies = cookieStore.getAll();
|
|
34
|
-
multiSessionCookies.forEach((cookie)=>{
|
|
35
|
-
if (cookie.name.startsWith(baseMultiSessionName)) {
|
|
36
|
-
cookieStore.delete(cookie.name);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
//TODO: this is a hack to delete the admin session cookie
|
|
40
|
-
// we need to find a better way to do this (BETTER AUTH HARDCODED THIS)
|
|
41
|
-
cookieStore.delete('admin_session');
|
|
42
|
-
cookieStore.delete(sessionTokenName);
|
|
43
|
-
cookieStore.delete(sessionDataName);
|
|
44
|
-
cookieStore.delete(dontRememberTokenName);
|
|
45
|
-
};
|
|
46
|
-
return hook;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
//# sourceMappingURL=after-logout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/plugin/collections/users/hooks/after-logout.ts"],"sourcesContent":["import { cookies } from 'next/headers'\nimport type { CollectionAfterLogoutHook } from 'payload'\nimport type { CollectionHookWithBetterAuth } from '../../../types'\nimport { getPayloadAuth } from '../../../lib/get-payload-auth'\n\ntype CollectionAfterLogoutHookWithBetterAuth =\n CollectionHookWithBetterAuth<CollectionAfterLogoutHook>\n\ntype AfterLogoutOptions = {\n sessionsCollectionSlug: string\n}\n\nexport const getAfterLogoutHook = (options: AfterLogoutOptions): CollectionAfterLogoutHook => {\n const hook: CollectionAfterLogoutHookWithBetterAuth = async ({ req }) => {\n const cookieStore = await cookies()\n const payload = await getPayloadAuth(req.payload.config)\n const authContext = await payload.betterAuth.$context\n const sessionTokenName = authContext.authCookies.sessionToken.name\n\n const sessionDataName = authContext.authCookies.sessionData.name\n const dontRememberTokenName = authContext.authCookies.dontRememberToken.name\n\n const sessionCookieValue = cookieStore.get(sessionTokenName)?.value\n if (sessionCookieValue) {\n const payload = req.payload\n const [token] = sessionCookieValue.split('.')\n const { docs: sessions } = await payload.find({\n collection: options.sessionsCollectionSlug,\n where: {\n token: { equals: token },\n },\n limit: 1,\n })\n const session = sessions.at(0)\n if (session) {\n await payload.delete({\n collection: options.sessionsCollectionSlug,\n id: session.id,\n })\n }\n }\n\n const baseMultiSessionName = sessionTokenName + '_multi'\n const multiSessionCookies = cookieStore.getAll()\n multiSessionCookies.forEach((cookie) => {\n if (cookie.name.startsWith(baseMultiSessionName)) {\n cookieStore.delete(cookie.name)\n }\n })\n\n //TODO: this is a hack to delete the admin session cookie\n // we need to find a better way to do this (BETTER AUTH HARDCODED THIS)\n cookieStore.delete('admin_session')\n\n cookieStore.delete(sessionTokenName)\n cookieStore.delete(sessionDataName)\n cookieStore.delete(dontRememberTokenName)\n }\n\n return hook as CollectionAfterLogoutHook\n}\n"],"names":["cookies","getPayloadAuth","getAfterLogoutHook","options","hook","req","cookieStore","payload","config","authContext","betterAuth","$context","sessionTokenName","authCookies","sessionToken","name","sessionDataName","sessionData","dontRememberTokenName","dontRememberToken","sessionCookieValue","get","value","token","split","docs","sessions","find","collection","sessionsCollectionSlug","where","equals","limit","session","at","delete","id","baseMultiSessionName","multiSessionCookies","getAll","forEach","cookie","startsWith"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAc;AAGtC,SAASC,cAAc,QAAQ,gCAA+B;AAS9D,OAAO,MAAMC,qBAAqB,CAACC;IACjC,MAAMC,OAAgD,OAAO,EAAEC,GAAG,EAAE;QAClE,MAAMC,cAAc,MAAMN;QAC1B,MAAMO,UAAU,MAAMN,eAAeI,IAAIE,OAAO,CAACC,MAAM;QACvD,MAAMC,cAAc,MAAMF,QAAQG,UAAU,CAACC,QAAQ;QACrD,MAAMC,mBAAmBH,YAAYI,WAAW,CAACC,YAAY,CAACC,IAAI;QAElE,MAAMC,kBAAkBP,YAAYI,WAAW,CAACI,WAAW,CAACF,IAAI;QAChE,MAAMG,wBAAwBT,YAAYI,WAAW,CAACM,iBAAiB,CAACJ,IAAI;QAE5E,MAAMK,qBAAqBd,YAAYe,GAAG,CAACT,mBAAmBU;QAC9D,IAAIF,oBAAoB;YACtB,MAAMb,UAAUF,IAAIE,OAAO;YAC3B,MAAM,CAACgB,MAAM,GAAGH,mBAAmBI,KAAK,CAAC;YACzC,MAAM,EAAEC,MAAMC,QAAQ,EAAE,GAAG,MAAMnB,QAAQoB,IAAI,CAAC;gBAC5CC,YAAYzB,QAAQ0B,sBAAsB;gBAC1CC,OAAO;oBACLP,OAAO;wBAAEQ,QAAQR;oBAAM;gBACzB;gBACAS,OAAO;YACT;YACA,MAAMC,UAAUP,SAASQ,EAAE,CAAC;YAC5B,IAAID,SAAS;gBACX,MAAM1B,QAAQ4B,MAAM,CAAC;oBACnBP,YAAYzB,QAAQ0B,sBAAsB;oBAC1CO,IAAIH,QAAQG,EAAE;gBAChB;YACF;QACF;QAEA,MAAMC,uBAAuBzB,mBAAmB;QAChD,MAAM0B,sBAAsBhC,YAAYiC,MAAM;QAC9CD,oBAAoBE,OAAO,CAAC,CAACC;YAC3B,IAAIA,OAAO1B,IAAI,CAAC2B,UAAU,CAACL,uBAAuB;gBAChD/B,YAAY6B,MAAM,CAACM,OAAO1B,IAAI;YAChC;QACF;QAEA,yDAAyD;QACzD,uEAAuE;QACvET,YAAY6B,MAAM,CAAC;QAEnB7B,YAAY6B,MAAM,CAACvB;QACnBN,YAAY6B,MAAM,CAACnB;QACnBV,YAAY6B,MAAM,CAACjB;IACrB;IAEA,OAAOd;AACT,EAAC"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { APIError } from 'payload';
|
|
2
|
-
import { getPayloadAuth } from '../../../lib/get-payload-auth';
|
|
3
|
-
/**
|
|
4
|
-
* This hook blocks login attempts if email verification is required and the user's email is not verified
|
|
5
|
-
*/ export const getBeforeLoginHook = ()=>{
|
|
6
|
-
const hook = async ({ req, user })=>{
|
|
7
|
-
const config = req.payload.config;
|
|
8
|
-
const payload = await getPayloadAuth(config);
|
|
9
|
-
const requireEmailVerification = payload.betterAuth.options.emailAndPassword?.requireEmailVerification ?? false;
|
|
10
|
-
if (requireEmailVerification && !user.emailVerified) {
|
|
11
|
-
throw new APIError('Email verification required. Please verify your email before logging in.', 403);
|
|
12
|
-
}
|
|
13
|
-
return user;
|
|
14
|
-
};
|
|
15
|
-
return hook;
|
|
16
|
-
};
|
|
17
|
-
|
|
18
|
-
//# sourceMappingURL=before-login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/plugin/collections/users/hooks/before-login.ts"],"sourcesContent":["import { APIError, CollectionBeforeLoginHook } from 'payload'\nimport { getPayloadAuth } from '../../../lib/get-payload-auth'\n\n/**\n * This hook blocks login attempts if email verification is required and the user's email is not verified\n */\nexport const getBeforeLoginHook = (): CollectionBeforeLoginHook => {\n const hook: CollectionBeforeLoginHook = async ({ req, user }) => {\n const config = req.payload.config\n const payload = await getPayloadAuth(config)\n\n const requireEmailVerification =\n payload.betterAuth.options.emailAndPassword?.requireEmailVerification ?? false\n\n if (requireEmailVerification && !user.emailVerified) {\n throw new APIError(\n 'Email verification required. Please verify your email before logging in.',\n 403,\n )\n }\n\n return user\n }\n\n return hook\n}\n"],"names":["APIError","getPayloadAuth","getBeforeLoginHook","hook","req","user","config","payload","requireEmailVerification","betterAuth","options","emailAndPassword","emailVerified"],"mappings":"AAAA,SAASA,QAAQ,QAAmC,UAAS;AAC7D,SAASC,cAAc,QAAQ,gCAA+B;AAE9D;;CAEC,GACD,OAAO,MAAMC,qBAAqB;IAChC,MAAMC,OAAkC,OAAO,EAAEC,GAAG,EAAEC,IAAI,EAAE;QAC1D,MAAMC,SAASF,IAAIG,OAAO,CAACD,MAAM;QACjC,MAAMC,UAAU,MAAMN,eAAeK;QAErC,MAAME,2BACJD,QAAQE,UAAU,CAACC,OAAO,CAACC,gBAAgB,EAAEH,4BAA4B;QAE3E,IAAIA,4BAA4B,CAACH,KAAKO,aAAa,EAAE;YACnD,MAAM,IAAIZ,SACR,4EACA;QAEJ;QAEA,OAAOK;IACT;IAEA,OAAOF;AACT,EAAC"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import type { CollectionAfterDeleteHook } from 'payload';
|
|
2
|
-
import type { CollectionHookWithBetterAuth } from '../../../types';
|
|
3
|
-
type CollectionAfterDeleteHookWithBetterAuth = CollectionHookWithBetterAuth<CollectionAfterDeleteHook>;
|
|
4
|
-
export declare const cleanUpUserAfterDelete: CollectionAfterDeleteHookWithBetterAuth;
|
|
5
|
-
export {};
|