payload-auth 1.4.0 → 1.5.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/index.d.ts +10 -0
- package/dist/better-auth/adapter/index.d.ts.map +1 -1
- package/dist/better-auth/adapter/index.js +151 -125
- package/dist/better-auth/adapter/transform/index.d.ts +2 -4
- package/dist/better-auth/adapter/transform/index.d.ts.map +1 -1
- package/dist/better-auth/adapter/transform/index.js +435 -311
- package/dist/better-auth/generated-types.d.ts +216 -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/plugin/constants.d.ts +146 -3
- package/dist/better-auth/plugin/constants.d.ts.map +1 -1
- package/dist/better-auth/plugin/constants.js +149 -6
- 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/get-better-auth-schema.d.ts +22 -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 +50 -0
- package/dist/better-auth/plugin/helpers/get-collection-schema-map.d.ts +16 -0
- package/dist/better-auth/plugin/helpers/get-collection-schema-map.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection-schema-map.js +108 -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 +41 -0
- package/dist/better-auth/plugin/helpers/get-collection.d.ts.map +1 -0
- package/dist/better-auth/plugin/helpers/get-collection.js +62 -0
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts +52 -14
- package/dist/better-auth/plugin/helpers/prepare-session-data.d.ts.map +1 -1
- package/dist/better-auth/plugin/helpers/prepare-session-data.js +41 -35
- package/dist/better-auth/plugin/index.d.ts +3 -3
- package/dist/better-auth/plugin/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/index.js +31 -40
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts +2 -6
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/accounts/hooks/sync-password-to-user.js +22 -7
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts +3 -6
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/accounts/index.js +96 -102
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts +2 -2
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/admin-invitations/index.js +6 -5
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/api-keys.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/api-keys.js +97 -113
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts +6 -6
- package/dist/better-auth/plugin/lib/build-collections/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/index.js +68 -84
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts +2 -4
- package/dist/better-auth/plugin/lib/build-collections/invitations.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/invitations.js +75 -70
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/jwks.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/jwks.js +46 -28
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/members.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/members.js +52 -48
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/oauth-access-tokens.js +74 -64
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/oauth-applications.js +78 -71
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/oauth-consents.js +68 -45
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/organizations.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/organizations.js +52 -39
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/passkeys.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/passkeys.js +60 -64
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts +3 -7
- package/dist/better-auth/plugin/lib/build-collections/sessions.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/sessions.js +100 -96
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/sso-providers.js +56 -56
- 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 +113 -0
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/teams.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/teams.js +62 -30
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts +3 -5
- package/dist/better-auth/plugin/lib/build-collections/two-factors.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/two-factors.js +50 -37
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/better-auth-strategy.js +5 -5
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/generate-invite-url.js +3 -3
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/index.d.ts +6 -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 +7 -0
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/set-admin-role.js +4 -4
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts +2 -2
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/endpoints/signup.js +93 -96
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts +1 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-login.js +27 -16
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts +1 -5
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/after-logout.js +16 -8
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts +2 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-delete.js +25 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts +2 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/before-login.js +5 -8
- 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 +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/on-verified-change.js +15 -12
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts +1 -6
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/hooks/sync-account.js +21 -10
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts +3 -7
- package/dist/better-auth/plugin/lib/build-collections/users/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/users/index.js +153 -210
- 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 +32 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts +1 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.js +1 -1
- package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts +17 -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 +21 -0
- package/dist/better-auth/plugin/lib/build-collections/utils/transform-schema-fields-to-payload.d.ts +22 -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 +3 -6
- package/dist/better-auth/plugin/lib/build-collections/verifications.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/build-collections/verifications.js +62 -40
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/admin-plugin.js +4 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/api-key-plugin.js +8 -15
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts +5 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/index.js +56 -69
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/oidc-plugin.js +16 -55
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/organizations-plugin.js +21 -83
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/passkey-plugin.js +8 -15
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts +2 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/sso-plugin.js +8 -15
- 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 +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +3 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +3 -3
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts +5 -4
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/save-to-jwt-middleware.js +19 -17
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts +1 -1
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -1
- package/dist/better-auth/plugin/lib/set-login-methods.js +5 -6
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-login/client.js +2 -2
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts +4 -4
- package/dist/better-auth/plugin/payload/views/admin-login/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-login/index.js +7 -8
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/client.js +27 -7
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +4 -5
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/admin-signup/index.js +6 -6
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts +1 -5
- package/dist/better-auth/plugin/payload/views/forgot-password/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/forgot-password/index.js +1 -1
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts +3 -3
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/two-factor-verify/index.js +10 -7
- package/dist/better-auth/plugin/types.d.ts +41 -13
- package/dist/better-auth/plugin/types.d.ts.map +1 -1
- package/dist/better-auth/plugin/types.js +1 -1
- 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 +219 -0
- package/dist/shared/form/validation.d.ts +31 -7
- package/dist/shared/form/validation.d.ts.map +1 -1
- package/dist/shared/form/validation.js +13 -5
- package/package.json +14 -4
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts +0 -3
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.d.ts.map +0 -1
- package/dist/better-auth/plugin/helpers/check-passkey-plugin.js +0 -6
- package/dist/better-auth/plugin/helpers/check-two-factor-plugin.d.ts +0 -3
- package/dist/better-auth/plugin/helpers/check-two-factor-plugin.d.ts.map +0 -1
- package/dist/better-auth/plugin/helpers/check-two-factor-plugin.js +0 -6
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts +0 -3
- package/dist/better-auth/plugin/helpers/check-username-plugin.d.ts.map +0 -1
- package/dist/better-auth/plugin/helpers/check-username-plugin.js +0 -6
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts +0 -10
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.d.ts.map +0 -1
- package/dist/better-auth/plugin/lib/get-required-collection-slugs.js +0 -35
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts +0 -15
- package/dist/better-auth/plugin/payload/utils/generate-metadata.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/utils/generate-metadata.js +0 -74
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks if a plugin with the specified ID exists in the Better Auth options
|
|
3
|
+
*
|
|
4
|
+
* This utility function examines the plugins array in the provided Better Auth options
|
|
5
|
+
* to determine if a plugin with the given ID is already registered.
|
|
6
|
+
*
|
|
7
|
+
* @param options - The Better Auth configuration options
|
|
8
|
+
* @param pluginId - The unique identifier of the plugin to check for
|
|
9
|
+
* @returns `true` if a plugin with the specified ID exists, `false` otherwise
|
|
10
|
+
*/ export function checkPluginExists(options, pluginId) {
|
|
11
|
+
return options.plugins?.some((plugin)=>plugin.id === pluginId) || false;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9jaGVjay1wbHVnaW4tZXhpc3RzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcblxuLyoqXG4gKiBDaGVja3MgaWYgYSBwbHVnaW4gd2l0aCB0aGUgc3BlY2lmaWVkIElEIGV4aXN0cyBpbiB0aGUgQmV0dGVyIEF1dGggb3B0aW9uc1xuICpcbiAqIFRoaXMgdXRpbGl0eSBmdW5jdGlvbiBleGFtaW5lcyB0aGUgcGx1Z2lucyBhcnJheSBpbiB0aGUgcHJvdmlkZWQgQmV0dGVyIEF1dGggb3B0aW9uc1xuICogdG8gZGV0ZXJtaW5lIGlmIGEgcGx1Z2luIHdpdGggdGhlIGdpdmVuIElEIGlzIGFscmVhZHkgcmVnaXN0ZXJlZC5cbiAqXG4gKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBCZXR0ZXIgQXV0aCBjb25maWd1cmF0aW9uIG9wdGlvbnNcbiAqIEBwYXJhbSBwbHVnaW5JZCAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgcGx1Z2luIHRvIGNoZWNrIGZvclxuICogQHJldHVybnMgYHRydWVgIGlmIGEgcGx1Z2luIHdpdGggdGhlIHNwZWNpZmllZCBJRCBleGlzdHMsIGBmYWxzZWAgb3RoZXJ3aXNlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BsdWdpbkV4aXN0cyhvcHRpb25zOiBCZXR0ZXJBdXRoT3B0aW9ucywgcGx1Z2luSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3B0aW9ucy5wbHVnaW5zPy5zb21lKChwbHVnaW4pID0+IHBsdWdpbi5pZCA9PT0gcGx1Z2luSWQpIHx8IGZhbHNlXG59XG4iXSwibmFtZXMiOlsiY2hlY2tQbHVnaW5FeGlzdHMiLCJvcHRpb25zIiwicGx1Z2luSWQiLCJwbHVnaW5zIiwic29tZSIsInBsdWdpbiIsImlkIl0sIm1hcHBpbmdzIjoiQUFFQTs7Ozs7Ozs7O0NBU0MsR0FDRCxPQUFPLFNBQVNBLGtCQUFrQkMsT0FBMEIsRUFBRUMsUUFBZ0I7SUFDNUUsT0FBT0QsUUFBUUUsT0FBTyxFQUFFQyxLQUFLLENBQUNDLFNBQVdBLE9BQU9DLEVBQUUsS0FBS0osYUFBYTtBQUN0RSJ9
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { type FieldAttribute } from 'better-auth/db';
|
|
2
|
+
import type { BetterAuthOptions } from 'better-auth';
|
|
3
|
+
/**
|
|
4
|
+
* This is a slighlty modfied version of the getSchema function from better-auth.
|
|
5
|
+
* Found here: https://github.com/better-auth/better-auth/blob/main/packages/better-auth/src/db/get-schema.ts
|
|
6
|
+
*
|
|
7
|
+
* We DON'T do this:
|
|
8
|
+
* actualFields[field.fieldName || key] = field;
|
|
9
|
+
*
|
|
10
|
+
* Instead we will do this:
|
|
11
|
+
* actualFields[key] = field;
|
|
12
|
+
*
|
|
13
|
+
* This is to contain consistency when statically hard coded keys.
|
|
14
|
+
*
|
|
15
|
+
* @param config - The better auth config
|
|
16
|
+
* @returns The schema for the better auth tables
|
|
17
|
+
*/
|
|
18
|
+
export declare function getBetterAuthSchema(config: BetterAuthOptions): Record<string, {
|
|
19
|
+
fields: Record<string, FieldAttribute>;
|
|
20
|
+
order: number;
|
|
21
|
+
}>;
|
|
22
|
+
//# sourceMappingURL=get-better-auth-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-better-auth-schema.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-better-auth-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAEpD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB;YAK/C,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC;WAC/B,MAAM;GAgClB"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getAuthTables } from "better-auth/db";
|
|
2
|
+
/**
|
|
3
|
+
* This is a slighlty modfied version of the getSchema function from better-auth.
|
|
4
|
+
* Found here: https://github.com/better-auth/better-auth/blob/main/packages/better-auth/src/db/get-schema.ts
|
|
5
|
+
*
|
|
6
|
+
* We DON'T do this:
|
|
7
|
+
* actualFields[field.fieldName || key] = field;
|
|
8
|
+
*
|
|
9
|
+
* Instead we will do this:
|
|
10
|
+
* actualFields[key] = field;
|
|
11
|
+
*
|
|
12
|
+
* This is to contain consistency when statically hard coded keys.
|
|
13
|
+
*
|
|
14
|
+
* @param config - The better auth config
|
|
15
|
+
* @returns The schema for the better auth tables
|
|
16
|
+
*/ export function getBetterAuthSchema(config) {
|
|
17
|
+
const tables = getAuthTables(config);
|
|
18
|
+
let schema = {};
|
|
19
|
+
for(const key in tables){
|
|
20
|
+
const table = tables[key];
|
|
21
|
+
const fields = table.fields;
|
|
22
|
+
let actualFields = {};
|
|
23
|
+
Object.entries(fields).forEach(([key, field])=>{
|
|
24
|
+
actualFields[key] = field;
|
|
25
|
+
if (field.references) {
|
|
26
|
+
const refTable = tables[field.references.model];
|
|
27
|
+
if (refTable) {
|
|
28
|
+
actualFields[key].references = {
|
|
29
|
+
model: refTable.modelName,
|
|
30
|
+
field: field.references.field
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
if (schema[table.modelName]) {
|
|
36
|
+
schema[table.modelName].fields = {
|
|
37
|
+
...schema[table.modelName].fields,
|
|
38
|
+
...actualFields
|
|
39
|
+
};
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
schema[table.modelName] = {
|
|
43
|
+
fields: actualFields,
|
|
44
|
+
order: table.order || Infinity
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return schema;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtYmV0dGVyLWF1dGgtc2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldEF1dGhUYWJsZXMsIHR5cGUgRmllbGRBdHRyaWJ1dGUgfSBmcm9tICdiZXR0ZXItYXV0aC9kYidcbmltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICdiZXR0ZXItYXV0aCdcblxuLyoqXG4gKiBUaGlzIGlzIGEgc2xpZ2hsdHkgbW9kZmllZCB2ZXJzaW9uIG9mIHRoZSBnZXRTY2hlbWEgZnVuY3Rpb24gZnJvbSBiZXR0ZXItYXV0aC5cbiAqIEZvdW5kIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS9iZXR0ZXItYXV0aC9iZXR0ZXItYXV0aC9ibG9iL21haW4vcGFja2FnZXMvYmV0dGVyLWF1dGgvc3JjL2RiL2dldC1zY2hlbWEudHNcbiAqXG4gKiBXZSBET04nVCBkbyB0aGlzOlxuICogYWN0dWFsRmllbGRzW2ZpZWxkLmZpZWxkTmFtZSB8fCBrZXldID0gZmllbGQ7XG4gKlxuICogSW5zdGVhZCB3ZSB3aWxsIGRvIHRoaXM6XG4gKiBhY3R1YWxGaWVsZHNba2V5XSA9IGZpZWxkO1xuICpcbiAqIFRoaXMgaXMgdG8gY29udGFpbiBjb25zaXN0ZW5jeSB3aGVuIHN0YXRpY2FsbHkgaGFyZCBjb2RlZCBrZXlzLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBUaGUgYmV0dGVyIGF1dGggY29uZmlnXG4gKiBAcmV0dXJucyBUaGUgc2NoZW1hIGZvciB0aGUgYmV0dGVyIGF1dGggdGFibGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRCZXR0ZXJBdXRoU2NoZW1hKGNvbmZpZzogQmV0dGVyQXV0aE9wdGlvbnMpIHtcbiAgY29uc3QgdGFibGVzID0gZ2V0QXV0aFRhYmxlcyhjb25maWcpXG4gIGxldCBzY2hlbWE6IFJlY29yZDxcbiAgICBzdHJpbmcsXG4gICAge1xuICAgICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBGaWVsZEF0dHJpYnV0ZT5cbiAgICAgIG9yZGVyOiBudW1iZXJcbiAgICB9XG4gID4gPSB7fVxuICBmb3IgKGNvbnN0IGtleSBpbiB0YWJsZXMpIHtcbiAgICBjb25zdCB0YWJsZSA9IHRhYmxlc1trZXldXG4gICAgY29uc3QgZmllbGRzID0gdGFibGUuZmllbGRzXG4gICAgbGV0IGFjdHVhbEZpZWxkczogUmVjb3JkPHN0cmluZywgRmllbGRBdHRyaWJ1dGU+ID0ge31cbiAgICBPYmplY3QuZW50cmllcyhmaWVsZHMpLmZvckVhY2goKFtrZXksIGZpZWxkXSkgPT4ge1xuICAgICAgYWN0dWFsRmllbGRzW2tleV0gPSBmaWVsZFxuICAgICAgaWYgKGZpZWxkLnJlZmVyZW5jZXMpIHtcbiAgICAgICAgY29uc3QgcmVmVGFibGUgPSB0YWJsZXNbZmllbGQucmVmZXJlbmNlcy5tb2RlbF1cbiAgICAgICAgaWYgKHJlZlRhYmxlKSB7XG4gICAgICAgICAgYWN0dWFsRmllbGRzW2tleV0ucmVmZXJlbmNlcyA9IHtcbiAgICAgICAgICAgIG1vZGVsOiByZWZUYWJsZS5tb2RlbE5hbWUsXG4gICAgICAgICAgICBmaWVsZDogZmllbGQucmVmZXJlbmNlcy5maWVsZFxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgaWYgKHNjaGVtYVt0YWJsZS5tb2RlbE5hbWVdKSB7XG4gICAgICBzY2hlbWFbdGFibGUubW9kZWxOYW1lXS5maWVsZHMgPSB7XG4gICAgICAgIC4uLnNjaGVtYVt0YWJsZS5tb2RlbE5hbWVdLmZpZWxkcyxcbiAgICAgICAgLi4uYWN0dWFsRmllbGRzXG4gICAgICB9XG4gICAgICBjb250aW51ZVxuICAgIH1cbiAgICBzY2hlbWFbdGFibGUubW9kZWxOYW1lXSA9IHtcbiAgICAgIGZpZWxkczogYWN0dWFsRmllbGRzLFxuICAgICAgb3JkZXI6IHRhYmxlLm9yZGVyIHx8IEluZmluaXR5XG4gICAgfVxuICB9XG4gIHJldHVybiBzY2hlbWFcbn1cbiJdLCJuYW1lcyI6WyJnZXRBdXRoVGFibGVzIiwiZ2V0QmV0dGVyQXV0aFNjaGVtYSIsImNvbmZpZyIsInRhYmxlcyIsInNjaGVtYSIsImtleSIsInRhYmxlIiwiZmllbGRzIiwiYWN0dWFsRmllbGRzIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJmaWVsZCIsInJlZmVyZW5jZXMiLCJyZWZUYWJsZSIsIm1vZGVsIiwibW9kZWxOYW1lIiwib3JkZXIiLCJJbmZpbml0eSJdLCJtYXBwaW5ncyI6IkFBQUEsU0FBU0EsYUFBYSxRQUE2QixpQkFBZ0I7QUFHbkU7Ozs7Ozs7Ozs7Ozs7O0NBY0MsR0FDRCxPQUFPLFNBQVNDLG9CQUFvQkMsTUFBeUI7SUFDM0QsTUFBTUMsU0FBU0gsY0FBY0U7SUFDN0IsSUFBSUUsU0FNQSxDQUFDO0lBQ0wsSUFBSyxNQUFNQyxPQUFPRixPQUFRO1FBQ3hCLE1BQU1HLFFBQVFILE1BQU0sQ0FBQ0UsSUFBSTtRQUN6QixNQUFNRSxTQUFTRCxNQUFNQyxNQUFNO1FBQzNCLElBQUlDLGVBQStDLENBQUM7UUFDcERDLE9BQU9DLE9BQU8sQ0FBQ0gsUUFBUUksT0FBTyxDQUFDLENBQUMsQ0FBQ04sS0FBS08sTUFBTTtZQUMxQ0osWUFBWSxDQUFDSCxJQUFJLEdBQUdPO1lBQ3BCLElBQUlBLE1BQU1DLFVBQVUsRUFBRTtnQkFDcEIsTUFBTUMsV0FBV1gsTUFBTSxDQUFDUyxNQUFNQyxVQUFVLENBQUNFLEtBQUssQ0FBQztnQkFDL0MsSUFBSUQsVUFBVTtvQkFDWk4sWUFBWSxDQUFDSCxJQUFJLENBQUNRLFVBQVUsR0FBRzt3QkFDN0JFLE9BQU9ELFNBQVNFLFNBQVM7d0JBQ3pCSixPQUFPQSxNQUFNQyxVQUFVLENBQUNELEtBQUs7b0JBQy9CO2dCQUNGO1lBQ0Y7UUFDRjtRQUNBLElBQUlSLE1BQU0sQ0FBQ0UsTUFBTVUsU0FBUyxDQUFDLEVBQUU7WUFDM0JaLE1BQU0sQ0FBQ0UsTUFBTVUsU0FBUyxDQUFDLENBQUNULE1BQU0sR0FBRztnQkFDL0IsR0FBR0gsTUFBTSxDQUFDRSxNQUFNVSxTQUFTLENBQUMsQ0FBQ1QsTUFBTTtnQkFDakMsR0FBR0MsWUFBWTtZQUNqQjtZQUNBO1FBQ0Y7UUFDQUosTUFBTSxDQUFDRSxNQUFNVSxTQUFTLENBQUMsR0FBRztZQUN4QlQsUUFBUUM7WUFDUlMsT0FBT1gsTUFBTVcsS0FBSyxJQUFJQztRQUN4QjtJQUNGO0lBQ0EsT0FBT2Q7QUFDVCJ9
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { baModelKey } from '../constants';
|
|
2
|
+
import { BetterAuthPluginOptions } from '../types';
|
|
3
|
+
export type CollectionSchemaMap = Record<keyof typeof baModelKey, {
|
|
4
|
+
collectionSlug: string;
|
|
5
|
+
fields: Record<string, string>;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function getDefaultCollectionSchemaMap(pluginOptions: BetterAuthPluginOptions): CollectionSchemaMap;
|
|
8
|
+
/**
|
|
9
|
+
* Builds a collection schema map by analyzing collection overrides and extracting
|
|
10
|
+
* BetterAuth model keys and field mappings
|
|
11
|
+
*
|
|
12
|
+
* @param collectionOverrides - Collection override functions provided in plugin options
|
|
13
|
+
* @returns A collection schema map with default values merged with any overrides
|
|
14
|
+
*/
|
|
15
|
+
export declare function buildCollectionSchemaMap(pluginOptions: BetterAuthPluginOptions): CollectionSchemaMap;
|
|
16
|
+
//# sourceMappingURL=get-collection-schema-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-collection-schema-map.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-collection-schema-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgC,UAAU,EAAE,MAAM,cAAc,CAAA;AAQvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,MAAM,MAAM,mBAAmB,GAAG,MAAM,CACtC,MAAM,OAAO,UAAU,EACvB;IACE,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC/B,CACF,CAAA;AAED,wBAAgB,6BAA6B,CAAC,aAAa,EAAE,uBAAuB,GAAG,mBAAmB,CAmCzG;AAMD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,uBAAuB,GAAG,mBAAmB,CA0CpG"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { baModelFieldKeysToFieldNames, baModelKey } from "../constants";
|
|
2
|
+
import { getAuthTables } from "better-auth/db";
|
|
3
|
+
import { flattenAllFields } from "payload/shared";
|
|
4
|
+
import { getDeafultCollectionSlug } from "./get-collection-slug";
|
|
5
|
+
export function getDefaultCollectionSchemaMap(pluginOptions) {
|
|
6
|
+
const tables = getAuthTables(pluginOptions.betterAuthOptions ?? {});
|
|
7
|
+
const map = {};
|
|
8
|
+
Object.entries(tables).forEach(([key, table])=>{
|
|
9
|
+
const fieldNames = Object.entries(table.fields).map(([k, v])=>k);
|
|
10
|
+
const typedKey = key;
|
|
11
|
+
const value = {
|
|
12
|
+
collectionSlug: getDeafultCollectionSlug({
|
|
13
|
+
modelKey: typedKey,
|
|
14
|
+
pluginOptions
|
|
15
|
+
}),
|
|
16
|
+
fields: fieldNames.reduce((acc, field)=>{
|
|
17
|
+
if (typedKey in baModelFieldKeysToFieldNames && field in baModelFieldKeysToFieldNames[typedKey]) {
|
|
18
|
+
const fieldMapping = baModelFieldKeysToFieldNames[typedKey];
|
|
19
|
+
const typedField = field;
|
|
20
|
+
acc[field] = fieldMapping[typedField] || field;
|
|
21
|
+
} else {
|
|
22
|
+
acc[field] = field;
|
|
23
|
+
}
|
|
24
|
+
return acc;
|
|
25
|
+
}, {})
|
|
26
|
+
};
|
|
27
|
+
map[typedKey] = value;
|
|
28
|
+
});
|
|
29
|
+
// always add the role field to the user collection if not already present
|
|
30
|
+
if (!map[baModelKey.user].fields.role) {
|
|
31
|
+
map[baModelKey.user].fields.role = baModelFieldKeysToFieldNames.user.role;
|
|
32
|
+
}
|
|
33
|
+
return map;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Builds a collection schema map by analyzing collection overrides and extracting
|
|
37
|
+
* BetterAuth model keys and field mappings
|
|
38
|
+
*
|
|
39
|
+
* @param collectionOverrides - Collection override functions provided in plugin options
|
|
40
|
+
* @returns A collection schema map with default values merged with any overrides
|
|
41
|
+
*/ export function buildCollectionSchemaMap(pluginOptions) {
|
|
42
|
+
const collectionOverrides = {
|
|
43
|
+
users: pluginOptions.users?.collectionOverrides,
|
|
44
|
+
accounts: pluginOptions.accounts?.collectionOverrides,
|
|
45
|
+
sessions: pluginOptions.sessions?.collectionOverrides,
|
|
46
|
+
verifications: pluginOptions.verifications?.collectionOverrides,
|
|
47
|
+
...pluginOptions.pluginCollectionOverrides
|
|
48
|
+
};
|
|
49
|
+
const defaultCollectionSchemaMap = getDefaultCollectionSchemaMap(pluginOptions);
|
|
50
|
+
if (!collectionOverrides || Object.keys(collectionOverrides).length === 0) {
|
|
51
|
+
return {
|
|
52
|
+
...defaultCollectionSchemaMap
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const schemaMap = {
|
|
56
|
+
...defaultCollectionSchemaMap
|
|
57
|
+
};
|
|
58
|
+
Object.entries(collectionOverrides).forEach(([collectionSlug, overrideFunction])=>{
|
|
59
|
+
if (!overrideFunction) return;
|
|
60
|
+
const modifiedCollection = overrideFunction({
|
|
61
|
+
collection: {
|
|
62
|
+
slug: collectionSlug,
|
|
63
|
+
fields: []
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
const modelKey = assertModelKey(modifiedCollection);
|
|
67
|
+
schemaMap[modelKey].collectionSlug = modifiedCollection.slug;
|
|
68
|
+
const flattenedFields = flattenAllFields(modifiedCollection);
|
|
69
|
+
if (flattenedFields && Array.isArray(flattenedFields)) {
|
|
70
|
+
flattenedFields.forEach((field)=>{
|
|
71
|
+
// we only want to process fields that have a betterAuthFieldKey
|
|
72
|
+
// because its possible the user has added additional fields
|
|
73
|
+
if (field.custom?.betterAuthFieldKey) {
|
|
74
|
+
const fieldKey = assertFieldKey(field, modelKey, modifiedCollection.slug);
|
|
75
|
+
schemaMap[modelKey].fields[fieldKey] = field.name;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
return schemaMap;
|
|
81
|
+
}
|
|
82
|
+
function assertFieldKey(field, modelKey, collectionSlug) {
|
|
83
|
+
const fieldKey = field.custom?.betterAuthFieldKey;
|
|
84
|
+
// Assert that fieldKey is a valid key in the baModelFieldKeysToFieldNames mapping
|
|
85
|
+
if (!Object.values(baModelFieldKeysToFieldNames).some((fieldMap)=>Object.keys(fieldMap).includes(fieldKey))) {
|
|
86
|
+
throw new Error(`Invalid custom.betterAuthFieldKey: ${fieldKey} for field ${field.name} in collection ${collectionSlug},
|
|
87
|
+
must be one of ${Object.keys(baModelFieldKeysToFieldNames[modelKey]).join(', ')}`);
|
|
88
|
+
}
|
|
89
|
+
return fieldKey;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Asserts that a collection has a valid BetterAuth model key and returns it
|
|
93
|
+
*
|
|
94
|
+
* @param collection - The collection to check for a BetterAuth model key
|
|
95
|
+
* @returns The BetterAuth model key
|
|
96
|
+
* @throws Error if the collection does not have a valid BetterAuth model key
|
|
97
|
+
*/ function assertModelKey(collection) {
|
|
98
|
+
if (!collection.custom?.betterAuthModelKey) {
|
|
99
|
+
throw new Error(`Collection ${collection.slug} is missing a betterAuthModelKey in its custom field`);
|
|
100
|
+
}
|
|
101
|
+
const modelKey = collection.custom.betterAuthModelKey;
|
|
102
|
+
if (!Object.values(baModelKey).includes(modelKey)) {
|
|
103
|
+
throw new Error(`Collection ${collection.slug} has an invalid betterAuthModelKey: ${modelKey}`);
|
|
104
|
+
}
|
|
105
|
+
return modelKey;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zY2hlbWEtbWFwLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGJhTW9kZWxGaWVsZEtleXNUb0ZpZWxkTmFtZXMsIGJhTW9kZWxLZXkgfSBmcm9tICcuLi9jb25zdGFudHMnXG5pbXBvcnQgeyBnZXRBdXRoVGFibGVzIH0gZnJvbSAnYmV0dGVyLWF1dGgvZGInXG5pbXBvcnQgeyBCZXR0ZXJBdXRoT3B0aW9ucyB9IGZyb20gJ2JldHRlci1hdXRoL3R5cGVzJ1xuaW1wb3J0IHsgYmFNb2RlbEtleVRvU2x1ZyB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IEZsYXR0ZW5lZEZpZWxkIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB7IGZsYXR0ZW5BbGxGaWVsZHMgfSBmcm9tICdwYXlsb2FkL3NoYXJlZCdcbmltcG9ydCB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnIH0gZnJvbSAnLi9nZXQtY29sbGVjdGlvbi1zbHVnJ1xuaW1wb3J0IHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcblxuZXhwb3J0IHR5cGUgQ29sbGVjdGlvblNjaGVtYU1hcCA9IFJlY29yZDxcbiAga2V5b2YgdHlwZW9mIGJhTW9kZWxLZXksXG4gIHtcbiAgICBjb2xsZWN0aW9uU2x1Zzogc3RyaW5nXG4gICAgZmllbGRzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+XG4gIH1cbj5cblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwKHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zKTogQ29sbGVjdGlvblNjaGVtYU1hcCB7XG4gIGNvbnN0IHRhYmxlcyA9IGdldEF1dGhUYWJsZXMocGx1Z2luT3B0aW9ucy5iZXR0ZXJBdXRoT3B0aW9ucyA/PyB7fSlcbiAgY29uc3QgbWFwID0ge30gYXMgQ29sbGVjdGlvblNjaGVtYU1hcFxuICBPYmplY3QuZW50cmllcyh0YWJsZXMpLmZvckVhY2goKFtrZXksIHRhYmxlXSkgPT4ge1xuICAgIGNvbnN0IGZpZWxkTmFtZXMgPSBPYmplY3QuZW50cmllcyh0YWJsZS5maWVsZHMpLm1hcCgoW2ssIHZdKSA9PiBrKVxuICAgIGNvbnN0IHR5cGVkS2V5ID0ga2V5IGFzIGtleW9mIHR5cGVvZiBiYU1vZGVsS2V5VG9TbHVnXG4gICAgY29uc3QgdmFsdWUgPSB7XG4gICAgICBjb2xsZWN0aW9uU2x1ZzogZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnKHsgbW9kZWxLZXk6IHR5cGVkS2V5LCBwbHVnaW5PcHRpb25zIH0pLFxuICAgICAgZmllbGRzOiBmaWVsZE5hbWVzLnJlZHVjZShcbiAgICAgICAgKGFjYywgZmllbGQpID0+IHtcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICB0eXBlZEtleSBpbiBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzICYmXG4gICAgICAgICAgICBmaWVsZCBpbiBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzW3R5cGVkS2V5IGFzIGtleW9mIHR5cGVvZiBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzXVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29uc3QgZmllbGRNYXBwaW5nID0gYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc1t0eXBlZEtleSBhcyBrZXlvZiB0eXBlb2YgYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc11cbiAgICAgICAgICAgIGNvbnN0IHR5cGVkRmllbGQgPSBmaWVsZCBhcyBrZXlvZiB0eXBlb2YgZmllbGRNYXBwaW5nXG4gICAgICAgICAgICBhY2NbZmllbGRdID0gZmllbGRNYXBwaW5nW3R5cGVkRmllbGRdIHx8IGZpZWxkXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGFjY1tmaWVsZF0gPSBmaWVsZFxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjXG4gICAgICAgIH0sXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBtYXBbdHlwZWRLZXldID0gdmFsdWVcbiAgfSlcblxuICAvLyBhbHdheXMgYWRkIHRoZSByb2xlIGZpZWxkIHRvIHRoZSB1c2VyIGNvbGxlY3Rpb24gaWYgbm90IGFscmVhZHkgcHJlc2VudFxuICBpZiAoIW1hcFtiYU1vZGVsS2V5LnVzZXJdLmZpZWxkcy5yb2xlKSB7XG4gICAgbWFwW2JhTW9kZWxLZXkudXNlcl0uZmllbGRzLnJvbGUgPSBiYU1vZGVsRmllbGRLZXlzVG9GaWVsZE5hbWVzLnVzZXIucm9sZVxuICB9XG5cbiAgcmV0dXJuIG1hcFxufVxuXG50eXBlIENvbGxlY3Rpb25PdmVycmlkZSA9ICgob3B0aW9uczogeyBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnIH0pID0+IENvbGxlY3Rpb25Db25maWcpIHwgdW5kZWZpbmVkXG5cbnR5cGUgQ29sbGVjdGlvbk92ZXJyaWRlcyA9IFJlY29yZDxzdHJpbmcsIENvbGxlY3Rpb25PdmVycmlkZT5cblxuLyoqXG4gKiBCdWlsZHMgYSBjb2xsZWN0aW9uIHNjaGVtYSBtYXAgYnkgYW5hbHl6aW5nIGNvbGxlY3Rpb24gb3ZlcnJpZGVzIGFuZCBleHRyYWN0aW5nXG4gKiBCZXR0ZXJBdXRoIG1vZGVsIGtleXMgYW5kIGZpZWxkIG1hcHBpbmdzXG4gKlxuICogQHBhcmFtIGNvbGxlY3Rpb25PdmVycmlkZXMgLSBDb2xsZWN0aW9uIG92ZXJyaWRlIGZ1bmN0aW9ucyBwcm92aWRlZCBpbiBwbHVnaW4gb3B0aW9uc1xuICogQHJldHVybnMgQSBjb2xsZWN0aW9uIHNjaGVtYSBtYXAgd2l0aCBkZWZhdWx0IHZhbHVlcyBtZXJnZWQgd2l0aCBhbnkgb3ZlcnJpZGVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZENvbGxlY3Rpb25TY2hlbWFNYXAocGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMpOiBDb2xsZWN0aW9uU2NoZW1hTWFwIHtcbiAgY29uc3QgY29sbGVjdGlvbk92ZXJyaWRlcyA9IHtcbiAgICB1c2VyczogcGx1Z2luT3B0aW9ucy51c2Vycz8uY29sbGVjdGlvbk92ZXJyaWRlcyxcbiAgICBhY2NvdW50czogcGx1Z2luT3B0aW9ucy5hY2NvdW50cz8uY29sbGVjdGlvbk92ZXJyaWRlcyxcbiAgICBzZXNzaW9uczogcGx1Z2luT3B0aW9ucy5zZXNzaW9ucz8uY29sbGVjdGlvbk92ZXJyaWRlcyxcbiAgICB2ZXJpZmljYXRpb25zOiBwbHVnaW5PcHRpb25zLnZlcmlmaWNhdGlvbnM/LmNvbGxlY3Rpb25PdmVycmlkZXMsXG4gICAgLi4ucGx1Z2luT3B0aW9ucy5wbHVnaW5Db2xsZWN0aW9uT3ZlcnJpZGVzXG4gIH1cblxuICBjb25zdCBkZWZhdWx0Q29sbGVjdGlvblNjaGVtYU1hcCA9IGdldERlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwKHBsdWdpbk9wdGlvbnMpXG5cbiAgaWYgKCFjb2xsZWN0aW9uT3ZlcnJpZGVzIHx8IE9iamVjdC5rZXlzKGNvbGxlY3Rpb25PdmVycmlkZXMpLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7IC4uLmRlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwIH1cbiAgfVxuXG4gIGNvbnN0IHNjaGVtYU1hcCA9IHsgLi4uZGVmYXVsdENvbGxlY3Rpb25TY2hlbWFNYXAgfVxuXG4gIE9iamVjdC5lbnRyaWVzKGNvbGxlY3Rpb25PdmVycmlkZXMpLmZvckVhY2goKFtjb2xsZWN0aW9uU2x1Zywgb3ZlcnJpZGVGdW5jdGlvbl0pID0+IHtcbiAgICBpZiAoIW92ZXJyaWRlRnVuY3Rpb24pIHJldHVyblxuXG4gICAgY29uc3QgbW9kaWZpZWRDb2xsZWN0aW9uID0gb3ZlcnJpZGVGdW5jdGlvbih7XG4gICAgICBjb2xsZWN0aW9uOiB7XG4gICAgICAgIHNsdWc6IGNvbGxlY3Rpb25TbHVnLFxuICAgICAgICBmaWVsZHM6IFtdXG4gICAgICB9XG4gICAgfSlcbiAgICBjb25zdCBtb2RlbEtleSA9IGFzc2VydE1vZGVsS2V5KG1vZGlmaWVkQ29sbGVjdGlvbilcbiAgICBzY2hlbWFNYXBbbW9kZWxLZXldLmNvbGxlY3Rpb25TbHVnID0gbW9kaWZpZWRDb2xsZWN0aW9uLnNsdWdcbiAgICBjb25zdCBmbGF0dGVuZWRGaWVsZHMgPSBmbGF0dGVuQWxsRmllbGRzKG1vZGlmaWVkQ29sbGVjdGlvbilcbiAgICBpZiAoZmxhdHRlbmVkRmllbGRzICYmIEFycmF5LmlzQXJyYXkoZmxhdHRlbmVkRmllbGRzKSkge1xuICAgICAgZmxhdHRlbmVkRmllbGRzLmZvckVhY2goKGZpZWxkOiBGbGF0dGVuZWRGaWVsZCkgPT4ge1xuICAgICAgICAvLyB3ZSBvbmx5IHdhbnQgdG8gcHJvY2VzcyBmaWVsZHMgdGhhdCBoYXZlIGEgYmV0dGVyQXV0aEZpZWxkS2V5XG4gICAgICAgIC8vIGJlY2F1c2UgaXRzIHBvc3NpYmxlIHRoZSB1c2VyIGhhcyBhZGRlZCBhZGRpdGlvbmFsIGZpZWxkc1xuICAgICAgICBpZiAoZmllbGQuY3VzdG9tPy5iZXR0ZXJBdXRoRmllbGRLZXkpIHtcbiAgICAgICAgICBjb25zdCBmaWVsZEtleSA9IGFzc2VydEZpZWxkS2V5KGZpZWxkLCBtb2RlbEtleSwgbW9kaWZpZWRDb2xsZWN0aW9uLnNsdWcpXG4gICAgICAgICAgc2NoZW1hTWFwW21vZGVsS2V5XS5maWVsZHNbZmllbGRLZXldID0gZmllbGQubmFtZVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gc2NoZW1hTWFwXG59XG5cbmZ1bmN0aW9uIGFzc2VydEZpZWxkS2V5KGZpZWxkOiBGbGF0dGVuZWRGaWVsZCwgbW9kZWxLZXk6IGtleW9mIHR5cGVvZiBiYU1vZGVsS2V5LCBjb2xsZWN0aW9uU2x1Zzogc3RyaW5nKSB7XG4gIGNvbnN0IGZpZWxkS2V5ID0gZmllbGQuY3VzdG9tPy5iZXR0ZXJBdXRoRmllbGRLZXkgYXMgc3RyaW5nXG5cbiAgLy8gQXNzZXJ0IHRoYXQgZmllbGRLZXkgaXMgYSB2YWxpZCBrZXkgaW4gdGhlIGJhTW9kZWxGaWVsZEtleXNUb0ZpZWxkTmFtZXMgbWFwcGluZ1xuICBpZiAoIU9iamVjdC52YWx1ZXMoYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lcykuc29tZSgoZmllbGRNYXApID0+IE9iamVjdC5rZXlzKGZpZWxkTWFwKS5pbmNsdWRlcyhmaWVsZEtleSkpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYEludmFsaWQgY3VzdG9tLmJldHRlckF1dGhGaWVsZEtleTogJHtmaWVsZEtleX0gZm9yIGZpZWxkICR7ZmllbGQubmFtZX0gaW4gY29sbGVjdGlvbiAke2NvbGxlY3Rpb25TbHVnfSwgXG4gICAgICAgIG11c3QgYmUgb25lIG9mICR7T2JqZWN0LmtleXMoYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc1ttb2RlbEtleSBhcyBrZXlvZiB0eXBlb2YgYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lc10pLmpvaW4oJywgJyl9YFxuICAgIClcbiAgfVxuXG4gIHJldHVybiBmaWVsZEtleVxufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhIGNvbGxlY3Rpb24gaGFzIGEgdmFsaWQgQmV0dGVyQXV0aCBtb2RlbCBrZXkgYW5kIHJldHVybnMgaXRcbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvbiAtIFRoZSBjb2xsZWN0aW9uIHRvIGNoZWNrIGZvciBhIEJldHRlckF1dGggbW9kZWwga2V5XG4gKiBAcmV0dXJucyBUaGUgQmV0dGVyQXV0aCBtb2RlbCBrZXlcbiAqIEB0aHJvd3MgRXJyb3IgaWYgdGhlIGNvbGxlY3Rpb24gZG9lcyBub3QgaGF2ZSBhIHZhbGlkIEJldHRlckF1dGggbW9kZWwga2V5XG4gKi9cbmZ1bmN0aW9uIGFzc2VydE1vZGVsS2V5KGNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWcpOiBrZXlvZiB0eXBlb2YgYmFNb2RlbEtleSB7XG4gIGlmICghY29sbGVjdGlvbi5jdXN0b20/LmJldHRlckF1dGhNb2RlbEtleSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ29sbGVjdGlvbiAke2NvbGxlY3Rpb24uc2x1Z30gaXMgbWlzc2luZyBhIGJldHRlckF1dGhNb2RlbEtleSBpbiBpdHMgY3VzdG9tIGZpZWxkYClcbiAgfVxuXG4gIGNvbnN0IG1vZGVsS2V5ID0gY29sbGVjdGlvbi5jdXN0b20uYmV0dGVyQXV0aE1vZGVsS2V5IGFzIGtleW9mIHR5cGVvZiBiYU1vZGVsS2V5XG5cbiAgaWYgKCFPYmplY3QudmFsdWVzKGJhTW9kZWxLZXkpLmluY2x1ZGVzKG1vZGVsS2V5IGFzIGFueSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvbGxlY3Rpb24gJHtjb2xsZWN0aW9uLnNsdWd9IGhhcyBhbiBpbnZhbGlkIGJldHRlckF1dGhNb2RlbEtleTogJHttb2RlbEtleX1gKVxuICB9XG5cbiAgcmV0dXJuIG1vZGVsS2V5XG59XG4iXSwibmFtZXMiOlsiYmFNb2RlbEZpZWxkS2V5c1RvRmllbGROYW1lcyIsImJhTW9kZWxLZXkiLCJnZXRBdXRoVGFibGVzIiwiZmxhdHRlbkFsbEZpZWxkcyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImdldERlZmF1bHRDb2xsZWN0aW9uU2NoZW1hTWFwIiwicGx1Z2luT3B0aW9ucyIsInRhYmxlcyIsImJldHRlckF1dGhPcHRpb25zIiwibWFwIiwiT2JqZWN0IiwiZW50cmllcyIsImZvckVhY2giLCJrZXkiLCJ0YWJsZSIsImZpZWxkTmFtZXMiLCJmaWVsZHMiLCJrIiwidiIsInR5cGVkS2V5IiwidmFsdWUiLCJjb2xsZWN0aW9uU2x1ZyIsIm1vZGVsS2V5IiwicmVkdWNlIiwiYWNjIiwiZmllbGQiLCJmaWVsZE1hcHBpbmciLCJ0eXBlZEZpZWxkIiwidXNlciIsInJvbGUiLCJidWlsZENvbGxlY3Rpb25TY2hlbWFNYXAiLCJjb2xsZWN0aW9uT3ZlcnJpZGVzIiwidXNlcnMiLCJhY2NvdW50cyIsInNlc3Npb25zIiwidmVyaWZpY2F0aW9ucyIsInBsdWdpbkNvbGxlY3Rpb25PdmVycmlkZXMiLCJkZWZhdWx0Q29sbGVjdGlvblNjaGVtYU1hcCIsImtleXMiLCJsZW5ndGgiLCJzY2hlbWFNYXAiLCJvdmVycmlkZUZ1bmN0aW9uIiwibW9kaWZpZWRDb2xsZWN0aW9uIiwiY29sbGVjdGlvbiIsInNsdWciLCJhc3NlcnRNb2RlbEtleSIsImZsYXR0ZW5lZEZpZWxkcyIsIkFycmF5IiwiaXNBcnJheSIsImN1c3RvbSIsImJldHRlckF1dGhGaWVsZEtleSIsImZpZWxkS2V5IiwiYXNzZXJ0RmllbGRLZXkiLCJuYW1lIiwidmFsdWVzIiwic29tZSIsImZpZWxkTWFwIiwiaW5jbHVkZXMiLCJFcnJvciIsImpvaW4iLCJiZXR0ZXJBdXRoTW9kZWxLZXkiXSwibWFwcGluZ3MiOiJBQUFBLFNBQVNBLDRCQUE0QixFQUFFQyxVQUFVLFFBQVEsZUFBYztBQUN2RSxTQUFTQyxhQUFhLFFBQVEsaUJBQWdCO0FBSTlDLFNBQVNDLGdCQUFnQixRQUFRLGlCQUFnQjtBQUVqRCxTQUFTQyx3QkFBd0IsUUFBUSx3QkFBdUI7QUFXaEUsT0FBTyxTQUFTQyw4QkFBOEJDLGFBQXNDO0lBQ2xGLE1BQU1DLFNBQVNMLGNBQWNJLGNBQWNFLGlCQUFpQixJQUFJLENBQUM7SUFDakUsTUFBTUMsTUFBTSxDQUFDO0lBQ2JDLE9BQU9DLE9BQU8sQ0FBQ0osUUFBUUssT0FBTyxDQUFDLENBQUMsQ0FBQ0MsS0FBS0MsTUFBTTtRQUMxQyxNQUFNQyxhQUFhTCxPQUFPQyxPQUFPLENBQUNHLE1BQU1FLE1BQU0sRUFBRVAsR0FBRyxDQUFDLENBQUMsQ0FBQ1EsR0FBR0MsRUFBRSxHQUFLRDtRQUNoRSxNQUFNRSxXQUFXTjtRQUNqQixNQUFNTyxRQUFRO1lBQ1pDLGdCQUFnQmpCLHlCQUF5QjtnQkFBRWtCLFVBQVVIO2dCQUFVYjtZQUFjO1lBQzdFVSxRQUFRRCxXQUFXUSxNQUFNLENBQ3ZCLENBQUNDLEtBQUtDO2dCQUNKLElBQ0VOLFlBQVluQixnQ0FDWnlCLFNBQVN6Qiw0QkFBNEIsQ0FBQ21CLFNBQXNELEVBQzVGO29CQUNBLE1BQU1PLGVBQWUxQiw0QkFBNEIsQ0FBQ21CLFNBQXNEO29CQUN4RyxNQUFNUSxhQUFhRjtvQkFDbkJELEdBQUcsQ0FBQ0MsTUFBTSxHQUFHQyxZQUFZLENBQUNDLFdBQVcsSUFBSUY7Z0JBQzNDLE9BQU87b0JBQ0xELEdBQUcsQ0FBQ0MsTUFBTSxHQUFHQTtnQkFDZjtnQkFDQSxPQUFPRDtZQUNULEdBQ0EsQ0FBQztRQUVMO1FBRUFmLEdBQUcsQ0FBQ1UsU0FBUyxHQUFHQztJQUNsQjtJQUVBLDBFQUEwRTtJQUMxRSxJQUFJLENBQUNYLEdBQUcsQ0FBQ1IsV0FBVzJCLElBQUksQ0FBQyxDQUFDWixNQUFNLENBQUNhLElBQUksRUFBRTtRQUNyQ3BCLEdBQUcsQ0FBQ1IsV0FBVzJCLElBQUksQ0FBQyxDQUFDWixNQUFNLENBQUNhLElBQUksR0FBRzdCLDZCQUE2QjRCLElBQUksQ0FBQ0MsSUFBSTtJQUMzRTtJQUVBLE9BQU9wQjtBQUNUO0FBTUE7Ozs7OztDQU1DLEdBQ0QsT0FBTyxTQUFTcUIseUJBQXlCeEIsYUFBc0M7SUFDN0UsTUFBTXlCLHNCQUFzQjtRQUMxQkMsT0FBTzFCLGNBQWMwQixLQUFLLEVBQUVEO1FBQzVCRSxVQUFVM0IsY0FBYzJCLFFBQVEsRUFBRUY7UUFDbENHLFVBQVU1QixjQUFjNEIsUUFBUSxFQUFFSDtRQUNsQ0ksZUFBZTdCLGNBQWM2QixhQUFhLEVBQUVKO1FBQzVDLEdBQUd6QixjQUFjOEIseUJBQXlCO0lBQzVDO0lBRUEsTUFBTUMsNkJBQTZCaEMsOEJBQThCQztJQUVqRSxJQUFJLENBQUN5Qix1QkFBdUJyQixPQUFPNEIsSUFBSSxDQUFDUCxxQkFBcUJRLE1BQU0sS0FBSyxHQUFHO1FBQ3pFLE9BQU87WUFBRSxHQUFHRiwwQkFBMEI7UUFBQztJQUN6QztJQUVBLE1BQU1HLFlBQVk7UUFBRSxHQUFHSCwwQkFBMEI7SUFBQztJQUVsRDNCLE9BQU9DLE9BQU8sQ0FBQ29CLHFCQUFxQm5CLE9BQU8sQ0FBQyxDQUFDLENBQUNTLGdCQUFnQm9CLGlCQUFpQjtRQUM3RSxJQUFJLENBQUNBLGtCQUFrQjtRQUV2QixNQUFNQyxxQkFBcUJELGlCQUFpQjtZQUMxQ0UsWUFBWTtnQkFDVkMsTUFBTXZCO2dCQUNOTCxRQUFRLEVBQUU7WUFDWjtRQUNGO1FBQ0EsTUFBTU0sV0FBV3VCLGVBQWVIO1FBQ2hDRixTQUFTLENBQUNsQixTQUFTLENBQUNELGNBQWMsR0FBR3FCLG1CQUFtQkUsSUFBSTtRQUM1RCxNQUFNRSxrQkFBa0IzQyxpQkFBaUJ1QztRQUN6QyxJQUFJSSxtQkFBbUJDLE1BQU1DLE9BQU8sQ0FBQ0Ysa0JBQWtCO1lBQ3JEQSxnQkFBZ0JsQyxPQUFPLENBQUMsQ0FBQ2E7Z0JBQ3ZCLGdFQUFnRTtnQkFDaEUsNERBQTREO2dCQUM1RCxJQUFJQSxNQUFNd0IsTUFBTSxFQUFFQyxvQkFBb0I7b0JBQ3BDLE1BQU1DLFdBQVdDLGVBQWUzQixPQUFPSCxVQUFVb0IsbUJBQW1CRSxJQUFJO29CQUN4RUosU0FBUyxDQUFDbEIsU0FBUyxDQUFDTixNQUFNLENBQUNtQyxTQUFTLEdBQUcxQixNQUFNNEIsSUFBSTtnQkFDbkQ7WUFDRjtRQUNGO0lBQ0Y7SUFFQSxPQUFPYjtBQUNUO0FBRUEsU0FBU1ksZUFBZTNCLEtBQXFCLEVBQUVILFFBQWlDLEVBQUVELGNBQXNCO0lBQ3RHLE1BQU04QixXQUFXMUIsTUFBTXdCLE1BQU0sRUFBRUM7SUFFL0Isa0ZBQWtGO0lBQ2xGLElBQUksQ0FBQ3hDLE9BQU80QyxNQUFNLENBQUN0RCw4QkFBOEJ1RCxJQUFJLENBQUMsQ0FBQ0MsV0FBYTlDLE9BQU80QixJQUFJLENBQUNrQixVQUFVQyxRQUFRLENBQUNOLFlBQVk7UUFDN0csTUFBTSxJQUFJTyxNQUNSLENBQUMsbUNBQW1DLEVBQUVQLFNBQVMsV0FBVyxFQUFFMUIsTUFBTTRCLElBQUksQ0FBQyxlQUFlLEVBQUVoQyxlQUFlO3VCQUN0RixFQUFFWCxPQUFPNEIsSUFBSSxDQUFDdEMsNEJBQTRCLENBQUNzQixTQUFzRCxFQUFFcUMsSUFBSSxDQUFDLE9BQU87SUFFcEk7SUFFQSxPQUFPUjtBQUNUO0FBRUE7Ozs7OztDQU1DLEdBQ0QsU0FBU04sZUFBZUYsVUFBNEI7SUFDbEQsSUFBSSxDQUFDQSxXQUFXTSxNQUFNLEVBQUVXLG9CQUFvQjtRQUMxQyxNQUFNLElBQUlGLE1BQU0sQ0FBQyxXQUFXLEVBQUVmLFdBQVdDLElBQUksQ0FBQyxvREFBb0QsQ0FBQztJQUNyRztJQUVBLE1BQU10QixXQUFXcUIsV0FBV00sTUFBTSxDQUFDVyxrQkFBa0I7SUFFckQsSUFBSSxDQUFDbEQsT0FBTzRDLE1BQU0sQ0FBQ3JELFlBQVl3RCxRQUFRLENBQUNuQyxXQUFrQjtRQUN4RCxNQUFNLElBQUlvQyxNQUFNLENBQUMsV0FBVyxFQUFFZixXQUFXQyxJQUFJLENBQUMsb0NBQW9DLEVBQUV0QixVQUFVO0lBQ2hHO0lBRUEsT0FBT0E7QUFDVCJ9
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-collection-slug.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-collection-slug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAGvD,wBAAgB,wBAAwB,CAAC,EACvC,aAAa,EACb,QAAQ,EACT,EAAE;IACD,aAAa,EAAE,uBAAuB,CAAA;IACtC,QAAQ,EAAE,MAAM,CAAA;CACjB,GAAG,MAAM,CAiBT"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { baseSlugs, baModelKeyToSlug } from "../constants";
|
|
2
|
+
export function getDeafultCollectionSlug({ pluginOptions, modelKey }) {
|
|
3
|
+
const baseSlug = baModelKeyToSlug[modelKey] ?? modelKey;
|
|
4
|
+
switch(modelKey){
|
|
5
|
+
case 'user':
|
|
6
|
+
return pluginOptions.users?.slug ?? baseSlugs.users;
|
|
7
|
+
case 'account':
|
|
8
|
+
return pluginOptions.accounts?.slug ?? baseSlugs.accounts;
|
|
9
|
+
case 'session':
|
|
10
|
+
return pluginOptions.sessions?.slug ?? baseSlugs.sessions;
|
|
11
|
+
case 'verification':
|
|
12
|
+
return pluginOptions.verifications?.slug ?? baseSlugs.verifications;
|
|
13
|
+
case 'adminInvitation':
|
|
14
|
+
return pluginOptions.adminInvitations?.slug ?? baseSlugs.adminInvitations;
|
|
15
|
+
default:
|
|
16
|
+
return baseSlug;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zbHVnLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGJhc2VTbHVncywgYmFNb2RlbEtleVRvU2x1ZyB9IGZyb20gJy4uL2NvbnN0YW50cydcblxuZXhwb3J0IGZ1bmN0aW9uIGdldERlYWZ1bHRDb2xsZWN0aW9uU2x1Zyh7XG4gIHBsdWdpbk9wdGlvbnMsXG4gIG1vZGVsS2V5XG59OiB7XG4gIHBsdWdpbk9wdGlvbnM6IEJldHRlckF1dGhQbHVnaW5PcHRpb25zXG4gIG1vZGVsS2V5OiBzdHJpbmdcbn0pOiBzdHJpbmcge1xuICBjb25zdCBiYXNlU2x1ZyA9IGJhTW9kZWxLZXlUb1NsdWdbbW9kZWxLZXkgYXMga2V5b2YgdHlwZW9mIGJhTW9kZWxLZXlUb1NsdWddID8/IG1vZGVsS2V5XG4gIFxuICBzd2l0Y2ggKG1vZGVsS2V5KSB7XG4gICAgY2FzZSAndXNlcic6XG4gICAgICByZXR1cm4gcGx1Z2luT3B0aW9ucy51c2Vycz8uc2x1ZyA/PyBiYXNlU2x1Z3MudXNlcnNcbiAgICBjYXNlICdhY2NvdW50JzpcbiAgICAgIHJldHVybiBwbHVnaW5PcHRpb25zLmFjY291bnRzPy5zbHVnID8/IGJhc2VTbHVncy5hY2NvdW50c1xuICAgIGNhc2UgJ3Nlc3Npb24nOlxuICAgICAgcmV0dXJuIHBsdWdpbk9wdGlvbnMuc2Vzc2lvbnM/LnNsdWcgPz8gYmFzZVNsdWdzLnNlc3Npb25zXG4gICAgY2FzZSAndmVyaWZpY2F0aW9uJzpcbiAgICAgIHJldHVybiBwbHVnaW5PcHRpb25zLnZlcmlmaWNhdGlvbnM/LnNsdWcgPz8gYmFzZVNsdWdzLnZlcmlmaWNhdGlvbnNcbiAgICBjYXNlICdhZG1pbkludml0YXRpb24nOlxuICAgICAgcmV0dXJuIHBsdWdpbk9wdGlvbnMuYWRtaW5JbnZpdGF0aW9ucz8uc2x1ZyA/PyBiYXNlU2x1Z3MuYWRtaW5JbnZpdGF0aW9uc1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gYmFzZVNsdWdcbiAgfVxufSAiXSwibmFtZXMiOlsiYmFzZVNsdWdzIiwiYmFNb2RlbEtleVRvU2x1ZyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsInBsdWdpbk9wdGlvbnMiLCJtb2RlbEtleSIsImJhc2VTbHVnIiwidXNlcnMiLCJzbHVnIiwiYWNjb3VudHMiLCJzZXNzaW9ucyIsInZlcmlmaWNhdGlvbnMiLCJhZG1pbkludml0YXRpb25zIl0sIm1hcHBpbmdzIjoiQUFDQSxTQUFTQSxTQUFTLEVBQUVDLGdCQUFnQixRQUFRLGVBQWM7QUFFMUQsT0FBTyxTQUFTQyx5QkFBeUIsRUFDdkNDLGFBQWEsRUFDYkMsUUFBUSxFQUlUO0lBQ0MsTUFBTUMsV0FBV0osZ0JBQWdCLENBQUNHLFNBQTBDLElBQUlBO0lBRWhGLE9BQVFBO1FBQ04sS0FBSztZQUNILE9BQU9ELGNBQWNHLEtBQUssRUFBRUMsUUFBUVAsVUFBVU0sS0FBSztRQUNyRCxLQUFLO1lBQ0gsT0FBT0gsY0FBY0ssUUFBUSxFQUFFRCxRQUFRUCxVQUFVUSxRQUFRO1FBQzNELEtBQUs7WUFDSCxPQUFPTCxjQUFjTSxRQUFRLEVBQUVGLFFBQVFQLFVBQVVTLFFBQVE7UUFDM0QsS0FBSztZQUNILE9BQU9OLGNBQWNPLGFBQWEsRUFBRUgsUUFBUVAsVUFBVVUsYUFBYTtRQUNyRSxLQUFLO1lBQ0gsT0FBT1AsY0FBY1EsZ0JBQWdCLEVBQUVKLFFBQVFQLFVBQVVXLGdCQUFnQjtRQUMzRTtZQUNFLE9BQU9OO0lBQ1g7QUFDRiJ9
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Collection, CollectionConfig, Field } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Retrieves a collection from the collection map based on its Better Auth model key
|
|
4
|
+
*
|
|
5
|
+
* This function searches through the provided collection map to find a collection
|
|
6
|
+
* that has been marked with a specific Better Auth model key in its custom properties.
|
|
7
|
+
* It's used to map between Better Auth's internal model keys and Payload CMS collections.
|
|
8
|
+
*
|
|
9
|
+
* @param collectionMap - Map of all available collections
|
|
10
|
+
* @param betterAuthModelKey - The Better Auth model key to search for
|
|
11
|
+
* @returns The matched collection configuration
|
|
12
|
+
* @throws {Error} If no collection with the specified Better Auth model key is found
|
|
13
|
+
*/
|
|
14
|
+
export declare function getMappedCollection({ collectionMap, betterAuthModelKey }: {
|
|
15
|
+
collectionMap: Record<string, CollectionConfig>;
|
|
16
|
+
betterAuthModelKey: string;
|
|
17
|
+
}): CollectionConfig;
|
|
18
|
+
interface MappedField extends Omit<Field, 'type'> {
|
|
19
|
+
name: string;
|
|
20
|
+
type: Exclude<Field['type'], 'tabs' | 'row' | 'collapsible'>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Retrieves a field from a collection based on its Better Auth field key
|
|
24
|
+
*
|
|
25
|
+
* This function searches through the fields of a provided collection to find a field
|
|
26
|
+
* that has been marked with a specific Better Auth field key in its custom properties.
|
|
27
|
+
* It's used to map between Better Auth's internal field keys and Payload CMS field configurations.
|
|
28
|
+
*
|
|
29
|
+
* @param collection - The collection configuration to search within
|
|
30
|
+
* @param betterAuthFieldKey - The Better Auth field key to search for
|
|
31
|
+
* @returns The matched field configuration with a guaranteed name and non-UI type
|
|
32
|
+
* @throws {Error} If no field with the specified Better Auth field key is found
|
|
33
|
+
* @throws {Error} If the found field is a UI-only field type (tabs, row, collapsible)
|
|
34
|
+
*/
|
|
35
|
+
export declare function getMappedField({ collection, betterAuthFieldKey }: {
|
|
36
|
+
collection: CollectionConfig;
|
|
37
|
+
betterAuthFieldKey: string;
|
|
38
|
+
}): MappedField;
|
|
39
|
+
export declare function transformCollectionsToCollectionConfigs(collections: Record<string, Collection>): Record<string, CollectionConfig>;
|
|
40
|
+
export {};
|
|
41
|
+
//# sourceMappingURL=get-collection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-collection.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/get-collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAElE;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,aAAa,EACb,kBAAkB,EACnB,EAAE;IACD,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IAC/C,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,gBAAgB,CAcnB;AAED,UAAU,WAAY,SAAQ,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC;IAC/C,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,aAAa,CAAC,CAAA;CAC7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,EAC7B,UAAU,EACV,kBAAkB,EACnB,EAAE;IACD,UAAU,EAAE,gBAAgB,CAAA;IAC5B,kBAAkB,EAAE,MAAM,CAAA;CAC3B,GAAG,WAAW,CAmBd;AAED,wBAAgB,uCAAuC,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAIjI"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retrieves a collection from the collection map based on its Better Auth model key
|
|
3
|
+
*
|
|
4
|
+
* This function searches through the provided collection map to find a collection
|
|
5
|
+
* that has been marked with a specific Better Auth model key in its custom properties.
|
|
6
|
+
* It's used to map between Better Auth's internal model keys and Payload CMS collections.
|
|
7
|
+
*
|
|
8
|
+
* @param collectionMap - Map of all available collections
|
|
9
|
+
* @param betterAuthModelKey - The Better Auth model key to search for
|
|
10
|
+
* @returns The matched collection configuration
|
|
11
|
+
* @throws {Error} If no collection with the specified Better Auth model key is found
|
|
12
|
+
*/ export function getMappedCollection({ collectionMap, betterAuthModelKey }) {
|
|
13
|
+
// Find the collection that has the matching betterAuthModelKey in its custom properties
|
|
14
|
+
const collection = Object.values(collectionMap).find((c)=>{
|
|
15
|
+
return c.custom?.betterAuthModelKey === betterAuthModelKey;
|
|
16
|
+
});
|
|
17
|
+
// Throw an error if no matching collection is found
|
|
18
|
+
if (!collection) {
|
|
19
|
+
const error = new Error(`Collection with key ${betterAuthModelKey} not found`);
|
|
20
|
+
Error.captureStackTrace(error, getMappedCollection);
|
|
21
|
+
throw error;
|
|
22
|
+
}
|
|
23
|
+
return collection;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves a field from a collection based on its Better Auth field key
|
|
27
|
+
*
|
|
28
|
+
* This function searches through the fields of a provided collection to find a field
|
|
29
|
+
* that has been marked with a specific Better Auth field key in its custom properties.
|
|
30
|
+
* It's used to map between Better Auth's internal field keys and Payload CMS field configurations.
|
|
31
|
+
*
|
|
32
|
+
* @param collection - The collection configuration to search within
|
|
33
|
+
* @param betterAuthFieldKey - The Better Auth field key to search for
|
|
34
|
+
* @returns The matched field configuration with a guaranteed name and non-UI type
|
|
35
|
+
* @throws {Error} If no field with the specified Better Auth field key is found
|
|
36
|
+
* @throws {Error} If the found field is a UI-only field type (tabs, row, collapsible)
|
|
37
|
+
*/ export function getMappedField({ collection, betterAuthFieldKey }) {
|
|
38
|
+
// Find the field that has the matching betterAuthFieldKey in its custom properties
|
|
39
|
+
const field = collection.fields.find((f)=>f.custom?.betterAuthFieldKey === betterAuthFieldKey);
|
|
40
|
+
// Throw an error if no matching field is found
|
|
41
|
+
if (!field) {
|
|
42
|
+
throw new Error(`Field with key ${betterAuthFieldKey} not found`);
|
|
43
|
+
}
|
|
44
|
+
// Filter out UI-based fields that don't have a name or aren't data fields
|
|
45
|
+
// These field types are used for layout purposes only and cannot store data
|
|
46
|
+
switch(field.type){
|
|
47
|
+
case 'tabs':
|
|
48
|
+
case 'row':
|
|
49
|
+
case 'collapsible':
|
|
50
|
+
throw new Error(`Field with key ${betterAuthFieldKey} is a UI-only field and cannot be used for data`);
|
|
51
|
+
default:
|
|
52
|
+
return field;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
export function transformCollectionsToCollectionConfigs(collections) {
|
|
56
|
+
return Object.fromEntries(Object.entries(collections).map(([slug, collection])=>[
|
|
57
|
+
slug,
|
|
58
|
+
collection.config
|
|
59
|
+
]));
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENvbGxlY3Rpb24sIENvbGxlY3Rpb25Db25maWcsIEZpZWxkIH0gZnJvbSAncGF5bG9hZCdcblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBjb2xsZWN0aW9uIGZyb20gdGhlIGNvbGxlY3Rpb24gbWFwIGJhc2VkIG9uIGl0cyBCZXR0ZXIgQXV0aCBtb2RlbCBrZXlcbiAqXG4gKiBUaGlzIGZ1bmN0aW9uIHNlYXJjaGVzIHRocm91Z2ggdGhlIHByb3ZpZGVkIGNvbGxlY3Rpb24gbWFwIHRvIGZpbmQgYSBjb2xsZWN0aW9uXG4gKiB0aGF0IGhhcyBiZWVuIG1hcmtlZCB3aXRoIGEgc3BlY2lmaWMgQmV0dGVyIEF1dGggbW9kZWwga2V5IGluIGl0cyBjdXN0b20gcHJvcGVydGllcy5cbiAqIEl0J3MgdXNlZCB0byBtYXAgYmV0d2VlbiBCZXR0ZXIgQXV0aCdzIGludGVybmFsIG1vZGVsIGtleXMgYW5kIFBheWxvYWQgQ01TIGNvbGxlY3Rpb25zLlxuICpcbiAqIEBwYXJhbSBjb2xsZWN0aW9uTWFwIC0gTWFwIG9mIGFsbCBhdmFpbGFibGUgY29sbGVjdGlvbnNcbiAqIEBwYXJhbSBiZXR0ZXJBdXRoTW9kZWxLZXkgLSBUaGUgQmV0dGVyIEF1dGggbW9kZWwga2V5IHRvIHNlYXJjaCBmb3JcbiAqIEByZXR1cm5zIFRoZSBtYXRjaGVkIGNvbGxlY3Rpb24gY29uZmlndXJhdGlvblxuICogQHRocm93cyB7RXJyb3J9IElmIG5vIGNvbGxlY3Rpb24gd2l0aCB0aGUgc3BlY2lmaWVkIEJldHRlciBBdXRoIG1vZGVsIGtleSBpcyBmb3VuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFwcGVkQ29sbGVjdGlvbih7XG4gIGNvbGxlY3Rpb25NYXAsXG4gIGJldHRlckF1dGhNb2RlbEtleVxufToge1xuICBjb2xsZWN0aW9uTWFwOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPlxuICBiZXR0ZXJBdXRoTW9kZWxLZXk6IHN0cmluZ1xufSk6IENvbGxlY3Rpb25Db25maWcge1xuICAvLyBGaW5kIHRoZSBjb2xsZWN0aW9uIHRoYXQgaGFzIHRoZSBtYXRjaGluZyBiZXR0ZXJBdXRoTW9kZWxLZXkgaW4gaXRzIGN1c3RvbSBwcm9wZXJ0aWVzXG4gIGNvbnN0IGNvbGxlY3Rpb24gPSBPYmplY3QudmFsdWVzKGNvbGxlY3Rpb25NYXApLmZpbmQoKGMpID0+IHtcbiAgICByZXR1cm4gYy5jdXN0b20/LmJldHRlckF1dGhNb2RlbEtleSA9PT0gYmV0dGVyQXV0aE1vZGVsS2V5XG4gIH0pXG5cbiAgLy8gVGhyb3cgYW4gZXJyb3IgaWYgbm8gbWF0Y2hpbmcgY29sbGVjdGlvbiBpcyBmb3VuZFxuICBpZiAoIWNvbGxlY3Rpb24pIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihgQ29sbGVjdGlvbiB3aXRoIGtleSAke2JldHRlckF1dGhNb2RlbEtleX0gbm90IGZvdW5kYClcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZShlcnJvciwgZ2V0TWFwcGVkQ29sbGVjdGlvbilcbiAgICB0aHJvdyBlcnJvclxuICB9XG5cbiAgcmV0dXJuIGNvbGxlY3Rpb25cbn1cblxuaW50ZXJmYWNlIE1hcHBlZEZpZWxkIGV4dGVuZHMgT21pdDxGaWVsZCwgJ3R5cGUnPiB7XG4gIG5hbWU6IHN0cmluZ1xuICB0eXBlOiBFeGNsdWRlPEZpZWxkWyd0eXBlJ10sICd0YWJzJyB8ICdyb3cnIHwgJ2NvbGxhcHNpYmxlJz5cbn1cblxuLyoqXG4gKiBSZXRyaWV2ZXMgYSBmaWVsZCBmcm9tIGEgY29sbGVjdGlvbiBiYXNlZCBvbiBpdHMgQmV0dGVyIEF1dGggZmllbGQga2V5XG4gKlxuICogVGhpcyBmdW5jdGlvbiBzZWFyY2hlcyB0aHJvdWdoIHRoZSBmaWVsZHMgb2YgYSBwcm92aWRlZCBjb2xsZWN0aW9uIHRvIGZpbmQgYSBmaWVsZFxuICogdGhhdCBoYXMgYmVlbiBtYXJrZWQgd2l0aCBhIHNwZWNpZmljIEJldHRlciBBdXRoIGZpZWxkIGtleSBpbiBpdHMgY3VzdG9tIHByb3BlcnRpZXMuXG4gKiBJdCdzIHVzZWQgdG8gbWFwIGJldHdlZW4gQmV0dGVyIEF1dGgncyBpbnRlcm5hbCBmaWVsZCBrZXlzIGFuZCBQYXlsb2FkIENNUyBmaWVsZCBjb25maWd1cmF0aW9ucy5cbiAqXG4gKiBAcGFyYW0gY29sbGVjdGlvbiAtIFRoZSBjb2xsZWN0aW9uIGNvbmZpZ3VyYXRpb24gdG8gc2VhcmNoIHdpdGhpblxuICogQHBhcmFtIGJldHRlckF1dGhGaWVsZEtleSAtIFRoZSBCZXR0ZXIgQXV0aCBmaWVsZCBrZXkgdG8gc2VhcmNoIGZvclxuICogQHJldHVybnMgVGhlIG1hdGNoZWQgZmllbGQgY29uZmlndXJhdGlvbiB3aXRoIGEgZ3VhcmFudGVlZCBuYW1lIGFuZCBub24tVUkgdHlwZVxuICogQHRocm93cyB7RXJyb3J9IElmIG5vIGZpZWxkIHdpdGggdGhlIHNwZWNpZmllZCBCZXR0ZXIgQXV0aCBmaWVsZCBrZXkgaXMgZm91bmRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZm91bmQgZmllbGQgaXMgYSBVSS1vbmx5IGZpZWxkIHR5cGUgKHRhYnMsIHJvdywgY29sbGFwc2libGUpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRNYXBwZWRGaWVsZCh7XG4gIGNvbGxlY3Rpb24sXG4gIGJldHRlckF1dGhGaWVsZEtleVxufToge1xuICBjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnXG4gIGJldHRlckF1dGhGaWVsZEtleTogc3RyaW5nXG59KTogTWFwcGVkRmllbGQge1xuICAvLyBGaW5kIHRoZSBmaWVsZCB0aGF0IGhhcyB0aGUgbWF0Y2hpbmcgYmV0dGVyQXV0aEZpZWxkS2V5IGluIGl0cyBjdXN0b20gcHJvcGVydGllc1xuICBjb25zdCBmaWVsZCA9IGNvbGxlY3Rpb24uZmllbGRzLmZpbmQoKGYpID0+IGYuY3VzdG9tPy5iZXR0ZXJBdXRoRmllbGRLZXkgPT09IGJldHRlckF1dGhGaWVsZEtleSlcblxuICAvLyBUaHJvdyBhbiBlcnJvciBpZiBubyBtYXRjaGluZyBmaWVsZCBpcyBmb3VuZFxuICBpZiAoIWZpZWxkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGaWVsZCB3aXRoIGtleSAke2JldHRlckF1dGhGaWVsZEtleX0gbm90IGZvdW5kYClcbiAgfVxuXG4gIC8vIEZpbHRlciBvdXQgVUktYmFzZWQgZmllbGRzIHRoYXQgZG9uJ3QgaGF2ZSBhIG5hbWUgb3IgYXJlbid0IGRhdGEgZmllbGRzXG4gIC8vIFRoZXNlIGZpZWxkIHR5cGVzIGFyZSB1c2VkIGZvciBsYXlvdXQgcHVycG9zZXMgb25seSBhbmQgY2Fubm90IHN0b3JlIGRhdGFcbiAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgY2FzZSAndGFicyc6XG4gICAgY2FzZSAncm93JzpcbiAgICBjYXNlICdjb2xsYXBzaWJsZSc6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEZpZWxkIHdpdGgga2V5ICR7YmV0dGVyQXV0aEZpZWxkS2V5fSBpcyBhIFVJLW9ubHkgZmllbGQgYW5kIGNhbm5vdCBiZSB1c2VkIGZvciBkYXRhYClcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIGZpZWxkIGFzIE1hcHBlZEZpZWxkXG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRyYW5zZm9ybUNvbGxlY3Rpb25zVG9Db2xsZWN0aW9uQ29uZmlncyhjb2xsZWN0aW9uczogUmVjb3JkPHN0cmluZywgQ29sbGVjdGlvbj4pOiBSZWNvcmQ8c3RyaW5nLCBDb2xsZWN0aW9uQ29uZmlnPiB7XG4gIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgT2JqZWN0LmVudHJpZXMoY29sbGVjdGlvbnMpLm1hcCgoW3NsdWcsIGNvbGxlY3Rpb25dKSA9PiBbc2x1ZywgY29sbGVjdGlvbi5jb25maWddKVxuICApXG59XG4iXSwibmFtZXMiOlsiZ2V0TWFwcGVkQ29sbGVjdGlvbiIsImNvbGxlY3Rpb25NYXAiLCJiZXR0ZXJBdXRoTW9kZWxLZXkiLCJjb2xsZWN0aW9uIiwiT2JqZWN0IiwidmFsdWVzIiwiZmluZCIsImMiLCJjdXN0b20iLCJlcnJvciIsIkVycm9yIiwiY2FwdHVyZVN0YWNrVHJhY2UiLCJnZXRNYXBwZWRGaWVsZCIsImJldHRlckF1dGhGaWVsZEtleSIsImZpZWxkIiwiZmllbGRzIiwiZiIsInR5cGUiLCJ0cmFuc2Zvcm1Db2xsZWN0aW9uc1RvQ29sbGVjdGlvbkNvbmZpZ3MiLCJjb2xsZWN0aW9ucyIsImZyb21FbnRyaWVzIiwiZW50cmllcyIsIm1hcCIsInNsdWciLCJjb25maWciXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7OztDQVdDLEdBQ0QsT0FBTyxTQUFTQSxvQkFBb0IsRUFDbENDLGFBQWEsRUFDYkMsa0JBQWtCLEVBSW5CO0lBQ0Msd0ZBQXdGO0lBQ3hGLE1BQU1DLGFBQWFDLE9BQU9DLE1BQU0sQ0FBQ0osZUFBZUssSUFBSSxDQUFDLENBQUNDO1FBQ3BELE9BQU9BLEVBQUVDLE1BQU0sRUFBRU4sdUJBQXVCQTtJQUMxQztJQUVBLG9EQUFvRDtJQUNwRCxJQUFJLENBQUNDLFlBQVk7UUFDZixNQUFNTSxRQUFRLElBQUlDLE1BQU0sQ0FBQyxvQkFBb0IsRUFBRVIsbUJBQW1CLFVBQVUsQ0FBQztRQUM3RVEsTUFBTUMsaUJBQWlCLENBQUNGLE9BQU9UO1FBQy9CLE1BQU1TO0lBQ1I7SUFFQSxPQUFPTjtBQUNUO0FBT0E7Ozs7Ozs7Ozs7OztDQVlDLEdBQ0QsT0FBTyxTQUFTUyxlQUFlLEVBQzdCVCxVQUFVLEVBQ1ZVLGtCQUFrQixFQUluQjtJQUNDLG1GQUFtRjtJQUNuRixNQUFNQyxRQUFRWCxXQUFXWSxNQUFNLENBQUNULElBQUksQ0FBQyxDQUFDVSxJQUFNQSxFQUFFUixNQUFNLEVBQUVLLHVCQUF1QkE7SUFFN0UsK0NBQStDO0lBQy9DLElBQUksQ0FBQ0MsT0FBTztRQUNWLE1BQU0sSUFBSUosTUFBTSxDQUFDLGVBQWUsRUFBRUcsbUJBQW1CLFVBQVUsQ0FBQztJQUNsRTtJQUVBLDBFQUEwRTtJQUMxRSw0RUFBNEU7SUFDNUUsT0FBUUMsTUFBTUcsSUFBSTtRQUNoQixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCxNQUFNLElBQUlQLE1BQU0sQ0FBQyxlQUFlLEVBQUVHLG1CQUFtQiwrQ0FBK0MsQ0FBQztRQUN2RztZQUNFLE9BQU9DO0lBQ1g7QUFDRjtBQUVBLE9BQU8sU0FBU0ksd0NBQXdDQyxXQUF1QztJQUM3RixPQUFPZixPQUFPZ0IsV0FBVyxDQUN2QmhCLE9BQU9pQixPQUFPLENBQUNGLGFBQWFHLEdBQUcsQ0FBQyxDQUFDLENBQUNDLE1BQU1wQixXQUFXLEdBQUs7WUFBQ29CO1lBQU1wQixXQUFXcUIsTUFBTTtTQUFDO0FBRXJGIn0=
|
|
@@ -1,22 +1,60 @@
|
|
|
1
|
-
import
|
|
2
|
-
type
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
import { Session, User } from 'better-auth';
|
|
2
|
+
import type { CollectionConfig } from 'payload';
|
|
3
|
+
export declare function prepareUser({ user, userCollection }: {
|
|
4
|
+
user: User & Record<string, any>;
|
|
5
|
+
userCollection: CollectionConfig;
|
|
6
|
+
}): Promise<{
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
email: string;
|
|
10
|
+
emailVerified: boolean;
|
|
11
|
+
createdAt: Date;
|
|
12
|
+
updatedAt: Date;
|
|
13
|
+
image?: string | null | undefined;
|
|
14
|
+
} & Record<string, any>>;
|
|
15
|
+
export declare function prepareSession({ session, sessionCollection }: {
|
|
16
|
+
session: Session & Record<string, any>;
|
|
17
|
+
sessionCollection: CollectionConfig;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
id: string;
|
|
20
|
+
createdAt: Date;
|
|
21
|
+
updatedAt: Date;
|
|
22
|
+
userId: string;
|
|
23
|
+
expiresAt: Date;
|
|
24
|
+
token: string;
|
|
25
|
+
ipAddress?: string | null | undefined;
|
|
26
|
+
userAgent?: string | null | undefined;
|
|
27
|
+
} & Record<string, any>>;
|
|
6
28
|
/**
|
|
7
29
|
* Prepares session data for cookie cache by filtering user and session objects
|
|
8
30
|
* based on the payload configuration's 'saveToJwt' property
|
|
9
31
|
*/
|
|
10
|
-
export declare function prepareSessionData({
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
32
|
+
export declare function prepareSessionData({ sessionData, usersCollection, sessionsCollection }: {
|
|
33
|
+
sessionData: {
|
|
34
|
+
session: Session & Record<string, any>;
|
|
35
|
+
user: User & Record<string, any>;
|
|
14
36
|
};
|
|
15
|
-
|
|
16
|
-
|
|
37
|
+
usersCollection: CollectionConfig;
|
|
38
|
+
sessionsCollection: CollectionConfig;
|
|
17
39
|
}): Promise<{
|
|
18
|
-
|
|
19
|
-
|
|
40
|
+
session: {
|
|
41
|
+
id: string;
|
|
42
|
+
createdAt: Date;
|
|
43
|
+
updatedAt: Date;
|
|
44
|
+
userId: string;
|
|
45
|
+
expiresAt: Date;
|
|
46
|
+
token: string;
|
|
47
|
+
ipAddress?: string | null | undefined;
|
|
48
|
+
userAgent?: string | null | undefined;
|
|
49
|
+
} & Record<string, any>;
|
|
50
|
+
user: {
|
|
51
|
+
id: string;
|
|
52
|
+
name: string;
|
|
53
|
+
email: string;
|
|
54
|
+
emailVerified: boolean;
|
|
55
|
+
createdAt: Date;
|
|
56
|
+
updatedAt: Date;
|
|
57
|
+
image?: string | null | undefined;
|
|
58
|
+
} & Record<string, any>;
|
|
20
59
|
} | null>;
|
|
21
|
-
export {};
|
|
22
60
|
//# sourceMappingURL=prepare-session-data.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepare-session-data.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/prepare-session-data.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"prepare-session-data.d.ts","sourceRoot":"","sources":["../../../../src/better-auth/plugin/helpers/prepare-session-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,KAAK,EAAc,gBAAgB,EAAmB,MAAM,SAAS,CAAA;AAK5E,wBAAsB,WAAW,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,cAAc,EAAE,gBAAgB,CAAA;CAAE;;;;;;;;yBAWjI;AAED,wBAAsB,cAAc,CAAC,EACnC,OAAO,EACP,iBAAiB,EAClB,EAAE;IACD,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IACtC,iBAAiB,EAAE,gBAAgB,CAAA;CACpC;;;;;;;;;yBAiBA;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,EACvC,WAAW,EACX,eAAe,EACf,kBAAkB,EACnB,EAAE;IACD,WAAW,EAAE;QACX,OAAO,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QACtC,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KACjC,CAAA;IACD,eAAe,EAAE,gBAAgB,CAAA;IACjC,kBAAkB,EAAE,gBAAgB,CAAA;CACrC;;;;;;;;;;;;;;;;;;;;UAYA"}
|
|
@@ -1,43 +1,49 @@
|
|
|
1
1
|
import { getFieldsToSign } from "payload";
|
|
2
|
+
export async function prepareUser({ user, userCollection }) {
|
|
3
|
+
const newUser = getFieldsToSign({
|
|
4
|
+
collectionConfig: userCollection,
|
|
5
|
+
email: user.email,
|
|
6
|
+
user: {
|
|
7
|
+
...user,
|
|
8
|
+
collection: userCollection.slug
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
return newUser;
|
|
12
|
+
}
|
|
13
|
+
export async function prepareSession({ session, sessionCollection }) {
|
|
14
|
+
const filteredSession = getFieldsToSign({
|
|
15
|
+
collectionConfig: sessionCollection,
|
|
16
|
+
email: '',
|
|
17
|
+
user: {
|
|
18
|
+
...session,
|
|
19
|
+
collection: sessionCollection.slug
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
delete filteredSession.email;
|
|
23
|
+
delete filteredSession.collection;
|
|
24
|
+
Object.assign(filteredSession, {
|
|
25
|
+
userId: session.userId
|
|
26
|
+
});
|
|
27
|
+
return filteredSession;
|
|
28
|
+
}
|
|
2
29
|
/**
|
|
3
30
|
* Prepares session data for cookie cache by filtering user and session objects
|
|
4
31
|
* based on the payload configuration's 'saveToJwt' property
|
|
5
|
-
*/ export async function prepareSessionData({
|
|
6
|
-
if (!
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
throw new Error(`User collection with slug '${userCollectionSlug}' not found`);
|
|
15
|
-
}
|
|
16
|
-
const filteredUser = getFieldsToSign({
|
|
17
|
-
collectionConfig: userCollection,
|
|
18
|
-
email: newSession.user.email,
|
|
19
|
-
user: newSession.user
|
|
32
|
+
*/ export async function prepareSessionData({ sessionData, usersCollection, sessionsCollection }) {
|
|
33
|
+
if (!sessionData || !sessionData.user) return null;
|
|
34
|
+
const newUser = await prepareUser({
|
|
35
|
+
user: sessionData.user,
|
|
36
|
+
userCollection: usersCollection
|
|
37
|
+
});
|
|
38
|
+
const newSession = await prepareSession({
|
|
39
|
+
session: sessionData.session,
|
|
40
|
+
sessionCollection: sessionsCollection
|
|
20
41
|
});
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
filteredSession = getFieldsToSign({
|
|
25
|
-
collectionConfig: sessionCollection,
|
|
26
|
-
email: newSession.user.email,
|
|
27
|
-
user: newSession.session
|
|
28
|
-
});
|
|
29
|
-
// getFieldsToSign is meant for auth collections so we remove the email and collection fields
|
|
30
|
-
delete filteredSession.email;
|
|
31
|
-
delete filteredSession.collection;
|
|
32
|
-
}
|
|
33
|
-
if (isImpersonated) {
|
|
34
|
-
filteredSession.impersonatedBy = newSession.session.impersonatedBy;
|
|
35
|
-
}
|
|
36
|
-
return {
|
|
37
|
-
...newSession,
|
|
38
|
-
user: filteredUser,
|
|
39
|
-
session: filteredSession
|
|
42
|
+
const newSessionData = {
|
|
43
|
+
session: newSession,
|
|
44
|
+
user: newUser
|
|
40
45
|
};
|
|
46
|
+
return newSessionData;
|
|
41
47
|
}
|
|
42
48
|
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9wcmVwYXJlLXNlc3Npb24tZGF0YS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZXNzaW9uLCBVc2VyIH0gZnJvbSAnYmV0dGVyLWF1dGgnXG5pbXBvcnQgdHlwZSB7IENvbGxlY3Rpb24sIENvbGxlY3Rpb25Db25maWcsIENvbmZpZywgUGF5bG9hZCB9IGZyb20gJ3BheWxvYWQnXG5pbXBvcnQgeyBnZXRGaWVsZHNUb1NpZ24gfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgYmFNb2RlbEtleSB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IENvbGxlY3Rpb25TY2hlbWFNYXAgfSBmcm9tICcuL2dldC1jb2xsZWN0aW9uLXNjaGVtYS1tYXAnXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmVwYXJlVXNlcih7IHVzZXIsIHVzZXJDb2xsZWN0aW9uIH06IHsgdXNlcjogVXNlciAmIFJlY29yZDxzdHJpbmcsIGFueT47IHVzZXJDb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnIH0pIHtcbiAgY29uc3QgbmV3VXNlciA9IGdldEZpZWxkc1RvU2lnbih7XG4gICAgY29sbGVjdGlvbkNvbmZpZzogdXNlckNvbGxlY3Rpb24sXG4gICAgZW1haWw6IHVzZXIuZW1haWwsXG4gICAgdXNlcjoge1xuICAgICAgLi4udXNlcixcbiAgICAgIGNvbGxlY3Rpb246IHVzZXJDb2xsZWN0aW9uLnNsdWdcbiAgICB9XG4gIH0pXG5cbiAgcmV0dXJuIG5ld1VzZXIgYXMgVXNlciAmIFJlY29yZDxzdHJpbmcsIGFueT5cbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHByZXBhcmVTZXNzaW9uKHtcbiAgc2Vzc2lvbixcbiAgc2Vzc2lvbkNvbGxlY3Rpb25cbn06IHtcbiAgc2Vzc2lvbjogU2Vzc2lvbiAmIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgc2Vzc2lvbkNvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWdcbn0pIHtcbiAgY29uc3QgZmlsdGVyZWRTZXNzaW9uID0gZ2V0RmllbGRzVG9TaWduKHtcbiAgICBjb2xsZWN0aW9uQ29uZmlnOiBzZXNzaW9uQ29sbGVjdGlvbixcbiAgICBlbWFpbDogJycsXG4gICAgdXNlcjoge1xuICAgICAgLi4uc2Vzc2lvbixcbiAgICAgIGNvbGxlY3Rpb246IHNlc3Npb25Db2xsZWN0aW9uLnNsdWdcbiAgICB9XG4gIH0pXG5cbiAgZGVsZXRlIGZpbHRlcmVkU2Vzc2lvbi5lbWFpbFxuICBkZWxldGUgZmlsdGVyZWRTZXNzaW9uLmNvbGxlY3Rpb25cbiAgT2JqZWN0LmFzc2lnbihmaWx0ZXJlZFNlc3Npb24sIHtcbiAgICB1c2VySWQ6IHNlc3Npb24udXNlcklkXG4gIH0pXG5cbiAgcmV0dXJuIGZpbHRlcmVkU2Vzc2lvbiBhcyBTZXNzaW9uICYgUmVjb3JkPHN0cmluZywgYW55PlxufVxuXG4vKipcbiAqIFByZXBhcmVzIHNlc3Npb24gZGF0YSBmb3IgY29va2llIGNhY2hlIGJ5IGZpbHRlcmluZyB1c2VyIGFuZCBzZXNzaW9uIG9iamVjdHNcbiAqIGJhc2VkIG9uIHRoZSBwYXlsb2FkIGNvbmZpZ3VyYXRpb24ncyAnc2F2ZVRvSnd0JyBwcm9wZXJ0eVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVNlc3Npb25EYXRhKHtcbiAgc2Vzc2lvbkRhdGEsXG4gIHVzZXJzQ29sbGVjdGlvbixcbiAgc2Vzc2lvbnNDb2xsZWN0aW9uXG59OiB7XG4gIHNlc3Npb25EYXRhOiB7XG4gICAgc2Vzc2lvbjogU2Vzc2lvbiAmIFJlY29yZDxzdHJpbmcsIGFueT5cbiAgICB1c2VyOiBVc2VyICYgUmVjb3JkPHN0cmluZywgYW55PlxuICB9XG4gIHVzZXJzQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZ1xuICBzZXNzaW9uc0NvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWdcbn0pIHtcbiAgaWYgKCFzZXNzaW9uRGF0YSB8fCAhc2Vzc2lvbkRhdGEudXNlcikgcmV0dXJuIG51bGxcblxuICBjb25zdCBuZXdVc2VyID0gYXdhaXQgcHJlcGFyZVVzZXIoeyB1c2VyOiBzZXNzaW9uRGF0YS51c2VyLCB1c2VyQ29sbGVjdGlvbjogdXNlcnNDb2xsZWN0aW9uIH0pXG4gIGNvbnN0IG5ld1Nlc3Npb24gPSBhd2FpdCBwcmVwYXJlU2Vzc2lvbih7IHNlc3Npb246IHNlc3Npb25EYXRhLnNlc3Npb24sIHNlc3Npb25Db2xsZWN0aW9uOiBzZXNzaW9uc0NvbGxlY3Rpb24gfSlcblxuICBjb25zdCBuZXdTZXNzaW9uRGF0YSA9IHtcbiAgICBzZXNzaW9uOiBuZXdTZXNzaW9uLFxuICAgIHVzZXI6IG5ld1VzZXJcbiAgfVxuXG4gIHJldHVybiBuZXdTZXNzaW9uRGF0YVxufVxuIl0sIm5hbWVzIjpbImdldEZpZWxkc1RvU2lnbiIsInByZXBhcmVVc2VyIiwidXNlciIsInVzZXJDb2xsZWN0aW9uIiwibmV3VXNlciIsImNvbGxlY3Rpb25Db25maWciLCJlbWFpbCIsImNvbGxlY3Rpb24iLCJzbHVnIiwicHJlcGFyZVNlc3Npb24iLCJzZXNzaW9uIiwic2Vzc2lvbkNvbGxlY3Rpb24iLCJmaWx0ZXJlZFNlc3Npb24iLCJPYmplY3QiLCJhc3NpZ24iLCJ1c2VySWQiLCJwcmVwYXJlU2Vzc2lvbkRhdGEiLCJzZXNzaW9uRGF0YSIsInVzZXJzQ29sbGVjdGlvbiIsInNlc3Npb25zQ29sbGVjdGlvbiIsIm5ld1Nlc3Npb24iLCJuZXdTZXNzaW9uRGF0YSJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsZUFBZSxRQUFRLFVBQVM7QUFJekMsT0FBTyxlQUFlQyxZQUFZLEVBQUVDLElBQUksRUFBRUMsY0FBYyxFQUEwRTtJQUNoSSxNQUFNQyxVQUFVSixnQkFBZ0I7UUFDOUJLLGtCQUFrQkY7UUFDbEJHLE9BQU9KLEtBQUtJLEtBQUs7UUFDakJKLE1BQU07WUFDSixHQUFHQSxJQUFJO1lBQ1BLLFlBQVlKLGVBQWVLLElBQUk7UUFDakM7SUFDRjtJQUVBLE9BQU9KO0FBQ1Q7QUFFQSxPQUFPLGVBQWVLLGVBQWUsRUFDbkNDLE9BQU8sRUFDUEMsaUJBQWlCLEVBSWxCO0lBQ0MsTUFBTUMsa0JBQWtCWixnQkFBZ0I7UUFDdENLLGtCQUFrQk07UUFDbEJMLE9BQU87UUFDUEosTUFBTTtZQUNKLEdBQUdRLE9BQU87WUFDVkgsWUFBWUksa0JBQWtCSCxJQUFJO1FBQ3BDO0lBQ0Y7SUFFQSxPQUFPSSxnQkFBZ0JOLEtBQUs7SUFDNUIsT0FBT00sZ0JBQWdCTCxVQUFVO0lBQ2pDTSxPQUFPQyxNQUFNLENBQUNGLGlCQUFpQjtRQUM3QkcsUUFBUUwsUUFBUUssTUFBTTtJQUN4QjtJQUVBLE9BQU9IO0FBQ1Q7QUFFQTs7O0NBR0MsR0FDRCxPQUFPLGVBQWVJLG1CQUFtQixFQUN2Q0MsV0FBVyxFQUNYQyxlQUFlLEVBQ2ZDLGtCQUFrQixFQVFuQjtJQUNDLElBQUksQ0FBQ0YsZUFBZSxDQUFDQSxZQUFZZixJQUFJLEVBQUUsT0FBTztJQUU5QyxNQUFNRSxVQUFVLE1BQU1ILFlBQVk7UUFBRUMsTUFBTWUsWUFBWWYsSUFBSTtRQUFFQyxnQkFBZ0JlO0lBQWdCO0lBQzVGLE1BQU1FLGFBQWEsTUFBTVgsZUFBZTtRQUFFQyxTQUFTTyxZQUFZUCxPQUFPO1FBQUVDLG1CQUFtQlE7SUFBbUI7SUFFOUcsTUFBTUUsaUJBQWlCO1FBQ3JCWCxTQUFTVTtRQUNUbEIsTUFBTUU7SUFDUjtJQUVBLE9BQU9pQjtBQUNUIn0=
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Config } from 'payload';
|
|
2
2
|
import type { BetterAuthPluginOptions } from './types';
|
|
3
|
-
export
|
|
3
|
+
export * from './helpers/index';
|
|
4
4
|
export { getPayloadAuth } from './lib/get-payload-auth';
|
|
5
|
+
export { sanitizeBetterAuthOptions } from './lib/sanitize-better-auth-options/index';
|
|
5
6
|
export * from './types';
|
|
6
|
-
export * from './helpers/index';
|
|
7
7
|
export declare function betterAuthPlugin(pluginOptions: BetterAuthPluginOptions): (config: Config) => Config;
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/better-auth/plugin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2D,KAAK,MAAM,EAAc,MAAM,SAAS,CAAA;AAQ1G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAItD,cAAc,iBAAiB,CAAA;AAC/B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAA;AACpF,cAAc,SAAS,CAAA;AAEvB,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,uBAAuB,IAC7D,QAAQ,MAAM,KAAG,MAAM,CA2IhC"}
|