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
|
@@ -1,35 +1,150 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { checkPluginExists } from "../../../helpers/check-plugin-exists";
|
|
2
|
+
import { getDeafultCollectionSlug } from "../../../helpers/get-collection-slug";
|
|
3
|
+
import { baModelKey, defaults, supportedBAPluginIds } from "../../../constants";
|
|
4
|
+
import { getAllRoleOptions } from "../../../helpers/get-all-roles";
|
|
5
|
+
import { assertAllSchemaFields } from "../utils/collection-schema";
|
|
2
6
|
import { isAdminOrCurrentUserUpdateWithAllowedFields, isAdminOrCurrentUserWithRoles, isAdminWithRoles } from "../utils/payload-access";
|
|
3
|
-
import {
|
|
4
|
-
import { onVerifiedChange } from "./hooks/on-verified-change";
|
|
5
|
-
import { getSyncAccountHook } from "./hooks/sync-account";
|
|
6
|
-
import { getBeforeLoginHook } from "./hooks/before-login";
|
|
7
|
-
import { getAfterLoginHook } from "./hooks/after-login";
|
|
8
|
-
import { getAfterLogoutHook } from "./hooks/after-logout";
|
|
9
|
-
import { getBeforeDeleteHook } from "./hooks/before-delete";
|
|
7
|
+
import { getCollectionFields } from "../utils/transform-schema-fields-to-payload";
|
|
10
8
|
import { betterAuthStrategy } from "./better-auth-strategy";
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export function buildUsersCollection({ incomingCollections, pluginOptions, betterAuthOptions }) {
|
|
19
|
-
const userSlug = pluginOptions.users?.slug ?? baseCollectionSlugs.users;
|
|
20
|
-
const accountSlug = pluginOptions.accounts?.slug ?? baseCollectionSlugs.accounts;
|
|
21
|
-
const sessionSlug = pluginOptions.sessions?.slug ?? baseCollectionSlugs.sessions;
|
|
22
|
-
const verificationsSlug = pluginOptions.verifications?.slug ?? baseCollectionSlugs.verifications;
|
|
23
|
-
const baPlugins = betterAuthOptions.plugins ?? null;
|
|
9
|
+
import { getGenerateInviteUrlEndpoint, getRefreshTokenEndpoint, getSendInviteUrlEndpoint, getSetAdminRoleEndpoint, getSignupEndpoint } from "./endpoints";
|
|
10
|
+
import { getSyncAccountHook, getAfterLoginHook, getAfterLogoutHook, getBeforeDeleteHook, getBeforeLoginHook, getOnVerifiedChangeHook } from "./hooks";
|
|
11
|
+
export function buildUsersCollection({ incomingCollections, pluginOptions, schema }) {
|
|
12
|
+
const userSlug = getDeafultCollectionSlug({
|
|
13
|
+
modelKey: baModelKey.user,
|
|
14
|
+
pluginOptions
|
|
15
|
+
});
|
|
24
16
|
const adminRoles = pluginOptions.users?.adminRoles ?? [
|
|
25
|
-
|
|
17
|
+
defaults.adminRole
|
|
26
18
|
];
|
|
27
19
|
const allRoleOptions = getAllRoleOptions(pluginOptions);
|
|
28
|
-
const hasUsernamePlugin =
|
|
20
|
+
const hasUsernamePlugin = checkPluginExists(pluginOptions.betterAuthOptions ?? {}, supportedBAPluginIds.username);
|
|
29
21
|
const existingUserCollection = incomingCollections.find((collection)=>collection.slug === userSlug);
|
|
22
|
+
// TODO: REVIEW THIS
|
|
30
23
|
const allowedFields = pluginOptions.users?.allowedFields ?? [
|
|
31
24
|
'name'
|
|
32
25
|
];
|
|
26
|
+
const userFieldRules = [
|
|
27
|
+
{
|
|
28
|
+
condition: (field)=>field.type === 'date',
|
|
29
|
+
transform: (field)=>({
|
|
30
|
+
...field,
|
|
31
|
+
saveToJWT: false,
|
|
32
|
+
admin: {
|
|
33
|
+
disableBulkEdit: true,
|
|
34
|
+
hidden: true
|
|
35
|
+
},
|
|
36
|
+
index: true,
|
|
37
|
+
label: ({ t })=>t('general:updatedAt')
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
];
|
|
41
|
+
const fieldOverrides = {
|
|
42
|
+
role: (field)=>({
|
|
43
|
+
type: 'select',
|
|
44
|
+
options: allRoleOptions,
|
|
45
|
+
defaultValue: field.defaultValue ?? defaults.userRole,
|
|
46
|
+
saveToJWT: true,
|
|
47
|
+
admin: {
|
|
48
|
+
description: 'The role of the user'
|
|
49
|
+
}
|
|
50
|
+
}),
|
|
51
|
+
email: ()=>({
|
|
52
|
+
index: true,
|
|
53
|
+
admin: {
|
|
54
|
+
description: 'The email of the user'
|
|
55
|
+
}
|
|
56
|
+
}),
|
|
57
|
+
emailVerified: (field)=>({
|
|
58
|
+
defaultValue: field.defaultValue ?? false,
|
|
59
|
+
saveToJWT: true,
|
|
60
|
+
admin: {
|
|
61
|
+
description: 'Whether the email of the user has been verified'
|
|
62
|
+
}
|
|
63
|
+
}),
|
|
64
|
+
name: ()=>({
|
|
65
|
+
saveToJWT: true,
|
|
66
|
+
admin: {
|
|
67
|
+
description: 'Users chosen display name'
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
image: ()=>({
|
|
71
|
+
saveToJWT: false,
|
|
72
|
+
admin: {
|
|
73
|
+
description: 'The image of the user'
|
|
74
|
+
}
|
|
75
|
+
}),
|
|
76
|
+
twoFactorEnabled: ()=>({
|
|
77
|
+
defaultValue: false,
|
|
78
|
+
admin: {
|
|
79
|
+
description: 'Whether the user has two factor authentication enabled',
|
|
80
|
+
components: {
|
|
81
|
+
Field: {
|
|
82
|
+
path: 'payload-auth/better-auth/plugin/client#TwoFactorAuth'
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}),
|
|
87
|
+
username: ()=>({
|
|
88
|
+
admin: {
|
|
89
|
+
description: 'The username of the user'
|
|
90
|
+
}
|
|
91
|
+
}),
|
|
92
|
+
displayUsername: ()=>({
|
|
93
|
+
admin: {
|
|
94
|
+
description: 'The display username of the user'
|
|
95
|
+
}
|
|
96
|
+
}),
|
|
97
|
+
isAnonymous: ()=>({
|
|
98
|
+
defaultValue: false,
|
|
99
|
+
admin: {
|
|
100
|
+
description: 'Whether the user is anonymous.'
|
|
101
|
+
}
|
|
102
|
+
}),
|
|
103
|
+
phoneNumber: ()=>({
|
|
104
|
+
admin: {
|
|
105
|
+
description: 'The phone number of the user'
|
|
106
|
+
}
|
|
107
|
+
}),
|
|
108
|
+
phoneNumberVerified: ()=>({
|
|
109
|
+
defaultValue: false,
|
|
110
|
+
admin: {
|
|
111
|
+
description: 'Whether the phone number of the user has been verified'
|
|
112
|
+
}
|
|
113
|
+
}),
|
|
114
|
+
banned: ()=>({
|
|
115
|
+
defaultValue: false,
|
|
116
|
+
admin: {
|
|
117
|
+
description: 'Whether the user is banned from the platform'
|
|
118
|
+
}
|
|
119
|
+
}),
|
|
120
|
+
banReason: ()=>({
|
|
121
|
+
admin: {
|
|
122
|
+
description: 'The reason for the ban'
|
|
123
|
+
}
|
|
124
|
+
}),
|
|
125
|
+
banExpires: ()=>({
|
|
126
|
+
admin: {
|
|
127
|
+
description: 'The date and time when the ban will expire'
|
|
128
|
+
}
|
|
129
|
+
}),
|
|
130
|
+
normalizedEmail: ()=>({
|
|
131
|
+
admin: {
|
|
132
|
+
readOnly: true,
|
|
133
|
+
description: 'The normalized email of the user'
|
|
134
|
+
}
|
|
135
|
+
}),
|
|
136
|
+
stripeCustomerId: ()=>({
|
|
137
|
+
admin: {
|
|
138
|
+
readOnly: true,
|
|
139
|
+
description: 'The Stripe customer ID of the user'
|
|
140
|
+
}
|
|
141
|
+
})
|
|
142
|
+
};
|
|
143
|
+
const collectionFields = getCollectionFields({
|
|
144
|
+
schema,
|
|
145
|
+
fieldRules: userFieldRules,
|
|
146
|
+
additionalProperties: fieldOverrides
|
|
147
|
+
});
|
|
33
148
|
let usersCollection = {
|
|
34
149
|
...existingUserCollection,
|
|
35
150
|
slug: userSlug,
|
|
@@ -60,7 +175,7 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, bette
|
|
|
60
175
|
},
|
|
61
176
|
condition: ()=>{
|
|
62
177
|
// Only show the impersonate button if the admin plugin is enabled
|
|
63
|
-
return (
|
|
178
|
+
return checkPluginExists(pluginOptions.betterAuthOptions ?? {}, supportedBAPluginIds.admin);
|
|
64
179
|
}
|
|
65
180
|
}
|
|
66
181
|
}
|
|
@@ -88,6 +203,10 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, bette
|
|
|
88
203
|
}),
|
|
89
204
|
...existingUserCollection?.access ?? {}
|
|
90
205
|
},
|
|
206
|
+
custom: {
|
|
207
|
+
...existingUserCollection?.custom ?? {},
|
|
208
|
+
betterAuthModelKey: baModelKey.user
|
|
209
|
+
},
|
|
91
210
|
endpoints: [
|
|
92
211
|
...existingUserCollection?.endpoints ? existingUserCollection.endpoints : [],
|
|
93
212
|
getRefreshTokenEndpoint(userSlug),
|
|
@@ -97,52 +216,40 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, bette
|
|
|
97
216
|
pluginOptions
|
|
98
217
|
}),
|
|
99
218
|
getSendInviteUrlEndpoint(pluginOptions),
|
|
100
|
-
getSignupEndpoint(pluginOptions
|
|
219
|
+
getSignupEndpoint(pluginOptions)
|
|
101
220
|
],
|
|
102
221
|
hooks: {
|
|
103
222
|
beforeChange: [
|
|
104
223
|
...existingUserCollection?.hooks?.beforeChange ?? [],
|
|
105
224
|
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
106
|
-
|
|
225
|
+
getOnVerifiedChangeHook()
|
|
107
226
|
]
|
|
108
227
|
],
|
|
109
228
|
afterChange: [
|
|
110
229
|
...existingUserCollection?.hooks?.afterChange ?? [],
|
|
111
230
|
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
112
|
-
getSyncAccountHook(
|
|
113
|
-
userSlug,
|
|
114
|
-
accountSlug
|
|
115
|
-
})
|
|
231
|
+
getSyncAccountHook()
|
|
116
232
|
]
|
|
117
233
|
],
|
|
118
234
|
beforeLogin: [
|
|
119
235
|
...existingUserCollection?.hooks?.beforeLogin ?? [],
|
|
120
236
|
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
121
|
-
getBeforeLoginHook()
|
|
237
|
+
getBeforeLoginHook(pluginOptions.betterAuthOptions ?? {})
|
|
122
238
|
]
|
|
123
239
|
],
|
|
124
240
|
afterLogin: [
|
|
125
241
|
...existingUserCollection?.hooks?.afterLogin ?? [],
|
|
126
242
|
...pluginOptions.disableDefaultPayloadAuth ? [] : [
|
|
127
|
-
getAfterLoginHook(
|
|
128
|
-
sessionsCollectionSlug: sessionSlug,
|
|
129
|
-
usersCollectionSlug: userSlug
|
|
130
|
-
})
|
|
243
|
+
getAfterLoginHook()
|
|
131
244
|
]
|
|
132
245
|
],
|
|
133
246
|
afterLogout: [
|
|
134
247
|
...existingUserCollection?.hooks?.afterLogout ?? [],
|
|
135
|
-
getAfterLogoutHook(
|
|
136
|
-
sessionsCollectionSlug: sessionSlug
|
|
137
|
-
})
|
|
248
|
+
getAfterLogoutHook()
|
|
138
249
|
],
|
|
139
250
|
beforeDelete: [
|
|
140
251
|
...existingUserCollection?.hooks?.beforeDelete ?? [],
|
|
141
|
-
getBeforeDeleteHook(
|
|
142
|
-
accountsSlug: accountSlug,
|
|
143
|
-
sessionsSlug: sessionSlug,
|
|
144
|
-
verificationsSlug: verificationsSlug
|
|
145
|
-
})
|
|
252
|
+
getBeforeDeleteHook()
|
|
146
253
|
]
|
|
147
254
|
},
|
|
148
255
|
auth: {
|
|
@@ -161,180 +268,16 @@ export function buildUsersCollection({ incomingCollections, pluginOptions, bette
|
|
|
161
268
|
},
|
|
162
269
|
fields: [
|
|
163
270
|
...existingUserCollection?.fields ?? [],
|
|
164
|
-
|
|
165
|
-
name: 'name',
|
|
166
|
-
type: 'text',
|
|
167
|
-
label: 'Name',
|
|
168
|
-
saveToJWT: true,
|
|
169
|
-
admin: {
|
|
170
|
-
description: 'Users chosen display name'
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
{
|
|
174
|
-
name: 'email',
|
|
175
|
-
type: 'text',
|
|
176
|
-
required: true,
|
|
177
|
-
unique: true,
|
|
178
|
-
index: true,
|
|
179
|
-
label: 'Email',
|
|
180
|
-
admin: {
|
|
181
|
-
description: 'The email of the user'
|
|
182
|
-
}
|
|
183
|
-
},
|
|
184
|
-
{
|
|
185
|
-
name: 'emailVerified',
|
|
186
|
-
type: 'checkbox',
|
|
187
|
-
required: true,
|
|
188
|
-
defaultValue: false,
|
|
189
|
-
saveToJWT: true,
|
|
190
|
-
label: 'Email Verified',
|
|
191
|
-
admin: {
|
|
192
|
-
description: 'Whether the email of the user has been verified'
|
|
193
|
-
}
|
|
194
|
-
},
|
|
195
|
-
{
|
|
196
|
-
name: 'image',
|
|
197
|
-
type: 'text',
|
|
198
|
-
label: 'Image',
|
|
199
|
-
saveToJWT: false,
|
|
200
|
-
admin: {
|
|
201
|
-
description: 'The image of the user'
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
{
|
|
205
|
-
name: 'role',
|
|
206
|
-
label: 'Role',
|
|
207
|
-
type: 'select',
|
|
208
|
-
required: true,
|
|
209
|
-
defaultValue: pluginOptions.users?.defaultRole ?? 'user',
|
|
210
|
-
saveToJWT: true,
|
|
211
|
-
options: allRoleOptions,
|
|
212
|
-
admin: {
|
|
213
|
-
description: 'The role of the user'
|
|
214
|
-
}
|
|
215
|
-
},
|
|
216
|
-
...getTimestampFields({
|
|
217
|
-
saveUpdatedAtToJWT: false,
|
|
218
|
-
saveCreatedAtToJWT: false
|
|
219
|
-
})
|
|
271
|
+
...collectionFields ?? []
|
|
220
272
|
]
|
|
221
273
|
};
|
|
222
|
-
if (baPlugins) {
|
|
223
|
-
baPlugins.forEach((plugin)=>{
|
|
224
|
-
switch(plugin.id){
|
|
225
|
-
case 'two-factor':
|
|
226
|
-
usersCollection.fields.push({
|
|
227
|
-
name: 'twoFactorEnabled',
|
|
228
|
-
type: 'checkbox',
|
|
229
|
-
defaultValue: false,
|
|
230
|
-
label: 'Two Factor Enabled',
|
|
231
|
-
admin: {
|
|
232
|
-
description: 'Whether the user has two factor authentication enabled',
|
|
233
|
-
components: {
|
|
234
|
-
Field: {
|
|
235
|
-
path: 'payload-auth/better-auth/plugin/client#TwoFactorAuth'
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
}
|
|
239
|
-
});
|
|
240
|
-
break;
|
|
241
|
-
case 'username':
|
|
242
|
-
usersCollection.fields.push({
|
|
243
|
-
name: 'username',
|
|
244
|
-
type: 'text',
|
|
245
|
-
unique: true,
|
|
246
|
-
required: false,
|
|
247
|
-
label: 'Username',
|
|
248
|
-
admin: {
|
|
249
|
-
description: 'The username of the user'
|
|
250
|
-
}
|
|
251
|
-
}, {
|
|
252
|
-
name: 'displayUsername',
|
|
253
|
-
type: 'text',
|
|
254
|
-
required: false,
|
|
255
|
-
label: 'Display Username',
|
|
256
|
-
admin: {
|
|
257
|
-
description: 'The display username of the user'
|
|
258
|
-
}
|
|
259
|
-
});
|
|
260
|
-
break;
|
|
261
|
-
case 'anonymous':
|
|
262
|
-
usersCollection.fields.push({
|
|
263
|
-
name: 'isAnonymous',
|
|
264
|
-
type: 'checkbox',
|
|
265
|
-
defaultValue: false,
|
|
266
|
-
label: 'Is Anonymous',
|
|
267
|
-
admin: {
|
|
268
|
-
description: 'Whether the user is anonymous.'
|
|
269
|
-
}
|
|
270
|
-
});
|
|
271
|
-
break;
|
|
272
|
-
case 'phone-number':
|
|
273
|
-
usersCollection.fields.push({
|
|
274
|
-
name: 'phoneNumber',
|
|
275
|
-
type: 'text',
|
|
276
|
-
label: 'Phone Number',
|
|
277
|
-
admin: {
|
|
278
|
-
description: 'The phone number of the user'
|
|
279
|
-
}
|
|
280
|
-
}, {
|
|
281
|
-
name: 'phoneNumberVerified',
|
|
282
|
-
type: 'checkbox',
|
|
283
|
-
defaultValue: false,
|
|
284
|
-
label: 'Phone Number Verified',
|
|
285
|
-
admin: {
|
|
286
|
-
description: 'Whether the phone number of the user has been verified'
|
|
287
|
-
}
|
|
288
|
-
});
|
|
289
|
-
break;
|
|
290
|
-
case 'admin':
|
|
291
|
-
usersCollection.fields.push({
|
|
292
|
-
name: 'banned',
|
|
293
|
-
type: 'checkbox',
|
|
294
|
-
defaultValue: false,
|
|
295
|
-
label: 'Banned',
|
|
296
|
-
admin: {
|
|
297
|
-
description: 'Whether the user is banned from the platform'
|
|
298
|
-
}
|
|
299
|
-
}, {
|
|
300
|
-
name: 'banReason',
|
|
301
|
-
type: 'text',
|
|
302
|
-
label: 'Ban Reason',
|
|
303
|
-
admin: {
|
|
304
|
-
description: 'The reason for the ban'
|
|
305
|
-
}
|
|
306
|
-
}, {
|
|
307
|
-
name: 'banExpires',
|
|
308
|
-
type: 'date',
|
|
309
|
-
label: 'Ban Expires',
|
|
310
|
-
admin: {
|
|
311
|
-
description: 'The date and time when the ban will expire'
|
|
312
|
-
}
|
|
313
|
-
});
|
|
314
|
-
break;
|
|
315
|
-
case 'harmony-email':
|
|
316
|
-
usersCollection.fields.push({
|
|
317
|
-
name: 'normalizedEmail',
|
|
318
|
-
type: 'text',
|
|
319
|
-
required: false,
|
|
320
|
-
unique: true,
|
|
321
|
-
admin: {
|
|
322
|
-
readOnly: true,
|
|
323
|
-
description: 'The normalized email of the user'
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
break;
|
|
327
|
-
default:
|
|
328
|
-
break;
|
|
329
|
-
}
|
|
330
|
-
});
|
|
331
|
-
}
|
|
332
274
|
if (pluginOptions.users?.collectionOverrides) {
|
|
333
275
|
usersCollection = pluginOptions.users.collectionOverrides({
|
|
334
276
|
collection: usersCollection
|
|
335
277
|
});
|
|
336
278
|
}
|
|
279
|
+
assertAllSchemaFields(usersCollection, schema);
|
|
337
280
|
return usersCollection;
|
|
338
281
|
}
|
|
339
282
|
|
|
340
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbGxlY3Rpb25Db25maWcgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucywgU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IGJhc2VDb2xsZWN0aW9uU2x1Z3MgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBpc0FkbWluT3JDdXJyZW50VXNlclVwZGF0ZVdpdGhBbGxvd2VkRmllbGRzLCBpc0FkbWluT3JDdXJyZW50VXNlcldpdGhSb2xlcywgaXNBZG1pbldpdGhSb2xlcyB9IGZyb20gJy4uL3V0aWxzL3BheWxvYWQtYWNjZXNzJ1xuaW1wb3J0IHsgZ2V0UmVmcmVzaFRva2VuRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50cy9yZWZyZXNoLXRva2VuJ1xuaW1wb3J0IHsgb25WZXJpZmllZENoYW5nZSB9IGZyb20gJy4vaG9va3Mvb24tdmVyaWZpZWQtY2hhbmdlJ1xuaW1wb3J0IHsgZ2V0U3luY0FjY291bnRIb29rIH0gZnJvbSAnLi9ob29rcy9zeW5jLWFjY291bnQnXG5pbXBvcnQgeyBnZXRCZWZvcmVMb2dpbkhvb2sgfSBmcm9tICcuL2hvb2tzL2JlZm9yZS1sb2dpbidcbmltcG9ydCB7IGdldEFmdGVyTG9naW5Ib29rIH0gZnJvbSAnLi9ob29rcy9hZnRlci1sb2dpbidcbmltcG9ydCB7IGdldEFmdGVyTG9nb3V0SG9vayB9IGZyb20gJy4vaG9va3MvYWZ0ZXItbG9nb3V0J1xuaW1wb3J0IHsgZ2V0QmVmb3JlRGVsZXRlSG9vayB9IGZyb20gJy4vaG9va3MvYmVmb3JlLWRlbGV0ZSdcbmltcG9ydCB7IGJldHRlckF1dGhTdHJhdGVneSB9IGZyb20gJy4vYmV0dGVyLWF1dGgtc3RyYXRlZ3knXG5pbXBvcnQgeyBnZXRUaW1lc3RhbXBGaWVsZHMgfSBmcm9tICcuLi91dGlscy9nZXQtdGltZXN0YW1wLWZpZWxkcydcbmltcG9ydCB7IGdldEFsbFJvbGVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9nZXQtYWxsLXJvbGVzJ1xuaW1wb3J0IHsgZ2V0U2lnbnVwRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50cy9zaWdudXAnXG5pbXBvcnQgeyBnZXRTZXRBZG1pblJvbGVFbmRwb2ludCB9IGZyb20gJy4vZW5kcG9pbnRzL3NldC1hZG1pbi1yb2xlJ1xuaW1wb3J0IHsgZ2V0R2VuZXJhdGVJbnZpdGVVcmxFbmRwb2ludCB9IGZyb20gJy4vZW5kcG9pbnRzL2dlbmVyYXRlLWludml0ZS11cmwnXG5pbXBvcnQgeyBnZXRTZW5kSW52aXRlVXJsRW5kcG9pbnQgfSBmcm9tICcuL2VuZHBvaW50cy9zZW5kLWludml0ZS11cmwnXG5pbXBvcnQgeyBjaGVja1VzZXJuYW1lUGx1Z2luIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9jaGVjay11c2VybmFtZS1wbHVnaW4nXG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFVzZXJzQ29sbGVjdGlvbih7XG4gIGluY29taW5nQ29sbGVjdGlvbnMsXG4gIHBsdWdpbk9wdGlvbnMsXG4gIGJldHRlckF1dGhPcHRpb25zXG59OiB7XG4gIGluY29taW5nQ29sbGVjdGlvbnM6IENvbGxlY3Rpb25Db25maWdbXVxuICBwbHVnaW5PcHRpb25zOiBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9uc1xuICBiZXR0ZXJBdXRoT3B0aW9uczogU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnNcbn0pIHtcbiAgY29uc3QgdXNlclNsdWcgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5zbHVnID8/IGJhc2VDb2xsZWN0aW9uU2x1Z3MudXNlcnNcbiAgY29uc3QgYWNjb3VudFNsdWcgPSBwbHVnaW5PcHRpb25zLmFjY291bnRzPy5zbHVnID8/IGJhc2VDb2xsZWN0aW9uU2x1Z3MuYWNjb3VudHNcbiAgY29uc3Qgc2Vzc2lvblNsdWcgPSBwbHVnaW5PcHRpb25zLnNlc3Npb25zPy5zbHVnID8/IGJhc2VDb2xsZWN0aW9uU2x1Z3Muc2Vzc2lvbnNcbiAgY29uc3QgdmVyaWZpY2F0aW9uc1NsdWcgPSBwbHVnaW5PcHRpb25zLnZlcmlmaWNhdGlvbnM/LnNsdWcgPz8gYmFzZUNvbGxlY3Rpb25TbHVncy52ZXJpZmljYXRpb25zXG4gIGNvbnN0IGJhUGx1Z2lucyA9IGJldHRlckF1dGhPcHRpb25zLnBsdWdpbnMgPz8gbnVsbFxuICBjb25zdCBhZG1pblJvbGVzID0gcGx1Z2luT3B0aW9ucy51c2Vycz8uYWRtaW5Sb2xlcyA/PyBbJ2FkbWluJ11cbiAgY29uc3QgYWxsUm9sZU9wdGlvbnMgPSBnZXRBbGxSb2xlT3B0aW9ucyhwbHVnaW5PcHRpb25zKVxuICBjb25zdCBoYXNVc2VybmFtZVBsdWdpbiA9IGNoZWNrVXNlcm5hbWVQbHVnaW4oYmV0dGVyQXV0aE9wdGlvbnMpXG4gIGNvbnN0IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24gPSBpbmNvbWluZ0NvbGxlY3Rpb25zLmZpbmQoKGNvbGxlY3Rpb24pID0+IGNvbGxlY3Rpb24uc2x1ZyA9PT0gdXNlclNsdWcpIGFzIENvbGxlY3Rpb25Db25maWcgfCB1bmRlZmluZWRcblxuICBjb25zdCBhbGxvd2VkRmllbGRzID0gcGx1Z2luT3B0aW9ucy51c2Vycz8uYWxsb3dlZEZpZWxkcyA/PyBbJ25hbWUnXVxuXG4gIGxldCB1c2Vyc0NvbGxlY3Rpb246IENvbGxlY3Rpb25Db25maWcgPSB7XG4gICAgLi4uZXhpc3RpbmdVc2VyQ29sbGVjdGlvbixcbiAgICBzbHVnOiB1c2VyU2x1ZyxcbiAgICBhZG1pbjoge1xuICAgICAgZGVmYXVsdENvbHVtbnM6IFsnZW1haWwnXSxcbiAgICAgIHVzZUFzVGl0bGU6ICdlbWFpbCcsXG4gICAgICBncm91cDogcGx1Z2luT3B0aW9ucz8uY29sbGVjdGlvbkFkbWluR3JvdXAgPz8gJ0F1dGgnLFxuICAgICAgLi4uZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uYWRtaW4sXG4gICAgICBoaWRkZW46IHBsdWdpbk9wdGlvbnMudXNlcnM/LmhpZGRlbiA/PyBmYWxzZSxcbiAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgRGVzY3JpcHRpb246IHtcbiAgICAgICAgICBwYXRoOiAncGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9jbGllbnQjQWRtaW5JbnZpdGVCdXR0b24nLFxuICAgICAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgICAgICByb2xlczogYWxsUm9sZU9wdGlvbnNcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHZpZXdzOiB7XG4gICAgICAgICAgZWRpdDoge1xuICAgICAgICAgICAgYWRtaW5CdXR0b25zOiB7XG4gICAgICAgICAgICAgIHRhYjoge1xuICAgICAgICAgICAgICAgIENvbXBvbmVudDoge1xuICAgICAgICAgICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9wbHVnaW4vY2xpZW50I0FkbWluQnV0dG9ucycsXG4gICAgICAgICAgICAgICAgICBjbGllbnRQcm9wczoge1xuICAgICAgICAgICAgICAgICAgICB1c2VyU2x1Z1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY29uZGl0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBPbmx5IHNob3cgdGhlIGltcGVyc29uYXRlIGJ1dHRvbiBpZiB0aGUgYWRtaW4gcGx1Z2luIGlzIGVuYWJsZWRcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoYmFQbHVnaW5zICYmIGJhUGx1Z2lucy5zb21lKChwbHVnaW4pID0+IHBsdWdpbi5pZCA9PT0gJ2FkbWluJykpID8/IGZhbHNlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSxcbiAgICBhY2Nlc3M6IHtcbiAgICAgIGFkbWluOiAoeyByZXEgfSkgPT4gYWRtaW5Sb2xlcy5pbmNsdWRlcygocmVxLnVzZXI/LnJvbGUgYXMgc3RyaW5nKSA/PyAndXNlcicpLFxuICAgICAgcmVhZDogaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMoeyBhZG1pblJvbGVzLCBpZEZpZWxkOiAnaWQnIH0pLFxuICAgICAgY3JlYXRlOiBpc0FkbWluV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcyB9KSxcbiAgICAgIGRlbGV0ZTogaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMoeyBhZG1pblJvbGVzLCBpZEZpZWxkOiAnaWQnIH0pLFxuICAgICAgdXBkYXRlOiBpc0FkbWluT3JDdXJyZW50VXNlclVwZGF0ZVdpdGhBbGxvd2VkRmllbGRzKHtcbiAgICAgICAgYWxsb3dlZEZpZWxkcyxcbiAgICAgICAgYWRtaW5Sb2xlcyxcbiAgICAgICAgdXNlclNsdWdcbiAgICAgIH0pLFxuICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/LmFjY2VzcyA/PyB7fSlcbiAgICB9LFxuICAgIGVuZHBvaW50czogW1xuICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/LmVuZHBvaW50cyA/IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24uZW5kcG9pbnRzIDogW10pLFxuICAgICAgZ2V0UmVmcmVzaFRva2VuRW5kcG9pbnQodXNlclNsdWcpLFxuICAgICAgZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQocGx1Z2luT3B0aW9ucywgdXNlclNsdWcpLFxuICAgICAgZ2V0R2VuZXJhdGVJbnZpdGVVcmxFbmRwb2ludCh7XG4gICAgICAgIHJvbGVzOiBhbGxSb2xlT3B0aW9ucyxcbiAgICAgICAgcGx1Z2luT3B0aW9uc1xuICAgICAgfSksXG4gICAgICBnZXRTZW5kSW52aXRlVXJsRW5kcG9pbnQocGx1Z2luT3B0aW9ucyksXG4gICAgICBnZXRTaWdudXBFbmRwb2ludChwbHVnaW5PcHRpb25zLCBiZXR0ZXJBdXRoT3B0aW9ucylcbiAgICBdLFxuICAgIGhvb2tzOiB7XG4gICAgICBiZWZvcmVDaGFuZ2U6IFtcbiAgICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5iZWZvcmVDaGFuZ2UgPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gW10gOiBbb25WZXJpZmllZENoYW5nZV0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJDaGFuZ2U6IFtcbiAgICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5hZnRlckNoYW5nZSA/PyBbXSksXG4gICAgICAgIC4uLihwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGhcbiAgICAgICAgICA/IFtdXG4gICAgICAgICAgOiBbXG4gICAgICAgICAgICAgIGdldFN5bmNBY2NvdW50SG9vayh7XG4gICAgICAgICAgICAgICAgdXNlclNsdWcsXG4gICAgICAgICAgICAgICAgYWNjb3VudFNsdWdcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0pXG4gICAgICBdLFxuICAgICAgYmVmb3JlTG9naW46IFtcbiAgICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5iZWZvcmVMb2dpbiA/PyBbXSksXG4gICAgICAgIC4uLihwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGggPyBbXSA6IFtnZXRCZWZvcmVMb2dpbkhvb2soKV0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dpbjogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9naW4gPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoXG4gICAgICAgICAgPyBbXVxuICAgICAgICAgIDogW1xuICAgICAgICAgICAgICBnZXRBZnRlckxvZ2luSG9vayh7XG4gICAgICAgICAgICAgICAgc2Vzc2lvbnNDb2xsZWN0aW9uU2x1Zzogc2Vzc2lvblNsdWcsXG4gICAgICAgICAgICAgICAgdXNlcnNDb2xsZWN0aW9uU2x1ZzogdXNlclNsdWdcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIF0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dvdXQ6IFsuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9nb3V0ID8/IFtdKSwgZ2V0QWZ0ZXJMb2dvdXRIb29rKHsgc2Vzc2lvbnNDb2xsZWN0aW9uU2x1Zzogc2Vzc2lvblNsdWcgfSldLFxuICAgICAgYmVmb3JlRGVsZXRlOiBbXG4gICAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5ob29rcz8uYmVmb3JlRGVsZXRlID8/IFtdKSxcbiAgICAgICAgZ2V0QmVmb3JlRGVsZXRlSG9vayh7XG4gICAgICAgICAgYWNjb3VudHNTbHVnOiBhY2NvdW50U2x1ZyxcbiAgICAgICAgICBzZXNzaW9uc1NsdWc6IHNlc3Npb25TbHVnLFxuICAgICAgICAgIHZlcmlmaWNhdGlvbnNTbHVnOiB2ZXJpZmljYXRpb25zU2x1Z1xuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0sXG4gICAgYXV0aDoge1xuICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24gJiYgdHlwZW9mIGV4aXN0aW5nVXNlckNvbGxlY3Rpb24uYXV0aCA9PT0gJ29iamVjdCcgPyBleGlzdGluZ1VzZXJDb2xsZWN0aW9uLmF1dGggOiB7fSksXG4gICAgICBkaXNhYmxlTG9jYWxTdHJhdGVneTogcGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gdHJ1ZSA6IHVuZGVmaW5lZCxcbiAgICAgIC4uLihoYXNVc2VybmFtZVBsdWdpbiAmJiB7XG4gICAgICAgIGxvZ2luV2l0aFVzZXJuYW1lOiB7XG4gICAgICAgICAgYWxsb3dFbWFpbExvZ2luOiB0cnVlLFxuICAgICAgICAgIHJlcXVpcmVFbWFpbDogdHJ1ZSxcbiAgICAgICAgICByZXF1aXJlVXNlcm5hbWU6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0pLFxuICAgICAgc3RyYXRlZ2llczogW2JldHRlckF1dGhTdHJhdGVneSh1c2VyU2x1ZyldXG4gICAgfSxcbiAgICBmaWVsZHM6IFtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5maWVsZHMgPz8gW10pLFxuICAgICAge1xuICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgbGFiZWw6ICdOYW1lJyxcbiAgICAgICAgc2F2ZVRvSldUOiB0cnVlLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVXNlcnMgY2hvc2VuIGRpc3BsYXkgbmFtZSdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2VtYWlsJyxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgdW5pcXVlOiB0cnVlLFxuICAgICAgICBpbmRleDogdHJ1ZSxcbiAgICAgICAgbGFiZWw6ICdFbWFpbCcsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgZW1haWwgb2YgdGhlIHVzZXInXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdlbWFpbFZlcmlmaWVkJyxcbiAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgIHNhdmVUb0pXVDogdHJ1ZSxcbiAgICAgICAgbGFiZWw6ICdFbWFpbCBWZXJpZmllZCcsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSBlbWFpbCBvZiB0aGUgdXNlciBoYXMgYmVlbiB2ZXJpZmllZCdcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ2ltYWdlJyxcbiAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICBsYWJlbDogJ0ltYWdlJyxcbiAgICAgICAgc2F2ZVRvSldUOiBmYWxzZSxcbiAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBpbWFnZSBvZiB0aGUgdXNlcidcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3JvbGUnLFxuICAgICAgICBsYWJlbDogJ1JvbGUnLFxuICAgICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIGRlZmF1bHRWYWx1ZTogcGx1Z2luT3B0aW9ucy51c2Vycz8uZGVmYXVsdFJvbGUgPz8gJ3VzZXInLFxuICAgICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICAgIG9wdGlvbnM6IGFsbFJvbGVPcHRpb25zLFxuICAgICAgICBhZG1pbjoge1xuICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIHJvbGUgb2YgdGhlIHVzZXInXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICAuLi5nZXRUaW1lc3RhbXBGaWVsZHMoe1xuICAgICAgICBzYXZlVXBkYXRlZEF0VG9KV1Q6IGZhbHNlLFxuICAgICAgICBzYXZlQ3JlYXRlZEF0VG9KV1Q6IGZhbHNlXG4gICAgICB9KVxuICAgIF1cbiAgfVxuXG4gIGlmIChiYVBsdWdpbnMpIHtcbiAgICBiYVBsdWdpbnMuZm9yRWFjaCgocGx1Z2luKSA9PiB7XG4gICAgICBzd2l0Y2ggKHBsdWdpbi5pZCkge1xuICAgICAgICBjYXNlICd0d28tZmFjdG9yJzpcbiAgICAgICAgICB1c2Vyc0NvbGxlY3Rpb24uZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogJ3R3b0ZhY3RvckVuYWJsZWQnLFxuICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgICAgICBsYWJlbDogJ1R3byBGYWN0b3IgRW5hYmxlZCcsXG4gICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaGFzIHR3byBmYWN0b3IgYXV0aGVudGljYXRpb24gZW5hYmxlZCcsXG4gICAgICAgICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICAgICAgICBGaWVsZDoge1xuICAgICAgICAgICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9wbHVnaW4vY2xpZW50I1R3b0ZhY3RvckF1dGgnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICd1c2VybmFtZSc6XG4gICAgICAgICAgdXNlcnNDb2xsZWN0aW9uLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAndXNlcm5hbWUnLFxuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIHVuaXF1ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLCAvLyBUT0RPOiBkZWNpZGUgaWYgdGhpcyBzaG91bGQgYmUgcmVxdWlyZWQsIHdpbGwgaGF2ZSB0byB0ZWxsIHVzZXJzIHRoZXkgbmVlZCB0byBhZGQgdWkgZm9yIGl0LlxuICAgICAgICAgICAgICBsYWJlbDogJ1VzZXJuYW1lJyxcbiAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSB1c2VybmFtZSBvZiB0aGUgdXNlcidcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2Rpc3BsYXlVc2VybmFtZScsXG4gICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICBsYWJlbDogJ0Rpc3BsYXkgVXNlcm5hbWUnLFxuICAgICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIGRpc3BsYXkgdXNlcm5hbWUgb2YgdGhlIHVzZXInXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnYW5vbnltb3VzJzpcbiAgICAgICAgICB1c2Vyc0NvbGxlY3Rpb24uZmllbGRzLnB1c2goe1xuICAgICAgICAgICAgbmFtZTogJ2lzQW5vbnltb3VzJyxcbiAgICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgICBkZWZhdWx0VmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgbGFiZWw6ICdJcyBBbm9ueW1vdXMnLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdXaGV0aGVyIHRoZSB1c2VyIGlzIGFub255bW91cy4nXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdwaG9uZS1udW1iZXInOlxuICAgICAgICAgIHVzZXJzQ29sbGVjdGlvbi5maWVsZHMucHVzaChcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3Bob25lTnVtYmVyJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgICBsYWJlbDogJ1Bob25lIE51bWJlcicsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAncGhvbmVOdW1iZXJWZXJpZmllZCcsXG4gICAgICAgICAgICAgIHR5cGU6ICdjaGVja2JveCcsXG4gICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICAgICAgICAgIGxhYmVsOiAnUGhvbmUgTnVtYmVyIFZlcmlmaWVkJyxcbiAgICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHBob25lIG51bWJlciBvZiB0aGUgdXNlciBoYXMgYmVlbiB2ZXJpZmllZCdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdhZG1pbic6XG4gICAgICAgICAgdXNlcnNDb2xsZWN0aW9uLmZpZWxkcy5wdXNoKFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYmFubmVkJyxcbiAgICAgICAgICAgICAgdHlwZTogJ2NoZWNrYm94JyxcbiAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgICAgbGFiZWw6ICdCYW5uZWQnLFxuICAgICAgICAgICAgICBhZG1pbjoge1xuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnV2hldGhlciB0aGUgdXNlciBpcyBiYW5uZWQgZnJvbSB0aGUgcGxhdGZvcm0nXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdiYW5SZWFzb24nLFxuICAgICAgICAgICAgICB0eXBlOiAndGV4dCcsXG4gICAgICAgICAgICAgIGxhYmVsOiAnQmFuIFJlYXNvbicsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgcmVhc29uIGZvciB0aGUgYmFuJ1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYmFuRXhwaXJlcycsXG4gICAgICAgICAgICAgIHR5cGU6ICdkYXRlJyxcbiAgICAgICAgICAgICAgbGFiZWw6ICdCYW4gRXhwaXJlcycsXG4gICAgICAgICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdUaGUgZGF0ZSBhbmQgdGltZSB3aGVuIHRoZSBiYW4gd2lsbCBleHBpcmUnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgY2FzZSAnaGFybW9ueS1lbWFpbCc6XG4gICAgICAgICAgdXNlcnNDb2xsZWN0aW9uLmZpZWxkcy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6ICdub3JtYWxpemVkRW1haWwnLFxuICAgICAgICAgICAgdHlwZTogJ3RleHQnLFxuICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgdW5pcXVlOiB0cnVlLFxuICAgICAgICAgICAgYWRtaW46IHtcbiAgICAgICAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIG5vcm1hbGl6ZWQgZW1haWwgb2YgdGhlIHVzZXInXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSlcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGlmIChwbHVnaW5PcHRpb25zLnVzZXJzPy5jb2xsZWN0aW9uT3ZlcnJpZGVzKSB7XG4gICAgdXNlcnNDb2xsZWN0aW9uID0gcGx1Z2luT3B0aW9ucy51c2Vycy5jb2xsZWN0aW9uT3ZlcnJpZGVzKHtcbiAgICAgIGNvbGxlY3Rpb246IHVzZXJzQ29sbGVjdGlvblxuICAgIH0pXG4gIH1cblxuICByZXR1cm4gdXNlcnNDb2xsZWN0aW9uXG59XG4iXSwibmFtZXMiOlsiYmFzZUNvbGxlY3Rpb25TbHVncyIsImlzQWRtaW5PckN1cnJlbnRVc2VyVXBkYXRlV2l0aEFsbG93ZWRGaWVsZHMiLCJpc0FkbWluT3JDdXJyZW50VXNlcldpdGhSb2xlcyIsImlzQWRtaW5XaXRoUm9sZXMiLCJnZXRSZWZyZXNoVG9rZW5FbmRwb2ludCIsIm9uVmVyaWZpZWRDaGFuZ2UiLCJnZXRTeW5jQWNjb3VudEhvb2siLCJnZXRCZWZvcmVMb2dpbkhvb2siLCJnZXRBZnRlckxvZ2luSG9vayIsImdldEFmdGVyTG9nb3V0SG9vayIsImdldEJlZm9yZURlbGV0ZUhvb2siLCJiZXR0ZXJBdXRoU3RyYXRlZ3kiLCJnZXRUaW1lc3RhbXBGaWVsZHMiLCJnZXRBbGxSb2xlT3B0aW9ucyIsImdldFNpZ251cEVuZHBvaW50IiwiZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQiLCJnZXRHZW5lcmF0ZUludml0ZVVybEVuZHBvaW50IiwiZ2V0U2VuZEludml0ZVVybEVuZHBvaW50IiwiY2hlY2tVc2VybmFtZVBsdWdpbiIsImJ1aWxkVXNlcnNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJiZXR0ZXJBdXRoT3B0aW9ucyIsInVzZXJTbHVnIiwidXNlcnMiLCJzbHVnIiwiYWNjb3VudFNsdWciLCJhY2NvdW50cyIsInNlc3Npb25TbHVnIiwic2Vzc2lvbnMiLCJ2ZXJpZmljYXRpb25zU2x1ZyIsInZlcmlmaWNhdGlvbnMiLCJiYVBsdWdpbnMiLCJwbHVnaW5zIiwiYWRtaW5Sb2xlcyIsImFsbFJvbGVPcHRpb25zIiwiaGFzVXNlcm5hbWVQbHVnaW4iLCJleGlzdGluZ1VzZXJDb2xsZWN0aW9uIiwiZmluZCIsImNvbGxlY3Rpb24iLCJhbGxvd2VkRmllbGRzIiwidXNlcnNDb2xsZWN0aW9uIiwiYWRtaW4iLCJkZWZhdWx0Q29sdW1ucyIsInVzZUFzVGl0bGUiLCJncm91cCIsImNvbGxlY3Rpb25BZG1pbkdyb3VwIiwiaGlkZGVuIiwiY29tcG9uZW50cyIsIkRlc2NyaXB0aW9uIiwicGF0aCIsImNsaWVudFByb3BzIiwicm9sZXMiLCJ2aWV3cyIsImVkaXQiLCJhZG1pbkJ1dHRvbnMiLCJ0YWIiLCJDb21wb25lbnQiLCJjb25kaXRpb24iLCJzb21lIiwicGx1Z2luIiwiaWQiLCJhY2Nlc3MiLCJyZXEiLCJpbmNsdWRlcyIsInVzZXIiLCJyb2xlIiwicmVhZCIsImlkRmllbGQiLCJjcmVhdGUiLCJkZWxldGUiLCJ1cGRhdGUiLCJlbmRwb2ludHMiLCJob29rcyIsImJlZm9yZUNoYW5nZSIsImRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGgiLCJhZnRlckNoYW5nZSIsImJlZm9yZUxvZ2luIiwiYWZ0ZXJMb2dpbiIsInNlc3Npb25zQ29sbGVjdGlvblNsdWciLCJ1c2Vyc0NvbGxlY3Rpb25TbHVnIiwiYWZ0ZXJMb2dvdXQiLCJiZWZvcmVEZWxldGUiLCJhY2NvdW50c1NsdWciLCJzZXNzaW9uc1NsdWciLCJhdXRoIiwiZGlzYWJsZUxvY2FsU3RyYXRlZ3kiLCJ1bmRlZmluZWQiLCJsb2dpbldpdGhVc2VybmFtZSIsImFsbG93RW1haWxMb2dpbiIsInJlcXVpcmVFbWFpbCIsInJlcXVpcmVVc2VybmFtZSIsInN0cmF0ZWdpZXMiLCJmaWVsZHMiLCJuYW1lIiwidHlwZSIsImxhYmVsIiwic2F2ZVRvSldUIiwiZGVzY3JpcHRpb24iLCJyZXF1aXJlZCIsInVuaXF1ZSIsImluZGV4IiwiZGVmYXVsdFZhbHVlIiwiZGVmYXVsdFJvbGUiLCJvcHRpb25zIiwic2F2ZVVwZGF0ZWRBdFRvSldUIiwic2F2ZUNyZWF0ZWRBdFRvSldUIiwiZm9yRWFjaCIsInB1c2giLCJGaWVsZCIsInJlYWRPbmx5IiwiY29sbGVjdGlvbk92ZXJyaWRlcyJdLCJtYXBwaW5ncyI6IkFBRUEsU0FBU0EsbUJBQW1CLFFBQVEscUJBQW9CO0FBQ3hELFNBQVNDLDJDQUEyQyxFQUFFQyw2QkFBNkIsRUFBRUMsZ0JBQWdCLFFBQVEsMEJBQXlCO0FBQ3RJ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
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3VzZXJzL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNoZWNrUGx1Z2luRXhpc3RzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9jaGVjay1wbHVnaW4tZXhpc3RzJ1xuaW1wb3J0IHsgZ2V0RGVhZnVsdENvbGxlY3Rpb25TbHVnIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vaGVscGVycy9nZXQtY29sbGVjdGlvbi1zbHVnJ1xuaW1wb3J0IHsgYmFNb2RlbEtleSwgZGVmYXVsdHMsIHN1cHBvcnRlZEJBUGx1Z2luSWRzIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgZ2V0QWxsUm9sZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL2dldC1hbGwtcm9sZXMnXG5pbXBvcnQgeyBhc3NlcnRBbGxTY2hlbWFGaWVsZHMgfSBmcm9tICcuLi91dGlscy9jb2xsZWN0aW9uLXNjaGVtYSdcbmltcG9ydCB7IGlzQWRtaW5PckN1cnJlbnRVc2VyVXBkYXRlV2l0aEFsbG93ZWRGaWVsZHMsIGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzLCBpc0FkbWluV2l0aFJvbGVzIH0gZnJvbSAnLi4vdXRpbHMvcGF5bG9hZC1hY2Nlc3MnXG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uRmllbGRzIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNmb3JtLXNjaGVtYS1maWVsZHMtdG8tcGF5bG9hZCdcbmltcG9ydCB7IGJldHRlckF1dGhTdHJhdGVneSB9IGZyb20gJy4vYmV0dGVyLWF1dGgtc3RyYXRlZ3knXG5pbXBvcnQge1xuICBnZXRHZW5lcmF0ZUludml0ZVVybEVuZHBvaW50LFxuICBnZXRSZWZyZXNoVG9rZW5FbmRwb2ludCxcbiAgZ2V0U2VuZEludml0ZVVybEVuZHBvaW50LFxuICBnZXRTZXRBZG1pblJvbGVFbmRwb2ludCxcbiAgZ2V0U2lnbnVwRW5kcG9pbnRcbn0gZnJvbSAnLi9lbmRwb2ludHMnXG5pbXBvcnQge1xuICBnZXRTeW5jQWNjb3VudEhvb2ssXG4gIGdldEFmdGVyTG9naW5Ib29rLFxuICBnZXRBZnRlckxvZ291dEhvb2ssXG4gIGdldEJlZm9yZURlbGV0ZUhvb2ssXG4gIGdldEJlZm9yZUxvZ2luSG9vayxcbiAgZ2V0T25WZXJpZmllZENoYW5nZUhvb2tcbn0gZnJvbSAnLi9ob29rcydcblxuaW1wb3J0IHR5cGUgeyBDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB0eXBlIHsgRmllbGRSdWxlIH0gZnJvbSAnLi4vdXRpbHMvbW9kZWwtZmllbGQtdHJhbnNmb3JtYXRpb25zJ1xuaW1wb3J0IHR5cGUgeyBCdWlsZENvbGxlY3Rpb25Qcm9wcywgRmllbGRPdmVycmlkZXMgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB0eXBlIHsgVXNlciB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvZ2VuZXJhdGVkLXR5cGVzJ1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRVc2Vyc0NvbGxlY3Rpb24oeyBpbmNvbWluZ0NvbGxlY3Rpb25zLCBwbHVnaW5PcHRpb25zLCBzY2hlbWEgfTogQnVpbGRDb2xsZWN0aW9uUHJvcHMpOiBDb2xsZWN0aW9uQ29uZmlnIHtcbiAgY29uc3QgdXNlclNsdWcgPSBnZXREZWFmdWx0Q29sbGVjdGlvblNsdWcoeyBtb2RlbEtleTogYmFNb2RlbEtleS51c2VyLCBwbHVnaW5PcHRpb25zIH0pXG4gIGNvbnN0IGFkbWluUm9sZXMgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5hZG1pblJvbGVzID8/IFtkZWZhdWx0cy5hZG1pblJvbGVdXG4gIGNvbnN0IGFsbFJvbGVPcHRpb25zID0gZ2V0QWxsUm9sZU9wdGlvbnMocGx1Z2luT3B0aW9ucylcbiAgY29uc3QgaGFzVXNlcm5hbWVQbHVnaW4gPSBjaGVja1BsdWdpbkV4aXN0cyhwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID8/IHt9LCBzdXBwb3J0ZWRCQVBsdWdpbklkcy51c2VybmFtZSlcbiAgY29uc3QgZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiA9IGluY29taW5nQ29sbGVjdGlvbnMuZmluZCgoY29sbGVjdGlvbikgPT4gY29sbGVjdGlvbi5zbHVnID09PSB1c2VyU2x1ZykgYXMgQ29sbGVjdGlvbkNvbmZpZyB8IHVuZGVmaW5lZFxuXG4gIC8vIFRPRE86IFJFVklFVyBUSElTXG4gIGNvbnN0IGFsbG93ZWRGaWVsZHMgPSBwbHVnaW5PcHRpb25zLnVzZXJzPy5hbGxvd2VkRmllbGRzID8/IFsnbmFtZSddXG5cbiAgY29uc3QgdXNlckZpZWxkUnVsZXM6IEZpZWxkUnVsZVtdID0gW1xuICAgIHtcbiAgICAgIGNvbmRpdGlvbjogKGZpZWxkKSA9PiBmaWVsZC50eXBlID09PSAnZGF0ZScsXG4gICAgICB0cmFuc2Zvcm06IChmaWVsZCkgPT4gKHtcbiAgICAgICAgLi4uZmllbGQsXG4gICAgICAgIHNhdmVUb0pXVDogZmFsc2UsXG4gICAgICAgIGFkbWluOiB7XG4gICAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICBpbmRleDogdHJ1ZSxcbiAgICAgICAgbGFiZWw6ICh7IHQgfTogYW55KSA9PiB0KCdnZW5lcmFsOnVwZGF0ZWRBdCcpXG4gICAgICB9KVxuICAgIH1cbiAgXVxuXG4gIGNvbnN0IGZpZWxkT3ZlcnJpZGVzOiBGaWVsZE92ZXJyaWRlczxrZXlvZiBVc2VyPiA9IHtcbiAgICByb2xlOiAoZmllbGQpID0+ICh7XG4gICAgICB0eXBlOiAnc2VsZWN0JyxcbiAgICAgIG9wdGlvbnM6IGFsbFJvbGVPcHRpb25zLFxuICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUgPz8gZGVmYXVsdHMudXNlclJvbGUsXG4gICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSByb2xlIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgZW1haWw6ICgpID0+ICh7XG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGVtYWlsIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgZW1haWxWZXJpZmllZDogKGZpZWxkKSA9PiAoe1xuICAgICAgZGVmYXVsdFZhbHVlOiBmaWVsZC5kZWZhdWx0VmFsdWUgPz8gZmFsc2UsXG4gICAgICBzYXZlVG9KV1Q6IHRydWUsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIGVtYWlsIG9mIHRoZSB1c2VyIGhhcyBiZWVuIHZlcmlmaWVkJyB9XG4gICAgfSksXG4gICAgbmFtZTogKCkgPT4gKHtcbiAgICAgIHNhdmVUb0pXVDogdHJ1ZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVXNlcnMgY2hvc2VuIGRpc3BsYXkgbmFtZScgfVxuICAgIH0pLFxuICAgIGltYWdlOiAoKSA9PiAoe1xuICAgICAgc2F2ZVRvSldUOiBmYWxzZSxcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGltYWdlIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgdHdvRmFjdG9yRW5hYmxlZDogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjoge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaGFzIHR3byBmYWN0b3IgYXV0aGVudGljYXRpb24gZW5hYmxlZCcsXG4gICAgICAgIGNvbXBvbmVudHM6IHtcbiAgICAgICAgICBGaWVsZDoge1xuICAgICAgICAgICAgcGF0aDogJ3BheWxvYWQtYXV0aC9iZXR0ZXItYXV0aC9wbHVnaW4vY2xpZW50I1R3b0ZhY3RvckF1dGgnXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSksXG4gICAgdXNlcm5hbWU6ICgpID0+ICh7XG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1RoZSB1c2VybmFtZSBvZiB0aGUgdXNlcicgfVxuICAgIH0pLFxuICAgIGRpc3BsYXlVc2VybmFtZTogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGRpc3BsYXkgdXNlcm5hbWUgb2YgdGhlIHVzZXInIH1cbiAgICB9KSxcbiAgICBpc0Fub255bW91czogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaXMgYW5vbnltb3VzLicgfVxuICAgIH0pLFxuICAgIHBob25lTnVtYmVyOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdUaGUgcGhvbmUgbnVtYmVyIG9mIHRoZSB1c2VyJyB9XG4gICAgfSksXG4gICAgcGhvbmVOdW1iZXJWZXJpZmllZDogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHBob25lIG51bWJlciBvZiB0aGUgdXNlciBoYXMgYmVlbiB2ZXJpZmllZCcgfVxuICAgIH0pLFxuICAgIGJhbm5lZDogKCkgPT4gKHtcbiAgICAgIGRlZmF1bHRWYWx1ZTogZmFsc2UsXG4gICAgICBhZG1pbjogeyBkZXNjcmlwdGlvbjogJ1doZXRoZXIgdGhlIHVzZXIgaXMgYmFubmVkIGZyb20gdGhlIHBsYXRmb3JtJyB9XG4gICAgfSksXG4gICAgYmFuUmVhc29uOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHsgZGVzY3JpcHRpb246ICdUaGUgcmVhc29uIGZvciB0aGUgYmFuJyB9XG4gICAgfSksXG4gICAgYmFuRXhwaXJlczogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7IGRlc2NyaXB0aW9uOiAnVGhlIGRhdGUgYW5kIHRpbWUgd2hlbiB0aGUgYmFuIHdpbGwgZXhwaXJlJyB9XG4gICAgfSksXG4gICAgbm9ybWFsaXplZEVtYWlsOiAoKSA9PiAoe1xuICAgICAgYWRtaW46IHtcbiAgICAgICAgcmVhZE9ubHk6IHRydWUsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnVGhlIG5vcm1hbGl6ZWQgZW1haWwgb2YgdGhlIHVzZXInXG4gICAgICB9XG4gICAgfSksXG4gICAgc3RyaXBlQ3VzdG9tZXJJZDogKCkgPT4gKHtcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIHJlYWRPbmx5OiB0cnVlLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1RoZSBTdHJpcGUgY3VzdG9tZXIgSUQgb2YgdGhlIHVzZXInXG4gICAgICB9XG4gICAgfSlcbiAgfVxuXG4gIGNvbnN0IGNvbGxlY3Rpb25GaWVsZHMgPSBnZXRDb2xsZWN0aW9uRmllbGRzKHtcbiAgICBzY2hlbWEsXG4gICAgZmllbGRSdWxlczogdXNlckZpZWxkUnVsZXMsXG4gICAgYWRkaXRpb25hbFByb3BlcnRpZXM6IGZpZWxkT3ZlcnJpZGVzXG4gIH0pXG5cbiAgbGV0IHVzZXJzQ29sbGVjdGlvbjogQ29sbGVjdGlvbkNvbmZpZyA9IHtcbiAgICAuLi5leGlzdGluZ1VzZXJDb2xsZWN0aW9uLFxuICAgIHNsdWc6IHVzZXJTbHVnLFxuICAgIGFkbWluOiB7XG4gICAgICBkZWZhdWx0Q29sdW1uczogWydlbWFpbCddLFxuICAgICAgdXNlQXNUaXRsZTogJ2VtYWlsJyxcbiAgICAgIGdyb3VwOiBwbHVnaW5PcHRpb25zPy5jb2xsZWN0aW9uQWRtaW5Hcm91cCA/PyAnQXV0aCcsXG4gICAgICAuLi5leGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5hZG1pbixcbiAgICAgIGhpZGRlbjogcGx1Z2luT3B0aW9ucy51c2Vycz8uaGlkZGVuID8/IGZhbHNlLFxuICAgICAgY29tcG9uZW50czoge1xuICAgICAgICBEZXNjcmlwdGlvbjoge1xuICAgICAgICAgIHBhdGg6ICdwYXlsb2FkLWF1dGgvYmV0dGVyLWF1dGgvcGx1Z2luL2NsaWVudCNBZG1pbkludml0ZUJ1dHRvbicsXG4gICAgICAgICAgY2xpZW50UHJvcHM6IHtcbiAgICAgICAgICAgIHJvbGVzOiBhbGxSb2xlT3B0aW9uc1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgdmlld3M6IHtcbiAgICAgICAgICBlZGl0OiB7XG4gICAgICAgICAgICBhZG1pbkJ1dHRvbnM6IHtcbiAgICAgICAgICAgICAgdGFiOiB7XG4gICAgICAgICAgICAgICAgQ29tcG9uZW50OiB7XG4gICAgICAgICAgICAgICAgICBwYXRoOiAncGF5bG9hZC1hdXRoL2JldHRlci1hdXRoL3BsdWdpbi9jbGllbnQjQWRtaW5CdXR0b25zJyxcbiAgICAgICAgICAgICAgICAgIGNsaWVudFByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgIHVzZXJTbHVnXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjb25kaXRpb246ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIC8vIE9ubHkgc2hvdyB0aGUgaW1wZXJzb25hdGUgYnV0dG9uIGlmIHRoZSBhZG1pbiBwbHVnaW4gaXMgZW5hYmxlZFxuICAgICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrUGx1Z2luRXhpc3RzKHBsdWdpbk9wdGlvbnMuYmV0dGVyQXV0aE9wdGlvbnMgPz8ge30sIHN1cHBvcnRlZEJBUGx1Z2luSWRzLmFkbWluKVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgYWNjZXNzOiB7XG4gICAgICBhZG1pbjogKHsgcmVxIH0pID0+IGFkbWluUm9sZXMuaW5jbHVkZXMoKHJlcS51c2VyPy5yb2xlIGFzIHN0cmluZykgPz8gJ3VzZXInKSxcbiAgICAgIHJlYWQ6IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcywgaWRGaWVsZDogJ2lkJyB9KSxcbiAgICAgIGNyZWF0ZTogaXNBZG1pbldpdGhSb2xlcyh7IGFkbWluUm9sZXMgfSksXG4gICAgICBkZWxldGU6IGlzQWRtaW5PckN1cnJlbnRVc2VyV2l0aFJvbGVzKHsgYWRtaW5Sb2xlcywgaWRGaWVsZDogJ2lkJyB9KSxcbiAgICAgIHVwZGF0ZTogaXNBZG1pbk9yQ3VycmVudFVzZXJVcGRhdGVXaXRoQWxsb3dlZEZpZWxkcyh7XG4gICAgICAgIGFsbG93ZWRGaWVsZHMsXG4gICAgICAgIGFkbWluUm9sZXMsXG4gICAgICAgIHVzZXJTbHVnXG4gICAgICB9KSxcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5hY2Nlc3MgPz8ge30pXG4gICAgfSxcbiAgICBjdXN0b206IHtcbiAgICAgIC4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5jdXN0b20gPz8ge30pLFxuICAgICAgYmV0dGVyQXV0aE1vZGVsS2V5OiBiYU1vZGVsS2V5LnVzZXJcbiAgICB9LFxuICAgIGVuZHBvaW50czogW1xuICAgICAgLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/LmVuZHBvaW50cyA/IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24uZW5kcG9pbnRzIDogW10pLFxuICAgICAgZ2V0UmVmcmVzaFRva2VuRW5kcG9pbnQodXNlclNsdWcpLFxuICAgICAgZ2V0U2V0QWRtaW5Sb2xlRW5kcG9pbnQocGx1Z2luT3B0aW9ucywgdXNlclNsdWcpLFxuICAgICAgZ2V0R2VuZXJhdGVJbnZpdGVVcmxFbmRwb2ludCh7XG4gICAgICAgIHJvbGVzOiBhbGxSb2xlT3B0aW9ucyxcbiAgICAgICAgcGx1Z2luT3B0aW9uc1xuICAgICAgfSksXG4gICAgICBnZXRTZW5kSW52aXRlVXJsRW5kcG9pbnQocGx1Z2luT3B0aW9ucyksXG4gICAgICBnZXRTaWdudXBFbmRwb2ludChwbHVnaW5PcHRpb25zKVxuICAgIF0sXG4gICAgaG9va3M6IHtcbiAgICAgIGJlZm9yZUNoYW5nZTogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmJlZm9yZUNoYW5nZSA/PyBbXSksXG4gICAgICAgIC4uLihwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGggPyBbXSA6IFtnZXRPblZlcmlmaWVkQ2hhbmdlSG9vaygpXSlcbiAgICAgIF0sXG4gICAgICBhZnRlckNoYW5nZTogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyQ2hhbmdlID8/IFtdKSxcbiAgICAgICAgLi4uKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCA/IFtdIDogW2dldFN5bmNBY2NvdW50SG9vaygpXSlcbiAgICAgIF0sXG4gICAgICBiZWZvcmVMb2dpbjogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmJlZm9yZUxvZ2luID8/IFtdKSxcbiAgICAgICAgLi4uKHBsdWdpbk9wdGlvbnMuZGlzYWJsZURlZmF1bHRQYXlsb2FkQXV0aCA/IFtdIDogW2dldEJlZm9yZUxvZ2luSG9vayhwbHVnaW5PcHRpb25zLmJldHRlckF1dGhPcHRpb25zID8/IHt9KV0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dpbjogW1xuICAgICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9naW4gPz8gW10pLFxuICAgICAgICAuLi4ocGx1Z2luT3B0aW9ucy5kaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoID8gW10gOiBbZ2V0QWZ0ZXJMb2dpbkhvb2soKV0pXG4gICAgICBdLFxuICAgICAgYWZ0ZXJMb2dvdXQ6IFsuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbj8uaG9va3M/LmFmdGVyTG9nb3V0ID8/IFtdKSwgZ2V0QWZ0ZXJMb2dvdXRIb29rKCldLFxuICAgICAgYmVmb3JlRGVsZXRlOiBbLi4uKGV4aXN0aW5nVXNlckNvbGxlY3Rpb24/Lmhvb2tzPy5iZWZvcmVEZWxldGUgPz8gW10pLCBnZXRCZWZvcmVEZWxldGVIb29rKCldXG4gICAgfSxcbiAgICBhdXRoOiB7XG4gICAgICAuLi4oZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiAmJiB0eXBlb2YgZXhpc3RpbmdVc2VyQ29sbGVjdGlvbi5hdXRoID09PSAnb2JqZWN0JyA/IGV4aXN0aW5nVXNlckNvbGxlY3Rpb24uYXV0aCA6IHt9KSxcbiAgICAgIGRpc2FibGVMb2NhbFN0cmF0ZWd5OiBwbHVnaW5PcHRpb25zLmRpc2FibGVEZWZhdWx0UGF5bG9hZEF1dGggPyB0cnVlIDogdW5kZWZpbmVkLFxuICAgICAgLi4uKGhhc1VzZXJuYW1lUGx1Z2luICYmIHtcbiAgICAgICAgbG9naW5XaXRoVXNlcm5hbWU6IHtcbiAgICAgICAgICBhbGxvd0VtYWlsTG9naW46IHRydWUsXG4gICAgICAgICAgcmVxdWlyZUVtYWlsOiB0cnVlLFxuICAgICAgICAgIHJlcXVpcmVVc2VybmFtZTogZmFsc2VcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgICBzdHJhdGVnaWVzOiBbYmV0dGVyQXV0aFN0cmF0ZWd5KHVzZXJTbHVnKV1cbiAgICB9LFxuICAgIGZpZWxkczogWy4uLihleGlzdGluZ1VzZXJDb2xsZWN0aW9uPy5maWVsZHMgPz8gW10pLCAuLi4oY29sbGVjdGlvbkZpZWxkcyA/PyBbXSldXG4gIH1cblxuICBpZiAocGx1Z2luT3B0aW9ucy51c2Vycz8uY29sbGVjdGlvbk92ZXJyaWRlcykge1xuICAgIHVzZXJzQ29sbGVjdGlvbiA9IHBsdWdpbk9wdGlvbnMudXNlcnMuY29sbGVjdGlvbk92ZXJyaWRlcyh7XG4gICAgICBjb2xsZWN0aW9uOiB1c2Vyc0NvbGxlY3Rpb25cbiAgICB9KVxuICB9XG5cbiAgYXNzZXJ0QWxsU2NoZW1hRmllbGRzKHVzZXJzQ29sbGVjdGlvbiwgc2NoZW1hKVxuXG4gIHJldHVybiB1c2Vyc0NvbGxlY3Rpb25cbn1cbiJdLCJuYW1lcyI6WyJjaGVja1BsdWdpbkV4aXN0cyIsImdldERlYWZ1bHRDb2xsZWN0aW9uU2x1ZyIsImJhTW9kZWxLZXkiLCJkZWZhdWx0cyIsInN1cHBvcnRlZEJBUGx1Z2luSWRzIiwiZ2V0QWxsUm9sZU9wdGlvbnMiLCJhc3NlcnRBbGxTY2hlbWFGaWVsZHMiLCJpc0FkbWluT3JDdXJyZW50VXNlclVwZGF0ZVdpdGhBbGxvd2VkRmllbGRzIiwiaXNBZG1pbk9yQ3VycmVudFVzZXJXaXRoUm9sZXMiLCJpc0FkbWluV2l0aFJvbGVzIiwiZ2V0Q29sbGVjdGlvbkZpZWxkcyIsImJldHRlckF1dGhTdHJhdGVneSIsImdldEdlbmVyYXRlSW52aXRlVXJsRW5kcG9pbnQiLCJnZXRSZWZyZXNoVG9rZW5FbmRwb2ludCIsImdldFNlbmRJbnZpdGVVcmxFbmRwb2ludCIsImdldFNldEFkbWluUm9sZUVuZHBvaW50IiwiZ2V0U2lnbnVwRW5kcG9pbnQiLCJnZXRTeW5jQWNjb3VudEhvb2siLCJnZXRBZnRlckxvZ2luSG9vayIsImdldEFmdGVyTG9nb3V0SG9vayIsImdldEJlZm9yZURlbGV0ZUhvb2siLCJnZXRCZWZvcmVMb2dpbkhvb2siLCJnZXRPblZlcmlmaWVkQ2hhbmdlSG9vayIsImJ1aWxkVXNlcnNDb2xsZWN0aW9uIiwiaW5jb21pbmdDb2xsZWN0aW9ucyIsInBsdWdpbk9wdGlvbnMiLCJzY2hlbWEiLCJ1c2VyU2x1ZyIsIm1vZGVsS2V5IiwidXNlciIsImFkbWluUm9sZXMiLCJ1c2VycyIsImFkbWluUm9sZSIsImFsbFJvbGVPcHRpb25zIiwiaGFzVXNlcm5hbWVQbHVnaW4iLCJiZXR0ZXJBdXRoT3B0aW9ucyIsInVzZXJuYW1lIiwiZXhpc3RpbmdVc2VyQ29sbGVjdGlvbiIsImZpbmQiLCJjb2xsZWN0aW9uIiwic2x1ZyIsImFsbG93ZWRGaWVsZHMiLCJ1c2VyRmllbGRSdWxlcyIsImNvbmRpdGlvbiIsImZpZWxkIiwidHlwZSIsInRyYW5zZm9ybSIsInNhdmVUb0pXVCIsImFkbWluIiwiZGlzYWJsZUJ1bGtFZGl0IiwiaGlkZGVuIiwiaW5kZXgiLCJsYWJlbCIsInQiLCJmaWVsZE92ZXJyaWRlcyIsInJvbGUiLCJvcHRpb25zIiwiZGVmYXVsdFZhbHVlIiwidXNlclJvbGUiLCJkZXNjcmlwdGlvbiIsImVtYWlsIiwiZW1haWxWZXJpZmllZCIsIm5hbWUiLCJpbWFnZSIsInR3b0ZhY3RvckVuYWJsZWQiLCJjb21wb25lbnRzIiwiRmllbGQiLCJwYXRoIiwiZGlzcGxheVVzZXJuYW1lIiwiaXNBbm9ueW1vdXMiLCJwaG9uZU51bWJlciIsInBob25lTnVtYmVyVmVyaWZpZWQiLCJiYW5uZWQiLCJiYW5SZWFzb24iLCJiYW5FeHBpcmVzIiwibm9ybWFsaXplZEVtYWlsIiwicmVhZE9ubHkiLCJzdHJpcGVDdXN0b21lcklkIiwiY29sbGVjdGlvbkZpZWxkcyIsImZpZWxkUnVsZXMiLCJhZGRpdGlvbmFsUHJvcGVydGllcyIsInVzZXJzQ29sbGVjdGlvbiIsImRlZmF1bHRDb2x1bW5zIiwidXNlQXNUaXRsZSIsImdyb3VwIiwiY29sbGVjdGlvbkFkbWluR3JvdXAiLCJEZXNjcmlwdGlvbiIsImNsaWVudFByb3BzIiwicm9sZXMiLCJ2aWV3cyIsImVkaXQiLCJhZG1pbkJ1dHRvbnMiLCJ0YWIiLCJDb21wb25lbnQiLCJhY2Nlc3MiLCJyZXEiLCJpbmNsdWRlcyIsInJlYWQiLCJpZEZpZWxkIiwiY3JlYXRlIiwiZGVsZXRlIiwidXBkYXRlIiwiY3VzdG9tIiwiYmV0dGVyQXV0aE1vZGVsS2V5IiwiZW5kcG9pbnRzIiwiaG9va3MiLCJiZWZvcmVDaGFuZ2UiLCJkaXNhYmxlRGVmYXVsdFBheWxvYWRBdXRoIiwiYWZ0ZXJDaGFuZ2UiLCJiZWZvcmVMb2dpbiIsImFmdGVyTG9naW4iLCJhZnRlckxvZ291dCIsImJlZm9yZURlbGV0ZSIsImF1dGgiLCJkaXNhYmxlTG9jYWxTdHJhdGVneSIsInVuZGVmaW5lZCIsImxvZ2luV2l0aFVzZXJuYW1lIiwiYWxsb3dFbWFpbExvZ2luIiwicmVxdWlyZUVtYWlsIiwicmVxdWlyZVVzZXJuYW1lIiwic3RyYXRlZ2llcyIsImZpZWxkcyIsImNvbGxlY3Rpb25PdmVycmlkZXMi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
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { CollectionSchemaMap } from "@/better-auth/plugin/helpers/get-collection-schema-map";
|
|
2
|
+
import { BuildSchema } from "@/better-auth/types";
|
|
3
|
+
import { CollectionConfig } from "payload";
|
|
4
|
+
export declare function getSchemaCollectionSlug(collectionSchemaMap: CollectionSchemaMap, model: string): string;
|
|
5
|
+
export declare function getSchemaFieldName(collectionSchemaMap: CollectionSchemaMap, model: string, fieldName: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* Asserts that all field keys that exist in the schema exist in the collection
|
|
8
|
+
*
|
|
9
|
+
* It checks based on the custom.betterAuthFieldKey property.
|
|
10
|
+
*
|
|
11
|
+
* @param collection - The collection object
|
|
12
|
+
* @param schema - The schema object containing field definitions
|
|
13
|
+
* @throws {Error} If any required field is missing from the schema
|
|
14
|
+
*/
|
|
15
|
+
export declare function assertAllSchemaFields(collection: CollectionConfig, schema: BuildSchema): void;
|
|
16
|
+
//# sourceMappingURL=collection-schema.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collection-schema.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/utils/collection-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wDAAwD,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAoB,MAAM,SAAS,CAAC;AAE7D,wBAAgB,uBAAuB,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAEvG;AAED,wBAAgB,kBAAkB,CAAC,mBAAmB,EAAE,mBAAmB,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAErH;AAED;;;;;;;;GAQG;AAEH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,WAAW,QAiBtF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { flattenAllFields } from "payload";
|
|
2
|
+
export function getSchemaCollectionSlug(collectionSchemaMap, model) {
|
|
3
|
+
return collectionSchemaMap?.[model]?.collectionSlug ?? model;
|
|
4
|
+
}
|
|
5
|
+
export function getSchemaFieldName(collectionSchemaMap, model, fieldName) {
|
|
6
|
+
return collectionSchemaMap?.[model]?.fields[fieldName] ?? fieldName;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Asserts that all field keys that exist in the schema exist in the collection
|
|
10
|
+
*
|
|
11
|
+
* It checks based on the custom.betterAuthFieldKey property.
|
|
12
|
+
*
|
|
13
|
+
* @param collection - The collection object
|
|
14
|
+
* @param schema - The schema object containing field definitions
|
|
15
|
+
* @throws {Error} If any required field is missing from the schema
|
|
16
|
+
*/ export function assertAllSchemaFields(collection, schema) {
|
|
17
|
+
const missingFields = [];
|
|
18
|
+
const schemaFieldKeys = Object.keys(schema.fields);
|
|
19
|
+
const flattenedCollectionFields = flattenAllFields(collection);
|
|
20
|
+
// Check that each schema field key has a corresponding field in the collection
|
|
21
|
+
schemaFieldKeys.forEach((schemaKey)=>{
|
|
22
|
+
const fieldExists = flattenedCollectionFields.some((field)=>field.custom?.betterAuthFieldKey === schemaKey);
|
|
23
|
+
if (!fieldExists) {
|
|
24
|
+
missingFields.push(schemaKey);
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
if (missingFields.length > 0) {
|
|
28
|
+
throw new Error(`Missing required custom.betterAuthFieldKeys in collection: ${collection.slug} [${missingFields.join(', ')}]`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3V0aWxzL2NvbGxlY3Rpb24tc2NoZW1hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgQ29sbGVjdGlvblNjaGVtYU1hcCB9IGZyb20gXCJAL2JldHRlci1hdXRoL3BsdWdpbi9oZWxwZXJzL2dldC1jb2xsZWN0aW9uLXNjaGVtYS1tYXBcIjtcbmltcG9ydCB7IEJ1aWxkU2NoZW1hIH0gZnJvbSBcIkAvYmV0dGVyLWF1dGgvdHlwZXNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb25Db25maWcsIGZsYXR0ZW5BbGxGaWVsZHMgfSBmcm9tIFwicGF5bG9hZFwiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NoZW1hQ29sbGVjdGlvblNsdWcoY29sbGVjdGlvblNjaGVtYU1hcDogQ29sbGVjdGlvblNjaGVtYU1hcCwgbW9kZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBjb2xsZWN0aW9uU2NoZW1hTWFwPy5bbW9kZWwgYXMga2V5b2YgQ29sbGVjdGlvblNjaGVtYU1hcF0/LmNvbGxlY3Rpb25TbHVnID8/IG1vZGVsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2NoZW1hRmllbGROYW1lKGNvbGxlY3Rpb25TY2hlbWFNYXA6IENvbGxlY3Rpb25TY2hlbWFNYXAsIG1vZGVsOiBzdHJpbmcsIGZpZWxkTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGNvbGxlY3Rpb25TY2hlbWFNYXA/Llttb2RlbCBhcyBrZXlvZiBDb2xsZWN0aW9uU2NoZW1hTWFwXT8uZmllbGRzW2ZpZWxkTmFtZV0gPz8gZmllbGROYW1lO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCBhbGwgZmllbGQga2V5cyB0aGF0IGV4aXN0IGluIHRoZSBzY2hlbWEgZXhpc3QgaW4gdGhlIGNvbGxlY3Rpb25cbiAqXG4gKiBJdCBjaGVja3MgYmFzZWQgb24gdGhlIGN1c3RvbS5iZXR0ZXJBdXRoRmllbGRLZXkgcHJvcGVydHkuXG4gKlxuICogQHBhcmFtIGNvbGxlY3Rpb24gLSBUaGUgY29sbGVjdGlvbiBvYmplY3RcbiAqIEBwYXJhbSBzY2hlbWEgLSBUaGUgc2NoZW1hIG9iamVjdCBjb250YWluaW5nIGZpZWxkIGRlZmluaXRpb25zXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYW55IHJlcXVpcmVkIGZpZWxkIGlzIG1pc3NpbmcgZnJvbSB0aGUgc2NoZW1hXG4gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGFzc2VydEFsbFNjaGVtYUZpZWxkcyhjb2xsZWN0aW9uOiBDb2xsZWN0aW9uQ29uZmlnLCBzY2hlbWE6IEJ1aWxkU2NoZW1hKSB7XG4gIGNvbnN0IG1pc3NpbmdGaWVsZHM6IHN0cmluZ1tdID0gW11cbiAgY29uc3Qgc2NoZW1hRmllbGRLZXlzID0gT2JqZWN0LmtleXMoc2NoZW1hLmZpZWxkcylcbiAgY29uc3QgZmxhdHRlbmVkQ29sbGVjdGlvbkZpZWxkcyA9IGZsYXR0ZW5BbGxGaWVsZHMoY29sbGVjdGlvbilcblxuICAvLyBDaGVjayB0aGF0IGVhY2ggc2NoZW1hIGZpZWxkIGtleSBoYXMgYSBjb3JyZXNwb25kaW5nIGZpZWxkIGluIHRoZSBjb2xsZWN0aW9uXG4gIHNjaGVtYUZpZWxkS2V5cy5mb3JFYWNoKChzY2hlbWFLZXkpID0+IHtcbiAgICBjb25zdCBmaWVsZEV4aXN0cyA9IGZsYXR0ZW5lZENvbGxlY3Rpb25GaWVsZHMuc29tZSgoZmllbGQpID0+IGZpZWxkLmN1c3RvbT8uYmV0dGVyQXV0aEZpZWxkS2V5ID09PSBzY2hlbWFLZXkpXG5cbiAgICBpZiAoIWZpZWxkRXhpc3RzKSB7XG4gICAgICBtaXNzaW5nRmllbGRzLnB1c2goc2NoZW1hS2V5KVxuICAgIH1cbiAgfSlcblxuICBpZiAobWlzc2luZ0ZpZWxkcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nIHJlcXVpcmVkIGN1c3RvbS5iZXR0ZXJBdXRoRmllbGRLZXlzIGluIGNvbGxlY3Rpb246ICR7Y29sbGVjdGlvbi5zbHVnfSBbJHttaXNzaW5nRmllbGRzLmpvaW4oJywgJyl9XWApXG4gIH1cbn1cblxuIl0sIm5hbWVzIjpbImZsYXR0ZW5BbGxGaWVsZHMiLCJnZXRTY2hlbWFDb2xsZWN0aW9uU2x1ZyIsImNvbGxlY3Rpb25TY2hlbWFNYXAiLCJtb2RlbCIsImNvbGxlY3Rpb25TbHVnIiwiZ2V0U2NoZW1hRmllbGROYW1lIiwiZmllbGROYW1lIiwiZmllbGRzIiwiYXNzZXJ0QWxsU2NoZW1hRmllbGRzIiwiY29sbGVjdGlvbiIsInNjaGVtYSIsIm1pc3NpbmdGaWVsZHMiLCJzY2hlbWFGaWVsZEtleXMiLCJPYmplY3QiLCJrZXlzIiwiZmxhdHRlbmVkQ29sbGVjdGlvbkZpZWxkcyIsImZvckVhY2giLCJzY2hlbWFLZXkiLCJmaWVsZEV4aXN0cyIsInNvbWUiLCJmaWVsZCIsImN1c3RvbSIsImJldHRlckF1dGhGaWVsZEtleSIsInB1c2giLCJsZW5ndGgiLCJFcnJvciIsInNsdWciLCJqb2luIl0sIm1hcHBpbmdzIjoiQUFFQSxTQUEyQkEsZ0JBQWdCLFFBQVEsVUFBVTtBQUU3RCxPQUFPLFNBQVNDLHdCQUF3QkMsbUJBQXdDLEVBQUVDLEtBQWE7SUFDN0YsT0FBT0QscUJBQXFCLENBQUNDLE1BQW1DLEVBQUVDLGtCQUFrQkQ7QUFDdEY7QUFFQSxPQUFPLFNBQVNFLG1CQUFtQkgsbUJBQXdDLEVBQUVDLEtBQWEsRUFBRUcsU0FBaUI7SUFDM0csT0FBT0oscUJBQXFCLENBQUNDLE1BQW1DLEVBQUVJLE1BQU0sQ0FBQ0QsVUFBVSxJQUFJQTtBQUN6RjtBQUVBOzs7Ozs7OztDQVFDLEdBRUQsT0FBTyxTQUFTRSxzQkFBc0JDLFVBQTRCLEVBQUVDLE1BQW1CO0lBQ3JGLE1BQU1DLGdCQUEwQixFQUFFO0lBQ2xDLE1BQU1DLGtCQUFrQkMsT0FBT0MsSUFBSSxDQUFDSixPQUFPSCxNQUFNO0lBQ2pELE1BQU1RLDRCQUE0QmYsaUJBQWlCUztJQUVuRCwrRUFBK0U7SUFDL0VHLGdCQUFnQkksT0FBTyxDQUFDLENBQUNDO1FBQ3ZCLE1BQU1DLGNBQWNILDBCQUEwQkksSUFBSSxDQUFDLENBQUNDLFFBQVVBLE1BQU1DLE1BQU0sRUFBRUMsdUJBQXVCTDtRQUVuRyxJQUFJLENBQUNDLGFBQWE7WUFDaEJQLGNBQWNZLElBQUksQ0FBQ047UUFDckI7SUFDRjtJQUVBLElBQUlOLGNBQWNhLE1BQU0sR0FBRyxHQUFHO1FBQzVCLE1BQU0sSUFBSUMsTUFBTSxDQUFDLDJEQUEyRCxFQUFFaEIsV0FBV2lCLElBQUksQ0FBQyxFQUFFLEVBQUVmLGNBQWNnQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDL0g7QUFDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-timestamp-fields.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"get-timestamp-fields.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/utils/get-timestamp-fields.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,UAAU,yBAAyB;IACjC,kBAAkB,CAAC,EAAE,OAAO,CAAA;IAC5B,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B;AAED,wBAAgB,kBAAkB,CAChC,OAAO,GAAE,yBAGR,GACA,KAAK,EAAE,CAyBT"}
|
|
@@ -28,4 +28,4 @@ export function getTimestampFields(options = {
|
|
|
28
28
|
];
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vbGliL2J1aWxkLWNvbGxlY3Rpb25zL3V0aWxzL2dldC10aW1lc3RhbXAtZmllbGRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgRmllbGQgfSBmcm9tICdwYXlsb2FkJ1xuXG5pbnRlcmZhY2UgR2V0VGltZXN0YW1wRmllbGRzT3B0aW9ucyB7XG4gIHNhdmVVcGRhdGVkQXRUb0pXVD86IGJvb2xlYW5cbiAgc2F2ZUNyZWF0ZWRBdFRvSldUPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGltZXN0YW1wRmllbGRzKFxuICBvcHRpb25zOiBHZXRUaW1lc3RhbXBGaWVsZHNPcHRpb25zID0ge1xuICAgIHNhdmVVcGRhdGVkQXRUb0pXVDogdHJ1ZSxcbiAgICBzYXZlQ3JlYXRlZEF0VG9KV1Q6IHRydWVcbiAgfVxuKTogRmllbGRbXSB7XG4gIHJldHVybiBbXG4gICAge1xuICAgICAgbmFtZTogJ3VwZGF0ZWRBdCcsXG4gICAgICB0eXBlOiAnZGF0ZScsXG4gICAgICBzYXZlVG9KV1Q6IG9wdGlvbnMuc2F2ZVVwZGF0ZWRBdFRvSldULFxuICAgICAgYWRtaW46IHtcbiAgICAgICAgZGlzYWJsZUJ1bGtFZGl0OiB0cnVlLFxuICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgIH0sXG4gICAgICBpbmRleDogdHJ1ZSxcbiAgICAgIGxhYmVsOiAoeyB0IH0pID0+IHQoJ2dlbmVyYWw6dXBkYXRlZEF0JylcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdjcmVhdGVkQXQnLFxuICAgICAgc2F2ZVRvSldUOiBvcHRpb25zLnNhdmVDcmVhdGVkQXRUb0pXVCxcbiAgICAgIGFkbWluOiB7XG4gICAgICAgIGRpc2FibGVCdWxrRWRpdDogdHJ1ZSxcbiAgICAgICAgaGlkZGVuOiB0cnVlXG4gICAgICB9LFxuICAgICAgdHlwZTogJ2RhdGUnLFxuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICBsYWJlbDogKHsgdCB9KSA9PiB0KCdnZW5lcmFsOmNyZWF0ZWRBdCcpXG4gICAgfVxuICBdXG59XG4iXSwibmFtZXMiOlsiZ2V0VGltZXN0YW1wRmllbGRzIiwib3B0aW9ucyIsInNhdmVVcGRhdGVkQXRUb0pXVCIsInNhdmVDcmVhdGVkQXRUb0pXVCIsIm5hbWUiLCJ0eXBlIiwic2F2ZVRvSldUIiwiYWRtaW4iLCJkaXNhYmxlQnVsa0VkaXQiLCJoaWRkZW4iLCJpbmRleCIsImxhYmVsIiwidCJdLCJtYXBwaW5ncyI6IkFBT0EsT0FBTyxTQUFTQSxtQkFDZEMsVUFBcUM7SUFDbkNDLG9CQUFvQjtJQUNwQkMsb0JBQW9CO0FBQ3RCLENBQUM7SUFFRCxPQUFPO1FBQ0w7WUFDRUMsTUFBTTtZQUNOQyxNQUFNO1lBQ05DLFdBQVdMLFFBQVFDLGtCQUFrQjtZQUNyQ0ssT0FBTztnQkFDTEMsaUJBQWlCO2dCQUNqQkMsUUFBUTtZQUNWO1lBQ0FDLE9BQU87WUFDUEMsT0FBTyxDQUFDLEVBQUVDLENBQUMsRUFBRSxHQUFLQSxFQUFFO1FBQ3RCO1FBQ0E7WUFDRVIsTUFBTTtZQUNORSxXQUFXTCxRQUFRRSxrQkFBa0I7WUFDckNJLE9BQU87Z0JBQ0xDLGlCQUFpQjtnQkFDakJDLFFBQVE7WUFDVjtZQUNBSixNQUFNO1lBQ05LLE9BQU87WUFDUEMsT0FBTyxDQUFDLEVBQUVDLENBQUMsRUFBRSxHQUFLQSxFQUFFO1FBQ3RCO0tBQ0Q7QUFDSCJ9
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { FieldAttribute } from 'better-auth/db';
|
|
2
|
+
import type { Field } from 'payload';
|
|
3
|
+
export type FieldRule = {
|
|
4
|
+
condition?: (field: FieldAttribute) => boolean;
|
|
5
|
+
transform: (field: FieldAttribute) => Record<string, unknown>;
|
|
6
|
+
};
|
|
7
|
+
type AdditionalFieldProperties = {
|
|
8
|
+
[key: string]: (field: FieldAttribute) => Partial<Field>;
|
|
9
|
+
};
|
|
10
|
+
export declare const getAdditionalFieldProperties: ({ field, fieldKey, fieldRules, additionalProperties }: {
|
|
11
|
+
field: FieldAttribute;
|
|
12
|
+
fieldKey: string;
|
|
13
|
+
fieldRules?: FieldRule[];
|
|
14
|
+
additionalProperties?: AdditionalFieldProperties;
|
|
15
|
+
}) => Partial<Field>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=model-field-transformations.d.ts.map
|
package/dist/better-auth/plugin/lib/build-collections/utils/model-field-transformations.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-field-transformations.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/lib/build-collections/utils/model-field-transformations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAA;IAC9C,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9D,CAAA;AAED,KAAK,yBAAyB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,KAAK,EAAE,cAAc,KAAK,OAAO,CAAC,KAAK,CAAC,CAAA;CACzD,CAAA;AAcD,eAAO,MAAM,4BAA4B,GAAI,uDAK1C;IACD,KAAK,EAAE,cAAc,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,oBAAoB,CAAC,EAAE,yBAAyB,CAAA;CACjD,KAAG,OAAO,CAAC,KAAK,CAKhB,CAAA"}
|