@payloadcms/next 3.0.0-canary.a7293f6 → 3.0.0-canary.ab70b75

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 (165) hide show
  1. package/dist/cjs/withPayload.cjs +145 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -0
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +70 -68
  4. package/dist/elements/DocumentHeader/Tabs/index.scss +41 -39
  5. package/dist/elements/DocumentHeader/index.scss +44 -42
  6. package/dist/elements/DocumentLocked/index.scss +28 -26
  7. package/dist/elements/DocumentTakeOver/index.scss +28 -26
  8. package/dist/elements/FormHeader/index.d.ts +9 -0
  9. package/dist/elements/FormHeader/index.d.ts.map +1 -0
  10. package/dist/elements/FormHeader/index.js +20 -0
  11. package/dist/elements/FormHeader/index.js.map +1 -0
  12. package/dist/elements/FormHeader/index.scss +8 -0
  13. package/dist/elements/LeaveWithoutSaving/index.scss +28 -26
  14. package/dist/elements/Nav/NavWrapper/index.scss +20 -18
  15. package/dist/elements/Nav/index.scss +127 -125
  16. package/dist/exports/utilities.d.ts +1 -0
  17. package/dist/exports/utilities.d.ts.map +1 -1
  18. package/dist/exports/utilities.js +1 -0
  19. package/dist/exports/utilities.js.map +1 -1
  20. package/dist/layouts/Root/index.js +3 -3
  21. package/dist/layouts/Root/index.js.map +1 -1
  22. package/dist/prod/styles.css +1 -1
  23. package/dist/routes/rest/auth/login.js +2 -2
  24. package/dist/routes/rest/auth/login.js.map +1 -1
  25. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  26. package/dist/routes/rest/auth/logout.js +3 -2
  27. package/dist/routes/rest/auth/logout.js.map +1 -1
  28. package/dist/routes/rest/auth/refresh.js +2 -2
  29. package/dist/routes/rest/auth/refresh.js.map +1 -1
  30. package/dist/routes/rest/auth/registerFirstUser.js +2 -2
  31. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  32. package/dist/routes/rest/auth/resetPassword.js +2 -2
  33. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  34. package/dist/routes/rest/collections/delete.d.ts.map +1 -1
  35. package/dist/routes/rest/collections/delete.js +2 -0
  36. package/dist/routes/rest/collections/delete.js.map +1 -1
  37. package/dist/routes/rest/collections/deleteByID.d.ts.map +1 -1
  38. package/dist/routes/rest/collections/deleteByID.js +2 -0
  39. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  40. package/dist/routes/rest/collections/find.js +1 -1
  41. package/dist/routes/rest/collections/find.js.map +1 -1
  42. package/dist/routes/rest/collections/findVersions.js +1 -1
  43. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  44. package/dist/routes/rest/collections/update.d.ts.map +1 -1
  45. package/dist/routes/rest/collections/update.js +4 -0
  46. package/dist/routes/rest/collections/update.js.map +1 -1
  47. package/dist/routes/rest/collections/updateByID.d.ts.map +1 -1
  48. package/dist/routes/rest/collections/updateByID.js +2 -0
  49. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  50. package/dist/routes/rest/globals/findVersions.js +1 -1
  51. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  52. package/dist/scss/app.scss +166 -162
  53. package/dist/scss/colors.scss +256 -254
  54. package/dist/scss/resets.scss +9 -7
  55. package/dist/scss/toastify.scss +42 -40
  56. package/dist/scss/toasts.scss +105 -103
  57. package/dist/scss/type.scss +80 -79
  58. package/dist/templates/Default/Wrapper/index.scss +38 -36
  59. package/dist/templates/Default/index.scss +60 -58
  60. package/dist/templates/Minimal/index.scss +22 -20
  61. package/dist/utilities/initPage/handleAdminPage.d.ts +12 -11
  62. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  63. package/dist/utilities/initPage/handleAdminPage.js +9 -21
  64. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  65. package/dist/utilities/initPage/handleAuthRedirect.d.ts +6 -3
  66. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  67. package/dist/utilities/initPage/handleAuthRedirect.js +23 -36
  68. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  69. package/dist/utilities/initPage/index.d.ts +1 -1
  70. package/dist/utilities/initPage/index.d.ts.map +1 -1
  71. package/dist/utilities/initPage/index.js +21 -9
  72. package/dist/utilities/initPage/index.js.map +1 -1
  73. package/dist/utilities/initPage/shared.d.ts +2 -2
  74. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  75. package/dist/utilities/initPage/shared.js +18 -13
  76. package/dist/utilities/initPage/shared.js.map +1 -1
  77. package/dist/views/API/RenderJSON/index.scss +68 -66
  78. package/dist/views/API/index.scss +98 -96
  79. package/dist/views/Account/Settings/index.scss +37 -35
  80. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  81. package/dist/views/Account/ToggleTheme/index.js +1 -0
  82. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  83. package/dist/views/Account/index.js +1 -1
  84. package/dist/views/Account/index.js.map +1 -1
  85. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  86. package/dist/views/CreateFirstUser/index.client.js +1 -1
  87. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  88. package/dist/views/CreateFirstUser/index.scss +13 -11
  89. package/dist/views/Dashboard/Default/index.scss +51 -49
  90. package/dist/views/Edit/Default/Auth/index.scss +56 -54
  91. package/dist/views/Edit/Default/index.js +1 -1
  92. package/dist/views/Edit/Default/index.js.map +1 -1
  93. package/dist/views/Edit/Default/index.scss +15 -13
  94. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  95. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +9 -11
  96. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  97. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  98. package/dist/views/ForgotPassword/index.js +6 -6
  99. package/dist/views/ForgotPassword/index.js.map +1 -1
  100. package/dist/views/List/Default/index.scss +136 -134
  101. package/dist/views/List/index.d.ts.map +1 -1
  102. package/dist/views/List/index.js +1 -1
  103. package/dist/views/List/index.js.map +1 -1
  104. package/dist/views/LivePreview/IFrame/index.scss +8 -6
  105. package/dist/views/LivePreview/Preview/index.scss +32 -30
  106. package/dist/views/LivePreview/Toolbar/Controls/index.scss +49 -47
  107. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +11 -9
  108. package/dist/views/LivePreview/Toolbar/index.scss +33 -31
  109. package/dist/views/LivePreview/ToolbarArea/index.scss +5 -3
  110. package/dist/views/LivePreview/index.scss +48 -46
  111. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  112. package/dist/views/Login/LoginForm/index.js +1 -1
  113. package/dist/views/Login/LoginForm/index.js.map +1 -1
  114. package/dist/views/Login/LoginForm/index.scss +8 -6
  115. package/dist/views/Login/index.scss +8 -6
  116. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  117. package/dist/views/Logout/LogoutClient.js +77 -55
  118. package/dist/views/Logout/LogoutClient.js.map +1 -1
  119. package/dist/views/Logout/index.scss +17 -15
  120. package/dist/views/NotFound/index.scss +38 -36
  121. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts +7 -0
  122. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -0
  123. package/dist/views/ResetPassword/{index.client.js → ResetPasswordForm/index.js} +16 -19
  124. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -0
  125. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  126. package/dist/views/ResetPassword/index.js +17 -10
  127. package/dist/views/ResetPassword/index.js.map +1 -1
  128. package/dist/views/ResetPassword/index.scss +6 -26
  129. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  130. package/dist/views/Root/getViewFromConfig.js +0 -6
  131. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  132. package/dist/views/Root/index.d.ts.map +1 -1
  133. package/dist/views/Root/index.js +5 -2
  134. package/dist/views/Root/index.js.map +1 -1
  135. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  136. package/dist/views/Unauthorized/index.js +14 -7
  137. package/dist/views/Unauthorized/index.js.map +1 -1
  138. package/dist/views/Unauthorized/index.scss +4 -31
  139. package/dist/views/Verify/index.client.d.ts +7 -0
  140. package/dist/views/Verify/index.client.d.ts.map +1 -0
  141. package/dist/views/Verify/index.client.js +46 -0
  142. package/dist/views/Verify/index.client.js.map +1 -0
  143. package/dist/views/Verify/index.d.ts.map +1 -1
  144. package/dist/views/Verify/index.js +12 -11
  145. package/dist/views/Verify/index.js.map +1 -1
  146. package/dist/views/Verify/index.scss +13 -11
  147. package/dist/views/Version/Default/index.scss +52 -50
  148. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +5 -3
  149. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +29 -27
  150. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +11 -9
  151. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +12 -10
  152. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +12 -10
  153. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +12 -10
  154. package/dist/views/Version/RenderFieldsToDiff/index.scss +12 -10
  155. package/dist/views/Version/Restore/index.scss +57 -55
  156. package/dist/views/Version/SelectComparison/index.scss +12 -10
  157. package/dist/views/Version/SelectLocales/index.scss +6 -4
  158. package/dist/views/Versions/index.js.map +1 -1
  159. package/dist/views/Versions/index.scss +78 -76
  160. package/package.json +11 -11
  161. package/dist/cjs/withPayload.js +0 -111
  162. package/dist/cjs/withPayload.js.map +0 -1
  163. package/dist/views/ResetPassword/index.client.d.ts +0 -7
  164. package/dist/views/ResetPassword/index.client.d.ts.map +0 -1
  165. 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
  }
@@ -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;AAQtC,eAAO,MAAM,QAAQ,+DAKlB,IAAI,KAAG,OAAO,CAAC,cAAc,CAoJ/B,CAAA"}
@@ -1,15 +1,16 @@
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 { isPublicAdminRoute } from './shared.js';
9
11
  export const initPage = async ({
10
12
  config: configPromise,
11
13
  importMap,
12
- redirectUnauthenticatedUser = false,
13
14
  route,
14
15
  searchParams
15
16
  }) => {
@@ -118,24 +119,34 @@ export const initPage = async ({
118
119
  user
119
120
  }) ? slug : null).filter(Boolean)
120
121
  };
121
- if (redirectUnauthenticatedUser && !user) {
122
- handleAuthRedirect({
122
+ let redirectTo = null;
123
+ if (!permissions.canAccessAdmin && !isPublicAdminRoute({
124
+ adminRoute,
125
+ config: payload.config,
126
+ route
127
+ })) {
128
+ redirectTo = handleAuthRedirect({
123
129
  config: payload.config,
124
- redirectUnauthenticatedUser,
125
130
  route,
126
- searchParams
131
+ searchParams,
132
+ user
127
133
  });
128
134
  }
129
135
  const {
130
136
  collectionConfig,
137
+ collectionSlug,
131
138
  docID,
132
- globalConfig
133
- } = handleAdminPage({
139
+ globalConfig,
140
+ globalSlug
141
+ } = getRouteInfo({
134
142
  adminRoute,
135
143
  config: payload.config,
136
- permissions,
144
+ defaultIDType: payload.db.defaultIDType,
137
145
  route
138
146
  });
147
+ if (collectionSlug && !collectionConfig || globalSlug && !globalConfig) {
148
+ return notFound();
149
+ }
139
150
  return {
140
151
  collectionConfig,
141
152
  cookies,
@@ -144,6 +155,7 @@ export const initPage = async ({
144
155
  languageOptions,
145
156
  locale,
146
157
  permissions,
158
+ redirectTo,
147
159
  req,
148
160
  translations: i18n.translations,
149
161
  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 = 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 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","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 { 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 ) {\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":[]}
@@ -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,OAYH,CAAA;AAED,eAAO,MAAM,oBAAoB,2BAG9B;IACD,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,KAAG,MAEH,CAAA"}
@@ -1,25 +1,30 @@
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
+ return 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
+ });
23
28
  };
24
29
  export const getRouteWithoutAdmin = ({
25
30
  adminRoute,
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","names":["authRouteKeys","isAdminRoute","adminRoute","config","route","startsWith","isAdminAuthRoute","authRoutes","admin","routes","Object","entries","filter","key","includes","map","_","value","some","r","getRouteWithoutAdmin","replace"],"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\nconst authRouteKeys: (keyof SanitizedConfig['admin']['routes'])[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n return route.startsWith(adminRoute) && !isAdminAuthRoute({ adminRoute, config, route })\n}\n\nexport const isAdminAuthRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n const authRoutes = config.admin?.routes\n ? Object.entries(config.admin.routes)\n .filter(([key]) => authRouteKeys.includes(key as keyof SanitizedConfig['admin']['routes']))\n .map(([_, value]) => value)\n : []\n\n return authRoutes.some((r) => getRouteWithoutAdmin({ adminRoute, route }).startsWith(r))\n}\n\nexport const getRouteWithoutAdmin = ({\n adminRoute,\n route,\n}: {\n adminRoute: string\n route: string\n}): string => {\n return adminRoute && adminRoute !== '/' ? route.replace(adminRoute, '') : route\n}\n"],"mappings":"AAEA,MAAMA,aAAA,GAA8D,CAClE,mBACA,UACA,SACA,UACA,UACA,cACA,gBACA,QACD;AAED,OAAO,MAAMC,YAAA,GAAeA,CAAC;EAC3BC,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,OAAOA,KAAA,CAAMC,UAAU,CAACH,UAAA,KAAe,CAACI,gBAAA,CAAiB;IAAEJ,UAAA;IAAYC,MAAA;IAAQC;EAAM;AACvF;AAEA,OAAO,MAAME,gBAAA,GAAmBA,CAAC;EAC/BJ,UAAU;EACVC,MAAM;EACNC;AAAK,CAKN;EACC,MAAMG,UAAA,GAAaJ,MAAA,CAAOK,KAAK,EAAEC,MAAA,GAC7BC,MAAA,CAAOC,OAAO,CAACR,MAAA,CAAOK,KAAK,CAACC,MAAM,EAC/BG,MAAM,CAAC,CAAC,CAACC,GAAA,CAAI,KAAKb,aAAA,CAAcc,QAAQ,CAACD,GAAA,GACzCE,GAAG,CAAC,CAAC,CAACC,CAAA,EAAGC,KAAA,CAAM,KAAKA,KAAA,IACvB,EAAE;EAEN,OAAOV,UAAA,CAAWW,IAAI,CAAEC,CAAA,IAAMC,oBAAA,CAAqB;IAAElB,UAAA;IAAYE;EAAM,GAAGC,UAAU,CAACc,CAAA;AACvF;AAEA,OAAO,MAAMC,oBAAA,GAAuBA,CAAC;EACnClB,UAAU;EACVE;AAAK,CAIN;EACC,OAAOF,UAAA,IAAcA,UAAA,KAAe,MAAME,KAAA,CAAMiB,OAAO,CAACnB,UAAA,EAAY,MAAME,KAAA;AAC5E","ignoreList":[]}
1
+ {"version":3,"file":"shared.js","names":["publicAdminRoutes","isAdminRoute","adminRoute","route","startsWith","isPublicAdminRoute","config","some","routeSegment","segment","admin","routes","routeWithoutAdmin","getRouteWithoutAdmin","includes","replace"],"sources":["../../../src/utilities/initPage/shared.ts"],"sourcesContent":["import type { SanitizedConfig } from 'payload'\n\n// Routes that require admin authentication\nconst publicAdminRoutes: (keyof Pick<\n SanitizedConfig['admin']['routes'],\n 'createFirstUser' | 'forgot' | 'inactivity' | 'login' | 'logout' | 'reset' | 'unauthorized'\n>)[] = [\n 'createFirstUser',\n 'forgot',\n 'login',\n 'logout',\n 'forgot',\n 'inactivity',\n 'unauthorized',\n 'reset',\n]\n\nexport const isAdminRoute = ({\n adminRoute,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n return route.startsWith(adminRoute)\n}\n\nexport const isPublicAdminRoute = ({\n adminRoute,\n config,\n route,\n}: {\n adminRoute: string\n config: SanitizedConfig\n route: string\n}): boolean => {\n return publicAdminRoutes.some((routeSegment) => {\n const segment = config.admin?.routes?.[routeSegment] || routeSegment\n const routeWithoutAdmin = getRouteWithoutAdmin({ adminRoute, route })\n if (routeWithoutAdmin.startsWith(segment)) {\n return true\n } else if (routeWithoutAdmin.includes('/verify/')) {\n return true\n } else {\n return false\n }\n })\n}\n\nexport const getRouteWithoutAdmin = ({\n adminRoute,\n route,\n}: {\n adminRoute: string\n route: string\n}): string => {\n return adminRoute && adminRoute !== '/' ? route.replace(adminRoute, '') : route\n}\n"],"mappings":"AAEA;AACA,MAAMA,iBAAA,GAGC,CACL,mBACA,UACA,SACA,UACA,UACA,cACA,gBACA,QACD;AAED,OAAO,MAAMC,YAAA,GAAeA,CAAC;EAC3BC,UAAU;EACVC;AAAK,CAKN;EACC,OAAOA,KAAA,CAAMC,UAAU,CAACF,UAAA;AAC1B;AAEA,OAAO,MAAMG,kBAAA,GAAqBA,CAAC;EACjCH,UAAU;EACVI,MAAM;EACNH;AAAK,CAKN;EACC,OAAOH,iBAAA,CAAkBO,IAAI,CAAEC,YAAA;IAC7B,MAAMC,OAAA,GAAUH,MAAA,CAAOI,KAAK,EAAEC,MAAA,GAASH,YAAA,CAAa,IAAIA,YAAA;IACxD,MAAMI,iBAAA,GAAoBC,oBAAA,CAAqB;MAAEX,UAAA;MAAYC;IAAM;IACnE,IAAIS,iBAAA,CAAkBR,UAAU,CAACK,OAAA,GAAU;MACzC,OAAO;IACT,OAAO,IAAIG,iBAAA,CAAkBE,QAAQ,CAAC,aAAa;MACjD,OAAO;IACT,OAAO;MACL,OAAO;IACT;EACF;AACF;AAEA,OAAO,MAAMD,oBAAA,GAAuBA,CAAC;EACnCX,UAAU;EACVC;AAAK,CAIN;EACC,OAAOD,UAAA,IAAcA,UAAA,KAAe,MAAMC,KAAA,CAAMY,OAAO,CAACb,UAAA,EAAY,MAAMC,KAAA;AAC5E","ignoreList":[]}