@payloadcms/next 3.0.0-canary.518fabe → 3.0.0-canary.51be7be
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/cjs/withPayload.cjs +145 -0
- package/dist/cjs/withPayload.cjs.map +1 -0
- package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
- package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +28 -24
- package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
- package/dist/elements/DocumentHeader/index.scss +44 -42
- package/dist/elements/DocumentLocked/index.d.ts +12 -0
- package/dist/elements/DocumentLocked/index.d.ts.map +1 -0
- package/dist/elements/DocumentLocked/index.js +142 -0
- package/dist/elements/DocumentLocked/index.js.map +1 -0
- package/dist/elements/DocumentLocked/index.scss +39 -0
- package/dist/elements/DocumentTakeOver/index.d.ts +8 -0
- package/dist/elements/DocumentTakeOver/index.d.ts.map +1 -0
- package/dist/elements/DocumentTakeOver/index.js +98 -0
- package/dist/elements/DocumentTakeOver/index.js.map +1 -0
- package/dist/elements/DocumentTakeOver/index.scss +39 -0
- package/dist/elements/FormHeader/index.d.ts +9 -0
- package/dist/elements/FormHeader/index.d.ts.map +1 -0
- package/dist/elements/FormHeader/index.js +20 -0
- package/dist/elements/FormHeader/index.js.map +1 -0
- package/dist/elements/FormHeader/index.scss +8 -0
- package/dist/elements/LeaveWithoutSaving/index.scss +28 -26
- package/dist/elements/Nav/NavWrapper/index.scss +21 -14
- package/dist/elements/Nav/index.scss +127 -121
- package/dist/exports/utilities.d.ts +1 -0
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +1 -0
- package/dist/exports/utilities.js.map +1 -1
- package/dist/layouts/Root/index.d.ts.map +1 -1
- package/dist/layouts/Root/index.js +55 -23
- package/dist/layouts/Root/index.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +23 -11
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/routes/rest/auth/login.js +2 -2
- package/dist/routes/rest/auth/login.js.map +1 -1
- package/dist/routes/rest/auth/logout.d.ts.map +1 -1
- package/dist/routes/rest/auth/logout.js +3 -2
- package/dist/routes/rest/auth/logout.js.map +1 -1
- package/dist/routes/rest/auth/refresh.js +2 -2
- package/dist/routes/rest/auth/refresh.js.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.js +2 -2
- package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
- package/dist/routes/rest/auth/resetPassword.js +2 -2
- package/dist/routes/rest/auth/resetPassword.js.map +1 -1
- package/dist/routes/rest/collections/delete.d.ts.map +1 -1
- package/dist/routes/rest/collections/delete.js +2 -0
- package/dist/routes/rest/collections/delete.js.map +1 -1
- package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/deleteByID.js +2 -0
- package/dist/routes/rest/collections/deleteByID.js.map +1 -1
- package/dist/routes/rest/collections/find.d.ts.map +1 -1
- package/dist/routes/rest/collections/find.js +3 -0
- package/dist/routes/rest/collections/find.js.map +1 -1
- package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/findByID.js +2 -0
- package/dist/routes/rest/collections/findByID.js.map +1 -1
- package/dist/routes/rest/collections/update.d.ts.map +1 -1
- package/dist/routes/rest/collections/update.js +4 -0
- package/dist/routes/rest/collections/update.js.map +1 -1
- package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
- package/dist/routes/rest/collections/updateByID.js +4 -0
- package/dist/routes/rest/collections/updateByID.js.map +1 -1
- package/dist/routes/rest/globals/update.d.ts.map +1 -1
- package/dist/routes/rest/globals/update.js +2 -0
- package/dist/routes/rest/globals/update.js.map +1 -1
- package/dist/routes/rest/index.d.ts +12 -12
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +17 -15
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/routes/rest/routeError.d.ts +2 -7
- package/dist/routes/rest/routeError.d.ts.map +1 -1
- package/dist/routes/rest/routeError.js +33 -19
- package/dist/routes/rest/routeError.js.map +1 -1
- package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +13 -0
- package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -0
- package/dist/routes/rest/utilities/sanitizeJoinParams.js +17 -0
- package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -0
- package/dist/scss/app.scss +166 -162
- package/dist/scss/colors.scss +256 -254
- package/dist/scss/resets.scss +9 -7
- package/dist/scss/toastify.scss +42 -40
- package/dist/scss/toasts.scss +105 -103
- package/dist/scss/type.scss +80 -79
- package/dist/templates/Default/Wrapper/index.scss +38 -36
- package/dist/templates/Default/index.d.ts.map +1 -1
- package/dist/templates/Default/index.js +18 -6
- package/dist/templates/Default/index.js.map +1 -1
- package/dist/templates/Default/index.scss +62 -50
- package/dist/templates/Minimal/index.scss +22 -20
- package/dist/utilities/getNextRequestI18n.js +2 -2
- package/dist/utilities/getNextRequestI18n.js.map +1 -1
- package/dist/utilities/getRequestTheme.d.ts.map +1 -1
- package/dist/utilities/getRequestTheme.js +3 -0
- package/dist/utilities/getRequestTheme.js.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.d.ts +12 -11
- package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAdminPage.js +9 -21
- package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
- package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
- package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
- package/dist/utilities/initPage/handleAuthRedirect.js +23 -36
- package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
- package/dist/utilities/initPage/index.d.ts +1 -1
- package/dist/utilities/initPage/index.d.ts.map +1 -1
- package/dist/utilities/initPage/index.js +44 -42
- package/dist/utilities/initPage/index.js.map +1 -1
- package/dist/utilities/initPage/shared.d.ts +2 -2
- package/dist/utilities/initPage/shared.d.ts.map +1 -1
- package/dist/utilities/initPage/shared.js +18 -13
- package/dist/utilities/initPage/shared.js.map +1 -1
- package/dist/utilities/initReq.d.ts +11 -0
- package/dist/utilities/initReq.d.ts.map +1 -0
- package/dist/utilities/initReq.js +46 -0
- package/dist/utilities/initReq.js.map +1 -0
- package/dist/views/API/RenderJSON/index.scss +68 -66
- package/dist/views/API/index.scss +98 -96
- package/dist/views/Account/Settings/index.d.ts +2 -1
- package/dist/views/Account/Settings/index.d.ts.map +1 -1
- package/dist/views/Account/Settings/index.js +3 -2
- package/dist/views/Account/Settings/index.js.map +1 -1
- package/dist/views/Account/Settings/index.scss +37 -35
- package/dist/views/Account/index.d.ts.map +1 -1
- package/dist/views/Account/index.js +4 -2
- package/dist/views/Account/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +35 -16
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.scss +13 -11
- package/dist/views/Dashboard/Default/index.d.ts +8 -1
- package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
- package/dist/views/Dashboard/Default/index.js +14 -2
- package/dist/views/Dashboard/Default/index.js.map +1 -1
- package/dist/views/Dashboard/Default/index.scss +53 -46
- package/dist/views/Dashboard/index.d.ts.map +1 -1
- package/dist/views/Dashboard/index.js +16 -1
- package/dist/views/Dashboard/index.js.map +1 -1
- package/dist/views/Document/getDocumentData.d.ts +5 -2
- package/dist/views/Document/getDocumentData.d.ts.map +1 -1
- package/dist/views/Document/getDocumentData.js +13 -2
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
- package/dist/views/Document/getDocumentPermissions.js +4 -1
- package/dist/views/Document/getDocumentPermissions.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.scss +56 -54
- package/dist/views/Edit/Default/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/index.js +127 -14
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/Edit/Default/index.scss +15 -13
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +12 -11
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/ForgotPassword/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/index.js +8 -8
- package/dist/views/ForgotPassword/index.js.map +1 -1
- package/dist/views/List/Default/index.d.ts.map +1 -1
- package/dist/views/List/Default/index.js +62 -58
- package/dist/views/List/Default/index.js.map +1 -1
- package/dist/views/List/Default/index.scss +136 -134
- package/dist/views/List/index.d.ts.map +1 -1
- package/dist/views/List/index.js +1 -0
- package/dist/views/List/index.js.map +1 -1
- package/dist/views/LivePreview/IFrame/index.scss +8 -6
- package/dist/views/LivePreview/Preview/index.scss +32 -30
- package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
- package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
- package/dist/views/LivePreview/Toolbar/index.scss +33 -31
- package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
- package/dist/views/LivePreview/index.client.d.ts.map +1 -1
- package/dist/views/LivePreview/index.client.js +214 -200
- package/dist/views/LivePreview/index.client.js.map +1 -1
- package/dist/views/LivePreview/index.scss +48 -46
- package/dist/views/LivePreview/usePopupWindow.js +119 -74
- package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +3 -3
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.scss +8 -6
- package/dist/views/Login/index.scss +8 -6
- package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
- package/dist/views/Logout/LogoutClient.js +77 -55
- package/dist/views/Logout/LogoutClient.js.map +1 -1
- package/dist/views/Logout/index.scss +17 -15
- package/dist/views/NotFound/index.d.ts +5 -5
- package/dist/views/NotFound/index.d.ts.map +1 -1
- package/dist/views/NotFound/index.js +4 -2
- package/dist/views/NotFound/index.js.map +1 -1
- package/dist/views/NotFound/index.scss +38 -36
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
- package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
- package/dist/views/ResetPassword/{index.client.js → ResetPasswordForm/index.js} +16 -19
- package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
- package/dist/views/ResetPassword/index.d.ts.map +1 -1
- package/dist/views/ResetPassword/index.js +17 -10
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/ResetPassword/index.scss +6 -26
- package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
- package/dist/views/Root/getViewFromConfig.js +1 -7
- package/dist/views/Root/getViewFromConfig.js.map +1 -1
- package/dist/views/Root/index.d.ts +5 -5
- package/dist/views/Root/index.d.ts.map +1 -1
- package/dist/views/Root/index.js +9 -4
- package/dist/views/Root/index.js.map +1 -1
- package/dist/views/Root/meta.d.ts +5 -5
- package/dist/views/Root/meta.d.ts.map +1 -1
- package/dist/views/Root/meta.js +3 -2
- package/dist/views/Root/meta.js.map +1 -1
- package/dist/views/Unauthorized/index.d.ts.map +1 -1
- package/dist/views/Unauthorized/index.js +14 -7
- package/dist/views/Unauthorized/index.js.map +1 -1
- package/dist/views/Unauthorized/index.scss +4 -31
- package/dist/views/Verify/index.client.d.ts +7 -0
- package/dist/views/Verify/index.client.d.ts.map +1 -0
- package/dist/views/Verify/index.client.js +46 -0
- package/dist/views/Verify/index.client.js.map +1 -0
- package/dist/views/Verify/index.d.ts.map +1 -1
- package/dist/views/Verify/index.js +12 -11
- package/dist/views/Verify/index.js.map +1 -1
- package/dist/views/Verify/index.scss +13 -11
- package/dist/views/Version/Default/index.d.ts.map +1 -1
- package/dist/views/Version/Default/index.js +2 -0
- package/dist/views/Version/Default/index.js.map +1 -1
- package/dist/views/Version/Default/index.scss +52 -50
- package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
- package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
- package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
- package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
- package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
- package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
- package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +8 -14
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/Restore/index.scss +57 -55
- package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/index.js +24 -3
- package/dist/views/Version/SelectComparison/index.js.map +1 -1
- package/dist/views/Version/SelectComparison/index.scss +12 -10
- package/dist/views/Version/SelectComparison/types.d.ts +1 -0
- package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
- package/dist/views/Version/SelectComparison/types.js.map +1 -1
- package/dist/views/Version/SelectLocales/index.scss +6 -4
- package/dist/views/Version/index.d.ts.map +1 -1
- package/dist/views/Version/index.js +2 -0
- package/dist/views/Version/index.js.map +1 -1
- package/dist/views/Versions/buildColumns.d.ts.map +1 -1
- package/dist/views/Versions/buildColumns.js +63 -48
- package/dist/views/Versions/buildColumns.js.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
- package/dist/views/Versions/cells/AutosaveCell/index.js +48 -20
- package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
- package/dist/views/Versions/getLatestVersion.d.ts +1 -0
- package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
- package/dist/views/Versions/getLatestVersion.js +14 -3
- package/dist/views/Versions/getLatestVersion.js.map +1 -1
- package/dist/views/Versions/index.d.ts.map +1 -1
- package/dist/views/Versions/index.js +30 -7
- package/dist/views/Versions/index.js.map +1 -1
- package/dist/views/Versions/index.scss +78 -76
- package/dist/withPayload.d.ts.map +1 -1
- package/dist/withPayload.js +4 -4
- package/dist/withPayload.js.map +1 -1
- package/package.json +24 -16
- package/dist/cjs/withPayload.js +0 -111
- package/dist/cjs/withPayload.js.map +0 -1
- package/dist/views/ResetPassword/index.client.d.ts +0 -7
- package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
- package/dist/views/ResetPassword/index.client.js.map +0 -1
|
@@ -1,66 +1,78 @@
|
|
|
1
1
|
@import '../../scss/styles.scss';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.template-default {
|
|
5
|
+
background-color: var(--theme-bg);
|
|
6
|
+
color: var(--theme-text);
|
|
6
7
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
[dir='rtl'] &__nav-toggler-wrapper {
|
|
9
|
+
left: unset;
|
|
10
|
+
right: 0;
|
|
11
|
+
}
|
|
11
12
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}
|
|
13
|
+
&__nav-toggler-wrapper {
|
|
14
|
+
position: sticky;
|
|
15
|
+
z-index: var(--z-modal);
|
|
16
|
+
top: 0;
|
|
17
|
+
left: 0;
|
|
18
|
+
height: 0;
|
|
19
|
+
width: var(--gutter-h);
|
|
20
|
+
display: flex;
|
|
21
|
+
justify-content: center;
|
|
22
|
+
}
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
position: relative;
|
|
29
|
-
background-color: var(--theme-bg);
|
|
30
|
-
&:before {
|
|
31
|
-
content: '';
|
|
32
|
-
display: block;
|
|
33
|
-
position: absolute;
|
|
34
|
-
inset: 0;
|
|
35
|
-
background-color: inherit;
|
|
36
|
-
opacity: 0;
|
|
37
|
-
z-index: var(--z-status);
|
|
38
|
-
visibility: hidden;
|
|
39
|
-
transition: all var(--nav-trans-time) linear;
|
|
24
|
+
&__nav-toggler-container {
|
|
25
|
+
height: var(--app-header-height);
|
|
26
|
+
display: flex;
|
|
27
|
+
align-items: center;
|
|
40
28
|
}
|
|
41
|
-
}
|
|
42
29
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
left: unset;
|
|
47
|
-
}
|
|
30
|
+
&__nav-toggler {
|
|
31
|
+
display: flex;
|
|
32
|
+
align-items: center;
|
|
48
33
|
}
|
|
49
|
-
}
|
|
50
34
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
width:
|
|
54
|
-
|
|
35
|
+
&__wrap {
|
|
36
|
+
min-width: 0;
|
|
37
|
+
width: 100%;
|
|
38
|
+
flex-grow: 1;
|
|
39
|
+
position: relative;
|
|
40
|
+
background-color: var(--theme-bg);
|
|
41
|
+
&:before {
|
|
42
|
+
content: '';
|
|
43
|
+
display: block;
|
|
44
|
+
position: absolute;
|
|
45
|
+
inset: 0;
|
|
46
|
+
background-color: inherit;
|
|
47
|
+
opacity: 0;
|
|
48
|
+
z-index: var(--z-status);
|
|
49
|
+
visibility: hidden;
|
|
50
|
+
transition: all var(--nav-trans-time) linear;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
55
53
|
|
|
56
|
-
|
|
57
|
-
|
|
54
|
+
@include mid-break {
|
|
55
|
+
&__nav-toggler-wrapper {
|
|
56
|
+
.hamburger {
|
|
57
|
+
left: unset;
|
|
58
|
+
}
|
|
58
59
|
}
|
|
59
60
|
}
|
|
60
61
|
|
|
61
|
-
|
|
62
|
-
&
|
|
63
|
-
|
|
62
|
+
@include small-break {
|
|
63
|
+
&__nav-toggler-wrapper {
|
|
64
|
+
width: unset;
|
|
65
|
+
justify-content: unset;
|
|
66
|
+
|
|
67
|
+
.hamburger {
|
|
68
|
+
display: none;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.template-default {
|
|
73
|
+
&__wrap {
|
|
74
|
+
min-width: 100%;
|
|
75
|
+
}
|
|
64
76
|
}
|
|
65
77
|
}
|
|
66
78
|
}
|
|
@@ -1,28 +1,30 @@
|
|
|
1
1
|
@import '../../scss/styles';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
@layer payload-default {
|
|
4
|
+
.template-minimal {
|
|
5
|
+
display: flex;
|
|
6
|
+
width: 100%;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
align-items: center;
|
|
9
|
+
padding: base(3) $baseline;
|
|
10
|
+
margin-left: auto;
|
|
11
|
+
margin-right: auto;
|
|
12
|
+
min-height: 100%;
|
|
13
|
+
background-color: var(--theme-bg-color);
|
|
14
|
+
color: var(--theme-text);
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
16
|
+
&--width-normal {
|
|
17
|
+
.template-minimal__wrap {
|
|
18
|
+
max-width: base(24);
|
|
19
|
+
width: 100%;
|
|
20
|
+
}
|
|
19
21
|
}
|
|
20
|
-
}
|
|
21
22
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
&--width-wide {
|
|
24
|
+
.template-minimal__wrap {
|
|
25
|
+
max-width: base(48);
|
|
26
|
+
width: 100%;
|
|
27
|
+
}
|
|
26
28
|
}
|
|
27
29
|
}
|
|
28
30
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getNextRequestI18n.js","names":["initI18n","cookies","headers","getRequestLanguage","getNextRequestI18n","config","i18n","context","language"],"sources":["../../src/utilities/getNextRequestI18n.ts"],"sourcesContent":["import type { ClientTranslationsObject, I18nClient } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { cookies, headers } from 'next/headers.js'\n\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\n/**\n * In the context of Next.js, this function initializes the i18n object for the current request.\n *\n * It must be called on the server side, and within the lifecycle of a request since it relies on the request headers and cookies.\n */\nexport const getNextRequestI18n = async <\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n>({\n config,\n}: {\n config: SanitizedConfig\n}): Promise<\n [TAdditionalClientTranslationKeys] extends [never]\n ? I18nClient\n : TAdditionalTranslations extends object\n ? I18nClient<TAdditionalTranslations, TAdditionalClientTranslationKeys>\n : I18nClient<ClientTranslationsObject, TAdditionalClientTranslationKeys>\n> => {\n return (await initI18n({\n config: config.i18n,\n context: 'client',\n language: getRequestLanguage({ config, cookies: cookies(), headers: headers() }),\n })) as any\n}\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAO,EAAEC,OAAO,QAAQ;AAEjC,SAASC,kBAAkB,QAAQ;AAEnC;;;;;AAKA,OAAO,MAAMC,kBAAA,GAAqB,MAAAA,CAIhC;EACAC;AAAM,CAGP;EAOC,OAAQ,MAAML,QAAA,CAAS;IACrBK,MAAA,EAAQA,MAAA,CAAOC,IAAI;IACnBC,OAAA,EAAS;IACTC,QAAA,EAAUL,kBAAA,CAAmB;MAAEE,MAAA;MAAQJ,OAAA,
|
|
1
|
+
{"version":3,"file":"getNextRequestI18n.js","names":["initI18n","cookies","headers","getRequestLanguage","getNextRequestI18n","config","i18n","context","language"],"sources":["../../src/utilities/getNextRequestI18n.ts"],"sourcesContent":["import type { ClientTranslationsObject, I18nClient } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { cookies, headers } from 'next/headers.js'\n\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\n/**\n * In the context of Next.js, this function initializes the i18n object for the current request.\n *\n * It must be called on the server side, and within the lifecycle of a request since it relies on the request headers and cookies.\n */\nexport const getNextRequestI18n = async <\n // eslint-disable-next-line @typescript-eslint/no-empty-object-type\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n>({\n config,\n}: {\n config: SanitizedConfig\n}): Promise<\n [TAdditionalClientTranslationKeys] extends [never]\n ? I18nClient\n : TAdditionalTranslations extends object\n ? I18nClient<TAdditionalTranslations, TAdditionalClientTranslationKeys>\n : I18nClient<ClientTranslationsObject, TAdditionalClientTranslationKeys>\n> => {\n return (await initI18n({\n config: config.i18n,\n context: 'client',\n language: getRequestLanguage({ config, cookies: await cookies(), headers: await headers() }),\n })) as any\n}\n"],"mappings":"AAGA,SAASA,QAAQ,QAAQ;AACzB,SAASC,OAAO,EAAEC,OAAO,QAAQ;AAEjC,SAASC,kBAAkB,QAAQ;AAEnC;;;;;AAKA,OAAO,MAAMC,kBAAA,GAAqB,MAAAA,CAIhC;EACAC;AAAM,CAGP;EAOC,OAAQ,MAAML,QAAA,CAAS;IACrBK,MAAA,EAAQA,MAAA,CAAOC,IAAI;IACnBC,OAAA,EAAS;IACTC,QAAA,EAAUL,kBAAA,CAAmB;MAAEE,MAAA;MAAQJ,OAAA,EAAS,MAAMA,OAAA;MAAWC,OAAA,EAAS,MAAMA,OAAA;IAAU;EAC5F;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestTheme.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAA;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEzD,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB,CAAA;IACrD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;CAC5B,CAAA;AAID,eAAO,MAAM,eAAe,iCAAkC,sBAAsB,KAAG,
|
|
1
|
+
{"version":3,"file":"getRequestTheme.d.ts","sourceRoot":"","sources":["../../src/utilities/getRequestTheme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAA;AAC7G,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,EAAgB,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEzD,KAAK,sBAAsB,GAAG;IAC5B,MAAM,EAAE,eAAe,CAAA;IACvB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,sBAAsB,CAAA;IACrD,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;CAC5B,CAAA;AAID,eAAO,MAAM,eAAe,iCAAkC,sBAAsB,KAAG,KAsBtF,CAAA"}
|
|
@@ -5,6 +5,9 @@ export const getRequestTheme = ({
|
|
|
5
5
|
cookies,
|
|
6
6
|
headers
|
|
7
7
|
}) => {
|
|
8
|
+
if (config.admin.theme !== 'all' && acceptedThemes.includes(config.admin.theme)) {
|
|
9
|
+
return config.admin.theme;
|
|
10
|
+
}
|
|
8
11
|
const themeCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`);
|
|
9
12
|
const themeFromCookie = typeof themeCookie === 'string' ? themeCookie : themeCookie?.value;
|
|
10
13
|
if (themeFromCookie && acceptedThemes.includes(themeFromCookie)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getRequestTheme.js","names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","themeCookie","get","cookiePrefix","themeFromCookie","value","
|
|
1
|
+
{"version":3,"file":"getRequestTheme.js","names":["defaultTheme","acceptedThemes","getRequestTheme","config","cookies","headers","admin","theme","includes","themeCookie","get","cookiePrefix","themeFromCookie","value","themeFromHeader"],"sources":["../../src/utilities/getRequestTheme.ts"],"sourcesContent":["import type { ReadonlyRequestCookies } from 'next/dist/server/web/spec-extension/adapters/request-cookies.js'\nimport type { SanitizedConfig } from 'payload'\n\nimport { defaultTheme, type Theme } from '@payloadcms/ui'\n\ntype GetRequestLanguageArgs = {\n config: SanitizedConfig\n cookies: Map<string, string> | ReadonlyRequestCookies\n headers: Request['headers']\n}\n\nconst acceptedThemes: Theme[] = ['dark', 'light']\n\nexport const getRequestTheme = ({ config, cookies, headers }: GetRequestLanguageArgs): Theme => {\n if (config.admin.theme !== 'all' && acceptedThemes.includes(config.admin.theme)) {\n return config.admin.theme\n }\n\n const themeCookie = cookies.get(`${config.cookiePrefix || 'payload'}-theme`)\n\n const themeFromCookie: Theme = (\n typeof themeCookie === 'string' ? themeCookie : themeCookie?.value\n ) as Theme\n\n if (themeFromCookie && acceptedThemes.includes(themeFromCookie)) {\n return themeFromCookie\n }\n\n const themeFromHeader = headers.get('Sec-CH-Prefers-Color-Scheme') as Theme\n\n if (themeFromHeader && acceptedThemes.includes(themeFromHeader)) {\n return themeFromHeader\n }\n\n return defaultTheme\n}\n"],"mappings":"AAGA,SAASA,YAAY,QAAoB;AAQzC,MAAMC,cAAA,GAA0B,CAAC,QAAQ,QAAQ;AAEjD,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAAEC,MAAM;EAAEC,OAAO;EAAEC;AAAO,CAA0B;EAClF,IAAIF,MAAA,CAAOG,KAAK,CAACC,KAAK,KAAK,SAASN,cAAA,CAAeO,QAAQ,CAACL,MAAA,CAAOG,KAAK,CAACC,KAAK,GAAG;IAC/E,OAAOJ,MAAA,CAAOG,KAAK,CAACC,KAAK;EAC3B;EAEA,MAAME,WAAA,GAAcL,OAAA,CAAQM,GAAG,CAAC,GAAGP,MAAA,CAAOQ,YAAY,IAAI,iBAAiB;EAE3E,MAAMC,eAAA,GACJ,OAAOH,WAAA,KAAgB,WAAWA,WAAA,GAAcA,WAAA,EAAaI,KAAA;EAG/D,IAAID,eAAA,IAAmBX,cAAA,CAAeO,QAAQ,CAACI,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,MAAME,eAAA,GAAkBT,OAAA,CAAQK,GAAG,CAAC;EAEpC,IAAII,eAAA,IAAmBb,cAAA,CAAeO,QAAQ,CAACM,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,OAAOd,YAAA;AACT","ignoreList":[]}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
|
|
1
|
+
import type { Payload, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload';
|
|
2
|
+
type Args = {
|
|
3
3
|
adminRoute: string;
|
|
4
4
|
config: SanitizedConfig;
|
|
5
|
-
|
|
5
|
+
defaultIDType: Payload['db']['defaultIDType'];
|
|
6
6
|
route: string;
|
|
7
|
-
}) => {
|
|
8
|
-
collectionConfig: SanitizedCollectionConfig;
|
|
9
|
-
docID: string;
|
|
10
|
-
globalConfig: SanitizedGlobalConfig;
|
|
11
|
-
} | {
|
|
12
|
-
collectionConfig?: undefined;
|
|
13
|
-
docID?: undefined;
|
|
14
|
-
globalConfig?: undefined;
|
|
15
7
|
};
|
|
8
|
+
type RouteInfo = {
|
|
9
|
+
collectionConfig?: SanitizedCollectionConfig;
|
|
10
|
+
collectionSlug?: string;
|
|
11
|
+
docID?: number | string;
|
|
12
|
+
globalConfig?: SanitizedGlobalConfig;
|
|
13
|
+
globalSlug?: string;
|
|
14
|
+
};
|
|
15
|
+
export declare function getRouteInfo({ adminRoute, config, defaultIDType, route }: Args): RouteInfo;
|
|
16
|
+
export {};
|
|
16
17
|
//# sourceMappingURL=handleAdminPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAdminPage.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,
|
|
1
|
+
{"version":3,"file":"handleAdminPage.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAIhB,KAAK,IAAI,GAAG;IACV,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,SAAS,GAAG;IACf,gBAAgB,CAAC,EAAE,yBAAyB,CAAA;IAC5C,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAA;IACpC,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,wBAAgB,YAAY,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,IAAI,GAAG,SAAS,CAoC1F"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export const handleAdminPage = ({
|
|
1
|
+
import { getRouteWithoutAdmin, isAdminRoute } from './shared.js';
|
|
2
|
+
export function getRouteInfo({
|
|
4
3
|
adminRoute,
|
|
5
4
|
config,
|
|
6
|
-
|
|
5
|
+
defaultIDType,
|
|
7
6
|
route
|
|
8
|
-
})
|
|
7
|
+
}) {
|
|
9
8
|
if (isAdminRoute({
|
|
10
9
|
adminRoute,
|
|
11
10
|
config,
|
|
@@ -19,34 +18,23 @@ export const handleAdminPage = ({
|
|
|
19
18
|
const [entityType, entitySlug, createOrID] = routeSegments;
|
|
20
19
|
const collectionSlug = entityType === 'collections' ? entitySlug : undefined;
|
|
21
20
|
const globalSlug = entityType === 'globals' ? entitySlug : undefined;
|
|
22
|
-
const docID = collectionSlug && createOrID !== 'create' ? createOrID : undefined;
|
|
21
|
+
const docID = collectionSlug && createOrID !== 'create' ? defaultIDType === 'number' ? Number(createOrID) : createOrID : undefined;
|
|
23
22
|
let collectionConfig;
|
|
24
23
|
let globalConfig;
|
|
25
24
|
if (collectionSlug) {
|
|
26
25
|
collectionConfig = config.collections.find(collection => collection.slug === collectionSlug);
|
|
27
|
-
if (!collectionConfig) {
|
|
28
|
-
notFound();
|
|
29
|
-
}
|
|
30
26
|
}
|
|
31
27
|
if (globalSlug) {
|
|
32
28
|
globalConfig = config.globals.find(global => global.slug === globalSlug);
|
|
33
|
-
if (!globalConfig) {
|
|
34
|
-
notFound();
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
if (!permissions.canAccessAdmin && !isAdminAuthRoute({
|
|
38
|
-
adminRoute,
|
|
39
|
-
config,
|
|
40
|
-
route
|
|
41
|
-
})) {
|
|
42
|
-
notFound();
|
|
43
29
|
}
|
|
44
30
|
return {
|
|
45
31
|
collectionConfig,
|
|
32
|
+
collectionSlug,
|
|
46
33
|
docID,
|
|
47
|
-
globalConfig
|
|
34
|
+
globalConfig,
|
|
35
|
+
globalSlug
|
|
48
36
|
};
|
|
49
37
|
}
|
|
50
38
|
return {};
|
|
51
|
-
}
|
|
39
|
+
}
|
|
52
40
|
//# sourceMappingURL=handleAdminPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAdminPage.js","names":["
|
|
1
|
+
{"version":3,"file":"handleAdminPage.js","names":["getRouteWithoutAdmin","isAdminRoute","getRouteInfo","adminRoute","config","defaultIDType","route","routeWithoutAdmin","routeSegments","split","filter","Boolean","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","docID","Number","collectionConfig","globalConfig","collections","find","collection","slug","globals","global"],"sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"sourcesContent":["import type {\n Payload,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { getRouteWithoutAdmin, isAdminRoute } from './shared.js'\n\ntype Args = {\n adminRoute: string\n config: SanitizedConfig\n defaultIDType: Payload['db']['defaultIDType']\n route: string\n}\n\ntype RouteInfo = {\n collectionConfig?: SanitizedCollectionConfig\n collectionSlug?: string\n docID?: number | string\n globalConfig?: SanitizedGlobalConfig\n globalSlug?: string\n}\n\nexport function getRouteInfo({ adminRoute, config, defaultIDType, route }: Args): RouteInfo {\n if (isAdminRoute({ adminRoute, config, route })) {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n const routeSegments = routeWithoutAdmin.split('/').filter(Boolean)\n const [entityType, entitySlug, createOrID] = routeSegments\n const collectionSlug = entityType === 'collections' ? entitySlug : undefined\n const globalSlug = entityType === 'globals' ? entitySlug : undefined\n\n const docID =\n collectionSlug && createOrID !== 'create'\n ? defaultIDType === 'number'\n ? Number(createOrID)\n : createOrID\n : undefined\n\n let collectionConfig: SanitizedCollectionConfig | undefined\n let globalConfig: SanitizedGlobalConfig | undefined\n\n if (collectionSlug) {\n collectionConfig = config.collections.find((collection) => collection.slug === collectionSlug)\n }\n\n if (globalSlug) {\n globalConfig = config.globals.find((global) => global.slug === globalSlug)\n }\n\n return {\n collectionConfig,\n collectionSlug,\n docID,\n globalConfig,\n globalSlug,\n }\n }\n\n return {}\n}\n"],"mappings":"AAOA,SAASA,oBAAoB,EAAEC,YAAY,QAAQ;AAiBnD,OAAO,SAASC,aAAa;EAAEC,UAAU;EAAEC,MAAM;EAAEC,aAAa;EAAEC;AAAK,CAAQ;EAC7E,IAAIL,YAAA,CAAa;IAAEE,UAAA;IAAYC,MAAA;IAAQE;EAAM,IAAI;IAC/C,MAAMC,iBAAA,GAAoBP,oBAAA,CAAqB;MAAEG,UAAA;MAAYG;IAAM;IACnE,MAAME,aAAA,GAAgBD,iBAAA,CAAkBE,KAAK,CAAC,KAAKC,MAAM,CAACC,OAAA;IAC1D,MAAM,CAACC,UAAA,EAAYC,UAAA,EAAYC,UAAA,CAAW,GAAGN,aAAA;IAC7C,MAAMO,cAAA,GAAiBH,UAAA,KAAe,gBAAgBC,UAAA,GAAaG,SAAA;IACnE,MAAMC,UAAA,GAAaL,UAAA,KAAe,YAAYC,UAAA,GAAaG,SAAA;IAE3D,MAAME,KAAA,GACJH,cAAA,IAAkBD,UAAA,KAAe,WAC7BT,aAAA,KAAkB,WAChBc,MAAA,CAAOL,UAAA,IACPA,UAAA,GACFE,SAAA;IAEN,IAAII,gBAAA;IACJ,IAAIC,YAAA;IAEJ,IAAIN,cAAA,EAAgB;MAClBK,gBAAA,GAAmBhB,MAAA,CAAOkB,WAAW,CAACC,IAAI,CAAEC,UAAA,IAAeA,UAAA,CAAWC,IAAI,KAAKV,cAAA;IACjF;IAEA,IAAIE,UAAA,EAAY;MACdI,YAAA,GAAejB,MAAA,CAAOsB,OAAO,CAACH,IAAI,CAAEI,MAAA,IAAWA,MAAA,CAAOF,IAAI,KAAKR,UAAA;IACjE;IAEA,OAAO;MACLG,gBAAA;MACAL,cAAA;MACAG,KAAA;MACAG,YAAA;MACAJ;IACF;EACF;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
import type { User } from 'payload';
|
|
2
|
+
type Args = {
|
|
2
3
|
config: any;
|
|
3
|
-
redirectUnauthenticatedUser: boolean | string;
|
|
4
4
|
route: string;
|
|
5
5
|
searchParams: {
|
|
6
6
|
[key: string]: string | string[];
|
|
7
7
|
};
|
|
8
|
-
|
|
8
|
+
user?: User;
|
|
9
|
+
};
|
|
10
|
+
export declare const handleAuthRedirect: ({ config, route, searchParams, user }: Args) => string;
|
|
11
|
+
export {};
|
|
9
12
|
//# sourceMappingURL=handleAuthRedirect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAKnC,KAAK,IAAI,GAAG;IACV,MAAM,MAAA;IACN,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;IAClD,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,CAAA;AACD,eAAO,MAAM,kBAAkB,0CAA2C,IAAI,KAAG,MAkChF,CAAA"}
|
|
@@ -1,54 +1,41 @@
|
|
|
1
1
|
import { formatAdminURL } from '@payloadcms/ui/shared';
|
|
2
|
-
import { redirect } from 'next/navigation.js';
|
|
3
2
|
import * as qs from 'qs-esm';
|
|
4
|
-
import { isAdminAuthRoute, isAdminRoute } from './shared.js';
|
|
5
3
|
export const handleAuthRedirect = ({
|
|
6
4
|
config,
|
|
7
|
-
redirectUnauthenticatedUser,
|
|
8
5
|
route,
|
|
9
|
-
searchParams
|
|
6
|
+
searchParams,
|
|
7
|
+
user
|
|
10
8
|
}) => {
|
|
11
9
|
const {
|
|
12
10
|
admin: {
|
|
13
11
|
routes: {
|
|
14
|
-
login: loginRouteFromConfig
|
|
12
|
+
login: loginRouteFromConfig,
|
|
13
|
+
unauthorized: unauthorizedRoute
|
|
15
14
|
}
|
|
16
15
|
},
|
|
17
16
|
routes: {
|
|
18
17
|
admin: adminRoute
|
|
19
18
|
}
|
|
20
19
|
} = config;
|
|
21
|
-
if (
|
|
22
|
-
|
|
23
|
-
config,
|
|
24
|
-
route
|
|
25
|
-
})) {
|
|
26
|
-
if (searchParams && 'redirect' in searchParams) {
|
|
27
|
-
delete searchParams.redirect;
|
|
28
|
-
}
|
|
29
|
-
const redirectRoute = encodeURIComponent(route + Object.keys(searchParams ?? {}).length ? `${qs.stringify(searchParams, {
|
|
30
|
-
addQueryPrefix: true
|
|
31
|
-
})}` : undefined);
|
|
32
|
-
const adminLoginRoute = formatAdminURL({
|
|
33
|
-
adminRoute,
|
|
34
|
-
path: loginRouteFromConfig
|
|
35
|
-
});
|
|
36
|
-
const customLoginRoute = typeof redirectUnauthenticatedUser === 'string' ? redirectUnauthenticatedUser : undefined;
|
|
37
|
-
const loginRoute = isAdminRoute({
|
|
38
|
-
adminRoute,
|
|
39
|
-
config,
|
|
40
|
-
route
|
|
41
|
-
}) ? adminLoginRoute : customLoginRoute || loginRouteFromConfig;
|
|
42
|
-
const parsedLoginRouteSearchParams = qs.parse(loginRoute.split('?')[1] ?? '');
|
|
43
|
-
const searchParamsWithRedirect = `${qs.stringify({
|
|
44
|
-
...parsedLoginRouteSearchParams,
|
|
45
|
-
...(redirectRoute ? {
|
|
46
|
-
redirect: redirectRoute
|
|
47
|
-
} : {})
|
|
48
|
-
}, {
|
|
49
|
-
addQueryPrefix: true
|
|
50
|
-
})}`;
|
|
51
|
-
redirect(`${loginRoute.split('?')[0]}${searchParamsWithRedirect}`);
|
|
20
|
+
if (searchParams && 'redirect' in searchParams) {
|
|
21
|
+
delete searchParams.redirect;
|
|
52
22
|
}
|
|
23
|
+
const redirectRoute = encodeURIComponent(route + Object.keys(searchParams ?? {}).length ? `${qs.stringify(searchParams, {
|
|
24
|
+
addQueryPrefix: true
|
|
25
|
+
})}` : undefined);
|
|
26
|
+
const redirectTo = formatAdminURL({
|
|
27
|
+
adminRoute,
|
|
28
|
+
path: user ? unauthorizedRoute : loginRouteFromConfig
|
|
29
|
+
});
|
|
30
|
+
const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '');
|
|
31
|
+
const searchParamsWithRedirect = `${qs.stringify({
|
|
32
|
+
...parsedLoginRouteSearchParams,
|
|
33
|
+
...(redirectRoute ? {
|
|
34
|
+
redirect: redirectRoute
|
|
35
|
+
} : {})
|
|
36
|
+
}, {
|
|
37
|
+
addQueryPrefix: true
|
|
38
|
+
})}`;
|
|
39
|
+
return `${redirectTo.split('?')[0]}${searchParamsWithRedirect}`;
|
|
53
40
|
};
|
|
54
41
|
//# sourceMappingURL=handleAuthRedirect.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","
|
|
1
|
+
{"version":3,"file":"handleAuthRedirect.js","names":["formatAdminURL","qs","handleAuthRedirect","config","route","searchParams","user","admin","routes","login","loginRouteFromConfig","unauthorized","unauthorizedRoute","adminRoute","redirect","redirectRoute","encodeURIComponent","Object","keys","length","stringify","addQueryPrefix","undefined","redirectTo","path","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"sourcesContent":["import type { User } from 'payload'\n\nimport { formatAdminURL } from '@payloadcms/ui/shared'\nimport * as qs from 'qs-esm'\n\ntype Args = {\n config\n route: string\n searchParams: { [key: string]: string | string[] }\n user?: User\n}\nexport const handleAuthRedirect = ({ config, route, searchParams, user }: Args): string => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig, unauthorized: unauthorizedRoute },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (searchParams && 'redirect' in searchParams) {\n delete searchParams.redirect\n }\n\n const redirectRoute = encodeURIComponent(\n route + Object.keys(searchParams ?? {}).length\n ? `${qs.stringify(searchParams, { addQueryPrefix: true })}`\n : undefined,\n )\n\n const redirectTo = formatAdminURL({\n adminRoute,\n path: user ? unauthorizedRoute : loginRouteFromConfig,\n })\n\n const parsedLoginRouteSearchParams = qs.parse(redirectTo.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n return `${redirectTo.split('?')[0]}${searchParamsWithRedirect}`\n}\n"],"mappings":"AAEA,SAASA,cAAc,QAAQ;AAC/B,YAAYC,EAAA,MAAQ;AAQpB,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EAAEC,MAAM;EAAEC,KAAK;EAAEC,YAAY;EAAEC;AAAI,CAAQ;EAC5E,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC,oBAAoB;QAAEC,YAAA,EAAcC;MAAiB;IAAE,CACzE;IACDJ,MAAA,EAAQ;MAAED,KAAA,EAAOM;IAAU;EAAE,CAC9B,GAAGV,MAAA;EAEJ,IAAIE,YAAA,IAAgB,cAAcA,YAAA,EAAc;IAC9C,OAAOA,YAAA,CAAaS,QAAQ;EAC9B;EAEA,MAAMC,aAAA,GAAgBC,kBAAA,CACpBZ,KAAA,GAAQa,MAAA,CAAOC,IAAI,CAACb,YAAA,IAAgB,CAAC,GAAGc,MAAM,GAC1C,GAAGlB,EAAA,CAAGmB,SAAS,CAACf,YAAA,EAAc;IAAEgB,cAAA,EAAgB;EAAK,IAAI,GACzDC,SAAA;EAGN,MAAMC,UAAA,GAAavB,cAAA,CAAe;IAChCa,UAAA;IACAW,IAAA,EAAMlB,IAAA,GAAOM,iBAAA,GAAoBF;EACnC;EAEA,MAAMe,4BAAA,GAA+BxB,EAAA,CAAGyB,KAAK,CAACH,UAAA,CAAWI,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;EAE1E,MAAMC,wBAAA,GAA2B,GAAG3B,EAAA,CAAGmB,SAAS,CAC9C;IACE,GAAGK,4BAA4B;IAC/B,IAAIV,aAAA,GAAgB;MAAED,QAAA,EAAUC;IAAc,IAAI,CAAC,CAAC;EACtD,GACA;IAAEM,cAAA,EAAgB;EAAK,IACtB;EAEH,OAAO,GAAGE,UAAA,CAAWI,KAAK,CAAC,IAAI,CAAC,EAAE,GAAGC,wBAAA,EAA0B;AACjE","ignoreList":[]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { InitPageResult } from 'payload';
|
|
2
2
|
import type { Args } from './types.js';
|
|
3
|
-
export declare const initPage: ({ config: configPromise, importMap,
|
|
3
|
+
export declare const initPage: ({ config: configPromise, importMap, route, searchParams, }: Args) => Promise<InitPageResult>;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,SAAS,CAAA;AAQtF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAQtC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CAoJ/B,CAAA"}
|
|
@@ -1,56 +1,45 @@
|
|
|
1
|
-
import { initI18n } from '@payloadcms/translations';
|
|
2
1
|
import { findLocaleFromCode } from '@payloadcms/ui/shared';
|
|
3
2
|
import { headers as getHeaders } from 'next/headers.js';
|
|
3
|
+
import { notFound } from 'next/navigation.js';
|
|
4
4
|
import { createLocalReq, isEntityHidden, parseCookies } from 'payload';
|
|
5
5
|
import * as qs from 'qs-esm';
|
|
6
6
|
import { getPayloadHMR } from '../getPayloadHMR.js';
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
7
|
+
import { initReq } from '../initReq.js';
|
|
8
|
+
import { getRouteInfo } from './handleAdminPage.js';
|
|
9
9
|
import { handleAuthRedirect } from './handleAuthRedirect.js';
|
|
10
|
+
import { isPublicAdminRoute } from './shared.js';
|
|
10
11
|
export const initPage = async ({
|
|
11
12
|
config: configPromise,
|
|
12
13
|
importMap,
|
|
13
|
-
redirectUnauthenticatedUser = false,
|
|
14
14
|
route,
|
|
15
15
|
searchParams
|
|
16
16
|
}) => {
|
|
17
|
-
const headers = getHeaders();
|
|
17
|
+
const headers = await getHeaders();
|
|
18
18
|
const payload = await getPayloadHMR({
|
|
19
19
|
config: configPromise,
|
|
20
20
|
importMap
|
|
21
21
|
});
|
|
22
|
+
const queryString = `${qs.stringify(searchParams ?? {}, {
|
|
23
|
+
addQueryPrefix: true
|
|
24
|
+
})}`;
|
|
22
25
|
const {
|
|
23
26
|
collections,
|
|
24
27
|
globals,
|
|
25
|
-
i18n: i18nConfig,
|
|
26
28
|
localization,
|
|
27
29
|
routes: {
|
|
28
30
|
admin: adminRoute
|
|
29
31
|
}
|
|
30
32
|
} = payload.config;
|
|
31
|
-
const queryString = `${qs.stringify(searchParams ?? {}, {
|
|
32
|
-
addQueryPrefix: true
|
|
33
|
-
})}`;
|
|
34
33
|
const cookies = parseCookies(headers);
|
|
35
|
-
const
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
});
|
|
45
|
-
const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
|
|
46
|
-
if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
|
|
47
|
-
acc.push({
|
|
48
|
-
label: languageConfig.translations.general.thisLanguage,
|
|
49
|
-
value: language
|
|
50
|
-
});
|
|
51
|
-
}
|
|
52
|
-
return acc;
|
|
53
|
-
}, []);
|
|
34
|
+
const {
|
|
35
|
+
i18n,
|
|
36
|
+
permissions,
|
|
37
|
+
user
|
|
38
|
+
} = await initReq(payload.config);
|
|
39
|
+
// Ideally, we should not need to recreate the req, because
|
|
40
|
+
// we can get it from the above initReq.
|
|
41
|
+
// We just need to -overwrite- the url and query of the req
|
|
42
|
+
// we get above. Clone the req? We'll look into that eventually.
|
|
54
43
|
const req = await createLocalReq({
|
|
55
44
|
fallbackLocale: null,
|
|
56
45
|
req: {
|
|
@@ -64,13 +53,15 @@ export const initPage = async ({
|
|
|
64
53
|
url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`
|
|
65
54
|
}
|
|
66
55
|
}, payload);
|
|
67
|
-
const {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
56
|
+
const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce((acc, [language, languageConfig]) => {
|
|
57
|
+
if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {
|
|
58
|
+
acc.push({
|
|
59
|
+
label: languageConfig.translations.general.thisLanguage,
|
|
60
|
+
value: language
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
return acc;
|
|
64
|
+
}, []);
|
|
74
65
|
req.user = user;
|
|
75
66
|
const localeParam = searchParams?.locale;
|
|
76
67
|
let locale;
|
|
@@ -128,24 +119,34 @@ export const initPage = async ({
|
|
|
128
119
|
user
|
|
129
120
|
}) ? slug : null).filter(Boolean)
|
|
130
121
|
};
|
|
131
|
-
|
|
132
|
-
|
|
122
|
+
let redirectTo = null;
|
|
123
|
+
if (!permissions.canAccessAdmin && !isPublicAdminRoute({
|
|
124
|
+
adminRoute,
|
|
125
|
+
config: payload.config,
|
|
126
|
+
route
|
|
127
|
+
})) {
|
|
128
|
+
redirectTo = handleAuthRedirect({
|
|
133
129
|
config: payload.config,
|
|
134
|
-
redirectUnauthenticatedUser,
|
|
135
130
|
route,
|
|
136
|
-
searchParams
|
|
131
|
+
searchParams,
|
|
132
|
+
user
|
|
137
133
|
});
|
|
138
134
|
}
|
|
139
135
|
const {
|
|
140
136
|
collectionConfig,
|
|
137
|
+
collectionSlug,
|
|
141
138
|
docID,
|
|
142
|
-
globalConfig
|
|
143
|
-
|
|
139
|
+
globalConfig,
|
|
140
|
+
globalSlug
|
|
141
|
+
} = getRouteInfo({
|
|
144
142
|
adminRoute,
|
|
145
143
|
config: payload.config,
|
|
146
|
-
|
|
144
|
+
defaultIDType: payload.db.defaultIDType,
|
|
147
145
|
route
|
|
148
146
|
});
|
|
147
|
+
if (collectionSlug && !collectionConfig || globalSlug && !globalConfig) {
|
|
148
|
+
return notFound();
|
|
149
|
+
}
|
|
149
150
|
return {
|
|
150
151
|
collectionConfig,
|
|
151
152
|
cookies,
|
|
@@ -154,6 +155,7 @@ export const initPage = async ({
|
|
|
154
155
|
languageOptions,
|
|
155
156
|
locale,
|
|
156
157
|
permissions,
|
|
158
|
+
redirectTo,
|
|
157
159
|
req,
|
|
158
160
|
translations: i18n.translations,
|
|
159
161
|
visibleEntities
|