payload-auth 1.0.2 → 1.1.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.
- package/dist/better-auth/adapter/index.d.ts +2 -2
- package/dist/better-auth/adapter/index.d.ts.map +1 -1
- package/dist/better-auth/adapter/index.js +115 -69
- package/dist/better-auth/adapter/transform/index.d.ts +22 -10
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
- package/dist/better-auth/adapter/transform/index.js +387 -96
- package/dist/better-auth/adapter/types.d.ts +2 -1
- package/dist/better-auth/adapter/types.d.ts.map +1 -1
- package/dist/better-auth/adapter/types.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.map +1 -1
- 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 +1 -1
- package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -1
- 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 +1 -1
- package/dist/better-auth/plugin/helpers/index.js +2 -2
- package/dist/better-auth/plugin/{lib → helpers}/prepare-session-data.d.ts +3 -3
- 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 +4 -4
- package/dist/better-auth/plugin/helpers/serialize-cookie.d.ts.map +1 -1
- package/dist/better-auth/plugin/helpers/serialize-cookie.js +34 -34
- package/dist/better-auth/plugin/index.d.ts +7 -7
- package/dist/better-auth/plugin/index.d.ts.map +1 -1
- 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 +1 -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 +1 -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 +1 -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 +1 -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 +1 -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} +1 -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} +13 -1
- 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 +2 -2
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/get-payload-auth.js +2 -2
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +4 -4
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +26 -43
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts +4 -3
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/init-better-auth.js +7 -7
- 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} +1 -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/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 -6
- 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 +3 -2
- package/dist/better-auth/plugin/payload/components/logo.d.ts.map +1 -1
- 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 +6 -3
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/exports/client.js +7 -4
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts +9 -5
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -1
- 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 +10 -4
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts.map +1 -1
- 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 +10 -5
- package/dist/better-auth/plugin/payload/views/login/index.d.ts.map +1 -1
- 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 +170 -33
- package/dist/better-auth/plugin/types.d.ts.map +1 -1
- package/dist/better-auth/plugin/types.js +1 -1
- package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts +1 -1
- package/dist/clerk/plugin/components/sync-clerk-users-button.d.ts.map +1 -1
- package/dist/clerk/utils/clerk-user.d.ts +0 -3
- package/dist/clerk/utils/clerk-user.d.ts.map +1 -1
- package/dist/clerk/utils/clerk-user.js +1 -3
- package/dist/clerk/utils/load-clerk-instance.d.ts +1 -1
- package/dist/clerk/utils/load-clerk-instance.d.ts.map +1 -1
- package/package.json +14 -14
- package/LICENSE.md +0 -17
- package/dist/better-auth/adapter/dev/bin/run.d.ts +0 -2
- package/dist/better-auth/adapter/dev/bin/run.d.ts.map +0 -1
- package/dist/better-auth/adapter/dev/bin/run.js +0 -64
- package/dist/better-auth/adapter/dev/bin/schema.d.ts +0 -23
- package/dist/better-auth/adapter/dev/bin/schema.d.ts.map +0 -1
- package/dist/better-auth/adapter/dev/bin/schema.js +0 -160
- package/dist/better-auth/adapter/dev/collections.d.ts +0 -4
- package/dist/better-auth/adapter/dev/collections.d.ts.map +0 -1
- package/dist/better-auth/adapter/dev/collections.js +0 -212
- package/dist/better-auth/adapter/dev/index.d.ts +0 -4
- package/dist/better-auth/adapter/dev/index.d.ts.map +0 -1
- package/dist/better-auth/adapter/dev/index.js +0 -168
- package/dist/better-auth/adapter/test/adapter.test.d.ts +0 -2
- package/dist/better-auth/adapter/test/adapter.test.d.ts.map +0 -1
- package/dist/better-auth/adapter/test/adapter.test.js +0 -181
- package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +0 -8
- package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts.map +0 -1
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js +0 -425
- package/dist/better-auth/adapter/test/schema.test.d.ts +0 -2
- package/dist/better-auth/adapter/test/schema.test.d.ts.map +0 -1
- package/dist/better-auth/adapter/test/schema.test.js +0 -796
- package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +0 -24
- package/dist/better-auth/adapter/test/test_payload1/schema.d.ts.map +0 -1
- package/dist/better-auth/adapter/test/test_payload1/schema.js +0 -177
- package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +0 -24
- package/dist/better-auth/adapter/test/test_payload2/schema.d.ts.map +0 -1
- package/dist/better-auth/adapter/test/test_payload2/schema.js +0 -167
- package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +0 -24
- package/dist/better-auth/adapter/test/test_payload3/schema.d.ts.map +0 -1
- package/dist/better-auth/adapter/test/test_payload3/schema.js +0 -198
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +0 -47
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +0 -7
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +0 -106
- package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts.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-logout.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +0 -49
- package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/before-login.js +0 -18
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +0 -6
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +0 -33
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +0 -3
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +0 -14
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts.map +0 -1
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +0 -82
- package/dist/better-auth/plugin/lib/auth-strategy.d.ts +0 -9
- package/dist/better-auth/plugin/lib/auth-strategy.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/auth-strategy.js +0 -48
- package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +0 -12
- package/dist/better-auth/plugin/lib/build-collection-configs.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/build-collection-configs.js +0 -1558
- package/dist/better-auth/plugin/lib/config.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/config.js +0 -44
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +0 -24
- package/dist/better-auth/plugin/lib/password.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/password.js +0 -63
- package/dist/better-auth/plugin/lib/payload-access.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/payload-access.js +0 -64
- package/dist/better-auth/plugin/lib/prepare-session-data.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/prepare-session-data.js +0 -42
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +0 -30
- package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +0 -6
- package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js +0 -298
- package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +0 -7
- package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons.js +0 -219
- package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +0 -2
- package/dist/better-auth/plugin/payload/components/login-redirect.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/login-redirect.js +0 -6
- package/dist/better-auth/plugin/payload/components/logout.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/logout.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/logout.js +0 -61
- package/dist/better-auth/plugin/payload/components/sign-in.d.ts +0 -4
- package/dist/better-auth/plugin/payload/components/sign-in.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-in.js +0 -384
- package/dist/better-auth/plugin/payload/components/sign-up.d.ts +0 -7
- package/dist/better-auth/plugin/payload/components/sign-up.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-up.js +0 -503
- package/dist/better-auth/plugin/payload/components/ui/button.d.ts +0 -11
- package/dist/better-auth/plugin/payload/components/ui/button.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/button.js +0 -42
- package/dist/better-auth/plugin/payload/components/ui/card.d.ts +0 -10
- package/dist/better-auth/plugin/payload/components/ui/card.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/card.js +0 -55
- package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +0 -5
- package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js +0 -23
- package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/ui/cn.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/cn.js +0 -7
- package/dist/better-auth/plugin/payload/components/ui/input.d.ts +0 -4
- package/dist/better-auth/plugin/payload/components/ui/input.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/input.js +0 -14
- package/dist/better-auth/plugin/payload/components/ui/label.d.ts +0 -5
- package/dist/better-auth/plugin/payload/components/ui/label.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/label.js +0 -15
- package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +0 -3
- package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/password-input.js +0 -55
- /package/dist/better-auth/plugin/lib/{password.d.ts → sanitize-better-auth-options/utils/password.d.ts} +0 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { CollectionBeforeDeleteHook } from "payload";
|
|
2
|
+
export declare const getBeforeDeleteHook: ({ accountsSlug, sessionsSlug, verificationsSlug, }: {
|
|
3
|
+
accountsSlug: string;
|
|
4
|
+
sessionsSlug: string;
|
|
5
|
+
verificationsSlug: string;
|
|
6
|
+
}) => CollectionBeforeDeleteHook;
|
|
7
|
+
//# sourceMappingURL=before-delete.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"before-delete.d.ts","sourceRoot":"","sources":["../../../../../../../src/better-auth/plugin/lib/build-collections/users/hooks/before-delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE1D,eAAO,MAAM,mBAAmB,GAAI,oDAIjC;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,KAAG,0BA+CH,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
export const getBeforeDeleteHook = ({ accountsSlug, sessionsSlug, verificationsSlug })=>{
|
|
2
|
+
const hook = async ({ req, id })=>{
|
|
3
|
+
try {
|
|
4
|
+
const { payload } = req;
|
|
5
|
+
const userId = id;
|
|
6
|
+
// Delete accounts
|
|
7
|
+
await payload.delete({
|
|
8
|
+
collection: accountsSlug,
|
|
9
|
+
where: {
|
|
10
|
+
user: {
|
|
11
|
+
equals: userId
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
req
|
|
15
|
+
});
|
|
16
|
+
// Delete sessions
|
|
17
|
+
await payload.delete({
|
|
18
|
+
collection: sessionsSlug,
|
|
19
|
+
where: {
|
|
20
|
+
user: {
|
|
21
|
+
equals: userId
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
req
|
|
25
|
+
});
|
|
26
|
+
// Delete any verifications
|
|
27
|
+
await payload.delete({
|
|
28
|
+
collection: verificationsSlug,
|
|
29
|
+
where: {
|
|
30
|
+
value: {
|
|
31
|
+
like: `"${userId}"`
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
req
|
|
35
|
+
});
|
|
36
|
+
return;
|
|
37
|
+
} catch (error) {
|
|
38
|
+
console.error("Error in user afterDelete hook:", error);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
return hook;
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL2JlZm9yZS1kZWxldGUudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQmVmb3JlRGVsZXRlSG9vayB9IGZyb20gXCJwYXlsb2FkXCI7XG5cbmV4cG9ydCBjb25zdCBnZXRCZWZvcmVEZWxldGVIb29rID0gKHtcbiAgYWNjb3VudHNTbHVnLFxuICBzZXNzaW9uc1NsdWcsXG4gIHZlcmlmaWNhdGlvbnNTbHVnLFxufToge1xuICBhY2NvdW50c1NsdWc6IHN0cmluZztcbiAgc2Vzc2lvbnNTbHVnOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbnNTbHVnOiBzdHJpbmc7XG59KTogQ29sbGVjdGlvbkJlZm9yZURlbGV0ZUhvb2sgPT4ge1xuICBjb25zdCBob29rOiBDb2xsZWN0aW9uQmVmb3JlRGVsZXRlSG9vayA9IGFzeW5jICh7IHJlcSwgaWQgfSkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCB7IHBheWxvYWQgfSA9IHJlcTtcbiAgICAgIGNvbnN0IHVzZXJJZCA9IGlkO1xuXG4gICAgICAvLyBEZWxldGUgYWNjb3VudHNcbiAgICAgIGF3YWl0IHBheWxvYWQuZGVsZXRlKHtcbiAgICAgICAgY29sbGVjdGlvbjogYWNjb3VudHNTbHVnLFxuICAgICAgICB3aGVyZToge1xuICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgIGVxdWFsczogdXNlcklkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBEZWxldGUgc2Vzc2lvbnNcbiAgICAgIGF3YWl0IHBheWxvYWQuZGVsZXRlKHtcbiAgICAgICAgY29sbGVjdGlvbjogc2Vzc2lvbnNTbHVnLFxuICAgICAgICB3aGVyZToge1xuICAgICAgICAgIHVzZXI6IHtcbiAgICAgICAgICAgIGVxdWFsczogdXNlcklkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlcSxcbiAgICAgIH0pO1xuXG4gICAgICAvLyBEZWxldGUgYW55IHZlcmlmaWNhdGlvbnNcbiAgICAgIGF3YWl0IHBheWxvYWQuZGVsZXRlKHtcbiAgICAgICAgY29sbGVjdGlvbjogdmVyaWZpY2F0aW9uc1NsdWcsXG4gICAgICAgIHdoZXJlOiB7XG4gICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgIGxpa2U6IGBcIiR7dXNlcklkfVwiYCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICByZXEsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3IgaW4gdXNlciBhZnRlckRlbGV0ZSBob29rOlwiLCBlcnJvcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiBob29rO1xufTtcbiJdLCJuYW1lcyI6WyJnZXRCZWZvcmVEZWxldGVIb29rIiwiYWNjb3VudHNTbHVnIiwic2Vzc2lvbnNTbHVnIiwidmVyaWZpY2F0aW9uc1NsdWciLCJob29rIiwicmVxIiwiaWQiLCJwYXlsb2FkIiwidXNlcklkIiwiZGVsZXRlIiwiY29sbGVjdGlvbiIsIndoZXJlIiwidXNlciIsImVxdWFscyIsInZhbHVlIiwibGlrZSIsImVycm9yIiwiY29uc29sZSJdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxNQUFNQSxzQkFBc0IsQ0FBQyxFQUNsQ0MsWUFBWSxFQUNaQyxZQUFZLEVBQ1pDLGlCQUFpQixFQUtsQjtJQUNDLE1BQU1DLE9BQW1DLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxFQUFFLEVBQUU7UUFDekQsSUFBSTtZQUNGLE1BQU0sRUFBRUMsT0FBTyxFQUFFLEdBQUdGO1lBQ3BCLE1BQU1HLFNBQVNGO1lBRWYsa0JBQWtCO1lBQ2xCLE1BQU1DLFFBQVFFLE1BQU0sQ0FBQztnQkFDbkJDLFlBQVlUO2dCQUNaVSxPQUFPO29CQUNMQyxNQUFNO3dCQUNKQyxRQUFRTDtvQkFDVjtnQkFDRjtnQkFDQUg7WUFDRjtZQUVBLGtCQUFrQjtZQUNsQixNQUFNRSxRQUFRRSxNQUFNLENBQUM7Z0JBQ25CQyxZQUFZUjtnQkFDWlMsT0FBTztvQkFDTEMsTUFBTTt3QkFDSkMsUUFBUUw7b0JBQ1Y7Z0JBQ0Y7Z0JBQ0FIO1lBQ0Y7WUFFQSwyQkFBMkI7WUFDM0IsTUFBTUUsUUFBUUUsTUFBTSxDQUFDO2dCQUNuQkMsWUFBWVA7Z0JBQ1pRLE9BQU87b0JBQ0xHLE9BQU87d0JBQ0xDLE1BQU0sQ0FBQyxDQUFDLEVBQUVQLE9BQU8sQ0FBQyxDQUFDO29CQUNyQjtnQkFDRjtnQkFDQUg7WUFDRjtZQUVBO1FBQ0YsRUFBRSxPQUFPVyxPQUFPO1lBQ2RDLFFBQVFELEtBQUssQ0FBQyxtQ0FBbUNBO1lBQ2pEO1FBQ0Y7SUFDRjtJQUVBLE9BQU9aO0FBQ1QsRUFBRSJ9
|
|
@@ -0,0 +1 @@
|
|
|
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;AAG9D;;GAEG;AACH,eAAO,MAAM,kBAAkB,QAAO,yBAoBrC,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
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=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL2JlZm9yZS1sb2dpbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElFcnJvciwgQ29sbGVjdGlvbkJlZm9yZUxvZ2luSG9vayB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgeyBnZXRQYXlsb2FkQXV0aCB9IGZyb20gXCIuLi8uLi8uLi8uLi9saWIvZ2V0LXBheWxvYWQtYXV0aFwiO1xuXG4vKipcbiAqIFRoaXMgaG9vayBibG9ja3MgbG9naW4gYXR0ZW1wdHMgaWYgZW1haWwgdmVyaWZpY2F0aW9uIGlzIHJlcXVpcmVkIGFuZCB0aGUgdXNlcidzIGVtYWlsIGlzIG5vdCB2ZXJpZmllZFxuICovXG5leHBvcnQgY29uc3QgZ2V0QmVmb3JlTG9naW5Ib29rID0gKCk6IENvbGxlY3Rpb25CZWZvcmVMb2dpbkhvb2sgPT4ge1xuICBjb25zdCBob29rOiBDb2xsZWN0aW9uQmVmb3JlTG9naW5Ib29rID0gYXN5bmMgKHsgcmVxLCB1c2VyIH0pID0+IHtcbiAgICBjb25zdCBjb25maWcgPSByZXEucGF5bG9hZC5jb25maWc7XG4gICAgY29uc3QgcGF5bG9hZCA9IGF3YWl0IGdldFBheWxvYWRBdXRoKGNvbmZpZyk7XG5cbiAgICBjb25zdCByZXF1aXJlRW1haWxWZXJpZmljYXRpb24gPVxuICAgICAgcGF5bG9hZC5iZXR0ZXJBdXRoLm9wdGlvbnMuZW1haWxBbmRQYXNzd29yZD8ucmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uID8/XG4gICAgICBmYWxzZTtcblxuICAgIGlmIChyZXF1aXJlRW1haWxWZXJpZmljYXRpb24gJiYgIXVzZXIuZW1haWxWZXJpZmllZCkge1xuICAgICAgdGhyb3cgbmV3IEFQSUVycm9yKFxuICAgICAgICBcIkVtYWlsIHZlcmlmaWNhdGlvbiByZXF1aXJlZC4gUGxlYXNlIHZlcmlmeSB5b3VyIGVtYWlsIGJlZm9yZSBsb2dnaW5nIGluLlwiLFxuICAgICAgICA0MDNcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHVzZXI7XG4gIH07XG5cbiAgcmV0dXJuIGhvb2s7XG59O1xuIl0sIm5hbWVzIjpbIkFQSUVycm9yIiwiZ2V0UGF5bG9hZEF1dGgiLCJnZXRCZWZvcmVMb2dpbkhvb2siLCJob29rIiwicmVxIiwidXNlciIsImNvbmZpZyIsInBheWxvYWQiLCJyZXF1aXJlRW1haWxWZXJpZmljYXRpb24iLCJiZXR0ZXJBdXRoIiwib3B0aW9ucyIsImVtYWlsQW5kUGFzc3dvcmQiLCJlbWFpbFZlcmlmaWVkIl0sIm1hcHBpbmdzIjoiQUFBQSxTQUFTQSxRQUFRLFFBQW1DLFVBQVU7QUFDOUQsU0FBU0MsY0FBYyxRQUFRLG1DQUFtQztBQUVsRTs7Q0FFQyxHQUNELE9BQU8sTUFBTUMscUJBQXFCO0lBQ2hDLE1BQU1DLE9BQWtDLE9BQU8sRUFBRUMsR0FBRyxFQUFFQyxJQUFJLEVBQUU7UUFDMUQsTUFBTUMsU0FBU0YsSUFBSUcsT0FBTyxDQUFDRCxNQUFNO1FBQ2pDLE1BQU1DLFVBQVUsTUFBTU4sZUFBZUs7UUFFckMsTUFBTUUsMkJBQ0pELFFBQVFFLFVBQVUsQ0FBQ0MsT0FBTyxDQUFDQyxnQkFBZ0IsRUFBRUgsNEJBQzdDO1FBRUYsSUFBSUEsNEJBQTRCLENBQUNILEtBQUtPLGFBQWEsRUFBRTtZQUNuRCxNQUFNLElBQUlaLFNBQ1IsNEVBQ0E7UUFFSjtRQUVBLE9BQU9LO0lBQ1Q7SUFFQSxPQUFPRjtBQUNULEVBQUUifQ==
|
|
@@ -0,0 +1 @@
|
|
|
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,eAAO,MAAM,gBAAgB,EAAE,0BAkB9B,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export const onVerifiedChange = async ({ data, originalDoc })=>{
|
|
2
|
+
const isVerifiedChangingToTrue = Boolean(data._verified) && !Boolean(originalDoc?._verified);
|
|
3
|
+
const isEmailVerifiedChangingToTrue = Boolean(data.emailVerified) && !Boolean(originalDoc?.emailVerified);
|
|
4
|
+
if (!isVerifiedChangingToTrue && !isEmailVerifiedChangingToTrue) {
|
|
5
|
+
return data;
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
...data,
|
|
9
|
+
_verified: true,
|
|
10
|
+
emailVerified: true
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL29uLXZlcmlmaWVkLWNoYW5nZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uQmVmb3JlQ2hhbmdlSG9vayB9IGZyb20gXCJwYXlsb2FkXCI7XG5cbmV4cG9ydCBjb25zdCBvblZlcmlmaWVkQ2hhbmdlOiBDb2xsZWN0aW9uQmVmb3JlQ2hhbmdlSG9vayA9IGFzeW5jICh7XG4gIGRhdGEsXG4gIG9yaWdpbmFsRG9jLFxufSkgPT4ge1xuICBjb25zdCBpc1ZlcmlmaWVkQ2hhbmdpbmdUb1RydWUgPVxuICAgIEJvb2xlYW4oZGF0YS5fdmVyaWZpZWQpICYmICFCb29sZWFuKG9yaWdpbmFsRG9jPy5fdmVyaWZpZWQpO1xuICBjb25zdCBpc0VtYWlsVmVyaWZpZWRDaGFuZ2luZ1RvVHJ1ZSA9XG4gICAgQm9vbGVhbihkYXRhLmVtYWlsVmVyaWZpZWQpICYmICFCb29sZWFuKG9yaWdpbmFsRG9jPy5lbWFpbFZlcmlmaWVkKTtcblxuICBpZiAoIWlzVmVyaWZpZWRDaGFuZ2luZ1RvVHJ1ZSAmJiAhaXNFbWFpbFZlcmlmaWVkQ2hhbmdpbmdUb1RydWUpIHtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgLi4uZGF0YSxcbiAgICBfdmVyaWZpZWQ6IHRydWUsXG4gICAgZW1haWxWZXJpZmllZDogdHJ1ZSxcbiAgfTtcbn07XG4iXSwibmFtZXMiOlsib25WZXJpZmllZENoYW5nZSIsImRhdGEiLCJvcmlnaW5hbERvYyIsImlzVmVyaWZpZWRDaGFuZ2luZ1RvVHJ1ZSIsIkJvb2xlYW4iLCJfdmVyaWZpZWQiLCJpc0VtYWlsVmVyaWZpZWRDaGFuZ2luZ1RvVHJ1ZSIsImVtYWlsVmVyaWZpZWQiXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sTUFBTUEsbUJBQStDLE9BQU8sRUFDakVDLElBQUksRUFDSkMsV0FBVyxFQUNaO0lBQ0MsTUFBTUMsMkJBQ0pDLFFBQVFILEtBQUtJLFNBQVMsS0FBSyxDQUFDRCxRQUFRRixhQUFhRztJQUNuRCxNQUFNQyxnQ0FDSkYsUUFBUUgsS0FBS00sYUFBYSxLQUFLLENBQUNILFFBQVFGLGFBQWFLO0lBRXZELElBQUksQ0FBQ0osNEJBQTRCLENBQUNHLCtCQUErQjtRQUMvRCxPQUFPTDtJQUNUO0lBRUEsT0FBTztRQUNMLEdBQUdBLElBQUk7UUFDUEksV0FBVztRQUNYRSxlQUFlO0lBQ2pCO0FBQ0YsRUFBRSJ9
|
|
@@ -0,0 +1 @@
|
|
|
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;AAOzD,KAAK,kBAAkB,GAAG;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,SAAS,kBAAkB,KAC1B,yBA+EF,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { BETTER_AUTH_CONTEXT_KEY } from "../../../../../adapter";
|
|
2
|
+
export const getSyncAccountHook = (options)=>{
|
|
3
|
+
const hook = async ({ doc, req, operation, context })=>{
|
|
4
|
+
if (context?.syncPasswordToUser) return doc;
|
|
5
|
+
if (operation !== "create" && operation !== "update") return doc;
|
|
6
|
+
const user = await req.payload.findByID({
|
|
7
|
+
collection: options.userSlug,
|
|
8
|
+
id: doc.id,
|
|
9
|
+
depth: 0,
|
|
10
|
+
req,
|
|
11
|
+
showHiddenFields: true
|
|
12
|
+
});
|
|
13
|
+
if (!user || !user.hash || !user.salt) return doc;
|
|
14
|
+
const passwordValue = `${user.salt}:${user.hash}`;
|
|
15
|
+
const userField = req.payload.betterAuth.options.account?.fields?.userId || "userId";
|
|
16
|
+
if (operation === "create" && !(BETTER_AUTH_CONTEXT_KEY in context)) {
|
|
17
|
+
try {
|
|
18
|
+
await req.payload.create({
|
|
19
|
+
collection: options.accountSlug,
|
|
20
|
+
data: {
|
|
21
|
+
[userField]: doc.id,
|
|
22
|
+
accountId: doc.id.toString(),
|
|
23
|
+
providerId: "credential",
|
|
24
|
+
password: passwordValue,
|
|
25
|
+
context: {
|
|
26
|
+
syncAccountHook: true
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
req
|
|
30
|
+
});
|
|
31
|
+
} catch (error) {
|
|
32
|
+
console.error("Failed to create account for user:", error);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
if (operation === "update") {
|
|
36
|
+
try {
|
|
37
|
+
const accounts = await req.payload.find({
|
|
38
|
+
collection: options.accountSlug,
|
|
39
|
+
where: {
|
|
40
|
+
and: [
|
|
41
|
+
{
|
|
42
|
+
[userField]: {
|
|
43
|
+
equals: doc.id
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
providerId: {
|
|
48
|
+
equals: "credential"
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
req,
|
|
54
|
+
depth: 0,
|
|
55
|
+
context: {
|
|
56
|
+
syncAccountHook: true
|
|
57
|
+
}
|
|
58
|
+
});
|
|
59
|
+
const account = accounts.docs.at(0);
|
|
60
|
+
if (account) {
|
|
61
|
+
await req.payload.update({
|
|
62
|
+
collection: options.accountSlug,
|
|
63
|
+
id: account.id,
|
|
64
|
+
data: {
|
|
65
|
+
password: passwordValue
|
|
66
|
+
},
|
|
67
|
+
req,
|
|
68
|
+
context: {
|
|
69
|
+
syncAccountHook: true
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
} catch (error) {
|
|
74
|
+
console.error("Failed to sync hash/salt to account:", error);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return doc;
|
|
78
|
+
};
|
|
79
|
+
return hook;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2hvb2tzL3N5bmMtYWNjb3VudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uSG9va1dpdGhCZXR0ZXJBdXRoIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3R5cGVzXCI7XG5pbXBvcnQgeyBCRVRURVJfQVVUSF9DT05URVhUX0tFWSB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi9hZGFwdGVyXCI7XG5cbnR5cGUgQ29sbGVjdGlvbkFmdGVyQ2hhbmdlSG9va1dpdGhCZXR0ZXJBdXRoID1cbiAgQ29sbGVjdGlvbkhvb2tXaXRoQmV0dGVyQXV0aDxDb2xsZWN0aW9uQWZ0ZXJDaGFuZ2VIb29rPjtcblxudHlwZSBTeW5jQWNjb3VudE9wdGlvbnMgPSB7XG4gIHVzZXJTbHVnOiBzdHJpbmc7XG4gIGFjY291bnRTbHVnOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U3luY0FjY291bnRIb29rID0gKFxuICBvcHRpb25zOiBTeW5jQWNjb3VudE9wdGlvbnNcbik6IENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2sgPT4ge1xuICBjb25zdCBob29rOiBDb2xsZWN0aW9uQWZ0ZXJDaGFuZ2VIb29rV2l0aEJldHRlckF1dGggPSBhc3luYyAoe1xuICAgIGRvYyxcbiAgICByZXEsXG4gICAgb3BlcmF0aW9uLFxuICAgIGNvbnRleHQsXG4gIH0pID0+IHtcbiAgICBpZiAoY29udGV4dD8uc3luY1Bhc3N3b3JkVG9Vc2VyKSByZXR1cm4gZG9jO1xuXG4gICAgaWYgKG9wZXJhdGlvbiAhPT0gXCJjcmVhdGVcIiAmJiBvcGVyYXRpb24gIT09IFwidXBkYXRlXCIpIHJldHVybiBkb2M7XG5cbiAgICBjb25zdCB1c2VyID0gYXdhaXQgcmVxLnBheWxvYWQuZmluZEJ5SUQoe1xuICAgICAgY29sbGVjdGlvbjogb3B0aW9ucy51c2VyU2x1ZyxcbiAgICAgIGlkOiBkb2MuaWQsXG4gICAgICBkZXB0aDogMCxcbiAgICAgIHJlcSxcbiAgICAgIHNob3dIaWRkZW5GaWVsZHM6IHRydWUsXG4gICAgfSk7XG5cbiAgICBpZiAoIXVzZXIgfHwgIXVzZXIuaGFzaCB8fCAhdXNlci5zYWx0KSByZXR1cm4gZG9jO1xuXG4gICAgY29uc3QgcGFzc3dvcmRWYWx1ZSA9IGAke3VzZXIuc2FsdH06JHt1c2VyLmhhc2h9YDtcbiAgICBjb25zdCB1c2VyRmllbGQgPVxuICAgICAgcmVxLnBheWxvYWQuYmV0dGVyQXV0aC5vcHRpb25zLmFjY291bnQ/LmZpZWxkcz8udXNlcklkIHx8IFwidXNlcklkXCI7XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSBcImNyZWF0ZVwiICYmICEoQkVUVEVSX0FVVEhfQ09OVEVYVF9LRVkgaW4gY29udGV4dCkpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHJlcS5wYXlsb2FkLmNyZWF0ZSh7XG4gICAgICAgICAgY29sbGVjdGlvbjogb3B0aW9ucy5hY2NvdW50U2x1ZyxcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBbdXNlckZpZWxkXTogZG9jLmlkLFxuICAgICAgICAgICAgYWNjb3VudElkOiBkb2MuaWQudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIHByb3ZpZGVySWQ6IFwiY3JlZGVudGlhbFwiLFxuICAgICAgICAgICAgcGFzc3dvcmQ6IHBhc3N3b3JkVmFsdWUsXG4gICAgICAgICAgICBjb250ZXh0OiB7IHN5bmNBY2NvdW50SG9vazogdHJ1ZSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmVxLFxuICAgICAgICB9KTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoXCJGYWlsZWQgdG8gY3JlYXRlIGFjY291bnQgZm9yIHVzZXI6XCIsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAob3BlcmF0aW9uID09PSBcInVwZGF0ZVwiKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBhY2NvdW50cyA9IGF3YWl0IHJlcS5wYXlsb2FkLmZpbmQoe1xuICAgICAgICAgIGNvbGxlY3Rpb246IG9wdGlvbnMuYWNjb3VudFNsdWcsXG4gICAgICAgICAgd2hlcmU6IHtcbiAgICAgICAgICAgIGFuZDogW1xuICAgICAgICAgICAgICB7IFt1c2VyRmllbGRdOiB7IGVxdWFsczogZG9jLmlkIH0gfSxcbiAgICAgICAgICAgICAgeyBwcm92aWRlcklkOiB7IGVxdWFsczogXCJjcmVkZW50aWFsXCIgfSB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcSxcbiAgICAgICAgICBkZXB0aDogMCxcbiAgICAgICAgICBjb250ZXh0OiB7IHN5bmNBY2NvdW50SG9vazogdHJ1ZSB9LFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBhY2NvdW50ID0gYWNjb3VudHMuZG9jcy5hdCgwKTtcbiAgICAgICAgaWYgKGFjY291bnQpIHtcbiAgICAgICAgICBhd2FpdCByZXEucGF5bG9hZC51cGRhdGUoe1xuICAgICAgICAgICAgY29sbGVjdGlvbjogb3B0aW9ucy5hY2NvdW50U2x1ZyxcbiAgICAgICAgICAgIGlkOiBhY2NvdW50LmlkLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICBwYXNzd29yZDogcGFzc3dvcmRWYWx1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICByZXEsXG4gICAgICAgICAgICBjb250ZXh0OiB7IHN5bmNBY2NvdW50SG9vazogdHJ1ZSB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmVycm9yKFwiRmFpbGVkIHRvIHN5bmMgaGFzaC9zYWx0IHRvIGFjY291bnQ6XCIsIGVycm9yKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZG9jO1xuICB9O1xuXG4gIHJldHVybiBob29rIGFzIENvbGxlY3Rpb25BZnRlckNoYW5nZUhvb2s7XG59O1xuIl0sIm5hbWVzIjpbIkJFVFRFUl9BVVRIX0NPTlRFWFRfS0VZIiwiZ2V0U3luY0FjY291bnRIb29rIiwib3B0aW9ucyIsImhvb2siLCJkb2MiLCJyZXEiLCJvcGVyYXRpb24iLCJjb250ZXh0Iiwic3luY1Bhc3N3b3JkVG9Vc2VyIiwidXNlciIsInBheWxvYWQiLCJmaW5kQnlJRCIsImNvbGxlY3Rpb24iLCJ1c2VyU2x1ZyIsImlkIiwiZGVwdGgiLCJzaG93SGlkZGVuRmllbGRzIiwiaGFzaCIsInNhbHQiLCJwYXNzd29yZFZhbHVlIiwidXNlckZpZWxkIiwiYmV0dGVyQXV0aCIsImFjY291bnQiLCJmaWVsZHMiLCJ1c2VySWQiLCJjcmVhdGUiLCJhY2NvdW50U2x1ZyIsImRhdGEiLCJhY2NvdW50SWQiLCJ0b1N0cmluZyIsInByb3ZpZGVySWQiLCJwYXNzd29yZCIsInN5bmNBY2NvdW50SG9vayIsImVycm9yIiwiY29uc29sZSIsImFjY291bnRzIiwiZmluZCIsIndoZXJlIiwiYW5kIiwiZXF1YWxzIiwiZG9jcyIsImF0IiwidXBkYXRlIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSx1QkFBdUIsUUFBUSx5QkFBeUI7QUFVakUsT0FBTyxNQUFNQyxxQkFBcUIsQ0FDaENDO0lBRUEsTUFBTUMsT0FBZ0QsT0FBTyxFQUMzREMsR0FBRyxFQUNIQyxHQUFHLEVBQ0hDLFNBQVMsRUFDVEMsT0FBTyxFQUNSO1FBQ0MsSUFBSUEsU0FBU0Msb0JBQW9CLE9BQU9KO1FBRXhDLElBQUlFLGNBQWMsWUFBWUEsY0FBYyxVQUFVLE9BQU9GO1FBRTdELE1BQU1LLE9BQU8sTUFBTUosSUFBSUssT0FBTyxDQUFDQyxRQUFRLENBQUM7WUFDdENDLFlBQVlWLFFBQVFXLFFBQVE7WUFDNUJDLElBQUlWLElBQUlVLEVBQUU7WUFDVkMsT0FBTztZQUNQVjtZQUNBVyxrQkFBa0I7UUFDcEI7UUFFQSxJQUFJLENBQUNQLFFBQVEsQ0FBQ0EsS0FBS1EsSUFBSSxJQUFJLENBQUNSLEtBQUtTLElBQUksRUFBRSxPQUFPZDtRQUU5QyxNQUFNZSxnQkFBZ0IsR0FBR1YsS0FBS1MsSUFBSSxDQUFDLENBQUMsRUFBRVQsS0FBS1EsSUFBSSxFQUFFO1FBQ2pELE1BQU1HLFlBQ0pmLElBQUlLLE9BQU8sQ0FBQ1csVUFBVSxDQUFDbkIsT0FBTyxDQUFDb0IsT0FBTyxFQUFFQyxRQUFRQyxVQUFVO1FBRTVELElBQUlsQixjQUFjLFlBQVksQ0FBRU4sQ0FBQUEsMkJBQTJCTyxPQUFNLEdBQUk7WUFDbkUsSUFBSTtnQkFDRixNQUFNRixJQUFJSyxPQUFPLENBQUNlLE1BQU0sQ0FBQztvQkFDdkJiLFlBQVlWLFFBQVF3QixXQUFXO29CQUMvQkMsTUFBTTt3QkFDSixDQUFDUCxVQUFVLEVBQUVoQixJQUFJVSxFQUFFO3dCQUNuQmMsV0FBV3hCLElBQUlVLEVBQUUsQ0FBQ2UsUUFBUTt3QkFDMUJDLFlBQVk7d0JBQ1pDLFVBQVVaO3dCQUNWWixTQUFTOzRCQUFFeUIsaUJBQWlCO3dCQUFLO29CQUNuQztvQkFDQTNCO2dCQUNGO1lBQ0YsRUFBRSxPQUFPNEIsT0FBTztnQkFDZEMsUUFBUUQsS0FBSyxDQUFDLHNDQUFzQ0E7WUFDdEQ7UUFDRjtRQUVBLElBQUkzQixjQUFjLFVBQVU7WUFDMUIsSUFBSTtnQkFDRixNQUFNNkIsV0FBVyxNQUFNOUIsSUFBSUssT0FBTyxDQUFDMEIsSUFBSSxDQUFDO29CQUN0Q3hCLFlBQVlWLFFBQVF3QixXQUFXO29CQUMvQlcsT0FBTzt3QkFDTEMsS0FBSzs0QkFDSDtnQ0FBRSxDQUFDbEIsVUFBVSxFQUFFO29DQUFFbUIsUUFBUW5DLElBQUlVLEVBQUU7Z0NBQUM7NEJBQUU7NEJBQ2xDO2dDQUFFZ0IsWUFBWTtvQ0FBRVMsUUFBUTtnQ0FBYTs0QkFBRTt5QkFDeEM7b0JBQ0g7b0JBQ0FsQztvQkFDQVUsT0FBTztvQkFDUFIsU0FBUzt3QkFBRXlCLGlCQUFpQjtvQkFBSztnQkFDbkM7Z0JBRUEsTUFBTVYsVUFBVWEsU0FBU0ssSUFBSSxDQUFDQyxFQUFFLENBQUM7Z0JBQ2pDLElBQUluQixTQUFTO29CQUNYLE1BQU1qQixJQUFJSyxPQUFPLENBQUNnQyxNQUFNLENBQUM7d0JBQ3ZCOUIsWUFBWVYsUUFBUXdCLFdBQVc7d0JBQy9CWixJQUFJUSxRQUFRUixFQUFFO3dCQUNkYSxNQUFNOzRCQUNKSSxVQUFVWjt3QkFDWjt3QkFDQWQ7d0JBQ0FFLFNBQVM7NEJBQUV5QixpQkFBaUI7d0JBQUs7b0JBQ25DO2dCQUNGO1lBQ0YsRUFBRSxPQUFPQyxPQUFPO2dCQUNkQyxRQUFRRCxLQUFLLENBQUMsd0NBQXdDQTtZQUN4RDtRQUNGO1FBRUEsT0FBTzdCO0lBQ1Q7SUFFQSxPQUFPRDtBQUNULEVBQUUifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { CollectionConfig } from "payload";
|
|
2
|
+
import type { BetterAuthPluginOptions, SanitizedBetterAuthOptions } from "../../../types";
|
|
3
|
+
export declare function buildUsersCollection({ incomingCollections, pluginOptions, betterAuthOptions, }: {
|
|
4
|
+
incomingCollections: CollectionConfig[];
|
|
5
|
+
pluginOptions: BetterAuthPluginOptions;
|
|
6
|
+
betterAuthOptions: SanitizedBetterAuthOptions;
|
|
7
|
+
}): CollectionConfig;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/users/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,KAAK,EACV,uBAAuB,EACvB,0BAA0B,EAC3B,MAAM,gBAAgB,CAAC;AA0BxB,wBAAgB,oBAAoB,CAAC,EACnC,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,EAAE;IACD,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,aAAa,EAAE,uBAAuB,CAAC;IACvC,iBAAiB,EAAE,0BAA0B,CAAC;CAC/C,oBA2VA"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
import { baseCollectionSlugs } from "../../constants";
|
|
2
|
+
import { isAdminOrCurrentUserUpdateWithAllowedFields, isAdminOrCurrentUserWithRoles, isAdminWithRoles } from "../utils/payload-access";
|
|
3
|
+
import { getRefreshTokenEndpoint } from "./endpoints/refresh-token";
|
|
4
|
+
import { onVerifiedChange } from "./hooks/on-verified-change";
|
|
5
|
+
import { getSyncAccountHook } from "./hooks/sync-account";
|
|
6
|
+
import { getBeforeLoginHook } from "./hooks/before-login";
|
|
7
|
+
import { getAfterLoginHook } from "./hooks/after-login";
|
|
8
|
+
import { getAfterLogoutHook } from "./hooks/after-logout";
|
|
9
|
+
import { getBeforeDeleteHook } from "./hooks/before-delete";
|
|
10
|
+
import { betterAuthStrategy } from "./better-auth-strategy";
|
|
11
|
+
import { getTimestampFields } from "../utils/get-timestamp-fields";
|
|
12
|
+
import { getLoginEndpoint } from "./endpoints/login";
|
|
13
|
+
import { getAllRoleOptions } from "../../../helpers/get-all-roles";
|
|
14
|
+
import { getForgotPasswordEndpoint } from "./endpoints/forgot-password";
|
|
15
|
+
import { getSignupEndpoint } from "./endpoints/signup";
|
|
16
|
+
import { getSetAdminRoleEndpoint } from "./endpoints/set-admin-role";
|
|
17
|
+
import { getResetPasswordEndpoint } from "./endpoints/reset-password";
|
|
18
|
+
import { getGenerateInviteUrlEndpoint } from "./endpoints/generate-invite-url";
|
|
19
|
+
import { getSendInviteUrlEndpoint } from "./endpoints/send-invite-url";
|
|
20
|
+
import { checkUsernamePlugin } from "../../../helpers/check-username-plugin";
|
|
21
|
+
export function buildUsersCollection({ incomingCollections, pluginOptions, betterAuthOptions }) {
|
|
22
|
+
const userSlug = pluginOptions.users?.slug ?? baseCollectionSlugs.users;
|
|
23
|
+
const accountSlug = pluginOptions.accounts?.slug ?? baseCollectionSlugs.accounts;
|
|
24
|
+
const sessionSlug = pluginOptions.sessions?.slug ?? baseCollectionSlugs.sessions;
|
|
25
|
+
const verificationsSlug = pluginOptions.verifications?.slug ?? baseCollectionSlugs.verifications;
|
|
26
|
+
const baPlugins = betterAuthOptions.plugins ?? null;
|
|
27
|
+
const adminRoles = pluginOptions.users?.adminRoles ?? [
|
|
28
|
+
"admin"
|
|
29
|
+
];
|
|
30
|
+
const allRoleOptions = getAllRoleOptions(pluginOptions);
|
|
31
|
+
const hasUsernamePlugin = checkUsernamePlugin(betterAuthOptions);
|
|
32
|
+
const existingUserCollection = incomingCollections.find((collection)=>collection.slug === userSlug);
|
|
33
|
+
const allowedFields = pluginOptions.users?.allowedFields ?? [
|
|
34
|
+
"name"
|
|
35
|
+
];
|
|
36
|
+
const baseUrl = betterAuthOptions.baseURL ?? process.env.NEXT_PUBLIC_URL ?? "http://localhost:3000";
|
|
37
|
+
let usersCollection = {
|
|
38
|
+
...existingUserCollection,
|
|
39
|
+
slug: userSlug,
|
|
40
|
+
admin: {
|
|
41
|
+
defaultColumns: [
|
|
42
|
+
"email"
|
|
43
|
+
],
|
|
44
|
+
useAsTitle: "email",
|
|
45
|
+
group: pluginOptions?.collectionAdminGroup ?? "Auth",
|
|
46
|
+
...existingUserCollection?.admin,
|
|
47
|
+
hidden: pluginOptions.users?.hidden ?? false,
|
|
48
|
+
components: {
|
|
49
|
+
Description: {
|
|
50
|
+
path: "payload-auth/better-auth/plugin/client#AdminInviteButton",
|
|
51
|
+
clientProps: {
|
|
52
|
+
roles: allRoleOptions
|
|
53
|
+
}
|
|
54
|
+
},
|
|
55
|
+
views: {
|
|
56
|
+
edit: {
|
|
57
|
+
adminButtons: {
|
|
58
|
+
tab: {
|
|
59
|
+
Component: {
|
|
60
|
+
path: "payload-auth/better-auth/plugin/client#AdminButtons",
|
|
61
|
+
clientProps: {
|
|
62
|
+
userSlug
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
condition: ()=>{
|
|
66
|
+
// Only show the impersonate button if the admin plugin is enabled
|
|
67
|
+
return (baPlugins && baPlugins.some((plugin)=>plugin.id === "admin")) ?? false;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
},
|
|
75
|
+
access: {
|
|
76
|
+
admin: ({ req })=>adminRoles.includes(req.user?.role ?? "user"),
|
|
77
|
+
read: isAdminOrCurrentUserWithRoles({
|
|
78
|
+
adminRoles,
|
|
79
|
+
idField: "id"
|
|
80
|
+
}),
|
|
81
|
+
create: isAdminWithRoles({
|
|
82
|
+
adminRoles
|
|
83
|
+
}),
|
|
84
|
+
delete: isAdminOrCurrentUserWithRoles({
|
|
85
|
+
adminRoles,
|
|
86
|
+
idField: "id"
|
|
87
|
+
}),
|
|
88
|
+
update: isAdminOrCurrentUserUpdateWithAllowedFields({
|
|
89
|
+
allowedFields,
|
|
90
|
+
adminRoles,
|
|
91
|
+
userSlug
|
|
92
|
+
}),
|
|
93
|
+
...existingUserCollection?.access ?? {}
|
|
94
|
+
},
|
|
95
|
+
endpoints: [
|
|
96
|
+
...existingUserCollection?.endpoints ? existingUserCollection.endpoints : [],
|
|
97
|
+
...pluginOptions.disableDefaultPayloadAuth ? [
|
|
98
|
+
getLoginEndpoint(betterAuthOptions)
|
|
99
|
+
] : [],
|
|
100
|
+
getSetAdminRoleEndpoint(pluginOptions, pluginOptions.users?.slug ?? "users"),
|
|
101
|
+
getGenerateInviteUrlEndpoint({
|
|
102
|
+
roles: allRoleOptions,
|
|
103
|
+
baseUrl,
|
|
104
|
+
pluginOptions
|
|
105
|
+
}),
|
|
106
|
+
getSendInviteUrlEndpoint(),
|
|
107
|
+
getSignupEndpoint(pluginOptions, betterAuthOptions),
|
|
108
|
+
getRefreshTokenEndpoint(userSlug),
|
|
109
|
+
getForgotPasswordEndpoint(),
|
|
110
|
+
getResetPasswordEndpoint()
|
|
111
|
+
],
|
|
112
|
+
hooks: {
|
|
113
|
+
beforeChange: [
|
|
114
|
+
...existingUserCollection?.hooks?.beforeChange ?? [],
|
|
115
|
+
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
116
|
+
onVerifiedChange
|
|
117
|
+
]
|
|
118
|
+
],
|
|
119
|
+
afterChange: [
|
|
120
|
+
...existingUserCollection?.hooks?.afterChange ?? [],
|
|
121
|
+
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
122
|
+
getSyncAccountHook({
|
|
123
|
+
userSlug,
|
|
124
|
+
accountSlug
|
|
125
|
+
})
|
|
126
|
+
]
|
|
127
|
+
],
|
|
128
|
+
beforeLogin: [
|
|
129
|
+
...existingUserCollection?.hooks?.beforeLogin ?? [],
|
|
130
|
+
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
131
|
+
getBeforeLoginHook()
|
|
132
|
+
]
|
|
133
|
+
],
|
|
134
|
+
afterLogin: [
|
|
135
|
+
...existingUserCollection?.hooks?.afterLogin ?? [],
|
|
136
|
+
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
137
|
+
getAfterLoginHook({
|
|
138
|
+
sessionsCollectionSlug: sessionSlug,
|
|
139
|
+
usersCollectionSlug: userSlug
|
|
140
|
+
})
|
|
141
|
+
]
|
|
142
|
+
],
|
|
143
|
+
afterLogout: [
|
|
144
|
+
...existingUserCollection?.hooks?.afterLogout ?? [],
|
|
145
|
+
getAfterLogoutHook({
|
|
146
|
+
sessionsCollectionSlug: sessionSlug
|
|
147
|
+
})
|
|
148
|
+
],
|
|
149
|
+
beforeDelete: [
|
|
150
|
+
...existingUserCollection?.hooks?.beforeDelete ?? [],
|
|
151
|
+
getBeforeDeleteHook({
|
|
152
|
+
accountsSlug: accountSlug,
|
|
153
|
+
sessionsSlug: sessionSlug,
|
|
154
|
+
verificationsSlug: verificationsSlug
|
|
155
|
+
})
|
|
156
|
+
]
|
|
157
|
+
},
|
|
158
|
+
auth: {
|
|
159
|
+
...existingUserCollection && typeof existingUserCollection.auth === "object" ? existingUserCollection.auth : {},
|
|
160
|
+
disableLocalStrategy: pluginOptions.disableDefaultPayloadAuth ? true : undefined,
|
|
161
|
+
...hasUsernamePlugin && {
|
|
162
|
+
loginWithUsername: {
|
|
163
|
+
allowEmailLogin: true,
|
|
164
|
+
requireEmail: true,
|
|
165
|
+
requireUsername: false
|
|
166
|
+
}
|
|
167
|
+
},
|
|
168
|
+
strategies: [
|
|
169
|
+
betterAuthStrategy(userSlug)
|
|
170
|
+
]
|
|
171
|
+
},
|
|
172
|
+
fields: [
|
|
173
|
+
...existingUserCollection?.fields ?? [],
|
|
174
|
+
{
|
|
175
|
+
name: "name",
|
|
176
|
+
type: "text",
|
|
177
|
+
label: "Name",
|
|
178
|
+
saveToJWT: true,
|
|
179
|
+
admin: {
|
|
180
|
+
description: "Users chosen display name"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
name: "email",
|
|
185
|
+
type: "text",
|
|
186
|
+
required: true,
|
|
187
|
+
unique: true,
|
|
188
|
+
index: true,
|
|
189
|
+
label: "Email",
|
|
190
|
+
admin: {
|
|
191
|
+
description: "The email of the user"
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
name: "emailVerified",
|
|
196
|
+
type: "checkbox",
|
|
197
|
+
required: true,
|
|
198
|
+
defaultValue: false,
|
|
199
|
+
saveToJWT: true,
|
|
200
|
+
label: "Email Verified",
|
|
201
|
+
admin: {
|
|
202
|
+
description: "Whether the email of the user has been verified"
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
name: "image",
|
|
207
|
+
type: "text",
|
|
208
|
+
label: "Image",
|
|
209
|
+
saveToJWT: true,
|
|
210
|
+
admin: {
|
|
211
|
+
description: "The image of the user"
|
|
212
|
+
}
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
name: "role",
|
|
216
|
+
label: "Role",
|
|
217
|
+
type: "select",
|
|
218
|
+
required: true,
|
|
219
|
+
defaultValue: pluginOptions.users?.defaultRole ?? "user",
|
|
220
|
+
saveToJWT: true,
|
|
221
|
+
options: allRoleOptions,
|
|
222
|
+
admin: {
|
|
223
|
+
description: "The role of the user"
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
...getTimestampFields({
|
|
227
|
+
saveUpdatedAtToJWT: false,
|
|
228
|
+
saveCreatedAtToJWT: false
|
|
229
|
+
})
|
|
230
|
+
]
|
|
231
|
+
};
|
|
232
|
+
if (baPlugins) {
|
|
233
|
+
baPlugins.forEach((plugin)=>{
|
|
234
|
+
switch(plugin.id){
|
|
235
|
+
case "two-factor":
|
|
236
|
+
usersCollection.fields.push({
|
|
237
|
+
name: "twoFactorEnabled",
|
|
238
|
+
type: "checkbox",
|
|
239
|
+
defaultValue: false,
|
|
240
|
+
label: "Two Factor Enabled",
|
|
241
|
+
admin: {
|
|
242
|
+
description: "Whether the user has two factor authentication enabled"
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
break;
|
|
246
|
+
case "username":
|
|
247
|
+
usersCollection.fields.push({
|
|
248
|
+
name: "username",
|
|
249
|
+
type: "text",
|
|
250
|
+
unique: true,
|
|
251
|
+
required: false,
|
|
252
|
+
label: "Username",
|
|
253
|
+
admin: {
|
|
254
|
+
description: "The username of the user"
|
|
255
|
+
}
|
|
256
|
+
}, {
|
|
257
|
+
name: "displayUsername",
|
|
258
|
+
type: "text",
|
|
259
|
+
required: false,
|
|
260
|
+
label: "Display Username",
|
|
261
|
+
admin: {
|
|
262
|
+
description: "The display username of the user"
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
break;
|
|
266
|
+
case "anonymous":
|
|
267
|
+
usersCollection.fields.push({
|
|
268
|
+
name: "isAnonymous",
|
|
269
|
+
type: "checkbox",
|
|
270
|
+
defaultValue: false,
|
|
271
|
+
label: "Is Anonymous",
|
|
272
|
+
admin: {
|
|
273
|
+
description: "Whether the user is anonymous."
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
break;
|
|
277
|
+
case "phone-number":
|
|
278
|
+
usersCollection.fields.push({
|
|
279
|
+
name: "phoneNumber",
|
|
280
|
+
type: "text",
|
|
281
|
+
label: "Phone Number",
|
|
282
|
+
admin: {
|
|
283
|
+
description: "The phone number of the user"
|
|
284
|
+
}
|
|
285
|
+
}, {
|
|
286
|
+
name: "phoneNumberVerified",
|
|
287
|
+
type: "checkbox",
|
|
288
|
+
defaultValue: false,
|
|
289
|
+
label: "Phone Number Verified",
|
|
290
|
+
admin: {
|
|
291
|
+
description: "Whether the phone number of the user has been verified"
|
|
292
|
+
}
|
|
293
|
+
});
|
|
294
|
+
break;
|
|
295
|
+
case "admin":
|
|
296
|
+
usersCollection.fields.push({
|
|
297
|
+
name: "banned",
|
|
298
|
+
type: "checkbox",
|
|
299
|
+
defaultValue: false,
|
|
300
|
+
label: "Banned",
|
|
301
|
+
admin: {
|
|
302
|
+
description: "Whether the user is banned from the platform"
|
|
303
|
+
}
|
|
304
|
+
}, {
|
|
305
|
+
name: "banReason",
|
|
306
|
+
type: "text",
|
|
307
|
+
label: "Ban Reason",
|
|
308
|
+
admin: {
|
|
309
|
+
description: "The reason for the ban"
|
|
310
|
+
}
|
|
311
|
+
}, {
|
|
312
|
+
name: "banExpires",
|
|
313
|
+
type: "date",
|
|
314
|
+
label: "Ban Expires",
|
|
315
|
+
admin: {
|
|
316
|
+
description: "The date and time when the ban will expire"
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
break;
|
|
320
|
+
case "harmony-email":
|
|
321
|
+
usersCollection.fields.push({
|
|
322
|
+
name: "normalizedEmail",
|
|
323
|
+
type: "text",
|
|
324
|
+
required: false,
|
|
325
|
+
unique: true,
|
|
326
|
+
admin: {
|
|
327
|
+
readOnly: true,
|
|
328
|
+
description: "The normalized email of the user"
|
|
329
|
+
}
|
|
330
|
+
});
|
|
331
|
+
break;
|
|
332
|
+
default:
|
|
333
|
+
break;
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
}
|
|
337
|
+
if (pluginOptions.users?.collectionOverrides) {
|
|
338
|
+
usersCollection = pluginOptions.users.collectionOverrides({
|
|
339
|
+
collection: usersCollection
|
|
340
|
+
});
|
|
341
|
+
}
|
|
342
|
+
return usersCollection;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUge1xuICBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucyxcbiAgU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMsXG59IGZyb20gXCIuLi8uLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgYmFzZUNvbGxlY3Rpb25TbHVncyB9IGZyb20gXCIuLi8uLi9jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGlzQWRtaW5PckN1cnJlbnRVc2VyVXBkYXRlV2l0aEFsbG93ZWRGaWVsZHMsXG4gIGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzLFxuICBpc0FkbWluV2l0aFJvbGVzLFxufSBmcm9tIFwiLi4vdXRpbHMvcGF5bG9hZC1hY2Nlc3NcIjtcbmltcG9ydCB7IGdldFJlZnJlc2hUb2tlbkVuZHBvaW50IH0gZnJvbSBcIi4vZW5kcG9pbnRzL3JlZnJlc2gtdG9rZW5cIjtcbmltcG9ydCB7IG9uVmVyaWZpZWRDaGFuZ2UgfSBmcm9tIFwiLi9ob29rcy9vbi12ZXJpZmllZC1jaGFuZ2VcIjtcbmltcG9ydCB7IGdldFN5bmNBY2NvdW50SG9vayB9IGZyb20gXCIuL2hvb2tzL3N5bmMtYWNjb3VudFwiO1xuaW1wb3J0IHsgZ2V0QmVmb3JlTG9naW5Ib29rIH0gZnJvbSBcIi4vaG9va3MvYmVmb3JlLWxvZ2luXCI7XG5pbXBvcnQgeyBnZXRBZnRlckxvZ2luSG9vayB9IGZyb20gXCIuL2hvb2tzL2FmdGVyLWxvZ2luXCI7XG5pbXBvcnQgeyBnZXRBZnRlckxvZ291dEhvb2sgfSBmcm9tIFwiLi9ob29rcy9hZnRlci1sb2dvdXRcIjtcbmltcG9ydCB7IGdldEJlZm9yZURlbGV0ZUhvb2sgfSBmcm9tIFwiLi9ob29rcy9iZWZvcmUtZGVsZXRlXCI7XG5pbXBvcnQgeyBiZXR0ZXJBdXRoU3RyYXRlZ3kgfSBmcm9tIFwiLi9iZXR0ZXItYXV0aC1zdHJhdGVneVwiO1xuaW1wb3J0IHsgZ2V0VGltZXN0YW1wRmllbGRzIH0gZnJvbSBcIi4uL3V0aWxzL2dldC10aW1lc3RhbXAtZmllbGRzXCI7XG5pbXBvcnQgeyBnZXRMb2dpbkVuZHBvaW50IH0gZnJvbSBcIi4vZW5kcG9pbnRzL2xvZ2luXCI7XG5pbXBvcnQgeyBnZXRBbGxSb2xlT3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL2dldC1hbGwtcm9sZXNcIjtcbmltcG9ydCB7IGdldEZvcmdvdFBhc3N3b3JkRW5kcG9pbnQgfSBmcm9tIFwiLi9lbmRwb2ludHMvZm9yZ290LXBhc3N3b3JkXCI7XG5pbXBvcnQgeyBnZXRTaWdudXBFbmRwb2ludCB9IGZyb20gXCIuL2VuZHBvaW50cy9zaWdudXBcIjtcbmltcG9ydCB7IGdldFNldEFkbWluUm9sZUVuZHBvaW50IH0gZnJvbSBcIi4vZW5kcG9pbnRzL3NldC1hZG1pbi1yb2xlXCI7XG5pbXBvcnQgeyBnZXRSZXNldFBhc3N3b3JkRW5kcG9pbnQgfSBmcm9tIFwiLi9lbmRwb2ludHMvcmVzZXQtcGFzc3dvcmRcIjtcbmltcG9ydCB7IGdldEdlbmVyYXRlSW52aXRlVXJsRW5kcG9pbnQgfSBmcm9tIFwiLi9lbmRwb2ludHMvZ2VuZXJhdGUtaW52aXRlLXVybFwiO1xuaW1wb3J0IHsgZ2V0U2VuZEludml0ZVVybEVuZHBvaW50IH0gZnJvbSBcIi4vZW5kcG9pbnRzL3NlbmQtaW52aXRlLXVybFwiO1xuaW1wb3J0IHsgY2hlY2tVc2VybmFtZVBsdWdpbiB9IGZyb20gXCIuLi8uLi8uLi9oZWxwZXJzL2NoZWNrLXVzZXJuYW1lLXBsdWdpblwiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVc2Vyc0NvbGxlY3Rpb24oe1xuICBpbmNvbWluZ0NvbGxlY3Rpb25zLFxuICBwbHVnaW5PcHRpb25zLFxuICBiZXR0ZXJBdXRoT3B0aW9ucyxcbn06IHtcbiAgaW5jb21pbmdDb2xsZWN0aW9uczogQ29sbGVjdGlvbkNvbmZpZ1tdO1xuICBwbHVnaW5PcHRpb25zOiBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucztcbiAgYmV0dGVyQXV0aE9wdGlvbnM6IFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zO1xufSkge1xuICBjb25zdCB1c2VyU2x1ZyA9IHBsdWdpbk9wdGlvbnMudXNlcnM/LnNsdWcgPz8gYmFzZUNvbGxlY3Rpb25TbHVncy51c2VycztcbiAgY29uc3QgYWNjb3VudFNsdWcgPVxuICAgIHBsdWdpbk9wdGlvbnMuYWNjb3VudHM/LnNsdWcgPz8gYmFzZUNvbGxlY3Rpb25TbHVncy5hY2NvdW50cztcbiAgY29uc3Qgc2Vzc2lvblNsdWcgPVxuICAgIHBsdWdpbk9wdGlvbnMuc2Vzc2lvbnM/LnNsdWcgPz8gYmFzZUNvbGxlY3Rpb25TbHVncy5zZXNzaW9ucztcbiAgY29uc3QgdmVyaWZpY2F0aW9uc1NsdWcgPVxuICAgIHBsdWdpbk9wdGlvbnMudmVyaWZpY2F0aW9ucz8uc2x1ZyA/PyBiYXNlQ29sbGVjdGlvblNsdWdzLnZlcmlmaWNhdGlvbnM7XG4gIGNvbnN0IGJhUGx1Z2lucyA9IGJldHRlckF1dGhPcHRpb25zLnBsdWdpbnMgPz8gbnVsbDtcbiAgY29uc3QgYWRtaW5Sb2xlcyA9IHBsdWdpbk9wdGlvbnMudXNlcnM/LmFkbWluUm9sZXMgPz8gW1wiYWRtaW5cIl07XG4gIGNvbnN0IGFsbFJvbGVPcHRpb25zID0gZ2V0QWxsUm9sZU9wdGlvbnMocGx1Z2luT3B0aW9ucyk7XG4gIGNvbnN0IGhhc1VzZXJuYW1lUGx1Z2luID0gY2hlY2tVc2VybmFtZVBsdWdpbihiZXR0ZXJBdXRoT3B0aW9ucyk7XG4gIGNvbnN0IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24gPSBpbmNvbWluZ0NvbGxlY3Rpb25zLmZpbmQoXG4gICAgKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gdXNlclNsdWdcbiAgKSBhcyBDb2xsZWN0aW9uQ29uZmlnIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0IGFsbG93ZWRGaWVsZHMgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5hbGxvd2VkRmllbGRzID8/IFtcIm5hbWVcIl07XG5cbiAgY29uc3QgYmFzZVVybCA9XG4gICAgYmV0dGVyQXV0aE9wdGlvbnMuYmFzZVVSTCA/P1xuICAgIHByb2Nlc3MuZW52Lk5FWFRfUFVCTElDX1VSTCA/P1xuICAgIFwiaHR0cDovL2xvY2FsaG9zdDozMDAwXCI7XG5cbiAgbGV0IHVzZXJzQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgICAuLi5leGlzdGluZ1VzZXJDb2xsZWN0aW9uLFxuICAgIHNsdWc6IHVzZXJTbHVnLFxuICAgIGFkbWluOiB7XG4gICAgICBkZWZhdWx0Q29sdW1uczogW1wiZW1haWxcIl0sXG4gICAgICB1c2VBc1RpdGxlOiBcImVtYWlsXCIsXG4gICAgICBncm91cDogcGx1Z2luT3B0aW9ucz8uY29sbGVjdGlvbkFkbWluR3JvdXAgPz8gXCJBdXRoXCIsXG4gICAgICAuLi5leGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5hZG1pbixcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy51c2Vycz8uaGlkZGVuID8/IGZhbHNlLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBEZXNjcmlwdGlvbjoge1xuICAgICAgICAgIHBhdGg6IFwicGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9jbGllbnQjQWRtaW5JbnZpdGVCdXR0b25cIixcbiAgICAgICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICAgICAgcm9sZXM6IGFsbFJvbGVPcHRpb25zLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgZWRpdDoge1xuICAgICAgICAgICAgYWRtaW5CdXR0b25zOiB7XG4gICAgICAgICAgICAgIHRhYjoge1xuICAgICAgICAgICAgICAgIENvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgICAgcGF0aDogXCJwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL2NsaWVudCNBZG1pbkJ1dHRvbnNcIixcbiAgICAgICAgICAgICAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJTbHVnLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gT25seSBzaG93IHRoZSBpbXBlcnNvbmF0ZSBidXR0b24gaWYgdGhlIGFkbWluIHBsdWdpbiBpcyBlbmFibGVkXG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAoYmFQbHVnaW5zICYmXG4gICAgICAgICAgICAgICAgICAgICAgYmFQbHVnaW5zLnNvbWUoKHBsdWdpbikgPT4gcGx1Z2luLmlkID09PSBcImFkbWluXCIpKSA/P1xuICAgICAgICAgICAgICAgICAgICBmYWxzZVxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIGFjY2Vzczoge1xuICAgICAgYWRtaW46ICh7IHJlcSB9KSA9PlxuICAgICAgICBhZG1pblJvbGVzLmluY2x1ZGVzKChyZXEudXNlcj8ucm9sZSBhcyBzdHJpbmcpID8/IFwidXNlclwiKSxcbiAgICAgIHJlYWQ6IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcywgaWRGaWVsZDogXCJpZFwiIH0pLFxuICAgICAgY3JlYXRlOiBpc0FkbWluV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcyB9KSxcbiAgICAgIGRlbGV0ZTogaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMoeyBhZG1pblJvbGVzLCBpZEZpZWxkOiBcImlkXCIgfSksXG4gICAgICB1cGRhdGU6IGlzQWRtaW5PckN1cnJlbnRVc2VyVXBkYXRlV2l0aEFsbG93ZWRGaWVsZHMoe1xuICAgICAgICBhbGxvd2VkRmllbGRzLFxuICAgICAgICBhZG1pblJvbGVzLFxuICAgICAgICB1c2VyU2x1ZyxcbiAgICAgIH0pLFxuICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/LmFjY2VzcyA/PyB7fSksXG4gICAgfSxcbiAgICBlbmRwb2ludHM6IFtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5lbmRwb2ludHNcbiAgICAgICAgPyBleGlzdGluZ1VzZXJDb2xsZWN0aW9uLmVuZHBvaW50c1xuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLihwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGhcbiAgICAgICAgPyBbZ2V0TG9naW5FbmRwb2ludChiZXR0ZXJBdXRoT3B0aW9ucyldXG4gICAgICAgIDogW10pLFxuICAgICAgZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQoXG4gICAgICAgIHBsdWdpbk9wdGlvbnMsXG4gICAgICAgIHBsdWdpbk9wdGlvbnMudXNlcnM/LnNsdWcgPz8gXCJ1c2Vyc1wiXG4gICAgICApLFxuICAgICAgZ2V0R2VuZXJhdGVJbnZpdGVVcmxFbmRwb2ludCh7XG4gICAgICAgIHJvbGVzOiBhbGxSb2xlT3B0aW9ucyxcbiAgICAgICAgYmFzZVVybCxcbiAgICAgICAgcGx1Z2luT3B0aW9ucyxcbiAgICAgIH0pLFxuICAgICAgZ2V0U2VuZEludml0ZVVybEVuZHBvaW50KCksXG4gICAgICBnZXRTaWdudXBFbmRwb2ludChwbHVnaW5PcHRpb25zLCBiZXR0ZXJBdXRoT3B0aW9ucyksXG4gICAgICBnZXRSZWZyZXNoVG9rZW5FbmRwb2ludCh1c2VyU2x1ZyksXG4gICAgICBnZXRGb3Jnb3RQYXNzd29yZEVuZHBvaW50KCksXG4gICAgICBnZXRSZXNldFBhc3N3b3JkRW5kcG9pbnQoKSxcbiAgICBdLFxuICAgIGhvb2tzOiB7XG4gICAgICBiZWZvcmVDaGFuZ2U6IFtcbiAgICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5iZWZvcmVDaGFuZ2UgPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gW10gOiBbb25WZXJpZmllZENoYW5nZV0pLFxuICAgICAgXSxcbiAgICAgIGFmdGVyQ2hhbmdlOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYWZ0ZXJDaGFuZ2UgPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW1xuICAgICAgICAgICAgICBnZXRTeW5jQWNjb3VudEhvb2soe1xuICAgICAgICAgICAgICAgIHVzZXJTbHVnLFxuICAgICAgICAgICAgICAgIGFjY291bnRTbHVnLFxuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgXSxcbiAgICAgIGJlZm9yZUxvZ2luOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYmVmb3JlTG9naW4gPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW2dldEJlZm9yZUxvZ2luSG9vaygpXSksXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dpbjogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9naW4gPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW1xuICAgICAgICAgICAgICBnZXRBZnRlckxvZ2luSG9vayh7XG4gICAgICAgICAgICAgICAgc2Vzc2lvbnNDb2xsZWN0aW9uU2x1Zzogc2Vzc2lvblNsdWcsXG4gICAgICAgICAgICAgICAgdXNlcnNDb2xsZWN0aW9uU2x1ZzogdXNlclNsdWcsXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgXSksXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dvdXQ6IFtcbiAgICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5hZnRlckxvZ291dCA/PyBbXSksXG4gICAgICAgIGdldEFmdGVyTG9nb3V0SG9vayh7IHNlc3Npb25zQ29sbGVjdGlvblNsdWc6IHNlc3Npb25TbHVnIH0pLFxuICAgICAgXSxcbiAgICAgIGJlZm9yZURlbGV0ZTogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmJlZm9yZURlbGV0ZSA/PyBbXSksXG4gICAgICAgIGdldEJlZm9yZURlbGV0ZUhvb2soe1xuICAgICAgICAgIGFjY291bnRzU2x1ZzogYWNjb3VudFNsdWcsXG4gICAgICAgICAgc2Vzc2lvbnNTbHVnOiBzZXNzaW9uU2x1ZyxcbiAgICAgICAgICB2ZXJpZmljYXRpb25zU2x1ZzogdmVyaWZpY2F0aW9uc1NsdWcsXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9LFxuICAgIGF1dGg6IHtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uICYmXG4gICAgICB0eXBlb2YgZXhpc3RpbmdVc2VyQ29sbGVjdGlvbi5hdXRoID09PSBcIm9iamVjdFwiXG4gICAgICAgID8gZXhpc3RpbmdVc2VyQ29sbGVjdGlvbi5hdXRoXG4gICAgICAgIDoge30pLFxuICAgICAgZGlzYWJsZUxvY2FsU3RyYXRlZ3k6IHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aFxuICAgICAgICA/IHRydWVcbiAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAuLi4oaGFzVXNlcm5hbWVQbHVnaW4gJiYge1xuICAgICAgICBsb2dpbldpdGhVc2VybmFtZToge1xuICAgICAgICAgIGFsbG93RW1haWxMb2dpbjogdHJ1ZSxcbiAgICAgICAgICByZXF1aXJlRW1haWw6IHRydWUsXG4gICAgICAgICAgcmVxdWlyZVVzZXJuYW1lOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICAgc3RyYXRlZ2llczogW2JldHRlckF1dGhTdHJhdGVneSh1c2VyU2x1ZyldLFxuICAgIH0sXG4gICAgZmllbGRzOiBbXG4gICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uZmllbGRzID8/IFtdKSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJuYW1lXCIsXG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICBsYWJlbDogXCJOYW1lXCIsXG4gICAgICAgIHNhdmVUb0pXVDogdHJ1ZSxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJVc2VycyBjaG9zZW4gZGlzcGxheSBuYW1lXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiBcImVtYWlsXCIsXG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdW5pcXVlOiB0cnVlLFxuICAgICAgICBpbmRleDogdHJ1ZSxcbiAgICAgICAgbGFiZWw6IFwiRW1haWxcIixcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgZW1haWwgb2YgdGhlIHVzZXJcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiZW1haWxWZXJpZmllZFwiLFxuICAgICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICAgIGxhYmVsOiBcIkVtYWlsIFZlcmlmaWVkXCIsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246IFwiV2hldGhlciB0aGUgZW1haWwgb2YgdGhlIHVzZXIgaGFzIGJlZW4gdmVyaWZpZWRcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiaW1hZ2VcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIGxhYmVsOiBcIkltYWdlXCIsXG4gICAgICAgIHNhdmVUb0pXVDogdHJ1ZSxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgaW1hZ2Ugb2YgdGhlIHVzZXJcIixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwicm9sZVwiLFxuICAgICAgICBsYWJlbDogXCJSb2xlXCIsXG4gICAgICAgIHR5cGU6IFwic2VsZWN0XCIsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IHBsdWdpbk9wdGlvbnMudXNlcnM/LmRlZmF1bHRSb2xlID8/IFwidXNlclwiLFxuICAgICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICAgIG9wdGlvbnM6IGFsbFJvbGVPcHRpb25zLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSByb2xlIG9mIHRoZSB1c2VyXCIsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4uZ2V0VGltZXN0YW1wRmllbGRzKHtcbiAgICAgICAgc2F2ZVVwZGF0ZWRBdFRvSldUOiBmYWxzZSxcbiAgICAgICAgc2F2ZUNyZWF0ZWRBdFRvSldUOiBmYWxzZSxcbiAgICAgIH0pLFxuICAgIF0sXG4gIH07XG5cbiAgaWYgKGJhUGx1Z2lucykge1xuICAgIGJhUGx1Z2lucy5mb3JFYWNoKChwbHVnaW4pID0+IHtcbiAgICAgIHN3aXRjaCAocGx1Z2luLmlkKSB7XG4gICAgICAgIGNhc2UgXCJ0d28tZmFjdG9yXCI6XG4gICAgICAgICAgdXNlcnNDb2xsZWN0aW9uLmZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IFwidHdvRmFjdG9yRW5hYmxlZFwiLFxuICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIGxhYmVsOiBcIlR3byBGYWN0b3IgRW5hYmxlZFwiLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgXCJXaGV0aGVyIHRoZSB1c2VyIGhhcyB0d28gZmFjdG9yIGF1dGhlbnRpY2F0aW9uIGVuYWJsZWRcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJ1c2VybmFtZVwiOlxuICAgICAgICAgIHVzZXJzQ29sbGVjdGlvbi5maWVsZHMucHVzaChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJ1c2VybmFtZVwiLFxuICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgdW5pcXVlOiB0cnVlLFxuICAgICAgICAgICAgICByZXF1aXJlZDogZmFsc2UsIC8vIFRPRE86IGRlY2lkZSBpZiB0aGlzIHNob3VsZCBiZSByZXF1aXJlZCwgd2lsbCBoYXZlIHRvIHRlbGwgdXNlcnMgdGhleSBuZWVkIHRvIGFkZCB1aSBmb3IgaXQuXG4gICAgICAgICAgICAgIGxhYmVsOiBcIlVzZXJuYW1lXCIsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHVzZXJuYW1lIG9mIHRoZSB1c2VyXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcImRpc3BsYXlVc2VybmFtZVwiLFxuICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBsYWJlbDogXCJEaXNwbGF5IFVzZXJuYW1lXCIsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGRpc3BsYXkgdXNlcm5hbWUgb2YgdGhlIHVzZXJcIixcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIFwiYW5vbnltb3VzXCI6XG4gICAgICAgICAgdXNlcnNDb2xsZWN0aW9uLmZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IFwiaXNBbm9ueW1vdXNcIixcbiAgICAgICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgICAgICBsYWJlbDogXCJJcyBBbm9ueW1vdXNcIixcbiAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIldoZXRoZXIgdGhlIHVzZXIgaXMgYW5vbnltb3VzLlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcInBob25lLW51bWJlclwiOlxuICAgICAgICAgIHVzZXJzQ29sbGVjdGlvbi5maWVsZHMucHVzaChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJwaG9uZU51bWJlclwiLFxuICAgICAgICAgICAgICB0eXBlOiBcInRleHRcIixcbiAgICAgICAgICAgICAgbGFiZWw6IFwiUGhvbmUgTnVtYmVyXCIsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIHBob25lIG51bWJlciBvZiB0aGUgdXNlclwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJwaG9uZU51bWJlclZlcmlmaWVkXCIsXG4gICAgICAgICAgICAgIHR5cGU6IFwiY2hlY2tib3hcIixcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgbGFiZWw6IFwiUGhvbmUgTnVtYmVyIFZlcmlmaWVkXCIsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgICAgICBcIldoZXRoZXIgdGhlIHBob25lIG51bWJlciBvZiB0aGUgdXNlciBoYXMgYmVlbiB2ZXJpZmllZFwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgXCJhZG1pblwiOlxuICAgICAgICAgIHVzZXJzQ29sbGVjdGlvbi5maWVsZHMucHVzaChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJiYW5uZWRcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJjaGVja2JveFwiLFxuICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgICBsYWJlbDogXCJCYW5uZWRcIixcbiAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJXaGV0aGVyIHRoZSB1c2VyIGlzIGJhbm5lZCBmcm9tIHRoZSBwbGF0Zm9ybVwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogXCJiYW5SZWFzb25cIixcbiAgICAgICAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgICAgICAgIGxhYmVsOiBcIkJhbiBSZWFzb25cIixcbiAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgcmVhc29uIGZvciB0aGUgYmFuXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiBcImJhbkV4cGlyZXNcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgICAgICAgIGxhYmVsOiBcIkJhbiBFeHBpcmVzXCIsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246IFwiVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgYmFuIHdpbGwgZXhwaXJlXCIsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBcImhhcm1vbnktZW1haWxcIjpcbiAgICAgICAgICB1c2Vyc0NvbGxlY3Rpb24uZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogXCJub3JtYWxpemVkRW1haWxcIixcbiAgICAgICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdW5pcXVlOiB0cnVlLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSBub3JtYWxpemVkIGVtYWlsIG9mIHRoZSB1c2VyXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgaWYgKHBsdWdpbk9wdGlvbnMudXNlcnM/LmNvbGxlY3Rpb25PdmVycmlkZXMpIHtcbiAgICB1c2Vyc0NvbGxlY3Rpb24gPSBwbHVnaW5PcHRpb25zLnVzZXJzLmNvbGxlY3Rpb25PdmVycmlkZXMoe1xuICAgICAgY29sbGVjdGlvbjogdXNlcnNDb2xsZWN0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHVzZXJzQ29sbGVjdGlvbjtcbn1cbiJdLCJuYW1lcyI6WyJiYXNlQ29sbGVjdGlvblNsdWdzIiwiaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcyIsImlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzIiwiaXNBZG1pbldpdGhSb2xlcyIsImdldFJlZnJlc2hUb2tlbkVuZHBvaW50Iiwib25WZXJpZmllZENoYW5nZSIsImdldFN5bmNBY2NvdW50SG9vayIsImdldEJlZm9yZUxvZ2luSG9vayIsImdldEFmdGVyTG9naW5Ib29rIiwiZ2V0QWZ0ZXJMb2dvdXRIb29rIiwiZ2V0QmVmb3JlRGVsZXRlSG9vayIsImJldHRlckF1dGhTdHJhdGVneSIsImdldFRpbWVzdGFtcEZpZWxkcyIsImdldExvZ2luRW5kcG9pbnQiLCJnZXRBbGxSb2xlT3B0aW9ucyIsImdldEZvcmdvdFBhc3N3b3JkRW5kcG9pbnQiLCJnZXRTaWdudXBFbmRwb2ludCIsImdldFNldEFkbWluUm9sZUVuZHBvaW50IiwiZ2V0UmVzZXRQYXNzd29yZEVuZHBvaW50IiwiZ2V0R2VuZXJhdGVJbnZpdGVVcmxFbmRwb2ludCIsImdldFNlbmRJbnZpdGVVcmxFbmRwb2ludCIsImNoZWNrVXNlcm5hbWVQbHVnaW4iLCJidWlsZFVzZXJzQ29sbGVjdGlvbiIsImluY29taW5nQ29sbGVjdGlvbnMiLCJwbHVnaW5PcHRpb25zIiwiYmV0dGVyQXV0aE9wdGlvbnMiLCJ1c2VyU2x1ZyIsInVzZXJzIiwic2x1ZyIsImFjY291bnRTbHVnIiwiYWNjb3VudHMiLCJzZXNzaW9uU2x1ZyIsInNlc3Npb25zIiwidmVyaWZpY2F0aW9uc1NsdWciLCJ2ZXJpZmljYXRpb25zIiwiYmFQbHVnaW5zIiwicGx1Z2lucyIsImFkbWluUm9sZXMiLCJhbGxSb2xlT3B0aW9ucyIsImhhc1VzZXJuYW1lUGx1Z2luIiwiZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiIsImZpbmQiLCJjb2xsZWN0aW9uIiwiYWxsb3dlZEZpZWxkcyIsImJhc2VVcmwiLCJiYXNlVVJMIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX1VSTCIsInVzZXJzQ29sbGVjdGlvbiIsImFkbWluIiwiZGVmYXVsdENvbHVtbnMiLCJ1c2VBc1RpdGxlIiwiZ3JvdXAiLCJjb2xsZWN0aW9uQWRtaW5Hcm91cCIsImhpZGRlbiIsImNvbXBvbmVudHMiLCJEZXNjcmlwdGlvbiIsInBhdGgiLCJjbGllbnRQcm9wcyIsInJvbGVzIiwidmlld3MiLCJlZGl0IiwiYWRtaW5CdXR0b25zIiwidGFiIiwiQ29tcG9uZW50IiwiY29uZGl0aW9uIiwic29tZSIsInBsdWdpbiIsImlkIiwiYWNjZXNzIiwicmVxIiwiaW5jbHVkZXMiLCJ1c2VyIiwicm9sZSIsInJlYWQiLCJpZEZpZWxkIiwiY3JlYXRlIiwiZGVsZXRlIiwidXBkYXRlIiwiZW5kcG9pbnRzIiwiZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCIsImhvb2tzIiwiYmVmb3JlQ2hhbmdlIiwiYWZ0ZXJDaGFuZ2UiLCJiZWZvcmVMb2dpbiIsImFmdGVyTG9naW4iLCJzZXNzaW9uc0NvbGxlY3Rpb25TbHVnIiwidXNlcnNDb2xsZWN0aW9uU2x1ZyIsImFmdGVyTG9nb3V0IiwiYmVmb3JlRGVsZXRlIiwiYWNjb3VudHNTbHVnIiwic2Vzc2lvbnNTbHVnIiwiYXV0aCIsImRpc2FibGVMb2NhbFN0cmF0ZWd5IiwidW5kZWZpbmVkIiwibG9naW5XaXRoVXNlcm5hbWUiLCJhbGxvd0VtYWlsTG9naW4iLCJyZXF1aXJlRW1haWwiLCJyZXF1aXJlVXNlcm5hbWUiLCJzdHJhdGVnaWVzIiwiZmllbGRzIiwibmFtZSIsInR5cGUiLCJsYWJlbCIsInNhdmVUb0pXVCIsImRlc2NyaXB0aW9uIiwicmVxdWlyZWQiLCJ1bmlxdWUiLCJpbmRleCIsImRlZmF1bHRWYWx1ZSIsImRlZmF1bHRSb2xlIiwib3B0aW9ucyIsInNhdmVVcGRhdGVkQXRUb0pXVCIsInNhdmVDcmVhdGVkQXRUb0pXVCIsImZvckVhY2giLCJwdXNoIiwicmVhZE9ubHkiLCJjb2xsZWN0aW9uT3ZlcnJpZGVzIl0sIm1hcHBpbmdzIjoiQUFLQSxTQUFTQSxtQkFBbUIsUUFBUSxrQkFBa0I7QUFDdEQsU0FDRUMsMkNBQTJDLEVBQzNDQyw2QkFBNkIsRUFDN0JDLGdCQUFnQixRQUNYLDBCQUEwQjtBQUNqQyxTQUFTQyx1QkFBdUIsUUFBUSw0QkFBNEI7QUFDcEUsU0FBU0MsZ0JBQWdCLFFBQVEsNkJBQTZCO0FBQzlELFNBQVNDLGtCQUFrQixRQUFRLHVCQUF1QjtBQUMxRCxTQUFTQyxrQkFBa0IsUUFBUSx1QkFBdUI7QUFDMUQsU0FBU0MsaUJBQWlCLFFBQVEsc0JBQXNCO0FBQ3hELFNBQVNDLGtCQUFrQixRQUFRLHVCQUF1QjtBQUMxRCxTQUFTQyxtQkFBbUIsUUFBUSx3QkFBd0I7QUFDNUQsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBQzVELFNBQVNDLGtCQUFrQixRQUFRLGdDQUFnQztBQUNuRSxTQUFTQyxnQkFBZ0IsUUFBUSxvQkFBb0I7QUFDckQsU0FBU0MsaUJBQWlCLFFBQVEsaUNBQWlDO0FBQ25FLFNBQVNDLHlCQUF5QixRQUFRLDhCQUE4QjtBQUN4RSxTQUFTQyxpQkFBaUIsUUFBUSxxQkFBcUI7QUFDdkQsU0FBU0MsdUJBQXVCLFFBQVEsNkJBQTZCO0FBQ3JFLFNBQVNDLHdCQUF3QixRQUFRLDZCQUE2QjtBQUN0RSxTQUFTQyw0QkFBNEIsUUFBUSxrQ0FBa0M7QUFDL0UsU0FBU0Msd0JBQXdCLFFBQVEsOEJBQThCO0FBQ3ZFLFNBQVNDLG1CQUFtQixRQUFRLHlDQUF5QztBQUU3RSxPQUFPLFNBQVNDLHFCQUFxQixFQUNuQ0MsbUJBQW1CLEVBQ25CQyxhQUFhLEVBQ2JDLGlCQUFpQixFQUtsQjtJQUNDLE1BQU1DLFdBQVdGLGNBQWNHLEtBQUssRUFBRUMsUUFBUTVCLG9CQUFvQjJCLEtBQUs7SUFD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
|