payload-auth 1.0.1 → 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 +1 -0
- package/dist/better-auth/adapter/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/index.js +1 -1
- 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 -0
- package/dist/better-auth/index.d.ts.map +1 -0
- package/dist/better-auth/index.js +1 -1
- 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 +1 -0
- package/dist/better-auth/plugin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/index.js +1 -1
- 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 +1 -1
- 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 +38 -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,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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export async function loadClerkInstance() {
|
|
2
|
+
if (typeof window === 'undefined') return;
|
|
3
|
+
if (window.clerkInstance) return window.clerkInstance;
|
|
4
|
+
const { Clerk } = await import('@clerk/clerk-js');
|
|
5
|
+
const clerkInstance = new Clerk(process.env.NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY);
|
|
6
|
+
clerkInstance.load();
|
|
7
|
+
window.clerkInstance = clerkInstance;
|
|
8
|
+
return clerkInstance;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGVyay91dGlscy9sb2FkLWNsZXJrLWluc3RhbmNlLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ2xlcmsgfSBmcm9tICdAY2xlcmsvY2xlcmstanMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIGNsZXJrSW5zdGFuY2U/OiBDbGVyaztcbiAgfVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbG9hZENsZXJrSW5zdGFuY2UoKSB7XG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuO1xuICBpZiAod2luZG93LmNsZXJrSW5zdGFuY2UpIHJldHVybiB3aW5kb3cuY2xlcmtJbnN0YW5jZTtcbiAgY29uc3QgeyBDbGVyayB9ID0gYXdhaXQgaW1wb3J0KCdAY2xlcmsvY2xlcmstanMnKTtcbiAgY29uc3QgY2xlcmtJbnN0YW5jZSA9IG5ldyBDbGVyayhwcm9jZXNzLmVudi5ORVhUX1BVQkxJQ19DTEVSS19QVUJMSVNIQUJMRV9LRVkhKTtcbiAgY2xlcmtJbnN0YW5jZS5sb2FkKCk7XG4gIHdpbmRvdy5jbGVya0luc3RhbmNlID0gY2xlcmtJbnN0YW5jZTtcbiAgcmV0dXJuIGNsZXJrSW5zdGFuY2U7XG59Il0sIm5hbWVzIjpbImxvYWRDbGVya0luc3RhbmNlIiwid2luZG93IiwiY2xlcmtJbnN0YW5jZSIsIkNsZXJrIiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX0NMRVJLX1BVQkxJU0hBQkxFX0tFWSIsImxvYWQiXSwibWFwcGluZ3MiOiJBQVFBLE9BQU8sZUFBZUE7SUFDcEIsSUFBSSxPQUFPQyxXQUFXLGFBQWE7SUFDbkMsSUFBSUEsT0FBT0MsYUFBYSxFQUFFLE9BQU9ELE9BQU9DLGFBQWE7SUFDckQsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBRyxNQUFNLE1BQU0sQ0FBQztJQUMvQixNQUFNRCxnQkFBZ0IsSUFBSUMsTUFBTUMsUUFBUUMsR0FBRyxDQUFDQyxpQ0FBaUM7SUFDN0VKLGNBQWNLLElBQUk7SUFDbEJOLE9BQU9DLGFBQWEsR0FBR0E7SUFDdkIsT0FBT0E7QUFDVCJ9
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PayloadRequest } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Validates a webhook request using Svix
|
|
4
|
+
*/
|
|
5
|
+
export declare function validateWebhook({ request, secret, }: {
|
|
6
|
+
request: PayloadRequest;
|
|
7
|
+
secret?: string;
|
|
8
|
+
}): Promise<boolean>;
|
|
9
|
+
//# sourceMappingURL=svix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"svix.d.ts","sourceRoot":"","sources":["../../../src/clerk/utils/svix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C;;GAEG;AACH,wBAAsB,eAAe,CAAC,EACpC,OAAO,EACP,MAAM,GACP,EAAE;IACD,OAAO,EAAE,cAAc,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,GAAG,OAAO,CAAC,OAAO,CAAC,CA6CnB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Webhook } from 'svix';
|
|
2
|
+
/**
|
|
3
|
+
* Validates a webhook request using Svix
|
|
4
|
+
*/ export async function validateWebhook({ request, secret }) {
|
|
5
|
+
// Verify we have the needed methods on the request
|
|
6
|
+
if (!request.clone || typeof request.clone !== 'function') {
|
|
7
|
+
console.error('Svix validation error: request.clone method not available');
|
|
8
|
+
return false;
|
|
9
|
+
}
|
|
10
|
+
const webhookSecret = secret || process.env.CLERK_WEBHOOK_SECRET || process.env.SVIX_WEBHOOK_SECRET;
|
|
11
|
+
if (!webhookSecret) {
|
|
12
|
+
console.warn('Clerk webhook called without Svix validation - not recommended for production');
|
|
13
|
+
return process.env.NODE_ENV !== 'production';
|
|
14
|
+
}
|
|
15
|
+
try {
|
|
16
|
+
const headers = request.headers;
|
|
17
|
+
const svixId = headers.get('svix-id');
|
|
18
|
+
const svixTimestamp = headers.get('svix-timestamp');
|
|
19
|
+
const svixSignature = headers.get('svix-signature');
|
|
20
|
+
if (!svixId || !svixTimestamp || !svixSignature) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
const webhook = new Webhook(webhookSecret);
|
|
24
|
+
const svixHeaders = {
|
|
25
|
+
'svix-id': svixId,
|
|
26
|
+
'svix-timestamp': svixTimestamp,
|
|
27
|
+
'svix-signature': svixSignature
|
|
28
|
+
};
|
|
29
|
+
// Clone the request to avoid consuming the body
|
|
30
|
+
const clonedRequest = request.clone();
|
|
31
|
+
const body = await clonedRequest.text();
|
|
32
|
+
await webhook.verify(body, svixHeaders);
|
|
33
|
+
return true;
|
|
34
|
+
} catch (error) {
|
|
35
|
+
console.error('Svix webhook verification failed:', error);
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGVyay91dGlscy9zdml4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGF5bG9hZFJlcXVlc3QgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgV2ViaG9vayB9IGZyb20gJ3N2aXgnXG5cbi8qKlxuICogVmFsaWRhdGVzIGEgd2ViaG9vayByZXF1ZXN0IHVzaW5nIFN2aXhcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlV2ViaG9vayh7XG4gIHJlcXVlc3QsXG4gIHNlY3JldCxcbn06IHtcbiAgcmVxdWVzdDogUGF5bG9hZFJlcXVlc3RcbiAgc2VjcmV0Pzogc3RyaW5nXG59KTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vIFZlcmlmeSB3ZSBoYXZlIHRoZSBuZWVkZWQgbWV0aG9kcyBvbiB0aGUgcmVxdWVzdFxuICBpZiAoIXJlcXVlc3QuY2xvbmUgfHwgdHlwZW9mIHJlcXVlc3QuY2xvbmUgIT09ICdmdW5jdGlvbicpIHtcbiAgICBjb25zb2xlLmVycm9yKCdTdml4IHZhbGlkYXRpb24gZXJyb3I6IHJlcXVlc3QuY2xvbmUgbWV0aG9kIG5vdCBhdmFpbGFibGUnKVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgY29uc3Qgd2ViaG9va1NlY3JldCA9IHNlY3JldCB8fCBcbiAgICBwcm9jZXNzLmVudi5DTEVSS19XRUJIT09LX1NFQ1JFVCB8fCBcbiAgICBwcm9jZXNzLmVudi5TVklYX1dFQkhPT0tfU0VDUkVUXG5cbiAgaWYgKCF3ZWJob29rU2VjcmV0KSB7XG4gICAgY29uc29sZS53YXJuKCdDbGVyayB3ZWJob29rIGNhbGxlZCB3aXRob3V0IFN2aXggdmFsaWRhdGlvbiAtIG5vdCByZWNvbW1lbmRlZCBmb3IgcHJvZHVjdGlvbicpXG4gICAgcmV0dXJuIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbidcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHJlcXVlc3QuaGVhZGVyc1xuXG4gICAgY29uc3Qgc3ZpeElkID0gaGVhZGVycy5nZXQoJ3N2aXgtaWQnKVxuICAgIGNvbnN0IHN2aXhUaW1lc3RhbXAgPSBoZWFkZXJzLmdldCgnc3ZpeC10aW1lc3RhbXAnKVxuICAgIGNvbnN0IHN2aXhTaWduYXR1cmUgPSBoZWFkZXJzLmdldCgnc3ZpeC1zaWduYXR1cmUnKVxuXG4gICAgaWYgKCFzdml4SWQgfHwgIXN2aXhUaW1lc3RhbXAgfHwgIXN2aXhTaWduYXR1cmUpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cblxuICAgIGNvbnN0IHdlYmhvb2sgPSBuZXcgV2ViaG9vayh3ZWJob29rU2VjcmV0KVxuXG4gICAgY29uc3Qgc3ZpeEhlYWRlcnMgPSB7XG4gICAgICAnc3ZpeC1pZCc6IHN2aXhJZCxcbiAgICAgICdzdml4LXRpbWVzdGFtcCc6IHN2aXhUaW1lc3RhbXAsXG4gICAgICAnc3ZpeC1zaWduYXR1cmUnOiBzdml4U2lnbmF0dXJlLFxuICAgIH1cblxuICAgIC8vIENsb25lIHRoZSByZXF1ZXN0IHRvIGF2b2lkIGNvbnN1bWluZyB0aGUgYm9keVxuICAgIGNvbnN0IGNsb25lZFJlcXVlc3QgPSByZXF1ZXN0LmNsb25lKClcbiAgICBjb25zdCBib2R5ID0gYXdhaXQgY2xvbmVkUmVxdWVzdC50ZXh0KClcbiAgICBcbiAgICBhd2FpdCB3ZWJob29rLnZlcmlmeShib2R5LCBzdml4SGVhZGVycylcbiAgICByZXR1cm4gdHJ1ZVxuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1N2aXggd2ViaG9vayB2ZXJpZmljYXRpb24gZmFpbGVkOicsIGVycm9yKVxuICAgIHJldHVybiBmYWxzZVxuICB9XG59ICJdLCJuYW1lcyI6WyJXZWJob29rIiwidmFsaWRhdGVXZWJob29rIiwicmVxdWVzdCIsInNlY3JldCIsImNsb25lIiwiY29uc29sZSIsImVycm9yIiwid2ViaG9va1NlY3JldCIsInByb2Nlc3MiLCJlbnYiLCJDTEVSS19XRUJIT09LX1NFQ1JFVCIsIlNWSVhfV0VCSE9PS19TRUNSRVQiLCJ3YXJuIiwiTk9ERV9FTlYiLCJoZWFkZXJzIiwic3ZpeElkIiwiZ2V0Iiwic3ZpeFRpbWVzdGFtcCIsInN2aXhTaWduYXR1cmUiLCJ3ZWJob29rIiwic3ZpeEhlYWRlcnMiLCJjbG9uZWRSZXF1ZXN0IiwiYm9keSIsInRleHQiLCJ2ZXJpZnkiXSwibWFwcGluZ3MiOiJBQUNBLFNBQVNBLE9BQU8sUUFBUSxPQUFNO0FBRTlCOztDQUVDLEdBQ0QsT0FBTyxlQUFlQyxnQkFBZ0IsRUFDcENDLE9BQU8sRUFDUEMsTUFBTSxFQUlQO0lBQ0MsbURBQW1EO0lBQ25ELElBQUksQ0FBQ0QsUUFBUUUsS0FBSyxJQUFJLE9BQU9GLFFBQVFFLEtBQUssS0FBSyxZQUFZO1FBQ3pEQyxRQUFRQyxLQUFLLENBQUM7UUFDZCxPQUFPO0lBQ1Q7SUFFQSxNQUFNQyxnQkFBZ0JKLFVBQ3BCSyxRQUFRQyxHQUFHLENBQUNDLG9CQUFvQixJQUNoQ0YsUUFBUUMsR0FBRyxDQUFDRSxtQkFBbUI7SUFFakMsSUFBSSxDQUFDSixlQUFlO1FBQ2xCRixRQUFRTyxJQUFJLENBQUM7UUFDYixPQUFPSixRQUFRQyxHQUFHLENBQUNJLFFBQVEsS0FBSztJQUNsQztJQUVBLElBQUk7UUFDRixNQUFNQyxVQUFVWixRQUFRWSxPQUFPO1FBRS9CLE1BQU1DLFNBQVNELFFBQVFFLEdBQUcsQ0FBQztRQUMzQixNQUFNQyxnQkFBZ0JILFFBQVFFLEdBQUcsQ0FBQztRQUNsQyxNQUFNRSxnQkFBZ0JKLFFBQVFFLEdBQUcsQ0FBQztRQUVsQyxJQUFJLENBQUNELFVBQVUsQ0FBQ0UsaUJBQWlCLENBQUNDLGVBQWU7WUFDL0MsT0FBTztRQUNUO1FBRUEsTUFBTUMsVUFBVSxJQUFJbkIsUUFBUU87UUFFNUIsTUFBTWEsY0FBYztZQUNsQixXQUFXTDtZQUNYLGtCQUFrQkU7WUFDbEIsa0JBQWtCQztRQUNwQjtRQUVBLGdEQUFnRDtRQUNoRCxNQUFNRyxnQkFBZ0JuQixRQUFRRSxLQUFLO1FBQ25DLE1BQU1rQixPQUFPLE1BQU1ELGNBQWNFLElBQUk7UUFFckMsTUFBTUosUUFBUUssTUFBTSxDQUFDRixNQUFNRjtRQUMzQixPQUFPO0lBQ1QsRUFBRSxPQUFPZCxPQUFPO1FBQ2RELFFBQVFDLEtBQUssQ0FBQyxxQ0FBcUNBO1FBQ25ELE9BQU87SUFDVDtBQUNGIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-related utility functions for the Clerk plugin
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Find a user in Payload by their Clerk ID or primary email
|
|
6
|
+
*/
|
|
7
|
+
export declare function findUserFromClerkUser({ payload, userSlug, clerkUser }: {
|
|
8
|
+
payload: any;
|
|
9
|
+
userSlug: string;
|
|
10
|
+
clerkUser: any;
|
|
11
|
+
}): Promise<any>;
|
|
12
|
+
/**
|
|
13
|
+
* Get a user by their Clerk ID
|
|
14
|
+
* Returns the first user found or null if not found
|
|
15
|
+
*/
|
|
16
|
+
export declare function getUserByClerkId(payload: any, userSlug: string, clerkId: string): Promise<any>;
|
|
17
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/clerk/utils/user.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,EAC1C,OAAO,EACP,QAAQ,EACR,SAAS,EACV,EAAE;IACD,OAAO,EAAE,GAAG,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,GAAG,CAAC;CAChB,gBAwBA;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,gBAcrF"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User-related utility functions for the Clerk plugin
|
|
3
|
+
*/ /**
|
|
4
|
+
* Find a user in Payload by their Clerk ID or primary email
|
|
5
|
+
*/ export async function findUserFromClerkUser({ payload, userSlug, clerkUser }) {
|
|
6
|
+
const primaryEmailObj = clerkUser.email_addresses?.find((email)=>email.id === clerkUser.primary_email_address_id);
|
|
7
|
+
const primaryEmail = primaryEmailObj?.email_address;
|
|
8
|
+
return payload.find({
|
|
9
|
+
collection: userSlug,
|
|
10
|
+
where: {
|
|
11
|
+
or: [
|
|
12
|
+
{
|
|
13
|
+
clerkId: {
|
|
14
|
+
equals: clerkUser.id
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
primaryEmail ? {
|
|
18
|
+
email: {
|
|
19
|
+
equals: primaryEmail
|
|
20
|
+
}
|
|
21
|
+
} : undefined
|
|
22
|
+
].filter(Boolean)
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Get a user by their Clerk ID
|
|
28
|
+
* Returns the first user found or null if not found
|
|
29
|
+
*/ export async function getUserByClerkId(payload, userSlug, clerkId) {
|
|
30
|
+
if (!clerkId) return null;
|
|
31
|
+
try {
|
|
32
|
+
const result = await findUserFromClerkUser({
|
|
33
|
+
payload,
|
|
34
|
+
userSlug,
|
|
35
|
+
clerkUser: {
|
|
36
|
+
id: clerkId
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
return result.docs.length > 0 ? result.docs[0] : null;
|
|
40
|
+
} catch (error) {
|
|
41
|
+
console.error('Error finding user by Clerk ID:', error);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jbGVyay91dGlscy91c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVXNlci1yZWxhdGVkIHV0aWxpdHkgZnVuY3Rpb25zIGZvciB0aGUgQ2xlcmsgcGx1Z2luXG4gKi9cblxuLyoqXG4gKiBGaW5kIGEgdXNlciBpbiBQYXlsb2FkIGJ5IHRoZWlyIENsZXJrIElEIG9yIHByaW1hcnkgZW1haWxcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbmRVc2VyRnJvbUNsZXJrVXNlcih7IFxuICBwYXlsb2FkLCBcbiAgdXNlclNsdWcsIFxuICBjbGVya1VzZXIgXG59OiB7IFxuICBwYXlsb2FkOiBhbnk7IFxuICB1c2VyU2x1Zzogc3RyaW5nOyBcbiAgY2xlcmtVc2VyOiBhbnk7XG59KSB7XG4gIGNvbnN0IHByaW1hcnlFbWFpbE9iaiA9IGNsZXJrVXNlci5lbWFpbF9hZGRyZXNzZXM/LmZpbmQoXG4gICAgKGVtYWlsOiBhbnkpID0+IGVtYWlsLmlkID09PSBjbGVya1VzZXIucHJpbWFyeV9lbWFpbF9hZGRyZXNzX2lkXG4gICk7XG4gIFxuICBjb25zdCBwcmltYXJ5RW1haWwgPSBwcmltYXJ5RW1haWxPYmo/LmVtYWlsX2FkZHJlc3M7XG4gIFxuICByZXR1cm4gcGF5bG9hZC5maW5kKHtcbiAgICBjb2xsZWN0aW9uOiB1c2VyU2x1ZyxcbiAgICB3aGVyZToge1xuICAgICAgb3I6IFtcbiAgICAgICAge1xuICAgICAgICAgIGNsZXJrSWQ6IHtcbiAgICAgICAgICAgIGVxdWFsczogY2xlcmtVc2VyLmlkLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHByaW1hcnlFbWFpbCA/IHtcbiAgICAgICAgICBlbWFpbDoge1xuICAgICAgICAgICAgZXF1YWxzOiBwcmltYXJ5RW1haWwsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSA6IHVuZGVmaW5lZCxcbiAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgIH0sXG4gIH0pO1xufVxuXG4vKipcbiAqIEdldCBhIHVzZXIgYnkgdGhlaXIgQ2xlcmsgSURcbiAqIFJldHVybnMgdGhlIGZpcnN0IHVzZXIgZm91bmQgb3IgbnVsbCBpZiBub3QgZm91bmRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFVzZXJCeUNsZXJrSWQocGF5bG9hZDogYW55LCB1c2VyU2x1Zzogc3RyaW5nLCBjbGVya0lkOiBzdHJpbmcpIHtcbiAgaWYgKCFjbGVya0lkKSByZXR1cm4gbnVsbFxuICBcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBmaW5kVXNlckZyb21DbGVya1VzZXIoeyBcbiAgICAgIHBheWxvYWQsIFxuICAgICAgdXNlclNsdWcsIFxuICAgICAgY2xlcmtVc2VyOiB7IGlkOiBjbGVya0lkIH0gXG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdC5kb2NzLmxlbmd0aCA+IDAgPyByZXN1bHQuZG9jc1swXSA6IG51bGxcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKCdFcnJvciBmaW5kaW5nIHVzZXIgYnkgQ2xlcmsgSUQ6JywgZXJyb3IpXG4gICAgcmV0dXJuIG51bGxcbiAgfVxufSAiXSwibmFtZXMiOlsiZmluZFVzZXJGcm9tQ2xlcmtVc2VyIiwicGF5bG9hZCIsInVzZXJTbHVnIiwiY2xlcmtVc2VyIiwicHJpbWFyeUVtYWlsT2JqIiwiZW1haWxfYWRkcmVzc2VzIiwiZmluZCIsImVtYWlsIiwiaWQiLCJwcmltYXJ5X2VtYWlsX2FkZHJlc3NfaWQiLCJwcmltYXJ5RW1haWwiLCJlbWFpbF9hZGRyZXNzIiwiY29sbGVjdGlvbiIsIndoZXJlIiwib3IiLCJjbGVya0lkIiwiZXF1YWxzIiwidW5kZWZpbmVkIiwiZmlsdGVyIiwiQm9vbGVhbiIsImdldFVzZXJCeUNsZXJrSWQiLCJyZXN1bHQiLCJkb2NzIiwibGVuZ3RoIiwiZXJyb3IiLCJjb25zb2xlIl0sIm1hcHBpbmdzIjoiQUFBQTs7Q0FFQyxHQUVEOztDQUVDLEdBQ0QsT0FBTyxlQUFlQSxzQkFBc0IsRUFDMUNDLE9BQU8sRUFDUEMsUUFBUSxFQUNSQyxTQUFTLEVBS1Y7SUFDQyxNQUFNQyxrQkFBa0JELFVBQVVFLGVBQWUsRUFBRUMsS0FDakQsQ0FBQ0MsUUFBZUEsTUFBTUMsRUFBRSxLQUFLTCxVQUFVTSx3QkFBd0I7SUFHakUsTUFBTUMsZUFBZU4saUJBQWlCTztJQUV0QyxPQUFPVixRQUFRSyxJQUFJLENBQUM7UUFDbEJNLFlBQVlWO1FBQ1pXLE9BQU87WUFDTEMsSUFBSTtnQkFDRjtvQkFDRUMsU0FBUzt3QkFDUEMsUUFBUWIsVUFBVUssRUFBRTtvQkFDdEI7Z0JBQ0Y7Z0JBQ0FFLGVBQWU7b0JBQ2JILE9BQU87d0JBQ0xTLFFBQVFOO29CQUNWO2dCQUNGLElBQUlPO2FBQ0wsQ0FBQ0MsTUFBTSxDQUFDQztRQUNYO0lBQ0Y7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELE9BQU8sZUFBZUMsaUJBQWlCbkIsT0FBWSxFQUFFQyxRQUFnQixFQUFFYSxPQUFlO0lBQ3BGLElBQUksQ0FBQ0EsU0FBUyxPQUFPO0lBRXJCLElBQUk7UUFDRixNQUFNTSxTQUFTLE1BQU1yQixzQkFBc0I7WUFDekNDO1lBQ0FDO1lBQ0FDLFdBQVc7Z0JBQUVLLElBQUlPO1lBQVE7UUFDM0I7UUFDQSxPQUFPTSxPQUFPQyxJQUFJLENBQUNDLE1BQU0sR0FBRyxJQUFJRixPQUFPQyxJQUFJLENBQUMsRUFBRSxHQUFHO0lBQ25ELEVBQUUsT0FBT0UsT0FBTztRQUNkQyxRQUFRRCxLQUFLLENBQUMsbUNBQW1DQTtRQUNqRCxPQUFPO0lBQ1Q7QUFDRiJ9
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// These re-exports will be used by consumers of the library
|
|
2
|
-
export * from "
|
|
3
|
-
export * from "
|
|
4
|
-
export * from "
|
|
5
|
-
export * from "
|
|
2
|
+
export * from "./better-auth";
|
|
3
|
+
export * from "./clerk";
|
|
4
|
+
export * from "./kinde";
|
|
5
|
+
export * from "./authjs";
|
|
6
6
|
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGVzZSByZS1leHBvcnRzIHdpbGwgYmUgdXNlZCBieSBjb25zdW1lcnMgb2YgdGhlIGxpYnJhcnlcbmV4cG9ydCAqIGZyb20gXCIuL2JldHRlci1hdXRoXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jbGVya1wiO1xuZXhwb3J0ICogZnJvbSBcIi4va2luZGVcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2F1dGhqc1wiO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDREQUE0RDtBQUM1RCxjQUFjLGdCQUFnQjtBQUM5QixjQUFjLFVBQVU7QUFDeEIsY0FBYyxVQUFVO0FBQ3hCLGNBQWMsV0FBVyJ9
|
package/dist/kinde/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/kinde/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,KAAK,UAAU,CAAC"}
|
package/dist/kinde/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export const kinde = "kinde";
|
|
2
2
|
|
|
3
|
-
//# sourceMappingURL=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9raW5kZS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3Qga2luZGUgPSBcImtpbmRlXCI7XG4iXSwibmFtZXMiOlsia2luZGUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sTUFBTUEsUUFBUSxRQUFRIn0=
|