payload-auth 1.0.0 → 1.0.2
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/dev/bin/run.d.ts +1 -0
- package/dist/better-auth/adapter/dev/bin/run.d.ts.map +1 -0
- package/dist/better-auth/adapter/dev/bin/run.js +1 -1
- package/dist/better-auth/adapter/dev/bin/schema.d.ts +1 -0
- package/dist/better-auth/adapter/dev/bin/schema.d.ts.map +1 -0
- package/dist/better-auth/adapter/dev/bin/schema.js +1 -1
- package/dist/better-auth/adapter/dev/collections.d.ts +1 -0
- package/dist/better-auth/adapter/dev/collections.d.ts.map +1 -0
- package/dist/better-auth/adapter/dev/collections.js +1 -1
- package/dist/better-auth/adapter/dev/index.d.ts +1 -0
- package/dist/better-auth/adapter/dev/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/dev/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 +3 -3
- package/dist/better-auth/adapter/test/adapter.test.d.ts +1 -0
- package/dist/better-auth/adapter/test/adapter.test.d.ts.map +1 -0
- package/dist/better-auth/adapter/test/adapter.test.js +1 -1
- package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts +1 -0
- package/dist/better-auth/adapter/test/better-auth-adapter-test.d.ts.map +1 -0
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js +1 -1
- package/dist/better-auth/adapter/test/schema.test.d.ts +1 -0
- package/dist/better-auth/adapter/test/schema.test.d.ts.map +1 -0
- package/dist/better-auth/adapter/test/schema.test.js +1 -1
- package/dist/better-auth/adapter/test/test_payload1/schema.d.ts +1 -0
- package/dist/better-auth/adapter/test/test_payload1/schema.d.ts.map +1 -0
- package/dist/better-auth/adapter/test/test_payload1/schema.js +1 -1
- package/dist/better-auth/adapter/test/test_payload2/schema.d.ts +1 -0
- package/dist/better-auth/adapter/test/test_payload2/schema.d.ts.map +1 -0
- package/dist/better-auth/adapter/test/test_payload2/schema.js +1 -1
- package/dist/better-auth/adapter/test/test_payload3/schema.d.ts +1 -0
- package/dist/better-auth/adapter/test/test_payload3/schema.d.ts.map +1 -0
- package/dist/better-auth/adapter/test/test_payload3/schema.js +1 -1
- package/dist/better-auth/adapter/transform/index.d.ts +5 -4
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/transform/index.js +1 -1
- package/dist/better-auth/adapter/types.d.ts +1 -0
- 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 -3
- package/dist/better-auth/index.d.ts.map +1 -0
- package/dist/better-auth/index.js +1 -4
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts +1 -0
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/accounts/hooks/sync-password-to-user.js +1 -1
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/endpoints/refresh-token.js +1 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/after-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/after-login.js +1 -1
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/after-logout.js +1 -1
- package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/before-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/before-login.js +1 -1
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/clean-up-user-after-delete.js +1 -1
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/on-verified-change.js +1 -1
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.d.ts.map +1 -0
- package/dist/better-auth/plugin/collections/users/hooks/sync-account.js +2 -2
- 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 +1 -1
- package/dist/better-auth/plugin/helpers/get-ip.d.ts +1 -0
- package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-ip.js +1 -1
- package/dist/better-auth/plugin/helpers/index.d.ts +1 -0
- package/dist/better-auth/plugin/helpers/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/index.js +1 -1
- 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 +1 -1
- package/dist/better-auth/plugin/index.d.ts +2 -1
- package/dist/better-auth/plugin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/index.js +2 -2
- package/dist/better-auth/plugin/lib/auth-strategy.d.ts +1 -0
- package/dist/better-auth/plugin/lib/auth-strategy.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/auth-strategy.js +1 -1
- package/dist/better-auth/plugin/lib/build-collection-configs.d.ts +1 -0
- package/dist/better-auth/plugin/lib/build-collection-configs.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collection-configs.js +2 -2
- package/dist/better-auth/plugin/lib/config.d.ts +2 -0
- package/dist/better-auth/plugin/lib/config.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/config.js +3 -2
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts +1 -0
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/ensure-password-set-before-create.js +1 -1
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +1 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.js +1 -1
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +1 -0
- 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 +1 -1
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts +1 -0
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/init-better-auth.js +2 -2
- package/dist/better-auth/plugin/lib/password.d.ts +1 -0
- package/dist/better-auth/plugin/lib/password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/password.js +1 -1
- package/dist/better-auth/plugin/lib/payload-access.d.ts +1 -0
- package/dist/better-auth/plugin/lib/payload-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/payload-access.js +1 -1
- package/dist/better-auth/plugin/lib/prepare-session-data.d.ts +2 -1
- package/dist/better-auth/plugin/lib/prepare-session-data.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/prepare-session-data.js +1 -1
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts +1 -0
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/respect-save-to-jwt-fields-middleware.js +1 -1
- package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts +1 -0
- package/dist/better-auth/plugin/lib/sanitize-auth-options.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js +1 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts +3 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons.js +3 -6
- package/dist/better-auth/plugin/payload/components/login-redirect.d.ts +1 -0
- package/dist/better-auth/plugin/payload/components/login-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-redirect.js +1 -1
- package/dist/better-auth/plugin/payload/components/logo.d.ts +3 -1
- package/dist/better-auth/plugin/payload/components/logo.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logo.js +1 -1
- package/dist/better-auth/plugin/payload/components/logout.d.ts +3 -1
- package/dist/better-auth/plugin/payload/components/logout.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logout.js +1 -1
- package/dist/better-auth/plugin/payload/components/sign-in.d.ts +2 -1
- package/dist/better-auth/plugin/payload/components/sign-in.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/sign-in.js +1 -1
- package/dist/better-auth/plugin/payload/components/sign-up.d.ts +2 -1
- package/dist/better-auth/plugin/payload/components/sign-up.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/sign-up.js +2 -1
- package/dist/better-auth/plugin/payload/components/ui/button.d.ts +6 -5
- package/dist/better-auth/plugin/payload/components/ui/button.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/button.js +1 -1
- package/dist/better-auth/plugin/payload/components/ui/card.d.ts +8 -7
- package/dist/better-auth/plugin/payload/components/ui/card.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/card.js +1 -1
- package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts +2 -1
- package/dist/better-auth/plugin/payload/components/ui/checkbox.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js +1 -1
- package/dist/better-auth/plugin/payload/components/ui/cn.d.ts +1 -0
- package/dist/better-auth/plugin/payload/components/ui/cn.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/cn.js +1 -1
- package/dist/better-auth/plugin/payload/components/ui/input.d.ts +2 -1
- package/dist/better-auth/plugin/payload/components/ui/input.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/input.js +1 -1
- package/dist/better-auth/plugin/payload/components/ui/label.d.ts +2 -1
- package/dist/better-auth/plugin/payload/components/ui/label.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/label.js +1 -1
- package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts +2 -1
- package/dist/better-auth/plugin/payload/components/ui/password-input.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/ui/password-input.js +1 -1
- package/dist/better-auth/plugin/payload/exports/client.d.ts +1 -0
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/client.js +1 -1
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts +1 -0
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/rsc.js +1 -1
- package/dist/better-auth/plugin/payload/views/create-first-admin/index.d.ts +3 -1
- 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 +1 -1
- package/dist/better-auth/plugin/payload/views/login/index.d.ts +3 -1
- package/dist/better-auth/plugin/payload/views/login/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/login/index.js +1 -1
- package/dist/better-auth/plugin/types.d.ts +1 -0
- 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 +24 -0
- package/dist/clerk/utils/clerk-user.d.ts.map +1 -0
- package/dist/clerk/utils/clerk-user.js +47 -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 +39 -12
- package/dist/authjs/index.js.map +0 -1
- package/dist/better-auth/adapter/dev/bin/run.js.map +0 -1
- package/dist/better-auth/adapter/dev/bin/schema.js.map +0 -1
- package/dist/better-auth/adapter/dev/collections.js.map +0 -1
- 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.js.map +0 -1
- package/dist/better-auth/adapter/test/better-auth-adapter-test.js.map +0 -1
- package/dist/better-auth/adapter/test/schema.test.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload1/schema.js.map +0 -1
- package/dist/better-auth/adapter/test/test_payload2/schema.js.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- 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.map +0 -1
- 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.js.map +0 -1
- 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.js.map +0 -1
- package/dist/better-auth/plugin/lib/build-collection-configs.js.map +0 -1
- package/dist/better-auth/plugin/lib/config.js.map +0 -1
- 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.map +0 -1
- package/dist/better-auth/plugin/lib/payload-access.js.map +0 -1
- 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.map +0 -1
- package/dist/better-auth/plugin/lib/sanitize-auth-options.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons.js.map +0 -1
- 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.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-in.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/sign-up.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/button.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/card.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/checkbox.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/cn.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/input.js.map +0 -1
- package/dist/better-auth/plugin/payload/components/ui/label.js.map +0 -1
- 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,95 @@
|
|
|
1
|
+
import { clerkAuthStrategy } from '../../auth-strategy';
|
|
2
|
+
import { getCreateAccess, getDeleteAccess, getReadAccess, getUpdateAccess } from './access';
|
|
3
|
+
import { syncClerkUsersEndpoint } from './endpoints/sync-from-clerk';
|
|
4
|
+
import { clerkWebhookEndpoint } from './endpoints/webhook/index';
|
|
5
|
+
import { clerkUserFields } from './fields';
|
|
6
|
+
import { cookies } from 'next/headers';
|
|
7
|
+
export function withClerkUsersCollection({ collection = {
|
|
8
|
+
slug: 'users'
|
|
9
|
+
}, options, apiBasePath = '/api', adminBasePath = '/admin' }) {
|
|
10
|
+
const userSlug = options.users?.slug ?? 'users';
|
|
11
|
+
const adminRoles = options.users?.adminRoles ?? [
|
|
12
|
+
'admin'
|
|
13
|
+
];
|
|
14
|
+
let clerkUserCollection = {
|
|
15
|
+
...collection,
|
|
16
|
+
slug: userSlug,
|
|
17
|
+
admin: {
|
|
18
|
+
useAsTitle: 'email',
|
|
19
|
+
defaultColumns: [
|
|
20
|
+
'email',
|
|
21
|
+
'clerkId',
|
|
22
|
+
'firstName',
|
|
23
|
+
'lastName'
|
|
24
|
+
],
|
|
25
|
+
hidden: options.users?.hidden ?? false,
|
|
26
|
+
...collection.admin || {},
|
|
27
|
+
components: {
|
|
28
|
+
Description: {
|
|
29
|
+
path: 'payload-auth/clerk/admin/ui#SyncClerkUsersButton',
|
|
30
|
+
clientProps: {
|
|
31
|
+
userCollectionSlug: userSlug,
|
|
32
|
+
apiBasePath,
|
|
33
|
+
adminBasePath
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
fields: [
|
|
39
|
+
...collection.fields || [],
|
|
40
|
+
...clerkUserFields
|
|
41
|
+
],
|
|
42
|
+
auth: {
|
|
43
|
+
...typeof collection?.auth === 'object' ? collection.auth : {},
|
|
44
|
+
strategies: [
|
|
45
|
+
clerkAuthStrategy(userSlug)
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
access: {
|
|
49
|
+
read: getReadAccess({
|
|
50
|
+
adminRoles
|
|
51
|
+
}),
|
|
52
|
+
create: getCreateAccess({
|
|
53
|
+
adminRoles
|
|
54
|
+
}),
|
|
55
|
+
update: getUpdateAccess({
|
|
56
|
+
adminRoles
|
|
57
|
+
}),
|
|
58
|
+
delete: getDeleteAccess({
|
|
59
|
+
adminRoles
|
|
60
|
+
})
|
|
61
|
+
},
|
|
62
|
+
endpoints: [
|
|
63
|
+
...collection.endpoints || [],
|
|
64
|
+
clerkWebhookEndpoint({
|
|
65
|
+
userSlug,
|
|
66
|
+
options
|
|
67
|
+
}),
|
|
68
|
+
syncClerkUsersEndpoint({
|
|
69
|
+
userCollectionSlug: userSlug
|
|
70
|
+
})
|
|
71
|
+
],
|
|
72
|
+
hooks: {
|
|
73
|
+
afterLogout: [
|
|
74
|
+
async ()=>{
|
|
75
|
+
const cookieStore = await cookies();
|
|
76
|
+
// Get all cookies and delete any with __session or __clerk in their name
|
|
77
|
+
const allCookies = cookieStore.getAll();
|
|
78
|
+
allCookies.forEach((cookie)=>{
|
|
79
|
+
if (cookie.name.includes('__session') || cookie.name.includes('__clerk')) {
|
|
80
|
+
cookieStore.delete(cookie.name);
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
]
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
if (options.users?.collectionOverrides) {
|
|
88
|
+
clerkUserCollection = options.users.collectionOverrides({
|
|
89
|
+
collection: clerkUserCollection
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
return clerkUserCollection;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9jbGVyay9wbHVnaW4vY29sbGVjdGlvbnMvdXNlcnMvaW5kZXgudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgQ2xlcmtQbHVnaW5PcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnXG5pbXBvcnQgeyBjbGVya0F1dGhTdHJhdGVneSB9IGZyb20gJy4uLy4uL2F1dGgtc3RyYXRlZ3knXG5pbXBvcnQgeyBnZXRDcmVhdGVBY2Nlc3MsIGdldERlbGV0ZUFjY2VzcywgZ2V0UmVhZEFjY2VzcywgZ2V0VXBkYXRlQWNjZXNzIH0gZnJvbSAnLi9hY2Nlc3MnXG5pbXBvcnQgeyBzeW5jQ2xlcmtVc2Vyc0VuZHBvaW50IH0gZnJvbSAnLi9lbmRwb2ludHMvc3luYy1mcm9tLWNsZXJrJ1xuaW1wb3J0IHsgY2xlcmtXZWJob29rRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50cy93ZWJob29rL2luZGV4J1xuaW1wb3J0IHsgY2xlcmtVc2VyRmllbGRzIH0gZnJvbSAnLi9maWVsZHMnXG5pbXBvcnQgeyBjb29raWVzIH0gZnJvbSAnbmV4dC9oZWFkZXJzJ1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpdGhDbGVya1VzZXJzQ29sbGVjdGlvbk9wdGlvbnMge1xuICBjb2xsZWN0aW9uPzogUGFydGlhbDxDb2xsZWN0aW9uQ29uZmlnPlxuICBvcHRpb25zOiBDbGVya1BsdWdpbk9wdGlvbnNcbiAgYXBpQmFzZVBhdGg/OiBzdHJpbmdcbiAgYWRtaW5CYXNlUGF0aD86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gd2l0aENsZXJrVXNlcnNDb2xsZWN0aW9uKHtcbiAgY29sbGVjdGlvbiA9IHsgc2x1ZzogJ3VzZXJzJyB9LFxuICBvcHRpb25zLFxuICBhcGlCYXNlUGF0aCA9ICcvYXBpJyxcbiAgYWRtaW5CYXNlUGF0aCA9ICcvYWRtaW4nLFxufTogV2l0aENsZXJrVXNlcnNDb2xsZWN0aW9uT3B0aW9ucyk6IENvbGxlY3Rpb25Db25maWcge1xuICBjb25zdCB1c2VyU2x1ZyA9IG9wdGlvbnMudXNlcnM/LnNsdWcgPz8gJ3VzZXJzJ1xuICBjb25zdCBhZG1pblJvbGVzID0gb3B0aW9ucy51c2Vycz8uYWRtaW5Sb2xlcyA/PyBbJ2FkbWluJ11cbiAgXG4gIGxldCBjbGVya1VzZXJDb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnID0ge1xuICAgIC4uLmNvbGxlY3Rpb24sXG4gICAgc2x1ZzogdXNlclNsdWcsXG4gICAgYWRtaW46IHtcbiAgICAgIHVzZUFzVGl0bGU6ICdlbWFpbCcsXG4gICAgICBkZWZhdWx0Q29sdW1uczogWydlbWFpbCcsICdjbGVya0lkJywgJ2ZpcnN0TmFtZScsICdsYXN0TmFtZSddLFxuICAgICAgaGlkZGVuOiBvcHRpb25zLnVzZXJzPy5oaWRkZW4gPz8gZmFsc2UsXG4gICAgICAuLi4oY29sbGVjdGlvbi5hZG1pbiB8fCB7fSksXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIERlc2NyaXB0aW9uOiB7XG4gICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9jbGVyay9hZG1pbi91aSNTeW5jQ2xlcmtVc2Vyc0J1dHRvbicsXG4gICAgICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHVzZXJDb2xsZWN0aW9uU2x1ZzogdXNlclNsdWcsXG4gICAgICAgICAgICBhcGlCYXNlUGF0aCxcbiAgICAgICAgICAgIGFkbWluQmFzZVBhdGgsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBmaWVsZHM6IFtcbiAgICAgIC4uLihjb2xsZWN0aW9uLmZpZWxkcyB8fCBbXSksXG4gICAgICAuLi5jbGVya1VzZXJGaWVsZHMsXG4gICAgXSxcbiAgICBhdXRoOiB7XG4gICAgICAuLi4odHlwZW9mIGNvbGxlY3Rpb24/LmF1dGggPT09ICdvYmplY3QnID8gY29sbGVjdGlvbi5hdXRoIDoge30pLFxuICAgICAgc3RyYXRlZ2llczogW1xuICAgICAgICBjbGVya0F1dGhTdHJhdGVneSh1c2VyU2x1ZyksXG4gICAgICBdLFxuICAgIH0sXG4gICAgYWNjZXNzOiB7XG4gICAgICByZWFkOiBnZXRSZWFkQWNjZXNzKHsgYWRtaW5Sb2xlcyB9KSxcbiAgICAgIGNyZWF0ZTogZ2V0Q3JlYXRlQWNjZXNzKHsgYWRtaW5Sb2xlcyB9KSxcbiAgICAgIHVwZGF0ZTogZ2V0VXBkYXRlQWNjZXNzKHsgYWRtaW5Sb2xlcyB9KSxcbiAgICAgIGRlbGV0ZTogZ2V0RGVsZXRlQWNjZXNzKHsgYWRtaW5Sb2xlcyB9KSxcbiAgICB9LFxuICAgIGVuZHBvaW50czogW1xuICAgICAgLi4uKGNvbGxlY3Rpb24uZW5kcG9pbnRzIHx8IFtdKSxcbiAgICAgIGNsZXJrV2ViaG9va0VuZHBvaW50KHsgdXNlclNsdWcsIG9wdGlvbnMgfSksXG4gICAgICBzeW5jQ2xlcmtVc2Vyc0VuZHBvaW50KHsgdXNlckNvbGxlY3Rpb25TbHVnOiB1c2VyU2x1ZyB9KVxuICAgIF0sXG4gICAgaG9va3M6IHtcbiAgICAgIGFmdGVyTG9nb3V0OiBbXG4gICAgICAgIGFzeW5jICgpID0+IHtcbiAgICAgICAgICBjb25zdCBjb29raWVTdG9yZSA9IGF3YWl0IGNvb2tpZXMoKVxuICAgICAgICAgIFxuICAgICAgICAgIC8vIEdldCBhbGwgY29va2llcyBhbmQgZGVsZXRlIGFueSB3aXRoIF9fc2Vzc2lvbiBvciBfX2NsZXJrIGluIHRoZWlyIG5hbWVcbiAgICAgICAgICBjb25zdCBhbGxDb29raWVzID0gY29va2llU3RvcmUuZ2V0QWxsKClcbiAgICAgICAgICBhbGxDb29raWVzLmZvckVhY2goY29va2llID0+IHtcbiAgICAgICAgICAgIGlmIChjb29raWUubmFtZS5pbmNsdWRlcygnX19zZXNzaW9uJykgfHwgY29va2llLm5hbWUuaW5jbHVkZXMoJ19fY2xlcmsnKSkge1xuICAgICAgICAgICAgICBjb29raWVTdG9yZS5kZWxldGUoY29va2llLm5hbWUpXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuICAgICAgXVxuICAgIH1cbiAgfVxuXG4gIGlmIChvcHRpb25zLnVzZXJzPy5jb2xsZWN0aW9uT3ZlcnJpZGVzKSB7XG4gICAgY2xlcmtVc2VyQ29sbGVjdGlvbiA9IG9wdGlvbnMudXNlcnMuY29sbGVjdGlvbk92ZXJyaWRlcyh7IFxuICAgICAgY29sbGVjdGlvbjogY2xlcmtVc2VyQ29sbGVjdGlvbiBcbiAgICB9KVxuICB9XG5cbiAgcmV0dXJuIGNsZXJrVXNlckNvbGxlY3Rpb25cbn0gIl0sIm5hbWVzIjpbImNsZXJrQXV0aFN0cmF0ZWd5IiwiZ2V0Q3JlYXRlQWNjZXNzIiwiZ2V0RGVsZXRlQWNjZXNzIiwiZ2V0UmVhZEFjY2VzcyIsImdldFVwZGF0ZUFjY2VzcyIsInN5bmNDbGVya1VzZXJzRW5kcG9pbnQiLCJjbGVya1dlYmhvb2tFbmRwb2ludCIsImNsZXJrVXNlckZpZWxkcyIsImNvb2tpZXMiLCJ3aXRoQ2xlcmtVc2Vyc0NvbGxlY3Rpb24iLCJjb2xsZWN0aW9uIiwic2x1ZyIsIm9wdGlvbnMiLCJhcGlCYXNlUGF0aCIsImFkbWluQmFzZVBhdGgiLCJ1c2VyU2x1ZyIsInVzZXJzIiwiYWRtaW5Sb2xlcyIsImNsZXJrVXNlckNvbGxlY3Rpb24iLCJhZG1pbiIsInVzZUFzVGl0bGUiLCJkZWZhdWx0Q29sdW1ucyIsImhpZGRlbiIsImNvbXBvbmVudHMiLCJEZXNjcmlwdGlvbiIsInBhdGgiLCJjbGllbnRQcm9wcyIsInVzZXJDb2xsZWN0aW9uU2x1ZyIsImZpZWxkcyIsImF1dGgiLCJzdHJhdGVnaWVzIiwiYWNjZXNzIiwicmVhZCIsImNyZWF0ZSIsInVwZGF0ZSIsImRlbGV0ZSIsImVuZHBvaW50cyIsImhvb2tzIiwiYWZ0ZXJMb2dvdXQiLCJjb29raWVTdG9yZSIsImFsbENvb2tpZXMiLCJnZXRBbGwiLCJmb3JFYWNoIiwiY29va2llIiwibmFtZSIsImluY2x1ZGVzIiwiY29sbGVjdGlvbk92ZXJyaWRlcyJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsaUJBQWlCLFFBQVEsc0JBQXFCO0FBQ3ZELFNBQVNDLGVBQWUsRUFBRUMsZUFBZSxFQUFFQyxhQUFhLEVBQUVDLGVBQWUsUUFBUSxXQUFVO0FBQzNGLFNBQVNDLHNCQUFzQixRQUFRLDhCQUE2QjtBQUNwRSxTQUFTQyxvQkFBb0IsUUFBUSw0QkFBMkI7QUFDaEUsU0FBU0MsZUFBZSxRQUFRLFdBQVU7QUFDMUMsU0FBU0MsT0FBTyxRQUFRLGVBQWM7QUFTdEMsT0FBTyxTQUFTQyx5QkFBeUIsRUFDdkNDLGFBQWE7SUFBRUMsTUFBTTtBQUFRLENBQUMsRUFDOUJDLE9BQU8sRUFDUEMsY0FBYyxNQUFNLEVBQ3BCQyxnQkFBZ0IsUUFBUSxFQUNRO0lBQ2hDLE1BQU1DLFdBQVdILFFBQVFJLEtBQUssRUFBRUwsUUFBUTtJQUN4QyxNQUFNTSxhQUFhTCxRQUFRSSxLQUFLLEVBQUVDLGNBQWM7UUFBQztLQUFRO0lBRXpELElBQUlDLHNCQUF3QztRQUMxQyxHQUFHUixVQUFVO1FBQ2JDLE1BQU1JO1FBQ05JLE9BQU87WUFDTEMsWUFBWTtZQUNaQyxnQkFBZ0I7Z0JBQUM7Z0JBQVM7Z0JBQVc7Z0JBQWE7YUFBVztZQUM3REMsUUFBUVYsUUFBUUksS0FBSyxFQUFFTSxVQUFVO1lBQ2pDLEdBQUlaLFdBQVdTLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDMUJJLFlBQVk7Z0JBQ1ZDLGFBQWE7b0JBQ1hDLE1BQU07b0JBQ05DLGFBQWE7d0JBQ1hDLG9CQUFvQlo7d0JBQ3BCRjt3QkFDQUM7b0JBQ0Y7Z0JBQ0Y7WUFDRjtRQUNGO1FBQ0FjLFFBQVE7ZUFDRmxCLFdBQVdrQixNQUFNLElBQUksRUFBRTtlQUN4QnJCO1NBQ0o7UUFDRHNCLE1BQU07WUFDSixHQUFJLE9BQU9uQixZQUFZbUIsU0FBUyxXQUFXbkIsV0FBV21CLElBQUksR0FBRyxDQUFDLENBQUM7WUFDL0RDLFlBQVk7Z0JBQ1Y5QixrQkFBa0JlO2FBQ25CO1FBQ0g7UUFDQWdCLFFBQVE7WUFDTkMsTUFBTTdCLGNBQWM7Z0JBQUVjO1lBQVc7WUFDakNnQixRQUFRaEMsZ0JBQWdCO2dCQUFFZ0I7WUFBVztZQUNyQ2lCLFFBQVE5QixnQkFBZ0I7Z0JBQUVhO1lBQVc7WUFDckNrQixRQUFRakMsZ0JBQWdCO2dCQUFFZTtZQUFXO1FBQ3ZDO1FBQ0FtQixXQUFXO2VBQ0wxQixXQUFXMEIsU0FBUyxJQUFJLEVBQUU7WUFDOUI5QixxQkFBcUI7Z0JBQUVTO2dCQUFVSDtZQUFRO1lBQ3pDUCx1QkFBdUI7Z0JBQUVzQixvQkFBb0JaO1lBQVM7U0FDdkQ7UUFDRHNCLE9BQU87WUFDTEMsYUFBYTtnQkFDWDtvQkFDRSxNQUFNQyxjQUFjLE1BQU0vQjtvQkFFMUIseUVBQXlFO29CQUN6RSxNQUFNZ0MsYUFBYUQsWUFBWUUsTUFBTTtvQkFDckNELFdBQVdFLE9BQU8sQ0FBQ0MsQ0FBQUE7d0JBQ2pCLElBQUlBLE9BQU9DLElBQUksQ0FBQ0MsUUFBUSxDQUFDLGdCQUFnQkYsT0FBT0MsSUFBSSxDQUFDQyxRQUFRLENBQUMsWUFBWTs0QkFDeEVOLFlBQVlKLE1BQU0sQ0FBQ1EsT0FBT0MsSUFBSTt3QkFDaEM7b0JBQ0Y7Z0JBQ0Y7YUFDRDtRQUNIO0lBQ0Y7SUFFQSxJQUFJaEMsUUFBUUksS0FBSyxFQUFFOEIscUJBQXFCO1FBQ3RDNUIsc0JBQXNCTixRQUFRSSxLQUFLLENBQUM4QixtQkFBbUIsQ0FBQztZQUN0RHBDLFlBQVlRO1FBQ2Q7SUFDRjtJQUVBLE9BQU9BO0FBQ1QifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"after-login-form.d.ts","sourceRoot":"","sources":["../../../../src/clerk/plugin/components/after-login-form.tsx"],"names":[],"mappings":"AAMA,wBAAgB,cAAc,CAAC,EAAE,iBAAiB,EAAE,EAAE;IAAE,iBAAiB,EAAE,MAAM,CAAA;CAAE,+BAmElF"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { useRouter } from 'next/navigation';
|
|
5
|
+
import { loadClerkInstance } from '../../utils/load-clerk-instance';
|
|
6
|
+
export function AfterLoginForm({ redirectOnLoginTo }) {
|
|
7
|
+
const router = useRouter();
|
|
8
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
9
|
+
const [loginSuccessful, setLoginSuccessful] = useState(false);
|
|
10
|
+
useEffect(()=>{
|
|
11
|
+
loadClerkInstance().catch((err)=>console.error('Error loading clerk:', err));
|
|
12
|
+
}, []);
|
|
13
|
+
useEffect(()=>{
|
|
14
|
+
const form = document.querySelector('form.login__form');
|
|
15
|
+
if (!form) return;
|
|
16
|
+
const onSubmit = async (event)=>{
|
|
17
|
+
event.preventDefault();
|
|
18
|
+
setIsLoading(true);
|
|
19
|
+
try {
|
|
20
|
+
const emailInput = form.querySelector('input[name="email"]');
|
|
21
|
+
if (!emailInput) throw new Error('Email input not found');
|
|
22
|
+
const passwordInput = form.querySelector('input[name="password"]');
|
|
23
|
+
if (!passwordInput) throw new Error('Password input not found');
|
|
24
|
+
const email = emailInput.value;
|
|
25
|
+
if (!email) throw new Error('Email is required');
|
|
26
|
+
const password = passwordInput.value;
|
|
27
|
+
if (!password) throw new Error('Password is required');
|
|
28
|
+
const clerk = await loadClerkInstance();
|
|
29
|
+
if (!clerk) return;
|
|
30
|
+
const signInAttempt = await clerk.client?.signIn.create({
|
|
31
|
+
identifier: email,
|
|
32
|
+
password,
|
|
33
|
+
strategy: 'password'
|
|
34
|
+
});
|
|
35
|
+
if (signInAttempt?.status !== 'complete') {
|
|
36
|
+
console.error(JSON.stringify(signInAttempt, null, 2));
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
setLoginSuccessful(true);
|
|
40
|
+
document.querySelector('.payload-toast-item')?.remove();
|
|
41
|
+
await clerk.setActive({
|
|
42
|
+
session: signInAttempt.createdSessionId
|
|
43
|
+
});
|
|
44
|
+
router.push(redirectOnLoginTo ?? '/admin');
|
|
45
|
+
} catch (error) {
|
|
46
|
+
console.log('Error logging in:', error);
|
|
47
|
+
} finally{
|
|
48
|
+
setIsLoading(false);
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
form.addEventListener('submit', onSubmit);
|
|
52
|
+
return ()=>form.removeEventListener('submit', onSubmit);
|
|
53
|
+
}, []);
|
|
54
|
+
return /*#__PURE__*/ _jsx(_Fragment, {
|
|
55
|
+
children: /*#__PURE__*/ _jsx("style", {
|
|
56
|
+
children: `
|
|
57
|
+
.payload-toast-item {
|
|
58
|
+
opacity: ${isLoading || loginSuccessful ? '0' : '1'} !important;
|
|
59
|
+
}
|
|
60
|
+
`
|
|
61
|
+
})
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGVyay9wbHVnaW4vY29tcG9uZW50cy9hZnRlci1sb2dpbi1mb3JtLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7IHVzZVJvdXRlciB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBsb2FkQ2xlcmtJbnN0YW5jZSB9IGZyb20gJy4uLy4uL3V0aWxzL2xvYWQtY2xlcmstaW5zdGFuY2UnO1xuXG5leHBvcnQgZnVuY3Rpb24gQWZ0ZXJMb2dpbkZvcm0oeyByZWRpcmVjdE9uTG9naW5UbyB9OiB7IHJlZGlyZWN0T25Mb2dpblRvOiBzdHJpbmcgfSkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTtcbiAgY29uc3QgW2lzTG9hZGluZywgc2V0SXNMb2FkaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2xvZ2luU3VjY2Vzc2Z1bCwgc2V0TG9naW5TdWNjZXNzZnVsXSA9IHVzZVN0YXRlKGZhbHNlKTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGxvYWRDbGVya0luc3RhbmNlKCkuY2F0Y2goKGVycjogYW55KSA9PiBjb25zb2xlLmVycm9yKCdFcnJvciBsb2FkaW5nIGNsZXJrOicsIGVycikpO1xuICB9LCBbXSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBmb3JtID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZm9ybS5sb2dpbl9fZm9ybScpO1xuICAgIGlmICghZm9ybSkgcmV0dXJuO1xuXG4gICAgY29uc3Qgb25TdWJtaXQgPSBhc3luYyAoZXZlbnQ6IGFueSkgPT4ge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHNldElzTG9hZGluZyh0cnVlKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgZW1haWxJbnB1dCA9IGZvcm0ucXVlcnlTZWxlY3RvcignaW5wdXRbbmFtZT1cImVtYWlsXCJdJykgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICAgICAgaWYgKCFlbWFpbElucHV0KSB0aHJvdyBuZXcgRXJyb3IoJ0VtYWlsIGlucHV0IG5vdCBmb3VuZCcpO1xuXG4gICAgICAgIGNvbnN0IHBhc3N3b3JkSW5wdXQgPSBmb3JtLnF1ZXJ5U2VsZWN0b3IoJ2lucHV0W25hbWU9XCJwYXNzd29yZFwiXScpIGFzIEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgICAgIGlmICghcGFzc3dvcmRJbnB1dCkgdGhyb3cgbmV3IEVycm9yKCdQYXNzd29yZCBpbnB1dCBub3QgZm91bmQnKTtcblxuICAgICAgICBjb25zdCBlbWFpbCA9IGVtYWlsSW5wdXQudmFsdWU7XG4gICAgICAgIGlmICghZW1haWwpIHRocm93IG5ldyBFcnJvcignRW1haWwgaXMgcmVxdWlyZWQnKTtcblxuICAgICAgICBjb25zdCBwYXNzd29yZCA9IHBhc3N3b3JkSW5wdXQudmFsdWU7XG4gICAgICAgIGlmICghcGFzc3dvcmQpIHRocm93IG5ldyBFcnJvcignUGFzc3dvcmQgaXMgcmVxdWlyZWQnKTtcblxuICAgICAgICBjb25zdCBjbGVyayA9IGF3YWl0IGxvYWRDbGVya0luc3RhbmNlKCk7XG4gICAgICAgIGlmICghY2xlcmspIHJldHVybjtcbiAgICAgICAgY29uc3Qgc2lnbkluQXR0ZW1wdCA9IGF3YWl0IGNsZXJrLmNsaWVudD8uc2lnbkluLmNyZWF0ZSh7XG4gICAgICAgICAgaWRlbnRpZmllcjogZW1haWwsXG4gICAgICAgICAgcGFzc3dvcmQsXG4gICAgICAgICAgc3RyYXRlZ3k6ICdwYXNzd29yZCcsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChzaWduSW5BdHRlbXB0Py5zdGF0dXMgIT09ICdjb21wbGV0ZScpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKEpTT04uc3RyaW5naWZ5KHNpZ25JbkF0dGVtcHQsIG51bGwsIDIpKTtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBzZXRMb2dpblN1Y2Nlc3NmdWwodHJ1ZSk7XG4gICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJy5wYXlsb2FkLXRvYXN0LWl0ZW0nKT8ucmVtb3ZlKCk7XG4gICAgICAgIGF3YWl0IGNsZXJrLnNldEFjdGl2ZSh7IHNlc3Npb246IHNpZ25JbkF0dGVtcHQuY3JlYXRlZFNlc3Npb25JZCB9KTtcbiAgICAgICAgcm91dGVyLnB1c2gocmVkaXJlY3RPbkxvZ2luVG8gPz8gJy9hZG1pbicpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgY29uc29sZS5sb2coJ0Vycm9yIGxvZ2dpbmcgaW46JywgZXJyb3IpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2V0SXNMb2FkaW5nKGZhbHNlKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgZm9ybS5hZGRFdmVudExpc3RlbmVyKCdzdWJtaXQnLCBvblN1Ym1pdCk7XG4gICAgcmV0dXJuICgpID0+IGZvcm0ucmVtb3ZlRXZlbnRMaXN0ZW5lcignc3VibWl0Jywgb25TdWJtaXQpO1xuICB9LCBbXSk7XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPHN0eWxlPntgXG4gICAgICAgIC5wYXlsb2FkLXRvYXN0LWl0ZW0ge1xuICAgICAgICAgIG9wYWNpdHk6ICR7aXNMb2FkaW5nIHx8IGxvZ2luU3VjY2Vzc2Z1bCA/ICcwJyA6ICcxJ30gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH08L3N0eWxlPlxuICAgIDwvPlxuICApO1xufVxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlUm91dGVyIiwibG9hZENsZXJrSW5zdGFuY2UiLCJBZnRlckxvZ2luRm9ybSIsInJlZGlyZWN0T25Mb2dpblRvIiwicm91dGVyIiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwibG9naW5TdWNjZXNzZnVsIiwic2V0TG9naW5TdWNjZXNzZnVsIiwiY2F0Y2giLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJmb3JtIiwiZG9jdW1lbnQiLCJxdWVyeVNlbGVjdG9yIiwib25TdWJtaXQiLCJldmVudCIsInByZXZlbnREZWZhdWx0IiwiZW1haWxJbnB1dCIsIkVycm9yIiwicGFzc3dvcmRJbnB1dCIsImVtYWlsIiwidmFsdWUiLCJwYXNzd29yZCIsImNsZXJrIiwic2lnbkluQXR0ZW1wdCIsImNsaWVudCIsInNpZ25JbiIsImNyZWF0ZSIsImlkZW50aWZpZXIiLCJzdHJhdGVneSIsInN0YXR1cyIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZW1vdmUiLCJzZXRBY3RpdmUiLCJzZXNzaW9uIiwiY3JlYXRlZFNlc3Npb25JZCIsInB1c2giLCJsb2ciLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxTQUFTQSxTQUFTLEVBQUVDLFFBQVEsUUFBUSxRQUFRO0FBQzVDLFNBQVNDLFNBQVMsUUFBUSxrQkFBa0I7QUFDNUMsU0FBU0MsaUJBQWlCLFFBQVEsa0NBQWtDO0FBRXBFLE9BQU8sU0FBU0MsZUFBZSxFQUFFQyxpQkFBaUIsRUFBaUM7SUFDakYsTUFBTUMsU0FBU0o7SUFDZixNQUFNLENBQUNLLFdBQVdDLGFBQWEsR0FBR1AsU0FBUztJQUMzQyxNQUFNLENBQUNRLGlCQUFpQkMsbUJBQW1CLEdBQUdULFNBQVM7SUFFdkRELFVBQVU7UUFDUkcsb0JBQW9CUSxLQUFLLENBQUMsQ0FBQ0MsTUFBYUMsUUFBUUMsS0FBSyxDQUFDLHdCQUF3QkY7SUFDaEYsR0FBRyxFQUFFO0lBRUxaLFVBQVU7UUFDUixNQUFNZSxPQUFPQyxTQUFTQyxhQUFhLENBQUM7UUFDcEMsSUFBSSxDQUFDRixNQUFNO1FBRVgsTUFBTUcsV0FBVyxPQUFPQztZQUN0QkEsTUFBTUMsY0FBYztZQUNwQlosYUFBYTtZQUViLElBQUk7Z0JBQ0YsTUFBTWEsYUFBYU4sS0FBS0UsYUFBYSxDQUFDO2dCQUN0QyxJQUFJLENBQUNJLFlBQVksTUFBTSxJQUFJQyxNQUFNO2dCQUVqQyxNQUFNQyxnQkFBZ0JSLEtBQUtFLGFBQWEsQ0FBQztnQkFDekMsSUFBSSxDQUFDTSxlQUFlLE1BQU0sSUFBSUQsTUFBTTtnQkFFcEMsTUFBTUUsUUFBUUgsV0FBV0ksS0FBSztnQkFDOUIsSUFBSSxDQUFDRCxPQUFPLE1BQU0sSUFBSUYsTUFBTTtnQkFFNUIsTUFBTUksV0FBV0gsY0FBY0UsS0FBSztnQkFDcEMsSUFBSSxDQUFDQyxVQUFVLE1BQU0sSUFBSUosTUFBTTtnQkFFL0IsTUFBTUssUUFBUSxNQUFNeEI7Z0JBQ3BCLElBQUksQ0FBQ3dCLE9BQU87Z0JBQ1osTUFBTUMsZ0JBQWdCLE1BQU1ELE1BQU1FLE1BQU0sRUFBRUMsT0FBT0MsT0FBTztvQkFDdERDLFlBQVlSO29CQUNaRTtvQkFDQU8sVUFBVTtnQkFDWjtnQkFFQSxJQUFJTCxlQUFlTSxXQUFXLFlBQVk7b0JBQ3hDckIsUUFBUUMsS0FBSyxDQUFDcUIsS0FBS0MsU0FBUyxDQUFDUixlQUFlLE1BQU07b0JBQ2xEO2dCQUNGO2dCQUVBbEIsbUJBQW1CO2dCQUNuQk0sU0FBU0MsYUFBYSxDQUFDLHdCQUF3Qm9CO2dCQUMvQyxNQUFNVixNQUFNVyxTQUFTLENBQUM7b0JBQUVDLFNBQVNYLGNBQWNZLGdCQUFnQjtnQkFBQztnQkFDaEVsQyxPQUFPbUMsSUFBSSxDQUFDcEMscUJBQXFCO1lBQ25DLEVBQUUsT0FBT1MsT0FBTztnQkFDZEQsUUFBUTZCLEdBQUcsQ0FBQyxxQkFBcUI1QjtZQUNuQyxTQUFVO2dCQUNSTixhQUFhO1lBQ2Y7UUFDRjtRQUVBTyxLQUFLNEIsZ0JBQWdCLENBQUMsVUFBVXpCO1FBQ2hDLE9BQU8sSUFBTUgsS0FBSzZCLG1CQUFtQixDQUFDLFVBQVUxQjtJQUNsRCxHQUFHLEVBQUU7SUFFTCxxQkFDRTtrQkFDRSxjQUFBLEtBQUMyQjtzQkFBTyxDQUFDOzttQkFFSSxFQUFFdEMsYUFBYUUsa0JBQWtCLE1BQU0sSUFBSTs7TUFFeEQsQ0FBQzs7O0FBR1AifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout-button.d.ts","sourceRoot":"","sources":["../../../../src/clerk/plugin/components/logout-button.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,YAAY,mCAkDxB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { LogOutIcon, useAuth, useTranslation } from "@payloadcms/ui";
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import { loadClerkInstance } from "../../utils/load-clerk-instance";
|
|
6
|
+
export const LogoutButton = ()=>{
|
|
7
|
+
const [clerkInstance, setClerkInstance] = useState(undefined);
|
|
8
|
+
const { logOut } = useAuth();
|
|
9
|
+
const { t } = useTranslation();
|
|
10
|
+
useEffect(()=>{
|
|
11
|
+
loadClerkInstance().then((instance)=>{
|
|
12
|
+
setClerkInstance(instance);
|
|
13
|
+
}).catch((err)=>console.error("Error loading clerk:", err));
|
|
14
|
+
}, []);
|
|
15
|
+
return /*#__PURE__*/ _jsx("button", {
|
|
16
|
+
"aria-label": t("authentication:logOut"),
|
|
17
|
+
className: `nav__log-out`,
|
|
18
|
+
style: {
|
|
19
|
+
background: "transparent",
|
|
20
|
+
border: "1px solid var(--theme-elevation-100)",
|
|
21
|
+
width: "34px",
|
|
22
|
+
height: "34px",
|
|
23
|
+
borderRadius: "9999px",
|
|
24
|
+
display: "flex",
|
|
25
|
+
alignItems: "center",
|
|
26
|
+
justifyContent: "center",
|
|
27
|
+
WebkitAppearance: "none",
|
|
28
|
+
cursor: "pointer",
|
|
29
|
+
padding: "7px"
|
|
30
|
+
},
|
|
31
|
+
onClick: async ()=>{
|
|
32
|
+
if (!clerkInstance) return;
|
|
33
|
+
try {
|
|
34
|
+
if (clerkInstance.user) {
|
|
35
|
+
await clerkInstance.signOut();
|
|
36
|
+
}
|
|
37
|
+
if (logOut) {
|
|
38
|
+
await logOut();
|
|
39
|
+
}
|
|
40
|
+
window.location.reload();
|
|
41
|
+
} catch (err) {
|
|
42
|
+
console.error("Error logging out:", err);
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
children: /*#__PURE__*/ _jsx(LogOutIcon, {})
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGVyay9wbHVnaW4vY29tcG9uZW50cy9sb2dvdXQtYnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHR5cGUgeyBDbGVyayB9IGZyb20gXCJAY2xlcmsvY2xlcmstanNcIjtcbmltcG9ydCB7IExvZ091dEljb24sIHVzZUF1dGgsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSBcIkBwYXlsb2FkY21zL3VpXCI7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyBsb2FkQ2xlcmtJbnN0YW5jZSB9IGZyb20gXCIuLi8uLi91dGlscy9sb2FkLWNsZXJrLWluc3RhbmNlXCI7XG5cbmV4cG9ydCBjb25zdCBMb2dvdXRCdXR0b24gPSAoKSA9PiB7XG4gIGNvbnN0IFtjbGVya0luc3RhbmNlLCBzZXRDbGVya0luc3RhbmNlXSA9IHVzZVN0YXRlPENsZXJrIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgY29uc3QgeyBsb2dPdXQgfSA9IHVzZUF1dGgoKTtcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgbG9hZENsZXJrSW5zdGFuY2UoKVxuICAgICAgLnRoZW4oKGluc3RhbmNlKSA9PiB7XG4gICAgICAgIHNldENsZXJrSW5zdGFuY2UoaW5zdGFuY2UpO1xuICAgICAgfSlcbiAgICAgIC5jYXRjaCgoZXJyOiBhbnkpID0+IGNvbnNvbGUuZXJyb3IoXCJFcnJvciBsb2FkaW5nIGNsZXJrOlwiLCBlcnIpKTtcbiAgfSwgW10pO1xuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgYXJpYS1sYWJlbD17dChcImF1dGhlbnRpY2F0aW9uOmxvZ091dFwiKX1cbiAgICAgIGNsYXNzTmFtZT17YG5hdl9fbG9nLW91dGB9XG4gICAgICBzdHlsZT17e1xuICAgICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCIsXG4gICAgICAgIGJvcmRlcjogXCIxcHggc29saWQgdmFyKC0tdGhlbWUtZWxldmF0aW9uLTEwMClcIixcbiAgICAgICAgd2lkdGg6IFwiMzRweFwiLFxuICAgICAgICBoZWlnaHQ6IFwiMzRweFwiLFxuICAgICAgICBib3JkZXJSYWRpdXM6IFwiOTk5OXB4XCIsXG4gICAgICAgIGRpc3BsYXk6IFwiZmxleFwiLFxuICAgICAgICBhbGlnbkl0ZW1zOiBcImNlbnRlclwiLFxuICAgICAgICBqdXN0aWZ5Q29udGVudDogXCJjZW50ZXJcIixcbiAgICAgICAgV2Via2l0QXBwZWFyYW5jZTogXCJub25lXCIsXG4gICAgICAgIGN1cnNvcjogXCJwb2ludGVyXCIsXG4gICAgICAgIHBhZGRpbmc6IFwiN3B4XCIsXG4gICAgICB9fVxuICAgICAgb25DbGljaz17YXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoIWNsZXJrSW5zdGFuY2UpIHJldHVybjtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBpZiAoY2xlcmtJbnN0YW5jZS51c2VyKSB7XG4gICAgICAgICAgICBhd2FpdCBjbGVya0luc3RhbmNlLnNpZ25PdXQoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGxvZ091dCkge1xuICAgICAgICAgICAgYXdhaXQgbG9nT3V0KCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5yZWxvYWQoKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yIGxvZ2dpbmcgb3V0OlwiLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9fVxuICAgID5cbiAgICAgIDxMb2dPdXRJY29uIC8+XG4gICAgPC9idXR0b24+XG4gICk7XG59O1xuIl0sIm5hbWVzIjpbIkxvZ091dEljb24iLCJ1c2VBdXRoIiwidXNlVHJhbnNsYXRpb24iLCJ1c2VFZmZlY3QiLCJ1c2VTdGF0ZSIsImxvYWRDbGVya0luc3RhbmNlIiwiTG9nb3V0QnV0dG9uIiwiY2xlcmtJbnN0YW5jZSIsInNldENsZXJrSW5zdGFuY2UiLCJ1bmRlZmluZWQiLCJsb2dPdXQiLCJ0IiwidGhlbiIsImluc3RhbmNlIiwiY2F0Y2giLCJlcnIiLCJjb25zb2xlIiwiZXJyb3IiLCJidXR0b24iLCJhcmlhLWxhYmVsIiwiY2xhc3NOYW1lIiwic3R5bGUiLCJiYWNrZ3JvdW5kIiwiYm9yZGVyIiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJkaXNwbGF5IiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiV2Via2l0QXBwZWFyYW5jZSIsImN1cnNvciIsInBhZGRpbmciLCJvbkNsaWNrIiwidXNlciIsInNpZ25PdXQiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsInJlbG9hZCJdLCJtYXBwaW5ncyI6IkFBQUE7O0FBR0EsU0FBU0EsVUFBVSxFQUFFQyxPQUFPLEVBQUVDLGNBQWMsUUFBUSxpQkFBaUI7QUFDckUsU0FBU0MsU0FBUyxFQUFFQyxRQUFRLFFBQVEsUUFBUTtBQUM1QyxTQUFTQyxpQkFBaUIsUUFBUSxrQ0FBa0M7QUFFcEUsT0FBTyxNQUFNQyxlQUFlO0lBQzFCLE1BQU0sQ0FBQ0MsZUFBZUMsaUJBQWlCLEdBQUdKLFNBQ3hDSztJQUVGLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdUO0lBQ25CLE1BQU0sRUFBRVUsQ0FBQyxFQUFFLEdBQUdUO0lBRWRDLFVBQVU7UUFDUkUsb0JBQ0dPLElBQUksQ0FBQyxDQUFDQztZQUNMTCxpQkFBaUJLO1FBQ25CLEdBQ0NDLEtBQUssQ0FBQyxDQUFDQyxNQUFhQyxRQUFRQyxLQUFLLENBQUMsd0JBQXdCRjtJQUMvRCxHQUFHLEVBQUU7SUFFTCxxQkFDRSxLQUFDRztRQUNDQyxjQUFZUixFQUFFO1FBQ2RTLFdBQVcsQ0FBQyxZQUFZLENBQUM7UUFDekJDLE9BQU87WUFDTEMsWUFBWTtZQUNaQyxRQUFRO1lBQ1JDLE9BQU87WUFDUEMsUUFBUTtZQUNSQyxjQUFjO1lBQ2RDLFNBQVM7WUFDVEMsWUFBWTtZQUNaQyxnQkFBZ0I7WUFDaEJDLGtCQUFrQjtZQUNsQkMsUUFBUTtZQUNSQyxTQUFTO1FBQ1g7UUFDQUMsU0FBUztZQUNQLElBQUksQ0FBQzFCLGVBQWU7WUFDcEIsSUFBSTtnQkFDRixJQUFJQSxjQUFjMkIsSUFBSSxFQUFFO29CQUN0QixNQUFNM0IsY0FBYzRCLE9BQU87Z0JBQzdCO2dCQUNBLElBQUl6QixRQUFRO29CQUNWLE1BQU1BO2dCQUNSO2dCQUNBMEIsT0FBT0MsUUFBUSxDQUFDQyxNQUFNO1lBQ3hCLEVBQUUsT0FBT3ZCLEtBQUs7Z0JBQ1pDLFFBQVFDLEtBQUssQ0FBQyxzQkFBc0JGO1lBQ3RDO1FBQ0Y7a0JBRUEsY0FBQSxLQUFDZjs7QUFHUCxFQUFFIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-clerk-users-button.d.ts","sourceRoot":"","sources":["../../../../src/clerk/plugin/components/sync-clerk-users-button.tsx"],"names":[],"mappings":"AAOA,eAAO,MAAM,oBAAoB,GAAI,qDAIlC;IACD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;CACvB,gCAwEA,CAAC"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { Button, toast } from "@payloadcms/ui";
|
|
4
|
+
import { useState } from "react";
|
|
5
|
+
import { usePathname } from "next/navigation";
|
|
6
|
+
export const SyncClerkUsersButton = ({ userCollectionSlug, apiBasePath, adminBasePath })=>{
|
|
7
|
+
const [isPending, setIsPending] = useState(false);
|
|
8
|
+
const path = usePathname();
|
|
9
|
+
if (`${adminBasePath}/collections/${userCollectionSlug}` !== path) return null;
|
|
10
|
+
const handleSync = async ()=>{
|
|
11
|
+
setIsPending(true);
|
|
12
|
+
try {
|
|
13
|
+
const response = await fetch(`${apiBasePath}/${userCollectionSlug}/sync-from-clerk`, {
|
|
14
|
+
method: "POST",
|
|
15
|
+
headers: {
|
|
16
|
+
"Content-Type": "application/json"
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const result = await response.json();
|
|
20
|
+
if (result.success) {
|
|
21
|
+
toast.success(result.message || `Successfully synced users from Clerk`, {
|
|
22
|
+
duration: 5000
|
|
23
|
+
});
|
|
24
|
+
} else {
|
|
25
|
+
toast.error(result.error || "Failed to sync users from Clerk", {
|
|
26
|
+
duration: 5000
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
} catch (error) {
|
|
30
|
+
toast.error(error instanceof Error ? error.message : "Error syncing users from Clerk", {
|
|
31
|
+
duration: 5000
|
|
32
|
+
});
|
|
33
|
+
console.error("Error syncing users:", error);
|
|
34
|
+
} finally{
|
|
35
|
+
setIsPending(false);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
39
|
+
children: [
|
|
40
|
+
/*#__PURE__*/ _jsx(Button, {
|
|
41
|
+
className: "sync-clerk-users-button",
|
|
42
|
+
disabled: isPending,
|
|
43
|
+
onClick: handleSync,
|
|
44
|
+
children: isPending ? "Syncing..." : "Sync Users"
|
|
45
|
+
}),
|
|
46
|
+
/*#__PURE__*/ _jsx("style", {
|
|
47
|
+
children: `
|
|
48
|
+
.list-header:has(.collection-list__sub-header .sync-clerk-users-button) {
|
|
49
|
+
display: flex;
|
|
50
|
+
align-items: center;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.list-header:has(.collection-list__sub-header .sync-clerk-users-button) .collection-list__sub-header {
|
|
54
|
+
margin-left: auto;
|
|
55
|
+
display: flex;
|
|
56
|
+
justify-content: flex-start;
|
|
57
|
+
flex-basis: 100%;
|
|
58
|
+
}
|
|
59
|
+
.list-header:has(.collection-list__sub-header .sync-clerk-users-button) .btn {
|
|
60
|
+
flex-shrink: 0;
|
|
61
|
+
margin-bottom: 0;
|
|
62
|
+
}
|
|
63
|
+
@media (min-width: 768px) {
|
|
64
|
+
.list-header:has(.collection-list__sub-header .sync-clerk-users-button) .collection-list__sub-header {
|
|
65
|
+
flex-basis: 70%;
|
|
66
|
+
justify-content: flex-end;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
`
|
|
70
|
+
})
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbGVyay9wbHVnaW4vY29tcG9uZW50cy9zeW5jLWNsZXJrLXVzZXJzLWJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IEJ1dHRvbiwgdG9hc3QgfSBmcm9tIFwiQHBheWxvYWRjbXMvdWlcIjtcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB0eXBlIHsgU3luY0NsZXJrVXNlcnNSZXNwb25zZSB9IGZyb20gXCIuLi9jb2xsZWN0aW9ucy91c2Vycy9lbmRwb2ludHMvc3luYy1mcm9tLWNsZXJrXCI7XG5cbmV4cG9ydCBjb25zdCBTeW5jQ2xlcmtVc2Vyc0J1dHRvbiA9ICh7XG4gIHVzZXJDb2xsZWN0aW9uU2x1ZyxcbiAgYXBpQmFzZVBhdGgsXG4gIGFkbWluQmFzZVBhdGgsXG59OiB7XG4gIHVzZXJDb2xsZWN0aW9uU2x1Zzogc3RyaW5nO1xuICBhcGlCYXNlUGF0aDogc3RyaW5nO1xuICBhZG1pbkJhc2VQYXRoOiBzdHJpbmc7XG59KSA9PiB7XG4gIGNvbnN0IFtpc1BlbmRpbmcsIHNldElzUGVuZGluZ10gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IHBhdGggPSB1c2VQYXRobmFtZSgpO1xuXG4gIGlmIChgJHthZG1pbkJhc2VQYXRofS9jb2xsZWN0aW9ucy8ke3VzZXJDb2xsZWN0aW9uU2x1Z31gICE9PSBwYXRoKSByZXR1cm4gbnVsbDtcblxuICBjb25zdCBoYW5kbGVTeW5jID0gYXN5bmMgKCkgPT4ge1xuICAgIHNldElzUGVuZGluZyh0cnVlKTtcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoKFxuICAgICAgICBgJHthcGlCYXNlUGF0aH0vJHt1c2VyQ29sbGVjdGlvblNsdWd9L3N5bmMtZnJvbS1jbGVya2AsXG4gICAgICAgIHtcbiAgICAgICAgICBtZXRob2Q6IFwiUE9TVFwiLFxuICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgICAgICAgIH0sXG4gICAgICAgIH1cbiAgICAgICk7XG5cbiAgICAgIGNvbnN0IHJlc3VsdDogU3luY0NsZXJrVXNlcnNSZXNwb25zZSA9IGF3YWl0IHJlc3BvbnNlLmpzb24oKTtcblxuICAgICAgaWYgKHJlc3VsdC5zdWNjZXNzKSB7XG4gICAgICAgIHRvYXN0LnN1Y2Nlc3MocmVzdWx0Lm1lc3NhZ2UgfHwgYFN1Y2Nlc3NmdWxseSBzeW5jZWQgdXNlcnMgZnJvbSBDbGVya2AsIHsgZHVyYXRpb246IDUwMDAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0b2FzdC5lcnJvcihyZXN1bHQuZXJyb3IgfHwgXCJGYWlsZWQgdG8gc3luYyB1c2VycyBmcm9tIENsZXJrXCIsIHsgZHVyYXRpb246IDUwMDAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRvYXN0LmVycm9yKGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogXCJFcnJvciBzeW5jaW5nIHVzZXJzIGZyb20gQ2xlcmtcIiwgeyBkdXJhdGlvbjogNTAwMCB9KTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJFcnJvciBzeW5jaW5nIHVzZXJzOlwiLCBlcnJvcik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHNldElzUGVuZGluZyhmYWxzZSk7XG4gICAgfVxuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCdXR0b25cbiAgICAgICAgY2xhc3NOYW1lPVwic3luYy1jbGVyay11c2Vycy1idXR0b25cIlxuICAgICAgICBkaXNhYmxlZD17aXNQZW5kaW5nfVxuICAgICAgICBvbkNsaWNrPXtoYW5kbGVTeW5jfVxuICAgICAgPlxuICAgICAgICB7aXNQZW5kaW5nID8gXCJTeW5jaW5nLi4uXCIgOiBcIlN5bmMgVXNlcnNcIn1cbiAgICAgIDwvQnV0dG9uPlxuXG4gICAgICA8c3R5bGU+XG4gICAgICAgIHtgXG4gICAgICAgIC5saXN0LWhlYWRlcjpoYXMoLmNvbGxlY3Rpb24tbGlzdF9fc3ViLWhlYWRlciAuc3luYy1jbGVyay11c2Vycy1idXR0b24pIHtcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgIH1cblxuICAgICAgICAubGlzdC1oZWFkZXI6aGFzKC5jb2xsZWN0aW9uLWxpc3RfX3N1Yi1oZWFkZXIgLnN5bmMtY2xlcmstdXNlcnMtYnV0dG9uKSAuY29sbGVjdGlvbi1saXN0X19zdWItaGVhZGVyIHtcbiAgICAgICAgICBtYXJnaW4tbGVmdDogYXV0bztcbiAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgIGp1c3RpZnktY29udGVudDogZmxleC1zdGFydDtcbiAgICAgICAgICBmbGV4LWJhc2lzOiAxMDAlO1xuICAgICAgICB9XG4gICAgICAgIC5saXN0LWhlYWRlcjpoYXMoLmNvbGxlY3Rpb24tbGlzdF9fc3ViLWhlYWRlciAuc3luYy1jbGVyay11c2Vycy1idXR0b24pIC5idG4ge1xuICAgICAgICAgIGZsZXgtc2hyaW5rOiAwO1xuICAgICAgICAgIG1hcmdpbi1ib3R0b206IDA7XG4gICAgICAgIH1cbiAgICAgICAgQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gICAgICAgICAgLmxpc3QtaGVhZGVyOmhhcyguY29sbGVjdGlvbi1saXN0X19zdWItaGVhZGVyIC5zeW5jLWNsZXJrLXVzZXJzLWJ1dHRvbikgLmNvbGxlY3Rpb24tbGlzdF9fc3ViLWhlYWRlciB7XG4gICAgICAgICAgICBmbGV4LWJhc2lzOiA3MCU7XG4gICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGZsZXgtZW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBgfVxuICAgICAgPC9zdHlsZT5cbiAgICA8Lz5cbiAgKTtcbn07XG4iXSwibmFtZXMiOlsiQnV0dG9uIiwidG9hc3QiLCJ1c2VTdGF0ZSIsInVzZVBhdGhuYW1lIiwiU3luY0NsZXJrVXNlcnNCdXR0b24iLCJ1c2VyQ29sbGVjdGlvblNsdWciLCJhcGlCYXNlUGF0aCIsImFkbWluQmFzZVBhdGgiLCJpc1BlbmRpbmciLCJzZXRJc1BlbmRpbmciLCJwYXRoIiwiaGFuZGxlU3luYyIsInJlc3BvbnNlIiwiZmV0Y2giLCJtZXRob2QiLCJoZWFkZXJzIiwicmVzdWx0IiwianNvbiIsInN1Y2Nlc3MiLCJtZXNzYWdlIiwiZHVyYXRpb24iLCJlcnJvciIsIkVycm9yIiwiY29uc29sZSIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwib25DbGljayIsInN0eWxlIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxTQUFTQSxNQUFNLEVBQUVDLEtBQUssUUFBUSxpQkFBaUI7QUFDL0MsU0FBU0MsUUFBUSxRQUFRLFFBQVE7QUFDakMsU0FBU0MsV0FBVyxRQUFRLGtCQUFrQjtBQUc5QyxPQUFPLE1BQU1DLHVCQUF1QixDQUFDLEVBQ25DQyxrQkFBa0IsRUFDbEJDLFdBQVcsRUFDWEMsYUFBYSxFQUtkO0lBQ0MsTUFBTSxDQUFDQyxXQUFXQyxhQUFhLEdBQUdQLFNBQVM7SUFDM0MsTUFBTVEsT0FBT1A7SUFFYixJQUFJLEdBQUdJLGNBQWMsYUFBYSxFQUFFRixvQkFBb0IsS0FBS0ssTUFBTSxPQUFPO0lBRTFFLE1BQU1DLGFBQWE7UUFDakJGLGFBQWE7UUFFYixJQUFJO1lBQ0YsTUFBTUcsV0FBVyxNQUFNQyxNQUNyQixHQUFHUCxZQUFZLENBQUMsRUFBRUQsbUJBQW1CLGdCQUFnQixDQUFDLEVBQ3REO2dCQUNFUyxRQUFRO2dCQUNSQyxTQUFTO29CQUNQLGdCQUFnQjtnQkFDbEI7WUFDRjtZQUdGLE1BQU1DLFNBQWlDLE1BQU1KLFNBQVNLLElBQUk7WUFFMUQsSUFBSUQsT0FBT0UsT0FBTyxFQUFFO2dCQUNsQmpCLE1BQU1pQixPQUFPLENBQUNGLE9BQU9HLE9BQU8sSUFBSSxDQUFDLG9DQUFvQyxDQUFDLEVBQUU7b0JBQUVDLFVBQVU7Z0JBQUs7WUFDM0YsT0FBTztnQkFDTG5CLE1BQU1vQixLQUFLLENBQUNMLE9BQU9LLEtBQUssSUFBSSxtQ0FBbUM7b0JBQUVELFVBQVU7Z0JBQUs7WUFDbEY7UUFDRixFQUFFLE9BQU9DLE9BQU87WUFDZHBCLE1BQU1vQixLQUFLLENBQUNBLGlCQUFpQkMsUUFBUUQsTUFBTUYsT0FBTyxHQUFHLGtDQUFrQztnQkFBRUMsVUFBVTtZQUFLO1lBQ3hHRyxRQUFRRixLQUFLLENBQUMsd0JBQXdCQTtRQUN4QyxTQUFVO1lBQ1JaLGFBQWE7UUFDZjtJQUNGO0lBRUEscUJBQ0U7OzBCQUNFLEtBQUNUO2dCQUNDd0IsV0FBVTtnQkFDVkMsVUFBVWpCO2dCQUNWa0IsU0FBU2Y7MEJBRVJILFlBQVksZUFBZTs7MEJBRzlCLEtBQUNtQjswQkFDRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1FBc0JGLENBQUM7Ozs7QUFJVCxFQUFFIn0=
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Config } from "payload";
|
|
2
|
+
import type { ClerkPluginOptions } from "./types";
|
|
3
|
+
export * from "./plugin/auth-strategy";
|
|
4
|
+
export * from "./plugin/collections/users";
|
|
5
|
+
export declare function clerkPlugin(pluginOptions?: ClerkPluginOptions): (config: Config) => Config;
|
|
6
|
+
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/clerk/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAOlD,cAAc,wBAAwB,CAAC;AACvC,cAAc,4BAA4B,CAAC;AAE3C,wBAAgB,WAAW,CAAC,aAAa,GAAE,kBAAuB,IACxD,QAAQ,MAAM,KAAG,MAAM,CAoEhC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { withClerkUsersCollection } from "./plugin/collections/users";
|
|
2
|
+
import { defaultClerkMapping, createMappingWithRequiredClerkFields } from "./utils/clerk-user";
|
|
3
|
+
export * from "./plugin/auth-strategy";
|
|
4
|
+
export * from "./plugin/collections/users";
|
|
5
|
+
export function clerkPlugin(pluginOptions = {}) {
|
|
6
|
+
return (config)=>{
|
|
7
|
+
if (pluginOptions.disabled) {
|
|
8
|
+
return config;
|
|
9
|
+
}
|
|
10
|
+
const clerkToPayloadMappingFunction = createMappingWithRequiredClerkFields(pluginOptions?.users?.clerkToPayloadMapping ?? defaultClerkMapping);
|
|
11
|
+
pluginOptions.users = pluginOptions.users ?? {};
|
|
12
|
+
pluginOptions.users.clerkToPayloadMapping = clerkToPayloadMappingFunction;
|
|
13
|
+
config.custom = {
|
|
14
|
+
...config.custom,
|
|
15
|
+
hasClerkPlugin: true,
|
|
16
|
+
clerkPlugin: {
|
|
17
|
+
clerkToPayloadMapping: clerkToPayloadMappingFunction
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
if (!config.collections) {
|
|
21
|
+
config.collections = [];
|
|
22
|
+
}
|
|
23
|
+
config.admin = {
|
|
24
|
+
...config.admin,
|
|
25
|
+
components: {
|
|
26
|
+
logout: {
|
|
27
|
+
Button: {
|
|
28
|
+
path: "payload-auth/clerk/admin/ui#LogoutButton"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
...config.admin?.components,
|
|
32
|
+
afterLogin: [
|
|
33
|
+
{
|
|
34
|
+
path: "payload-auth/clerk/admin/ui#AfterLoginForm",
|
|
35
|
+
clientProps: {
|
|
36
|
+
redirectOnLoginTo: config?.routes?.admin
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
]
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
const userSlug = pluginOptions.users?.slug ?? "users";
|
|
43
|
+
const existingUserCollection = config.collections.find((collection)=>collection.slug === userSlug);
|
|
44
|
+
if (existingUserCollection) {
|
|
45
|
+
const index = config.collections.findIndex((collection)=>collection.slug === userSlug);
|
|
46
|
+
config.collections[index] = withClerkUsersCollection({
|
|
47
|
+
collection: existingUserCollection,
|
|
48
|
+
options: pluginOptions,
|
|
49
|
+
apiBasePath: config?.routes?.api ?? undefined,
|
|
50
|
+
adminBasePath: config?.routes?.admin ?? undefined
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
config.collections.push(withClerkUsersCollection({
|
|
54
|
+
options: pluginOptions,
|
|
55
|
+
apiBasePath: config?.routes?.api ?? undefined,
|
|
56
|
+
adminBasePath: config?.routes?.admin ?? undefined
|
|
57
|
+
}));
|
|
58
|
+
}
|
|
59
|
+
return config;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVyay9wbHVnaW4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25maWcgfSBmcm9tIFwicGF5bG9hZFwiO1xuaW1wb3J0IHR5cGUgeyBDbGVya1BsdWdpbk9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xuaW1wb3J0IHsgd2l0aENsZXJrVXNlcnNDb2xsZWN0aW9uIH0gZnJvbSBcIi4vcGx1Z2luL2NvbGxlY3Rpb25zL3VzZXJzXCI7XG5pbXBvcnQge1xuICBkZWZhdWx0Q2xlcmtNYXBwaW5nLFxuICBjcmVhdGVNYXBwaW5nV2l0aFJlcXVpcmVkQ2xlcmtGaWVsZHMsXG59IGZyb20gXCIuL3V0aWxzL2NsZXJrLXVzZXJcIjtcblxuZXhwb3J0ICogZnJvbSBcIi4vcGx1Z2luL2F1dGgtc3RyYXRlZ3lcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3BsdWdpbi9jb2xsZWN0aW9ucy91c2Vyc1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gY2xlcmtQbHVnaW4ocGx1Z2luT3B0aW9uczogQ2xlcmtQbHVnaW5PcHRpb25zID0ge30pIHtcbiAgcmV0dXJuIChjb25maWc6IENvbmZpZyk6IENvbmZpZyA9PiB7XG4gICAgaWYgKHBsdWdpbk9wdGlvbnMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgY29uc3QgY2xlcmtUb1BheWxvYWRNYXBwaW5nRnVuY3Rpb24gPSBjcmVhdGVNYXBwaW5nV2l0aFJlcXVpcmVkQ2xlcmtGaWVsZHMoXG4gICAgICBwbHVnaW5PcHRpb25zPy51c2Vycz8uY2xlcmtUb1BheWxvYWRNYXBwaW5nID8/IGRlZmF1bHRDbGVya01hcHBpbmdcbiAgICApO1xuICAgIHBsdWdpbk9wdGlvbnMudXNlcnMgPSBwbHVnaW5PcHRpb25zLnVzZXJzID8/IHt9O1xuICAgIHBsdWdpbk9wdGlvbnMudXNlcnMuY2xlcmtUb1BheWxvYWRNYXBwaW5nID0gY2xlcmtUb1BheWxvYWRNYXBwaW5nRnVuY3Rpb247XG5cbiAgICBjb25maWcuY3VzdG9tID0ge1xuICAgICAgLi4uY29uZmlnLmN1c3RvbSxcbiAgICAgIGhhc0NsZXJrUGx1Z2luOiB0cnVlLFxuICAgICAgY2xlcmtQbHVnaW46IHtcbiAgICAgICAgY2xlcmtUb1BheWxvYWRNYXBwaW5nOiBjbGVya1RvUGF5bG9hZE1hcHBpbmdGdW5jdGlvbixcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGlmICghY29uZmlnLmNvbGxlY3Rpb25zKSB7XG4gICAgICBjb25maWcuY29sbGVjdGlvbnMgPSBbXTtcbiAgICB9XG5cbiAgICBjb25maWcuYWRtaW4gPSB7XG4gICAgICAuLi5jb25maWcuYWRtaW4sXG4gICAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIGxvZ291dDoge1xuICAgICAgICAgIEJ1dHRvbjoge1xuICAgICAgICAgICAgcGF0aDogXCJwYXlsb2FkLWF1dGgvY2xlcmsvYWRtaW4vdWkjTG9nb3V0QnV0dG9uXCIsXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICAuLi5jb25maWcuYWRtaW4/LmNvbXBvbmVudHMsXG4gICAgICAgIGFmdGVyTG9naW46IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwYXRoOiBcInBheWxvYWQtYXV0aC9jbGVyay9hZG1pbi91aSNBZnRlckxvZ2luRm9ybVwiLFxuICAgICAgICAgICAgY2xpZW50UHJvcHM6IHsgcmVkaXJlY3RPbkxvZ2luVG86IGNvbmZpZz8ucm91dGVzPy5hZG1pbiB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH07XG4gICAgY29uc3QgdXNlclNsdWcgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5zbHVnID8/IFwidXNlcnNcIjtcblxuICAgIGNvbnN0IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24gPSBjb25maWcuY29sbGVjdGlvbnMuZmluZChcbiAgICAgIChjb2xsZWN0aW9uOiBhbnkpID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gdXNlclNsdWdcbiAgICApO1xuXG4gICAgaWYgKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24pIHtcbiAgICAgIGNvbnN0IGluZGV4ID0gY29uZmlnLmNvbGxlY3Rpb25zLmZpbmRJbmRleChcbiAgICAgICAgKGNvbGxlY3Rpb246IGFueSkgPT4gY29sbGVjdGlvbi5zbHVnID09PSB1c2VyU2x1Z1xuICAgICAgKTtcbiAgICAgIGNvbmZpZy5jb2xsZWN0aW9uc1tpbmRleF0gPSB3aXRoQ2xlcmtVc2Vyc0NvbGxlY3Rpb24oe1xuICAgICAgICBjb2xsZWN0aW9uOiBleGlzdGluZ1VzZXJDb2xsZWN0aW9uLFxuICAgICAgICBvcHRpb25zOiBwbHVnaW5PcHRpb25zLFxuICAgICAgICBhcGlCYXNlUGF0aDogY29uZmlnPy5yb3V0ZXM/LmFwaSA/PyB1bmRlZmluZWQsXG4gICAgICAgIGFkbWluQmFzZVBhdGg6IGNvbmZpZz8ucm91dGVzPy5hZG1pbiA/PyB1bmRlZmluZWQsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZmlnLmNvbGxlY3Rpb25zLnB1c2goXG4gICAgICAgIHdpdGhDbGVya1VzZXJzQ29sbGVjdGlvbih7XG4gICAgICAgICAgb3B0aW9uczogcGx1Z2luT3B0aW9ucyxcbiAgICAgICAgICBhcGlCYXNlUGF0aDogY29uZmlnPy5yb3V0ZXM/LmFwaSA/PyB1bmRlZmluZWQsXG4gICAgICAgICAgYWRtaW5CYXNlUGF0aDogY29uZmlnPy5yb3V0ZXM/LmFkbWluID8/IHVuZGVmaW5lZCxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbmZpZztcbiAgfTtcbn1cbiJdLCJuYW1lcyI6WyJ3aXRoQ2xlcmtVc2Vyc0NvbGxlY3Rpb24iLCJkZWZhdWx0Q2xlcmtNYXBwaW5nIiwiY3JlYXRlTWFwcGluZ1dpdGhSZXF1aXJlZENsZXJrRmllbGRzIiwiY2xlcmtQbHVnaW4iLCJwbHVnaW5PcHRpb25zIiwiY29uZmlnIiwiZGlzYWJsZWQiLCJjbGVya1RvUGF5bG9hZE1hcHBpbmdGdW5jdGlvbiIsInVzZXJzIiwiY2xlcmtUb1BheWxvYWRNYXBwaW5nIiwiY3VzdG9tIiwiaGFzQ2xlcmtQbHVnaW4iLCJjb2xsZWN0aW9ucyIsImFkbWluIiwiY29tcG9uZW50cyIsImxvZ291dCIsIkJ1dHRvbiIsInBhdGgiLCJhZnRlckxvZ2luIiwiY2xpZW50UHJvcHMiLCJyZWRpcmVjdE9uTG9naW5UbyIsInJvdXRlcyIsInVzZXJTbHVnIiwic2x1ZyIsImV4aXN0aW5nVXNlckNvbGxlY3Rpb24iLCJmaW5kIiwiY29sbGVjdGlvbiIsImluZGV4IiwiZmluZEluZGV4Iiwib3B0aW9ucyIsImFwaUJhc2VQYXRoIiwiYXBpIiwidW5kZWZpbmVkIiwiYWRtaW5CYXNlUGF0aCIsInB1c2giXSwibWFwcGluZ3MiOiJBQUVBLFNBQVNBLHdCQUF3QixRQUFRLDZCQUE2QjtBQUN0RSxTQUNFQyxtQkFBbUIsRUFDbkJDLG9DQUFvQyxRQUMvQixxQkFBcUI7QUFFNUIsY0FBYyx5QkFBeUI7QUFDdkMsY0FBYyw2QkFBNkI7QUFFM0MsT0FBTyxTQUFTQyxZQUFZQyxnQkFBb0MsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sQ0FBQ0M7UUFDTixJQUFJRCxjQUFjRSxRQUFRLEVBQUU7WUFDMUIsT0FBT0Q7UUFDVDtRQUVBLE1BQU1FLGdDQUFnQ0wscUNBQ3BDRSxlQUFlSSxPQUFPQyx5QkFBeUJSO1FBRWpERyxjQUFjSSxLQUFLLEdBQUdKLGNBQWNJLEtBQUssSUFBSSxDQUFDO1FBQzlDSixjQUFjSSxLQUFLLENBQUNDLHFCQUFxQixHQUFHRjtRQUU1Q0YsT0FBT0ssTUFBTSxHQUFHO1lBQ2QsR0FBR0wsT0FBT0ssTUFBTTtZQUNoQkMsZ0JBQWdCO1lBQ2hCUixhQUFhO2dCQUNYTSx1QkFBdUJGO1lBQ3pCO1FBQ0Y7UUFFQSxJQUFJLENBQUNGLE9BQU9PLFdBQVcsRUFBRTtZQUN2QlAsT0FBT08sV0FBVyxHQUFHLEVBQUU7UUFDekI7UUFFQVAsT0FBT1EsS0FBSyxHQUFHO1lBQ2IsR0FBR1IsT0FBT1EsS0FBSztZQUNmQyxZQUFZO2dCQUNWQyxRQUFRO29CQUNOQyxRQUFRO3dCQUNOQyxNQUFNO29CQUNSO2dCQUNGO2dCQUNBLEdBQUdaLE9BQU9RLEtBQUssRUFBRUMsVUFBVTtnQkFDM0JJLFlBQVk7b0JBQ1Y7d0JBQ0VELE1BQU07d0JBQ05FLGFBQWE7NEJBQUVDLG1CQUFtQmYsUUFBUWdCLFFBQVFSO3dCQUFNO29CQUMxRDtpQkFDRDtZQUNIO1FBQ0Y7UUFDQSxNQUFNUyxXQUFXbEIsY0FBY0ksS0FBSyxFQUFFZSxRQUFRO1FBRTlDLE1BQU1DLHlCQUF5Qm5CLE9BQU9PLFdBQVcsQ0FBQ2EsSUFBSSxDQUNwRCxDQUFDQyxhQUFvQkEsV0FBV0gsSUFBSSxLQUFLRDtRQUczQyxJQUFJRSx3QkFBd0I7WUFDMUIsTUFBTUcsUUFBUXRCLE9BQU9PLFdBQVcsQ0FBQ2dCLFNBQVMsQ0FDeEMsQ0FBQ0YsYUFBb0JBLFdBQVdILElBQUksS0FBS0Q7WUFFM0NqQixPQUFPTyxXQUFXLENBQUNlLE1BQU0sR0FBRzNCLHlCQUF5QjtnQkFDbkQwQixZQUFZRjtnQkFDWkssU0FBU3pCO2dCQUNUMEIsYUFBYXpCLFFBQVFnQixRQUFRVSxPQUFPQztnQkFDcENDLGVBQWU1QixRQUFRZ0IsUUFBUVIsU0FBU21CO1lBQzFDO1FBQ0YsT0FBTztZQUNMM0IsT0FBT08sV0FBVyxDQUFDc0IsSUFBSSxDQUNyQmxDLHlCQUF5QjtnQkFDdkI2QixTQUFTekI7Z0JBQ1QwQixhQUFhekIsUUFBUWdCLFFBQVFVLE9BQU9DO2dCQUNwQ0MsZUFBZTVCLFFBQVFnQixRQUFRUixTQUFTbUI7WUFDMUM7UUFFSjtRQUVBLE9BQU8zQjtJQUNUO0FBQ0YifQ==
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import type { UserJSON } from '@clerk/backend';
|
|
2
|
+
import type { CollectionConfig, User } from 'payload';
|
|
3
|
+
/**
|
|
4
|
+
* Function type for mapping Clerk user data to Payload fields
|
|
5
|
+
*/
|
|
6
|
+
export type ClerkToPayloadMappingFunction = (clerkUser: UserJSON) => Omit<User, 'id'>;
|
|
7
|
+
export interface ClerkPluginOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Disable the plugin
|
|
10
|
+
*/
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Enable debug logs
|
|
14
|
+
*/
|
|
15
|
+
enableDebugLogs?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Collection options for the Clerk users
|
|
18
|
+
*/
|
|
19
|
+
users?: {
|
|
20
|
+
/**
|
|
21
|
+
* The slug for the users collection
|
|
22
|
+
* @default "users"
|
|
23
|
+
*/
|
|
24
|
+
slug?: string;
|
|
25
|
+
/**
|
|
26
|
+
* Whether to hide the collection in the admin UI
|
|
27
|
+
* @default false
|
|
28
|
+
*/
|
|
29
|
+
hidden?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Collection override function that lets you customize the collection config
|
|
32
|
+
*/
|
|
33
|
+
collectionOverrides?: (args: {
|
|
34
|
+
collection: CollectionConfig;
|
|
35
|
+
}) => CollectionConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Admin roles that have permission to perform admin actions
|
|
38
|
+
* @default ["admin"]
|
|
39
|
+
*/
|
|
40
|
+
adminRoles?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Custom function to map Clerk user data to Payload fields
|
|
43
|
+
* If not provided, default mapping will be used
|
|
44
|
+
*/
|
|
45
|
+
clerkToPayloadMapping?: ClerkToPayloadMappingFunction;
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Webhook configuration
|
|
49
|
+
*/
|
|
50
|
+
webhook?: {
|
|
51
|
+
/**
|
|
52
|
+
* Svix signing secret for validating webhook requests
|
|
53
|
+
* If not provided, webhook validation will be skipped (not recommended for production)
|
|
54
|
+
*/
|
|
55
|
+
svixSecret?: string;
|
|
56
|
+
/**
|
|
57
|
+
* Custom endpoint path for the webhook
|
|
58
|
+
* @default "/api/webhooks/clerk"
|
|
59
|
+
*/
|
|
60
|
+
path?: string;
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/clerk/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAErD;;GAEG;AACH,MAAM,MAAM,6BAA6B,GAAG,CAAC,SAAS,EAAE,QAAQ,KAAK,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAErF,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAElB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAA;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE;QACN;;;WAGG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;QAEb;;;WAGG;QACH,MAAM,CAAC,EAAE,OAAO,CAAA;QAEhB;;WAEG;QACH,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,UAAU,EAAE,gBAAgB,CAAA;SAAE,KAAK,gBAAgB,CAAA;QAElF;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;QAErB;;;WAGG;QACH,qBAAqB,CAAC,EAAE,6BAA6B,CAAA;KACtD,CAAA;IAED;;OAEG;IACH,OAAO,CAAC,EAAE;QACR;;;WAGG;QACH,UAAU,CAAC,EAAE,MAAM,CAAA;QAEnB;;;WAGG;QACH,IAAI,CAAC,EAAE,MAAM,CAAA;KACd,CAAA;CACF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { };
|
|
2
|
+
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbGVyay90eXBlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFVzZXJKU09OIH0gZnJvbSAnQGNsZXJrL2JhY2tlbmQnXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25Db25maWcsIFVzZXIgfSBmcm9tICdwYXlsb2FkJ1xuXG4vKipcbiAqIEZ1bmN0aW9uIHR5cGUgZm9yIG1hcHBpbmcgQ2xlcmsgdXNlciBkYXRhIHRvIFBheWxvYWQgZmllbGRzXG4gKi9cbmV4cG9ydCB0eXBlIENsZXJrVG9QYXlsb2FkTWFwcGluZ0Z1bmN0aW9uID0gKGNsZXJrVXNlcjogVXNlckpTT04pID0+IE9taXQ8VXNlciwgJ2lkJz5cblxuZXhwb3J0IGludGVyZmFjZSBDbGVya1BsdWdpbk9wdGlvbnMge1xuICAvKipcbiAgICogRGlzYWJsZSB0aGUgcGx1Z2luXG4gICAqL1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgXG4gIC8qKlxuICAgKiBFbmFibGUgZGVidWcgbG9nc1xuICAgKi9cbiAgZW5hYmxlRGVidWdMb2dzPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBDb2xsZWN0aW9uIG9wdGlvbnMgZm9yIHRoZSBDbGVyayB1c2Vyc1xuICAgKi9cbiAgdXNlcnM/OiB7XG4gICAgLyoqXG4gICAgICogVGhlIHNsdWcgZm9yIHRoZSB1c2VycyBjb2xsZWN0aW9uXG4gICAgICogQGRlZmF1bHQgXCJ1c2Vyc1wiXG4gICAgICovXG4gICAgc2x1Zz86IHN0cmluZ1xuICAgIFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gaGlkZSB0aGUgY29sbGVjdGlvbiBpbiB0aGUgYWRtaW4gVUlcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIGhpZGRlbj86IGJvb2xlYW5cbiAgICBcbiAgICAvKipcbiAgICAgKiBDb2xsZWN0aW9uIG92ZXJyaWRlIGZ1bmN0aW9uIHRoYXQgbGV0cyB5b3UgY3VzdG9taXplIHRoZSBjb2xsZWN0aW9uIGNvbmZpZ1xuICAgICAqL1xuICAgIGNvbGxlY3Rpb25PdmVycmlkZXM/OiAoYXJnczogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnIH0pID0+IENvbGxlY3Rpb25Db25maWdcbiAgICBcbiAgICAvKipcbiAgICAgKiBBZG1pbiByb2xlcyB0aGF0IGhhdmUgcGVybWlzc2lvbiB0byBwZXJmb3JtIGFkbWluIGFjdGlvbnNcbiAgICAgKiBAZGVmYXVsdCBbXCJhZG1pblwiXVxuICAgICAqL1xuICAgIGFkbWluUm9sZXM/OiBzdHJpbmdbXVxuXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGZ1bmN0aW9uIHRvIG1hcCBDbGVyayB1c2VyIGRhdGEgdG8gUGF5bG9hZCBmaWVsZHNcbiAgICAgKiBJZiBub3QgcHJvdmlkZWQsIGRlZmF1bHQgbWFwcGluZyB3aWxsIGJlIHVzZWRcbiAgICAgKi9cbiAgICBjbGVya1RvUGF5bG9hZE1hcHBpbmc/OiBDbGVya1RvUGF5bG9hZE1hcHBpbmdGdW5jdGlvblxuICB9XG5cbiAgLyoqXG4gICAqIFdlYmhvb2sgY29uZmlndXJhdGlvblxuICAgKi9cbiAgd2ViaG9vaz86IHtcbiAgICAvKipcbiAgICAgKiBTdml4IHNpZ25pbmcgc2VjcmV0IGZvciB2YWxpZGF0aW5nIHdlYmhvb2sgcmVxdWVzdHNcbiAgICAgKiBJZiBub3QgcHJvdmlkZWQsIHdlYmhvb2sgdmFsaWRhdGlvbiB3aWxsIGJlIHNraXBwZWQgKG5vdCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbilcbiAgICAgKi9cbiAgICBzdml4U2VjcmV0Pzogc3RyaW5nXG4gICAgXG4gICAgLyoqXG4gICAgICogQ3VzdG9tIGVuZHBvaW50IHBhdGggZm9yIHRoZSB3ZWJob29rXG4gICAgICogQGRlZmF1bHQgXCIvYXBpL3dlYmhvb2tzL2NsZXJrXCJcbiAgICAgKi9cbiAgICBwYXRoPzogc3RyaW5nXG4gIH1cbn0gIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVFBLFdBNkRDIn0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for processing Clerk user data
|
|
3
|
+
*/
|
|
4
|
+
import { ClerkToPayloadMappingFunction } from '../types';
|
|
5
|
+
import type { User, UserJSON } from '@clerk/backend';
|
|
6
|
+
/**
|
|
7
|
+
* Default mapping function for Clerk user data to Payload fields
|
|
8
|
+
*/
|
|
9
|
+
export declare const defaultClerkMapping: ClerkToPayloadMappingFunction;
|
|
10
|
+
/**
|
|
11
|
+
* Ensures that essential Clerk fields are always set regardless of the mapping function
|
|
12
|
+
* This wrapper guarantees that clerkId and email will always be present in the mapped data
|
|
13
|
+
*/
|
|
14
|
+
export declare const createMappingWithRequiredClerkFields: (mappingFunction: ClerkToPayloadMappingFunction) => ClerkToPayloadMappingFunction;
|
|
15
|
+
/**
|
|
16
|
+
* Extracts the primary email from Clerk user data
|
|
17
|
+
*/
|
|
18
|
+
export declare function getPrimaryEmail(clerkUser: User): string | undefined;
|
|
19
|
+
export declare function getPrimaryEmailFromJson(clerkUser: UserJSON): string | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Formats a user's full name from their first and last name
|
|
22
|
+
*/
|
|
23
|
+
export declare function formatFullName(firstName?: string, lastName?: string): string | undefined;
|
|
24
|
+
//# sourceMappingURL=clerk-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clerk-user.d.ts","sourceRoot":"","sources":["../../../src/clerk/utils/clerk-user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,UAAU,CAAA;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEpD;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,6BAWjC,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,oCAAoC,GAC/C,iBAAiB,6BAA6B,KAC7C,6BAUF,CAAA;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAMnE;AAED,wBAAgB,uBAAuB,CAAC,SAAS,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAM/E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGxF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper functions for processing Clerk user data
|
|
3
|
+
*/ /**
|
|
4
|
+
* Default mapping function for Clerk user data to Payload fields
|
|
5
|
+
*/ export const defaultClerkMapping = (clerkUser)=>{
|
|
6
|
+
return {
|
|
7
|
+
clerkId: clerkUser.id,
|
|
8
|
+
email: getPrimaryEmailFromJson(clerkUser),
|
|
9
|
+
emailVerified: clerkUser.email_addresses?.[0]?.verification?.status === 'verified',
|
|
10
|
+
firstName: clerkUser.first_name,
|
|
11
|
+
lastName: clerkUser.last_name,
|
|
12
|
+
imageUrl: clerkUser.image_url,
|
|
13
|
+
lastSyncedAt: new Date(),
|
|
14
|
+
clerkPublicMetadata: clerkUser?.public_metadata || {}
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Ensures that essential Clerk fields are always set regardless of the mapping function
|
|
19
|
+
* This wrapper guarantees that clerkId and email will always be present in the mapped data
|
|
20
|
+
*/ export const createMappingWithRequiredClerkFields = (mappingFunction)=>{
|
|
21
|
+
return (clerkUser)=>{
|
|
22
|
+
const mappedData = mappingFunction(clerkUser);
|
|
23
|
+
return {
|
|
24
|
+
...mappedData,
|
|
25
|
+
clerkId: clerkUser.id,
|
|
26
|
+
email: mappedData.email || getPrimaryEmailFromJson(clerkUser)
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Extracts the primary email from Clerk user data
|
|
32
|
+
*/ export function getPrimaryEmail(clerkUser) {
|
|
33
|
+
const primaryEmail = clerkUser.emailAddresses?.find((email)=>email.id === clerkUser.primaryEmailAddressId);
|
|
34
|
+
return primaryEmail?.emailAddress || clerkUser.emailAddresses?.[0]?.emailAddress;
|
|
35
|
+
}
|
|
36
|
+
export function getPrimaryEmailFromJson(clerkUser) {
|
|
37
|
+
const primaryEmail = clerkUser.email_addresses?.find((email)=>email.id === clerkUser.primary_email_address_id);
|
|
38
|
+
return primaryEmail?.email_address || clerkUser.email_addresses?.[0]?.email_address;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Formats a user's full name from their first and last name
|
|
42
|
+
*/ export function formatFullName(firstName, lastName) {
|
|
43
|
+
if (!firstName && !lastName) return undefined;
|
|
44
|
+
return `${firstName || ''} ${lastName || ''}`.trim();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGVyay91dGlscy9jbGVyay11c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogSGVscGVyIGZ1bmN0aW9ucyBmb3IgcHJvY2Vzc2luZyBDbGVyayB1c2VyIGRhdGFcbiAqL1xuXG5pbXBvcnQgeyBDbGVya1RvUGF5bG9hZE1hcHBpbmdGdW5jdGlvbiB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBVc2VyLCBVc2VySlNPTiB9IGZyb20gJ0BjbGVyay9iYWNrZW5kJ1xuXG4vKipcbiAqIERlZmF1bHQgbWFwcGluZyBmdW5jdGlvbiBmb3IgQ2xlcmsgdXNlciBkYXRhIHRvIFBheWxvYWQgZmllbGRzXG4gKi9cbmV4cG9ydCBjb25zdCBkZWZhdWx0Q2xlcmtNYXBwaW5nOiBDbGVya1RvUGF5bG9hZE1hcHBpbmdGdW5jdGlvbiA9IChjbGVya1VzZXI6IFVzZXJKU09OKSA9PiB7XG4gIHJldHVybiB7XG4gICAgY2xlcmtJZDogY2xlcmtVc2VyLmlkLFxuICAgIGVtYWlsOiBnZXRQcmltYXJ5RW1haWxGcm9tSnNvbihjbGVya1VzZXIpLFxuICAgIGVtYWlsVmVyaWZpZWQ6IGNsZXJrVXNlci5lbWFpbF9hZGRyZXNzZXM/LlswXT8udmVyaWZpY2F0aW9uPy5zdGF0dXMgPT09ICd2ZXJpZmllZCcsXG4gICAgZmlyc3ROYW1lOiBjbGVya1VzZXIuZmlyc3RfbmFtZSxcbiAgICBsYXN0TmFtZTogY2xlcmtVc2VyLmxhc3RfbmFtZSxcbiAgICBpbWFnZVVybDogY2xlcmtVc2VyLmltYWdlX3VybCxcbiAgICBsYXN0U3luY2VkQXQ6IG5ldyBEYXRlKCksXG4gICAgY2xlcmtQdWJsaWNNZXRhZGF0YTogY2xlcmtVc2VyPy5wdWJsaWNfbWV0YWRhdGEgfHwge30sXG4gIH1cbn1cblxuLyoqXG4gKiBFbnN1cmVzIHRoYXQgZXNzZW50aWFsIENsZXJrIGZpZWxkcyBhcmUgYWx3YXlzIHNldCByZWdhcmRsZXNzIG9mIHRoZSBtYXBwaW5nIGZ1bmN0aW9uXG4gKiBUaGlzIHdyYXBwZXIgZ3VhcmFudGVlcyB0aGF0IGNsZXJrSWQgYW5kIGVtYWlsIHdpbGwgYWx3YXlzIGJlIHByZXNlbnQgaW4gdGhlIG1hcHBlZCBkYXRhXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGVNYXBwaW5nV2l0aFJlcXVpcmVkQ2xlcmtGaWVsZHMgPSAoXG4gIG1hcHBpbmdGdW5jdGlvbjogQ2xlcmtUb1BheWxvYWRNYXBwaW5nRnVuY3Rpb25cbik6IENsZXJrVG9QYXlsb2FkTWFwcGluZ0Z1bmN0aW9uID0+IHtcbiAgcmV0dXJuIChjbGVya1VzZXI6IFVzZXJKU09OKSA9PiB7XG4gICAgY29uc3QgbWFwcGVkRGF0YSA9IG1hcHBpbmdGdW5jdGlvbihjbGVya1VzZXIpXG4gICAgXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLm1hcHBlZERhdGEsXG4gICAgICBjbGVya0lkOiBjbGVya1VzZXIuaWQsXG4gICAgICBlbWFpbDogbWFwcGVkRGF0YS5lbWFpbCB8fCBnZXRQcmltYXJ5RW1haWxGcm9tSnNvbihjbGVya1VzZXIpLFxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3RzIHRoZSBwcmltYXJ5IGVtYWlsIGZyb20gQ2xlcmsgdXNlciBkYXRhXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRQcmltYXJ5RW1haWwoY2xlcmtVc2VyOiBVc2VyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcHJpbWFyeUVtYWlsID0gY2xlcmtVc2VyLmVtYWlsQWRkcmVzc2VzPy5maW5kKFxuICAgIChlbWFpbCkgPT4gZW1haWwuaWQgPT09IGNsZXJrVXNlci5wcmltYXJ5RW1haWxBZGRyZXNzSWRcbiAgKVxuICBcbiAgcmV0dXJuIHByaW1hcnlFbWFpbD8uZW1haWxBZGRyZXNzIHx8IGNsZXJrVXNlci5lbWFpbEFkZHJlc3Nlcz8uWzBdPy5lbWFpbEFkZHJlc3Ncbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByaW1hcnlFbWFpbEZyb21Kc29uKGNsZXJrVXNlcjogVXNlckpTT04pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBwcmltYXJ5RW1haWwgPSBjbGVya1VzZXIuZW1haWxfYWRkcmVzc2VzPy5maW5kKFxuICAgIChlbWFpbCkgPT4gZW1haWwuaWQgPT09IGNsZXJrVXNlci5wcmltYXJ5X2VtYWlsX2FkZHJlc3NfaWRcbiAgKVxuICBcbiAgcmV0dXJuIHByaW1hcnlFbWFpbD8uZW1haWxfYWRkcmVzcyB8fCBjbGVya1VzZXIuZW1haWxfYWRkcmVzc2VzPy5bMF0/LmVtYWlsX2FkZHJlc3Ncbn1cblxuLyoqXG4gKiBGb3JtYXRzIGEgdXNlcidzIGZ1bGwgbmFtZSBmcm9tIHRoZWlyIGZpcnN0IGFuZCBsYXN0IG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGZvcm1hdEZ1bGxOYW1lKGZpcnN0TmFtZT86IHN0cmluZywgbGFzdE5hbWU/OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIWZpcnN0TmFtZSAmJiAhbGFzdE5hbWUpIHJldHVybiB1bmRlZmluZWRcbiAgcmV0dXJuIGAke2ZpcnN0TmFtZSB8fCAnJ30gJHtsYXN0TmFtZSB8fCAnJ31gLnRyaW0oKVxufSAiXSwibmFtZXMiOlsiZGVmYXVsdENsZXJrTWFwcGluZyIsImNsZXJrVXNlciIsImNsZXJrSWQiLCJpZCIsImVtYWlsIiwiZ2V0UHJpbWFyeUVtYWlsRnJvbUpzb24iLCJlbWFpbFZlcmlmaWVkIiwiZW1haWxfYWRkcmVzc2VzIiwidmVyaWZpY2F0aW9uIiwic3RhdHVzIiwiZmlyc3ROYW1lIiwiZmlyc3RfbmFtZSIsImxhc3ROYW1lIiwibGFzdF9uYW1lIiwiaW1hZ2VVcmwiLCJpbWFnZV91cmwiLCJsYXN0U3luY2VkQXQiLCJEYXRlIiwiY2xlcmtQdWJsaWNNZXRhZGF0YSIsInB1YmxpY19tZXRhZGF0YSIsImNyZWF0ZU1hcHBpbmdXaXRoUmVxdWlyZWRDbGVya0ZpZWxkcyIsIm1hcHBpbmdGdW5jdGlvbiIsIm1hcHBlZERhdGEiLCJnZXRQcmltYXJ5RW1haWwiLCJwcmltYXJ5RW1haWwiLCJlbWFpbEFkZHJlc3NlcyIsImZpbmQiLCJwcmltYXJ5RW1haWxBZGRyZXNzSWQiLCJlbWFpbEFkZHJlc3MiLCJwcmltYXJ5X2VtYWlsX2FkZHJlc3NfaWQiLCJlbWFpbF9hZGRyZXNzIiwiZm9ybWF0RnVsbE5hbWUiLCJ1bmRlZmluZWQiLCJ0cmltIl0sIm1hcHBpbmdzIjoiQUFBQTs7Q0FFQyxHQUtEOztDQUVDLEdBQ0QsT0FBTyxNQUFNQSxzQkFBcUQsQ0FBQ0M7SUFDakUsT0FBTztRQUNMQyxTQUFTRCxVQUFVRSxFQUFFO1FBQ3JCQyxPQUFPQyx3QkFBd0JKO1FBQy9CSyxlQUFlTCxVQUFVTSxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUVDLGNBQWNDLFdBQVc7UUFDeEVDLFdBQVdULFVBQVVVLFVBQVU7UUFDL0JDLFVBQVVYLFVBQVVZLFNBQVM7UUFDN0JDLFVBQVViLFVBQVVjLFNBQVM7UUFDN0JDLGNBQWMsSUFBSUM7UUFDbEJDLHFCQUFxQmpCLFdBQVdrQixtQkFBbUIsQ0FBQztJQUN0RDtBQUNGLEVBQUM7QUFFRDs7O0NBR0MsR0FDRCxPQUFPLE1BQU1DLHVDQUF1QyxDQUNsREM7SUFFQSxPQUFPLENBQUNwQjtRQUNOLE1BQU1xQixhQUFhRCxnQkFBZ0JwQjtRQUVuQyxPQUFPO1lBQ0wsR0FBR3FCLFVBQVU7WUFDYnBCLFNBQVNELFVBQVVFLEVBQUU7WUFDckJDLE9BQU9rQixXQUFXbEIsS0FBSyxJQUFJQyx3QkFBd0JKO1FBQ3JEO0lBQ0Y7QUFDRixFQUFDO0FBRUQ7O0NBRUMsR0FDRCxPQUFPLFNBQVNzQixnQkFBZ0J0QixTQUFlO0lBQzdDLE1BQU11QixlQUFldkIsVUFBVXdCLGNBQWMsRUFBRUMsS0FDN0MsQ0FBQ3RCLFFBQVVBLE1BQU1ELEVBQUUsS0FBS0YsVUFBVTBCLHFCQUFxQjtJQUd6RCxPQUFPSCxjQUFjSSxnQkFBZ0IzQixVQUFVd0IsY0FBYyxFQUFFLENBQUMsRUFBRSxFQUFFRztBQUN0RTtBQUVBLE9BQU8sU0FBU3ZCLHdCQUF3QkosU0FBbUI7SUFDekQsTUFBTXVCLGVBQWV2QixVQUFVTSxlQUFlLEVBQUVtQixLQUM5QyxDQUFDdEIsUUFBVUEsTUFBTUQsRUFBRSxLQUFLRixVQUFVNEIsd0JBQXdCO0lBRzVELE9BQU9MLGNBQWNNLGlCQUFpQjdCLFVBQVVNLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRXVCO0FBQ3hFO0FBRUE7O0NBRUMsR0FDRCxPQUFPLFNBQVNDLGVBQWVyQixTQUFrQixFQUFFRSxRQUFpQjtJQUNsRSxJQUFJLENBQUNGLGFBQWEsQ0FBQ0UsVUFBVSxPQUFPb0I7SUFDcEMsT0FBTyxHQUFHdEIsYUFBYSxHQUFHLENBQUMsRUFBRUUsWUFBWSxJQUFJLENBQUNxQixJQUFJO0FBQ3BEIn0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/clerk/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './clerk-user';
|
|
2
|
+
export * from './svix';
|
|
3
|
+
export * from './user';
|
|
4
|
+
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGVyay91dGlscy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsZXJrLXVzZXInXG5leHBvcnQgKiBmcm9tICcuL3N2aXgnXG5leHBvcnQgKiBmcm9tICcuL3VzZXInICJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGVBQWM7QUFDNUIsY0FBYyxTQUFRO0FBQ3RCLGNBQWMsU0FBUSJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"load-clerk-instance.d.ts","sourceRoot":"","sources":["../../../src/clerk/utils/load-clerk-instance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAE7C,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,aAAa,CAAC,EAAE,KAAK,CAAC;KACvB;CACF;AAED,wBAAsB,iBAAiB,mBAQtC"}
|