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
|
@@ -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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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Field } from "payload";
|
|
2
|
+
interface GetTimestampFieldsOptions {
|
|
3
|
+
saveUpdatedAtToJWT?: boolean;
|
|
4
|
+
saveCreatedAtToJWT?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare function getTimestampFields(options?: GetTimestampFieldsOptions): Field[];
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=get-timestamp-fields.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-timestamp-fields.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,UAAU,yBAAyB;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAGR,GACA,KAAK,EAAE,CAyBT"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function getTimestampFields(options = {
|
|
2
|
+
saveUpdatedAtToJWT: true,
|
|
3
|
+
saveCreatedAtToJWT: true
|
|
4
|
+
}) {
|
|
5
|
+
return [
|
|
6
|
+
{
|
|
7
|
+
name: "updatedAt",
|
|
8
|
+
type: "date",
|
|
9
|
+
saveToJWT: options.saveUpdatedAtToJWT,
|
|
10
|
+
admin: {
|
|
11
|
+
disableBulkEdit: true,
|
|
12
|
+
hidden: true
|
|
13
|
+
},
|
|
14
|
+
index: true,
|
|
15
|
+
label: ({ t })=>t("general:updatedAt")
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
name: "createdAt",
|
|
19
|
+
saveToJWT: options.saveCreatedAtToJWT,
|
|
20
|
+
admin: {
|
|
21
|
+
disableBulkEdit: true,
|
|
22
|
+
hidden: true
|
|
23
|
+
},
|
|
24
|
+
type: "date",
|
|
25
|
+
index: true,
|
|
26
|
+
label: ({ t })=>t("general:createdAt")
|
|
27
|
+
}
|
|
28
|
+
];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3V0aWxzL2dldC10aW1lc3RhbXAtZmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpZWxkIH0gZnJvbSBcInBheWxvYWRcIjtcblxuaW50ZXJmYWNlIEdldFRpbWVzdGFtcEZpZWxkc09wdGlvbnMge1xuICBzYXZlVXBkYXRlZEF0VG9KV1Q/OiBib29sZWFuO1xuICBzYXZlQ3JlYXRlZEF0VG9KV1Q/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZXN0YW1wRmllbGRzKFxuICBvcHRpb25zOiBHZXRUaW1lc3RhbXBGaWVsZHNPcHRpb25zID0ge1xuICAgIHNhdmVVcGRhdGVkQXRUb0pXVDogdHJ1ZSxcbiAgICBzYXZlQ3JlYXRlZEF0VG9KV1Q6IHRydWUsXG4gIH1cbik6IEZpZWxkW10ge1xuICByZXR1cm4gW1xuICAgIHtcbiAgICAgIG5hbWU6IFwidXBkYXRlZEF0XCIsXG4gICAgICB0eXBlOiBcImRhdGVcIixcbiAgICAgIHNhdmVUb0pXVDogb3B0aW9ucy5zYXZlVXBkYXRlZEF0VG9KV1QsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBkaXNhYmxlQnVsa0VkaXQ6IHRydWUsXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGxhYmVsOiAoeyB0IH0pID0+IHQoXCJnZW5lcmFsOnVwZGF0ZWRBdFwiKSxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6IFwiY3JlYXRlZEF0XCIsXG4gICAgICBzYXZlVG9KV1Q6IG9wdGlvbnMuc2F2ZUNyZWF0ZWRBdFRvSldULFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICB9LFxuICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGxhYmVsOiAoeyB0IH0pID0+IHQoXCJnZW5lcmFsOmNyZWF0ZWRBdFwiKSxcbiAgICB9LFxuICBdO1xufVxuIl0sIm5hbWVzIjpbImdldFRpbWVzdGFtcEZpZWxkcyIsIm9wdGlvbnMiLCJzYXZlVXBkYXRlZEF0VG9KV1QiLCJzYXZlQ3JlYXRlZEF0VG9KV1QiLCJuYW1lIiwidHlwZSIsInNhdmVUb0pXVCIsImFkbWluIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaGlkZGVuIiwiaW5kZXgiLCJsYWJlbCIsInQiXSwibWFwcGluZ3MiOiJBQU9BLE9BQU8sU0FBU0EsbUJBQ2RDLFVBQXFDO0lBQ25DQyxvQkFBb0I7SUFDcEJDLG9CQUFvQjtBQUN0QixDQUFDO0lBRUQsT0FBTztRQUNMO1lBQ0VDLE1BQU07WUFDTkMsTUFBTTtZQUNOQyxXQUFXTCxRQUFRQyxrQkFBa0I7WUFDckNLLE9BQU87Z0JBQ0xDLGlCQUFpQjtnQkFDakJDLFFBQVE7WUFDVjtZQUNBQyxPQUFPO1lBQ1BDLE9BQU8sQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBS0EsRUFBRTtRQUN0QjtRQUNBO1lBQ0VSLE1BQU07WUFDTkUsV0FBV0wsUUFBUUUsa0JBQWtCO1lBQ3JDSSxPQUFPO2dCQUNMQyxpQkFBaUI7Z0JBQ2pCQyxRQUFRO1lBQ1Y7WUFDQUosTUFBTTtZQUNOSyxPQUFPO1lBQ1BDLE9BQU8sQ0FBQyxFQUFFQyxDQUFDLEVBQUUsR0FBS0EsRUFBRTtRQUN0QjtLQUNEO0FBQ0gifQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Access, FieldAccess } from
|
|
1
|
+
import type { Access, FieldAccess } from "payload";
|
|
2
2
|
export type AdminRolesConfig = {
|
|
3
3
|
adminRoles?: string[];
|
|
4
4
|
};
|
|
@@ -12,3 +12,4 @@ export type AdminOrCurrentUserUpdateConfig = AdminOrCurrentUserConfig & {
|
|
|
12
12
|
export declare const isAdminWithRoles: (config?: AdminRolesConfig) => FieldAccess;
|
|
13
13
|
export declare const isAdminOrCurrentUserWithRoles: (config?: AdminOrCurrentUserConfig) => Access;
|
|
14
14
|
export declare const isAdminOrCurrentUserUpdateWithAllowedFields: (config: AdminOrCurrentUserUpdateConfig) => Access;
|
|
15
|
+
//# sourceMappingURL=payload-access.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"payload-access.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/utils/payload-access.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,8BAA8B,GAAG,wBAAwB,GAAG;IACtE,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC1B,SAAQ,gBAAqB,KAAG,WAMhC,CAAC;AAEJ,eAAO,MAAM,6BAA6B,GACvC,SAAQ,wBAA6B,KAAG,MAUxC,CAAC;AAEJ,eAAO,MAAM,2CAA2C,GACtD,QAAQ,8BAA8B,KACrC,MAkDF,CAAC"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export const isAdminWithRoles = (config = {})=>({ req })=>{
|
|
2
|
+
const { adminRoles = [
|
|
3
|
+
"admin"
|
|
4
|
+
] } = config;
|
|
5
|
+
if (!req?.user || !req.user.role || !adminRoles.includes(req.user.role)) return false;
|
|
6
|
+
return true;
|
|
7
|
+
};
|
|
8
|
+
export const isAdminOrCurrentUserWithRoles = (config = {})=>({ req })=>{
|
|
9
|
+
const { adminRoles = [
|
|
10
|
+
"admin"
|
|
11
|
+
], idField = "id" } = config;
|
|
12
|
+
if (isAdminWithRoles({
|
|
13
|
+
adminRoles
|
|
14
|
+
})({
|
|
15
|
+
req
|
|
16
|
+
})) return true;
|
|
17
|
+
if (!req?.user) return false;
|
|
18
|
+
return {
|
|
19
|
+
[idField]: {
|
|
20
|
+
equals: req?.user?.id
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export const isAdminOrCurrentUserUpdateWithAllowedFields = (config)=>{
|
|
25
|
+
return async ({ req, id, data })=>{
|
|
26
|
+
const { adminRoles = [
|
|
27
|
+
"admin"
|
|
28
|
+
], allowedFields = [], userSlug, idField = "id" } = config;
|
|
29
|
+
const user = req.user;
|
|
30
|
+
if (isAdminWithRoles({
|
|
31
|
+
adminRoles
|
|
32
|
+
})({
|
|
33
|
+
req
|
|
34
|
+
})) return true;
|
|
35
|
+
if (!user) return false;
|
|
36
|
+
if (user[idField] === id && data) {
|
|
37
|
+
const dataKeys = Object.keys(data);
|
|
38
|
+
const hasCurrentPassword = dataKeys.includes("currentPassword");
|
|
39
|
+
const hasPassword = dataKeys.includes("password");
|
|
40
|
+
if (hasPassword || hasCurrentPassword) {
|
|
41
|
+
if (!(hasCurrentPassword && hasPassword)) return false;
|
|
42
|
+
try {
|
|
43
|
+
if (!user.email) return false;
|
|
44
|
+
const result = await req.payload.login({
|
|
45
|
+
collection: userSlug,
|
|
46
|
+
data: {
|
|
47
|
+
email: user.email,
|
|
48
|
+
password: data.currentPassword
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
if (!result) return false;
|
|
52
|
+
allowedFields.push("password", "currentPassword");
|
|
53
|
+
} catch (error) {
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
const hasDisallowedField = dataKeys.some((key)=>!allowedFields.includes(key));
|
|
58
|
+
return !hasDisallowedField;
|
|
59
|
+
}
|
|
60
|
+
return false;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3V0aWxzL3BheWxvYWQtYWNjZXNzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQWNjZXNzLCBGaWVsZEFjY2VzcyB9IGZyb20gXCJwYXlsb2FkXCI7XG5cbmV4cG9ydCB0eXBlIEFkbWluUm9sZXNDb25maWcgPSB7XG4gIGFkbWluUm9sZXM/OiBzdHJpbmdbXTtcbn07XG5cbmV4cG9ydCB0eXBlIEFkbWluT3JDdXJyZW50VXNlckNvbmZpZyA9IEFkbWluUm9sZXNDb25maWcgJiB7XG4gIGlkRmllbGQ/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVDb25maWcgPSBBZG1pbk9yQ3VycmVudFVzZXJDb25maWcgJiB7XG4gIGFsbG93ZWRGaWVsZHM/OiBzdHJpbmdbXTtcbiAgdXNlclNsdWc6IHN0cmluZztcbn07XG5cbmV4cG9ydCBjb25zdCBpc0FkbWluV2l0aFJvbGVzID1cbiAgKGNvbmZpZzogQWRtaW5Sb2xlc0NvbmZpZyA9IHt9KTogRmllbGRBY2Nlc3MgPT5cbiAgKHsgcmVxIH0pID0+IHtcbiAgICBjb25zdCB7IGFkbWluUm9sZXMgPSBbXCJhZG1pblwiXSB9ID0gY29uZmlnO1xuICAgIGlmICghcmVxPy51c2VyIHx8ICFyZXEudXNlci5yb2xlIHx8ICFhZG1pblJvbGVzLmluY2x1ZGVzKHJlcS51c2VyLnJvbGUpKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB0cnVlO1xuICB9O1xuXG5leHBvcnQgY29uc3QgaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMgPVxuICAoY29uZmlnOiBBZG1pbk9yQ3VycmVudFVzZXJDb25maWcgPSB7fSk6IEFjY2VzcyA9PlxuICAoeyByZXEgfSkgPT4ge1xuICAgIGNvbnN0IHsgYWRtaW5Sb2xlcyA9IFtcImFkbWluXCJdLCBpZEZpZWxkID0gXCJpZFwiIH0gPSBjb25maWc7XG4gICAgaWYgKGlzQWRtaW5XaXRoUm9sZXMoeyBhZG1pblJvbGVzIH0pKHsgcmVxIH0pKSByZXR1cm4gdHJ1ZTtcbiAgICBpZiAoIXJlcT8udXNlcikgcmV0dXJuIGZhbHNlO1xuICAgIHJldHVybiB7XG4gICAgICBbaWRGaWVsZF06IHtcbiAgICAgICAgZXF1YWxzOiByZXE/LnVzZXI/LmlkLFxuICAgICAgfSxcbiAgICB9O1xuICB9O1xuXG5leHBvcnQgY29uc3QgaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcyA9IChcbiAgY29uZmlnOiBBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVDb25maWdcbik6IEFjY2VzcyA9PiB7XG4gIHJldHVybiBhc3luYyAoeyByZXEsIGlkLCBkYXRhIH0pID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBhZG1pblJvbGVzID0gW1wiYWRtaW5cIl0sXG4gICAgICBhbGxvd2VkRmllbGRzID0gW10sXG4gICAgICB1c2VyU2x1ZyxcbiAgICAgIGlkRmllbGQgPSBcImlkXCIsXG4gICAgfSA9IGNvbmZpZztcbiAgICBjb25zdCB1c2VyID0gcmVxLnVzZXI7XG5cbiAgICBpZiAoaXNBZG1pbldpdGhSb2xlcyh7IGFkbWluUm9sZXMgfSkoeyByZXEgfSkpIHJldHVybiB0cnVlO1xuXG4gICAgaWYgKCF1c2VyKSByZXR1cm4gZmFsc2U7XG5cbiAgICBpZiAodXNlcltpZEZpZWxkXSA9PT0gaWQgJiYgZGF0YSkge1xuICAgICAgY29uc3QgZGF0YUtleXMgPSBPYmplY3Qua2V5cyhkYXRhKTtcblxuICAgICAgY29uc3QgaGFzQ3VycmVudFBhc3N3b3JkID0gZGF0YUtleXMuaW5jbHVkZXMoXCJjdXJyZW50UGFzc3dvcmRcIik7XG4gICAgICBjb25zdCBoYXNQYXNzd29yZCA9IGRhdGFLZXlzLmluY2x1ZGVzKFwicGFzc3dvcmRcIik7XG5cbiAgICAgIGlmIChoYXNQYXNzd29yZCB8fCBoYXNDdXJyZW50UGFzc3dvcmQpIHtcbiAgICAgICAgaWYgKCEoaGFzQ3VycmVudFBhc3N3b3JkICYmIGhhc1Bhc3N3b3JkKSkgcmV0dXJuIGZhbHNlO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghdXNlci5lbWFpbCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgcmVxLnBheWxvYWQubG9naW4oe1xuICAgICAgICAgICAgY29sbGVjdGlvbjogdXNlclNsdWcsXG4gICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsLFxuICAgICAgICAgICAgICBwYXNzd29yZDogZGF0YS5jdXJyZW50UGFzc3dvcmQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKCFyZXN1bHQpIHJldHVybiBmYWxzZTtcblxuICAgICAgICAgIGFsbG93ZWRGaWVsZHMucHVzaChcInBhc3N3b3JkXCIsIFwiY3VycmVudFBhc3N3b3JkXCIpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBoYXNEaXNhbGxvd2VkRmllbGQgPSBkYXRhS2V5cy5zb21lKFxuICAgICAgICAoa2V5KSA9PiAhYWxsb3dlZEZpZWxkcy5pbmNsdWRlcyhrZXkpXG4gICAgICApO1xuXG4gICAgICByZXR1cm4gIWhhc0Rpc2FsbG93ZWRGaWVsZDtcbiAgICB9XG5cbiAgICByZXR1cm4gZmFsc2U7XG4gIH07XG59O1xuIl0sIm5hbWVzIjpbImlzQWRtaW5XaXRoUm9sZXMiLCJjb25maWciLCJyZXEiLCJhZG1pblJvbGVzIiwidXNlciIsInJvbGUiLCJpbmNsdWRlcyIsImlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzIiwiaWRGaWVsZCIsImVxdWFscyIsImlkIiwiaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcyIsImRhdGEiLCJhbGxvd2VkRmllbGRzIiwidXNlclNsdWciLCJkYXRhS2V5cyIsIk9iamVjdCIsImtleXMiLCJoYXNDdXJyZW50UGFzc3dvcmQiLCJoYXNQYXNzd29yZCIsImVtYWlsIiwicmVzdWx0IiwicGF5bG9hZCIsImxvZ2luIiwiY29sbGVjdGlvbiIsInBhc3N3b3JkIiwiY3VycmVudFBhc3N3b3JkIiwicHVzaCIsImVycm9yIiwiaGFzRGlzYWxsb3dlZEZpZWxkIiwic29tZSIsImtleSJdLCJtYXBwaW5ncyI6IkFBZUEsT0FBTyxNQUFNQSxtQkFDWCxDQUFDQyxTQUEyQixDQUFDLENBQUMsR0FDOUIsQ0FBQyxFQUFFQyxHQUFHLEVBQUU7UUFDTixNQUFNLEVBQUVDLGFBQWE7WUFBQztTQUFRLEVBQUUsR0FBR0Y7UUFDbkMsSUFBSSxDQUFDQyxLQUFLRSxRQUFRLENBQUNGLElBQUlFLElBQUksQ0FBQ0MsSUFBSSxJQUFJLENBQUNGLFdBQVdHLFFBQVEsQ0FBQ0osSUFBSUUsSUFBSSxDQUFDQyxJQUFJLEdBQ3BFLE9BQU87UUFDVCxPQUFPO0lBQ1QsRUFBRTtBQUVKLE9BQU8sTUFBTUUsZ0NBQ1gsQ0FBQ04sU0FBbUMsQ0FBQyxDQUFDLEdBQ3RDLENBQUMsRUFBRUMsR0FBRyxFQUFFO1FBQ04sTUFBTSxFQUFFQyxhQUFhO1lBQUM7U0FBUSxFQUFFSyxVQUFVLElBQUksRUFBRSxHQUFHUDtRQUNuRCxJQUFJRCxpQkFBaUI7WUFBRUc7UUFBVyxHQUFHO1lBQUVEO1FBQUksSUFBSSxPQUFPO1FBQ3RELElBQUksQ0FBQ0EsS0FBS0UsTUFBTSxPQUFPO1FBQ3ZCLE9BQU87WUFDTCxDQUFDSSxRQUFRLEVBQUU7Z0JBQ1RDLFFBQVFQLEtBQUtFLE1BQU1NO1lBQ3JCO1FBQ0Y7SUFDRixFQUFFO0FBRUosT0FBTyxNQUFNQyw4Q0FBOEMsQ0FDekRWO0lBRUEsT0FBTyxPQUFPLEVBQUVDLEdBQUcsRUFBRVEsRUFBRSxFQUFFRSxJQUFJLEVBQUU7UUFDN0IsTUFBTSxFQUNKVCxhQUFhO1lBQUM7U0FBUSxFQUN0QlUsZ0JBQWdCLEVBQUUsRUFDbEJDLFFBQVEsRUFDUk4sVUFBVSxJQUFJLEVBQ2YsR0FBR1A7UUFDSixNQUFNRyxPQUFPRixJQUFJRSxJQUFJO1FBRXJCLElBQUlKLGlCQUFpQjtZQUFFRztRQUFXLEdBQUc7WUFBRUQ7UUFBSSxJQUFJLE9BQU87UUFFdEQsSUFBSSxDQUFDRSxNQUFNLE9BQU87UUFFbEIsSUFBSUEsSUFBSSxDQUFDSSxRQUFRLEtBQUtFLE1BQU1FLE1BQU07WUFDaEMsTUFBTUcsV0FBV0MsT0FBT0MsSUFBSSxDQUFDTDtZQUU3QixNQUFNTSxxQkFBcUJILFNBQVNULFFBQVEsQ0FBQztZQUM3QyxNQUFNYSxjQUFjSixTQUFTVCxRQUFRLENBQUM7WUFFdEMsSUFBSWEsZUFBZUQsb0JBQW9CO2dCQUNyQyxJQUFJLENBQUVBLENBQUFBLHNCQUFzQkMsV0FBVSxHQUFJLE9BQU87Z0JBQ2pELElBQUk7b0JBQ0YsSUFBSSxDQUFDZixLQUFLZ0IsS0FBSyxFQUFFLE9BQU87b0JBRXhCLE1BQU1DLFNBQVMsTUFBTW5CLElBQUlvQixPQUFPLENBQUNDLEtBQUssQ0FBQzt3QkFDckNDLFlBQVlWO3dCQUNaRixNQUFNOzRCQUNKUSxPQUFPaEIsS0FBS2dCLEtBQUs7NEJBQ2pCSyxVQUFVYixLQUFLYyxlQUFlO3dCQUNoQztvQkFDRjtvQkFFQSxJQUFJLENBQUNMLFFBQVEsT0FBTztvQkFFcEJSLGNBQWNjLElBQUksQ0FBQyxZQUFZO2dCQUNqQyxFQUFFLE9BQU9DLE9BQU87b0JBQ2QsT0FBTztnQkFDVDtZQUNGO1lBRUEsTUFBTUMscUJBQXFCZCxTQUFTZSxJQUFJLENBQ3RDLENBQUNDLE1BQVEsQ0FBQ2xCLGNBQWNQLFFBQVEsQ0FBQ3lCO1lBR25DLE9BQU8sQ0FBQ0Y7UUFDVjtRQUVBLE9BQU87SUFDVDtBQUNGLEVBQUUifQ==
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CollectionConfig } from "payload";
|
|
2
|
+
import { BetterAuthPluginOptions } from "../../types";
|
|
3
|
+
export declare function buildVerificationsCollection({ incomingCollections, pluginOptions, }: {
|
|
4
|
+
incomingCollections: CollectionConfig[];
|
|
5
|
+
pluginOptions: BetterAuthPluginOptions;
|
|
6
|
+
}): CollectionConfig;
|
|
7
|
+
//# sourceMappingURL=verifications.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verifications.d.ts","sourceRoot":"","sources":["../../../../../src/better-auth/plugin/lib/build-collections/verifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAItD,wBAAgB,4BAA4B,CAAC,EAC3C,mBAAmB,EACnB,aAAa,GACd,EAAE;IACD,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;IACxC,aAAa,EAAE,uBAAuB,CAAC;CACxC,oBAgEA"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { baseCollectionSlugs } from "../constants";
|
|
2
|
+
import { getAdminAccess } from "../../helpers/get-admin-access";
|
|
3
|
+
export function buildVerificationsCollection({ incomingCollections, pluginOptions }) {
|
|
4
|
+
const verificationSlug = pluginOptions.verifications?.slug ?? baseCollectionSlugs.verifications;
|
|
5
|
+
const existingVerificationCollection = incomingCollections.find((collection)=>collection.slug === verificationSlug);
|
|
6
|
+
let verificationCollection = {
|
|
7
|
+
slug: verificationSlug,
|
|
8
|
+
admin: {
|
|
9
|
+
useAsTitle: "identifier",
|
|
10
|
+
description: "Verifications are used to verify authentication requests",
|
|
11
|
+
group: pluginOptions?.collectionAdminGroup ?? "Auth",
|
|
12
|
+
...existingVerificationCollection?.admin,
|
|
13
|
+
hidden: pluginOptions.verifications?.hidden
|
|
14
|
+
},
|
|
15
|
+
access: {
|
|
16
|
+
...getAdminAccess(pluginOptions)
|
|
17
|
+
},
|
|
18
|
+
fields: [
|
|
19
|
+
...existingVerificationCollection?.fields ?? [],
|
|
20
|
+
{
|
|
21
|
+
name: "identifier",
|
|
22
|
+
type: "text",
|
|
23
|
+
required: true,
|
|
24
|
+
index: true,
|
|
25
|
+
label: "Identifier",
|
|
26
|
+
admin: {
|
|
27
|
+
description: "The identifier of the verification request",
|
|
28
|
+
readOnly: true
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
name: "value",
|
|
33
|
+
type: "text",
|
|
34
|
+
required: true,
|
|
35
|
+
label: "Value",
|
|
36
|
+
admin: {
|
|
37
|
+
description: "The value to be verified",
|
|
38
|
+
readOnly: true
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
name: "expiresAt",
|
|
43
|
+
type: "date",
|
|
44
|
+
required: true,
|
|
45
|
+
label: "Expires At",
|
|
46
|
+
admin: {
|
|
47
|
+
description: "The date and time when the verification request will expire",
|
|
48
|
+
readOnly: true
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
timestamps: true,
|
|
53
|
+
...existingVerificationCollection
|
|
54
|
+
};
|
|
55
|
+
if (pluginOptions.verifications?.collectionOverrides) {
|
|
56
|
+
verificationCollection = pluginOptions.verifications.collectionOverrides({
|
|
57
|
+
collection: verificationCollection
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return verificationCollection;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3ZlcmlmaWNhdGlvbnMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29sbGVjdGlvbkNvbmZpZyB9IGZyb20gXCJwYXlsb2FkXCI7XG5pbXBvcnQgeyBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucyB9IGZyb20gXCIuLi8uLi90eXBlc1wiO1xuaW1wb3J0IHsgYmFzZUNvbGxlY3Rpb25TbHVncyB9IGZyb20gXCIuLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IGdldEFkbWluQWNjZXNzIH0gZnJvbSBcIi4uLy4uL2hlbHBlcnMvZ2V0LWFkbWluLWFjY2Vzc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRWZXJpZmljYXRpb25zQ29sbGVjdGlvbih7XG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnMsXG59OiB7XG4gIGluY29taW5nQ29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXTtcbiAgcGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnM7XG59KSB7XG4gIGNvbnN0IHZlcmlmaWNhdGlvblNsdWcgPVxuICAgIHBsdWdpbk9wdGlvbnMudmVyaWZpY2F0aW9ucz8uc2x1ZyA/PyBiYXNlQ29sbGVjdGlvblNsdWdzLnZlcmlmaWNhdGlvbnM7XG4gIGNvbnN0IGV4aXN0aW5nVmVyaWZpY2F0aW9uQ29sbGVjdGlvbiA9IGluY29taW5nQ29sbGVjdGlvbnMuZmluZChcbiAgICAoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSB2ZXJpZmljYXRpb25TbHVnXG4gICk7XG4gIGxldCB2ZXJpZmljYXRpb25Db2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIHNsdWc6IHZlcmlmaWNhdGlvblNsdWcsXG4gICAgYWRtaW46IHtcbiAgICAgIHVzZUFzVGl0bGU6IFwiaWRlbnRpZmllclwiLFxuICAgICAgZGVzY3JpcHRpb246IFwiVmVyaWZpY2F0aW9ucyBhcmUgdXNlZCB0byB2ZXJpZnkgYXV0aGVudGljYXRpb24gcmVxdWVzdHNcIixcbiAgICAgIGdyb3VwOiBwbHVnaW5PcHRpb25zPy5jb2xsZWN0aW9uQWRtaW5Hcm91cCA/PyBcIkF1dGhcIixcbiAgICAgIC4uLmV4aXN0aW5nVmVyaWZpY2F0aW9uQ29sbGVjdGlvbj8uYWRtaW4sXG4gICAgICBoaWRkZW46IHBsdWdpbk9wdGlvbnMudmVyaWZpY2F0aW9ucz8uaGlkZGVuLFxuICAgIH0sXG4gICAgYWNjZXNzOiB7XG4gICAgICAuLi5nZXRBZG1pbkFjY2VzcyhwbHVnaW5PcHRpb25zKSxcbiAgICB9LFxuICAgIGZpZWxkczogW1xuICAgICAgLi4uKGV4aXN0aW5nVmVyaWZpY2F0aW9uQ29sbGVjdGlvbj8uZmllbGRzID8/IFtdKSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJpZGVudGlmaWVyXCIsXG4gICAgICAgIHR5cGU6IFwidGV4dFwiLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgaW5kZXg6IHRydWUsXG4gICAgICAgIGxhYmVsOiBcIklkZW50aWZpZXJcIixcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogXCJUaGUgaWRlbnRpZmllciBvZiB0aGUgdmVyaWZpY2F0aW9uIHJlcXVlc3RcIixcbiAgICAgICAgICByZWFkT25seTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwidmFsdWVcIixcbiAgICAgICAgdHlwZTogXCJ0ZXh0XCIsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBsYWJlbDogXCJWYWx1ZVwiLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiBcIlRoZSB2YWx1ZSB0byBiZSB2ZXJpZmllZFwiLFxuICAgICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJleHBpcmVzQXRcIixcbiAgICAgICAgdHlwZTogXCJkYXRlXCIsXG4gICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICBsYWJlbDogXCJFeHBpcmVzIEF0XCIsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICBcIlRoZSBkYXRlIGFuZCB0aW1lIHdoZW4gdGhlIHZlcmlmaWNhdGlvbiByZXF1ZXN0IHdpbGwgZXhwaXJlXCIsXG4gICAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF0sXG4gICAgdGltZXN0YW1wczogdHJ1ZSxcbiAgICAuLi5leGlzdGluZ1ZlcmlmaWNhdGlvbkNvbGxlY3Rpb24sXG4gIH07XG5cbiAgaWYgKHBsdWdpbk9wdGlvbnMudmVyaWZpY2F0aW9ucz8uY29sbGVjdGlvbk92ZXJyaWRlcykge1xuICAgIHZlcmlmaWNhdGlvbkNvbGxlY3Rpb24gPSBwbHVnaW5PcHRpb25zLnZlcmlmaWNhdGlvbnMuY29sbGVjdGlvbk92ZXJyaWRlcyh7XG4gICAgICBjb2xsZWN0aW9uOiB2ZXJpZmljYXRpb25Db2xsZWN0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgcmV0dXJuIHZlcmlmaWNhdGlvbkNvbGxlY3Rpb247XG59XG4iXSwibmFtZXMiOlsiYmFzZUNvbGxlY3Rpb25TbHVncyIsImdldEFkbWluQWNjZXNzIiwiYnVpbGRWZXJpZmljYXRpb25zQ29sbGVjdGlvbiIsImluY29taW5nQ29sbGVjdGlvbnMiLCJwbHVnaW5PcHRpb25zIiwidmVyaWZpY2F0aW9uU2x1ZyIsInZlcmlmaWNhdGlvbnMiLCJzbHVnIiwiZXhpc3RpbmdWZXJpZmljYXRpb25Db2xsZWN0aW9uIiwiZmluZCIsImNvbGxlY3Rpb24iLCJ2ZXJpZmljYXRpb25Db2xsZWN0aW9uIiwiYWRtaW4iLCJ1c2VBc1RpdGxlIiwiZGVzY3JpcHRpb24iLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiaGlkZGVuIiwiYWNjZXNzIiwiZmllbGRzIiwibmFtZSIsInR5cGUiLCJyZXF1aXJlZCIsImluZGV4IiwibGFiZWwiLCJyZWFkT25seSIsInRpbWVzdGFtcHMiLCJjb2xsZWN0aW9uT3ZlcnJpZGVzIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUFTQSxtQkFBbUIsUUFBUSxlQUFlO0FBQ25ELFNBQVNDLGNBQWMsUUFBUSxpQ0FBaUM7QUFFaEUsT0FBTyxTQUFTQyw2QkFBNkIsRUFDM0NDLG1CQUFtQixFQUNuQkMsYUFBYSxFQUlkO0lBQ0MsTUFBTUMsbUJBQ0pELGNBQWNFLGFBQWEsRUFBRUMsUUFBUVAsb0JBQW9CTSxhQUFhO0lBQ3hFLE1BQU1FLGlDQUFpQ0wsb0JBQW9CTSxJQUFJLENBQzdELENBQUNDLGFBQWVBLFdBQVdILElBQUksS0FBS0Y7SUFFdEMsSUFBSU0seUJBQTJDO1FBQzdDSixNQUFNRjtRQUNOTyxPQUFPO1lBQ0xDLFlBQVk7WUFDWkMsYUFBYTtZQUNiQyxPQUFPWCxlQUFlWSx3QkFBd0I7WUFDOUMsR0FBR1IsZ0NBQWdDSSxLQUFLO1lBQ3hDSyxRQUFRYixjQUFjRSxhQUFhLEVBQUVXO1FBQ3ZDO1FBQ0FDLFFBQVE7WUFDTixHQUFHakIsZUFBZUcsY0FBYztRQUNsQztRQUNBZSxRQUFRO2VBQ0ZYLGdDQUFnQ1csVUFBVSxFQUFFO1lBQ2hEO2dCQUNFQyxNQUFNO2dCQUNOQyxNQUFNO2dCQUNOQyxVQUFVO2dCQUNWQyxPQUFPO2dCQUNQQyxPQUFPO2dCQUNQWixPQUFPO29CQUNMRSxhQUFhO29CQUNiVyxVQUFVO2dCQUNaO1lBQ0Y7WUFDQTtnQkFDRUwsTUFBTTtnQkFDTkMsTUFBTTtnQkFDTkMsVUFBVTtnQkFDVkUsT0FBTztnQkFDUFosT0FBTztvQkFDTEUsYUFBYTtvQkFDYlcsVUFBVTtnQkFDWjtZQUNGO1lBQ0E7Z0JBQ0VMLE1BQU07Z0JBQ05DLE1BQU07Z0JBQ05DLFVBQVU7Z0JBQ1ZFLE9BQU87Z0JBQ1BaLE9BQU87b0JBQ0xFLGFBQ0U7b0JBQ0ZXLFVBQVU7Z0JBQ1o7WUFDRjtTQUNEO1FBQ0RDLFlBQVk7UUFDWixHQUFHbEIsOEJBQThCO0lBQ25DO0lBRUEsSUFBSUosY0FBY0UsYUFBYSxFQUFFcUIscUJBQXFCO1FBQ3BEaEIseUJBQXlCUCxjQUFjRSxhQUFhLENBQUNxQixtQkFBbUIsQ0FBQztZQUN2RWpCLFlBQVlDO1FBQ2Q7SUFDRjtJQUVBLE9BQU9BO0FBQ1QifQ==
|
|
@@ -18,12 +18,14 @@ export declare const supportedBetterAuthPluginIds: {
|
|
|
18
18
|
readonly nextCookies: "next-cookies";
|
|
19
19
|
readonly sso: "sso";
|
|
20
20
|
readonly oidc: "oidc";
|
|
21
|
+
readonly expo: "expo";
|
|
21
22
|
};
|
|
22
23
|
export declare const baseCollectionSlugs: {
|
|
23
24
|
readonly users: "users";
|
|
24
25
|
readonly sessions: "sessions";
|
|
25
26
|
readonly accounts: "accounts";
|
|
26
27
|
readonly verifications: "verifications";
|
|
28
|
+
readonly adminInvitations: "admin-invitations";
|
|
27
29
|
};
|
|
28
30
|
export declare const betterAuthPluginSlugs: {
|
|
29
31
|
readonly apiKeys: "apiKeys";
|
|
@@ -39,3 +41,15 @@ export declare const betterAuthPluginSlugs: {
|
|
|
39
41
|
readonly members: "members";
|
|
40
42
|
readonly teams: "teams";
|
|
41
43
|
};
|
|
44
|
+
export declare const adminRoutes: {
|
|
45
|
+
readonly forgotPassword: "/forgot-password";
|
|
46
|
+
readonly resetPassword: "/reset-password";
|
|
47
|
+
readonly login: "/login";
|
|
48
|
+
readonly loginRedirect: "/login-redirect";
|
|
49
|
+
readonly logout: "/logout";
|
|
50
|
+
readonly createFirstAdmin: "/create-first-admin";
|
|
51
|
+
readonly adminInvite: "/admin-invite";
|
|
52
|
+
readonly verifyEmail: "/verify-email";
|
|
53
|
+
readonly inactivity: "/inactivity";
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=constants.d.ts.map
|