@payloadcms/next 3.0.0-canary.a5aaf21 → 3.0.0-canary.a6e7305

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.
Files changed (301) hide show
  1. package/dist/cjs/withPayload.cjs +156 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -0
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +1 -0
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
  7. package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
  8. package/dist/elements/DocumentHeader/index.scss +44 -42
  9. package/dist/elements/DocumentLocked/index.d.ts +1 -1
  10. package/dist/elements/DocumentLocked/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentLocked/index.js +24 -14
  12. package/dist/elements/DocumentLocked/index.js.map +1 -1
  13. package/dist/elements/DocumentLocked/index.scss +29 -26
  14. package/dist/elements/DocumentTakeOver/index.scss +28 -26
  15. package/dist/elements/FormHeader/index.d.ts +9 -0
  16. package/dist/elements/FormHeader/index.d.ts.map +1 -0
  17. package/dist/elements/FormHeader/index.js +20 -0
  18. package/dist/elements/FormHeader/index.js.map +1 -0
  19. package/dist/elements/FormHeader/index.scss +8 -0
  20. package/dist/elements/LeaveWithoutSaving/index.scss +28 -26
  21. package/dist/elements/Nav/NavWrapper/index.scss +20 -18
  22. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  23. package/dist/elements/Nav/index.client.js +1 -0
  24. package/dist/elements/Nav/index.client.js.map +1 -1
  25. package/dist/elements/Nav/index.scss +127 -125
  26. package/dist/exports/routes.d.ts +1 -1
  27. package/dist/exports/routes.d.ts.map +1 -1
  28. package/dist/exports/routes.js +1 -1
  29. package/dist/exports/routes.js.map +1 -1
  30. package/dist/exports/utilities.d.ts +1 -0
  31. package/dist/exports/utilities.d.ts.map +1 -1
  32. package/dist/exports/utilities.js +1 -0
  33. package/dist/exports/utilities.js.map +1 -1
  34. package/dist/layouts/Root/index.js +6 -6
  35. package/dist/layouts/Root/index.js.map +1 -1
  36. package/dist/prod/styles.css +1 -1
  37. package/dist/routes/graphql/handler.d.ts.map +1 -1
  38. package/dist/routes/graphql/handler.js +23 -11
  39. package/dist/routes/graphql/handler.js.map +1 -1
  40. package/dist/routes/rest/auth/login.js +2 -2
  41. package/dist/routes/rest/auth/login.js.map +1 -1
  42. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  43. package/dist/routes/rest/auth/logout.js +3 -2
  44. package/dist/routes/rest/auth/logout.js.map +1 -1
  45. package/dist/routes/rest/auth/refresh.js +2 -2
  46. package/dist/routes/rest/auth/refresh.js.map +1 -1
  47. package/dist/routes/rest/auth/registerFirstUser.js +2 -2
  48. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  49. package/dist/routes/rest/auth/resetPassword.js +2 -2
  50. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  51. package/dist/routes/rest/collections/create.d.ts.map +1 -1
  52. package/dist/routes/rest/collections/create.js +5 -1
  53. package/dist/routes/rest/collections/create.js.map +1 -1
  54. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  55. package/dist/routes/rest/collections/delete.js +8 -0
  56. package/dist/routes/rest/collections/delete.js.map +1 -1
  57. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  58. package/dist/routes/rest/collections/deleteByID.js +7 -1
  59. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  60. package/dist/routes/rest/collections/duplicate.d.ts.map +1 -1
  61. package/dist/routes/rest/collections/duplicate.js +5 -1
  62. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  63. package/dist/routes/rest/collections/find.d.ts.map +1 -1
  64. package/dist/routes/rest/collections/find.js +7 -1
  65. package/dist/routes/rest/collections/find.js.map +1 -1
  66. package/dist/routes/rest/collections/findByID.d.ts.map +1 -1
  67. package/dist/routes/rest/collections/findByID.js +5 -1
  68. package/dist/routes/rest/collections/findByID.js.map +1 -1
  69. package/dist/routes/rest/collections/findVersionByID.d.ts.map +1 -1
  70. package/dist/routes/rest/collections/findVersionByID.js +5 -1
  71. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  72. package/dist/routes/rest/collections/findVersions.d.ts.map +1 -1
  73. package/dist/routes/rest/collections/findVersions.js +7 -1
  74. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  75. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  76. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  77. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  78. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  79. package/dist/routes/rest/collections/update.js +10 -0
  80. package/dist/routes/rest/collections/update.js.map +1 -1
  81. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  82. package/dist/routes/rest/collections/updateByID.js +7 -1
  83. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  84. package/dist/routes/rest/globals/findOne.d.ts.map +1 -1
  85. package/dist/routes/rest/globals/findOne.js +5 -1
  86. package/dist/routes/rest/globals/findOne.js.map +1 -1
  87. package/dist/routes/rest/globals/findVersionByID.d.ts.map +1 -1
  88. package/dist/routes/rest/globals/findVersionByID.js +5 -1
  89. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  90. package/dist/routes/rest/globals/findVersions.d.ts.map +1 -1
  91. package/dist/routes/rest/globals/findVersions.js +7 -1
  92. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  93. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  94. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  95. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  96. package/dist/routes/rest/globals/update.d.ts.map +1 -1
  97. package/dist/routes/rest/globals/update.js +5 -1
  98. package/dist/routes/rest/globals/update.js.map +1 -1
  99. package/dist/routes/rest/index.d.ts +17 -12
  100. package/dist/routes/rest/index.d.ts.map +1 -1
  101. package/dist/routes/rest/index.js +90 -15
  102. package/dist/routes/rest/index.js.map +1 -1
  103. package/dist/routes/rest/og/index.js +2 -4
  104. package/dist/routes/rest/og/index.js.map +1 -1
  105. package/dist/routes/rest/routeError.d.ts +2 -7
  106. package/dist/routes/rest/routeError.d.ts.map +1 -1
  107. package/dist/routes/rest/routeError.js +33 -19
  108. package/dist/routes/rest/routeError.js.map +1 -1
  109. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts +1 -1
  110. package/dist/routes/rest/utilities/sanitizeJoinParams.d.ts.map +1 -1
  111. package/dist/routes/rest/utilities/sanitizeJoinParams.js +9 -5
  112. package/dist/routes/rest/utilities/sanitizeJoinParams.js.map +1 -1
  113. package/dist/routes/rest/utilities/sanitizePopulate.d.ts +3 -0
  114. package/dist/routes/rest/utilities/sanitizePopulate.d.ts.map +1 -0
  115. package/dist/routes/rest/utilities/sanitizePopulate.js +11 -0
  116. package/dist/routes/rest/utilities/sanitizePopulate.js.map +1 -0
  117. package/dist/routes/rest/utilities/sanitizeSelect.d.ts +6 -0
  118. package/dist/routes/rest/utilities/sanitizeSelect.d.ts.map +1 -0
  119. package/dist/routes/rest/utilities/sanitizeSelect.js +17 -0
  120. package/dist/routes/rest/utilities/sanitizeSelect.js.map +1 -0
  121. package/dist/scss/app.scss +166 -162
  122. package/dist/scss/colors.scss +256 -254
  123. package/dist/scss/resets.scss +9 -7
  124. package/dist/scss/toastify.scss +42 -40
  125. package/dist/scss/toasts.scss +105 -103
  126. package/dist/scss/type.scss +80 -79
  127. package/dist/templates/Default/Wrapper/index.scss +38 -36
  128. package/dist/templates/Default/index.scss +60 -58
  129. package/dist/templates/Minimal/index.scss +22 -20
  130. package/dist/utilities/getNextRequestI18n.js +2 -2
  131. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  132. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  133. package/dist/utilities/getRequestTheme.js +3 -0
  134. package/dist/utilities/getRequestTheme.js.map +1 -1
  135. package/dist/utilities/initPage/handleAdminPage.d.ts +12 -11
  136. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  137. package/dist/utilities/initPage/handleAdminPage.js +9 -21
  138. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  139. package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
  140. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  141. package/dist/utilities/initPage/handleAuthRedirect.js +23 -36
  142. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  143. package/dist/utilities/initPage/index.d.ts +1 -1
  144. package/dist/utilities/initPage/index.d.ts.map +1 -1
  145. package/dist/utilities/initPage/index.js +27 -10
  146. package/dist/utilities/initPage/index.js.map +1 -1
  147. package/dist/utilities/initPage/isCustomAdminView.d.ts +10 -0
  148. package/dist/utilities/initPage/isCustomAdminView.d.ts.map +1 -0
  149. package/dist/utilities/initPage/isCustomAdminView.js +31 -0
  150. package/dist/utilities/initPage/isCustomAdminView.js.map +1 -0
  151. package/dist/utilities/initPage/shared.d.ts +2 -2
  152. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  153. package/dist/utilities/initPage/shared.js +19 -13
  154. package/dist/utilities/initPage/shared.js.map +1 -1
  155. package/dist/utilities/initReq.js +1 -1
  156. package/dist/utilities/initReq.js.map +1 -1
  157. package/dist/views/API/RenderJSON/index.scss +68 -66
  158. package/dist/views/API/index.scss +98 -96
  159. package/dist/views/Account/Settings/index.d.ts +2 -1
  160. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  161. package/dist/views/Account/Settings/index.js +3 -2
  162. package/dist/views/Account/Settings/index.js.map +1 -1
  163. package/dist/views/Account/Settings/index.scss +37 -35
  164. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  165. package/dist/views/Account/ToggleTheme/index.js +1 -0
  166. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  167. package/dist/views/Account/index.d.ts.map +1 -1
  168. package/dist/views/Account/index.js +4 -2
  169. package/dist/views/Account/index.js.map +1 -1
  170. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  171. package/dist/views/CreateFirstUser/index.client.js +31 -15
  172. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  173. package/dist/views/CreateFirstUser/index.scss +13 -11
  174. package/dist/views/Dashboard/Default/index.d.ts +3 -1
  175. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  176. package/dist/views/Dashboard/Default/index.js +12 -3
  177. package/dist/views/Dashboard/Default/index.js.map +1 -1
  178. package/dist/views/Dashboard/Default/index.scss +51 -49
  179. package/dist/views/Dashboard/index.d.ts.map +1 -1
  180. package/dist/views/Dashboard/index.js +31 -13
  181. package/dist/views/Dashboard/index.js.map +1 -1
  182. package/dist/views/Document/getDocumentData.js +4 -2
  183. package/dist/views/Document/getDocumentData.js.map +1 -1
  184. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  185. package/dist/views/Document/getDocumentPermissions.js +6 -5
  186. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  187. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  188. package/dist/views/Document/getViewsFromConfig.js +6 -0
  189. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  190. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  191. package/dist/views/Edit/Default/Auth/APIKey.js +2 -8
  192. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  193. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  194. package/dist/views/Edit/Default/Auth/index.js +37 -26
  195. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  196. package/dist/views/Edit/Default/Auth/index.scss +56 -54
  197. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  198. package/dist/views/Edit/Default/index.js +45 -73
  199. package/dist/views/Edit/Default/index.js.map +1 -1
  200. package/dist/views/Edit/Default/index.scss +15 -13
  201. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  202. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +9 -11
  203. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  204. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  205. package/dist/views/ForgotPassword/index.js +10 -8
  206. package/dist/views/ForgotPassword/index.js.map +1 -1
  207. package/dist/views/List/Default/index.scss +136 -134
  208. package/dist/views/List/index.d.ts.map +1 -1
  209. package/dist/views/List/index.js +1 -1
  210. package/dist/views/List/index.js.map +1 -1
  211. package/dist/views/LivePreview/IFrame/index.scss +8 -6
  212. package/dist/views/LivePreview/Preview/index.scss +32 -30
  213. package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
  214. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
  215. package/dist/views/LivePreview/Toolbar/index.scss +33 -31
  216. package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
  217. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  218. package/dist/views/LivePreview/index.client.js +221 -203
  219. package/dist/views/LivePreview/index.client.js.map +1 -1
  220. package/dist/views/LivePreview/index.scss +48 -46
  221. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  222. package/dist/views/Login/LoginForm/index.js +2 -1
  223. package/dist/views/Login/LoginForm/index.js.map +1 -1
  224. package/dist/views/Login/LoginForm/index.scss +8 -6
  225. package/dist/views/Login/index.scss +8 -6
  226. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  227. package/dist/views/Logout/LogoutClient.js +77 -55
  228. package/dist/views/Logout/LogoutClient.js.map +1 -1
  229. package/dist/views/Logout/index.scss +17 -15
  230. package/dist/views/NotFound/index.d.ts +5 -5
  231. package/dist/views/NotFound/index.d.ts.map +1 -1
  232. package/dist/views/NotFound/index.js +7 -2
  233. package/dist/views/NotFound/index.js.map +1 -1
  234. package/dist/views/NotFound/index.scss +38 -36
  235. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
  236. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
  237. package/dist/views/ResetPassword/{index.client.js → ResetPasswordForm/index.js} +16 -19
  238. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  239. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  240. package/dist/views/ResetPassword/index.js +19 -10
  241. package/dist/views/ResetPassword/index.js.map +1 -1
  242. package/dist/views/ResetPassword/index.scss +6 -26
  243. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  244. package/dist/views/Root/getViewFromConfig.js +1 -7
  245. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  246. package/dist/views/Root/index.d.ts +5 -5
  247. package/dist/views/Root/index.d.ts.map +1 -1
  248. package/dist/views/Root/index.js +23 -10
  249. package/dist/views/Root/index.js.map +1 -1
  250. package/dist/views/Root/meta.d.ts +5 -5
  251. package/dist/views/Root/meta.d.ts.map +1 -1
  252. package/dist/views/Root/meta.js +3 -2
  253. package/dist/views/Root/meta.js.map +1 -1
  254. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  255. package/dist/views/Unauthorized/index.js +14 -7
  256. package/dist/views/Unauthorized/index.js.map +1 -1
  257. package/dist/views/Unauthorized/index.scss +4 -31
  258. package/dist/views/Verify/index.client.d.ts +7 -0
  259. package/dist/views/Verify/index.client.d.ts.map +1 -0
  260. package/dist/views/Verify/index.client.js +46 -0
  261. package/dist/views/Verify/index.client.js.map +1 -0
  262. package/dist/views/Verify/index.d.ts.map +1 -1
  263. package/dist/views/Verify/index.js +12 -11
  264. package/dist/views/Verify/index.js.map +1 -1
  265. package/dist/views/Verify/index.scss +13 -11
  266. package/dist/views/Version/Default/index.scss +52 -50
  267. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
  268. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
  269. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
  270. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
  271. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
  272. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
  273. package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
  274. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  275. package/dist/views/Version/Restore/index.js +8 -14
  276. package/dist/views/Version/Restore/index.js.map +1 -1
  277. package/dist/views/Version/Restore/index.scss +57 -55
  278. package/dist/views/Version/SelectComparison/index.scss +12 -10
  279. package/dist/views/Version/SelectLocales/index.scss +6 -4
  280. package/dist/views/Version/index.d.ts.map +1 -1
  281. package/dist/views/Version/index.js +2 -0
  282. package/dist/views/Version/index.js.map +1 -1
  283. package/dist/views/Versions/cells/CreatedAt/index.js +1 -0
  284. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  285. package/dist/views/Versions/getLatestVersion.d.ts +1 -0
  286. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -1
  287. package/dist/views/Versions/getLatestVersion.js +15 -4
  288. package/dist/views/Versions/getLatestVersion.js.map +1 -1
  289. package/dist/views/Versions/index.d.ts.map +1 -1
  290. package/dist/views/Versions/index.js +4 -4
  291. package/dist/views/Versions/index.js.map +1 -1
  292. package/dist/views/Versions/index.scss +78 -76
  293. package/dist/withPayload.d.ts.map +1 -1
  294. package/dist/withPayload.js +9 -1
  295. package/dist/withPayload.js.map +1 -1
  296. package/package.json +10 -10
  297. package/dist/cjs/withPayload.js +0 -111
  298. package/dist/cjs/withPayload.js.map +0 -1
  299. package/dist/views/ResetPassword/index.client.d.ts +0 -7
  300. package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
  301. package/dist/views/ResetPassword/index.client.js.map +0 -1
@@ -1,28 +1,30 @@
1
1
  @import '../../scss/styles';
2
2
 
3
- .template-minimal {
4
- display: flex;
5
- width: 100%;
6
- justify-content: center;
7
- align-items: center;
8
- padding: base(3) $baseline;
9
- margin-left: auto;
10
- margin-right: auto;
11
- min-height: 100%;
12
- background-color: var(--theme-bg-color);
13
- color: var(--theme-text);
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
- &--width-normal {
16
- .template-minimal__wrap {
17
- max-width: base(24);
18
- width: 100%;
16
+ &--width-normal {
17
+ .template-minimal__wrap {
18
+ max-width: base(24);
19
+ width: 100%;
20
+ }
19
21
  }
20
- }
21
22
 
22
- &--width-wide {
23
- .template-minimal__wrap {
24
- max-width: base(48);
25
- width: 100%;
23
+ &--width-wide {
24
+ .template-minimal__wrap {
25
+ max-width: base(48);
26
+ width: 100%;
27
+ }
26
28
  }
27
29
  }
28
30
  }
@@ -14,8 +14,8 @@ export const getNextRequestI18n = async ({
14
14
  context: 'client',
15
15
  language: getRequestLanguage({
16
16
  config,
17
- cookies: cookies(),
18
- headers: headers()
17
+ cookies: await cookies(),
18
+ headers: await headers()
19
19
  })
20
20
  });
21
21
  };
@@ -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,EAASA,OAAA;MAAWC,OAAA,EAASA,OAAA;IAAU;EAChF;AACF","ignoreList":[]}
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,KAkBtF,CAAA"}
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","includes","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 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,MAAMC,WAAA,GAAcF,OAAA,CAAQG,GAAG,CAAC,GAAGJ,MAAA,CAAOK,YAAY,IAAI,iBAAiB;EAE3E,MAAMC,eAAA,GACJ,OAAOH,WAAA,KAAgB,WAAWA,WAAA,GAAcA,WAAA,EAAaI,KAAA;EAG/D,IAAID,eAAA,IAAmBR,cAAA,CAAeU,QAAQ,CAACF,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,MAAMG,eAAA,GAAkBP,OAAA,CAAQE,GAAG,CAAC;EAEpC,IAAIK,eAAA,IAAmBX,cAAA,CAAeU,QAAQ,CAACC,eAAA,GAAkB;IAC/D,OAAOA,eAAA;EACT;EAEA,OAAOZ,YAAA;AACT","ignoreList":[]}
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 { Permissions, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload';
2
- export declare const handleAdminPage: ({ adminRoute, config, permissions, route, }: {
1
+ import type { Payload, SanitizedCollectionConfig, SanitizedConfig, SanitizedGlobalConfig } from 'payload';
2
+ type Args = {
3
3
  adminRoute: string;
4
4
  config: SanitizedConfig;
5
- permissions: Permissions;
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,WAAW,EACX,yBAAyB,EACzB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAA;AAMhB,eAAO,MAAM,eAAe,gDAKzB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,WAAW,EAAE,WAAW,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;CACd;;;;;;;;CAwCA,CAAA"}
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 { notFound } from 'next/navigation.js';
2
- import { getRouteWithoutAdmin, isAdminAuthRoute, isAdminRoute } from './shared.js';
3
- export const handleAdminPage = ({
1
+ import { getRouteWithoutAdmin, isAdminRoute } from './shared.js';
2
+ export function getRouteInfo({
4
3
  adminRoute,
5
4
  config,
6
- permissions,
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":["notFound","getRouteWithoutAdmin","isAdminAuthRoute","isAdminRoute","handleAdminPage","adminRoute","config","permissions","route","routeWithoutAdmin","routeSegments","split","filter","Boolean","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","docID","collectionConfig","globalConfig","collections","find","collection","slug","globals","global","canAccessAdmin"],"sources":["../../../src/utilities/initPage/handleAdminPage.ts"],"sourcesContent":["import type {\n Permissions,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n} from 'payload'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { getRouteWithoutAdmin, isAdminAuthRoute, isAdminRoute } from './shared.js'\n\nexport const handleAdminPage = ({\n adminRoute,\n config,\n permissions,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n permissions: Permissions\n route: string\n}) => {\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 const docID = collectionSlug && createOrID !== 'create' ? createOrID : 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 if (!collectionConfig) {\n notFound()\n }\n }\n\n if (globalSlug) {\n globalConfig = config.globals.find((global) => global.slug === globalSlug)\n\n if (!globalConfig) {\n notFound()\n }\n }\n\n if (!permissions.canAccessAdmin && !isAdminAuthRoute({ adminRoute, config, route })) {\n notFound()\n }\n\n return {\n collectionConfig,\n docID,\n globalConfig,\n }\n }\n\n return {}\n}\n"],"mappings":"AAOA,SAASA,QAAQ,QAAQ;AAEzB,SAASC,oBAAoB,EAAEC,gBAAgB,EAAEC,YAAY,QAAQ;AAErE,OAAO,MAAMC,eAAA,GAAkBA,CAAC;EAC9BC,UAAU;EACVC,MAAM;EACNC,WAAW;EACXC;AAAK,CAMN;EACC,IAAIL,YAAA,CAAa;IAAEE,UAAA;IAAYC,MAAA;IAAQE;EAAM,IAAI;IAC/C,MAAMC,iBAAA,GAAoBR,oBAAA,CAAqB;MAAEI,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;IAC3D,MAAME,KAAA,GAAQH,cAAA,IAAkBD,UAAA,KAAe,WAAWA,UAAA,GAAaE,SAAA;IAEvE,IAAIG,gBAAA;IACJ,IAAIC,YAAA;IAEJ,IAAIL,cAAA,EAAgB;MAClBI,gBAAA,GAAmBf,MAAA,CAAOiB,WAAW,CAACC,IAAI,CAAEC,UAAA,IAAeA,UAAA,CAAWC,IAAI,KAAKT,cAAA;MAE/E,IAAI,CAACI,gBAAA,EAAkB;QACrBrB,QAAA;MACF;IACF;IAEA,IAAImB,UAAA,EAAY;MACdG,YAAA,GAAehB,MAAA,CAAOqB,OAAO,CAACH,IAAI,CAAEI,MAAA,IAAWA,MAAA,CAAOF,IAAI,KAAKP,UAAA;MAE/D,IAAI,CAACG,YAAA,EAAc;QACjBtB,QAAA;MACF;IACF;IAEA,IAAI,CAACO,WAAA,CAAYsB,cAAc,IAAI,CAAC3B,gBAAA,CAAiB;MAAEG,UAAA;MAAYC,MAAA;MAAQE;IAAM,IAAI;MACnFR,QAAA;IACF;IAEA,OAAO;MACLqB,gBAAA;MACAD,KAAA;MACAE;IACF;EACF;EAEA,OAAO,CAAC;AACV","ignoreList":[]}
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
- export declare const handleAuthRedirect: ({ config, redirectUnauthenticatedUser, route, searchParams, }: {
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
- }) => void;
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":"AAMA,eAAO,MAAM,kBAAkB,kEAK5B;IACD,MAAM,MAAA;IACN,2BAA2B,EAAE,OAAO,GAAG,MAAM,CAAA;IAC7C,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAA;CACnD,SAwCA,CAAA"}
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 (!isAdminAuthRoute({
22
- adminRoute,
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","redirect","qs","isAdminAuthRoute","isAdminRoute","handleAuthRedirect","config","redirectUnauthenticatedUser","route","searchParams","admin","routes","login","loginRouteFromConfig","adminRoute","redirectRoute","encodeURIComponent","Object","keys","length","stringify","addQueryPrefix","undefined","adminLoginRoute","path","customLoginRoute","loginRoute","parsedLoginRouteSearchParams","parse","split","searchParamsWithRedirect"],"sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"sourcesContent":["import { formatAdminURL } from '@payloadcms/ui/shared'\nimport { redirect } from 'next/navigation.js'\nimport * as qs from 'qs-esm'\n\nimport { isAdminAuthRoute, isAdminRoute } from './shared.js'\n\nexport const handleAuthRedirect = ({\n config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n}: {\n config\n redirectUnauthenticatedUser: boolean | string\n route: string\n searchParams: { [key: string]: string | string[] }\n}) => {\n const {\n admin: {\n routes: { login: loginRouteFromConfig },\n },\n routes: { admin: adminRoute },\n } = config\n\n if (!isAdminAuthRoute({ adminRoute, config, route })) {\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 adminLoginRoute = formatAdminURL({ adminRoute, path: loginRouteFromConfig })\n\n const customLoginRoute =\n typeof redirectUnauthenticatedUser === 'string' ? redirectUnauthenticatedUser : undefined\n\n const loginRoute = isAdminRoute({ adminRoute, config, route })\n ? adminLoginRoute\n : customLoginRoute || loginRouteFromConfig\n\n const parsedLoginRouteSearchParams = qs.parse(loginRoute.split('?')[1] ?? '')\n\n const searchParamsWithRedirect = `${qs.stringify(\n {\n ...parsedLoginRouteSearchParams,\n ...(redirectRoute ? { redirect: redirectRoute } : {}),\n },\n { addQueryPrefix: true },\n )}`\n\n redirect(`${loginRoute.split('?')[0]}${searchParamsWithRedirect}`)\n }\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ;AAC/B,SAASC,QAAQ,QAAQ;AACzB,YAAYC,EAAA,MAAQ;AAEpB,SAASC,gBAAgB,EAAEC,YAAY,QAAQ;AAE/C,OAAO,MAAMC,kBAAA,GAAqBA,CAAC;EACjCC,MAAM;EACNC,2BAA2B;EAC3BC,KAAK;EACLC;AAAY,CAMb;EACC,MAAM;IACJC,KAAA,EAAO;MACLC,MAAA,EAAQ;QAAEC,KAAA,EAAOC;MAAoB;IAAE,CACxC;IACDF,MAAA,EAAQ;MAAED,KAAA,EAAOI;IAAU;EAAE,CAC9B,GAAGR,MAAA;EAEJ,IAAI,CAACH,gBAAA,CAAiB;IAAEW,UAAA;IAAYR,MAAA;IAAQE;EAAM,IAAI;IACpD,IAAIC,YAAA,IAAgB,cAAcA,YAAA,EAAc;MAC9C,OAAOA,YAAA,CAAaR,QAAQ;IAC9B;IAEA,MAAMc,aAAA,GAAgBC,kBAAA,CACpBR,KAAA,GAAQS,MAAA,CAAOC,IAAI,CAACT,YAAA,IAAgB,CAAC,GAAGU,MAAM,GAC1C,GAAGjB,EAAA,CAAGkB,SAAS,CAACX,YAAA,EAAc;MAAEY,cAAA,EAAgB;IAAK,IAAI,GACzDC,SAAA;IAGN,MAAMC,eAAA,GAAkBvB,cAAA,CAAe;MAAEc,UAAA;MAAYU,IAAA,EAAMX;IAAqB;IAEhF,MAAMY,gBAAA,GACJ,OAAOlB,2BAAA,KAAgC,WAAWA,2BAAA,GAA8Be,SAAA;IAElF,MAAMI,UAAA,GAAatB,YAAA,CAAa;MAAEU,UAAA;MAAYR,MAAA;MAAQE;IAAM,KACxDe,eAAA,GACAE,gBAAA,IAAoBZ,oBAAA;IAExB,MAAMc,4BAAA,GAA+BzB,EAAA,CAAG0B,KAAK,CAACF,UAAA,CAAWG,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI;IAE1E,MAAMC,wBAAA,GAA2B,GAAG5B,EAAA,CAAGkB,SAAS,CAC9C;MACE,GAAGO,4BAA4B;MAC/B,IAAIZ,aAAA,GAAgB;QAAEd,QAAA,EAAUc;MAAc,IAAI,CAAC,CAAC;IACtD,GACA;MAAEM,cAAA,EAAgB;IAAK,IACtB;IAEHpB,QAAA,CAAS,GAAGyB,UAAA,CAAWG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAGC,wBAAA,EAA0B;EACnE;AACF","ignoreList":[]}
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, redirectUnauthenticatedUser, route, searchParams, }: Args) => Promise<InitPageResult>;
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":"AAAA,OAAO,KAAK,EAAE,cAAc,EAA2C,MAAM,SAAS,CAAA;AAOtF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAOtC,eAAO,MAAM,QAAQ,4FAMlB,IAAI,KAAG,OAAO,CAAC,cAAc,CA0I/B,CAAA"}
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;AAStC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CAqJ/B,CAAA"}
@@ -1,19 +1,21 @@
1
1
  import { findLocaleFromCode } from '@payloadcms/ui/shared';
2
2
  import { headers as getHeaders } from 'next/headers.js';
3
+ import { notFound } from 'next/navigation.js';
3
4
  import { createLocalReq, isEntityHidden, parseCookies } from 'payload';
4
5
  import * as qs from 'qs-esm';
5
6
  import { getPayloadHMR } from '../getPayloadHMR.js';
6
7
  import { initReq } from '../initReq.js';
7
- import { handleAdminPage } from './handleAdminPage.js';
8
+ import { getRouteInfo } from './handleAdminPage.js';
8
9
  import { handleAuthRedirect } from './handleAuthRedirect.js';
10
+ import { isCustomAdminView } from './isCustomAdminView.js';
11
+ import { isPublicAdminRoute } from './shared.js';
9
12
  export const initPage = async ({
10
13
  config: configPromise,
11
14
  importMap,
12
- redirectUnauthenticatedUser = false,
13
15
  route,
14
16
  searchParams
15
17
  }) => {
16
- const headers = getHeaders();
18
+ const headers = await getHeaders();
17
19
  const payload = await getPayloadHMR({
18
20
  config: configPromise,
19
21
  importMap
@@ -118,24 +120,38 @@ export const initPage = async ({
118
120
  user
119
121
  }) ? slug : null).filter(Boolean)
120
122
  };
121
- if (redirectUnauthenticatedUser && !user) {
122
- handleAuthRedirect({
123
+ let redirectTo = null;
124
+ if (!permissions.canAccessAdmin && !isPublicAdminRoute({
125
+ adminRoute,
126
+ config: payload.config,
127
+ route
128
+ }) && !isCustomAdminView({
129
+ adminRoute,
130
+ config: payload.config,
131
+ route
132
+ })) {
133
+ redirectTo = handleAuthRedirect({
123
134
  config: payload.config,
124
- redirectUnauthenticatedUser,
125
135
  route,
126
- searchParams
136
+ searchParams,
137
+ user
127
138
  });
128
139
  }
129
140
  const {
130
141
  collectionConfig,
142
+ collectionSlug,
131
143
  docID,
132
- globalConfig
133
- } = handleAdminPage({
144
+ globalConfig,
145
+ globalSlug
146
+ } = getRouteInfo({
134
147
  adminRoute,
135
148
  config: payload.config,
136
- permissions,
149
+ defaultIDType: payload.db.defaultIDType,
137
150
  route
138
151
  });
152
+ if (collectionSlug && !collectionConfig || globalSlug && !globalConfig) {
153
+ return notFound();
154
+ }
139
155
  return {
140
156
  collectionConfig,
141
157
  cookies,
@@ -144,6 +160,7 @@ export const initPage = async ({
144
160
  languageOptions,
145
161
  locale,
146
162
  permissions,
163
+ redirectTo,
147
164
  req,
148
165
  translations: i18n.translations,
149
166
  visibleEntities
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["findLocaleFromCode","headers","getHeaders","createLocalReq","isEntityHidden","parseCookies","qs","getPayloadHMR","initReq","handleAdminPage","handleAuthRedirect","initPage","config","configPromise","importMap","redirectUnauthenticatedUser","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","localization","routes","admin","adminRoute","cookies","i18n","permissions","user","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","localeParam","locale","defaultLocaleCode","defaultLocale","localeCode","find","collection","limit","where","and","equals","id","key","then","res","docs","error","code","visibleEntities","map","slug","hidden","filter","Boolean","collectionConfig","docID","globalConfig"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, Locale, PayloadRequest, VisibleEntities } from 'payload'\n\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createLocalReq, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { initReq } from '../initReq.js'\nimport { handleAdminPage } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n redirectUnauthenticatedUser = false,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = getHeaders()\n const payload = await getPayloadHMR({ config: configPromise, importMap })\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n collections,\n globals,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { i18n, permissions, user } = await initReq(payload.config)\n\n // Ideally, we should not need to recreate the req, because\n // we can get it from the above initReq.\n\n // We just need to -overwrite- the url and query of the req\n // we get above. Clone the req? We'll look into that eventually.\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n req.user = user\n\n const localeParam = searchParams?.locale as string\n let locale: Locale\n\n if (localization) {\n const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en'\n let localeCode: string = localeParam\n\n if (!localeCode) {\n try {\n localeCode = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: 'locale',\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as string)\n } catch (error) {} // eslint-disable-line no-empty\n }\n\n locale = findLocaleFromCode(localization, localeCode)\n\n if (!locale) {\n locale = findLocaleFromCode(localization, defaultLocaleCode)\n }\n req.locale = locale.code\n }\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n if (redirectUnauthenticatedUser && !user) {\n handleAuthRedirect({\n config: payload.config,\n redirectUnauthenticatedUser,\n route,\n searchParams,\n })\n }\n\n const { collectionConfig, docID, globalConfig } = handleAdminPage({\n adminRoute,\n config: payload.config,\n permissions,\n route,\n })\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["findLocaleFromCode","headers","getHeaders","notFound","createLocalReq","isEntityHidden","parseCookies","qs","getPayloadHMR","initReq","getRouteInfo","handleAuthRedirect","isCustomAdminView","isPublicAdminRoute","initPage","config","configPromise","importMap","route","searchParams","payload","queryString","stringify","addQueryPrefix","collections","globals","localization","routes","admin","adminRoute","cookies","i18n","permissions","user","req","fallbackLocale","host","get","query","parse","depth","ignoreQueryPrefix","url","serverURL","languageOptions","Object","entries","supportedLanguages","reduce","acc","language","languageConfig","keys","includes","push","label","translations","general","thisLanguage","value","localeParam","locale","defaultLocaleCode","defaultLocale","localeCode","find","collection","limit","where","and","equals","id","key","then","res","docs","error","code","visibleEntities","map","slug","hidden","filter","Boolean","redirectTo","canAccessAdmin","collectionConfig","collectionSlug","docID","globalConfig","globalSlug","defaultIDType","db"],"sources":["../../../src/utilities/initPage/index.ts"],"sourcesContent":["import type { InitPageResult, Locale, PayloadRequest, VisibleEntities } from 'payload'\n\nimport { findLocaleFromCode } from '@payloadcms/ui/shared'\nimport { headers as getHeaders } from 'next/headers.js'\nimport { notFound } from 'next/navigation.js'\nimport { createLocalReq, isEntityHidden, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\n\nimport type { Args } from './types.js'\n\nimport { getPayloadHMR } from '../getPayloadHMR.js'\nimport { initReq } from '../initReq.js'\nimport { getRouteInfo } from './handleAdminPage.js'\nimport { handleAuthRedirect } from './handleAuthRedirect.js'\nimport { isCustomAdminView } from './isCustomAdminView.js'\nimport { isPublicAdminRoute } from './shared.js'\n\nexport const initPage = async ({\n config: configPromise,\n importMap,\n route,\n searchParams,\n}: Args): Promise<InitPageResult> => {\n const headers = await getHeaders()\n const payload = await getPayloadHMR({ config: configPromise, importMap })\n const queryString = `${qs.stringify(searchParams ?? {}, { addQueryPrefix: true })}`\n\n const {\n collections,\n globals,\n localization,\n routes: { admin: adminRoute },\n } = payload.config\n\n const cookies = parseCookies(headers)\n\n const { i18n, permissions, user } = await initReq(payload.config)\n\n // Ideally, we should not need to recreate the req, because\n // we can get it from the above initReq.\n\n // We just need to -overwrite- the url and query of the req\n // we get above. Clone the req? We'll look into that eventually.\n const req = await createLocalReq(\n {\n fallbackLocale: null,\n req: {\n headers,\n host: headers.get('host'),\n i18n,\n query: qs.parse(queryString, {\n depth: 10,\n ignoreQueryPrefix: true,\n }),\n url: `${payload.config.serverURL}${route}${searchParams ? queryString : ''}`,\n } as PayloadRequest,\n },\n payload,\n )\n\n const languageOptions = Object.entries(payload.config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(payload.config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n req.user = user\n\n const localeParam = searchParams?.locale as string\n let locale: Locale\n\n if (localization) {\n const defaultLocaleCode = localization.defaultLocale ? localization.defaultLocale : 'en'\n let localeCode: string = localeParam\n\n if (!localeCode) {\n try {\n localeCode = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n user,\n where: {\n and: [\n {\n 'user.relationTo': {\n equals: payload.config.admin.user,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n {\n key: {\n equals: 'locale',\n },\n },\n ],\n },\n })\n ?.then((res) => res.docs?.[0]?.value as string)\n } catch (error) {} // eslint-disable-line no-empty\n }\n\n locale = findLocaleFromCode(localization, localeCode)\n\n if (!locale) {\n locale = findLocaleFromCode(localization, defaultLocaleCode)\n }\n req.locale = locale.code\n }\n\n const visibleEntities: VisibleEntities = {\n collections: collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n let redirectTo = null\n\n if (\n !permissions.canAccessAdmin &&\n !isPublicAdminRoute({ adminRoute, config: payload.config, route }) &&\n !isCustomAdminView({ adminRoute, config: payload.config, route })\n ) {\n redirectTo = handleAuthRedirect({\n config: payload.config,\n route,\n searchParams,\n user,\n })\n }\n\n const { collectionConfig, collectionSlug, docID, globalConfig, globalSlug } = getRouteInfo({\n adminRoute,\n config: payload.config,\n defaultIDType: payload.db.defaultIDType,\n route,\n })\n\n if ((collectionSlug && !collectionConfig) || (globalSlug && !globalConfig)) {\n return notFound()\n }\n\n return {\n collectionConfig,\n cookies,\n docID,\n globalConfig,\n languageOptions,\n locale,\n permissions,\n redirectTo,\n req,\n translations: i18n.translations,\n visibleEntities,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import type { SanitizedConfig } from 'payload';
2
+ /**
3
+ * Returns an array of views marked with 'public: true' in the config
4
+ */
5
+ export declare const isCustomAdminView: ({ adminRoute, config, route, }: {
6
+ adminRoute: string;
7
+ config: SanitizedConfig;
8
+ route: string;
9
+ }) => boolean;
10
+ //# sourceMappingURL=isCustomAdminView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isCustomAdminView.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/isCustomAdminView.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmC,eAAe,EAAE,MAAM,SAAS,CAAA;AAI/E;;GAEG;AACH,eAAO,MAAM,iBAAiB,mCAI3B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAmBH,CAAA"}
@@ -0,0 +1,31 @@
1
+ import { getRouteWithoutAdmin } from './shared.js';
2
+ /**
3
+ * Returns an array of views marked with 'public: true' in the config
4
+ */
5
+ export const isCustomAdminView = ({
6
+ adminRoute,
7
+ config,
8
+ route
9
+ }) => {
10
+ if (config.admin?.components?.views) {
11
+ const isPublicAdminRoute = Object.entries(config.admin.components.views).some(([_, view]) => {
12
+ const routeWithoutAdmin = getRouteWithoutAdmin({
13
+ adminRoute,
14
+ route
15
+ });
16
+ if (view.exact) {
17
+ if (routeWithoutAdmin === view.path) {
18
+ return true;
19
+ }
20
+ } else {
21
+ if (routeWithoutAdmin.startsWith(view.path)) {
22
+ return true;
23
+ }
24
+ }
25
+ return false;
26
+ });
27
+ return isPublicAdminRoute;
28
+ }
29
+ return false;
30
+ };
31
+ //# sourceMappingURL=isCustomAdminView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isCustomAdminView.js","names":["getRouteWithoutAdmin","isCustomAdminView","adminRoute","config","route","admin","components","views","isPublicAdminRoute","Object","entries","some","_","view","routeWithoutAdmin","exact","path","startsWith"],"sources":["../../../src/utilities/initPage/isCustomAdminView.ts"],"sourcesContent":["import type { AdminViewConfig, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { getRouteWithoutAdmin } from './shared.js'\n\n/**\n * Returns an array of views marked with 'public: true' in the config\n */\nexport const isCustomAdminView = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n if (config.admin?.components?.views) {\n const isPublicAdminRoute = Object.entries(config.admin.components.views).some(([_, view]) => {\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n\n if (view.exact) {\n if (routeWithoutAdmin === view.path) {\n return true\n }\n } else {\n if (routeWithoutAdmin.startsWith(view.path)) {\n return true\n }\n }\n return false\n })\n return isPublicAdminRoute\n }\n return false\n}\n"],"mappings":"AAEA,SAASA,oBAAoB,QAAQ;AAErC;;;AAGA,OAAO,MAAMC,iBAAA,GAAoBA,CAAC;EAChCC,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,IAAID,MAAA,CAAOE,KAAK,EAAEC,UAAA,EAAYC,KAAA,EAAO;IACnC,MAAMC,kBAAA,GAAqBC,MAAA,CAAOC,OAAO,CAACP,MAAA,CAAOE,KAAK,CAACC,UAAU,CAACC,KAAK,EAAEI,IAAI,CAAC,CAAC,CAACC,CAAA,EAAGC,IAAA,CAAK;MACtF,MAAMC,iBAAA,GAAoBd,oBAAA,CAAqB;QAAEE,UAAA;QAAYE;MAAM;MAEnE,IAAIS,IAAA,CAAKE,KAAK,EAAE;QACd,IAAID,iBAAA,KAAsBD,IAAA,CAAKG,IAAI,EAAE;UACnC,OAAO;QACT;MACF,OAAO;QACL,IAAIF,iBAAA,CAAkBG,UAAU,CAACJ,IAAA,CAAKG,IAAI,GAAG;UAC3C,OAAO;QACT;MACF;MACA,OAAO;IACT;IACA,OAAOR,kBAAA;EACT;EACA,OAAO;AACT","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import type { SanitizedConfig } from 'payload';
2
- export declare const isAdminRoute: ({ adminRoute, config, route, }: {
2
+ export declare const isAdminRoute: ({ adminRoute, route, }: {
3
3
  adminRoute: string;
4
4
  config: SanitizedConfig;
5
5
  route: string;
6
6
  }) => boolean;
7
- export declare const isAdminAuthRoute: ({ adminRoute, config, route, }: {
7
+ export declare const isPublicAdminRoute: ({ adminRoute, config, route, }: {
8
8
  adminRoute: string;
9
9
  config: SanitizedConfig;
10
10
  route: string;
@@ -1 +1 @@
1
- {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAa9C,eAAO,MAAM,YAAY,mCAItB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAEH,CAAA;AAED,eAAO,MAAM,gBAAgB,mCAI1B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAQH,CAAA;AAED,eAAO,MAAM,oBAAoB,2BAG9B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,MAEH,CAAA"}
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAiB9C,eAAO,MAAM,YAAY,2BAGtB;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAEH,CAAA;AAED,eAAO,MAAM,kBAAkB,mCAI5B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,OAeH,CAAA;AAED,eAAO,MAAM,oBAAoB,2BAG9B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,MAEH,CAAA"}
@@ -1,25 +1,31 @@
1
- const authRouteKeys = ['createFirstUser', 'forgot', 'login', 'logout', 'forgot', 'inactivity', 'unauthorized', 'reset'];
1
+ // Routes that require admin authentication
2
+ const publicAdminRoutes = ['createFirstUser', 'forgot', 'login', 'logout', 'forgot', 'inactivity', 'unauthorized', 'reset'];
2
3
  export const isAdminRoute = ({
3
4
  adminRoute,
4
- config,
5
5
  route
6
6
  }) => {
7
- return route.startsWith(adminRoute) && !isAdminAuthRoute({
8
- adminRoute,
9
- config,
10
- route
11
- });
7
+ return route.startsWith(adminRoute);
12
8
  };
13
- export const isAdminAuthRoute = ({
9
+ export const isPublicAdminRoute = ({
14
10
  adminRoute,
15
11
  config,
16
12
  route
17
13
  }) => {
18
- const authRoutes = config.admin?.routes ? Object.entries(config.admin.routes).filter(([key]) => authRouteKeys.includes(key)).map(([_, value]) => value) : [];
19
- return authRoutes.some(r => getRouteWithoutAdmin({
20
- adminRoute,
21
- route
22
- }).startsWith(r));
14
+ const isPublicAdminRoute = publicAdminRoutes.some(routeSegment => {
15
+ const segment = config.admin?.routes?.[routeSegment] || routeSegment;
16
+ const routeWithoutAdmin = getRouteWithoutAdmin({
17
+ adminRoute,
18
+ route
19
+ });
20
+ if (routeWithoutAdmin.startsWith(segment)) {
21
+ return true;
22
+ } else if (routeWithoutAdmin.includes('/verify/')) {
23
+ return true;
24
+ } else {
25
+ return false;
26
+ }
27
+ });
28
+ return isPublicAdminRoute;
23
29
  };
24
30
  export const getRouteWithoutAdmin = ({
25
31
  adminRoute,