@luochuanyuewu/payload-auth 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/better-auth/adapter/generate-schema/generate-schema-builder.d.ts +24 -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 +317 -0
- package/dist/better-auth/adapter/generate-schema/get-payload-schema.d.ts +2 -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 +23 -0
- package/dist/better-auth/adapter/generate-schema/index.d.ts +5 -0
- package/dist/better-auth/adapter/generate-schema/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/index.js +19 -0
- package/dist/better-auth/adapter/generate-schema/utils.d.ts +3 -0
- package/dist/better-auth/adapter/generate-schema/utils.d.ts.map +1 -0
- package/dist/better-auth/adapter/generate-schema/utils.js +20 -0
- package/dist/better-auth/adapter/index.d.ts +16 -0
- package/dist/better-auth/adapter/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/index.js +717 -0
- package/dist/better-auth/adapter/transform/index.d.ts +31 -0
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -0
- package/dist/better-auth/adapter/transform/index.js +729 -0
- package/dist/better-auth/adapter/types.d.ts +11 -0
- package/dist/better-auth/adapter/types.d.ts.map +1 -0
- package/dist/better-auth/adapter/types.js +3 -0
- package/dist/better-auth/generated-types.d.ts +329 -0
- package/dist/better-auth/generated-types.d.ts.map +1 -0
- package/dist/better-auth/generated-types.js +4 -0
- package/dist/better-auth/index.d.ts +4 -0
- package/dist/better-auth/index.d.ts.map +1 -0
- package/dist/better-auth/index.js +5 -0
- package/dist/better-auth/plugin/constants.d.ts +231 -0
- package/dist/better-auth/plugin/constants.d.ts.map +1 -0
- package/dist/better-auth/plugin/constants.js +259 -0
- package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts +13 -0
- package/dist/better-auth/plugin/helpers/check-plugin-exists.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/check-plugin-exists.js +14 -0
- package/dist/better-auth/plugin/helpers/generate-verify-email-url.d.ts +30 -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 +46 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.d.ts +8 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-admin-access.js +22 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.d.ts +6 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-all-roles.js +20 -0
- package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts +19 -0
- package/dist/better-auth/plugin/helpers/get-better-auth-schema.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-better-auth-schema.js +75 -0
- package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts +6 -0
- package/dist/better-auth/plugin/helpers/get-collection-slug.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection-slug.js +20 -0
- package/dist/better-auth/plugin/helpers/get-collection.d.ts +28 -0
- package/dist/better-auth/plugin/helpers/get-collection.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection.js +49 -0
- package/dist/better-auth/plugin/helpers/get-ip.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/get-ip.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-ip.js +31 -0
- package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts +3 -0
- package/dist/better-auth/plugin/helpers/get-signed-cookie.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-signed-cookie.js +63 -0
- package/dist/better-auth/plugin/helpers/index.d.ts +2 -0
- package/dist/better-auth/plugin/helpers/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/index.js +3 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +60 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.js +49 -0
- package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts +21 -0
- package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/sync-resolved-schema-with-collection-map.js +63 -0
- package/dist/better-auth/plugin/index.d.ts +8 -0
- package/dist/better-auth/plugin/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/index.js +103 -0
- package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts +13 -0
- package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/apply-disabled-default-auth-config.js +87 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +51 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +150 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts +6 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-after-read.js +11 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/hooks/get-url-before-change.js +8 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +117 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/api-keys.js +174 -0
- package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/device-code.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/device-code.js +49 -0
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts +11 -0
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/index.js +79 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/invitations.js +93 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/jwks.js +58 -0
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/members.js +72 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +105 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +117 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +87 -0
- package/dist/better-auth/plugin/lib/build-collections/organization-roles.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/organization-roles.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/organization-roles.js +65 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/organizations.js +106 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/passkeys.js +115 -0
- package/dist/better-auth/plugin/lib/build-collections/rate-limit.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/rate-limit.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/rate-limit.js +54 -0
- package/dist/better-auth/plugin/lib/build-collections/scim-provider.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/scim-provider.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/scim-provider.js +65 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/sessions.js +140 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +80 -0
- package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/subscriptions.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/subscriptions.js +110 -0
- package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/team-members.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/team-members.js +63 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.js +74 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/two-factors.js +66 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +52 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts +12 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +68 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +5 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.js +6 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/refresh-token.js +114 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/send-invite-url.js +64 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +90 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +80 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +79 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +54 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +15 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/index.js +8 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +17 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +3 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +90 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/users/index.js +333 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts +16 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/collection-schema.js +24 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts +11 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/filter-properties.js +112 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +8 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +31 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +12 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.js +26 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts +18 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/payload-access.js +84 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +21 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.js +95 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts +4 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/build-collections/verifications.js +82 -0
- package/dist/better-auth/plugin/lib/get-payload-auth.d.ts +6 -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 +9 -0
- package/dist/better-auth/plugin/lib/init-better-auth.d.ts +8 -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 +16 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +12 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/device-authorization-plugin.js +8 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +12 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +146 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +18 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +34 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +11 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts +3 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/two-factor-plugin.js +11 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.d.ts +8 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-after-role-middleware.js +20 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-before-role-middleware.d.ts +8 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-before-role-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/admin-before-role-middleware.js +20 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.d.ts +14 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/apply-save-to-jwt-returned.js +38 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts +8 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/ensure-password-set-before-create.js +23 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts +26 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/password.js +62 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +42 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/use-admin-invite-after-email-sign-up-middleware.js +62 -0
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts +5 -0
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/set-login-methods.js +14 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +10 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +116 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.scss +36 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +11 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +213 -0
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.scss +136 -0
- package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts +4 -0
- package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/alternative-methods.js +197 -0
- package/dist/better-auth/plugin/payload/components/login-form/context.d.ts +49 -0
- package/dist/better-auth/plugin/payload/components/login-form/context.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/context.js +94 -0
- package/dist/better-auth/plugin/payload/components/login-form/credentials-form.d.ts +4 -0
- package/dist/better-auth/plugin/payload/components/login-form/credentials-form.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/credentials-form.js +167 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.d.ts +5 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.js +6 -0
- package/dist/better-auth/plugin/payload/components/login-form/index.scss +58 -0
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts +5 -0
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/logout-button.js +24 -0
- package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/passkeys/add-button.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/passkeys/add-button.js +122 -0
- package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts +3 -0
- package/dist/better-auth/plugin/payload/components/passkeys/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/passkeys/client.js +61 -0
- package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts +5 -0
- package/dist/better-auth/plugin/payload/components/passkeys/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/passkeys/index.js +42 -0
- package/dist/better-auth/plugin/payload/components/passkeys/index.scss +98 -0
- package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/passkeys/list.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/passkeys/list.js +57 -0
- package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts +23 -0
- package/dist/better-auth/plugin/payload/components/passkeys/types.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/passkeys/types.js +3 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts +7 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/rsc-redirect.js +13 -0
- package/dist/better-auth/plugin/payload/components/token-field.d.ts +4 -0
- package/dist/better-auth/plugin/payload/components/token-field.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/token-field.js +29 -0
- package/dist/better-auth/plugin/payload/components/two-factor-auth/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/components/two-factor-auth/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/two-factor-auth/index.js +347 -0
- package/dist/better-auth/plugin/payload/components/two-factor-auth/index.scss +116 -0
- package/dist/better-auth/plugin/payload/exports/client.d.ts +7 -0
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/client.js +8 -0
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts +9 -0
- package/dist/better-auth/plugin/payload/exports/rsc.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/exports/rsc.js +10 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts +3 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/generate-admin-invite-url.js +9 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts +2 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/utils/get-safe-redirect.js +22 -0
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +23 -0
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-login/client.js +24 -0
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +11 -0
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-login/index.js +143 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +23 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/client.js +185 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +10 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/admin-signup/index.js +92 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts +7 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/client.js +104 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/forgot-password/index.js +61 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts +11 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/client.js +111 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/reset-password/index.js +78 -0
- package/dist/better-auth/plugin/payload/views/two-factor-verify/client.d.ts +9 -0
- package/dist/better-auth/plugin/payload/views/two-factor-verify/client.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/two-factor-verify/client.js +79 -0
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +10 -0
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +49 -0
- package/dist/better-auth/plugin/types.d.ts +448 -0
- package/dist/better-auth/plugin/types.d.ts.map +1 -0
- package/dist/better-auth/plugin/types.js +3 -0
- package/dist/better-auth/plugin/utils/set.d.ts +40 -0
- package/dist/better-auth/plugin/utils/set.d.ts.map +1 -0
- package/dist/better-auth/plugin/utils/set.js +84 -0
- package/dist/better-auth/scripts/generate-types.d.ts +2 -0
- package/dist/better-auth/scripts/generate-types.d.ts.map +1 -0
- package/dist/better-auth/scripts/generate-types.js +225 -0
- package/dist/better-auth/types.d.ts +3 -0
- package/dist/better-auth/types.d.ts.map +1 -0
- package/dist/better-auth/types.js +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/shared/components/icons.d.ts +8 -0
- package/dist/shared/components/icons.d.ts.map +1 -0
- package/dist/shared/components/icons.js +436 -0
- package/dist/shared/components/logo.d.ts +3 -0
- package/dist/shared/components/logo.d.ts.map +1 -0
- package/dist/shared/components/logo.js +24 -0
- package/dist/shared/form/components/submit.d.ts +8 -0
- package/dist/shared/form/components/submit.d.ts.map +1 -0
- package/dist/shared/form/components/submit.js +23 -0
- package/dist/shared/form/fields/text-field.d.ts +9 -0
- package/dist/shared/form/fields/text-field.d.ts.map +1 -0
- package/dist/shared/form/fields/text-field.js +44 -0
- package/dist/shared/form/index.d.ts +28 -0
- package/dist/shared/form/index.d.ts.map +1 -0
- package/dist/shared/form/index.js +17 -0
- package/dist/shared/form/ui/header/index.d.ts +9 -0
- package/dist/shared/form/ui/header/index.d.ts.map +1 -0
- package/dist/shared/form/ui/header/index.js +23 -0
- package/dist/shared/form/ui/header/index.scss +8 -0
- package/dist/shared/form/ui/index.d.ts +34 -0
- package/dist/shared/form/ui/index.d.ts.map +1 -0
- package/dist/shared/form/ui/index.js +70 -0
- package/dist/shared/form/ui/index.scss +27 -0
- package/dist/shared/form/validation.d.ts +65 -0
- package/dist/shared/form/validation.d.ts.map +1 -0
- package/dist/shared/form/validation.js +108 -0
- package/dist/shared/index.d.ts +3 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +4 -0
- package/dist/shared/payload/fields/field-copy-button/index.css +47 -0
- package/dist/shared/payload/fields/field-copy-button/index.d.ts +4 -0
- package/dist/shared/payload/fields/field-copy-button/index.d.ts.map +1 -0
- package/dist/shared/payload/fields/field-copy-button/index.js +38 -0
- package/dist/shared/payload/fields/generate-uuid-button/index.css +14 -0
- package/dist/shared/payload/fields/generate-uuid-button/index.d.ts +4 -0
- package/dist/shared/payload/fields/generate-uuid-button/index.d.ts.map +1 -0
- package/dist/shared/payload/fields/generate-uuid-button/index.js +26 -0
- package/dist/shared/payload/fields/index.d.ts +3 -0
- package/dist/shared/payload/fields/index.d.ts.map +1 -0
- package/dist/shared/payload/fields/index.js +4 -0
- package/dist/shared/utils/regex.d.ts +3 -0
- package/dist/shared/utils/regex.d.ts.map +1 -0
- package/dist/shared/utils/regex.js +4 -0
- package/dist/shared/utils/try-catch.d.ts +12 -0
- package/dist/shared/utils/try-catch.d.ts.map +1 -0
- package/dist/shared/utils/try-catch.js +17 -0
- package/dist/shared/utils/value-or-default.d.ts +10 -0
- package/dist/shared/utils/value-or-default.d.ts.map +1 -0
- package/dist/shared/utils/value-or-default.js +12 -0
- package/package.json +124 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This module generates PayloadCMS collection configurations based on the Better Auth schema.
|
|
3
|
+
*
|
|
4
|
+
* The generated collection configs include:
|
|
5
|
+
* - Users: For user management with proper auth configuration
|
|
6
|
+
* - Sessions: For maintaining user sessions
|
|
7
|
+
* - Accounts: For OAuth provider accounts
|
|
8
|
+
* - VerificationTokens: For email verification or social sign in
|
|
9
|
+
*
|
|
10
|
+
* Each collection is properly formatted with:
|
|
11
|
+
* - Appropriate field types (text, relationship, checkbox, etc.)
|
|
12
|
+
* - Admin configuration for better UI experience
|
|
13
|
+
* - Auth configuration for the Users collection
|
|
14
|
+
* - Proper field relationships between collections
|
|
15
|
+
*
|
|
16
|
+
* Users can copy these generated collection configs to their PayloadCMS project
|
|
17
|
+
* and add authentication strategies as needed.
|
|
18
|
+
*/
|
|
19
|
+
import type { BetterAuthOptions } from "better-auth";
|
|
20
|
+
export declare const generateSchemaBuilderStage: ({ BAOptions, code }: {
|
|
21
|
+
code: string;
|
|
22
|
+
BAOptions: BetterAuthOptions;
|
|
23
|
+
}) => Promise<string>;
|
|
24
|
+
//# sourceMappingURL=generate-schema-builder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-schema-builder.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/generate-schema/generate-schema-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,eAAO,MAAM,0BAA0B,GAAU,qBAG9C;IACD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,iBAAiB,CAAC;CAC9B,oBAUA,CAAC"}
|
|
@@ -0,0 +1,317 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This module generates PayloadCMS collection configurations based on the Better Auth schema.
|
|
3
|
+
*
|
|
4
|
+
* The generated collection configs include:
|
|
5
|
+
* - Users: For user management with proper auth configuration
|
|
6
|
+
* - Sessions: For maintaining user sessions
|
|
7
|
+
* - Accounts: For OAuth provider accounts
|
|
8
|
+
* - VerificationTokens: For email verification or social sign in
|
|
9
|
+
*
|
|
10
|
+
* Each collection is properly formatted with:
|
|
11
|
+
* - Appropriate field types (text, relationship, checkbox, etc.)
|
|
12
|
+
* - Admin configuration for better UI experience
|
|
13
|
+
* - Auth configuration for the Users collection
|
|
14
|
+
* - Proper field relationships between collections
|
|
15
|
+
*
|
|
16
|
+
* Users can copy these generated collection configs to their PayloadCMS project
|
|
17
|
+
* and add authentication strategies as needed.
|
|
18
|
+
*/ import { getAuthTables } from "better-auth/db";
|
|
19
|
+
export const generateSchemaBuilderStage = async ({ BAOptions, code })=>{
|
|
20
|
+
const { post, collections } = parseExistingSchema(code);
|
|
21
|
+
const payloadSchemaStr = generatePayloadCollectionConfigs({
|
|
22
|
+
options: BAOptions,
|
|
23
|
+
collections,
|
|
24
|
+
exports: post
|
|
25
|
+
});
|
|
26
|
+
return payloadSchemaStr;
|
|
27
|
+
};
|
|
28
|
+
function parseExistingSchema(code) {
|
|
29
|
+
const collections = [];
|
|
30
|
+
let post = "";
|
|
31
|
+
// Extract collection definitions
|
|
32
|
+
const collectionRegex = /const\s+([A-Z][a-zA-Z0-9]*)\s*:\s*CollectionConfig\s*=\s*{[\s\S]*?}\s*as\s*const;/g;
|
|
33
|
+
let match;
|
|
34
|
+
while((match = collectionRegex.exec(code)) !== null){
|
|
35
|
+
const collectionName = match[1];
|
|
36
|
+
const collectionDef = match[0];
|
|
37
|
+
// Extract slug
|
|
38
|
+
const slugMatch = collectionDef.match(/slug:\s*"([^"]+)"/);
|
|
39
|
+
const slug = slugMatch ? slugMatch[1] : collectionName.toLowerCase();
|
|
40
|
+
// Extract useAsTitle
|
|
41
|
+
const titleMatch = collectionDef.match(/useAsTitle:\s*"([^"]+)"/);
|
|
42
|
+
const useAsTitle = titleMatch ? titleMatch[1] : "id";
|
|
43
|
+
// Extract fields
|
|
44
|
+
const fieldsRegex = /fields:\s*\[([\s\S]*?)\],/;
|
|
45
|
+
const fieldsMatch = collectionDef.match(fieldsRegex);
|
|
46
|
+
const fields = [];
|
|
47
|
+
if (fieldsMatch) {
|
|
48
|
+
const fieldBlockRegex = /{[\s\S]*?},/g;
|
|
49
|
+
const fieldBlocks = fieldsMatch[1].match(fieldBlockRegex) || [];
|
|
50
|
+
for (const fieldBlock of fieldBlocks){
|
|
51
|
+
const nameMatch = fieldBlock.match(/name:\s*"([^"]+)"/);
|
|
52
|
+
const typeMatch = fieldBlock.match(/type:\s*"([^"]+)"/);
|
|
53
|
+
const requiredMatch = fieldBlock.match(/required:\s*(true|false)/);
|
|
54
|
+
const uniqueMatch = fieldBlock.match(/unique:\s*(true|false)/);
|
|
55
|
+
const relationToMatch = fieldBlock.match(/relationTo:\s*"([^"]+)"/);
|
|
56
|
+
if (nameMatch && typeMatch) {
|
|
57
|
+
const field = {
|
|
58
|
+
name: nameMatch[1],
|
|
59
|
+
type: typeMatch[1]
|
|
60
|
+
};
|
|
61
|
+
if (requiredMatch) {
|
|
62
|
+
field.required = requiredMatch[1] === "true";
|
|
63
|
+
}
|
|
64
|
+
if (uniqueMatch) {
|
|
65
|
+
field.unique = uniqueMatch[1] === "true";
|
|
66
|
+
}
|
|
67
|
+
if (relationToMatch) {
|
|
68
|
+
field.relationTo = relationToMatch[1];
|
|
69
|
+
}
|
|
70
|
+
fields.push(field);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
// Check for timestamps
|
|
75
|
+
const timestampsMatch = collectionDef.match(/timestamps:\s*(true|false)/);
|
|
76
|
+
const hasTimestamps = timestampsMatch ? timestampsMatch[1] === "true" : false;
|
|
77
|
+
collections.push({
|
|
78
|
+
slug,
|
|
79
|
+
admin: {
|
|
80
|
+
useAsTitle
|
|
81
|
+
},
|
|
82
|
+
fields,
|
|
83
|
+
...hasTimestamps && {
|
|
84
|
+
timestamps: true
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
// Extract export statement
|
|
89
|
+
const exportRegex = /export\s*{[\s\S]*?};/;
|
|
90
|
+
const exportMatch = code.match(exportRegex);
|
|
91
|
+
if (exportMatch) {
|
|
92
|
+
post = exportMatch[0];
|
|
93
|
+
}
|
|
94
|
+
return {
|
|
95
|
+
collections,
|
|
96
|
+
post
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
function generatePayloadCollectionConfigs({ options, collections, exports }) {
|
|
100
|
+
let result = "";
|
|
101
|
+
// add pre message and import statements
|
|
102
|
+
result += `/**
|
|
103
|
+
* EXAMPLE COLLECTIONS FOR BETTER AUTH
|
|
104
|
+
*
|
|
105
|
+
* Below is what your Payload collections should look like.
|
|
106
|
+
* Please copy these to your actual collection configs.
|
|
107
|
+
* Make sure to add an authStrategy for the users collection if there is one.
|
|
108
|
+
*
|
|
109
|
+
* Example auth strategy:
|
|
110
|
+
* auth: {
|
|
111
|
+
* disableLocalStrategy: true,
|
|
112
|
+
* strategies: [
|
|
113
|
+
* betterAuthStrategy(),
|
|
114
|
+
* // Add other strategies as needed
|
|
115
|
+
* ],
|
|
116
|
+
* },
|
|
117
|
+
*/
|
|
118
|
+
import type { CollectionConfig } from 'payload';
|
|
119
|
+
|
|
120
|
+
`;
|
|
121
|
+
// add the collections
|
|
122
|
+
let collectionsStr = "";
|
|
123
|
+
const tables = getAuthTables(options);
|
|
124
|
+
// Process existing collections first
|
|
125
|
+
const existingCollectionsBySlug = collections.reduce((acc, collection)=>{
|
|
126
|
+
if (collection.slug) {
|
|
127
|
+
acc[collection.slug] = collection;
|
|
128
|
+
}
|
|
129
|
+
return acc;
|
|
130
|
+
}, {});
|
|
131
|
+
for (const [tableKey, table] of Object.entries(tables)){
|
|
132
|
+
const modelName = table.modelName;
|
|
133
|
+
const capitalized = modelName.charAt(0).toUpperCase() + modelName.slice(1);
|
|
134
|
+
// Check if this collection already exists in the provided collections
|
|
135
|
+
const existingCollection = existingCollectionsBySlug[modelName];
|
|
136
|
+
if (existingCollection) {
|
|
137
|
+
// Convert existing collection to string representation
|
|
138
|
+
collectionsStr += `const ${capitalized}: CollectionConfig = ${JSON.stringify(existingCollection, null, 2).replace(/"([^"]+)":/g, "$1:")} as const;\n\n`;
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
// Create new collection if it doesn't exist
|
|
142
|
+
collectionsStr += `const ${capitalized}: CollectionConfig = {
|
|
143
|
+
slug: "${modelName}",
|
|
144
|
+
`;
|
|
145
|
+
// Add admin section for better UX
|
|
146
|
+
collectionsStr += ` admin: {
|
|
147
|
+
useAsTitle: "${getNameField(table.fields)}",
|
|
148
|
+
},
|
|
149
|
+
`;
|
|
150
|
+
// Add auth section ONLY for users collection
|
|
151
|
+
if (modelName === "users") {
|
|
152
|
+
collectionsStr += ` auth: {
|
|
153
|
+
disableLocalStrategy: true,
|
|
154
|
+
strategies: [],
|
|
155
|
+
// Add your auth strategies here if needed
|
|
156
|
+
},
|
|
157
|
+
`;
|
|
158
|
+
}
|
|
159
|
+
// Add fields
|
|
160
|
+
collectionsStr += ` fields: [
|
|
161
|
+
`;
|
|
162
|
+
for (const [fieldKey, field] of Object.entries(table.fields)){
|
|
163
|
+
const fieldName = field.fieldName || fieldKey;
|
|
164
|
+
// Skip id field as Payload handles it automatically
|
|
165
|
+
if (fieldName === "id") continue;
|
|
166
|
+
if (fieldName === "createdAt" || fieldName === "updatedAt") continue;
|
|
167
|
+
// Handle field type mapping with safer type approach
|
|
168
|
+
let fieldType = mapFieldType(field.type, fieldName);
|
|
169
|
+
const isRelationship = fieldName.endsWith("_id") || !!field.references?.model;
|
|
170
|
+
collectionsStr += ` {
|
|
171
|
+
name: "${isRelationship ? fieldName.replace("_id", "") : fieldName}",
|
|
172
|
+
`;
|
|
173
|
+
if (isRelationship) {
|
|
174
|
+
collectionsStr += ` type: "relationship",
|
|
175
|
+
relationTo: "${field.references?.model || fieldName.replace("_id", "")}",
|
|
176
|
+
`;
|
|
177
|
+
} else if (fieldType === "upload") {
|
|
178
|
+
collectionsStr += ` type: "upload",
|
|
179
|
+
relationTo: "media",
|
|
180
|
+
`;
|
|
181
|
+
} else {
|
|
182
|
+
collectionsStr += ` type: "${fieldType}",
|
|
183
|
+
`;
|
|
184
|
+
}
|
|
185
|
+
if (field.required) {
|
|
186
|
+
collectionsStr += ` required: true,
|
|
187
|
+
`;
|
|
188
|
+
}
|
|
189
|
+
if (field.unique) {
|
|
190
|
+
collectionsStr += ` unique: true,
|
|
191
|
+
`;
|
|
192
|
+
}
|
|
193
|
+
// Check if field has options and fieldType is select
|
|
194
|
+
if (fieldType === "select" && "options" in field && Array.isArray(field.options)) {
|
|
195
|
+
collectionsStr += ` options: ${JSON.stringify(field.options)},
|
|
196
|
+
`;
|
|
197
|
+
}
|
|
198
|
+
if (field.defaultValue !== undefined) {
|
|
199
|
+
if (typeof field.defaultValue === "string") {
|
|
200
|
+
collectionsStr += ` defaultValue: "${field.defaultValue}",
|
|
201
|
+
`;
|
|
202
|
+
} else if (typeof field.defaultValue === "boolean") {
|
|
203
|
+
collectionsStr += ` defaultValue: ${field.defaultValue ? "true" : "false"},
|
|
204
|
+
`;
|
|
205
|
+
} else if (field.defaultValue && typeof field.defaultValue === "function" && field.defaultValue.toString().includes("() => !1")) {
|
|
206
|
+
// Handle function-like default values with are false
|
|
207
|
+
collectionsStr += ` defaultValue: false,
|
|
208
|
+
`;
|
|
209
|
+
} else if (field.defaultValue && typeof field.defaultValue === "function" && field.defaultValue.toString().includes("() => !0")) {
|
|
210
|
+
// Handle function-like default values with are true
|
|
211
|
+
collectionsStr += ` defaultValue: true,
|
|
212
|
+
`;
|
|
213
|
+
} else {
|
|
214
|
+
collectionsStr += ` defaultValue: ${field.defaultValue},
|
|
215
|
+
`;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
// Add admin section for fields if needed - safely check for admin property
|
|
219
|
+
if ("admin" in field && field.admin && typeof field.admin === "object" && "readOnly" in field.admin && field.admin.readOnly) {
|
|
220
|
+
collectionsStr += ` admin: {
|
|
221
|
+
readOnly: true,
|
|
222
|
+
},
|
|
223
|
+
`;
|
|
224
|
+
}
|
|
225
|
+
collectionsStr += ` },
|
|
226
|
+
`;
|
|
227
|
+
}
|
|
228
|
+
collectionsStr += ` ],
|
|
229
|
+
timestamps: true,
|
|
230
|
+
} as const;
|
|
231
|
+
|
|
232
|
+
`;
|
|
233
|
+
}
|
|
234
|
+
// Add any collections from the input that aren't in the tables
|
|
235
|
+
for (const collection of collections){
|
|
236
|
+
if (!collection.slug || tables[collection.slug]) {
|
|
237
|
+
continue; // Skip if no slug or already processed
|
|
238
|
+
}
|
|
239
|
+
const capitalized = collection.slug.charAt(0).toUpperCase() + collection.slug.slice(1);
|
|
240
|
+
collectionsStr += `const ${capitalized}: CollectionConfig = ${JSON.stringify(collection, null, 2).replace(/"([^"]+)":/g, "$1:")} as const;\n\n`;
|
|
241
|
+
}
|
|
242
|
+
result += collectionsStr;
|
|
243
|
+
// Add export statements for all collections
|
|
244
|
+
// Check if we have an existing export statement to adapt
|
|
245
|
+
if (exports && exports.trim()) {
|
|
246
|
+
// Parse the existing exports to get collection names
|
|
247
|
+
const existingExportMatch = exports.match(/export\s*{\s*(.*?)\s*}/);
|
|
248
|
+
const existingCollections = existingExportMatch ? existingExportMatch[1].split(",").map((name)=>name.trim()) : [];
|
|
249
|
+
// Get the collection names from our tables
|
|
250
|
+
const tableCollections = Object.keys(tables).map((model)=>{
|
|
251
|
+
return model.charAt(0).toUpperCase() + model.slice(1);
|
|
252
|
+
});
|
|
253
|
+
// Combine existing and new collections, removing duplicates
|
|
254
|
+
const allCollections = [
|
|
255
|
+
...new Set([
|
|
256
|
+
...existingCollections,
|
|
257
|
+
...tableCollections
|
|
258
|
+
])
|
|
259
|
+
];
|
|
260
|
+
// Create the new export statement
|
|
261
|
+
result += `export { ${allCollections.join(", ")} };
|
|
262
|
+
`;
|
|
263
|
+
} else if (Object.keys(tables).length > 0) {
|
|
264
|
+
const collectionNames = Object.keys(tables).map((model)=>{
|
|
265
|
+
// Convert model name to PascalCase for export
|
|
266
|
+
const pascalCase = model.charAt(0).toUpperCase() + model.slice(1);
|
|
267
|
+
return pascalCase;
|
|
268
|
+
});
|
|
269
|
+
result += `export { ${collectionNames.join(", ")} };
|
|
270
|
+
`;
|
|
271
|
+
} else {
|
|
272
|
+
result += `export {};
|
|
273
|
+
`;
|
|
274
|
+
}
|
|
275
|
+
return result;
|
|
276
|
+
}
|
|
277
|
+
// Helper functions
|
|
278
|
+
function mapFieldType(type, fieldName) {
|
|
279
|
+
if (fieldName.endsWith("_id")) return "relationship";
|
|
280
|
+
switch(type){
|
|
281
|
+
case "boolean":
|
|
282
|
+
return "checkbox";
|
|
283
|
+
case "number":
|
|
284
|
+
return "number";
|
|
285
|
+
case "string":
|
|
286
|
+
if (fieldName === "email") return "email";
|
|
287
|
+
if (fieldName.includes("password")) return "text";
|
|
288
|
+
if (fieldName.includes("image") || fieldName.includes("avatar")) return "upload";
|
|
289
|
+
return "text";
|
|
290
|
+
case "date":
|
|
291
|
+
return "date";
|
|
292
|
+
case "array":
|
|
293
|
+
return "array";
|
|
294
|
+
default:
|
|
295
|
+
return "text";
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
function getNameField(fields) {
|
|
299
|
+
// Try to find an appropriate field to use as title
|
|
300
|
+
const nameOptions = [
|
|
301
|
+
"name",
|
|
302
|
+
"title",
|
|
303
|
+
"label",
|
|
304
|
+
"email",
|
|
305
|
+
"username"
|
|
306
|
+
];
|
|
307
|
+
for (const option of nameOptions){
|
|
308
|
+
if (Object.keys(fields).includes(option)) {
|
|
309
|
+
return option;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
// Default to first field that's not id
|
|
313
|
+
const firstNonIdField = Object.keys(fields).find((k)=>k !== "id");
|
|
314
|
+
return firstNonIdField || "id";
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2dlbmVyYXRlLXNjaGVtYS9nZW5lcmF0ZS1zY2hlbWEtYnVpbGRlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoaXMgbW9kdWxlIGdlbmVyYXRlcyBQYXlsb2FkQ01TIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvbnMgYmFzZWQgb24gdGhlIEJldHRlciBBdXRoIHNjaGVtYS5cbiAqXG4gKiBUaGUgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gY29uZmlncyBpbmNsdWRlOlxuICogLSBVc2VyczogRm9yIHVzZXIgbWFuYWdlbWVudCB3aXRoIHByb3BlciBhdXRoIGNvbmZpZ3VyYXRpb25cbiAqIC0gU2Vzc2lvbnM6IEZvciBtYWludGFpbmluZyB1c2VyIHNlc3Npb25zXG4gKiAtIEFjY291bnRzOiBGb3IgT0F1dGggcHJvdmlkZXIgYWNjb3VudHNcbiAqIC0gVmVyaWZpY2F0aW9uVG9rZW5zOiBGb3IgZW1haWwgdmVyaWZpY2F0aW9uIG9yIHNvY2lhbCBzaWduIGluXG4gKlxuICogRWFjaCBjb2xsZWN0aW9uIGlzIHByb3Blcmx5IGZvcm1hdHRlZCB3aXRoOlxuICogLSBBcHByb3ByaWF0ZSBmaWVsZCB0eXBlcyAodGV4dCwgcmVsYXRpb25zaGlwLCBjaGVja2JveCwgZXRjLilcbiAqIC0gQWRtaW4gY29uZmlndXJhdGlvbiBmb3IgYmV0dGVyIFVJIGV4cGVyaWVuY2VcbiAqIC0gQXV0aCBjb25maWd1cmF0aW9uIGZvciB0aGUgVXNlcnMgY29sbGVjdGlvblxuICogLSBQcm9wZXIgZmllbGQgcmVsYXRpb25zaGlwcyBiZXR3ZWVuIGNvbGxlY3Rpb25zXG4gKlxuICogVXNlcnMgY2FuIGNvcHkgdGhlc2UgZ2VuZXJhdGVkIGNvbGxlY3Rpb24gY29uZmlncyB0byB0aGVpciBQYXlsb2FkQ01TIHByb2plY3RcbiAqIGFuZCBhZGQgYXV0aGVudGljYXRpb24gc3RyYXRlZ2llcyBhcyBuZWVkZWQuXG4gKi9cbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB7IGdldEF1dGhUYWJsZXMgfSBmcm9tIFwiYmV0dGVyLWF1dGgvZGJcIjtcbmltcG9ydCB0eXBlIHsgQ29sbGVjdGlvbkNvbmZpZywgRmllbGQgfSBmcm9tIFwicGF5bG9hZFwiO1xuXG5leHBvcnQgY29uc3QgZ2VuZXJhdGVTY2hlbWFCdWlsZGVyU3RhZ2UgPSBhc3luYyAoe1xuICBCQU9wdGlvbnMsXG4gIGNvZGVcbn06IHtcbiAgY29kZTogc3RyaW5nO1xuICBCQU9wdGlvbnM6IEJldHRlckF1dGhPcHRpb25zO1xufSkgPT4ge1xuICBjb25zdCB7IHBvc3QsIGNvbGxlY3Rpb25zIH0gPSBwYXJzZUV4aXN0aW5nU2NoZW1hKGNvZGUpO1xuXG4gIGNvbnN0IHBheWxvYWRTY2hlbWFTdHIgPSBnZW5lcmF0ZVBheWxvYWRDb2xsZWN0aW9uQ29uZmlncyh7XG4gICAgb3B0aW9uczogQkFPcHRpb25zLFxuICAgIGNvbGxlY3Rpb25zLFxuICAgIGV4cG9ydHM6IHBvc3RcbiAgfSk7XG5cbiAgcmV0dXJuIHBheWxvYWRTY2hlbWFTdHI7XG59O1xuXG5mdW5jdGlvbiBwYXJzZUV4aXN0aW5nU2NoZW1hKGNvZGU6IHN0cmluZyk6IHtcbiAgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXTtcbiAgcG9zdDogc3RyaW5nO1xufSB7XG4gIGNvbnN0IGNvbGxlY3Rpb25zOiBDb2xsZWN0aW9uQ29uZmlnW10gPSBbXTtcbiAgbGV0IHBvc3QgPSBcIlwiO1xuXG4gIC8vIEV4dHJhY3QgY29sbGVjdGlvbiBkZWZpbml0aW9uc1xuICBjb25zdCBjb2xsZWN0aW9uUmVnZXggPVxuICAgIC9jb25zdFxccysoW0EtWl1bYS16QS1aMC05XSopXFxzKjpcXHMqQ29sbGVjdGlvbkNvbmZpZ1xccyo9XFxzKntbXFxzXFxTXSo/fVxccyphc1xccypjb25zdDsvZztcbiAgbGV0IG1hdGNoO1xuICB3aGlsZSAoKG1hdGNoID0gY29sbGVjdGlvblJlZ2V4LmV4ZWMoY29kZSkpICE9PSBudWxsKSB7XG4gICAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBtYXRjaFsxXTtcbiAgICBjb25zdCBjb2xsZWN0aW9uRGVmID0gbWF0Y2hbMF07XG5cbiAgICAvLyBFeHRyYWN0IHNsdWdcbiAgICBjb25zdCBzbHVnTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKC9zbHVnOlxccypcIihbXlwiXSspXCIvKTtcbiAgICBjb25zdCBzbHVnID0gc2x1Z01hdGNoID8gc2x1Z01hdGNoWzFdIDogY29sbGVjdGlvbk5hbWUudG9Mb3dlckNhc2UoKTtcblxuICAgIC8vIEV4dHJhY3QgdXNlQXNUaXRsZVxuICAgIGNvbnN0IHRpdGxlTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKC91c2VBc1RpdGxlOlxccypcIihbXlwiXSspXCIvKTtcbiAgICBjb25zdCB1c2VBc1RpdGxlID0gdGl0bGVNYXRjaCA/IHRpdGxlTWF0Y2hbMV0gOiBcImlkXCI7XG5cbiAgICAvLyBFeHRyYWN0IGZpZWxkc1xuICAgIGNvbnN0IGZpZWxkc1JlZ2V4ID0gL2ZpZWxkczpcXHMqXFxbKFtcXHNcXFNdKj8pXFxdLC87XG4gICAgY29uc3QgZmllbGRzTWF0Y2ggPSBjb2xsZWN0aW9uRGVmLm1hdGNoKGZpZWxkc1JlZ2V4KTtcbiAgICBjb25zdCBmaWVsZHM6IEZpZWxkW10gPSBbXTtcblxuICAgIGlmIChmaWVsZHNNYXRjaCkge1xuICAgICAgY29uc3QgZmllbGRCbG9ja1JlZ2V4ID0gL3tbXFxzXFxTXSo/fSwvZztcbiAgICAgIGNvbnN0IGZpZWxkQmxvY2tzID0gZmllbGRzTWF0Y2hbMV0ubWF0Y2goZmllbGRCbG9ja1JlZ2V4KSB8fCBbXTtcblxuICAgICAgZm9yIChjb25zdCBmaWVsZEJsb2NrIG9mIGZpZWxkQmxvY2tzKSB7XG4gICAgICAgIGNvbnN0IG5hbWVNYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL25hbWU6XFxzKlwiKFteXCJdKylcIi8pO1xuICAgICAgICBjb25zdCB0eXBlTWF0Y2ggPSBmaWVsZEJsb2NrLm1hdGNoKC90eXBlOlxccypcIihbXlwiXSspXCIvKTtcbiAgICAgICAgY29uc3QgcmVxdWlyZWRNYXRjaCA9IGZpZWxkQmxvY2subWF0Y2goL3JlcXVpcmVkOlxccyoodHJ1ZXxmYWxzZSkvKTtcbiAgICAgICAgY29uc3QgdW5pcXVlTWF0Y2ggPSBmaWVsZEJsb2NrLm1hdGNoKC91bmlxdWU6XFxzKih0cnVlfGZhbHNlKS8pO1xuICAgICAgICBjb25zdCByZWxhdGlvblRvTWF0Y2ggPSBmaWVsZEJsb2NrLm1hdGNoKC9yZWxhdGlvblRvOlxccypcIihbXlwiXSspXCIvKTtcblxuICAgICAgICBpZiAobmFtZU1hdGNoICYmIHR5cGVNYXRjaCkge1xuICAgICAgICAgIGNvbnN0IGZpZWxkID0ge1xuICAgICAgICAgICAgbmFtZTogbmFtZU1hdGNoWzFdLFxuICAgICAgICAgICAgdHlwZTogdHlwZU1hdGNoWzFdIGFzIEZpZWxkW1widHlwZVwiXVxuICAgICAgICAgIH07XG5cbiAgICAgICAgICBpZiAocmVxdWlyZWRNYXRjaCkge1xuICAgICAgICAgICAgKGZpZWxkIGFzIGFueSkucmVxdWlyZWQgPSByZXF1aXJlZE1hdGNoWzFdID09PSBcInRydWVcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAodW5pcXVlTWF0Y2gpIHtcbiAgICAgICAgICAgIChmaWVsZCBhcyBhbnkpLnVuaXF1ZSA9IHVuaXF1ZU1hdGNoWzFdID09PSBcInRydWVcIjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBpZiAocmVsYXRpb25Ub01hdGNoKSB7XG4gICAgICAgICAgICAoZmllbGQgYXMgYW55KS5yZWxhdGlvblRvID0gcmVsYXRpb25Ub01hdGNoWzFdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGZpZWxkcy5wdXNoKGZpZWxkIGFzIEZpZWxkKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIC8vIENoZWNrIGZvciB0aW1lc3RhbXBzXG4gICAgY29uc3QgdGltZXN0YW1wc01hdGNoID0gY29sbGVjdGlvbkRlZi5tYXRjaCgvdGltZXN0YW1wczpcXHMqKHRydWV8ZmFsc2UpLyk7XG4gICAgY29uc3QgaGFzVGltZXN0YW1wcyA9IHRpbWVzdGFtcHNNYXRjaFxuICAgICAgPyB0aW1lc3RhbXBzTWF0Y2hbMV0gPT09IFwidHJ1ZVwiXG4gICAgICA6IGZhbHNlO1xuXG4gICAgY29sbGVjdGlvbnMucHVzaCh7XG4gICAgICBzbHVnLFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgdXNlQXNUaXRsZVxuICAgICAgfSxcbiAgICAgIGZpZWxkcyxcbiAgICAgIC4uLihoYXNUaW1lc3RhbXBzICYmIHsgdGltZXN0YW1wczogdHJ1ZSB9KVxuICAgIH0pO1xuICB9XG5cbiAgLy8gRXh0cmFjdCBleHBvcnQgc3RhdGVtZW50XG4gIGNvbnN0IGV4cG9ydFJlZ2V4ID0gL2V4cG9ydFxccyp7W1xcc1xcU10qP307LztcbiAgY29uc3QgZXhwb3J0TWF0Y2ggPSBjb2RlLm1hdGNoKGV4cG9ydFJlZ2V4KTtcbiAgaWYgKGV4cG9ydE1hdGNoKSB7XG4gICAgcG9zdCA9IGV4cG9ydE1hdGNoWzBdO1xuICB9XG5cbiAgcmV0dXJuIHsgY29sbGVjdGlvbnMsIHBvc3QgfTtcbn1cblxuZnVuY3Rpb24gZ2VuZXJhdGVQYXlsb2FkQ29sbGVjdGlvbkNvbmZpZ3Moe1xuICBvcHRpb25zLFxuICBjb2xsZWN0aW9ucyxcbiAgZXhwb3J0c1xufToge1xuICBvcHRpb25zOiBCZXR0ZXJBdXRoT3B0aW9ucztcbiAgY29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXTtcbiAgZXhwb3J0czogc3RyaW5nO1xufSk6IHN0cmluZyB7XG4gIGxldCByZXN1bHQgPSBcIlwiO1xuXG4gIC8vIGFkZCBwcmUgbWVzc2FnZSBhbmQgaW1wb3J0IHN0YXRlbWVudHNcbiAgcmVzdWx0ICs9IGAvKipcbiAqIEVYQU1QTEUgQ09MTEVDVElPTlMgRk9SIEJFVFRFUiBBVVRIXG4gKiBcbiAqIEJlbG93IGlzIHdoYXQgeW91ciBQYXlsb2FkIGNvbGxlY3Rpb25zIHNob3VsZCBsb29rIGxpa2UuXG4gKiBQbGVhc2UgY29weSB0aGVzZSB0byB5b3VyIGFjdHVhbCBjb2xsZWN0aW9uIGNvbmZpZ3MuXG4gKiBNYWtlIHN1cmUgdG8gYWRkIGFuIGF1dGhTdHJhdGVneSBmb3IgdGhlIHVzZXJzIGNvbGxlY3Rpb24gaWYgdGhlcmUgaXMgb25lLlxuICogXG4gKiBFeGFtcGxlIGF1dGggc3RyYXRlZ3k6XG4gKiBhdXRoOiB7XG4gKiAgIGRpc2FibGVMb2NhbFN0cmF0ZWd5OiB0cnVlLFxuICogICBzdHJhdGVnaWVzOiBbXG4gKiAgICAgYmV0dGVyQXV0aFN0cmF0ZWd5KCksXG4gKiAgICAgLy8gQWRkIG90aGVyIHN0cmF0ZWdpZXMgYXMgbmVlZGVkXG4gKiAgIF0sXG4gKiB9LFxuICovXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkJztcblxuYDtcblxuICAvLyBhZGQgdGhlIGNvbGxlY3Rpb25zXG4gIGxldCBjb2xsZWN0aW9uc1N0ciA9IFwiXCI7XG4gIGNvbnN0IHRhYmxlcyA9IGdldEF1dGhUYWJsZXMob3B0aW9ucyk7XG5cbiAgLy8gUHJvY2VzcyBleGlzdGluZyBjb2xsZWN0aW9ucyBmaXJzdFxuICBjb25zdCBleGlzdGluZ0NvbGxlY3Rpb25zQnlTbHVnID0gY29sbGVjdGlvbnMucmVkdWNlKFxuICAgIChhY2MsIGNvbGxlY3Rpb24pID0+IHtcbiAgICAgIGlmIChjb2xsZWN0aW9uLnNsdWcpIHtcbiAgICAgICAgYWNjW2NvbGxlY3Rpb24uc2x1Z10gPSBjb2xsZWN0aW9uO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGFjYztcbiAgICB9LFxuICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25Db25maWc+XG4gICk7XG5cbiAgZm9yIChjb25zdCBbdGFibGVLZXksIHRhYmxlXSBvZiBPYmplY3QuZW50cmllcyh0YWJsZXMpKSB7XG4gICAgY29uc3QgbW9kZWxOYW1lID0gdGFibGUubW9kZWxOYW1lO1xuICAgIGNvbnN0IGNhcGl0YWxpemVkID0gbW9kZWxOYW1lLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbW9kZWxOYW1lLnNsaWNlKDEpO1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBjb2xsZWN0aW9uIGFscmVhZHkgZXhpc3RzIGluIHRoZSBwcm92aWRlZCBjb2xsZWN0aW9uc1xuICAgIGNvbnN0IGV4aXN0aW5nQ29sbGVjdGlvbiA9IGV4aXN0aW5nQ29sbGVjdGlvbnNCeVNsdWdbbW9kZWxOYW1lXTtcblxuICAgIGlmIChleGlzdGluZ0NvbGxlY3Rpb24pIHtcbiAgICAgIC8vIENvbnZlcnQgZXhpc3RpbmcgY29sbGVjdGlvbiB0byBzdHJpbmcgcmVwcmVzZW50YXRpb25cbiAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGBjb25zdCAke2NhcGl0YWxpemVkfTogQ29sbGVjdGlvbkNvbmZpZyA9ICR7SlNPTi5zdHJpbmdpZnkoZXhpc3RpbmdDb2xsZWN0aW9uLCBudWxsLCAyKS5yZXBsYWNlKC9cIihbXlwiXSspXCI6L2csIFwiJDE6XCIpfSBhcyBjb25zdDtcXG5cXG5gO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIG5ldyBjb2xsZWN0aW9uIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgY29uc3QgJHtjYXBpdGFsaXplZH06IENvbGxlY3Rpb25Db25maWcgPSB7XG4gIHNsdWc6IFwiJHttb2RlbE5hbWV9XCIsXG5gO1xuXG4gICAgLy8gQWRkIGFkbWluIHNlY3Rpb24gZm9yIGJldHRlciBVWFxuICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgIGFkbWluOiB7XG4gICAgdXNlQXNUaXRsZTogXCIke2dldE5hbWVGaWVsZCh0YWJsZS5maWVsZHMpfVwiLFxuICB9LFxuYDtcblxuICAgIC8vIEFkZCBhdXRoIHNlY3Rpb24gT05MWSBmb3IgdXNlcnMgY29sbGVjdGlvblxuICAgIGlmIChtb2RlbE5hbWUgPT09IFwidXNlcnNcIikge1xuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgYXV0aDoge1xuICAgIGRpc2FibGVMb2NhbFN0cmF0ZWd5OiB0cnVlLFxuICAgIHN0cmF0ZWdpZXM6IFtdLFxuICAgIC8vIEFkZCB5b3VyIGF1dGggc3RyYXRlZ2llcyBoZXJlIGlmIG5lZWRlZFxuICB9LFxuYDtcbiAgICB9XG5cbiAgICAvLyBBZGQgZmllbGRzXG4gICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgZmllbGRzOiBbXG5gO1xuXG4gICAgZm9yIChjb25zdCBbZmllbGRLZXksIGZpZWxkXSBvZiBPYmplY3QuZW50cmllcyh0YWJsZS5maWVsZHMpKSB7XG4gICAgICBjb25zdCBmaWVsZE5hbWUgPSBmaWVsZC5maWVsZE5hbWUgfHwgZmllbGRLZXk7XG4gICAgICAvLyBTa2lwIGlkIGZpZWxkIGFzIFBheWxvYWQgaGFuZGxlcyBpdCBhdXRvbWF0aWNhbGx5XG4gICAgICBpZiAoZmllbGROYW1lID09PSBcImlkXCIpIGNvbnRpbnVlO1xuXG4gICAgICBpZiAoZmllbGROYW1lID09PSBcImNyZWF0ZWRBdFwiIHx8IGZpZWxkTmFtZSA9PT0gXCJ1cGRhdGVkQXRcIikgY29udGludWU7XG5cbiAgICAgIC8vIEhhbmRsZSBmaWVsZCB0eXBlIG1hcHBpbmcgd2l0aCBzYWZlciB0eXBlIGFwcHJvYWNoXG4gICAgICBsZXQgZmllbGRUeXBlID0gbWFwRmllbGRUeXBlKGZpZWxkLnR5cGUgYXMgc3RyaW5nLCBmaWVsZE5hbWUpO1xuICAgICAgY29uc3QgaXNSZWxhdGlvbnNoaXAgPVxuICAgICAgICBmaWVsZE5hbWUuZW5kc1dpdGgoXCJfaWRcIikgfHwgISFmaWVsZC5yZWZlcmVuY2VzPy5tb2RlbDtcblxuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICB7XG4gICAgICBuYW1lOiBcIiR7aXNSZWxhdGlvbnNoaXAgPyBmaWVsZE5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKSA6IGZpZWxkTmFtZX1cIixcbmA7XG5cbiAgICAgIGlmIChpc1JlbGF0aW9uc2hpcCkge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgdHlwZTogXCJyZWxhdGlvbnNoaXBcIixcbiAgICAgIHJlbGF0aW9uVG86IFwiJHtmaWVsZC5yZWZlcmVuY2VzPy5tb2RlbCB8fCBmaWVsZE5hbWUucmVwbGFjZShcIl9pZFwiLCBcIlwiKX1cIixcbmA7XG4gICAgICB9IGVsc2UgaWYgKGZpZWxkVHlwZSA9PT0gXCJ1cGxvYWRcIikge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgdHlwZTogXCJ1cGxvYWRcIixcbiAgICAgIHJlbGF0aW9uVG86IFwibWVkaWFcIixcbmA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgdHlwZTogXCIke2ZpZWxkVHlwZX1cIixcbmA7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5yZXF1aXJlZCkge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgcmVxdWlyZWQ6IHRydWUsXG5gO1xuICAgICAgfVxuXG4gICAgICBpZiAoZmllbGQudW5pcXVlKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICB1bmlxdWU6IHRydWUsXG5gO1xuICAgICAgfVxuXG4gICAgICAvLyBDaGVjayBpZiBmaWVsZCBoYXMgb3B0aW9ucyBhbmQgZmllbGRUeXBlIGlzIHNlbGVjdFxuICAgICAgaWYgKFxuICAgICAgICBmaWVsZFR5cGUgPT09IFwic2VsZWN0XCIgJiZcbiAgICAgICAgXCJvcHRpb25zXCIgaW4gZmllbGQgJiZcbiAgICAgICAgQXJyYXkuaXNBcnJheShmaWVsZC5vcHRpb25zKVxuICAgICAgKSB7XG4gICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICBvcHRpb25zOiAke0pTT04uc3RyaW5naWZ5KGZpZWxkLm9wdGlvbnMpfSxcbmA7XG4gICAgICB9XG5cbiAgICAgIGlmIChmaWVsZC5kZWZhdWx0VmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICAgIGNvbGxlY3Rpb25zU3RyICs9IGAgICAgICBkZWZhdWx0VmFsdWU6IFwiJHtmaWVsZC5kZWZhdWx0VmFsdWV9XCIsXG5gO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogJHtmaWVsZC5kZWZhdWx0VmFsdWUgPyBcInRydWVcIiA6IFwiZmFsc2VcIn0sXG5gO1xuICAgICAgICB9IGVsc2UgaWYgKFxuICAgICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZSAmJlxuICAgICAgICAgIHR5cGVvZiBmaWVsZC5kZWZhdWx0VmFsdWUgPT09IFwiZnVuY3Rpb25cIiAmJlxuICAgICAgICAgIGZpZWxkLmRlZmF1bHRWYWx1ZS50b1N0cmluZygpLmluY2x1ZGVzKFwiKCkgPT4gITFcIilcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gSGFuZGxlIGZ1bmN0aW9uLWxpa2UgZGVmYXVsdCB2YWx1ZXMgd2l0aCBhcmUgZmFsc2VcbiAgICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbmA7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlICYmXG4gICAgICAgICAgdHlwZW9mIGZpZWxkLmRlZmF1bHRWYWx1ZSA9PT0gXCJmdW5jdGlvblwiICYmXG4gICAgICAgICAgZmllbGQuZGVmYXVsdFZhbHVlLnRvU3RyaW5nKCkuaW5jbHVkZXMoXCIoKSA9PiAhMFwiKVxuICAgICAgICApIHtcbiAgICAgICAgICAvLyBIYW5kbGUgZnVuY3Rpb24tbGlrZSBkZWZhdWx0IHZhbHVlcyB3aXRoIGFyZSB0cnVlXG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogdHJ1ZSxcbmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICAgIGRlZmF1bHRWYWx1ZTogJHtmaWVsZC5kZWZhdWx0VmFsdWV9LFxuYDtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBBZGQgYWRtaW4gc2VjdGlvbiBmb3IgZmllbGRzIGlmIG5lZWRlZCAtIHNhZmVseSBjaGVjayBmb3IgYWRtaW4gcHJvcGVydHlcbiAgICAgIGlmIChcbiAgICAgICAgXCJhZG1pblwiIGluIGZpZWxkICYmXG4gICAgICAgIGZpZWxkLmFkbWluICYmXG4gICAgICAgIHR5cGVvZiBmaWVsZC5hZG1pbiA9PT0gXCJvYmplY3RcIiAmJlxuICAgICAgICBcInJlYWRPbmx5XCIgaW4gZmllbGQuYWRtaW4gJiZcbiAgICAgICAgZmllbGQuYWRtaW4ucmVhZE9ubHlcbiAgICAgICkge1xuICAgICAgICBjb2xsZWN0aW9uc1N0ciArPSBgICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICB9LFxuYDtcbiAgICAgIH1cblxuICAgICAgY29sbGVjdGlvbnNTdHIgKz0gYCAgICB9LFxuYDtcbiAgICB9XG5cbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgICBdLFxuICB0aW1lc3RhbXBzOiB0cnVlLFxufSBhcyBjb25zdDtcblxuYDtcbiAgfVxuXG4gIC8vIEFkZCBhbnkgY29sbGVjdGlvbnMgZnJvbSB0aGUgaW5wdXQgdGhhdCBhcmVuJ3QgaW4gdGhlIHRhYmxlc1xuICBmb3IgKGNvbnN0IGNvbGxlY3Rpb24gb2YgY29sbGVjdGlvbnMpIHtcbiAgICBpZiAoIWNvbGxlY3Rpb24uc2x1ZyB8fCB0YWJsZXNbY29sbGVjdGlvbi5zbHVnXSkge1xuICAgICAgY29udGludWU7IC8vIFNraXAgaWYgbm8gc2x1ZyBvciBhbHJlYWR5IHByb2Nlc3NlZFxuICAgIH1cblxuICAgIGNvbnN0IGNhcGl0YWxpemVkID1cbiAgICAgIGNvbGxlY3Rpb24uc2x1Zy5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGNvbGxlY3Rpb24uc2x1Zy5zbGljZSgxKTtcbiAgICBjb2xsZWN0aW9uc1N0ciArPSBgY29uc3QgJHtjYXBpdGFsaXplZH06IENvbGxlY3Rpb25Db25maWcgPSAke0pTT04uc3RyaW5naWZ5KGNvbGxlY3Rpb24sIG51bGwsIDIpLnJlcGxhY2UoL1wiKFteXCJdKylcIjovZywgXCIkMTpcIil9IGFzIGNvbnN0O1xcblxcbmA7XG4gIH1cblxuICByZXN1bHQgKz0gY29sbGVjdGlvbnNTdHI7XG5cbiAgLy8gQWRkIGV4cG9ydCBzdGF0ZW1lbnRzIGZvciBhbGwgY29sbGVjdGlvbnNcbiAgLy8gQ2hlY2sgaWYgd2UgaGF2ZSBhbiBleGlzdGluZyBleHBvcnQgc3RhdGVtZW50IHRvIGFkYXB0XG4gIGlmIChleHBvcnRzICYmIGV4cG9ydHMudHJpbSgpKSB7XG4gICAgLy8gUGFyc2UgdGhlIGV4aXN0aW5nIGV4cG9ydHMgdG8gZ2V0IGNvbGxlY3Rpb24gbmFtZXNcbiAgICBjb25zdCBleGlzdGluZ0V4cG9ydE1hdGNoID0gZXhwb3J0cy5tYXRjaCgvZXhwb3J0XFxzKntcXHMqKC4qPylcXHMqfS8pO1xuICAgIGNvbnN0IGV4aXN0aW5nQ29sbGVjdGlvbnMgPSBleGlzdGluZ0V4cG9ydE1hdGNoXG4gICAgICA/IGV4aXN0aW5nRXhwb3J0TWF0Y2hbMV0uc3BsaXQoXCIsXCIpLm1hcCgobmFtZSkgPT4gbmFtZS50cmltKCkpXG4gICAgICA6IFtdO1xuXG4gICAgLy8gR2V0IHRoZSBjb2xsZWN0aW9uIG5hbWVzIGZyb20gb3VyIHRhYmxlc1xuICAgIGNvbnN0IHRhYmxlQ29sbGVjdGlvbnMgPSBPYmplY3Qua2V5cyh0YWJsZXMpLm1hcCgobW9kZWwpID0+IHtcbiAgICAgIHJldHVybiBtb2RlbC5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIG1vZGVsLnNsaWNlKDEpO1xuICAgIH0pO1xuXG4gICAgLy8gQ29tYmluZSBleGlzdGluZyBhbmQgbmV3IGNvbGxlY3Rpb25zLCByZW1vdmluZyBkdXBsaWNhdGVzXG4gICAgY29uc3QgYWxsQ29sbGVjdGlvbnMgPSBbXG4gICAgICAuLi5uZXcgU2V0KFsuLi5leGlzdGluZ0NvbGxlY3Rpb25zLCAuLi50YWJsZUNvbGxlY3Rpb25zXSlcbiAgICBdO1xuXG4gICAgLy8gQ3JlYXRlIHRoZSBuZXcgZXhwb3J0IHN0YXRlbWVudFxuICAgIHJlc3VsdCArPSBgZXhwb3J0IHsgJHthbGxDb2xsZWN0aW9ucy5qb2luKFwiLCBcIil9IH07XG5gO1xuICB9IGVsc2UgaWYgKE9iamVjdC5rZXlzKHRhYmxlcykubGVuZ3RoID4gMCkge1xuICAgIGNvbnN0IGNvbGxlY3Rpb25OYW1lcyA9IE9iamVjdC5rZXlzKHRhYmxlcykubWFwKChtb2RlbCkgPT4ge1xuICAgICAgLy8gQ29udmVydCBtb2RlbCBuYW1lIHRvIFBhc2NhbENhc2UgZm9yIGV4cG9ydFxuICAgICAgY29uc3QgcGFzY2FsQ2FzZSA9IG1vZGVsLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgbW9kZWwuc2xpY2UoMSk7XG4gICAgICByZXR1cm4gcGFzY2FsQ2FzZTtcbiAgICB9KTtcblxuICAgIHJlc3VsdCArPSBgZXhwb3J0IHsgJHtjb2xsZWN0aW9uTmFtZXMuam9pbihcIiwgXCIpfSB9O1xuYDtcbiAgfSBlbHNlIHtcbiAgICByZXN1bHQgKz0gYGV4cG9ydCB7fTtcbmA7XG4gIH1cblxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vLyBIZWxwZXIgZnVuY3Rpb25zXG5mdW5jdGlvbiBtYXBGaWVsZFR5cGUodHlwZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGlmIChmaWVsZE5hbWUuZW5kc1dpdGgoXCJfaWRcIikpIHJldHVybiBcInJlbGF0aW9uc2hpcFwiO1xuXG4gIHN3aXRjaCAodHlwZSkge1xuICAgIGNhc2UgXCJib29sZWFuXCI6XG4gICAgICByZXR1cm4gXCJjaGVja2JveFwiO1xuICAgIGNhc2UgXCJudW1iZXJcIjpcbiAgICAgIHJldHVybiBcIm51bWJlclwiO1xuICAgIGNhc2UgXCJzdHJpbmdcIjpcbiAgICAgIGlmIChmaWVsZE5hbWUgPT09IFwiZW1haWxcIikgcmV0dXJuIFwiZW1haWxcIjtcbiAgICAgIGlmIChmaWVsZE5hbWUuaW5jbHVkZXMoXCJwYXNzd29yZFwiKSkgcmV0dXJuIFwidGV4dFwiO1xuICAgICAgaWYgKGZpZWxkTmFtZS5pbmNsdWRlcyhcImltYWdlXCIpIHx8IGZpZWxkTmFtZS5pbmNsdWRlcyhcImF2YXRhclwiKSlcbiAgICAgICAgcmV0dXJuIFwidXBsb2FkXCI7XG4gICAgICByZXR1cm4gXCJ0ZXh0XCI7XG4gICAgY2FzZSBcImRhdGVcIjpcbiAgICAgIHJldHVybiBcImRhdGVcIjtcbiAgICBjYXNlIFwiYXJyYXlcIjpcbiAgICAgIHJldHVybiBcImFycmF5XCI7XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiBcInRleHRcIjtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXROYW1lRmllbGQoZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+KTogc3RyaW5nIHtcbiAgLy8gVHJ5IHRvIGZpbmQgYW4gYXBwcm9wcmlhdGUgZmllbGQgdG8gdXNlIGFzIHRpdGxlXG4gIGNvbnN0IG5hbWVPcHRpb25zID0gW1wibmFtZVwiLCBcInRpdGxlXCIsIFwibGFiZWxcIiwgXCJlbWFpbFwiLCBcInVzZXJuYW1lXCJdO1xuXG4gIGZvciAoY29uc3Qgb3B0aW9uIG9mIG5hbWVPcHRpb25zKSB7XG4gICAgaWYgKE9iamVjdC5rZXlzKGZpZWxkcykuaW5jbHVkZXMob3B0aW9uKSkge1xuICAgICAgcmV0dXJuIG9wdGlvbjtcbiAgICB9XG4gIH1cblxuICAvLyBEZWZhdWx0IHRvIGZpcnN0IGZpZWxkIHRoYXQncyBub3QgaWRcbiAgY29uc3QgZmlyc3ROb25JZEZpZWxkID0gT2JqZWN0LmtleXMoZmllbGRzKS5maW5kKChrKSA9PiBrICE9PSBcImlkXCIpO1xuICByZXR1cm4gZmlyc3ROb25JZEZpZWxkIHx8IFwiaWRcIjtcbn1cbiJdLCJuYW1lcyI6WyJnZXRBdXRoVGFibGVzIiwiZ2VuZXJhdGVTY2hlbWFCdWlsZGVyU3RhZ2UiLCJCQU9wdGlvbnMiLCJjb2RlIiwicG9zdCIsImNvbGxlY3Rpb25zIiwicGFyc2VFeGlzdGluZ1NjaGVtYSIsInBheWxvYWRTY2hlbWFTdHIiLCJnZW5lcmF0ZVBheWxvYWRDb2xsZWN0aW9uQ29uZmlncyIsIm9wdGlvbnMiLCJleHBvcnRzIiwiY29sbGVjdGlvblJlZ2V4IiwibWF0Y2giLCJleGVjIiwiY29sbGVjdGlvbk5hbWUiLCJjb2xsZWN0aW9uRGVmIiwic2x1Z01hdGNoIiwic2x1ZyIsInRvTG93ZXJDYXNlIiwidGl0bGVNYXRjaCIsInVzZUFzVGl0bGUiLCJmaWVsZHNSZWdleCIsImZpZWxkc01hdGNoIiwiZmllbGRzIiwiZmllbGRCbG9ja1JlZ2V4IiwiZmllbGRCbG9ja3MiLCJmaWVsZEJsb2NrIiwibmFtZU1hdGNoIiwidHlwZU1hdGNoIiwicmVxdWlyZWRNYXRjaCIsInVuaXF1ZU1hdGNoIiwicmVsYXRpb25Ub01hdGNoIiwiZmllbGQiLCJuYW1lIiwidHlwZSIsInJlcXVpcmVkIiwidW5pcXVlIiwicmVsYXRpb25UbyIsInB1c2giLCJ0aW1lc3RhbXBzTWF0Y2giLCJoYXNUaW1lc3RhbXBzIiwiYWRtaW4iLCJ0aW1lc3RhbXBzIiwiZXhwb3J0UmVnZXgiLCJleHBvcnRNYXRjaCIsInJlc3VsdCIsImNvbGxlY3Rpb25zU3RyIiwidGFibGVzIiwiZXhpc3RpbmdDb2xsZWN0aW9uc0J5U2x1ZyIsInJlZHVjZSIsImFjYyIsImNvbGxlY3Rpb24iLCJ0YWJsZUtleSIsInRhYmxlIiwiT2JqZWN0IiwiZW50cmllcyIsIm1vZGVsTmFtZSIsImNhcGl0YWxpemVkIiwiY2hhckF0IiwidG9VcHBlckNhc2UiLCJzbGljZSIsImV4aXN0aW5nQ29sbGVjdGlvbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJyZXBsYWNlIiwiZ2V0TmFtZUZpZWxkIiwiZmllbGRLZXkiLCJmaWVsZE5hbWUiLCJmaWVsZFR5cGUiLCJtYXBGaWVsZFR5cGUiLCJpc1JlbGF0aW9uc2hpcCIsImVuZHNXaXRoIiwicmVmZXJlbmNlcyIsIm1vZGVsIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdFZhbHVlIiwidW5kZWZpbmVkIiwidG9TdHJpbmciLCJpbmNsdWRlcyIsInJlYWRPbmx5IiwidHJpbSIsImV4aXN0aW5nRXhwb3J0TWF0Y2giLCJleGlzdGluZ0NvbGxlY3Rpb25zIiwic3BsaXQiLCJtYXAiLCJ0YWJsZUNvbGxlY3Rpb25zIiwia2V5cyIsImFsbENvbGxlY3Rpb25zIiwiU2V0Iiwiam9pbiIsImxlbmd0aCIsImNvbGxlY3Rpb25OYW1lcyIsInBhc2NhbENhc2UiLCJuYW1lT3B0aW9ucyIsIm9wdGlvbiIsImZpcnN0Tm9uSWRGaWVsZCIsImZpbmQiLCJrIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FpQkMsR0FFRCxTQUFTQSxhQUFhLFFBQVEsaUJBQWlCO0FBRy9DLE9BQU8sTUFBTUMsNkJBQTZCLE9BQU8sRUFDL0NDLFNBQVMsRUFDVEMsSUFBSSxFQUlMO0lBQ0MsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFdBQVcsRUFBRSxHQUFHQyxvQkFBb0JIO0lBRWxELE1BQU1JLG1CQUFtQkMsaUNBQWlDO1FBQ3hEQyxTQUFTUDtRQUNURztRQUNBSyxTQUFTTjtJQUNYO0lBRUEsT0FBT0c7QUFDVCxFQUFFO0FBRUYsU0FBU0Qsb0JBQW9CSCxJQUFZO0lBSXZDLE1BQU1FLGNBQWtDLEVBQUU7SUFDMUMsSUFBSUQsT0FBTztJQUVYLGlDQUFpQztJQUNqQyxNQUFNTyxrQkFDSjtJQUNGLElBQUlDO0lBQ0osTUFBTyxBQUFDQSxDQUFBQSxRQUFRRCxnQkFBZ0JFLElBQUksQ0FBQ1YsS0FBSSxNQUFPLEtBQU07UUFDcEQsTUFBTVcsaUJBQWlCRixLQUFLLENBQUMsRUFBRTtRQUMvQixNQUFNRyxnQkFBZ0JILEtBQUssQ0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-payload-schema.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/generate-schema/get-payload-schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,GAC3B,gBAAgB,MAAM,KACrB,OAAO,CAAC,MAAM,CA0BhB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
export const getPayloadSchema = async (payloadDirPath)=>{
|
|
3
|
+
let files;
|
|
4
|
+
try {
|
|
5
|
+
files = await fs.readdir(payloadDirPath);
|
|
6
|
+
} catch (error) {
|
|
7
|
+
if (error.code === "ENOENT") {
|
|
8
|
+
throw new Error(`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.`);
|
|
9
|
+
}
|
|
10
|
+
console.error(error);
|
|
11
|
+
throw new Error(`Failed to access payload directory at "${payloadDirPath}".`);
|
|
12
|
+
}
|
|
13
|
+
if (!files.includes(`schema.ts`)) return "";
|
|
14
|
+
try {
|
|
15
|
+
const schemaCode = await fs.readFile(`${payloadDirPath}/schema.ts`, "utf8");
|
|
16
|
+
return schemaCode;
|
|
17
|
+
} catch (error) {
|
|
18
|
+
console.error(error);
|
|
19
|
+
throw new Error(`PayloadAdapter: Failed to read schema.ts file from "${payloadDirPath}".`);
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2dlbmVyYXRlLXNjaGVtYS9nZXQtcGF5bG9hZC1zY2hlbWEudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGZzIGZyb20gXCJub2RlOmZzL3Byb21pc2VzXCI7XG5cbmV4cG9ydCBjb25zdCBnZXRQYXlsb2FkU2NoZW1hID0gYXN5bmMgKFxuICBwYXlsb2FkRGlyUGF0aDogc3RyaW5nXG4pOiBQcm9taXNlPHN0cmluZz4gPT4ge1xuICBsZXQgZmlsZXM6IHN0cmluZ1tdO1xuICB0cnkge1xuICAgIGZpbGVzID0gYXdhaXQgZnMucmVhZGRpcihwYXlsb2FkRGlyUGF0aCk7XG4gIH0gY2F0Y2ggKGVycm9yOiBhbnkpIHtcbiAgICBpZiAoZXJyb3IuY29kZSA9PT0gXCJFTk9FTlRcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgUGF5bG9hZCBkaXJlY3Rvcnkgbm90IGZvdW5kIGF0IFwiJHtwYXlsb2FkRGlyUGF0aH1cIi4gUGxlYXNlIHJ1biB0aGlzIENMSSBmcm9tIHRoZSBwcm9qZWN0IHJvb3QgZGlyZWN0b3J5IHdoZXJlIHRoZSBwYXlsb2FkIGRpcmVjdG9yeSBpcyBsb2NhdGVkLCBvdGhlcndpc2Ugc3BlY2lmeSBhIHBheWxvYWQgZGlyZWN0b3J5IHBhdGggaW4geW91ciBwYXlsb2FkQWRhcHRlciBvcHRpb25zLCB1bmRlciBzY2hlbWFfZ2VuZXJhdGlvbi5wYXlsb2FkX2Rpcl9wYXRoLmBcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBGYWlsZWQgdG8gYWNjZXNzIHBheWxvYWQgZGlyZWN0b3J5IGF0IFwiJHtwYXlsb2FkRGlyUGF0aH1cIi5gXG4gICAgKTtcbiAgfVxuXG4gIGlmICghZmlsZXMuaW5jbHVkZXMoYHNjaGVtYS50c2ApKSByZXR1cm4gXCJcIjtcbiAgdHJ5IHtcbiAgICBjb25zdCBzY2hlbWFDb2RlID0gYXdhaXQgZnMucmVhZEZpbGUoYCR7cGF5bG9hZERpclBhdGh9L3NjaGVtYS50c2AsIFwidXRmOFwiKTtcbiAgICByZXR1cm4gc2NoZW1hQ29kZTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgUGF5bG9hZEFkYXB0ZXI6IEZhaWxlZCB0byByZWFkIHNjaGVtYS50cyBmaWxlIGZyb20gXCIke3BheWxvYWREaXJQYXRofVwiLmBcbiAgICApO1xuICB9XG59O1xuIl0sIm5hbWVzIjpbImZzIiwiZ2V0UGF5bG9hZFNjaGVtYSIsInBheWxvYWREaXJQYXRoIiwiZmlsZXMiLCJyZWFkZGlyIiwiZXJyb3IiLCJjb2RlIiwiRXJyb3IiLCJjb25zb2xlIiwiaW5jbHVkZXMiLCJzY2hlbWFDb2RlIiwicmVhZEZpbGUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFFBQVEsbUJBQW1CO0FBRWxDLE9BQU8sTUFBTUMsbUJBQW1CLE9BQzlCQztJQUVBLElBQUlDO0lBQ0osSUFBSTtRQUNGQSxRQUFRLE1BQU1ILEdBQUdJLE9BQU8sQ0FBQ0Y7SUFDM0IsRUFBRSxPQUFPRyxPQUFZO1FBQ25CLElBQUlBLE1BQU1DLElBQUksS0FBSyxVQUFVO1lBQzNCLE1BQU0sSUFBSUMsTUFDUixDQUFDLGdDQUFnQyxFQUFFTCxlQUFlLG1OQUFtTixDQUFDO1FBRTFRO1FBQ0FNLFFBQVFILEtBQUssQ0FBQ0E7UUFDZCxNQUFNLElBQUlFLE1BQ1IsQ0FBQyx1Q0FBdUMsRUFBRUwsZUFBZSxFQUFFLENBQUM7SUFFaEU7SUFFQSxJQUFJLENBQUNDLE1BQU1NLFFBQVEsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU87SUFDekMsSUFBSTtRQUNGLE1BQU1DLGFBQWEsTUFBTVYsR0FBR1csUUFBUSxDQUFDLEdBQUdULGVBQWUsVUFBVSxDQUFDLEVBQUU7UUFDcEUsT0FBT1E7SUFDVCxFQUFFLE9BQU9MLE9BQU87UUFDZEcsUUFBUUgsS0FBSyxDQUFDQTtRQUNkLE1BQU0sSUFBSUUsTUFDUixDQUFDLG9EQUFvRCxFQUFFTCxlQUFlLEVBQUUsQ0FBQztJQUU3RTtBQUNGLEVBQUUifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/generate-schema/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAIrD,eAAO,MAAM,cAAc,GACzB,WAAW,iBAAiB,EAC5B,UAAS;IAAE,SAAS,EAAE,MAAM,CAAA;CAE3B,KACA,OAAO,CAAC,MAAM,CAahB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import fs from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { generateSchemaBuilderStage } from "./generate-schema-builder";
|
|
4
|
+
import { getPayloadSchema } from "./get-payload-schema";
|
|
5
|
+
export const generateSchema = async (BAoptions, options = {
|
|
6
|
+
outputDir: "./generated"
|
|
7
|
+
})=>{
|
|
8
|
+
const { outputDir } = options;
|
|
9
|
+
const existing_schema_code = await getPayloadSchema(outputDir);
|
|
10
|
+
const new_schema_code = await generateSchemaBuilderStage({
|
|
11
|
+
code: existing_schema_code,
|
|
12
|
+
BAOptions: BAoptions
|
|
13
|
+
});
|
|
14
|
+
const schemaPath = path.resolve(outputDir, "schema.ts");
|
|
15
|
+
await fs.writeFile(schemaPath, new_schema_code, "utf8");
|
|
16
|
+
return new_schema_code;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2dlbmVyYXRlLXNjaGVtYS9pbmRleC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgZnMgZnJvbSBcIm5vZGU6ZnMvcHJvbWlzZXNcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJub2RlOnBhdGhcIjtcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tIFwiYmV0dGVyLWF1dGhcIjtcbmltcG9ydCB7IGdlbmVyYXRlU2NoZW1hQnVpbGRlclN0YWdlIH0gZnJvbSBcIi4vZ2VuZXJhdGUtc2NoZW1hLWJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFBheWxvYWRTY2hlbWEgfSBmcm9tIFwiLi9nZXQtcGF5bG9hZC1zY2hlbWFcIjtcblxuZXhwb3J0IGNvbnN0IGdlbmVyYXRlU2NoZW1hID0gYXN5bmMgKFxuICBCQW9wdGlvbnM6IEJldHRlckF1dGhPcHRpb25zLFxuICBvcHRpb25zOiB7IG91dHB1dERpcjogc3RyaW5nIH0gPSB7XG4gICAgb3V0cHV0RGlyOiBcIi4vZ2VuZXJhdGVkXCJcbiAgfVxuKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgY29uc3QgeyBvdXRwdXREaXIgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGV4aXN0aW5nX3NjaGVtYV9jb2RlOiBzdHJpbmcgPSBhd2FpdCBnZXRQYXlsb2FkU2NoZW1hKG91dHB1dERpcik7XG5cbiAgY29uc3QgbmV3X3NjaGVtYV9jb2RlID0gYXdhaXQgZ2VuZXJhdGVTY2hlbWFCdWlsZGVyU3RhZ2Uoe1xuICAgIGNvZGU6IGV4aXN0aW5nX3NjaGVtYV9jb2RlLFxuICAgIEJBT3B0aW9uczogQkFvcHRpb25zXG4gIH0pO1xuXG4gIGNvbnN0IHNjaGVtYVBhdGggPSBwYXRoLnJlc29sdmUob3V0cHV0RGlyLCBcInNjaGVtYS50c1wiKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHNjaGVtYVBhdGgsIG5ld19zY2hlbWFfY29kZSwgXCJ1dGY4XCIpO1xuXG4gIHJldHVybiBuZXdfc2NoZW1hX2NvZGU7XG59O1xuIl0sIm5hbWVzIjpbImZzIiwicGF0aCIsImdlbmVyYXRlU2NoZW1hQnVpbGRlclN0YWdlIiwiZ2V0UGF5bG9hZFNjaGVtYSIsImdlbmVyYXRlU2NoZW1hIiwiQkFvcHRpb25zIiwib3B0aW9ucyIsIm91dHB1dERpciIsImV4aXN0aW5nX3NjaGVtYV9jb2RlIiwibmV3X3NjaGVtYV9jb2RlIiwiY29kZSIsIkJBT3B0aW9ucyIsInNjaGVtYVBhdGgiLCJyZXNvbHZlIiwid3JpdGVGaWxlIl0sIm1hcHBpbmdzIjoiQUFBQSxPQUFPQSxRQUFRLG1CQUFtQjtBQUNsQyxPQUFPQyxVQUFVLFlBQVk7QUFFN0IsU0FBU0MsMEJBQTBCLFFBQVEsNEJBQTRCO0FBQ3ZFLFNBQVNDLGdCQUFnQixRQUFRLHVCQUF1QjtBQUV4RCxPQUFPLE1BQU1DLGlCQUFpQixPQUM1QkMsV0FDQUMsVUFBaUM7SUFDL0JDLFdBQVc7QUFDYixDQUFDO0lBRUQsTUFBTSxFQUFFQSxTQUFTLEVBQUUsR0FBR0Q7SUFDdEIsTUFBTUUsdUJBQStCLE1BQU1MLGlCQUFpQkk7SUFFNUQsTUFBTUUsa0JBQWtCLE1BQU1QLDJCQUEyQjtRQUN2RFEsTUFBTUY7UUFDTkcsV0FBV047SUFDYjtJQUVBLE1BQU1PLGFBQWFYLEtBQUtZLE9BQU8sQ0FBQ04sV0FBVztJQUMzQyxNQUFNUCxHQUFHYyxTQUFTLENBQUNGLFlBQVlILGlCQUFpQjtJQUVoRCxPQUFPQTtBQUNULEVBQUUifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/adapter/generate-schema/utils.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAI,UAM9C;AAED,wBAAgB,cAAc,CAAC,yBAAyB,CAAC,EAAE,MAAM,UAehE"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import path from "node:path";
|
|
2
|
+
export function padding(str, indent = 2) {
|
|
3
|
+
if (str.trim() === "") return "";
|
|
4
|
+
return str.split("\n").map((x)=>x.length > 0 ? `${" ".repeat(indent)}${x}` : x).join("\n");
|
|
5
|
+
}
|
|
6
|
+
export function getPayloadPath(provided_payload_dir_path) {
|
|
7
|
+
const base_path = process.cwd();
|
|
8
|
+
// If no path provided, use default "convex" in current directory
|
|
9
|
+
if (!provided_payload_dir_path) {
|
|
10
|
+
return path.join(base_path, "payload");
|
|
11
|
+
}
|
|
12
|
+
// If it's already an absolute path and exists, use it directly
|
|
13
|
+
if (path.isAbsolute(provided_payload_dir_path)) {
|
|
14
|
+
return provided_payload_dir_path;
|
|
15
|
+
}
|
|
16
|
+
// Otherwise, treat it as relative to current directory
|
|
17
|
+
return path.join(base_path, provided_payload_dir_path);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9hZGFwdGVyL2dlbmVyYXRlLXNjaGVtYS91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBwYWRkaW5nKHN0cjogc3RyaW5nLCBpbmRlbnQgPSAyKSB7XG4gIGlmIChzdHIudHJpbSgpID09PSBcIlwiKSByZXR1cm4gXCJcIjtcbiAgcmV0dXJuIHN0clxuICAgIC5zcGxpdChcIlxcblwiKVxuICAgIC5tYXAoKHgpID0+ICh4Lmxlbmd0aCA+IDAgPyBgJHtcIiBcIi5yZXBlYXQoaW5kZW50KX0ke3h9YCA6IHgpKVxuICAgIC5qb2luKFwiXFxuXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGF5bG9hZFBhdGgocHJvdmlkZWRfcGF5bG9hZF9kaXJfcGF0aD86IHN0cmluZykge1xuICBjb25zdCBiYXNlX3BhdGggPSBwcm9jZXNzLmN3ZCgpO1xuXG4gIC8vIElmIG5vIHBhdGggcHJvdmlkZWQsIHVzZSBkZWZhdWx0IFwiY29udmV4XCIgaW4gY3VycmVudCBkaXJlY3RvcnlcbiAgaWYgKCFwcm92aWRlZF9wYXlsb2FkX2Rpcl9wYXRoKSB7XG4gICAgcmV0dXJuIHBhdGguam9pbihiYXNlX3BhdGgsIFwicGF5bG9hZFwiKTtcbiAgfVxuXG4gIC8vIElmIGl0J3MgYWxyZWFkeSBhbiBhYnNvbHV0ZSBwYXRoIGFuZCBleGlzdHMsIHVzZSBpdCBkaXJlY3RseVxuICBpZiAocGF0aC5pc0Fic29sdXRlKHByb3ZpZGVkX3BheWxvYWRfZGlyX3BhdGgpKSB7XG4gICAgcmV0dXJuIHByb3ZpZGVkX3BheWxvYWRfZGlyX3BhdGg7XG4gIH1cblxuICAvLyBPdGhlcndpc2UsIHRyZWF0IGl0IGFzIHJlbGF0aXZlIHRvIGN1cnJlbnQgZGlyZWN0b3J5XG4gIHJldHVybiBwYXRoLmpvaW4oYmFzZV9wYXRoLCBwcm92aWRlZF9wYXlsb2FkX2Rpcl9wYXRoKTtcbn1cbiJdLCJuYW1lcyI6WyJwYXRoIiwicGFkZGluZyIsInN0ciIsImluZGVudCIsInRyaW0iLCJzcGxpdCIsIm1hcCIsIngiLCJsZW5ndGgiLCJyZXBlYXQiLCJqb2luIiwiZ2V0UGF5bG9hZFBhdGgiLCJwcm92aWRlZF9wYXlsb2FkX2Rpcl9wYXRoIiwiYmFzZV9wYXRoIiwicHJvY2VzcyIsImN3ZCIsImlzQWJzb2x1dGUiXSwibWFwcGluZ3MiOiJBQUFBLE9BQU9BLFVBQVUsWUFBWTtBQUU3QixPQUFPLFNBQVNDLFFBQVFDLEdBQVcsRUFBRUMsU0FBUyxDQUFDO0lBQzdDLElBQUlELElBQUlFLElBQUksT0FBTyxJQUFJLE9BQU87SUFDOUIsT0FBT0YsSUFDSkcsS0FBSyxDQUFDLE1BQ05DLEdBQUcsQ0FBQyxDQUFDQyxJQUFPQSxFQUFFQyxNQUFNLEdBQUcsSUFBSSxHQUFHLElBQUlDLE1BQU0sQ0FBQ04sVUFBVUksR0FBRyxHQUFHQSxHQUN6REcsSUFBSSxDQUFDO0FBQ1Y7QUFFQSxPQUFPLFNBQVNDLGVBQWVDLHlCQUFrQztJQUMvRCxNQUFNQyxZQUFZQyxRQUFRQyxHQUFHO0lBRTdCLGlFQUFpRTtJQUNqRSxJQUFJLENBQUNILDJCQUEyQjtRQUM5QixPQUFPWixLQUFLVSxJQUFJLENBQUNHLFdBQVc7SUFDOUI7SUFFQSwrREFBK0Q7SUFDL0QsSUFBSWIsS0FBS2dCLFVBQVUsQ0FBQ0osNEJBQTRCO1FBQzlDLE9BQU9BO0lBQ1Q7SUFFQSx1REFBdUQ7SUFDdkQsT0FBT1osS0FBS1UsSUFBSSxDQUFDRyxXQUFXRDtBQUM5QiJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { generateSchema } from "./generate-schema";
|
|
2
|
+
import type { PayloadAdapter } from "./types";
|
|
3
|
+
export declare const BETTER_AUTH_CONTEXT_KEY = "payload-db-adapter";
|
|
4
|
+
/**
|
|
5
|
+
* Payload adapter for Better Auth.
|
|
6
|
+
*
|
|
7
|
+
* This adapter connects Better Auth to Payload CMS, allowing authentication
|
|
8
|
+
* operations to be performed against Payload collections.
|
|
9
|
+
*
|
|
10
|
+
* @param payloadClient - The Payload CMS client instance or a function that returns it
|
|
11
|
+
* @param config - Configuration options for the adapter
|
|
12
|
+
* @returns A function that creates a Better Auth adapter
|
|
13
|
+
*/
|
|
14
|
+
declare const payloadAdapter: PayloadAdapter;
|
|
15
|
+
export { generateSchema, payloadAdapter };
|
|
16
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/adapter/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,eAAO,MAAM,uBAAuB,uBAAuB,CAAC;AAa5D;;;;;;;;;GASG;AACH,QAAA,MAAM,cAAc,EAAE,cAqvBrB,CAAC;AAEF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
|