payload-auth 1.2.0 → 1.3.1
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/plugin/constants.d.ts +2 -0
- package/dist/better-auth/plugin/constants.d.ts.map +1 -1
- package/dist/better-auth/plugin/constants.js +30 -1
- package/dist/better-auth/plugin/index.d.ts +5 -5
- package/dist/better-auth/plugin/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/index.js +14 -10
- 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 +17 -1
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts +10 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/sanitize-better-auth-options/utils/require-admin-invite-for-sign-up-middleware.js +43 -0
- 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 +6 -1
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts +5 -0
- package/dist/better-auth/plugin/lib/set-login-methods.d.ts.map +1 -0
- package/dist/better-auth/plugin/lib/set-login-methods.js +16 -0
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts +2 -2
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/components/admin-buttons/index.js +2 -3
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts +2 -2
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.js +2 -3
- package/dist/better-auth/plugin/payload/components/admin-invite-button/index.scss +5 -3
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts +1 -2
- package/dist/better-auth/plugin/payload/components/logout-button.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/components/logout-button.js +2 -3
- package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.d.ts +14 -0
- package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.d.ts.map +1 -0
- package/dist/better-auth/plugin/payload/components/social-provider-buttons/index.js +142 -0
- package/dist/better-auth/plugin/payload/components/{admin-social-provider-buttons → social-provider-buttons}/index.scss +1 -1
- package/dist/better-auth/plugin/payload/exports/client.d.ts +4 -4
- package/dist/better-auth/plugin/payload/exports/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/exports/client.js +5 -5
- package/dist/better-auth/plugin/payload/views/admin-login/client.d.ts +2 -3
- 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 +37 -54
- 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 +3 -4
- package/dist/better-auth/plugin/payload/views/admin-signup/client.d.ts +3 -4
- 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 +51 -85
- package/dist/better-auth/plugin/payload/views/admin-signup/index.d.ts +0 -1
- 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 +44 -87
- package/dist/better-auth/plugin/payload/views/forgot-password/client.d.ts.map +1 -1
- package/dist/better-auth/plugin/payload/views/forgot-password/client.js +5 -7
- package/dist/better-auth/plugin/types.d.ts +23 -14
- package/dist/better-auth/plugin/types.d.ts.map +1 -1
- package/dist/better-auth/plugin/types.js +1 -1
- package/dist/shared/form/ui/index.d.ts +2 -2
- package/dist/shared/form/ui/index.d.ts.map +1 -1
- package/dist/shared/form/ui/index.js +4 -7
- package/dist/shared/form/ui/index.scss +15 -0
- package/dist/shared/form/validation.d.ts +103 -0
- package/dist/shared/form/validation.d.ts.map +1 -0
- package/dist/shared/form/validation.js +108 -0
- package/package.json +1 -1
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts +0 -14
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.d.ts.map +0 -1
- package/dist/better-auth/plugin/payload/components/admin-social-provider-buttons/index.js +0 -109
- package/dist/better-auth/plugin/payload/views/admin-signup/index.scss +0 -29
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
2
|
+
import type { LoginMethod } from '../../../types';
|
|
3
3
|
import type { LoginWithUsernameOptions } from 'payload';
|
|
4
4
|
type AdminSignupClientProps = {
|
|
5
|
-
|
|
6
|
-
role: string;
|
|
5
|
+
adminInviteToken: string;
|
|
7
6
|
userSlug: string;
|
|
8
|
-
|
|
7
|
+
loginMethods: LoginMethod[];
|
|
9
8
|
searchParams: {
|
|
10
9
|
[key: string]: string | string[] | undefined;
|
|
11
10
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/admin-signup/client.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/admin-signup/client.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAmB,MAAM,OAAO,CAAA;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAIjD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA;AASvD,KAAK,sBAAsB,GAAG;IAC5B,gBAAgB,EAAE,MAAM,CAAA;IACxB,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,WAAW,EAAE,CAAA;IAC3B,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAA;KAAE,CAAA;IAC9D,iBAAiB,EAAE,KAAK,GAAG,wBAAwB,CAAA;CACpD,CAAA;AAwHD,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,EAAE,CAAC,sBAAsB,CAwC9D,CAAA"}
|
|
@@ -1,68 +1,37 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useConfig, toast, useTranslation } from "@payloadcms/ui";
|
|
3
4
|
import React, { useState } from "react";
|
|
4
|
-
import {
|
|
5
|
-
import { useConfig, useTranslation } from "@payloadcms/ui";
|
|
6
|
-
import AdminSocialProviderButtons from "../../components/admin-social-provider-buttons";
|
|
5
|
+
import { AdminSocialProviderButtons } from "../../components/social-provider-buttons";
|
|
7
6
|
import { getSafeRedirect } from "../../utils/get-safe-redirect";
|
|
8
|
-
import { toast } from "@payloadcms/ui";
|
|
9
7
|
import { adminEndpoints } from "../../../constants";
|
|
10
8
|
import { useAppForm } from "../../../../../shared/form";
|
|
11
|
-
import { emailRegex, usernameRegex } from "../../../../../shared/utils/regex";
|
|
12
|
-
import { FormHeader } from "../../../../../shared/form/ui/header";
|
|
13
9
|
import { Form, FormInputWrap } from "../../../../../shared/form/ui";
|
|
10
|
+
import { FormHeader } from "../../../../../shared/form/ui/header";
|
|
11
|
+
import { createSignupSchema } from "../../../../../shared/form/validation";
|
|
14
12
|
import { tryCatch } from "../../../../../shared/utils/try-catch";
|
|
15
13
|
const baseClass = 'admin-signup';
|
|
16
|
-
|
|
17
|
-
const { config: { routes: { admin: adminRoute, api: apiRoute }, serverURL } } = useConfig();
|
|
14
|
+
const SignupForm = ({ searchParams, loginWithUsername, requireEmailVerification, setRequireEmailVerification, adminInviteToken })=>{
|
|
15
|
+
const { config: { admin: { user: userSlug }, routes: { admin: adminRoute, api: apiRoute }, serverURL } } = useConfig();
|
|
18
16
|
const { t } = useTranslation();
|
|
19
17
|
const redirectUrl = getSafeRedirect(searchParams?.redirect, adminRoute);
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
isValid: (val)=>emailRegex.test(val),
|
|
25
|
-
errorMessage: t('authentication:emailNotValid') || 'Invalid email'
|
|
26
|
-
},
|
|
27
|
-
username: {
|
|
28
|
-
isValid: (val)=>usernameRegex.test(val),
|
|
29
|
-
errorMessage: t('authentication:usernameNotValid') || 'Username invalid'
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
const signupSchema = z.object({
|
|
33
|
-
email: z.string().refine((val)=>validationMap.email.isValid(val), (val)=>({
|
|
34
|
-
message: val ? validationMap.email.errorMessage : t('validation:required')
|
|
35
|
-
})),
|
|
36
|
-
username: loginWithUsername ? z.string().refine((val)=>!val || validationMap.username.isValid(val), (val)=>({
|
|
37
|
-
message: val ? validationMap.username.errorMessage : t('validation:required')
|
|
38
|
-
})) : z.string().optional(),
|
|
39
|
-
password: z.string().min(1, t('validation:required') || 'Password is required'),
|
|
40
|
-
confirmPassword: z.string().min(1, t('validation:required') || 'Confirm password is required')
|
|
41
|
-
}).refine((data)=>{
|
|
42
|
-
// Only validate matching passwords if both fields have values
|
|
43
|
-
if (data.password && data.confirmPassword) {
|
|
44
|
-
return data.password === data.confirmPassword;
|
|
45
|
-
}
|
|
46
|
-
// If one or both fields are empty, validation will be handled by the min(1) validators
|
|
47
|
-
return true;
|
|
48
|
-
}, {
|
|
49
|
-
message: t('fields:passwordsDoNotMatch') || 'Passwords do not match',
|
|
50
|
-
path: [
|
|
51
|
-
'confirmPassword'
|
|
52
|
-
]
|
|
18
|
+
const requireUsername = Boolean(loginWithUsername && typeof loginWithUsername === 'object' && loginWithUsername.requireUsername);
|
|
19
|
+
const signupSchema = createSignupSchema({
|
|
20
|
+
t,
|
|
21
|
+
requireUsername
|
|
53
22
|
});
|
|
54
23
|
const form = useAppForm({
|
|
55
24
|
defaultValues: {
|
|
56
25
|
email: '',
|
|
26
|
+
password: '',
|
|
27
|
+
confirmPassword: '',
|
|
57
28
|
...loginWithUsername ? {
|
|
58
29
|
username: ''
|
|
59
|
-
} : {}
|
|
60
|
-
password: '',
|
|
61
|
-
confirmPassword: ''
|
|
30
|
+
} : {}
|
|
62
31
|
},
|
|
63
32
|
onSubmit: async ({ value })=>{
|
|
64
33
|
const { email, username, password } = value;
|
|
65
|
-
const { data, error } = await tryCatch(fetch(`${serverURL}${apiRoute}/${userSlug}${adminEndpoints.signup}?token=${
|
|
34
|
+
const { data, error } = await tryCatch(fetch(`${serverURL}${apiRoute}/${userSlug}${adminEndpoints.signup}?token=${adminInviteToken}&redirect=${redirectUrl}`, {
|
|
66
35
|
method: 'POST',
|
|
67
36
|
headers: {
|
|
68
37
|
'Content-Type': 'application/json'
|
|
@@ -70,23 +39,21 @@ export const AdminSignupClient = ({ token, userSlug, role, searchParams, socialP
|
|
|
70
39
|
body: JSON.stringify({
|
|
71
40
|
email,
|
|
72
41
|
username,
|
|
73
|
-
password
|
|
42
|
+
password,
|
|
43
|
+
adminInviteToken
|
|
74
44
|
})
|
|
75
|
-
}));
|
|
45
|
+
}).then((res)=>res.json()));
|
|
76
46
|
if (error) {
|
|
77
47
|
toast.error(error.message);
|
|
48
|
+
return;
|
|
78
49
|
}
|
|
79
|
-
if (data) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
toast.message(json.message);
|
|
84
|
-
} else {
|
|
85
|
-
toast.success(json.message);
|
|
86
|
-
window.location.href = redirectUrl;
|
|
87
|
-
}
|
|
88
|
-
});
|
|
50
|
+
if (data.requireEmailVerification) {
|
|
51
|
+
setRequireEmailVerification(true);
|
|
52
|
+
toast.success(data.message);
|
|
53
|
+
return;
|
|
89
54
|
}
|
|
55
|
+
toast.success(data.message);
|
|
56
|
+
window.location.href = redirectUrl;
|
|
90
57
|
},
|
|
91
58
|
validators: {
|
|
92
59
|
onSubmit: signupSchema
|
|
@@ -95,7 +62,7 @@ export const AdminSignupClient = ({ token, userSlug, role, searchParams, socialP
|
|
|
95
62
|
if (requireEmailVerification) {
|
|
96
63
|
return /*#__PURE__*/ _jsx(FormHeader, {
|
|
97
64
|
heading: "Please verify your email",
|
|
98
|
-
description:
|
|
65
|
+
description: 'Check your email for a verification link.',
|
|
99
66
|
style: {
|
|
100
67
|
textAlign: 'center'
|
|
101
68
|
}
|
|
@@ -108,14 +75,8 @@ export const AdminSignupClient = ({ token, userSlug, role, searchParams, socialP
|
|
|
108
75
|
void form.handleSubmit();
|
|
109
76
|
},
|
|
110
77
|
children: [
|
|
111
|
-
/*#__PURE__*/ _jsx(FormHeader, {
|
|
112
|
-
heading: t('general:welcome'),
|
|
113
|
-
style: {
|
|
114
|
-
textAlign: 'center'
|
|
115
|
-
}
|
|
116
|
-
}),
|
|
117
78
|
/*#__PURE__*/ _jsxs(FormInputWrap, {
|
|
118
|
-
className:
|
|
79
|
+
className: "login__form",
|
|
119
80
|
children: [
|
|
120
81
|
/*#__PURE__*/ _jsx(form.AppField, {
|
|
121
82
|
name: "email",
|
|
@@ -134,7 +95,7 @@ export const AdminSignupClient = ({ token, userSlug, role, searchParams, socialP
|
|
|
134
95
|
className: "text",
|
|
135
96
|
autoComplete: "username",
|
|
136
97
|
label: t('authentication:username'),
|
|
137
|
-
required:
|
|
98
|
+
required: requireUsername
|
|
138
99
|
})
|
|
139
100
|
}),
|
|
140
101
|
/*#__PURE__*/ _jsx(form.AppField, {
|
|
@@ -162,29 +123,34 @@ export const AdminSignupClient = ({ token, userSlug, role, searchParams, socialP
|
|
|
162
123
|
label: t('general:create'),
|
|
163
124
|
loadingLabel: t('general:loading')
|
|
164
125
|
})
|
|
126
|
+
})
|
|
127
|
+
]
|
|
128
|
+
});
|
|
129
|
+
};
|
|
130
|
+
export const AdminSignupClient = ({ adminInviteToken, userSlug, searchParams, loginMethods, loginWithUsername })=>{
|
|
131
|
+
const { config: { routes: { admin: adminRoute, api: apiRoute }, serverURL } } = useConfig();
|
|
132
|
+
const [requireEmailVerification, setRequireEmailVerification] = useState(false);
|
|
133
|
+
const redirectUrl = getSafeRedirect(searchParams?.redirect, adminRoute);
|
|
134
|
+
const setAdminRoleCallbackURL = `${serverURL}${apiRoute}/${userSlug}${adminEndpoints.setAdminRole}?token=${adminInviteToken}&redirect=${redirectUrl}`;
|
|
135
|
+
return /*#__PURE__*/ _jsxs(_Fragment, {
|
|
136
|
+
children: [
|
|
137
|
+
loginMethods.includes('emailPassword') && /*#__PURE__*/ _jsx(SignupForm, {
|
|
138
|
+
adminInviteToken: adminInviteToken,
|
|
139
|
+
searchParams: searchParams,
|
|
140
|
+
loginWithUsername: loginWithUsername,
|
|
141
|
+
requireEmailVerification: requireEmailVerification,
|
|
142
|
+
setRequireEmailVerification: setRequireEmailVerification
|
|
165
143
|
}),
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
textTransform: 'uppercase',
|
|
171
|
-
marginTop: '-.5rem',
|
|
172
|
-
color: 'var(--theme-elevation-450)',
|
|
173
|
-
marginBottom: '1.5rem'
|
|
174
|
-
},
|
|
175
|
-
children: /*#__PURE__*/ _jsx("span", {
|
|
176
|
-
children: "Or sign up with"
|
|
177
|
-
})
|
|
178
|
-
}),
|
|
179
|
-
/*#__PURE__*/ _jsx(AdminSocialProviderButtons, {
|
|
180
|
-
allowSignup: true,
|
|
181
|
-
socialProviders: socialProviders,
|
|
144
|
+
!requireEmailVerification && /*#__PURE__*/ _jsx(AdminSocialProviderButtons, {
|
|
145
|
+
isSignup: true,
|
|
146
|
+
loginMethods: loginMethods,
|
|
147
|
+
adminInviteToken: adminInviteToken,
|
|
182
148
|
setLoading: ()=>{},
|
|
183
149
|
redirectUrl: redirectUrl,
|
|
184
|
-
newUserCallbackURL:
|
|
150
|
+
newUserCallbackURL: setAdminRoleCallbackURL
|
|
185
151
|
})
|
|
186
152
|
]
|
|
187
153
|
});
|
|
188
154
|
};
|
|
189
155
|
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC92aWV3cy9hZG1pbi1zaWdudXAvY2xpZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJ1xuaW1wb3J0IHsgdXNlQ29uZmlnLCB1c2VUcmFuc2xhdGlvbiB9IGZyb20gJ0BwYXlsb2FkY21zL3VpJ1xuaW1wb3J0IEFkbWluU29jaWFsUHJvdmlkZXJCdXR0b25zIGZyb20gJy4uLy4uL2NvbXBvbmVudHMvYWRtaW4tc29jaWFsLXByb3ZpZGVyLWJ1dHRvbnMnXG5pbXBvcnQgeyBTb2NpYWxQcm92aWRlcnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcbmltcG9ydCB7IGdldFNhZmVSZWRpcmVjdCB9IGZyb20gJy4uLy4uL3V0aWxzL2dldC1zYWZlLXJlZGlyZWN0J1xuaW1wb3J0IHsgdG9hc3QgfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCB7IGFkbWluRW5kcG9pbnRzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgdXNlQXBwRm9ybSB9IGZyb20gJ0Avc2hhcmVkL2Zvcm0nXG5pbXBvcnQgeyBlbWFpbFJlZ2V4LCB1c2VybmFtZVJlZ2V4IH0gZnJvbSAnQC9zaGFyZWQvdXRpbHMvcmVnZXgnXG5pbXBvcnQgeyBGb3JtSGVhZGVyIH0gZnJvbSAnQC9zaGFyZWQvZm9ybS91aS9oZWFkZXInXG5pbXBvcnQgeyBGb3JtLCBGb3JtSW5wdXRXcmFwIH0gZnJvbSAnQC9zaGFyZWQvZm9ybS91aSdcblxuaW1wb3J0IHR5cGUgeyBMb2dpbldpdGhVc2VybmFtZU9wdGlvbnMgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHsgdHJ5Q2F0Y2ggfSBmcm9tICdAL3NoYXJlZC91dGlscy90cnktY2F0Y2gnXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdhZG1pbi1zaWdudXAnXG5cbnR5cGUgQWRtaW5TaWdudXBDbGllbnRQcm9wcyA9IHtcbiAgdG9rZW46IHN0cmluZ1xuICByb2xlOiBzdHJpbmdcbiAgdXNlclNsdWc6IHN0cmluZ1xuICBzb2NpYWxQcm92aWRlcnM6IFNvY2lhbFByb3ZpZGVyc1xuICBzZWFyY2hQYXJhbXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW10gfCB1bmRlZmluZWQgfVxuICBsb2dpbldpdGhVc2VybmFtZTogZmFsc2UgfCBMb2dpbldpdGhVc2VybmFtZU9wdGlvbnNcbn1cblxuZXhwb3J0IGNvbnN0IEFkbWluU2lnbnVwQ2xpZW50OiBSZWFjdC5GQzxBZG1pblNpZ251cENsaWVudFByb3BzPiA9ICh7XG4gIHRva2VuLFxuICB1c2VyU2x1ZyxcbiAgcm9sZSxcbiAgc2VhcmNoUGFyYW1zLFxuICBzb2NpYWxQcm92aWRlcnMsXG4gIGxvZ2luV2l0aFVzZXJuYW1lXG59KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb25maWc6IHtcbiAgICAgIHJvdXRlczogeyBhZG1pbjogYWRtaW5Sb3V0ZSwgYXBpOiBhcGlSb3V0ZSB9LFxuICAgICAgc2VydmVyVVJMXG4gICAgfVxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgeyB0IH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IHJlZGlyZWN0VXJsID0gZ2V0U2FmZVJlZGlyZWN0KHNlYXJjaFBhcmFtcz8ucmVkaXJlY3QgYXMgc3RyaW5nLCBhZG1pblJvdXRlKVxuICBjb25zdCBuZXdVc2VyQ2FsbGJhY2tVUkwgPSBgJHtzZXJ2ZXJVUkx9JHthcGlSb3V0ZX0vJHt1c2VyU2x1Z30ke2FkbWluRW5kcG9pbnRzLnNldEFkbWluUm9sZX0/cm9sZT0ke3JvbGV9JnRva2VuPSR7dG9rZW59JnJlZGlyZWN0PSR7cmVkaXJlY3RVcmx9YFxuICBjb25zdCBbcmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uLCBzZXRSZXF1aXJlRW1haWxWZXJpZmljYXRpb25dID0gdXNlU3RhdGU8Ym9vbGVhbj4oZmFsc2UpXG5cbiAgY29uc3QgdmFsaWRhdGlvbk1hcCA9IHtcbiAgICBlbWFpbDoge1xuICAgICAgaXNWYWxpZDogKHZhbDogc3RyaW5nKSA9PiBlbWFpbFJlZ2V4LnRlc3QodmFsKSxcbiAgICAgIGVycm9yTWVzc2FnZTogdCgnYXV0aGVudGljYXRpb246ZW1haWxOb3RWYWxpZCcpIHx8ICdJbnZhbGlkIGVtYWlsJ1xuICAgIH0sXG4gICAgdXNlcm5hbWU6IHtcbiAgICAgIGlzVmFsaWQ6ICh2YWw6IHN0cmluZykgPT4gdXNlcm5hbWVSZWdleC50ZXN0KHZhbCksXG4gICAgICBlcnJvck1lc3NhZ2U6IHQoJ2F1dGhlbnRpY2F0aW9uOnVzZXJuYW1lTm90VmFsaWQnKSB8fCAnVXNlcm5hbWUgaW52YWxpZCdcbiAgICB9XG4gIH1cblxuICBjb25zdCBzaWdudXBTY2hlbWEgPSB6XG4gICAgLm9iamVjdCh7XG4gICAgICBlbWFpbDogei5zdHJpbmcoKS5yZWZpbmUoXG4gICAgICAgICh2YWwpID0+IHZhbGlkYXRpb25NYXAuZW1haWwuaXNWYWxpZCh2YWwpLFxuICAgICAgICAodmFsKSA9PiAoeyBtZXNzYWdlOiB2YWwgPyB2YWxpZGF0aW9uTWFwLmVtYWlsLmVycm9yTWVzc2FnZSA6IHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSB9KVxuICAgICAgKSxcbiAgICAgIHVzZXJuYW1lOiBsb2dpbldpdGhVc2VybmFtZVxuICAgICAgICA/IHouc3RyaW5nKCkucmVmaW5lKFxuICAgICAgICAgICAgKHZhbCkgPT4gIXZhbCB8fCB2YWxpZGF0aW9uTWFwLnVzZXJuYW1lLmlzVmFsaWQodmFsKSxcbiAgICAgICAgICAgICh2YWwpID0+ICh7IG1lc3NhZ2U6IHZhbCA/IHZhbGlkYXRpb25NYXAudXNlcm5hbWUuZXJyb3JNZXNzYWdlIDogdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpIH0pXG4gICAgICAgICAgKVxuICAgICAgICA6IHouc3RyaW5nKCkub3B0aW9uYWwoKSxcbiAgICAgIHBhc3N3b3JkOiB6LnN0cmluZygpLm1pbigxLCB0KCd2YWxpZGF0aW9uOnJlcXVpcmVkJykgfHwgJ1Bhc3N3b3JkIGlzIHJlcXVpcmVkJyksXG4gICAgICBjb25maXJtUGFzc3dvcmQ6IHouc3RyaW5nKCkubWluKDEsIHQoJ3ZhbGlkYXRpb246cmVxdWlyZWQnKSB8fCAnQ29uZmlybSBwYXNzd29yZCBpcyByZXF1aXJlZCcpXG4gICAgfSlcbiAgICAucmVmaW5lKFxuICAgICAgKGRhdGEpID0+IHtcbiAgICAgICAgLy8gT25seSB2YWxpZGF0ZSBtYXRjaGluZyBwYXNzd29yZHMgaWYgYm90aCBmaWVsZHMgaGF2ZSB2YWx1ZXNcbiAgICAgICAgaWYgKGRhdGEucGFzc3dvcmQgJiYgZGF0YS5jb25maXJtUGFzc3dvcmQpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YS5wYXNzd29yZCA9PT0gZGF0YS5jb25maXJtUGFzc3dvcmRcbiAgICAgICAgfVxuICAgICAgICAvLyBJZiBvbmUgb3IgYm90aCBmaWVsZHMgYXJlIGVtcHR5LCB2YWxpZGF0aW9uIHdpbGwgYmUgaGFuZGxlZCBieSB0aGUgbWluKDEpIHZhbGlkYXRvcnNcbiAgICAgICAgcmV0dXJuIHRydWVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG1lc3NhZ2U6IHQoJ2ZpZWxkczpwYXNzd29yZHNEb05vdE1hdGNoJykgfHwgJ1Bhc3N3b3JkcyBkbyBub3QgbWF0Y2gnLFxuICAgICAgICBwYXRoOiBbJ2NvbmZpcm1QYXNzd29yZCddXG4gICAgICB9XG4gICAgKVxuXG4gIGNvbnN0IGZvcm0gPSB1c2VBcHBGb3JtKHtcbiAgICBkZWZhdWx0VmFsdWVzOiB7XG4gICAgICBlbWFpbDogJycsXG4gICAgICAuLi4obG9naW5XaXRoVXNlcm5hbWUgPyB7IHVzZXJuYW1lOiAnJyB9IDoge30pLFxuICAgICAgcGFzc3dvcmQ6ICcnLFxuICAgICAgY29uZmlybVBhc3N3b3JkOiAnJ1xuICAgIH0sXG4gICAgb25TdWJtaXQ6IGFzeW5jICh7IHZhbHVlIH0pID0+IHtcbiAgICAgIGNvbnN0IHsgZW1haWwsIHVzZXJuYW1lLCBwYXNzd29yZCB9ID0gdmFsdWVcbiAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRyeUNhdGNoKFxuICAgICAgICBmZXRjaChgJHtzZXJ2ZXJVUkx9JHthcGlSb3V0ZX0vJHt1c2VyU2x1Z30ke2FkbWluRW5kcG9pbnRzLnNpZ251cH0/dG9rZW49JHt0b2tlbn0mcmVkaXJlY3Q9JHtyZWRpcmVjdFVybH1gLCB7XG4gICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgICAgYm9keTogSlNPTi5zdHJpbmdpZnkoeyBlbWFpbCwgdXNlcm5hbWUsIHBhc3N3b3JkIH0pXG4gICAgICAgIH0pXG4gICAgICApXG5cbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICB0b2FzdC5lcnJvcihlcnJvci5tZXNzYWdlKVxuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YSkge1xuICAgICAgICBkYXRhLmpzb24oKS50aGVuKChqc29uOiBhbnkpID0+IHtcbiAgICAgICAgICBpZiAoanNvbi5yZXF1aXJlRW1haWxWZXJpZmljYXRpb24pIHtcbiAgICAgICAgICAgIHNldFJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbih0cnVlKVxuICAgICAgICAgICAgdG9hc3QubWVzc2FnZShqc29uLm1lc3NhZ2UpXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRvYXN0LnN1Y2Nlc3MoanNvbi5tZXNzYWdlKVxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSByZWRpcmVjdFVybFxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9LFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIG9uU3VibWl0OiBzaWdudXBTY2hlbWFcbiAgICB9XG4gIH0pXG5cbiAgaWYgKHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbikge1xuICAgIHJldHVybiA8Rm9ybUhlYWRlciBoZWFkaW5nPVwiUGxlYXNlIHZlcmlmeSB5b3VyIGVtYWlsXCIgZGVzY3JpcHRpb249e3QoJ2F1dGhlbnRpY2F0aW9uOmVtYWlsU2VudCcpfSBzdHlsZT17eyB0ZXh0QWxpZ246ICdjZW50ZXInIH19IC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxGb3JtXG4gICAgICBjbGFzc05hbWU9e2Jhc2VDbGFzc31cbiAgICAgIG9uU3VibWl0PXsoZSkgPT4ge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgdm9pZCBmb3JtLmhhbmRsZVN1Ym1pdCgpXG4gICAgICB9fT5cbiAgICAgIDxGb3JtSGVhZGVyIGhlYWRpbmc9e3QoJ2dlbmVyYWw6d2VsY29tZScpfSBzdHlsZT17eyB0ZXh0QWxpZ246ICdjZW50ZXInIH19IC8+XG4gICAgICA8Rm9ybUlucHV0V3JhcCBjbGFzc05hbWU9e2Jhc2VDbGFzc30+XG4gICAgICAgIDxmb3JtLkFwcEZpZWxkXG4gICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICBjaGlsZHJlbj17KGZpZWxkKSA9PiA8ZmllbGQuVGV4dEZpZWxkIHR5cGU9XCJlbWFpbFwiIGNsYXNzTmFtZT1cImVtYWlsXCIgYXV0b0NvbXBsZXRlPVwiZW1haWxcIiBsYWJlbD17dCgnZ2VuZXJhbDplbWFpbCcpfSByZXF1aXJlZCAvPn1cbiAgICAgICAgLz5cbiAgICAgICAge2xvZ2luV2l0aFVzZXJuYW1lICYmIChcbiAgICAgICAgICA8Zm9ybS5BcHBGaWVsZFxuICAgICAgICAgICAgbmFtZT1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgIGNoaWxkcmVuPXsoZmllbGQpID0+IChcbiAgICAgICAgICAgICAgPGZpZWxkLlRleHRGaWVsZFxuICAgICAgICAgICAgICAgIHR5cGU9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgbGFiZWw9e3QoJ2F1dGhlbnRpY2F0aW9uOnVzZXJuYW1lJyl9XG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2xvZ2luV2l0aFVzZXJuYW1lLnJlcXVpcmVVc2VybmFtZSA/PyBmYWxzZX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgPGZvcm0uQXBwRmllbGRcbiAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgIGNoaWxkcmVuPXsoZmllbGQpID0+IDxmaWVsZC5UZXh0RmllbGQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3NOYW1lPVwicGFzc3dvcmRcIiBsYWJlbD17dCgnYXV0aGVudGljYXRpb246bmV3UGFzc3dvcmQnKX0gcmVxdWlyZWQgLz59XG4gICAgICAgIC8+XG4gICAgICAgIDxmb3JtLkFwcEZpZWxkXG4gICAgICAgICAgbmFtZT1cImNvbmZpcm1QYXNzd29yZFwiXG4gICAgICAgICAgY2hpbGRyZW49eyhmaWVsZCkgPT4gKFxuICAgICAgICAgICAgPGZpZWxkLlRleHRGaWVsZCB0eXBlPVwicGFzc3dvcmRcIiBjbGFzc05hbWU9XCJwYXNzd29yZFwiIGxhYmVsPXt0KCdhdXRoZW50aWNhdGlvbjpjb25maXJtUGFzc3dvcmQnKX0gcmVxdWlyZWQgLz5cbiAgICAgICAgICApfVxuICAgICAgICAvPlxuICAgICAgPC9Gb3JtSW5wdXRXcmFwPlxuICAgICAgPGZvcm0uQXBwRm9ybSBjaGlsZHJlbj17PGZvcm0uU3VibWl0IGxhYmVsPXt0KCdnZW5lcmFsOmNyZWF0ZScpfSBsb2FkaW5nTGFiZWw9e3QoJ2dlbmVyYWw6bG9hZGluZycpfSAvPn0gLz5cbiAgICAgIHtPYmplY3Qua2V5cyhzb2NpYWxQcm92aWRlcnMgfHwge30pLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgIHRleHRBbGlnbjogJ2NlbnRlcicsXG4gICAgICAgICAgICBmb250U2l6ZTogJzAuODc1cmVtJyxcbiAgICAgICAgICAgIHRleHRUcmFuc2Zvcm06ICd1cHBlcmNhc2UnLFxuICAgICAgICAgICAgbWFyZ2luVG9wOiAnLS41cmVtJyxcbiAgICAgICAgICAgIGNvbG9yOiAndmFyKC0tdGhlbWUtZWxldmF0aW9uLTQ1MCknLFxuICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnMS41cmVtJ1xuICAgICAgICAgIH19PlxuICAgICAgICAgIDxzcGFuPk9yIHNpZ24gdXAgd2l0aDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICApfVxuICAgICAgPEFkbWluU29jaWFsUHJvdmlkZXJCdXR0b25zXG4gICAgICAgIGFsbG93U2lnbnVwPXt0cnVlfVxuICAgICAgICBzb2NpYWxQcm92aWRlcnM9e3NvY2lhbFByb3ZpZGVyc31cbiAgICAgICAgc2V0TG9hZGluZz17KCkgPT4ge319XG4gICAgICAgIHJlZGlyZWN0VXJsPXtyZWRpcmVjdFVybH1cbiAgICAgICAgbmV3VXNlckNhbGxiYWNrVVJMPXtuZXdVc2VyQ2FsbGJhY2tVUkx9XG4gICAgICAvPlxuICAgIDwvRm9ybT5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwidXNlU3RhdGUiLCJ6IiwidXNlQ29uZmlnIiwidXNlVHJhbnNsYXRpb24iLCJBZG1pblNvY2lhbFByb3ZpZGVyQnV0dG9ucyIsImdldFNhZmVSZWRpcmVjdCIsInRvYXN0IiwiYWRtaW5FbmRwb2ludHMiLCJ1c2VBcHBGb3JtIiwiZW1haWxSZWdleCIsInVzZXJuYW1lUmVnZXgiLCJGb3JtSGVhZGVyIiwiRm9ybSIsIkZvcm1JbnB1dFdyYXAiLCJ0cnlDYXRjaCIsImJhc2VDbGFzcyIsIkFkbWluU2lnbnVwQ2xpZW50IiwidG9rZW4iLCJ1c2VyU2x1ZyIsInJvbGUiLCJzZWFyY2hQYXJhbXMiLCJzb2NpYWxQcm92aWRlcnMiLCJsb2dpbldpdGhVc2VybmFtZSIsImNvbmZpZyIsInJvdXRlcyIsImFkbWluIiwiYWRtaW5Sb3V0ZSIsImFwaSIsImFwaVJvdXRlIiwic2VydmVyVVJMIiwidCIsInJlZGlyZWN0VXJsIiwicmVkaXJlY3QiLCJuZXdVc2VyQ2FsbGJhY2tVUkwiLCJzZXRBZG1pblJvbGUiLCJyZXF1aXJlRW1haWxWZXJpZmljYXRpb24iLCJzZXRSZXF1aXJlRW1haWxWZXJpZmljYXRpb24iLCJ2YWxpZGF0aW9uTWFwIiwiZW1haWwiLCJpc1ZhbGlkIiwidmFsIiwidGVzdCIsImVycm9yTWVzc2FnZSIsInVzZXJuYW1lIiwic2lnbnVwU2NoZW1hIiwib2JqZWN0Iiwic3RyaW5nIiwicmVmaW5lIiwibWVzc2FnZSIsIm9wdGlvbmFsIiwicGFzc3dvcmQiLCJtaW4iLCJjb25maXJtUGFzc3dvcmQiLCJkYXRhIiwicGF0aCIsImZvcm0iLCJkZWZhdWx0VmFsdWVzIiwib25TdWJtaXQiLCJ2YWx1ZSIsImVycm9yIiwiZmV0Y2giLCJzaWdudXAiLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJqc29uIiwidGhlbiIsInN1Y2Nlc3MiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJ2YWxpZGF0b3JzIiwiaGVhZGluZyIsImRlc2NyaXB0aW9uIiwic3R5bGUiLCJ0ZXh0QWxpZ24iLCJjbGFzc05hbWUiLCJlIiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVTdWJtaXQiLCJBcHBGaWVsZCIsIm5hbWUiLCJjaGlsZHJlbiIsImZpZWxkIiwiVGV4dEZpZWxkIiwidHlwZSIsImF1dG9Db21wbGV0ZSIsImxhYmVsIiwicmVxdWlyZWQiLCJyZXF1aXJlVXNlcm5hbWUiLCJBcHBGb3JtIiwiU3VibWl0IiwibG9hZGluZ0xhYmVsIiwiT2JqZWN0Iiwia2V5cyIsImxlbmd0aCIsImRpdiIsImZvbnRTaXplIiwidGV4dFRyYW5zZm9ybSIsIm1hcmdpblRvcCIsImNvbG9yIiwibWFyZ2luQm90dG9tIiwic3BhbiIsImFsbG93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
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC92aWV3cy9hZG1pbi1zaWdudXAvY2xpZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlQ29uZmlnLCB0b2FzdCwgdXNlVHJhbnNsYXRpb24gfSBmcm9tICdAcGF5bG9hZGNtcy91aSdcbmltcG9ydCBSZWFjdCwgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHR5cGUgeyBMb2dpbk1ldGhvZCB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJ1xuaW1wb3J0IHsgQWRtaW5Tb2NpYWxQcm92aWRlckJ1dHRvbnMgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL3NvY2lhbC1wcm92aWRlci1idXR0b25zJ1xuaW1wb3J0IHsgZ2V0U2FmZVJlZGlyZWN0IH0gZnJvbSAnLi4vLi4vdXRpbHMvZ2V0LXNhZmUtcmVkaXJlY3QnXG5pbXBvcnQgeyBhZG1pbkVuZHBvaW50cyB9IGZyb20gJ0AvYmV0dGVyLWF1dGgvcGx1Z2luL2NvbnN0YW50cydcbmltcG9ydCB0eXBlIHsgTG9naW5XaXRoVXNlcm5hbWVPcHRpb25zIH0gZnJvbSAncGF5bG9hZCdcbmltcG9ydCB7IHVzZUFwcEZvcm0gfSBmcm9tICdAL3NoYXJlZC9mb3JtJ1xuaW1wb3J0IHsgRm9ybSwgRm9ybUlucHV0V3JhcCB9IGZyb20gJ0Avc2hhcmVkL2Zvcm0vdWknXG5pbXBvcnQgeyBGb3JtSGVhZGVyIH0gZnJvbSAnQC9zaGFyZWQvZm9ybS91aS9oZWFkZXInXG5pbXBvcnQgeyBjcmVhdGVTaWdudXBTY2hlbWEgfSBmcm9tICdAL3NoYXJlZC9mb3JtL3ZhbGlkYXRpb24nXG5pbXBvcnQgeyB1c2VybmFtZUNsaWVudCB9IGZyb20gJ2JldHRlci1hdXRoL2NsaWVudC9wbHVnaW5zJ1xuaW1wb3J0IHsgY3JlYXRlQXV0aENsaWVudCB9IGZyb20gJ2JldHRlci1hdXRoL3JlYWN0J1xuaW1wb3J0IHsgdHJ5Q2F0Y2ggfSBmcm9tICdAL3NoYXJlZC91dGlscy90cnktY2F0Y2gnXG5cbnR5cGUgQWRtaW5TaWdudXBDbGllbnRQcm9wcyA9IHtcbiAgYWRtaW5JbnZpdGVUb2tlbjogc3RyaW5nXG4gIHVzZXJTbHVnOiBzdHJpbmdcbiAgbG9naW5NZXRob2RzOiBMb2dpbk1ldGhvZFtdXG4gIHNlYXJjaFBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB9XG4gIGxvZ2luV2l0aFVzZXJuYW1lOiBmYWxzZSB8IExvZ2luV2l0aFVzZXJuYW1lT3B0aW9uc1xufVxuXG5jb25zdCBiYXNlQ2xhc3MgPSAnYWRtaW4tc2lnbnVwJ1xuXG50eXBlIFNpZ251cEZvcm1Qcm9wcyA9IHtcbiAgYWRtaW5JbnZpdGVUb2tlbjogc3RyaW5nXG4gIHNlYXJjaFBhcmFtczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCB9XG4gIGxvZ2luV2l0aFVzZXJuYW1lOiBmYWxzZSB8IExvZ2luV2l0aFVzZXJuYW1lT3B0aW9uc1xuICByZXF1aXJlRW1haWxWZXJpZmljYXRpb246IGJvb2xlYW5cbiAgc2V0UmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uOiBSZWFjdC5EaXNwYXRjaDxSZWFjdC5TZXRTdGF0ZUFjdGlvbjxib29sZWFuPj5cbn1cblxuY29uc3QgU2lnbnVwRm9ybTogUmVhY3QuRkM8U2lnbnVwRm9ybVByb3BzPiA9ICh7XG4gIHNlYXJjaFBhcmFtcyxcbiAgbG9naW5XaXRoVXNlcm5hbWUsXG4gIHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbixcbiAgc2V0UmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uLFxuICBhZG1pbkludml0ZVRva2VuXG59KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb25maWc6IHtcbiAgICAgIGFkbWluOiB7IHVzZXI6IHVzZXJTbHVnIH0sXG4gICAgICByb3V0ZXM6IHsgYWRtaW46IGFkbWluUm91dGUsIGFwaTogYXBpUm91dGUgfSxcbiAgICAgIHNlcnZlclVSTFxuICAgIH1cbiAgfSA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IHsgdCB9ID0gdXNlVHJhbnNsYXRpb24oKVxuICBjb25zdCByZWRpcmVjdFVybCA9IGdldFNhZmVSZWRpcmVjdChzZWFyY2hQYXJhbXM/LnJlZGlyZWN0IGFzIHN0cmluZywgYWRtaW5Sb3V0ZSlcblxuICBjb25zdCByZXF1aXJlVXNlcm5hbWUgPSBCb29sZWFuKGxvZ2luV2l0aFVzZXJuYW1lICYmIHR5cGVvZiBsb2dpbldpdGhVc2VybmFtZSA9PT0gJ29iamVjdCcgJiYgbG9naW5XaXRoVXNlcm5hbWUucmVxdWlyZVVzZXJuYW1lKVxuXG4gIGNvbnN0IHNpZ251cFNjaGVtYSA9IGNyZWF0ZVNpZ251cFNjaGVtYSh7IHQsIHJlcXVpcmVVc2VybmFtZSB9KVxuXG4gIGNvbnN0IGZvcm0gPSB1c2VBcHBGb3JtKHtcbiAgICBkZWZhdWx0VmFsdWVzOiB7XG4gICAgICBlbWFpbDogJycsXG4gICAgICBwYXNzd29yZDogJycsXG4gICAgICBjb25maXJtUGFzc3dvcmQ6ICcnLFxuICAgICAgLi4uKGxvZ2luV2l0aFVzZXJuYW1lID8geyB1c2VybmFtZTogJycgfSA6IHt9KVxuICAgIH0sXG4gICAgb25TdWJtaXQ6IGFzeW5jICh7IHZhbHVlIH0pID0+IHtcbiAgICAgIGNvbnN0IHsgZW1haWwsIHVzZXJuYW1lLCBwYXNzd29yZCB9ID0gdmFsdWVcbiAgICAgIGNvbnN0IHsgZGF0YSwgZXJyb3IgfSA9IGF3YWl0IHRyeUNhdGNoKFxuICAgICAgICBmZXRjaChgJHtzZXJ2ZXJVUkx9JHthcGlSb3V0ZX0vJHt1c2VyU2x1Z30ke2FkbWluRW5kcG9pbnRzLnNpZ251cH0/dG9rZW49JHthZG1pbkludml0ZVRva2VufSZyZWRpcmVjdD0ke3JlZGlyZWN0VXJsfWAsIHtcbiAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicgfSxcbiAgICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeSh7IGVtYWlsLCB1c2VybmFtZSwgcGFzc3dvcmQsIGFkbWluSW52aXRlVG9rZW4gfSlcbiAgICAgICAgfSkudGhlbigocmVzKSA9PiByZXMuanNvbigpKVxuICAgICAgKVxuXG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgdG9hc3QuZXJyb3IoZXJyb3IubWVzc2FnZSlcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAoZGF0YS5yZXF1aXJlRW1haWxWZXJpZmljYXRpb24pIHtcbiAgICAgICAgc2V0UmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uKHRydWUpXG4gICAgICAgIHRvYXN0LnN1Y2Nlc3MoZGF0YS5tZXNzYWdlKVxuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0b2FzdC5zdWNjZXNzKGRhdGEubWVzc2FnZSlcbiAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gcmVkaXJlY3RVcmxcbiAgICB9LFxuICAgIHZhbGlkYXRvcnM6IHtcbiAgICAgIG9uU3VibWl0OiBzaWdudXBTY2hlbWFcbiAgICB9XG4gIH0pXG5cbiAgaWYgKHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICA8Rm9ybUhlYWRlclxuICAgICAgICBoZWFkaW5nPVwiUGxlYXNlIHZlcmlmeSB5b3VyIGVtYWlsXCJcbiAgICAgICAgZGVzY3JpcHRpb249eydDaGVjayB5b3VyIGVtYWlsIGZvciBhIHZlcmlmaWNhdGlvbiBsaW5rLid9XG4gICAgICAgIHN0eWxlPXt7IHRleHRBbGlnbjogJ2NlbnRlcicgfX1cbiAgICAgIC8+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Rm9ybVxuICAgICAgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9XG4gICAgICBvblN1Ym1pdD17KGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIHZvaWQgZm9ybS5oYW5kbGVTdWJtaXQoKVxuICAgICAgfX0+XG4gICAgICA8Rm9ybUlucHV0V3JhcCBjbGFzc05hbWU9XCJsb2dpbl9fZm9ybVwiPlxuICAgICAgICA8Zm9ybS5BcHBGaWVsZFxuICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgY2hpbGRyZW49eyhmaWVsZCkgPT4gPGZpZWxkLlRleHRGaWVsZCB0eXBlPVwiZW1haWxcIiBjbGFzc05hbWU9XCJlbWFpbFwiIGF1dG9Db21wbGV0ZT1cImVtYWlsXCIgbGFiZWw9e3QoJ2dlbmVyYWw6ZW1haWwnKX0gcmVxdWlyZWQgLz59XG4gICAgICAgIC8+XG4gICAgICAgIHtsb2dpbldpdGhVc2VybmFtZSAmJiAoXG4gICAgICAgICAgPGZvcm0uQXBwRmllbGRcbiAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICBjaGlsZHJlbj17KGZpZWxkKSA9PiAoXG4gICAgICAgICAgICAgIDxmaWVsZC5UZXh0RmllbGRcbiAgICAgICAgICAgICAgICB0eXBlPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgIGxhYmVsPXt0KCdhdXRoZW50aWNhdGlvbjp1c2VybmFtZScpfVxuICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtyZXF1aXJlVXNlcm5hbWV9XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICAgIDxmb3JtLkFwcEZpZWxkXG4gICAgICAgICAgbmFtZT1cInBhc3N3b3JkXCJcbiAgICAgICAgICBjaGlsZHJlbj17KGZpZWxkKSA9PiA8ZmllbGQuVGV4dEZpZWxkIHR5cGU9XCJwYXNzd29yZFwiIGNsYXNzTmFtZT1cInBhc3N3b3JkXCIgbGFiZWw9e3QoJ2F1dGhlbnRpY2F0aW9uOm5ld1Bhc3N3b3JkJyl9IHJlcXVpcmVkIC8+fVxuICAgICAgICAvPlxuICAgICAgICA8Zm9ybS5BcHBGaWVsZFxuICAgICAgICAgIG5hbWU9XCJjb25maXJtUGFzc3dvcmRcIlxuICAgICAgICAgIGNoaWxkcmVuPXsoZmllbGQpID0+IChcbiAgICAgICAgICAgIDxmaWVsZC5UZXh0RmllbGQgdHlwZT1cInBhc3N3b3JkXCIgY2xhc3NOYW1lPVwicGFzc3dvcmRcIiBsYWJlbD17dCgnYXV0aGVudGljYXRpb246Y29uZmlybVBhc3N3b3JkJyl9IHJlcXVpcmVkIC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgLz5cbiAgICAgIDwvRm9ybUlucHV0V3JhcD5cbiAgICAgIDxmb3JtLkFwcEZvcm0gY2hpbGRyZW49ezxmb3JtLlN1Ym1pdCBsYWJlbD17dCgnZ2VuZXJhbDpjcmVhdGUnKX0gbG9hZGluZ0xhYmVsPXt0KCdnZW5lcmFsOmxvYWRpbmcnKX0gLz59IC8+XG4gICAgPC9Gb3JtPlxuICApXG59XG5cbmV4cG9ydCBjb25zdCBBZG1pblNpZ251cENsaWVudDogUmVhY3QuRkM8QWRtaW5TaWdudXBDbGllbnRQcm9wcz4gPSAoe1xuICBhZG1pbkludml0ZVRva2VuLFxuICB1c2VyU2x1ZyxcbiAgc2VhcmNoUGFyYW1zLFxuICBsb2dpbk1ldGhvZHMsXG4gIGxvZ2luV2l0aFVzZXJuYW1lXG59KSA9PiB7XG4gIGNvbnN0IHtcbiAgICBjb25maWc6IHtcbiAgICAgIHJvdXRlczogeyBhZG1pbjogYWRtaW5Sb3V0ZSwgYXBpOiBhcGlSb3V0ZSB9LFxuICAgICAgc2VydmVyVVJMXG4gICAgfVxuICB9ID0gdXNlQ29uZmlnKClcbiAgY29uc3QgW3JlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbiwgc2V0UmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uXSA9IHVzZVN0YXRlPGJvb2xlYW4+KGZhbHNlKVxuICBjb25zdCByZWRpcmVjdFVybCA9IGdldFNhZmVSZWRpcmVjdChzZWFyY2hQYXJhbXM/LnJlZGlyZWN0IGFzIHN0cmluZywgYWRtaW5Sb3V0ZSlcbiAgY29uc3Qgc2V0QWRtaW5Sb2xlQ2FsbGJhY2tVUkwgPSBgJHtzZXJ2ZXJVUkx9JHthcGlSb3V0ZX0vJHt1c2VyU2x1Z30ke2FkbWluRW5kcG9pbnRzLnNldEFkbWluUm9sZX0/dG9rZW49JHthZG1pbkludml0ZVRva2VufSZyZWRpcmVjdD0ke3JlZGlyZWN0VXJsfWBcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICB7bG9naW5NZXRob2RzLmluY2x1ZGVzKCdlbWFpbFBhc3N3b3JkJykgJiYgKFxuICAgICAgICA8U2lnbnVwRm9ybVxuICAgICAgICAgIGFkbWluSW52aXRlVG9rZW49e2FkbWluSW52aXRlVG9rZW59XG4gICAgICAgICAgc2VhcmNoUGFyYW1zPXtzZWFyY2hQYXJhbXN9XG4gICAgICAgICAgbG9naW5XaXRoVXNlcm5hbWU9e2xvZ2luV2l0aFVzZXJuYW1lfVxuICAgICAgICAgIHJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbj17cmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9ufVxuICAgICAgICAgIHNldFJlcXVpcmVFbWFpbFZlcmlmaWNhdGlvbj17c2V0UmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9ufVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHshcmVxdWlyZUVtYWlsVmVyaWZpY2F0aW9uICYmIChcbiAgICAgICAgPEFkbWluU29jaWFsUHJvdmlkZXJCdXR0b25zXG4gICAgICAgICAgaXNTaWdudXA9e3RydWV9XG4gICAgICAgICAgbG9naW5NZXRob2RzPXtsb2dpbk1ldGhvZHN9XG4gICAgICAgICAgYWRtaW5JbnZpdGVUb2tlbj17YWRtaW5JbnZpdGVUb2tlbn1cbiAgICAgICAgICBzZXRMb2FkaW5nPXsoKSA9PiB7fX1cbiAgICAgICAgICByZWRpcmVjdFVybD17cmVkaXJlY3RVcmx9XG4gICAgICAgICAgbmV3VXNlckNhbGxiYWNrVVJMPXtzZXRBZG1pblJvbGVDYWxsYmFja1VSTH1cbiAgICAgICAgLz5cbiAgICAgICl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VDb25maWciLCJ0b2FzdCIsInVzZVRyYW5zbGF0aW9uIiwiUmVhY3QiLCJ1c2VTdGF0ZSIsIkFkbWluU29jaWFsUHJvdmlkZXJCdXR0b25zIiwiZ2V0U2FmZVJlZGlyZWN0IiwiYWRtaW5FbmRwb2ludHMiLCJ1c2VBcHBGb3JtIiwiRm9ybSIsIkZvcm1JbnB1dFdyYXAiLCJGb3JtSGVhZGVyIiwiY3JlYXRlU2lnbnVwU2NoZW1hIiwidHJ5Q2F0Y2giLCJiYXNlQ2xhc3MiLCJTaWdudXBGb3JtIiwic2VhcmNoUGFyYW1zIiwibG9naW5XaXRoVXNlcm5hbWUiLCJyZXF1aXJlRW1haWxWZXJpZmljYXRpb24iLCJzZXRSZXF1aXJlRW1haWxWZXJpZmljYXRpb24iLCJhZG1pbkludml0ZVRva2VuIiwiY29uZmlnIiwiYWRtaW4iLCJ1c2VyIiwidXNlclNsdWciLCJyb3V0ZXMiLCJhZG1pblJvdXRlIiwiYXBpIiwiYXBpUm91dGUiLCJzZXJ2ZXJVUkwiLCJ0IiwicmVkaXJlY3RVcmwiLCJyZWRpcmVjdCIsInJlcXVpcmVVc2VybmFtZSIsIkJvb2xlYW4iLCJzaWdudXBTY2hlbWEiLCJmb3JtIiwiZGVmYXVsdFZhbHVlcyIsImVtYWlsIiwicGFzc3dvcmQiLCJjb25maXJtUGFzc3dvcmQiLCJ1c2VybmFtZSIsIm9uU3VibWl0IiwidmFsdWUiLCJkYXRhIiwiZXJyb3IiLCJmZXRjaCIsInNpZ251cCIsIm1ldGhvZCIsImhlYWRlcnMiLCJib2R5IiwiSlNPTiIsInN0cmluZ2lmeSIsInRoZW4iLCJyZXMiLCJqc29uIiwibWVzc2FnZSIsInN1Y2Nlc3MiLCJ3aW5kb3ciLCJsb2NhdGlvbiIsImhyZWYiLCJ2YWxpZGF0b3JzIiwiaGVhZGluZyIsImRlc2NyaXB0aW9uIiwic3R5bGUiLCJ0ZXh0QWxpZ24iLCJjbGFzc05hbWUiLCJlIiwicHJldmVudERlZmF1bHQiLCJoYW5kbGVTdWJtaXQiLCJBcHBGaWVsZCIsIm5hbWUiLCJjaGlsZHJlbiIsImZpZWxkIiwiVGV4dEZpZWxkIiwidHlwZSIsImF1dG9Db21wbGV0ZSIsImxhYmVsIiwicmVxdWlyZWQiLCJBcHBGb3JtIiwiU3VibWl0IiwibG9hZGluZ0xhYmVsIiwiQWRtaW5TaWdudXBDbGllbnQiLCJsb2dpbk1ldGhvZHMiLCJzZXRBZG1pblJvbGVDYWxsYmFja1VSTCIsInNldEFkbWluUm9sZSIsImluY2x1ZGVzIiwiaXNTaWdudXAiLCJzZXRMb2FkaW5nIiwibmV3VXNlckNhbGxiYWNrVVJMIl0sIm1hcHBpbmdzIjoiQUFBQTs7QUFFQSxTQUFTQSxTQUFTLEVBQUVDLEtBQUssRUFBRUMsY0FBYyxRQUFRLGlCQUFnQjtBQUNqRSxPQUFPQyxTQUFTQyxRQUFRLFFBQVEsUUFBTztBQUV2QyxTQUFTQywwQkFBMEIsUUFBUSwyQ0FBMEM7QUFDckYsU0FBU0MsZUFBZSxRQUFRLGdDQUErQjtBQUMvRCxTQUFTQyxjQUFjLFFBQVEscUJBQWdDO0FBRS9ELFNBQVNDLFVBQVUsUUFBUSw2QkFBZTtBQUMxQyxTQUFTQyxJQUFJLEVBQUVDLGFBQWEsUUFBUSxnQ0FBa0I7QUFDdEQsU0FBU0MsVUFBVSxRQUFRLHVDQUF5QjtBQUNwRCxTQUFTQyxrQkFBa0IsUUFBUSx3Q0FBMEI7QUFHN0QsU0FBU0MsUUFBUSxRQUFRLHdDQUEwQjtBQVVuRCxNQUFNQyxZQUFZO0FBVWxCLE1BQU1DLGFBQXdDLENBQUMsRUFDN0NDLFlBQVksRUFDWkMsaUJBQWlCLEVBQ2pCQyx3QkFBd0IsRUFDeEJDLDJCQUEyQixFQUMzQkMsZ0JBQWdCLEVBQ2pCO0lBQ0MsTUFBTSxFQUNKQyxRQUFRLEVBQ05DLE9BQU8sRUFBRUMsTUFBTUMsUUFBUSxFQUFFLEVBQ3pCQyxRQUFRLEVBQUVILE9BQU9JLFVBQVUsRUFBRUMsS0FBS0MsUUFBUSxFQUFFLEVBQzVDQyxTQUFTLEVBQ1YsRUFDRixHQUFHN0I7SUFDSixNQUFNLEVBQUU4QixDQUFDLEVBQUUsR0FBRzVCO0lBQ2QsTUFBTTZCLGNBQWN6QixnQkFBZ0JVLGNBQWNnQixVQUFvQk47SUFFdEUsTUFBTU8sa0JBQWtCQyxRQUFRakIscUJBQXFCLE9B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
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import type { AdminViewServerProps } from 'payload';
|
|
3
3
|
import type { BetterAuthPluginOptions, SanitizedBetterAuthOptions } from '../../../types';
|
|
4
|
-
import './index.scss';
|
|
5
4
|
type AdminSignupProps = AdminViewServerProps & {
|
|
6
5
|
defaultAdminRole: string;
|
|
7
6
|
pluginOptions: BetterAuthPluginOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/admin-signup/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/admin-signup/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAUzB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AACnD,OAAO,KAAK,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAA;AASzF,KAAK,gBAAgB,GAAG,oBAAoB,GAAG;IAC7C,gBAAgB,EAAE,MAAM,CAAA;IACxB,aAAa,EAAE,uBAAuB,CAAA;IACtC,iBAAiB,EAAE,0BAA0B,CAAA;CAC9C,CAAA;AAED,QAAA,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA2E3C,CAAA;AAED,eAAe,WAAW,CAAA"}
|
|
@@ -7,108 +7,65 @@ import { AdminSignupClient } from "./client";
|
|
|
7
7
|
import { FormHeader } from "../../../../../shared/form/ui/header";
|
|
8
8
|
import { baseCollectionSlugs } from "../../../constants";
|
|
9
9
|
import { checkUsernamePlugin } from "../../../helpers/check-username-plugin";
|
|
10
|
-
|
|
11
|
-
const baseClass = '
|
|
10
|
+
// Avoid the need for custom styles
|
|
11
|
+
const baseClass = 'login';
|
|
12
12
|
const searchParamsSchema = z.object({
|
|
13
13
|
token: z.string()
|
|
14
14
|
});
|
|
15
15
|
const AdminSignup = async ({ initPageResult, params, searchParams, pluginOptions, betterAuthOptions })=>{
|
|
16
16
|
const { locale, permissions, req, req: { i18n, user, payload: { collections, config: { admin: { user: userSlug } } } } } = initPageResult;
|
|
17
17
|
const { success, data } = searchParamsSchema.safeParse(searchParams);
|
|
18
|
+
let hasInvalidToken = false;
|
|
18
19
|
if (!success) {
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
params: params,
|
|
28
|
-
payload: req.payload,
|
|
29
|
-
permissions: permissions,
|
|
30
|
-
searchParams: searchParams,
|
|
31
|
-
user: user ?? undefined
|
|
32
|
-
})
|
|
33
|
-
}),
|
|
34
|
-
/*#__PURE__*/ _jsx(FormHeader, {
|
|
35
|
-
style: {
|
|
36
|
-
textAlign: 'center'
|
|
37
|
-
},
|
|
38
|
-
heading: "Invalid or expired token",
|
|
39
|
-
description: "You need to get a new invite to sign up."
|
|
40
|
-
})
|
|
41
|
-
]
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
const invite = await req.payload.find({
|
|
45
|
-
collection: pluginOptions.adminInvitations?.slug ?? baseCollectionSlugs.adminInvitations,
|
|
46
|
-
where: {
|
|
47
|
-
token: {
|
|
48
|
-
equals: data.token
|
|
20
|
+
hasInvalidToken = true;
|
|
21
|
+
} else {
|
|
22
|
+
const { totalDocs: isValidInvite } = await req.payload.count({
|
|
23
|
+
collection: pluginOptions.adminInvitations?.slug ?? baseCollectionSlugs.adminInvitations,
|
|
24
|
+
where: {
|
|
25
|
+
token: {
|
|
26
|
+
equals: data.token
|
|
27
|
+
}
|
|
49
28
|
}
|
|
50
|
-
},
|
|
51
|
-
limit: 1
|
|
52
|
-
});
|
|
53
|
-
if (invite.docs.length === 0) {
|
|
54
|
-
return /*#__PURE__*/ _jsx("section", {
|
|
55
|
-
className: `${baseClass} login template-minimal template-minimal--width-normal`,
|
|
56
|
-
children: /*#__PURE__*/ _jsxs("div", {
|
|
57
|
-
className: "template-minimal__wrap",
|
|
58
|
-
children: [
|
|
59
|
-
/*#__PURE__*/ _jsx("div", {
|
|
60
|
-
className: `${baseClass}__brand`,
|
|
61
|
-
children: /*#__PURE__*/ _jsx(Logo, {
|
|
62
|
-
i18n: i18n,
|
|
63
|
-
locale: locale,
|
|
64
|
-
params: params,
|
|
65
|
-
payload: req.payload,
|
|
66
|
-
permissions: permissions,
|
|
67
|
-
searchParams: searchParams,
|
|
68
|
-
user: user ?? undefined
|
|
69
|
-
})
|
|
70
|
-
}),
|
|
71
|
-
/*#__PURE__*/ _jsx(FormHeader, {
|
|
72
|
-
heading: i18n.t('error:tokenInvalidOrExpired')
|
|
73
|
-
})
|
|
74
|
-
]
|
|
75
|
-
})
|
|
76
29
|
});
|
|
30
|
+
if (!isValidInvite) {
|
|
31
|
+
hasInvalidToken = true;
|
|
32
|
+
}
|
|
77
33
|
}
|
|
78
|
-
const
|
|
79
|
-
const socialProviders = pluginOptions.adminComponents?.socialProviders ?? {};
|
|
34
|
+
const loginMethods = pluginOptions.admin?.loginMethods ?? [];
|
|
80
35
|
const hasUsernamePlugin = checkUsernamePlugin(betterAuthOptions);
|
|
81
36
|
const loginWithUsername = collections?.[userSlug]?.config.auth.loginWithUsername;
|
|
82
37
|
const canLoginWithUsername = (hasUsernamePlugin && loginWithUsername) ?? false;
|
|
83
|
-
return /*#__PURE__*/
|
|
84
|
-
className: `${baseClass}
|
|
85
|
-
children:
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
/*#__PURE__*/ _jsx(
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
searchParams: searchParams,
|
|
97
|
-
user: user ?? undefined
|
|
98
|
-
})
|
|
99
|
-
}),
|
|
100
|
-
/*#__PURE__*/ _jsx(AdminSignupClient, {
|
|
101
|
-
token: data.token,
|
|
102
|
-
role: inviteRole,
|
|
103
|
-
userSlug: userSlug,
|
|
104
|
-
socialProviders: socialProviders,
|
|
105
|
-
searchParams: searchParams ?? {},
|
|
106
|
-
loginWithUsername: canLoginWithUsername
|
|
38
|
+
return /*#__PURE__*/ _jsxs(MinimalTemplate, {
|
|
39
|
+
className: `${baseClass} admin-signup`,
|
|
40
|
+
children: [
|
|
41
|
+
/*#__PURE__*/ _jsx("div", {
|
|
42
|
+
className: `${baseClass}__brand admin-signup__brand`,
|
|
43
|
+
children: /*#__PURE__*/ _jsx(Logo, {
|
|
44
|
+
i18n: i18n,
|
|
45
|
+
locale: locale,
|
|
46
|
+
params: params,
|
|
47
|
+
payload: req.payload,
|
|
48
|
+
permissions: permissions,
|
|
49
|
+
searchParams: searchParams,
|
|
50
|
+
user: user ?? undefined
|
|
107
51
|
})
|
|
108
|
-
|
|
109
|
-
|
|
52
|
+
}),
|
|
53
|
+
hasInvalidToken ? /*#__PURE__*/ _jsx(FormHeader, {
|
|
54
|
+
style: {
|
|
55
|
+
textAlign: 'center'
|
|
56
|
+
},
|
|
57
|
+
heading: "Invalid or expired token",
|
|
58
|
+
description: "You need to get a new invite to sign up."
|
|
59
|
+
}) : data && /*#__PURE__*/ _jsx(AdminSignupClient, {
|
|
60
|
+
adminInviteToken: data.token,
|
|
61
|
+
userSlug: userSlug,
|
|
62
|
+
loginMethods: loginMethods,
|
|
63
|
+
searchParams: searchParams ?? {},
|
|
64
|
+
loginWithUsername: canLoginWithUsername
|
|
65
|
+
})
|
|
66
|
+
]
|
|
110
67
|
});
|
|
111
68
|
};
|
|
112
69
|
export default AdminSignup;
|
|
113
70
|
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC92aWV3cy9hZG1pbi1zaWdudXAvaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgeiB9IGZyb20gJ3pvZCdcbmltcG9ydCB7IExvZ28gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zaGFyZWQvY29tcG9uZW50cy9sb2dvJ1xuaW1wb3J0IHsgTWluaW1hbFRlbXBsYXRlIH0gZnJvbSAnQHBheWxvYWRjbXMvbmV4dC90ZW1wbGF0ZXMnXG5pbXBvcnQgeyBBZG1pblNpZ251cENsaWVudCB9IGZyb20gJy4vY2xpZW50J1xuaW1wb3J0IHsgRm9ybUhlYWRlciB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL3NoYXJlZC9mb3JtL3VpL2hlYWRlcidcbmltcG9ydCB7IGJhc2VDb2xsZWN0aW9uU2x1Z3MgfSBmcm9tICcuLi8uLi8uLi9jb25zdGFudHMnXG5pbXBvcnQgeyBjaGVja1VzZXJuYW1lUGx1Z2luIH0gZnJvbSAnLi4vLi4vLi4vaGVscGVycy9jaGVjay11c2VybmFtZS1wbHVnaW4nXG5cbmltcG9ydCB0eXBlIHsgQWRtaW5WaWV3U2VydmVyUHJvcHMgfSBmcm9tICdwYXlsb2FkJ1xuaW1wb3J0IHR5cGUgeyBCZXR0ZXJBdXRoUGx1Z2luT3B0aW9ucywgU2FuaXRpemVkQmV0dGVyQXV0aE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcydcblxuLy8gIEF2b2lkIHRoZSBuZWVkIGZvciBjdXN0b20gc3R5bGVzXG5jb25zdCBiYXNlQ2xhc3MgPSAnbG9naW4nXG5cbmNvbnN0IHNlYXJjaFBhcmFtc1NjaGVtYSA9IHoub2JqZWN0KHtcbiAgdG9rZW46IHouc3RyaW5nKClcbn0pXG5cbnR5cGUgQWRtaW5TaWdudXBQcm9wcyA9IEFkbWluVmlld1NlcnZlclByb3BzICYge1xuICBkZWZhdWx0QWRtaW5Sb2xlOiBzdHJpbmdcbiAgcGx1Z2luT3B0aW9uczogQmV0dGVyQXV0aFBsdWdpbk9wdGlvbnNcbiAgYmV0dGVyQXV0aE9wdGlvbnM6IFNhbml0aXplZEJldHRlckF1dGhPcHRpb25zXG59XG5cbmNvbnN0IEFkbWluU2lnbnVwOiBSZWFjdC5GQzxBZG1pblNpZ251cFByb3BzPiA9IGFzeW5jICh7XG4gIGluaXRQYWdlUmVzdWx0LFxuICBwYXJhbXMsXG4gIHNlYXJjaFBhcmFtcyxcbiAgcGx1Z2luT3B0aW9ucyxcbiAgYmV0dGVyQXV0aE9wdGlvbnNcbn06IEFkbWluU2lnbnVwUHJvcHMpID0+IHtcbiAgY29uc3Qge1xuICAgIGxvY2FsZSxcbiAgICBwZXJtaXNzaW9ucyxcbiAgICByZXEsXG4gICAgcmVxOiB7XG4gICAgICBpMThuLFxuICAgICAgdXNlcixcbiAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgY29sbGVjdGlvbnMsXG4gICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgIGFkbWluOiB7IHVzZXI6IHVzZXJTbHVnIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfSA9IGluaXRQYWdlUmVzdWx0XG5cbiAgY29uc3QgeyBzdWNjZXNzLCBkYXRhIH0gPSBzZWFyY2hQYXJhbXNTY2hlbWEuc2FmZVBhcnNlKHNlYXJjaFBhcmFtcylcblxuICBsZXQgaGFzSW52YWxpZFRva2VuID0gZmFsc2VcbiAgaWYgKCFzdWNjZXNzKSB7XG4gICAgaGFzSW52YWxpZFRva2VuID0gdHJ1ZVxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgdG90YWxEb2NzOiBpc1ZhbGlkSW52aXRlIH0gPSBhd2FpdCByZXEucGF5bG9hZC5jb3VudCh7XG4gICAgICBjb2xsZWN0aW9uOiBwbHVnaW5PcHRpb25zLmFkbWluSW52aXRhdGlvbnM/LnNsdWcgPz8gYmFzZUNvbGxlY3Rpb25TbHVncy5hZG1pbkludml0YXRpb25zLFxuICAgICAgd2hlcmU6IHsgdG9rZW46IHsgZXF1YWxzOiBkYXRhLnRva2VuIH0gfVxuICAgIH0pXG4gICAgaWYgKCFpc1ZhbGlkSW52aXRlKSB7XG4gICAgICBoYXNJbnZhbGlkVG9rZW4gPSB0cnVlXG4gICAgfVxuICB9XG5cbiAgY29uc3QgbG9naW5NZXRob2RzID0gcGx1Z2luT3B0aW9ucy5hZG1pbj8ubG9naW5NZXRob2RzID8/IFtdXG4gIGNvbnN0IGhhc1VzZXJuYW1lUGx1Z2luID0gY2hlY2tVc2VybmFtZVBsdWdpbihiZXR0ZXJBdXRoT3B0aW9ucylcbiAgY29uc3QgbG9naW5XaXRoVXNlcm5hbWUgPSBjb2xsZWN0aW9ucz8uW3VzZXJTbHVnXT8uY29uZmlnLmF1dGgubG9naW5XaXRoVXNlcm5hbWVcbiAgY29uc3QgY2FuTG9naW5XaXRoVXNlcm5hbWUgPSAoaGFzVXNlcm5hbWVQbHVnaW4gJiYgbG9naW5XaXRoVXNlcm5hbWUpID8/IGZhbHNlXG5cbiAgcmV0dXJuIChcbiAgICA8TWluaW1hbFRlbXBsYXRlIGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfSBhZG1pbi1zaWdudXBgfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19icmFuZCBhZG1pbi1zaWdudXBfX2JyYW5kYH0+XG4gICAgICAgIDxMb2dvXG4gICAgICAgICAgaTE4bj17aTE4bn1cbiAgICAgICAgICBsb2NhbGU9e2xvY2FsZX1cbiAgICAgICAgICBwYXJhbXM9e3BhcmFtc31cbiAgICAgICAgICBwYXlsb2FkPXtyZXEucGF5bG9hZH1cbiAgICAgICAgICBwZXJtaXNzaW9ucz17cGVybWlzc2lvbnN9XG4gICAgICAgICAgc2VhcmNoUGFyYW1zPXtzZWFyY2hQYXJhbXN9XG4gICAgICAgICAgdXNlcj17dXNlciA/PyB1bmRlZmluZWR9XG4gICAgICAgIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIHtoYXNJbnZhbGlkVG9rZW4gPyAoXG4gICAgICAgIDxGb3JtSGVhZGVyXG4gICAgICAgICAgc3R5bGU9e3sgdGV4dEFsaWduOiAnY2VudGVyJyB9fVxuICAgICAgICAgIGhlYWRpbmc9XCJJbnZhbGlkIG9yIGV4cGlyZWQgdG9rZW5cIlxuICAgICAgICAgIGRlc2NyaXB0aW9uPVwiWW91IG5lZWQgdG8gZ2V0IGEgbmV3IGludml0ZSB0byBzaWduIHVwLlwiXG4gICAgICAgIC8+XG4gICAgICApIDogKFxuICAgICAgICBkYXRhICYmIChcbiAgICAgICAgICA8QWRtaW5TaWdudXBDbGllbnRcbiAgICAgICAgICAgIGFkbWluSW52aXRlVG9rZW49e2RhdGEudG9rZW59XG4gICAgICAgICAgICB1c2VyU2x1Zz17dXNlclNsdWd9XG4gICAgICAgICAgICBsb2dpbk1ldGhvZHM9e2xvZ2luTWV0aG9kc31cbiAgICAgICAgICAgIHNlYXJjaFBhcmFtcz17c2VhcmNoUGFyYW1zID8/IHt9fVxuICAgICAgICAgICAgbG9naW5XaXRoVXNlcm5hbWU9e2NhbkxvZ2luV2l0aFVzZXJuYW1lfVxuICAgICAgICAgIC8+XG4gICAgICAgIClcbiAgICAgICl9XG4gICAgPC9NaW5pbWFsVGVtcGxhdGU+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQWRtaW5TaWdudXBcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInoiLCJMb2dvIiwiTWluaW1hbFRlbXBsYXRlIiwiQWRtaW5TaWdudXBDbGllbnQiLCJGb3JtSGVhZGVyIiwiYmFzZUNvbGxlY3Rpb25TbHVncyIsImNoZWNrVXNlcm5hbWVQbHVnaW4iLCJiYXNlQ2xhc3MiLCJzZWFyY2hQYXJhbXNTY2hlbWEiLCJvYmplY3QiLCJ0b2tlbiIsInN0cmluZyIsIkFkbWluU2lnbnVwIiwiaW5pdFBhZ2VSZXN1bHQiLCJwYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJwbHVnaW5PcHRpb25zIiwiYmV0dGVyQXV0aE9wdGlvbnMiLCJsb2NhbGUiLCJwZXJtaXNzaW9ucyIsInJlcSIsImkxOG4iLCJ1c2VyIiwicGF5bG9hZCIsImNvbGxlY3Rpb25zIiwiY29uZmlnIiwiYWRtaW4iLCJ1c2VyU2x1ZyIsInN1Y2Nlc3MiLCJkYXRhIiwic2FmZVBhcnNlIiwiaGFzSW52YWxpZFRva2VuIiwidG90YWxEb2NzIiwiaXNWYWxpZEludml0ZSIsImNvdW50IiwiY29sbGVjdGlvbiIsImFkbWluSW52aXRhdGlvbnMiLCJzbHVnIiwid2hlcmUiLCJlcXVhbHMiLCJsb2dpbk1ldGhvZHMiLCJoYXNVc2VybmFtZVBsdWdpbiIsImxvZ2luV2l0aFVzZXJuYW1lIiwiYXV0aCIsImNhbkxvZ2luV2l0aFVzZXJuYW1lIiwiY2xhc3NOYW1lIiwiZGl2IiwidW5kZWZpbmVkIiwic3R5bGUiLCJ0ZXh0QWxpZ24iLCJoZWFkaW5nIiwiZGVzY3JpcHRpb24iLCJhZG1pbkludml0ZVRva2VuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsV0FBVyxRQUFPO0FBRXpCLFNBQVNDLENBQUMsUUFBUSxNQUFLO0FBQ3ZCLFNBQVNDLElBQUksUUFBUSx3Q0FBdUM7QUFDNUQsU0FBU0MsZUFBZSxRQUFRLDZCQUE0QjtBQUM1RCxTQUFTQyxpQkFBaUIsUUFBUSxXQUFVO0FBQzVDLFNBQVNDLFVBQVUsUUFBUSx1Q0FBc0M7QUFDakUsU0FBU0MsbUJBQW1CLFFBQVEscUJBQW9CO0FBQ3hELFNBQVNDLG1CQUFtQixRQUFRLHlDQUF3QztBQUs1RSxvQ0FBb0M7QUFDcEMsTUFBTUMsWUFBWTtBQUVsQixNQUFNQyxxQkFBcUJSLEVBQUVTLE1BQU0sQ0FBQztJQUNsQ0MsT0FBT1YsRUFBRVcsTUFBTTtBQUNqQjtBQVFBLE1BQU1DLGNBQTBDLE9BQU8sRUFDckRDLGNBQWMsRUFDZEMsTUFBTSxFQUNOQyxZQUFZLEVBQ1pDLGFBQWEsRUFDYkMsaUJBQWlCLEVBQ0E7SUFDakIsTUFBTSxFQUNKQyxNQUFNLEVBQ05DLFdBQVcsRUFDWEMsR0FBRyxFQUNIQSxLQUFLLEVBQ0hDLElBQUksRUFDSkMsSUFBSSxFQUNKQyxTQUFTLEVBQ1BDLFdBQVcsRUFDWEMsUUFBUSxFQUNOQyxPQUFPLEVBQUVKLE1BQU1LLFFBQVEsRUFBRSxFQUMxQixFQUNGLEVBQ0YsRUFDRixHQUFHZDtJQUVKLE1BQU0sRUFBRWUsT0FBTyxFQUFFQyxJQUFJLEVBQUUsR0FBR3JCLG1CQUFtQnNCLFNBQVMsQ0FBQ2Y7SUFFdkQsSUFBSWdCLGtCQUFrQjtJQUN0QixJQUFJLENBQUNILFNBQVM7UUFDWkcsa0JBQWtCO0lBQ3BCLE9BQU87UUFDTCxNQUFNLEVBQUVDLFdBQVdDLGFBQWEsRUFBRSxHQUFHLE1BQU1iLElBQUlHLE9BQU8sQ0FBQ1csS0FBSyxDQUFDO1lBQzNEQyxZQUFZbkIsY0FBY29CLGdCQUFnQixFQUFFQyxRQUFRaEMsb0JBQW9CK0IsZ0JBQWdCO1lBQ3hGRSxPQUFPO2dCQUFFNUIsT0FBTztvQkFBRTZCLFFBQVFWLEtBQUtuQixLQUFLO2dCQUFDO1lBQUU7UUFDekM7UUFDQSxJQUFJLENBQUN1QixlQUFlO1lBQ2xCRixrQkFBa0I7UUFDcEI7SUFDRjtJQUVBLE1BQU1TLGVBQWV4QixjQUFjVSxLQUFLLEVBQUVjLGdCQUFnQixFQUFFO0lBQzVELE1BQU1DLG9CQUFvQm5DLG9CQUFvQlc7SUFDOUMsTUFBTXlCLG9CQUFvQmxCLGFBQWEsQ0FBQ0csU0FBUyxFQUFFRixPQUFPa0IsS0FBS0Q7SUFDL0QsTUFBTUUsdUJBQXVCLEFBQUNILENBQUFBLHFCQUFxQkMsaUJBQWdCLEtBQU07SUFFekUscUJBQ0UsTUFBQ3hDO1FBQWdCMkMsV0FBVyxHQUFHdEMsVUFBVSxhQUFhLENBQUM7OzBCQUNyRCxLQUFDdUM7Z0JBQUlELFdBQVcsR0FBR3RDLFVBQVUsMkJBQTJCLENBQUM7MEJBQ3ZELGNBQUEsS0FBQ047b0JBQ0NvQixNQUFNQTtvQkFDTkgsUUFBUUE7b0JBQ1JKLFFBQVFBO29CQUNSUyxTQUFTSCxJQUFJRyxPQUFPO29CQUNwQkosYUFBYUE7b0JBQ2JKLGNBQWNBO29CQUNkTyxNQUFNQSxRQUFReUI7OztZQUdqQmhCLGdDQUNDLEtBQUMzQjtnQkFDQzRDLE9BQU87b0JBQUVDLFdBQVc7Z0JBQVM7Z0JBQzdCQyxTQUFRO2dCQUNSQyxhQUFZO2lCQUdkdEIsc0JBQ0UsS0FBQzFCO2dCQUNDaUQsa0JBQWtCdkIsS0FBS25CLEtBQUs7Z0JBQzVCaUIsVUFBVUE7Z0JBQ1ZhLGNBQWNBO2dCQUNkekIsY0FBY0EsZ0JBQWdCLENBQUM7Z0JBQy9CMkIsbUJBQW1CRTs7OztBQU0vQjtBQUVBLGVBQWVoQyxZQUFXIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/forgot-password/client.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../../../src/better-auth/plugin/payload/views/forgot-password/client.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAA;AAG/B,KAAK,uBAAuB,GAAG,EAAE,CAAA;AAEjC,eAAO,MAAM,kBAAkB,EAAE,EAAE,CAAC,uBAAuB,CAiE1D,CAAA"}
|
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import React, { useMemo, useState } from "react";
|
|
4
3
|
import { createAuthClient } from "better-auth/react";
|
|
5
|
-
|
|
6
|
-
// import { EmailField } from '@/shared/form/components/email'
|
|
7
|
-
import { toast, useConfig, useTranslation } from "@payloadcms/ui";
|
|
8
|
-
import { FormHeader } from "../../../../../shared/form/ui/header";
|
|
4
|
+
import { useMemo, useState } from "react";
|
|
9
5
|
import { adminRoutes } from "../../../constants";
|
|
10
|
-
import { Form, FormInputWrap } from "../../../../../shared/form/ui";
|
|
11
6
|
import { useAppForm } from "../../../../../shared/form";
|
|
7
|
+
import { Form, FormInputWrap } from "../../../../../shared/form/ui";
|
|
8
|
+
import { FormHeader } from "../../../../../shared/form/ui/header";
|
|
12
9
|
import { emailRegex } from "../../../../../shared/utils/regex";
|
|
10
|
+
import { toast, useConfig, useTranslation } from "@payloadcms/ui";
|
|
13
11
|
import { z } from "zod";
|
|
14
12
|
export const ForgotPasswordForm = ()=>{
|
|
15
13
|
const { t } = useTranslation();
|
|
@@ -88,4 +86,4 @@ export const ForgotPasswordForm = ()=>{
|
|
|
88
86
|
});
|
|
89
87
|
};
|
|
90
88
|
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
89
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9iZXR0ZXItYXV0aC9wbHVnaW4vcGF5bG9hZC92aWV3cy9mb3Jnb3QtcGFzc3dvcmQvY2xpZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgY3JlYXRlQXV0aENsaWVudCB9IGZyb20gJ2JldHRlci1hdXRoL3JlYWN0J1xuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGFkbWluUm91dGVzIH0gZnJvbSAnQC9iZXR0ZXItYXV0aC9wbHVnaW4vY29uc3RhbnRzJ1xuaW1wb3J0IHsgdXNlQXBwRm9ybSB9IGZyb20gJ0Avc2hhcmVkL2Zvcm0nXG5pbXBvcnQgeyBGb3JtLCBGb3JtSW5wdXRXcmFwIH0gZnJvbSAnQC9zaGFyZWQvZm9ybS91aSdcbmltcG9ydCB7IEZvcm1IZWFkZXIgfSBmcm9tICdAL3NoYXJlZC9mb3JtL3VpL2hlYWRlcidcbmltcG9ydCB7IGVtYWlsUmVnZXggfSBmcm9tICdAL3NoYXJlZC91dGlscy9yZWdleCdcbmltcG9ydCB7IHRvYXN0LCB1c2VDb25maWcsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgdHlwZSB7IEZDIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB6IH0gZnJvbSAnem9kJ1xuXG50eXBlIEZvcmdvdFBhc3N3b3JkRm9ybVByb3BzID0ge31cblxuZXhwb3J0IGNvbnN0IEZvcmdvdFBhc3N3b3JkRm9ybTogRkM8Rm9yZ290UGFzc3dvcmRGb3JtUHJvcHM+ID0gKCkgPT4ge1xuICBjb25zdCB7IHQgfSA9IHVzZVRyYW5zbGF0aW9uKClcbiAgY29uc3QgeyBjb25maWcgfSA9IHVzZUNvbmZpZygpXG4gIGNvbnN0IGFkbWluUm91dGUgPSBjb25maWcucm91dGVzLmFkbWluXG4gIGNvbnN0IFtoYXNTdWJtaXR0ZWQsIHNldEhhc1N1Ym1pdHRlZF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSlcbiAgY29uc3QgYXV0aENsaWVudCA9IHVzZU1lbW8oKCkgPT4gY3JlYXRlQXV0aENsaWVudCgpLCBbXSlcblxuICBjb25zdCBmb3Jnb3RTY2hlbWEgPSB6Lm9iamVjdCh7XG4gICAgZW1haWw6IHouc3RyaW5nKCkucmVmaW5lKFxuICAgICAgKHZhbCkgPT4gZW1haWxSZWdleC50ZXN0KHZhbCksXG4gICAgICAodmFsKSA9PiAoeyBtZXNzYWdlOiB2YWwgPyB0KCdhdXRoZW50aWNhdGlvbjplbWFpbE5vdFZhbGlkJykgfHwgJ0ludmFsaWQgZW1haWwnIDogdCgndmFsaWRhdGlvbjpyZXF1aXJlZCcpIH0pXG4gICAgKVxuICB9KVxuXG4gIGNvbnN0IGZvcm0gPSB1c2VBcHBGb3JtKHtcbiAgICBkZWZhdWx0VmFsdWVzOiB7XG4gICAgICBlbWFpbDogJydcbiAgICB9LFxuICAgIG9uU3VibWl0OiBhc3luYyAoeyB2YWx1ZSB9KSA9PiB7XG4gICAgICBjb25zdCB7IGVtYWlsIH0gPSB2YWx1ZVxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgeyBkYXRhLCBlcnJvciB9ID0gYXdhaXQgYXV0aENsaWVudC5mb3JnZXRQYXNzd29yZCh7XG4gICAgICAgICAgZW1haWwsXG4gICAgICAgICAgcmVkaXJlY3RUbzogYCR7YWRtaW5Sb3V0ZX0ke2FkbWluUm91dGVzLnJlc2V0UGFzc3dvcmR9YFxuICAgICAgICB9KVxuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICB0b2FzdC5lcnJvcihlcnJvci5tZXNzYWdlIHx8IHQoJ2F1dGhlbnRpY2F0aW9uOmVtYWlsTm90VmFsaWQnKSB8fCAnRXJyb3InKVxuICAgICAgICAgIHJldHVyblxuICAgICAgICB9XG4gICAgICAgIGlmIChkYXRhPy5zdGF0dXMpIHtcbiAgICAgICAgICBzZXRIYXNTdWJtaXR0ZWQodHJ1ZSlcbiAgICAgICAgICB0b2FzdC5zdWNjZXNzKCdTdWNjZXNzZnVsbHkgc2VudCByZXNldCBlbWFpbC4nKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRvYXN0LmVycm9yKHQoJ2dlbmVyYWw6ZXJyb3InKSB8fCAnU2VydmVyIEVycm9yJylcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0b2FzdC5lcnJvcih0KCdnZW5lcmFsOmVycm9yJykgfHwgJ0FuIHVuZXhwZWN0ZWQgZXJyb3Igb2NjdXJyZWQnKVxuICAgICAgfVxuICAgIH0sXG4gICAgdmFsaWRhdG9yczoge1xuICAgICAgb25TdWJtaXQ6IGZvcmdvdFNjaGVtYVxuICAgIH1cbiAgfSlcblxuICBpZiAoaGFzU3VibWl0dGVkKSB7XG4gICAgcmV0dXJuIDxGb3JtSGVhZGVyIGRlc2NyaXB0aW9uPXt0KCdhdXRoZW50aWNhdGlvbjpjaGVja1lvdXJFbWFpbEZvclBhc3N3b3JkUmVzZXQnKX0gaGVhZGluZz17dCgnYXV0aGVudGljYXRpb246ZW1haWxTZW50Jyl9IC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxGb3JtXG4gICAgICBvblN1Ym1pdD17KGUpID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgIHZvaWQgZm9ybS5oYW5kbGVTdWJtaXQoKVxuICAgICAgfX1cbiAgICA+XG4gICAgICA8Rm9ybUhlYWRlciBoZWFkaW5nPXt0KCdhdXRoZW50aWNhdGlvbjpmb3Jnb3RQYXNzd29yZCcpfSBkZXNjcmlwdGlvbj17dCgnYXV0aGVudGljYXRpb246Zm9yZ290UGFzc3dvcmRFbWFpbEluc3RydWN0aW9ucycpfSAvPlxuICAgICAgPEZvcm1JbnB1dFdyYXA+XG4gICAgICAgIDxmb3JtLkFwcEZpZWxkXG4gICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICBjaGlsZHJlbj17KGZpZWxkKSA9PiA8ZmllbGQuVGV4dEZpZWxkIHR5cGU9XCJ0ZXh0XCIgY2xhc3NOYW1lPVwiZW1haWxcIiBhdXRvQ29tcGxldGU9XCJlbWFpbFwiIGxhYmVsPXt0KCdnZW5lcmFsOmVtYWlsJyl9IC8+fVxuICAgICAgICAvPlxuICAgICAgPC9Gb3JtSW5wdXRXcmFwPlxuICAgICAgPGZvcm0uQXBwRm9ybSBjaGlsZHJlbj17PGZvcm0uU3VibWl0IGxhYmVsPXt0KCdnZW5lcmFsOnN1Ym1pdCcpfSBsb2FkaW5nTGFiZWw9e3QoJ2dlbmVyYWw6bG9hZGluZycpfSAvPn0gLz5cbiAgICA8L0Zvcm0+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVBdXRoQ2xpZW50IiwidXNlTWVtbyIsInVzZVN0YXRlIiwiYWRtaW5Sb3V0ZXMiLCJ1c2VBcHBGb3JtIiwiRm9ybSIsIkZvcm1JbnB1dFdyYXAiLCJGb3JtSGVhZGVyIiwiZW1haWxSZWdleCIsInRvYXN0IiwidXNlQ29uZmlnIiwidXNlVHJhbnNsYXRpb24iLCJ6IiwiRm9yZ290UGFzc3dvcmRGb3JtIiwidCIsImNvbmZpZyIsImFkbWluUm91dGUiLCJyb3V0ZXMiLCJhZG1pbiIsImhhc1N1Ym1pdHRlZCIsInNldEhhc1N1Ym1pdHRlZCIsImF1dGhDbGllbnQiLCJmb3Jnb3RTY2hlbWEiLCJvYmplY3QiLCJlbWFpbCIsInN0cmluZyIsInJlZmluZSIsInZhbCIsInRlc3QiLCJtZXNzYWdlIiwiZm9ybSIsImRlZmF1bHRWYWx1ZXMiLCJvblN1Ym1pdCIsInZhbHVlIiwiZGF0YSIsImVycm9yIiwiZm9yZ2V0UGFzc3dvcmQiLCJyZWRpcmVjdFRvIiwicmVzZXRQYXNzd29yZCIsInN0YXR1cyIsInN1Y2Nlc3MiLCJlIiwidmFsaWRhdG9ycyIsImRlc2NyaXB0aW9uIiwiaGVhZGluZyIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlU3VibWl0IiwiQXBwRmllbGQiLCJuYW1lIiwiY2hpbGRyZW4iLCJmaWVsZCIsIlRleHRGaWVsZCIsInR5cGUiLCJjbGFzc05hbWUiLCJhdXRvQ29tcGxldGUiLCJsYWJlbCIsIkFwcEZvcm0iLCJTdWJtaXQiLCJsb2FkaW5nTGFiZWwiXSwibWFwcGluZ3MiOiJBQUFBOztBQUVBLFNBQVNBLGdCQUFnQixRQUFRLG9CQUFtQjtBQUNwRCxT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
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { UnionToIntersection, betterAuth } from 'better-auth';
|
|
2
2
|
import type { BetterAuthOptions as BetterAuthOptionsType, BetterAuthPlugin as BetterAuthPluginType, InferAPI, InferPluginTypes } from 'better-auth/types';
|
|
3
3
|
import type { BasePayload, CollectionConfig, Config, Endpoint, Payload, PayloadRequest } from 'payload';
|
|
4
|
-
import { adminRoutes } from './constants';
|
|
4
|
+
import { adminRoutes, loginMethods, socialProviders } from './constants';
|
|
5
5
|
/**
|
|
6
6
|
* BetterAuth options with the following caveats:
|
|
7
7
|
* - The `database` option is removed as it is configured internally
|
|
@@ -21,13 +21,8 @@ export interface BetterAuthOptions extends Omit<BetterAuthOptionsType, 'database
|
|
|
21
21
|
}
|
|
22
22
|
export interface SanitizedBetterAuthOptions extends Omit<BetterAuthOptionsType, 'database'> {
|
|
23
23
|
}
|
|
24
|
-
export type SocialProvider =
|
|
25
|
-
export type
|
|
26
|
-
[key in SocialProvider]?: {
|
|
27
|
-
enabled?: boolean;
|
|
28
|
-
disableSignUp?: boolean;
|
|
29
|
-
};
|
|
30
|
-
};
|
|
24
|
+
export type SocialProvider = (typeof socialProviders)[number];
|
|
25
|
+
export type LoginMethod = (typeof loginMethods)[number];
|
|
31
26
|
export interface BetterAuthPluginOptions {
|
|
32
27
|
/**
|
|
33
28
|
* Disable the plugin
|
|
@@ -54,15 +49,13 @@ export interface BetterAuthPluginOptions {
|
|
|
54
49
|
*
|
|
55
50
|
* These components will be used to render the login, create first admin, and other auth-related views
|
|
56
51
|
*/
|
|
57
|
-
|
|
52
|
+
admin?: {
|
|
58
53
|
/**
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
* This will add social providers to the login view
|
|
54
|
+
* Override which social buttons are shown in the Payload Login / Sign Up view.
|
|
62
55
|
*
|
|
63
|
-
*
|
|
56
|
+
* Provide an array of LoginMethod keys.
|
|
64
57
|
*/
|
|
65
|
-
|
|
58
|
+
loginMethods?: LoginMethod[];
|
|
66
59
|
};
|
|
67
60
|
/**
|
|
68
61
|
* Debug options
|
|
@@ -89,6 +82,22 @@ export interface BetterAuthPluginOptions {
|
|
|
89
82
|
* @default "Auth"
|
|
90
83
|
*/
|
|
91
84
|
collectionAdminGroup?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Require a valid admin invitation for any *public* sign‑up.
|
|
87
|
+
*
|
|
88
|
+
* – Applies to both email/password and social‑provider flows.
|
|
89
|
+
* – Existing users can still sign in; admins can still create users via
|
|
90
|
+
* the Payload UI or server‑side calls.
|
|
91
|
+
* – Ignores provider‑level `disableImplicitSignUp` and `disableSignUp`:
|
|
92
|
+
* with a valid invite the sign‑up proceeds, without one it's blocked.
|
|
93
|
+
* – Also sets `disableImplicitSignUp` for all providers, requiring `requestSignUp` to be true for all `authClient.signIn.social` calls when creating a new account with a provider.
|
|
94
|
+
*
|
|
95
|
+
* Enable when you want OAuth for internal/admin use only and no public
|
|
96
|
+
* registrations at all.
|
|
97
|
+
*
|
|
98
|
+
* @default false
|
|
99
|
+
*/
|
|
100
|
+
requireAdminInviteForSignUp?: boolean;
|
|
92
101
|
/**
|
|
93
102
|
* Configure the Users collections:
|
|
94
103
|
*/
|