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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "payload-auth",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"module": "./dist/index.mjs",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -37,6 +37,21 @@
|
|
|
37
37
|
"types": "./dist/clerk/index.d.ts",
|
|
38
38
|
"default": "./dist/clerk/index.js"
|
|
39
39
|
},
|
|
40
|
+
"./clerk/plugin": {
|
|
41
|
+
"import": "./dist/clerk/plugin/index.js",
|
|
42
|
+
"types": "./dist/clerk/plugin/index.d.ts",
|
|
43
|
+
"default": "./dist/clerk/plugin/index.js"
|
|
44
|
+
},
|
|
45
|
+
"./clerk/utils": {
|
|
46
|
+
"import": "./dist/clerk/utils/index.js",
|
|
47
|
+
"types": "./dist/clerk/utils/index.d.ts",
|
|
48
|
+
"default": "./dist/clerk/utils/index.js"
|
|
49
|
+
},
|
|
50
|
+
"./clerk/admin/ui": {
|
|
51
|
+
"import": "./dist/clerk/admin-ui.js",
|
|
52
|
+
"types": "./dist/clerk/admin-ui.d.ts",
|
|
53
|
+
"default": "./dist/clerk/admin-ui.js"
|
|
54
|
+
},
|
|
40
55
|
"./kinde": {
|
|
41
56
|
"import": "./dist/kinde/index.js",
|
|
42
57
|
"types": "./dist/kinde/index.d.ts",
|
|
@@ -52,37 +67,48 @@
|
|
|
52
67
|
"files": [
|
|
53
68
|
"dist"
|
|
54
69
|
],
|
|
70
|
+
"peerDependencies": {
|
|
71
|
+
"payload": "^3.32",
|
|
72
|
+
"next": "^15.2",
|
|
73
|
+
"react": "^19",
|
|
74
|
+
"react-dom": "^19"
|
|
75
|
+
},
|
|
55
76
|
"devDependencies": {
|
|
77
|
+
"copyfiles": "^2.4.1",
|
|
78
|
+
"@clerk/types": "^4.50.1",
|
|
56
79
|
"@swc/cli": "0.6.0",
|
|
57
80
|
"@swc/core": "1.11.13",
|
|
58
|
-
"
|
|
81
|
+
"@types/node": "^20.0.0",
|
|
82
|
+
"@types/react": "^19",
|
|
83
|
+
"@types/react-dom": "^19",
|
|
84
|
+
"typescript": "5.8.2",
|
|
85
|
+
"vitest": "^1.0.0"
|
|
59
86
|
},
|
|
60
87
|
"dependencies": {
|
|
61
|
-
"
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"@
|
|
88
|
+
"@payloadcms/ui": "^3.32",
|
|
89
|
+
"@better-auth/utils": "0.2.4",
|
|
90
|
+
"@clerk/backend": "^1.25.8",
|
|
91
|
+
"@clerk/clerk-js": "^5.58.1",
|
|
92
|
+
"@clerk/nextjs": "^6.12.12",
|
|
65
93
|
"@radix-ui/react-checkbox": "1.1.4",
|
|
66
94
|
"@radix-ui/react-icons": "1.3.2",
|
|
67
95
|
"@radix-ui/react-label": "2.1.2",
|
|
68
96
|
"@radix-ui/react-slot": "1.1.2",
|
|
69
|
-
"@better-auth/utils": "0.2.4",
|
|
70
97
|
"better-auth": "1.2.5",
|
|
71
98
|
"class-variance-authority": "0.7.1",
|
|
72
99
|
"clsx": "2.1.1",
|
|
73
100
|
"jose": "^6.0.10",
|
|
74
101
|
"lucide-react": "0.482.0",
|
|
75
|
-
"payload": "3.31",
|
|
76
102
|
"sonner": "2.0.1",
|
|
103
|
+
"svix": "^1.62.0",
|
|
77
104
|
"tailwind-merge": "3.0.2",
|
|
78
105
|
"uncrypto": "^0.1.3"
|
|
79
106
|
},
|
|
80
107
|
"scripts": {
|
|
81
108
|
"clean": "rm -rf ./dist && rm -rf ./tsconfig.tsbuildinfo",
|
|
82
|
-
"build": "pnpm clean && pnpm
|
|
109
|
+
"build": "pnpm clean && pnpm copyfiles && pnpm build:types && pnpm build:swc",
|
|
110
|
+
"copyfiles": "copyfiles -u 1 \"src/**/*.{html,css,scss,ttf,woff,woff2,eot,svg,jpg,png,json}\" dist",
|
|
83
111
|
"build:swc": "swc ./src -d ./dist --config-file .swcrc --strip-leading-paths",
|
|
84
|
-
"build:types": "tsc --project tsconfig.json"
|
|
85
|
-
"copy:dist": "pnpm copy:provider better-auth && pnpm copy:provider clerk && pnpm copy:provider kinde && pnpm copy:provider authjs",
|
|
86
|
-
"copy:provider": "./copy-provider.sh"
|
|
112
|
+
"build:types": "tsc --project tsconfig.json"
|
|
87
113
|
}
|
|
88
114
|
}
|
package/dist/authjs/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export const authjs = \"authjs\";\n"],"names":["authjs"],"mappings":"AAAA,OAAO,MAAMA,SAAS,SAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/dev/bin/run.ts"],"sourcesContent":["import { betterAuth } from 'better-auth'\nimport { payloadAdapter } from '../..'\nimport { getPayload } from '..'\nimport { generateSchema } from '../../generate-schema'\nimport { getPayloadPath } from '../../generate-schema/utils'\n\nconst PAYLOAD_TEST_DIR_PATH = getPayloadPath('./test/test_payload1')\nconst PAYLOAD_TEST_DIR_PATH2 = getPayloadPath('./test/test_payload2')\nconst PAYLOAD_TEST_DIR_PATH3 = getPayloadPath('./test/test_payload3')\n\nconst auth = betterAuth({\n database: payloadAdapter(await getPayload()),\n emailAndPassword: {\n enabled: true,\n },\n})\n\nawait generateSchema(\n {\n plugins: [\n {\n id: 'admin',\n schema: {\n admin: {\n fields: {\n name: {\n type: 'string',\n required: true,\n },\n id: {\n type: 'string',\n required: true,\n },\n isAdmin: {\n type: 'boolean',\n required: true,\n },\n status: {\n type: 'string',\n required: false,\n },\n date: {\n type: 'date',\n },\n number: {\n type: 'number',\n },\n str_array: {\n type: 'string[]',\n },\n num_array: {\n type: 'number[]',\n },\n },\n },\n },\n },\n ],\n },\n {\n outputDir: PAYLOAD_TEST_DIR_PATH3,\n },\n)\n .then(() => {\n process.exit(0)\n })\n .catch((err) => {\n console.error(err)\n process.exit(1)\n })\n"],"names":["betterAuth","payloadAdapter","getPayload","generateSchema","getPayloadPath","PAYLOAD_TEST_DIR_PATH","PAYLOAD_TEST_DIR_PATH2","PAYLOAD_TEST_DIR_PATH3","auth","database","emailAndPassword","enabled","plugins","id","schema","admin","fields","name","type","required","isAdmin","status","date","number","str_array","num_array","outputDir","then","process","exit","catch","err","console","error"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAa;AACxC,SAASC,cAAc,QAAQ,QAAO;AACtC,SAASC,UAAU,QAAQ,KAAI;AAC/B,SAASC,cAAc,QAAQ,wBAAuB;AACtD,SAASC,cAAc,QAAQ,8BAA6B;AAE5D,MAAMC,wBAAwBD,eAAe;AAC7C,MAAME,yBAAyBF,eAAe;AAC9C,MAAMG,yBAAyBH,eAAe;AAE9C,MAAMI,OAAOR,WAAW;IACtBS,UAAUR,eAAe,MAAMC;IAC/BQ,kBAAkB;QAChBC,SAAS;IACX;AACF;AAEA,MAAMR,eACJ;IACES,SAAS;QACP;YACEC,IAAI;YACJC,QAAQ;gBACNC,OAAO;oBACLC,QAAQ;wBACNC,MAAM;4BACJC,MAAM;4BACNC,UAAU;wBACZ;wBACAN,IAAI;4BACFK,MAAM;4BACNC,UAAU;wBACZ;wBACAC,SAAS;4BACPF,MAAM;4BACNC,UAAU;wBACZ;wBACAE,QAAQ;4BACNH,MAAM;4BACNC,UAAU;wBACZ;wBACAG,MAAM;4BACJJ,MAAM;wBACR;wBACAK,QAAQ;4BACNL,MAAM;wBACR;wBACAM,WAAW;4BACTN,MAAM;wBACR;wBACAO,WAAW;4BACTP,MAAM;wBACR;oBACF;gBACF;YACF;QACF;KACD;AACH,GACA;IACEQ,WAAWnB;AACb,GAECoB,IAAI,CAAC;IACJC,QAAQC,IAAI,CAAC;AACf,GACCC,KAAK,CAAC,CAACC;IACNC,QAAQC,KAAK,CAACF;IACdH,QAAQC,IAAI,CAAC;AACf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/dev/bin/schema.ts"],"sourcesContent":["/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n *\n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n *\n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from 'payload'\n\nconst User: CollectionConfig = {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n defaultValue: false,\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n ],\n timestamps: true,\n} as const\n\nconst Session: CollectionConfig = {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n relationTo: 'user',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nconst Account: CollectionConfig = {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'text',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n required: true,\n },\n {\n name: 'userId',\n type: 'relationship',\n relationTo: 'user',\n required: true,\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nconst Verification: CollectionConfig = {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nexport { User, Session, Account, Verification }\n"],"names":["User","slug","admin","useAsTitle","fields","name","type","required","unique","defaultValue","relationTo","timestamps","Session","Account","Verification"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAGD,MAAMA,OAAyB;IAC7BC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,cAAc;QAChB;QACA;YACEJ,MAAM;YACNC,MAAM;YACNI,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAMC,UAA4B;IAChCX,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNI,YAAY;YACZH,UAAU;QACZ;KACD;IACDI,YAAY;AACd;AAEA,MAAME,UAA4B;IAChCZ,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNI,YAAY;YACZH,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDK,YAAY;AACd;AAEA,MAAMG,eAAiC;IACrCb,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDI,YAAY;AACd;AAEA,SAASX,IAAI,EAAEY,OAAO,EAAEC,OAAO,EAAEC,YAAY,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/dev/collections.ts"],"sourcesContent":["import type { CollectionConfig } from 'payload'\n\nconst User: CollectionConfig = {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n ],\n timestamps: true,\n} as const\n\nconst Session: CollectionConfig = {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n ],\n timestamps: true,\n} as const\n\nconst Account: CollectionConfig = {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'number',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nconst Verification: CollectionConfig = {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nconst Media: CollectionConfig = {\n slug: 'media',\n fields: [\n {\n name: 'alt',\n type: 'text',\n },\n ],\n upload: {\n adminThumbnail: 'thumbnail',\n imageSizes: [\n {\n name: 'thumbnail',\n fit: 'cover',\n width: 500,\n formatOptions: {\n format: 'webp',\n options: {\n quality: 100,\n },\n },\n },\n ],\n formatOptions: {\n format: 'webp',\n options: {\n quality: 80,\n },\n },\n resizeOptions: {\n width: 2560,\n withoutEnlargement: true,\n },\n bulkUpload: true,\n disableLocalStorage: true,\n focalPoint: true,\n crop: true,\n pasteURL: {\n allowList: [\n {\n hostname: 'payloadcms.com', // required\n pathname: '',\n port: '',\n protocol: 'https',\n search: '',\n },\n {\n hostname: 'drive.google.com',\n protocol: 'https',\n },\n {\n hostname: 'www.bonavistaleisurescapes.com',\n protocol: 'https',\n },\n {\n hostname: 'www.acdcfeeds.com',\n protocol: 'https',\n },\n ],\n },\n },\n} as const\n\nconst collections = [User, Session, Account, Verification, Media]\n\nexport { collections }\n"],"names":["User","slug","admin","useAsTitle","fields","name","type","required","unique","relationTo","timestamps","Session","Account","Verification","Media","upload","adminThumbnail","imageSizes","fit","width","formatOptions","format","options","quality","resizeOptions","withoutEnlargement","bulkUpload","disableLocalStorage","focalPoint","crop","pasteURL","allowList","hostname","pathname","port","protocol","search","collections"],"mappings":"AAEA,MAAMA,OAAyB;IAC7BC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNG,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAMC,UAA4B;IAChCV,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAME,UAA4B;IAChCX,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;QACA;YACEJ,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,MAAMG,eAAiC;IACrCZ,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDG,YAAY;AACd;AAEA,MAAMI,QAA0B;IAC9Bb,MAAM;IACNG,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;QACR;KACD;IACDS,QAAQ;QACNC,gBAAgB;QAChBC,YAAY;YACV;gBACEZ,MAAM;gBACNa,KAAK;gBACLC,OAAO;gBACPC,eAAe;oBACbC,QAAQ;oBACRC,SAAS;wBACPC,SAAS;oBACX;gBACF;YACF;SACD;QACDH,eAAe;YACbC,QAAQ;YACRC,SAAS;gBACPC,SAAS;YACX;QACF;QACAC,eAAe;YACbL,OAAO;YACPM,oBAAoB;QACtB;QACAC,YAAY;QACZC,qBAAqB;QACrBC,YAAY;QACZC,MAAM;QACNC,UAAU;YACRC,WAAW;gBACT;oBACEC,UAAU;oBACVC,UAAU;oBACVC,MAAM;oBACNC,UAAU;oBACVC,QAAQ;gBACV;gBACA;oBACEJ,UAAU;oBACVG,UAAU;gBACZ;gBACA;oBACEH,UAAU;oBACVG,UAAU;gBACZ;gBACA;oBACEH,UAAU;oBACVG,UAAU;gBACZ;aACD;QACH;IACF;AACF;AAEA,MAAME,cAAc;IAACrC;IAAMW;IAASC;IAASC;IAAcC;CAAM;AAEjE,SAASuB,WAAW,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/dev/index.ts"],"sourcesContent":["import { getPayload as getPayloadBase } from 'payload'\n\nimport { buildConfig } from 'payload'\nimport { postgresAdapter } from '@payloadcms/db-postgres'\n\nexport const payloadConfig = buildConfig({\n admin: {\n user: 'user',\n },\n secret: 'super-secret-payload-key',\n db: postgresAdapter({\n pool: {\n connectionString: process.env.DATABASE_URL,\n },\n push: false,\n transactionOptions: false,\n }),\n collections: [\n {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n auth: {\n disableLocalStrategy: true,\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'image',\n type: 'text',\n },\n ],\n timestamps: true,\n },\n {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'number',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n },\n {\n name: 'user',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n },\n {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n },\n {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'user',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n ],\n timestamps: true,\n },\n ],\n})\n\nexport async function getPayload() {\n return await getPayloadBase({ config: payloadConfig })\n}\n\nexport default payloadConfig\n"],"names":["getPayload","getPayloadBase","buildConfig","postgresAdapter","payloadConfig","admin","user","secret","db","pool","connectionString","process","env","DATABASE_URL","push","transactionOptions","collections","slug","useAsTitle","auth","disableLocalStrategy","fields","name","type","required","unique","timestamps","relationTo","config"],"mappings":"AAAA,SAASA,cAAcC,cAAc,QAAQ,UAAS;AAEtD,SAASC,WAAW,QAAQ,UAAS;AACrC,SAASC,eAAe,QAAQ,0BAAyB;AAEzD,OAAO,MAAMC,gBAAgBF,YAAY;IACvCG,OAAO;QACLC,MAAM;IACR;IACAC,QAAQ;IACRC,IAAIL,gBAAgB;QAClBM,MAAM;YACJC,kBAAkBC,QAAQC,GAAG,CAACC,YAAY;QAC5C;QACAC,MAAM;QACNC,oBAAoB;IACtB;IACAC,aAAa;QACX;YACEC,MAAM;YACNZ,OAAO;gBACLa,YAAY;YACd;YACAC,MAAM;gBACJC,sBAAsB;YACxB;YACAC,QAAQ;gBACN;oBACEC,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;gBACA;oBACEF,MAAM;oBACNC,MAAM;oBACNC,UAAU;oBACVC,QAAQ;gBACV;gBACA;oBACEH,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;gBACA;oBACEF,MAAM;oBACNC,MAAM;gBACR;aACD;YACDG,YAAY;QACd;QACA;YACET,MAAM;YACNZ,OAAO;gBACLa,YAAY;YACd;YACAG,QAAQ;gBACN;oBACEC,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;gBACA;oBACEF,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;oBACNC,UAAU;oBACVG,YAAY;gBACd;gBACA;oBACEL,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;aACD;YACDG,YAAY;QACd;QACA;YACET,MAAM;YACNZ,OAAO;gBACLa,YAAY;YACd;YACAG,QAAQ;gBACN;oBACEC,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;gBACA;oBACEF,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;gBACA;oBACEF,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;aACD;YACDE,YAAY;QACd;QACA;YACET,MAAM;YACNZ,OAAO;gBACLa,YAAY;YACd;YACAG,QAAQ;gBACN;oBACEC,MAAM;oBACNC,MAAM;oBACNC,UAAU;gBACZ;gBACA;oBACEF,MAAM;oBACNC,MAAM;oBACNC,UAAU;oBACVC,QAAQ;gBACV;gBACA;oBACEH,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;gBACR;gBACA;oBACED,MAAM;oBACNC,MAAM;oBACNC,UAAU;oBACVG,YAAY;gBACd;aACD;YACDD,YAAY;QACd;KACD;AACH,GAAE;AAEF,OAAO,eAAe1B;IACpB,OAAO,MAAMC,eAAe;QAAE2B,QAAQxB;IAAc;AACtD;AAEA,eAAeA,cAAa"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/generate-schema/generate-schema-builder.ts"],"sourcesContent":["/**\n * This module generates PayloadCMS collection configurations based on the Better Auth schema.\n *\n * The generated collection configs include:\n * - Users: For user management with proper auth configuration\n * - Sessions: For maintaining user sessions\n * - Accounts: For OAuth provider accounts\n * - VerificationTokens: For email verification or social sign in\n *\n * Each collection is properly formatted with:\n * - Appropriate field types (text, relationship, checkbox, etc.)\n * - Admin configuration for better UI experience\n * - Auth configuration for the Users collection\n * - Proper field relationships between collections\n *\n * Users can copy these generated collection configs to their PayloadCMS project\n * and add authentication strategies as needed.\n */\nimport type { BetterAuthOptions } from 'better-auth'\nimport { getAuthTables } from 'better-auth/db'\nimport type { CollectionConfig, Field } from 'payload'\nimport { format } from 'prettier'\n\nexport const generateSchemaBuilderStage = async ({\n BAOptions,\n code,\n}: {\n code: string\n BAOptions: BetterAuthOptions\n}) => {\n const formattedCode = await format(code, { filepath: 'schema.ts' })\n\n const { post, collections } = parseExistingSchema(formattedCode)\n\n const payloadSchemaStr = generatePayloadCollectionConfigs({\n options: BAOptions,\n collections,\n exports: post,\n })\n\n return await format(`${payloadSchemaStr}`, {\n filepath: 'schema.ts',\n })\n}\n\nfunction parseExistingSchema(code: string): {\n collections: CollectionConfig[]\n post: string\n} {\n const collections: CollectionConfig[] = []\n let post = ''\n\n // Extract collection definitions\n const collectionRegex =\n /const\\s+([A-Z][a-zA-Z0-9]*)\\s*:\\s*CollectionConfig\\s*=\\s*{[\\s\\S]*?}\\s*as\\s*const;/g\n let match\n while ((match = collectionRegex.exec(code)) !== null) {\n const collectionName = match[1]\n const collectionDef = match[0]\n\n // Extract slug\n const slugMatch = collectionDef.match(/slug:\\s*\"([^\"]+)\"/)\n const slug = slugMatch ? slugMatch[1] : collectionName.toLowerCase()\n\n // Extract useAsTitle\n const titleMatch = collectionDef.match(/useAsTitle:\\s*\"([^\"]+)\"/)\n const useAsTitle = titleMatch ? titleMatch[1] : 'id'\n\n // Extract fields\n const fieldsRegex = /fields:\\s*\\[([\\s\\S]*?)\\],/\n const fieldsMatch = collectionDef.match(fieldsRegex)\n const fields: Field[] = []\n\n if (fieldsMatch) {\n const fieldBlockRegex = /{[\\s\\S]*?},/g\n const fieldBlocks = fieldsMatch[1].match(fieldBlockRegex) || []\n\n for (const fieldBlock of fieldBlocks) {\n const nameMatch = fieldBlock.match(/name:\\s*\"([^\"]+)\"/)\n const typeMatch = fieldBlock.match(/type:\\s*\"([^\"]+)\"/)\n const requiredMatch = fieldBlock.match(/required:\\s*(true|false)/)\n const uniqueMatch = fieldBlock.match(/unique:\\s*(true|false)/)\n const relationToMatch = fieldBlock.match(/relationTo:\\s*\"([^\"]+)\"/)\n\n if (nameMatch && typeMatch) {\n const field = {\n name: nameMatch[1],\n type: typeMatch[1] as Field['type'],\n }\n\n if (requiredMatch) {\n ;(field as any).required = requiredMatch[1] === 'true'\n }\n\n if (uniqueMatch) {\n ;(field as any).unique = uniqueMatch[1] === 'true'\n }\n\n if (relationToMatch) {\n ;(field as any).relationTo = relationToMatch[1]\n }\n\n fields.push(field as Field)\n }\n }\n }\n\n // Check for timestamps\n const timestampsMatch = collectionDef.match(/timestamps:\\s*(true|false)/)\n const hasTimestamps = timestampsMatch ? timestampsMatch[1] === 'true' : false\n\n collections.push({\n slug,\n admin: {\n useAsTitle,\n },\n fields,\n ...(hasTimestamps && { timestamps: true }),\n })\n }\n\n // Extract export statement\n const exportRegex = /export\\s*{[\\s\\S]*?};/\n const exportMatch = code.match(exportRegex)\n if (exportMatch) {\n post = exportMatch[0]\n }\n\n return { collections, post }\n}\n\nfunction generatePayloadCollectionConfigs({\n options,\n collections,\n exports,\n}: {\n options: BetterAuthOptions\n collections: CollectionConfig[]\n exports: string\n}): string {\n let result = ''\n\n // add pre message and import statements\n result += `/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n * \n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n * \n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from 'payload';\n\n`\n\n // add the collections\n let collectionsStr = ''\n const tables = getAuthTables(options)\n\n // Process existing collections first\n const existingCollectionsBySlug = collections.reduce(\n (acc, collection) => {\n if (collection.slug) {\n acc[collection.slug] = collection\n }\n return acc\n },\n {} as Record<string, CollectionConfig>,\n )\n\n for (const [tableKey, table] of Object.entries(tables)) {\n const modelName = table.modelName\n const capitalized = modelName.charAt(0).toUpperCase() + modelName.slice(1)\n\n // Check if this collection already exists in the provided collections\n const existingCollection = existingCollectionsBySlug[modelName]\n\n if (existingCollection) {\n // Convert existing collection to string representation\n collectionsStr += `const ${capitalized}: CollectionConfig = ${JSON.stringify(existingCollection, null, 2).replace(/\"([^\"]+)\":/g, '$1:')} as const;\\n\\n`\n continue\n }\n\n // Create new collection if it doesn't exist\n collectionsStr += `const ${capitalized}: CollectionConfig = {\n slug: \"${modelName}\",\n`\n\n // Add admin section for better UX\n collectionsStr += ` admin: {\n useAsTitle: \"${getNameField(table.fields)}\",\n },\n`\n\n // Add auth section ONLY for users collection\n if (modelName === 'users') {\n collectionsStr += ` auth: {\n disableLocalStrategy: true,\n strategies: [],\n // Add your auth strategies here if needed\n },\n`\n }\n\n // Add fields\n collectionsStr += ` fields: [\n`\n\n for (const [fieldKey, field] of Object.entries(table.fields)) {\n const fieldName = field.fieldName || fieldKey\n // Skip id field as Payload handles it automatically\n if (fieldName === 'id') continue\n\n if (fieldName === 'createdAt' || fieldName === 'updatedAt') continue\n\n // Handle field type mapping with safer type approach\n let fieldType = mapFieldType(field.type as string, fieldName)\n const isRelationship = fieldName.endsWith('_id') || !!field.references?.model\n\n collectionsStr += ` {\n name: \"${isRelationship ? fieldName.replace('_id', '') : fieldName}\",\n`\n\n if (isRelationship) {\n collectionsStr += ` type: \"relationship\",\n relationTo: \"${field.references?.model || fieldName.replace('_id', '')}\",\n`\n } else if (fieldType === 'upload') {\n collectionsStr += ` type: \"upload\",\n relationTo: \"media\",\n`\n } else {\n collectionsStr += ` type: \"${fieldType}\",\n`\n }\n\n if (field.required) {\n collectionsStr += ` required: true,\n`\n }\n\n if (field.unique) {\n collectionsStr += ` unique: true,\n`\n }\n\n // Check if field has options and fieldType is select\n if (fieldType === 'select' && 'options' in field && Array.isArray(field.options)) {\n collectionsStr += ` options: ${JSON.stringify(field.options)},\n`\n }\n\n if (field.defaultValue !== undefined) {\n if (typeof field.defaultValue === 'string') {\n collectionsStr += ` defaultValue: \"${field.defaultValue}\",\n`\n } else if (typeof field.defaultValue === 'boolean') {\n collectionsStr += ` defaultValue: ${field.defaultValue ? 'true' : 'false'},\n`\n } else if (\n field.defaultValue &&\n typeof field.defaultValue === 'function' &&\n field.defaultValue.toString().includes('() => !1')\n ) {\n // Handle function-like default values with are false\n collectionsStr += ` defaultValue: false,\n`\n } else if (\n field.defaultValue &&\n typeof field.defaultValue === 'function' &&\n field.defaultValue.toString().includes('() => !0')\n ) {\n // Handle function-like default values with are true\n collectionsStr += ` defaultValue: true,\n`\n } else {\n collectionsStr += ` defaultValue: ${field.defaultValue},\n`\n }\n }\n\n // Add admin section for fields if needed - safely check for admin property\n if (\n 'admin' in field &&\n field.admin &&\n typeof field.admin === 'object' &&\n 'readOnly' in field.admin &&\n field.admin.readOnly\n ) {\n collectionsStr += ` admin: {\n readOnly: true,\n },\n`\n }\n\n collectionsStr += ` },\n`\n }\n\n collectionsStr += ` ],\n timestamps: true,\n} as const;\n\n`\n }\n\n // Add any collections from the input that aren't in the tables\n for (const collection of collections) {\n if (!collection.slug || tables[collection.slug]) {\n continue // Skip if no slug or already processed\n }\n\n const capitalized = collection.slug.charAt(0).toUpperCase() + collection.slug.slice(1)\n collectionsStr += `const ${capitalized}: CollectionConfig = ${JSON.stringify(collection, null, 2).replace(/\"([^\"]+)\":/g, '$1:')} as const;\\n\\n`\n }\n\n result += collectionsStr\n\n // Add export statements for all collections\n // Check if we have an existing export statement to adapt\n if (exports && exports.trim()) {\n // Parse the existing exports to get collection names\n const existingExportMatch = exports.match(/export\\s*{\\s*(.*?)\\s*}/)\n const existingCollections = existingExportMatch\n ? existingExportMatch[1].split(',').map((name) => name.trim())\n : []\n\n // Get the collection names from our tables\n const tableCollections = Object.keys(tables).map((model) => {\n return model.charAt(0).toUpperCase() + model.slice(1)\n })\n\n // Combine existing and new collections, removing duplicates\n const allCollections = [...new Set([...existingCollections, ...tableCollections])]\n\n // Create the new export statement\n result += `export { ${allCollections.join(', ')} };\n`\n } else if (Object.keys(tables).length > 0) {\n const collectionNames = Object.keys(tables).map((model) => {\n // Convert model name to PascalCase for export\n const pascalCase = model.charAt(0).toUpperCase() + model.slice(1)\n return pascalCase\n })\n\n result += `export { ${collectionNames.join(', ')} };\n`\n } else {\n result += `export {};\n`\n }\n\n return result\n}\n\n// Helper functions\nfunction mapFieldType(type: string, fieldName: string): string {\n if (fieldName.endsWith('_id')) return 'relationship'\n\n switch (type) {\n case 'boolean':\n return 'checkbox'\n case 'number':\n return 'number'\n case 'string':\n if (fieldName === 'email') return 'email'\n if (fieldName.includes('password')) return 'text'\n if (fieldName.includes('image') || fieldName.includes('avatar')) return 'upload'\n return 'text'\n case 'date':\n return 'date'\n case 'array':\n return 'array'\n default:\n return 'text'\n }\n}\n\nfunction getNameField(fields: Record<string, any>): string {\n // Try to find an appropriate field to use as title\n const nameOptions = ['name', 'title', 'label', 'email', 'username']\n\n for (const option of nameOptions) {\n if (Object.keys(fields).includes(option)) {\n return option\n }\n }\n\n // Default to first field that's not id\n const firstNonIdField = Object.keys(fields).find((k) => k !== 'id')\n return firstNonIdField || 'id'\n}\n"],"names":["getAuthTables","format","generateSchemaBuilderStage","BAOptions","code","formattedCode","filepath","post","collections","parseExistingSchema","payloadSchemaStr","generatePayloadCollectionConfigs","options","exports","collectionRegex","match","exec","collectionName","collectionDef","slugMatch","slug","toLowerCase","titleMatch","useAsTitle","fieldsRegex","fieldsMatch","fields","fieldBlockRegex","fieldBlocks","fieldBlock","nameMatch","typeMatch","requiredMatch","uniqueMatch","relationToMatch","field","name","type","required","unique","relationTo","push","timestampsMatch","hasTimestamps","admin","timestamps","exportRegex","exportMatch","result","collectionsStr","tables","existingCollectionsBySlug","reduce","acc","collection","tableKey","table","Object","entries","modelName","capitalized","charAt","toUpperCase","slice","existingCollection","JSON","stringify","replace","getNameField","fieldKey","fieldName","fieldType","mapFieldType","isRelationship","endsWith","references","model","Array","isArray","defaultValue","undefined","toString","includes","readOnly","trim","existingExportMatch","existingCollections","split","map","tableCollections","keys","allCollections","Set","join","length","collectionNames","pascalCase","nameOptions","option","firstNonIdField","find","k"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/generate-schema/get-payload-schema.ts"],"sourcesContent":["import fs from \"node:fs/promises\";\n\nexport const getPayloadSchema = async (\n\tpayloadDirPath: string,\n): Promise<string> => {\n\tlet files: string[];\n\ttry {\n\t\tfiles = await fs.readdir(payloadDirPath);\n\t} catch (error: any) {\n\t\tif (error.code === \"ENOENT\") {\n\t\t\tthrow new Error(\n\t\t\t\t`Payload directory not found at \"${payloadDirPath}\". Please run this CLI from the project root directory where the payload directory is located, otherwise specify a payload directory path in your payloadAdapter options, under schema_generation.payload_dir_path.`,\n\t\t\t);\n\t\t}\n\t\tconsole.error(error);\n\t\tthrow new Error(\n\t\t\t`Failed to access payload directory at \"${payloadDirPath}\".`,\n\t\t);\n\t}\n\n\tif (!files.includes(`schema.ts`)) return \"\";\n\ttry {\n\t\tconst schemaCode = await fs.readFile(`${payloadDirPath}/schema.ts`, \"utf8\");\n\t\treturn schemaCode;\n\t} catch (error) {\n\t\tconsole.error(error);\n\t\tthrow new Error(\n\t\t\t`PayloadAdapter: Failed to read schema.ts file from \"${payloadDirPath}\".`,\n\t\t);\n\t}\n};\n"],"names":["fs","getPayloadSchema","payloadDirPath","files","readdir","error","code","Error","console","includes","schemaCode","readFile"],"mappings":"AAAA,OAAOA,QAAQ,mBAAmB;AAElC,OAAO,MAAMC,mBAAmB,OAC/BC;IAEA,IAAIC;IACJ,IAAI;QACHA,QAAQ,MAAMH,GAAGI,OAAO,CAACF;IAC1B,EAAE,OAAOG,OAAY;QACpB,IAAIA,MAAMC,IAAI,KAAK,UAAU;YAC5B,MAAM,IAAIC,MACT,CAAC,gCAAgC,EAAEL,eAAe,mNAAmN,CAAC;QAExQ;QACAM,QAAQH,KAAK,CAACA;QACd,MAAM,IAAIE,MACT,CAAC,uCAAuC,EAAEL,eAAe,EAAE,CAAC;IAE9D;IAEA,IAAI,CAACC,MAAMM,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,OAAO;IACzC,IAAI;QACH,MAAMC,aAAa,MAAMV,GAAGW,QAAQ,CAAC,GAAGT,eAAe,UAAU,CAAC,EAAE;QACpE,OAAOQ;IACR,EAAE,OAAOL,OAAO;QACfG,QAAQH,KAAK,CAACA;QACd,MAAM,IAAIE,MACT,CAAC,oDAAoD,EAAEL,eAAe,EAAE,CAAC;IAE3E;AACD,EAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/generate-schema/index.ts"],"sourcesContent":["import fs from 'node:fs/promises'\nimport path from 'node:path'\nimport type { BetterAuthOptions } from 'better-auth'\nimport { generateSchemaBuilderStage } from './generate-schema-builder.js'\nimport { getPayloadSchema } from './get-payload-schema.js'\n\nexport const generateSchema = async (\n BAoptions: BetterAuthOptions,\n options: { outputDir: string } = {\n outputDir: './generated',\n },\n): Promise<string> => {\n const { outputDir } = options\n const existing_schema_code: string = await getPayloadSchema(outputDir)\n\n const new_schema_code = await generateSchemaBuilderStage({\n code: existing_schema_code,\n BAOptions: BAoptions,\n })\n\n const schemaPath = path.resolve(outputDir, 'schema.ts')\n await fs.writeFile(schemaPath, new_schema_code, 'utf8')\n\n return new_schema_code\n}\n"],"names":["fs","path","generateSchemaBuilderStage","getPayloadSchema","generateSchema","BAoptions","options","outputDir","existing_schema_code","new_schema_code","code","BAOptions","schemaPath","resolve","writeFile"],"mappings":"AAAA,OAAOA,QAAQ,mBAAkB;AACjC,OAAOC,UAAU,YAAW;AAE5B,SAASC,0BAA0B,QAAQ,+BAA8B;AACzE,SAASC,gBAAgB,QAAQ,0BAAyB;AAE1D,OAAO,MAAMC,iBAAiB,OAC5BC,WACAC,UAAiC;IAC/BC,WAAW;AACb,CAAC;IAED,MAAM,EAAEA,SAAS,EAAE,GAAGD;IACtB,MAAME,uBAA+B,MAAML,iBAAiBI;IAE5D,MAAME,kBAAkB,MAAMP,2BAA2B;QACvDQ,MAAMF;QACNG,WAAWN;IACb;IAEA,MAAMO,aAAaX,KAAKY,OAAO,CAACN,WAAW;IAC3C,MAAMP,GAAGc,SAAS,CAACF,YAAYH,iBAAiB;IAEhD,OAAOA;AACT,EAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/generate-schema/utils.ts"],"sourcesContent":["import path from 'node:path'\n\nexport function padding(str: string, indent = 2) {\n if (str.trim() === '') return ''\n return str\n .split('\\n')\n .map((x) => (x.length > 0 ? `${' '.repeat(indent)}${x}` : x))\n .join('\\n')\n}\n\nexport function getPayloadPath(provided_payload_dir_path?: string) {\n const base_path = process.cwd()\n\n // If no path provided, use default \"convex\" in current directory\n if (!provided_payload_dir_path) {\n return path.join(base_path, 'payload')\n }\n\n // If it's already an absolute path and exists, use it directly\n if (path.isAbsolute(provided_payload_dir_path)) {\n return provided_payload_dir_path\n }\n\n // Otherwise, treat it as relative to current directory\n return path.join(base_path, provided_payload_dir_path)\n}\n"],"names":["path","padding","str","indent","trim","split","map","x","length","repeat","join","getPayloadPath","provided_payload_dir_path","base_path","process","cwd","isAbsolute"],"mappings":"AAAA,OAAOA,UAAU,YAAW;AAE5B,OAAO,SAASC,QAAQC,GAAW,EAAEC,SAAS,CAAC;IAC7C,IAAID,IAAIE,IAAI,OAAO,IAAI,OAAO;IAC9B,OAAOF,IACJG,KAAK,CAAC,MACNC,GAAG,CAAC,CAACC,IAAOA,EAAEC,MAAM,GAAG,IAAI,GAAG,IAAIC,MAAM,CAACN,UAAUI,GAAG,GAAGA,GACzDG,IAAI,CAAC;AACV;AAEA,OAAO,SAASC,eAAeC,yBAAkC;IAC/D,MAAMC,YAAYC,QAAQC,GAAG;IAE7B,iEAAiE;IACjE,IAAI,CAACH,2BAA2B;QAC9B,OAAOZ,KAAKU,IAAI,CAACG,WAAW;IAC9B;IAEA,+DAA+D;IAC/D,IAAIb,KAAKgB,UAAU,CAACJ,4BAA4B;QAC9C,OAAOA;IACT;IAEA,uDAAuD;IACvD,OAAOZ,KAAKU,IAAI,CAACG,WAAWD;AAC9B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adapter/index.ts"],"sourcesContent":["import { BetterAuthError } from 'better-auth'\nimport type { Adapter, BetterAuthOptions, Where } from 'better-auth'\nimport { generateSchema } from './generate-schema'\nimport { createTransform } from './transform'\nimport type { PayloadAdapter } from './types'\n\nexport const BETTER_AUTH_CONTEXT_KEY = 'payload-db-adapter'\nconst PAYLOAD_QUERY_DEPTH = 2\n\nconst payloadAdapter: PayloadAdapter = (payloadClient, config = {}) => {\n function debugLog(message: any[]) {\n if (config.enableDebugLogs) {\n console.log('[payload-db-adapter]', ...message)\n }\n }\n\n function errorLog(message: any[]) {\n console.error(`[payload-db-adapter]`, ...message)\n }\n\n function collectionSlugError(model: string) {\n throw new BetterAuthError(\n `Collection ${model} does not exist. Please check your payload collection slugs match the better auth schema`,\n )\n }\n\n const createAdapterContext = (data: Record<string, any>) => ({\n [BETTER_AUTH_CONTEXT_KEY]: { ...data },\n })\n\n async function resolvePayloadClient() {\n const payload =\n typeof payloadClient === 'function' ? await payloadClient() : await payloadClient\n if (!payload.config?.custom?.hasBetterAuthPlugin) {\n throw new BetterAuthError(\n `Payload is not configured with the better-auth plugin. Please add the plugin to your payload config.`,\n )\n }\n return payload\n }\n\n return (options: BetterAuthOptions): Adapter => {\n const {\n transformInput,\n transformOutput,\n convertWhereClause,\n convertSelect,\n convertSort,\n getModelName,\n singleIdQuery,\n multipleIdsQuery,\n } = createTransform(options, config.enableDebugLogs ?? false)\n\n return {\n id: 'payload',\n async create<T extends Record<string, any>, R = T>(data: {\n model: string\n data: T\n select?: string[]\n }): Promise<R> {\n const start = Date.now()\n const { model, data: values, select } = data\n const collectionSlug = getModelName(model)\n const transformed = transformInput(values, model, 'create')\n debugLog(['create', { collectionSlug, transformed, select }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const result = await payload.create({\n collection: collectionSlug,\n data: transformed,\n select: convertSelect(model, select),\n context: createAdapterContext({ model, operation: 'create' }),\n depth: PAYLOAD_QUERY_DEPTH,\n })\n const transformedResult = transformOutput(result)\n debugLog([\n 'create result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as R\n } catch (error) {\n errorLog(['Error in creating:', model, error])\n return null as R\n }\n },\n async findOne<T>(data: {\n model: string\n where: Where[]\n select?: string[]\n }): Promise<T | null> {\n const start = Date.now()\n const { model, where, select } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['findOne', { collectionSlug }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const id = singleIdQuery(payloadWhere)\n let result: Record<string, any> | null = null\n if (id) {\n debugLog(['findOneByID', { collectionSlug, id }])\n const doc = await payload.findByID({\n collection: collectionSlug,\n id,\n select: convertSelect(model, select),\n context: createAdapterContext({\n model,\n operation: 'findOneByID',\n }),\n depth: PAYLOAD_QUERY_DEPTH,\n })\n result = doc\n } else {\n debugLog(['findOneByWhere', { collectionSlug, payloadWhere }])\n const docs = await payload.find({\n collection: collectionSlug,\n where: payloadWhere,\n select: convertSelect(model, select),\n context: createAdapterContext({\n model,\n operation: 'findOneByWhere',\n }),\n depth: PAYLOAD_QUERY_DEPTH,\n limit: 1,\n })\n result = docs.docs[0]\n }\n const transformedResult = result ? transformOutput(result) : null\n debugLog([\n 'findOne result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as T\n } catch (error) {\n errorLog(['Error in findOne: ', error])\n return null\n }\n },\n async findMany<T>(data: {\n model: string\n where?: Where[]\n limit?: number\n sortBy?: {\n field: string\n direction: 'asc' | 'desc'\n }\n offset?: number\n }): Promise<T[]> {\n const start = Date.now()\n const { model, where, sortBy, limit, offset } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['findMany', { collectionSlug, sortBy, limit, offset }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n let result: {\n docs: Record<string, any>[]\n totalDocs: number\n } | null = null\n const multipleIds = where && multipleIdsQuery(payloadWhere)\n const singleId = where && singleIdQuery(payloadWhere)\n if (multipleIds && multipleIds.length > 0) {\n debugLog(['findManyByMultipleIDs', { collectionSlug, ids: multipleIds }])\n const res = {\n docs: [] as Record<string, any>[],\n totalDocs: 0,\n }\n for (const id of multipleIds) {\n const doc = await payload.findByID({\n collection: collectionSlug,\n id,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'findManyByMultipleIDs',\n }),\n })\n res.docs.push(doc)\n res.totalDocs++\n }\n result = { docs: res.docs, totalDocs: res.totalDocs }\n } else if (singleId) {\n debugLog(['findManyBySingleID', { collectionSlug, id: singleId }])\n const doc = await payload.findByID({\n collection: collectionSlug,\n id: singleId,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'findManyBySingleID',\n }),\n })\n result = { docs: doc ? [doc] : [], totalDocs: doc ? 1 : 0 }\n } else {\n debugLog(['findManyByWhere', { collectionSlug, payloadWhere }])\n const res = await payload.find({\n collection: collectionSlug,\n where: payloadWhere,\n limit: limit,\n page: offset ? Math.floor(offset / (limit || 10)) + 1 : 1,\n sort: convertSort(model, sortBy),\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'findManyByWhere',\n }),\n })\n result = { docs: res.docs, totalDocs: res.totalDocs }\n }\n const transformedResult = result?.docs.map((doc) => transformOutput(doc)) ?? null\n debugLog([\n 'findMany result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as T[]\n } catch (error) {\n errorLog(['Error in findMany: ', error])\n return [] as T[]\n }\n },\n async update<T>(data: {\n model: string\n where: Where[]\n update: Record<string, unknown>\n }): Promise<T | null> {\n const start = Date.now()\n const { model, where, update } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['update', { collectionSlug, update }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n let result: Record<string, any> | null = null\n const id = singleIdQuery(payloadWhere)\n if (id) {\n debugLog(['updateByID', { collectionSlug, id }])\n const doc = await payload.update({\n collection: collectionSlug,\n id,\n data: update,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'updateByID' }),\n })\n result = doc\n } else {\n debugLog(['updateByWhere', { collectionSlug, payloadWhere }])\n const doc = await payload.update({\n collection: collectionSlug,\n where: payloadWhere,\n data: update,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'updateByWhere',\n }),\n })\n result = doc.docs[0]\n }\n const transformedResult = transformOutput(result) ?? null\n debugLog([\n 'update result',\n {\n collectionSlug,\n transformedResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return transformedResult as T\n } catch (error) {\n errorLog(['Error in update: ', error])\n return null\n }\n },\n async updateMany(data: {\n model: string\n where: Where[]\n update: Record<string, unknown>\n }): Promise<number> {\n const start = Date.now()\n const { model, where, update } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['updateMany', { collectionSlug, payloadWhere, update }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const { docs: updateResult } = await payload.update({\n collection: collectionSlug,\n where: payloadWhere,\n data: update,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'updateMany' }),\n })\n debugLog([\n 'updateMany result',\n {\n collectionSlug,\n result: updateResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return updateResult?.length || 0\n } catch (error) {\n errorLog(['Error in updateMany: ', error])\n return 0\n }\n },\n async delete(data: { model: string; where: Where[] }): Promise<void> {\n const start = Date.now()\n const { model, where } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['delete', { collectionSlug }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n let deleteResult: {\n doc: Record<string, any> | null\n errors: any[]\n } | null = null\n const id = singleIdQuery(payloadWhere)\n if (id) {\n debugLog(['deleteByID', { collectionSlug, id }])\n const doc = await payload.delete({\n collection: collectionSlug,\n id,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'deleteByID' }),\n })\n deleteResult = { doc, errors: [] }\n } else {\n debugLog(['deleteByWhere', { collectionSlug, payloadWhere }])\n const doc = await payload.delete({\n collection: collectionSlug,\n where: payloadWhere,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({\n model,\n operation: 'deleteByWhere',\n }),\n })\n deleteResult = { doc: doc.docs[0], errors: [] }\n }\n debugLog([\n 'delete result',\n {\n collectionSlug,\n result: deleteResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return\n } catch (error) {\n errorLog(['Error in delete: ', error])\n return\n }\n },\n async deleteMany(data: { model: string; where: Where[] }): Promise<number> {\n const start = Date.now()\n const { model, where } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['deleteMany', { collectionSlug, payloadWhere }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const deleteResult = await payload.delete({\n collection: collectionSlug,\n where: payloadWhere,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'deleteMany' }),\n })\n debugLog([\n 'deleteMany result',\n {\n collectionSlug,\n result: deleteResult,\n duration: `${Date.now() - start}ms`,\n },\n ])\n return deleteResult.docs.length\n } catch (error) {\n errorLog(['Error in deleteMany: ', error])\n return 0\n }\n },\n async count(data: { model: string; where?: Where[] }): Promise<number> {\n const start = Date.now()\n const { model, where } = data\n const collectionSlug = getModelName(model)\n const payloadWhere = convertWhereClause(model, where)\n debugLog(['count', { collectionSlug, payloadWhere }])\n try {\n const payload = await resolvePayloadClient()\n if (!collectionSlug || !(collectionSlug in payload.collections)) {\n collectionSlugError(model)\n }\n const result = await payload.count({\n collection: collectionSlug,\n where: payloadWhere,\n depth: PAYLOAD_QUERY_DEPTH,\n context: createAdapterContext({ model, operation: 'count' }),\n })\n debugLog([\n 'count result',\n {\n collectionSlug,\n result: { totalDocs: result.totalDocs },\n duration: `${Date.now() - start}ms`,\n },\n ])\n return result.totalDocs\n } catch (error) {\n errorLog(['Error in count: ', error])\n return 0\n }\n },\n createSchema: async (options, file) => {\n const schemaCode = await generateSchema(options)\n\n return {\n code: schemaCode,\n path: file || 'schema.ts',\n append: false,\n overwrite: true,\n }\n },\n options: {\n enableDebugLogs: config.enableDebugLogs,\n },\n }\n }\n}\n\nexport { generateSchema, payloadAdapter }\n"],"names":["BetterAuthError","generateSchema","createTransform","BETTER_AUTH_CONTEXT_KEY","PAYLOAD_QUERY_DEPTH","payloadAdapter","payloadClient","config","debugLog","message","enableDebugLogs","console","log","errorLog","error","collectionSlugError","model","createAdapterContext","data","resolvePayloadClient","payload","custom","hasBetterAuthPlugin","options","transformInput","transformOutput","convertWhereClause","convertSelect","convertSort","getModelName","singleIdQuery","multipleIdsQuery","id","create","start","Date","now","values","select","collectionSlug","transformed","collections","result","collection","context","operation","depth","transformedResult","duration","findOne","where","payloadWhere","doc","findByID","docs","find","limit","findMany","sortBy","offset","multipleIds","singleId","length","ids","res","totalDocs","push","page","Math","floor","sort","map","update","updateMany","updateResult","delete","deleteResult","errors","deleteMany","count","createSchema","file","schemaCode","code","path","append","overwrite"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/test/adapter.test.ts"],"sourcesContent":["import { betterAuth, type BetterAuthOptions } from 'better-auth'\nimport { afterAll, beforeAll, describe, expect, it, test } from 'vitest'\nimport { payloadAdapter } from 'payload-auth/better-auth/adapter'\nimport { runAdapterTest } from './better-auth-adapter-test.js'\nimport { getPayload } from '../dev/index.js'\nimport { BasePayload } from 'payload'\n\ndescribe('Handle Payload Adapter', async () => {\n it('should successfully add the Payload Adapter', async () => {\n const payload = await getPayload()\n\n const auth = betterAuth({\n database: payloadAdapter(payload),\n })\n\n expect(auth).toBeDefined()\n expect(auth.options.database).toBeDefined()\n expect(auth.options.database({}).id).toEqual('payload')\n })\n})\n\nfunction deleteAll(payload: BasePayload) {\n beforeAll(async () => {\n // delete all users and sessions\n const res = await payload.delete({\n collection: 'user',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('before users: ', res.docs.length, res.errors)\n const res2 = await payload.delete({\n collection: 'session',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('before sessions: ', res2.docs.length, res2.errors)\n const res3 = await payload.delete({\n collection: 'account',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('before accounts: ', res3.docs.length, res3.errors)\n const res4 = await payload.delete({\n collection: 'verification',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('before verification: ', res4.docs.length, res4.errors)\n })\n afterAll(async () => {\n const res2 = await payload.delete({\n collection: 'session',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('after sessions: ', res2.docs.length, res2.errors)\n const res3 = await payload.delete({\n collection: 'account',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('after accounts: ', res3.docs.length, res3.errors)\n const res = await payload.delete({\n collection: 'user',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('after users: ', res.docs.length, res.errors)\n\n const res4 = await payload.delete({\n collection: 'verification',\n where: {\n id: {\n exists: true,\n },\n },\n })\n console.log('after verification: ', res4.docs.length, res4.errors)\n })\n}\n\ndescribe('Run BetterAuth Adapter tests', async () => {\n const payload = await getPayload()\n\n deleteAll(payload)\n\n const adapter = payloadAdapter(payload, {\n enableDebugLogs: true,\n })\n\n await runAdapterTest({\n getAdapter: async (\n customOptions = {\n session: {\n fields: {\n userId: 'user',\n },\n },\n account: {\n fields: {\n userId: 'user',\n },\n },\n },\n ) => {\n return adapter({ ...customOptions })\n },\n skipGenerateIdTest: true,\n })\n test('should find many with offset and limit', async () => {\n // At this point, `user` contains 8 rows.\n // offset of 2 returns 6 rows\n // limit of 2 returns 2 rows\n const res = await adapter({}).findMany({\n model: 'user',\n offset: 2,\n limit: 2,\n })\n expect(res.length).toBe(2)\n })\n})\n\ndescribe('Authentication Flow Tests', async () => {\n const testUser = {\n email: 'test-email@email.com',\n password: 'password12345',\n name: 'Test Name',\n }\n const payload = await getPayload()\n\n deleteAll(payload)\n\n const auth = betterAuth({\n database: payloadAdapter(payload, {\n enableDebugLogs: true,\n }),\n emailAndPassword: {\n enabled: true,\n },\n session: {\n fields: {\n userId: 'user',\n },\n },\n account: {\n fields: {\n userId: 'user',\n },\n },\n })\n\n it('should successfully sign up a new user', async () => {\n const user = await auth.api.signUpEmail({\n body: {\n email: testUser.email,\n password: testUser.password,\n name: testUser.name,\n },\n })\n expect(user).toBeDefined()\n })\n\n it('should successfully sign in an existing user', async () => {\n await new Promise((resolve) => setTimeout(resolve, 2000))\n const user = await auth.api.signInEmail({\n body: {\n email: testUser.email,\n password: testUser.password,\n },\n })\n\n expect(user.user).toBeDefined()\n })\n})\n"],"names":["betterAuth","afterAll","beforeAll","describe","expect","it","test","payloadAdapter","runAdapterTest","getPayload","payload","auth","database","toBeDefined","options","id","toEqual","deleteAll","res","delete","collection","where","exists","console","log","docs","length","errors","res2","res3","res4","adapter","enableDebugLogs","getAdapter","customOptions","session","fields","userId","account","skipGenerateIdTest","findMany","model","offset","limit","toBe","testUser","email","password","name","emailAndPassword","enabled","user","api","signUpEmail","body","Promise","resolve","setTimeout","signInEmail"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/test/better-auth-adapter-test.ts"],"sourcesContent":["import { expect, test } from 'vitest'\nimport type { Adapter, BetterAuthOptions } from 'better-auth'\nimport { User } from 'better-auth'\nimport { generateId } from 'better-auth'\n\ninterface AdapterTestOptions {\n getAdapter: (customOptions?: Omit<BetterAuthOptions, 'database'>) => Promise<Adapter>\n skipGenerateIdTest?: boolean\n}\n\nexport async function runAdapterTest(opts: AdapterTestOptions) {\n const adapter = await opts.getAdapter()\n const user = {\n id: '1',\n name: 'user',\n email: 'user@email.com',\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n }\n\n test('create model', async () => {\n const res = await adapter.create({\n model: 'user',\n data: user,\n })\n expect({\n name: res.name,\n email: res.email,\n }).toEqual({\n name: user.name,\n email: user.email,\n })\n user.id = res.id\n })\n\n test('find model', async () => {\n const res = await adapter.findOne<User>({\n model: 'user',\n where: [\n {\n field: 'id',\n value: user.id,\n },\n ],\n })\n expect({\n name: res?.name,\n email: res?.email,\n }).toEqual({\n name: user.name,\n email: user.email,\n })\n })\n\n test('find model without id', async () => {\n const res = await adapter.findOne<User>({\n model: 'user',\n where: [\n {\n field: 'email',\n value: user.email,\n },\n ],\n })\n expect({\n name: res?.name,\n email: res?.email,\n }).toEqual({\n name: user.name,\n email: user.email,\n })\n })\n\n test('find model with select', async () => {\n const res = await adapter.findOne({\n model: 'user',\n where: [\n {\n field: 'id',\n value: user.id,\n },\n ],\n select: ['email'],\n })\n expect(res).toEqual({ id: user.id, email: user.email })\n })\n\n test('update model', async () => {\n const newEmail = 'updated@email.com'\n\n const res = await adapter.update<User>({\n model: 'user',\n where: [\n {\n field: 'id',\n value: user.id,\n },\n ],\n update: {\n email: newEmail,\n },\n })\n expect(res).toMatchObject({\n email: newEmail,\n name: user.name,\n })\n })\n\n test('should find many', async () => {\n const res = await adapter.findMany({\n model: 'user',\n })\n expect(res.length).toBe(1)\n })\n\n test('should find many with where', async () => {\n const user = await adapter.create<User>({\n model: 'user',\n data: {\n id: '2',\n name: 'user2',\n email: 'test@email.com',\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n },\n })\n const res = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'id',\n value: user.id,\n },\n ],\n })\n expect(res.length).toBe(1)\n })\n\n test('should find many with operators', async () => {\n const newUser = await adapter.create<User>({\n model: 'user',\n data: {\n id: '3',\n name: 'user',\n email: 'test-email2@email.com',\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n },\n })\n const res = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'id',\n operator: 'in',\n value: [user.id, newUser.id],\n },\n ],\n })\n expect(res.length).toBe(2)\n })\n\n test('should work with reference fields', async () => {\n let token: string | null = null\n const user = await adapter.create<{ id: string } & Record<string, any>>({\n model: 'user',\n data: {\n id: '4',\n name: 'user',\n email: 'my-email@email.com',\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n },\n })\n const session = await adapter.create({\n model: 'session',\n data: {\n id: '1',\n token: generateId(),\n createdAt: new Date(),\n updatedAt: new Date(),\n userId: user.id,\n expiresAt: new Date(),\n },\n })\n token = session.token\n const res = await adapter.findOne({\n model: 'session',\n where: [\n {\n field: 'userId',\n value: user.id,\n },\n ],\n })\n const resToken = await adapter.findOne({\n model: 'session',\n where: [\n {\n field: 'token',\n value: token,\n },\n ],\n })\n expect(res).toMatchObject({\n userId: user.id,\n })\n expect(resToken).toMatchObject({\n userId: user.id,\n })\n })\n\n test('should find many with sortBy', async () => {\n await adapter.create({\n model: 'user',\n data: {\n id: '5',\n name: 'a',\n email: 'a@email.com',\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n },\n })\n const res = await adapter.findMany<User>({\n model: 'user',\n sortBy: {\n field: 'name',\n direction: 'asc',\n },\n })\n expect(res[0].name).toBe('a')\n\n const res2 = await adapter.findMany<User>({\n model: 'user',\n sortBy: {\n field: 'name',\n direction: 'desc',\n },\n })\n\n expect(res2[res2.length - 1].name).toBe('a')\n })\n\n test('should find many with limit', async () => {\n const res = await adapter.findMany({\n model: 'user',\n limit: 1,\n })\n expect(res.length).toBe(1)\n })\n\n test('should update with multiple where', async () => {\n await adapter.updateMany({\n model: 'user',\n where: [\n {\n field: 'name',\n value: user.name,\n },\n {\n field: 'email',\n value: user.email,\n },\n ],\n update: {\n email: 'updated@email.com',\n },\n })\n const updatedUser = await adapter.findOne<User>({\n model: 'user',\n where: [\n {\n field: 'email',\n value: 'updated@email.com',\n },\n ],\n })\n expect(updatedUser).toMatchObject({\n name: user.name,\n email: 'updated@email.com',\n })\n })\n\n test('delete model', async () => {\n await adapter.delete({\n model: 'user',\n where: [\n {\n field: 'id',\n value: user.id,\n },\n ],\n })\n const findRes = await adapter.findOne({\n model: 'user',\n where: [\n {\n field: 'id',\n value: user.id,\n },\n ],\n })\n expect(findRes).toBeNull()\n })\n\n test('should delete many', async () => {\n for (const id of ['to-be-delete1', 'to-be-delete2', 'to-be-delete3']) {\n await adapter.create({\n model: 'user',\n data: {\n id,\n name: 'to-be-deleted',\n email: `email@test-${id}.com`,\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n },\n })\n }\n const findResFirst = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'name',\n value: 'to-be-deleted',\n },\n ],\n })\n expect(findResFirst.length).toBe(3)\n await adapter.deleteMany({\n model: 'user',\n where: [\n {\n field: 'name',\n value: 'to-be-deleted',\n },\n ],\n })\n const findRes = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'name',\n value: 'to-be-deleted',\n },\n ],\n })\n expect(findRes.length).toBe(0)\n })\n\n test(\"shouldn't throw on delete record not found\", async () => {\n await adapter.delete({\n model: 'user',\n where: [\n {\n field: 'id',\n value: '5',\n },\n ],\n })\n })\n\n test(\"shouldn't throw on record not found\", async () => {\n const res = await adapter.findOne({\n model: 'user',\n where: [\n {\n field: 'id',\n value: '5',\n },\n ],\n })\n expect(res).toBeNull()\n })\n\n test('should find many with contains operator', async () => {\n const res = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'name',\n operator: 'contains',\n value: 'user2',\n },\n ],\n })\n expect(res.length).toBe(1)\n })\n\n test('should search users with startsWith', async () => {\n const res = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'name',\n operator: 'starts_with',\n value: 'us',\n },\n ],\n })\n expect(res.length).toBe(3)\n })\n\n test('should search users with endsWith', async () => {\n const res = await adapter.findMany({\n model: 'user',\n where: [\n {\n field: 'name',\n operator: 'ends_with',\n value: 'er2',\n },\n ],\n })\n expect(res.length).toBe(1)\n })\n\n test.skipIf(opts.skipGenerateIdTest)('should prefer generateId if provided', async () => {\n const customAdapter = await opts.getAdapter({\n advanced: {\n generateId: () => 'mocked-id',\n },\n })\n\n const res = await customAdapter.create({\n model: 'user',\n data: {\n id: '1',\n name: 'user4',\n email: 'user4@email.com',\n emailVerified: true,\n createdAt: new Date(),\n updatedAt: new Date(),\n },\n })\n\n expect(res.id).toBe('mocked-id')\n })\n}\n"],"names":["expect","test","generateId","runAdapterTest","opts","adapter","getAdapter","user","id","name","email","emailVerified","createdAt","Date","updatedAt","res","create","model","data","toEqual","findOne","where","field","value","select","newEmail","update","toMatchObject","findMany","length","toBe","newUser","operator","token","session","userId","expiresAt","resToken","sortBy","direction","res2","limit","updateMany","updatedUser","delete","findRes","toBeNull","findResFirst","deleteMany","skipIf","skipGenerateIdTest","customAdapter","advanced"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/test/schema.test.ts"],"sourcesContent":["import { describe, expect, it, test } from 'vitest'\nimport { format } from 'prettier'\nimport { getPayloadPath } from '../generate-schema/utils'\nimport { generateSchema } from '../generate-schema'\n\nconst PAYLOAD_TEST_DIR_PATH = getPayloadPath('./test/test_payload1')\nconst PAYLOAD_TEST_DIR_PATH2 = getPayloadPath('./test/test_payload2')\nconst PAYLOAD_TEST_DIR_PATH3 = getPayloadPath('./test/test_payload3')\n\ndescribe(`Handle schema generation`, async () => {\n it('should generate the correct schema with existing schema', async () => {\n const generate_schema = await generateSchema(\n {\n plugins: [\n {\n schema: {\n testTable: {\n fields: {\n hello: {\n type: 'boolean',\n required: false,\n },\n hello2: {\n type: 'string',\n required: true,\n },\n },\n },\n },\n id: 'test',\n },\n ],\n },\n {\n outputDir: PAYLOAD_TEST_DIR_PATH,\n },\n )\n\n // console.log(generate_schema);\n\n const hard_coded_schema = await format(\n `/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n *\n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n *\n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from \"payload\";\n\nconst User: CollectionConfig = {\n slug: \"user\",\n admin: {\n useAsTitle: \"name\",\n },\n fields: [\n {\n name: \"name\",\n type: \"text\",\n required: true,\n },\n {\n name: \"email\",\n type: \"email\",\n required: true,\n unique: true,\n },\n {\n name: \"emailVerified\",\n type: \"checkbox\",\n required: true,\n },\n {\n name: \"image\",\n type: \"upload\",\n relationTo: \"media\",\n },\n ],\n timestamps: true,\n} as const;\n\nconst Session: CollectionConfig = {\n slug: \"session\",\n admin: {\n useAsTitle: \"expiresAt\",\n },\n fields: [\n {\n name: \"expiresAt\",\n type: \"date\",\n required: true,\n },\n {\n name: \"token\",\n type: \"text\",\n required: true,\n unique: true,\n },\n {\n name: \"ipAddress\",\n type: \"text\",\n },\n {\n name: \"userAgent\",\n type: \"text\",\n },\n {\n name: \"userId\",\n type: \"relationship\",\n required: true,\n relationTo: \"user\",\n },\n ],\n timestamps: true,\n} as const;\n\nconst Account: CollectionConfig = {\n slug: \"account\",\n admin: {\n useAsTitle: \"accountId\",\n },\n fields: [\n {\n name: \"accountId\",\n type: \"text\",\n required: true,\n },\n {\n name: \"providerId\",\n type: \"text\",\n required: true,\n },\n {\n name: \"userId\",\n type: \"relationship\",\n required: true,\n relationTo: \"user\",\n },\n {\n name: \"accessToken\",\n type: \"text\",\n },\n {\n name: \"refreshToken\",\n type: \"text\",\n },\n {\n name: \"idToken\",\n type: \"text\",\n },\n {\n name: \"accessTokenExpiresAt\",\n type: \"date\",\n },\n {\n name: \"refreshTokenExpiresAt\",\n type: \"date\",\n },\n {\n name: \"scope\",\n type: \"text\",\n },\n {\n name: \"password\",\n type: \"text\",\n },\n ],\n timestamps: true,\n} as const;\n\nconst Verification: CollectionConfig = {\n slug: \"verification\",\n admin: {\n useAsTitle: \"identifier\",\n },\n fields: [\n {\n name: \"identifier\",\n type: \"text\",\n required: true,\n },\n {\n name: \"value\",\n type: \"text\",\n required: true,\n },\n {\n name: \"expiresAt\",\n type: \"date\",\n required: true,\n },\n ],\n timestamps: true,\n} as const;\n\nconst TestTable: CollectionConfig = {\n slug: \"testTable\",\n admin: {\n useAsTitle: \"hello\",\n },\n fields: [\n {\n name: \"hello\",\n type: \"checkbox\",\n },\n {\n name: \"hello2\",\n type: \"text\",\n required: true,\n },\n ],\n timestamps: true,\n} as const;\n\nexport { User, Session, Account, Verification, TestTable };\n\n`,\n { filepath: 'schema.ts' },\n )\n\n // if (generate_schema !== hard_coded_schema) {\n // console.log(`\\n\\n\\n--------------------------------- Generated:`);\n // console.log(generate_schema);\n // console.log(`--------------------------------- Hard-coded:`);\n // console.log(hard_coded_schema);\n // console.log(`---------------------------------\\n\\n\\n`);\n // }\n expect(generate_schema).toEqual(hard_coded_schema)\n })\n\n // it(\"should generate the correct schema based on multiple plugins\", async () => {\n // const generate_schema = await generateSchema(\n // {\n // plugins: [\n // {\n // schema: {\n // user: {\n // fields: {},\n // },\n // admins: {\n // fields: {},\n // },\n // },\n // id: \"test\",\n // },\n // ],\n // },\n // {\n // payload_dir_path: PAYLOAD_TEST_DIR_PATH2,\n // }\n // );\n\n // const hard_coded_schema = await format(\n // `/**\n // * EXAMPLE COLLECTIONS FOR BETTER AUTH\n // *\n // * Below is what your Payload collections should look like.\n // * Please copy these to your actual collection configs.\n // * Make sure to add an authStrategy for the users collection if there is one.\n // *\n // * Example auth strategy:\n // * auth: {\n // * disableLocalStrategy: true,\n // * strategies: [\n // * betterAuthStrategy(),\n // * // Add other strategies as needed\n // * ],\n // * },\n // */\n // import type { CollectionConfig } from \"payload\";\n\n // const User: CollectionConfig = {\n // slug: \"user\",\n // admin: {\n // useAsTitle: \"name\",\n // },\n // fields: [\n // {\n // name: \"name\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"email\",\n // type: \"email\",\n // required: true,\n // unique: true,\n // },\n // {\n // name: \"emailVerified\",\n // type: \"checkbox\",\n // required: true,\n // defaultValue: false,\n // },\n // {\n // name: \"image\",\n // type: \"upload\",\n // relationTo: \"media\",\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Session: CollectionConfig = {\n // slug: \"session\",\n // admin: {\n // useAsTitle: \"expiresAt\",\n // },\n // fields: [\n // {\n // name: \"expiresAt\",\n // type: \"date\",\n // required: true,\n // },\n // {\n // name: \"token\",\n // type: \"text\",\n // required: true,\n // unique: true,\n // },\n // {\n // name: \"ipAddress\",\n // type: \"text\",\n // },\n // {\n // name: \"userAgent\",\n // type: \"text\",\n // },\n // {\n // name: \"userId\",\n // type: \"relationship\",\n // relationTo: \"user\",\n // required: true,\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Account: CollectionConfig = {\n // slug: \"account\",\n // admin: {\n // useAsTitle: \"accountId\",\n // },\n // fields: [\n // {\n // name: \"accountId\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"providerId\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"userId\",\n // type: \"relationship\",\n // relationTo: \"user\",\n // required: true,\n // },\n // {\n // name: \"accessToken\",\n // type: \"text\",\n // },\n // {\n // name: \"refreshToken\",\n // type: \"text\",\n // },\n // {\n // name: \"idToken\",\n // type: \"text\",\n // },\n // {\n // name: \"accessTokenExpiresAt\",\n // type: \"date\",\n // },\n // {\n // name: \"refreshTokenExpiresAt\",\n // type: \"date\",\n // },\n // {\n // name: \"scope\",\n // type: \"text\",\n // },\n // {\n // name: \"password\",\n // type: \"text\",\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Verification: CollectionConfig = {\n // slug: \"verification\",\n // admin: {\n // useAsTitle: \"identifier\",\n // },\n // fields: [\n // {\n // name: \"identifier\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"value\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"expiresAt\",\n // type: \"date\",\n // required: true,\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Admins: CollectionConfig = {\n // slug: \"admins\",\n // admin: {\n // useAsTitle: \"id\",\n // },\n // fields: [],\n // timestamps: true,\n // } as const;\n\n // export { User, Session, Account, Verification, Admins };\n // `,\n // { filepath: \"schema.ts\" }\n // );\n\n // if (generate_schema !== hard_coded_schema) {\n // console.log(`\\n\\n\\n--------------------------------- Generated:`);\n // console.log(generate_schema);\n // console.log(`--------------------------------- Hard-coded:`);\n // console.log(hard_coded_schema);\n // console.log(`---------------------------------\\n\\n\\n`);\n // }\n\n // expect(generate_schema).toBe(hard_coded_schema);\n // });\n\n // it(`should generate the correct schema based on multiple different field types`, async () => {\n // const generate_schema = await generateSchema(\n // {\n // plugins: [\n // {\n // id: \"admin\",\n // schema: {\n // admin: {\n // fields: {\n // name: {\n // type: \"string\",\n // required: true,\n // },\n // id: {\n // type: \"string\",\n // required: true,\n // },\n // isAdmin: {\n // type: \"boolean\",\n // required: true,\n // },\n // status: {\n // type: \"string\",\n // required: false,\n // },\n // date: {\n // type: \"date\",\n // },\n // number: {\n // type: \"number\",\n // },\n // str_array: {\n // type: \"string[]\",\n // },\n // num_array: {\n // type: \"number[]\",\n // },\n // },\n // },\n // },\n // },\n // ],\n // },\n // {\n // payload_dir_path: PAYLOAD_TEST_DIR_PATH3,\n // }\n // );\n\n // const hard_coded_schema = await format(\n // `/**\n // * EXAMPLE COLLECTIONS FOR BETTER AUTH\n // *\n // * Below is what your Payload collections should look like.\n // * Please copy these to your actual collection configs.\n // * Make sure to add an authStrategy for the users collection if there is one.\n // *\n // * Example auth strategy:\n // * auth: {\n // * disableLocalStrategy: true,\n // * strategies: [\n // * betterAuthStrategy(),\n // * // Add other strategies as needed\n // * ],\n // * },\n // */\n // import type { CollectionConfig } from \"payload\";\n\n // const User: CollectionConfig = {\n // slug: \"user\",\n // admin: {\n // useAsTitle: \"name\",\n // },\n // fields: [\n // {\n // name: \"name\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"email\",\n // type: \"email\",\n // required: true,\n // unique: true,\n // },\n // {\n // name: \"emailVerified\",\n // type: \"checkbox\",\n // required: true,\n // defaultValue: false,\n // },\n // {\n // name: \"image\",\n // type: \"upload\",\n // relationTo: \"media\",\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Session: CollectionConfig = {\n // slug: \"session\",\n // admin: {\n // useAsTitle: \"expiresAt\",\n // },\n // fields: [\n // {\n // name: \"expiresAt\",\n // type: \"date\",\n // required: true,\n // },\n // {\n // name: \"token\",\n // type: \"text\",\n // required: true,\n // unique: true,\n // },\n // {\n // name: \"ipAddress\",\n // type: \"text\",\n // },\n // {\n // name: \"userAgent\",\n // type: \"text\",\n // },\n // {\n // name: \"userId\",\n // type: \"relationship\",\n // relationTo: \"user\",\n // required: true,\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Account: CollectionConfig = {\n // slug: \"account\",\n // admin: {\n // useAsTitle: \"accountId\",\n // },\n // fields: [\n // {\n // name: \"accountId\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"providerId\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"userId\",\n // type: \"relationship\",\n // relationTo: \"user\",\n // required: true,\n // },\n // {\n // name: \"accessToken\",\n // type: \"text\",\n // },\n // {\n // name: \"refreshToken\",\n // type: \"text\",\n // },\n // {\n // name: \"idToken\",\n // type: \"text\",\n // },\n // {\n // name: \"accessTokenExpiresAt\",\n // type: \"date\",\n // },\n // {\n // name: \"refreshTokenExpiresAt\",\n // type: \"date\",\n // },\n // {\n // name: \"scope\",\n // type: \"text\",\n // },\n // {\n // name: \"password\",\n // type: \"text\",\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Verification: CollectionConfig = {\n // slug: \"verification\",\n // admin: {\n // useAsTitle: \"identifier\",\n // },\n // fields: [\n // {\n // name: \"identifier\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"value\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"expiresAt\",\n // type: \"date\",\n // required: true,\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // const Admin: CollectionConfig = {\n // slug: \"admin\",\n // admin: {\n // useAsTitle: \"name\",\n // },\n // fields: [\n // {\n // name: \"name\",\n // type: \"text\",\n // required: true,\n // },\n // {\n // name: \"isAdmin\",\n // type: \"checkbox\",\n // required: true,\n // },\n // {\n // name: \"status\",\n // type: \"text\",\n // },\n // {\n // name: \"date\",\n // type: \"date\",\n // },\n // {\n // name: \"number\",\n // type: \"number\",\n // },\n // {\n // name: \"str_array\",\n // type: \"text\",\n // },\n // {\n // name: \"num_array\",\n // type: \"text\",\n // },\n // ],\n // timestamps: true,\n // } as const;\n\n // export { User, Session, Account, Verification, Admin };\n // `,\n // { filepath: \"schema.ts\" }\n // );\n\n // if (generate_schema !== hard_coded_schema) {\n // console.log(`\\n\\n\\n--------------------------------- Generated:`);\n // console.log(generate_schema);\n // console.log(`--------------------------------- Hard-coded:`);\n // console.log(hard_coded_schema);\n // console.log(`---------------------------------\\n\\n\\n`);\n // }\n\n // expect(generate_schema).toBe(hard_coded_schema);\n // });\n\n // test.skip(\"should support .index method after `defineTable`\", async () => {\n // const generate_schema = await generateSchema(\n // {\n // plugins: [\n // {\n // schema: {\n // testTable: {\n // fields: {},\n // },\n // },\n // id: \"test\",\n // },\n // ],\n // },\n // {\n // payload_dir_path: PAYLOAD_TEST_DIR_PATH3,\n // }\n // );\n\n // const hard_coded_schema = await format(\n // [\n // `import {defineSchema,defineTable} from \"convex/server\";`,\n // `import {v} from \"convex/values\";`,\n // ``,\n // `export default defineSchema({`,\n // default_tables,\n // `testTable: defineTable({`,\n // `}).index(\"by_something\", [\"email\"]),`,\n // `});`,\n // ].join(\"\\n\"),\n // { filepath: \"schema.ts\" }\n // );\n\n // if (generate_schema !== hard_coded_schema) {\n // console.log(`\\n\\n\\n--------------------------------- Generated:`);\n // console.log(generate_schema);\n // console.log(`--------------------------------- Hard-coded:`);\n // console.log(hard_coded_schema);\n // console.log(`---------------------------------\\n\\n\\n`);\n // }\n\n // expect(generate_schema).toBe(hard_coded_schema);\n // });\n\n // it(`should generate references correctly`, async () => {\n // const generate_schema = await generateSchema(\n // {\n // plugins: [\n // {\n // id: \"admin\",\n // schema: {\n // admin: {\n // fields: {\n // id: {\n // type: \"string\",\n // required: true,\n // },\n\n // reference_optional: {\n // type: \"string\",\n // references: {\n // field: \"something\",\n // model: \"something_else\",\n // },\n // },\n // reference_required: {\n // type: \"string\",\n // required: true,\n // references: {\n // field: \"something2\",\n // model: \"something2_else\",\n // },\n // },\n // },\n // },\n // },\n // },\n // ],\n // },\n // {\n // payload_dir_path: PAYLOAD_TEST_DIR_PATH3,\n // }\n // );\n\n // const hard_coded_schema = await format(\n // [\n // `import {defineSchema,defineTable} from \"convex/server\";`,\n // `import {v} from \"convex/values\";`,\n // ``,\n // `export default defineSchema({`,\n // default_tables,\n // `admin: defineTable({`,\n // `id: v.id(\"admin\"),`,\n // `reference_optional: v.id(\"something_else\"),`,\n // `reference_required: v.id(\"something2_else\"),`,\n // `}),`,\n // `});`,\n // ].join(\"\\n\"),\n // { filepath: \"schema.ts\" }\n // );\n\n // if (generate_schema !== hard_coded_schema) {\n // console.log(`\\n\\n\\n--------------------------------- Generated:`);\n // console.log(generate_schema);\n // console.log(`--------------------------------- Hard-coded:`);\n // console.log(hard_coded_schema);\n // console.log(`---------------------------------\\n\\n\\n`);\n // }\n // expect(generate_schema).toBe(hard_coded_schema);\n // });\n})\n"],"names":["describe","expect","it","format","getPayloadPath","generateSchema","PAYLOAD_TEST_DIR_PATH","PAYLOAD_TEST_DIR_PATH2","PAYLOAD_TEST_DIR_PATH3","generate_schema","plugins","schema","testTable","fields","hello","type","required","hello2","id","outputDir","hard_coded_schema","filepath","toEqual"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/test/test_payload1/schema.ts"],"sourcesContent":["/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n *\n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n *\n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from 'payload'\n\nconst User: CollectionConfig = {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n ],\n timestamps: true,\n} as const\n\nconst Session: CollectionConfig = {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n ],\n timestamps: true,\n} as const\n\nconst Account: CollectionConfig = {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'text',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n required: true,\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nconst Verification: CollectionConfig = {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nconst TestTable: CollectionConfig = {\n slug: 'testTable',\n admin: {\n useAsTitle: 'hello',\n },\n fields: [\n {\n name: 'hello',\n type: 'checkbox',\n },\n {\n name: 'hello2',\n type: 'text',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nexport { User, Session, Account, Verification, TestTable }\n"],"names":["User","slug","admin","useAsTitle","fields","name","type","required","unique","relationTo","timestamps","Session","Account","Verification","TestTable"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAGD,MAAMA,OAAyB;IAC7BC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNG,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAMC,UAA4B;IAChCV,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAME,UAA4B;IAChCX,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;QACA;YACEJ,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,MAAMG,eAAiC;IACrCZ,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDG,YAAY;AACd;AAEA,MAAMI,YAA8B;IAClCb,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDG,YAAY;AACd;AAEA,SAASV,IAAI,EAAEW,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAEC,SAAS,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/test/test_payload2/schema.ts"],"sourcesContent":["/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n *\n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n *\n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from 'payload'\n\nconst User: CollectionConfig = {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n ],\n timestamps: true,\n} as const\n\nconst Session: CollectionConfig = {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n ],\n timestamps: true,\n} as const\n\nconst Account: CollectionConfig = {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'text',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n required: true,\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nconst Verification: CollectionConfig = {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nconst Admins: CollectionConfig = {\n slug: 'admins',\n admin: {\n useAsTitle: 'id',\n },\n fields: [],\n timestamps: true,\n} as const\n\nexport { User, Session, Account, Verification, Admins }\n"],"names":["User","slug","admin","useAsTitle","fields","name","type","required","unique","relationTo","timestamps","Session","Account","Verification","Admins"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAGD,MAAMA,OAAyB;IAC7BC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNG,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAMC,UAA4B;IAChCV,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAME,UAA4B;IAChCX,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;QACA;YACEJ,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,MAAMG,eAAiC;IACrCZ,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDG,YAAY;AACd;AAEA,MAAMI,SAA2B;IAC/Bb,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ,EAAE;IACVM,YAAY;AACd;AAEA,SAASV,IAAI,EAAEW,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAEC,MAAM,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/adapter/test/test_payload3/schema.ts"],"sourcesContent":["/**\n * EXAMPLE COLLECTIONS FOR BETTER AUTH\n *\n * Below is what your Payload collections should look like.\n * Please copy these to your actual collection configs.\n * Make sure to add an authStrategy for the users collection if there is one.\n *\n * Example auth strategy:\n * auth: {\n * disableLocalStrategy: true,\n * strategies: [\n * betterAuthStrategy(),\n * // Add other strategies as needed\n * ],\n * },\n */\nimport type { CollectionConfig } from 'payload'\n\nconst User: CollectionConfig = {\n slug: 'user',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'email',\n type: 'email',\n required: true,\n unique: true,\n },\n {\n name: 'emailVerified',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'image',\n type: 'upload',\n relationTo: 'media',\n },\n ],\n timestamps: true,\n} as const\n\nconst Session: CollectionConfig = {\n slug: 'session',\n admin: {\n useAsTitle: 'expiresAt',\n },\n fields: [\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n {\n name: 'token',\n type: 'text',\n required: true,\n unique: true,\n },\n {\n name: 'ipAddress',\n type: 'text',\n },\n {\n name: 'userAgent',\n type: 'text',\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n ],\n timestamps: true,\n} as const\n\nconst Account: CollectionConfig = {\n slug: 'account',\n admin: {\n useAsTitle: 'accountId',\n },\n fields: [\n {\n name: 'accountId',\n type: 'text',\n required: true,\n },\n {\n name: 'providerId',\n type: 'text',\n required: true,\n },\n {\n name: 'userId',\n type: 'relationship',\n required: true,\n relationTo: 'user',\n },\n {\n name: 'accessToken',\n type: 'text',\n },\n {\n name: 'refreshToken',\n type: 'text',\n },\n {\n name: 'idToken',\n type: 'text',\n },\n {\n name: 'accessTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'refreshTokenExpiresAt',\n type: 'date',\n },\n {\n name: 'scope',\n type: 'text',\n },\n {\n name: 'password',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nconst Verification: CollectionConfig = {\n slug: 'verification',\n admin: {\n useAsTitle: 'identifier',\n },\n fields: [\n {\n name: 'identifier',\n type: 'text',\n required: true,\n },\n {\n name: 'value',\n type: 'text',\n required: true,\n },\n {\n name: 'expiresAt',\n type: 'date',\n required: true,\n },\n ],\n timestamps: true,\n} as const\n\nconst Admin: CollectionConfig = {\n slug: 'admin',\n admin: {\n useAsTitle: 'name',\n },\n fields: [\n {\n name: 'name',\n type: 'text',\n required: true,\n },\n {\n name: 'isAdmin',\n type: 'checkbox',\n required: true,\n },\n {\n name: 'status',\n type: 'text',\n },\n {\n name: 'date',\n type: 'date',\n },\n {\n name: 'number',\n type: 'number',\n },\n {\n name: 'str_array',\n type: 'text',\n },\n {\n name: 'num_array',\n type: 'text',\n },\n ],\n timestamps: true,\n} as const\n\nexport { User, Session, Account, Verification, Admin }\n"],"names":["User","slug","admin","useAsTitle","fields","name","type","required","unique","relationTo","timestamps","Session","Account","Verification","Admin"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC,GAGD,MAAMA,OAAyB;IAC7BC,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNG,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAMC,UAA4B;IAChCV,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVC,QAAQ;QACV;QACA;YACEH,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;KACD;IACDC,YAAY;AACd;AAEA,MAAME,UAA4B;IAChCX,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;YACVE,YAAY;QACd;QACA;YACEJ,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,MAAMG,eAAiC;IACrCZ,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;KACD;IACDG,YAAY;AACd;AAEA,MAAMI,QAA0B;IAC9Bb,MAAM;IACNC,OAAO;QACLC,YAAY;IACd;IACAC,QAAQ;QACN;YACEC,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;YACNC,UAAU;QACZ;QACA;YACEF,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;QACA;YACED,MAAM;YACNC,MAAM;QACR;KACD;IACDI,YAAY;AACd;AAEA,SAASV,IAAI,EAAEW,OAAO,EAAEC,OAAO,EAAEC,YAAY,EAAEC,KAAK,GAAE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/adapter/transform/index.ts"],"sourcesContent":["import { BetterAuthError } from 'better-auth'\nimport { getAuthTables } from 'better-auth/db'\nimport type { BetterAuthOptions, Where } from 'better-auth'\nimport type { CollectionSlug, Where as PayloadWhere } from 'payload'\n\nexport const createTransform = (options: BetterAuthOptions, enableDebugLogs: boolean) => {\n const schema = getAuthTables(options)\n\n function debugLog(message: any[]) {\n if (enableDebugLogs) {\n console.log(`[payload-db-adapter]`, ...message)\n }\n }\n\n function getField(model: string, field: string) {\n if (field === 'id') {\n return field\n }\n const f = (schema as Record<string, any>)[model]?.fields[field]\n const fieldName = f?.fieldName || field\n debugLog(['getField: ', model, fieldName])\n return fieldName\n }\n\n function getModelName(model: string): CollectionSlug {\n const collection = (schema as Record<string, any>)[model]?.modelName || model\n if (!collection) {\n throw new BetterAuthError(`Model ${model} does not exist in the database.`)\n }\n return collection as CollectionSlug\n }\n\n function singleIdQuery(where: PayloadWhere) {\n if (!where || 'and' in where || 'or' in where) return null\n\n // For a single id query like { id: { equals: 15 } }\n // First, check if there's an id field in the where clause\n if ('id' in where || '_id' in where) {\n const idField = 'id' in where ? 'id' : '_id'\n const condition = where[idField]\n\n // Check if condition is an object with equals operator\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'equals' in condition\n ) {\n const value = condition.equals\n if (typeof value === 'string' || typeof value === 'number') {\n return value\n }\n }\n\n // Check for contains operator with single value\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'contains' in condition &&\n Array.isArray(condition.contains) &&\n condition.contains.length === 1\n ) {\n const value = condition.contains[0]\n if (typeof value === 'string' || typeof value === 'number') {\n return value\n }\n }\n }\n\n return null\n }\n\n function multipleIdsQuery(where: PayloadWhere) {\n if (!where || 'and' in where || 'or' in where) return null\n if ('id' in where || '_id' in where) {\n const idField = 'id' in where ? 'id' : '_id'\n const condition = where[idField]\n\n // Check if this is an 'in' operator with id field and array of values\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'in' in condition &&\n Array.isArray(condition.in) &&\n condition.in.length > 1 &&\n condition.in.every((id: unknown) => typeof id === 'string' || typeof id === 'number')\n ) {\n return condition.in as (number | string)[]\n }\n\n // Also check for contains operator with array of IDs\n if (\n condition &&\n typeof condition === 'object' &&\n !Array.isArray(condition) &&\n 'contains' in condition &&\n Array.isArray(condition.contains) &&\n condition.contains.length > 1 &&\n condition.contains.every((id: unknown) => typeof id === 'string' || typeof id === 'number')\n ) {\n return condition.contains as (number | string)[]\n }\n }\n\n return null\n }\n\n function transformInput(data: Record<string, any>, model: string, action: 'create' | 'update') {\n const transformedData: Record<string, any> = {}\n const schemaFields = (schema as Record<string, any>)[model].fields\n for (const dataField in data) {\n if (data[dataField] === undefined && action === 'update') {\n continue\n }\n const updatedFieldName = schemaFields[dataField]?.fieldName\n\n if (updatedFieldName) {\n if (\n schemaFields[dataField].type === 'string' &&\n typeof data[dataField] === 'number' &&\n updatedFieldName.endsWith('Id')\n ) {\n debugLog([\n 'Incoming data is typeof number but stored as typeof string',\n dataField,\n data[dataField].toString(),\n ])\n transformedData[updatedFieldName] = data[dataField].toString()\n } else {\n transformedData[updatedFieldName] = data[dataField]\n }\n } else {\n transformedData[dataField] = data[dataField]\n }\n }\n\n return transformedData\n }\n\n function transformOutput<T extends Record<string, any> | undefined>(doc: T): T {\n if (!doc || typeof doc !== 'object') return doc\n\n const result = { ...doc } as any\n\n // Scan for relationship fields that contain objects with IDs\n Object.entries(doc).forEach(([key, value]) => {\n // If the value is an object with an id property, it's likely a relationship\n if (value && typeof value === 'object' && 'id' in value) {\n // Create a new field with Id suffix containing just the ID\n const newKey = `${key}Id`\n result[newKey] = value.id\n\n //also remove the object and just keep the id\n result[key] = value.id\n\n // Keep the original value as well for backward compatibility\n } else if (Array.isArray(value)) {\n // Handle arrays of relationships\n if (value.length > 0 && typeof value[0] === 'object' && 'id' in value[0]) {\n const newKey = `${key}Ids`\n result[newKey] = value.map((item) => item.id)\n\n //also remove the object and just keep the id\n result[key] = value.map((item) => item.id)\n }\n }\n })\n\n // Scan for date fields and convert them to Date objects\n Object.entries(result).forEach(([key, value]) => {\n // Check if the field is a date string (ISO format)\n if (\n typeof value === 'string' &&\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d{3})?Z$/.test(value)\n ) {\n result[key] = new Date(value)\n } else if (\n // Also check for date-like field names\n (key.endsWith('At') || key.endsWith('Date') || key === 'date') &&\n typeof value === 'string' &&\n !isNaN(Date.parse(value))\n ) {\n result[key] = new Date(value)\n }\n })\n\n return result as T\n }\n\n function operatorToPayload(operator: string, value: any) {\n switch (operator) {\n case 'eq':\n return { equals: value }\n case 'ne':\n return { not_equals: value }\n case 'gt':\n return { greater_than: value }\n case 'gte':\n return { greater_than_equal: value }\n case 'lt':\n return { less_than: value }\n case 'lte':\n return { less_than_equal: value }\n case 'contains':\n return { contains: value }\n case 'in':\n return { in: value }\n case 'starts_with':\n return { like: `${value}%` }\n case 'ends_with':\n return { like: `%${value}` }\n default:\n return { equals: value }\n }\n }\n\n function convertWhereValue(value: any, field: string) {\n if (field === 'id' || field === '_id') {\n if (typeof value === 'object') {\n return value.id\n }\n return value\n }\n return value\n }\n\n function convertWhereClause(model: string, where?: Where[]): PayloadWhere {\n if (!where) return {}\n if (where.length === 1) {\n const w = where[0]\n if (!w) {\n return {}\n }\n\n const field = getField(model, w.field)\n const value = convertWhereValue(w.value, field)\n\n const res = {\n [field]: operatorToPayload(w.operator ?? '', value),\n }\n\n return res\n }\n const and = where.filter((w) => w.connector === 'AND' || !w.connector)\n const or = where.filter((w) => w.connector === 'OR')\n const andClause = and.map((w) => {\n const field = getField(model, w.field)\n const value = convertWhereValue(w.value, field)\n return {\n [field]: operatorToPayload(w.operator ?? '', value),\n }\n })\n const orClause = or.map((w) => {\n const field = getField(model, w.field)\n const value = convertWhereValue(w.value, field)\n return {\n [field]: operatorToPayload(w.operator ?? '', value),\n }\n })\n\n return {\n ...(andClause.length ? { AND: andClause } : {}),\n ...(orClause.length ? { OR: orClause } : {}),\n }\n }\n\n function convertSelect(model: string, select?: string[]) {\n if (!select || select.length === 0) return undefined\n return select.reduce((acc, field) => ({ ...acc, [getField(model, field)]: true }), {})\n }\n\n function convertSort(model: string, sortBy?: { field: string; direction: 'asc' | 'desc' }) {\n if (!sortBy) return undefined\n return `${sortBy.direction === 'desc' ? '-' : ''}${getField(model, sortBy.field)}`\n }\n\n return {\n getField,\n getModelName,\n singleIdQuery,\n multipleIdsQuery,\n transformInput,\n transformOutput,\n convertWhereClause,\n convertSelect,\n convertSort,\n }\n}\n"],"names":["BetterAuthError","getAuthTables","createTransform","options","enableDebugLogs","schema","debugLog","message","console","log","getField","model","field","f","fields","fieldName","getModelName","collection","modelName","singleIdQuery","where","idField","condition","Array","isArray","value","equals","contains","length","multipleIdsQuery","in","every","id","transformInput","data","action","transformedData","schemaFields","dataField","undefined","updatedFieldName","type","endsWith","toString","transformOutput","doc","result","Object","entries","forEach","key","newKey","map","item","test","Date","isNaN","parse","operatorToPayload","operator","not_equals","greater_than","greater_than_equal","less_than","less_than_equal","like","convertWhereValue","convertWhereClause","w","res","and","filter","connector","or","andClause","orClause","AND","OR","convertSelect","select","reduce","acc","convertSort","sortBy","direction"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/adapter/types.ts"],"sourcesContent":["import type { BasePayload } from \"payload\";\nimport type { AdapterInstance } from \"better-auth\";\n\nexport type PayloadAdapterOptions = {\n enableDebugLogs?: boolean;\n};\n\nexport type PayloadAdapter = (\n payloadClient: BasePayload | Promise<BasePayload> | (() => Promise<BasePayload>),\n config?: PayloadAdapterOptions\n) => AdapterInstance;\n"],"names":[],"mappings":"AAOA,WAGqB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["export * from './adapter'\nexport * from './plugin'\nexport * from './types'"],"names":[],"mappings":"AAAA,cAAc,YAAW;AACzB,cAAc,WAAU;AACxB,cAAc,UAAS"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/plugin/collections/accounts/hooks/sync-password-to-user.ts"],"sourcesContent":["import type { CollectionAfterChangeHook } from 'payload'\nimport type { CollectionHookWithBetterAuth } from '../../../types'\n\ntype CollectionAfterChangeHookWithBetterAuth =\n CollectionHookWithBetterAuth<CollectionAfterChangeHook>\n\ntype SyncPasswordToUserOptions = {\n userSlug: string\n accountSlug: string\n}\n\nexport const getSyncPasswordToUserHook = (\n options: SyncPasswordToUserOptions,\n): CollectionAfterChangeHook => {\n const hook: CollectionAfterChangeHookWithBetterAuth = async ({\n doc,\n req,\n operation,\n context,\n }) => {\n if (context?.syncAccountHook) return doc\n\n if (operation !== 'create' && operation !== 'update') {\n return doc\n }\n\n const userField = req.payload.betterAuth.options.account?.fields?.userId || 'userId'\n\n if (!doc[userField]) {\n return doc\n }\n\n const account = await req.payload.findByID({\n collection: options.accountSlug,\n id: doc.id,\n depth: 0,\n req,\n showHiddenFields: true,\n })\n\n if (!account || !account.password) {\n return doc\n }\n\n const [salt, hash] = account.password.split(':')\n\n if (!salt || !hash) {\n return doc\n }\n\n const userId = typeof doc[userField] === 'string' ? doc[userField] : doc[userField]?.id\n\n try {\n await req.payload.update({\n collection: options.userSlug,\n id: userId,\n data: {\n salt,\n hash,\n },\n req,\n context: { syncPasswordToUser: true },\n })\n } catch (error) {\n console.error('Failed to sync password to user:', error)\n }\n\n return doc\n }\n\n return hook as CollectionAfterChangeHook\n}\n"],"names":["getSyncPasswordToUserHook","options","hook","doc","req","operation","context","syncAccountHook","userField","payload","betterAuth","account","fields","userId","findByID","collection","accountSlug","id","depth","showHiddenFields","password","salt","hash","split","update","userSlug","data","syncPasswordToUser","error","console"],"mappings":"AAWA,OAAO,MAAMA,4BAA4B,CACvCC;IAEA,MAAMC,OAAgD,OAAO,EAC3DC,GAAG,EACHC,GAAG,EACHC,SAAS,EACTC,OAAO,EACR;QACC,IAAIA,SAASC,iBAAiB,OAAOJ;QAErC,IAAIE,cAAc,YAAYA,cAAc,UAAU;YACpD,OAAOF;QACT;QAEA,MAAMK,YAAYJ,IAAIK,OAAO,CAACC,UAAU,CAACT,OAAO,CAACU,OAAO,EAAEC,QAAQC,UAAU;QAE5E,IAAI,CAACV,GAAG,CAACK,UAAU,EAAE;YACnB,OAAOL;QACT;QAEA,MAAMQ,UAAU,MAAMP,IAAIK,OAAO,CAACK,QAAQ,CAAC;YACzCC,YAAYd,QAAQe,WAAW;YAC/BC,IAAId,IAAIc,EAAE;YACVC,OAAO;YACPd;YACAe,kBAAkB;QACpB;QAEA,IAAI,CAACR,WAAW,CAACA,QAAQS,QAAQ,EAAE;YACjC,OAAOjB;QACT;QAEA,MAAM,CAACkB,MAAMC,KAAK,GAAGX,QAAQS,QAAQ,CAACG,KAAK,CAAC;QAE5C,IAAI,CAACF,QAAQ,CAACC,MAAM;YAClB,OAAOnB;QACT;QAEA,MAAMU,SAAS,OAAOV,GAAG,CAACK,UAAU,KAAK,WAAWL,GAAG,CAACK,UAAU,GAAGL,GAAG,CAACK,UAAU,EAAES;QAErF,IAAI;YACF,MAAMb,IAAIK,OAAO,CAACe,MAAM,CAAC;gBACvBT,YAAYd,QAAQwB,QAAQ;gBAC5BR,IAAIJ;gBACJa,MAAM;oBACJL;oBACAC;gBACF;gBACAlB;gBACAE,SAAS;oBAAEqB,oBAAoB;gBAAK;YACtC;QACF,EAAE,OAAOC,OAAO;YACdC,QAAQD,KAAK,CAAC,oCAAoCA;QACpD;QAEA,OAAOzB;IACT;IAEA,OAAOD;AACT,EAAC"}
|