@payloadcms/next 3.0.0-beta.126 → 3.0.0-beta.128

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 (290) hide show
  1. package/dist/cjs/withPayload.cjs +10 -0
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +13 -15
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/index.js +9 -14
  9. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -1
  10. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +13 -28
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  13. package/dist/elements/DocumentHeader/index.d.ts +0 -1
  14. package/dist/elements/DocumentHeader/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/index.js +9 -12
  16. package/dist/elements/DocumentHeader/index.js.map +1 -1
  17. package/dist/elements/Logo/index.d.ts.map +1 -1
  18. package/dist/elements/Logo/index.js +5 -6
  19. package/dist/elements/Logo/index.js.map +1 -1
  20. package/dist/elements/Nav/index.client.d.ts +4 -1
  21. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  22. package/dist/elements/Nav/index.client.js +40 -95
  23. package/dist/elements/Nav/index.client.js.map +1 -1
  24. package/dist/elements/Nav/index.d.ts.map +1 -1
  25. package/dist/elements/Nav/index.js +60 -23
  26. package/dist/elements/Nav/index.js.map +1 -1
  27. package/dist/exports/layouts.d.ts +1 -0
  28. package/dist/exports/layouts.d.ts.map +1 -1
  29. package/dist/exports/layouts.js +1 -0
  30. package/dist/exports/layouts.js.map +1 -1
  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/exports/views.d.ts +0 -2
  35. package/dist/exports/views.d.ts.map +1 -1
  36. package/dist/exports/views.js +0 -2
  37. package/dist/exports/views.js.map +1 -1
  38. package/dist/fetchAPI-multipart/isEligibleRequest.js +1 -1
  39. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -1
  40. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -1
  41. package/dist/fetchAPI-multipart/processMultipart.js +9 -11
  42. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  43. package/dist/layouts/Root/NestProviders.d.ts +11 -0
  44. package/dist/layouts/Root/NestProviders.d.ts.map +1 -0
  45. package/dist/layouts/Root/NestProviders.js +21 -0
  46. package/dist/layouts/Root/NestProviders.js.map +1 -0
  47. package/dist/layouts/Root/index.d.ts +3 -2
  48. package/dist/layouts/Root/index.d.ts.map +1 -1
  49. package/dist/layouts/Root/index.js +14 -18
  50. package/dist/layouts/Root/index.js.map +1 -1
  51. package/dist/prod/styles.css +1 -1
  52. package/dist/routes/rest/index.d.ts.map +1 -1
  53. package/dist/routes/rest/index.js +0 -10
  54. package/dist/routes/rest/index.js.map +1 -1
  55. package/dist/routes/rest/og/image.d.ts +4 -2
  56. package/dist/routes/rest/og/image.d.ts.map +1 -1
  57. package/dist/routes/rest/og/image.js +7 -3
  58. package/dist/routes/rest/og/image.js.map +1 -1
  59. package/dist/routes/rest/og/index.d.ts.map +1 -1
  60. package/dist/routes/rest/og/index.js +5 -8
  61. package/dist/routes/rest/og/index.js.map +1 -1
  62. package/dist/routes/rest/routeError.d.ts.map +1 -1
  63. package/dist/routes/rest/routeError.js +1 -47
  64. package/dist/routes/rest/routeError.js.map +1 -1
  65. package/dist/templates/Default/index.d.ts +2 -1
  66. package/dist/templates/Default/index.d.ts.map +1 -1
  67. package/dist/templates/Default/index.js +97 -41
  68. package/dist/templates/Default/index.js.map +1 -1
  69. package/dist/utilities/getClientConfig.d.ts +7 -0
  70. package/dist/utilities/getClientConfig.d.ts.map +1 -0
  71. package/dist/utilities/getClientConfig.js +14 -0
  72. package/dist/utilities/getClientConfig.js.map +1 -0
  73. package/dist/utilities/handleServerFunctions.d.ts +3 -0
  74. package/dist/utilities/handleServerFunctions.d.ts.map +1 -0
  75. package/dist/utilities/handleServerFunctions.js +35 -0
  76. package/dist/utilities/handleServerFunctions.js.map +1 -0
  77. package/dist/utilities/initPage/handleAdminPage.d.ts +2 -1
  78. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  79. package/dist/utilities/initPage/handleAdminPage.js +9 -1
  80. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  81. package/dist/utilities/initPage/handleAuthRedirect.js +2 -2
  82. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  83. package/dist/utilities/initPage/index.d.ts.map +1 -1
  84. package/dist/utilities/initPage/index.js +2 -1
  85. package/dist/utilities/initPage/index.js.map +1 -1
  86. package/dist/utilities/initReq.d.ts +1 -1
  87. package/dist/utilities/initReq.d.ts.map +1 -1
  88. package/dist/utilities/initReq.js +3 -2
  89. package/dist/utilities/initReq.js.map +1 -1
  90. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -1
  91. package/dist/views/API/LocaleSelector/index.js +0 -1
  92. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  93. package/dist/views/API/index.client.d.ts.map +1 -1
  94. package/dist/views/API/index.client.js +10 -13
  95. package/dist/views/API/index.client.js.map +1 -1
  96. package/dist/views/Account/Settings/index.js +0 -1
  97. package/dist/views/Account/Settings/index.js.map +1 -1
  98. package/dist/views/Account/index.d.ts.map +1 -1
  99. package/dist/views/Account/index.js +81 -24
  100. package/dist/views/Account/index.js.map +1 -1
  101. package/dist/views/CreateFirstUser/index.client.d.ts +3 -1
  102. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  103. package/dist/views/CreateFirstUser/index.client.js +83 -109
  104. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  105. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  106. package/dist/views/CreateFirstUser/index.js +36 -4
  107. package/dist/views/CreateFirstUser/index.js.map +1 -1
  108. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  109. package/dist/views/Dashboard/Default/index.js +46 -44
  110. package/dist/views/Dashboard/Default/index.js.map +1 -1
  111. package/dist/views/Dashboard/index.d.ts.map +1 -1
  112. package/dist/views/Dashboard/index.js +22 -21
  113. package/dist/views/Dashboard/index.js.map +1 -1
  114. package/dist/views/Document/getDocPreferences.d.ts +11 -0
  115. package/dist/views/Document/getDocPreferences.d.ts.map +1 -0
  116. package/dist/views/Document/getDocPreferences.js +44 -0
  117. package/dist/views/Document/getDocPreferences.js.map +1 -0
  118. package/dist/views/Document/getDocumentData.d.ts +10 -11
  119. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  120. package/dist/views/Document/getDocumentData.js +35 -47
  121. package/dist/views/Document/getDocumentData.js.map +1 -1
  122. package/dist/views/Document/getIsLocked.d.ts +16 -0
  123. package/dist/views/Document/getIsLocked.d.ts.map +1 -0
  124. package/dist/views/Document/getIsLocked.js +55 -0
  125. package/dist/views/Document/getIsLocked.js.map +1 -0
  126. package/dist/views/Document/getVersions.d.ts +19 -0
  127. package/dist/views/Document/getVersions.d.ts.map +1 -0
  128. package/dist/views/Document/getVersions.js +181 -0
  129. package/dist/views/Document/getVersions.js.map +1 -0
  130. package/dist/views/Document/getViewsFromConfig.d.ts +1 -1
  131. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  132. package/dist/views/Document/getViewsFromConfig.js +18 -19
  133. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  134. package/dist/views/Document/handleServerFunction.d.ts +24 -0
  135. package/dist/views/Document/handleServerFunction.d.ts.map +1 -0
  136. package/dist/views/Document/handleServerFunction.js +156 -0
  137. package/dist/views/Document/handleServerFunction.js.map +1 -0
  138. package/dist/views/Document/index.d.ts +5 -1
  139. package/dist/views/Document/index.d.ts.map +1 -1
  140. package/dist/views/Document/index.js +181 -72
  141. package/dist/views/Document/index.js.map +1 -1
  142. package/dist/views/Document/renderDocumentSlots.d.ts +12 -0
  143. package/dist/views/Document/renderDocumentSlots.d.ts.map +1 -0
  144. package/dist/views/Document/renderDocumentSlots.js +92 -0
  145. package/dist/views/Document/renderDocumentSlots.js.map +1 -0
  146. package/dist/views/Edit/index.d.ts +3 -2
  147. package/dist/views/Edit/index.d.ts.map +1 -1
  148. package/dist/views/Edit/index.js +7 -3
  149. package/dist/views/Edit/index.js.map +1 -1
  150. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  151. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -1
  152. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  153. package/dist/views/List/handleServerFunction.d.ts +26 -0
  154. package/dist/views/List/handleServerFunction.d.ts.map +1 -0
  155. package/dist/views/List/handleServerFunction.js +155 -0
  156. package/dist/views/List/handleServerFunction.js.map +1 -0
  157. package/dist/views/List/index.d.ts +12 -2
  158. package/dist/views/List/index.d.ts.map +1 -1
  159. package/dist/views/List/index.js +121 -81
  160. package/dist/views/List/index.js.map +1 -1
  161. package/dist/views/List/renderListViewSlots.d.ts +8 -0
  162. package/dist/views/List/renderListViewSlots.d.ts.map +1 -0
  163. package/dist/views/List/renderListViewSlots.js +44 -0
  164. package/dist/views/List/renderListViewSlots.js.map +1 -0
  165. package/dist/views/LivePreview/Context/sizeReducer.d.ts +1 -1
  166. package/dist/views/LivePreview/Context/sizeReducer.d.ts.map +1 -1
  167. package/dist/views/LivePreview/Context/sizeReducer.js +4 -4
  168. package/dist/views/LivePreview/Context/sizeReducer.js.map +1 -1
  169. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  170. package/dist/views/LivePreview/index.client.js +38 -35
  171. package/dist/views/LivePreview/index.client.js.map +1 -1
  172. package/dist/views/Login/LoginField/index.d.ts.map +1 -1
  173. package/dist/views/Login/LoginField/index.js +3 -1
  174. package/dist/views/Login/LoginField/index.js.map +1 -1
  175. package/dist/views/Login/index.d.ts.map +1 -1
  176. package/dist/views/Login/index.js +26 -20
  177. package/dist/views/Login/index.js.map +1 -1
  178. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  179. package/dist/views/Logout/LogoutClient.js +5 -4
  180. package/dist/views/Logout/LogoutClient.js.map +1 -1
  181. package/dist/views/ResetPassword/ResetPasswordForm/index.d.ts.map +1 -1
  182. package/dist/views/ResetPassword/ResetPasswordForm/index.js +24 -10
  183. package/dist/views/ResetPassword/ResetPasswordForm/index.js.map +1 -1
  184. package/dist/views/Root/getViewFromConfig.d.ts +3 -1
  185. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  186. package/dist/views/Root/getViewFromConfig.js +128 -7
  187. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  188. package/dist/views/Root/index.d.ts.map +1 -1
  189. package/dist/views/Root/index.js +22 -11
  190. package/dist/views/Root/index.js.map +1 -1
  191. package/dist/views/Version/Default/index.d.ts.map +1 -1
  192. package/dist/views/Version/Default/index.js +2 -4
  193. package/dist/views/Version/Default/index.js.map +1 -1
  194. package/dist/views/Versions/buildColumns.d.ts +3 -2
  195. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  196. package/dist/views/Versions/buildColumns.js +33 -61
  197. package/dist/views/Versions/buildColumns.js.map +1 -1
  198. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -0
  199. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  200. package/dist/views/Versions/cells/AutosaveCell/index.js +48 -37
  201. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  202. package/dist/views/Versions/cells/CreatedAt/index.d.ts +4 -0
  203. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  204. package/dist/views/Versions/cells/CreatedAt/index.js +43 -45
  205. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  206. package/dist/views/Versions/cells/ID/index.d.ts +3 -1
  207. package/dist/views/Versions/cells/ID/index.d.ts.map +1 -1
  208. package/dist/views/Versions/cells/ID/index.js +7 -19
  209. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  210. package/dist/views/Versions/index.client.d.ts.map +1 -1
  211. package/dist/views/Versions/index.client.js +53 -51
  212. package/dist/views/Versions/index.client.js.map +1 -1
  213. package/dist/views/Versions/index.d.ts.map +1 -1
  214. package/dist/views/Versions/index.js +3 -2
  215. package/dist/views/Versions/index.js.map +1 -1
  216. package/dist/withPayload.d.ts.map +1 -1
  217. package/dist/withPayload.js +10 -0
  218. package/dist/withPayload.js.map +1 -1
  219. package/license.md +22 -0
  220. package/package.json +16 -7
  221. package/dist/elements/DocumentLocked/index.d.ts +0 -12
  222. package/dist/elements/DocumentLocked/index.d.ts.map +0 -1
  223. package/dist/elements/DocumentLocked/index.js +0 -152
  224. package/dist/elements/DocumentLocked/index.js.map +0 -1
  225. package/dist/elements/DocumentLocked/index.scss +0 -40
  226. package/dist/elements/DocumentTakeOver/index.d.ts +0 -8
  227. package/dist/elements/DocumentTakeOver/index.d.ts.map +0 -1
  228. package/dist/elements/DocumentTakeOver/index.js +0 -98
  229. package/dist/elements/DocumentTakeOver/index.js.map +0 -1
  230. package/dist/elements/DocumentTakeOver/index.scss +0 -39
  231. package/dist/elements/EmailAndUsername/index.d.ts +0 -14
  232. package/dist/elements/EmailAndUsername/index.d.ts.map +0 -1
  233. package/dist/elements/EmailAndUsername/index.js +0 -121
  234. package/dist/elements/EmailAndUsername/index.js.map +0 -1
  235. package/dist/elements/LeaveWithoutSaving/index.d.ts +0 -4
  236. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +0 -1
  237. package/dist/elements/LeaveWithoutSaving/index.js +0 -162
  238. package/dist/elements/LeaveWithoutSaving/index.js.map +0 -1
  239. package/dist/elements/LeaveWithoutSaving/index.scss +0 -39
  240. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts +0 -9
  241. package/dist/elements/LeaveWithoutSaving/usePreventLeave.d.ts.map +0 -1
  242. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js +0 -136
  243. package/dist/elements/LeaveWithoutSaving/usePreventLeave.js.map +0 -1
  244. package/dist/routes/rest/buildFormState.d.ts +0 -5
  245. package/dist/routes/rest/buildFormState.d.ts.map +0 -1
  246. package/dist/routes/rest/buildFormState.js +0 -46
  247. package/dist/routes/rest/buildFormState.js.map +0 -1
  248. package/dist/views/Edit/Default/Auth/APIKey.d.ts +0 -6
  249. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +0 -1
  250. package/dist/views/Edit/Default/Auth/APIKey.js +0 -125
  251. package/dist/views/Edit/Default/Auth/APIKey.js.map +0 -1
  252. package/dist/views/Edit/Default/Auth/index.d.ts +0 -5
  253. package/dist/views/Edit/Default/Auth/index.d.ts.map +0 -1
  254. package/dist/views/Edit/Default/Auth/index.js +0 -318
  255. package/dist/views/Edit/Default/Auth/index.js.map +0 -1
  256. package/dist/views/Edit/Default/Auth/index.scss +0 -78
  257. package/dist/views/Edit/Default/Auth/types.d.ts +0 -17
  258. package/dist/views/Edit/Default/Auth/types.d.ts.map +0 -1
  259. package/dist/views/Edit/Default/Auth/types.js +0 -2
  260. package/dist/views/Edit/Default/Auth/types.js.map +0 -1
  261. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts +0 -11
  262. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +0 -1
  263. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +0 -130
  264. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +0 -1
  265. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts +0 -8
  266. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts.map +0 -1
  267. package/dist/views/Edit/Default/SetDocumentTitle/index.js +0 -81
  268. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +0 -1
  269. package/dist/views/Edit/Default/index.d.ts +0 -4
  270. package/dist/views/Edit/Default/index.d.ts.map +0 -1
  271. package/dist/views/Edit/Default/index.js +0 -349
  272. package/dist/views/Edit/Default/index.js.map +0 -1
  273. package/dist/views/Edit/Default/index.scss +0 -23
  274. package/dist/views/Edit/Default/types.d.ts +0 -6
  275. package/dist/views/Edit/Default/types.d.ts.map +0 -1
  276. package/dist/views/Edit/Default/types.js +0 -2
  277. package/dist/views/Edit/Default/types.js.map +0 -1
  278. package/dist/views/Edit/index.client.d.ts +0 -3
  279. package/dist/views/Edit/index.client.d.ts.map +0 -1
  280. package/dist/views/Edit/index.client.js +0 -54
  281. package/dist/views/Edit/index.client.js.map +0 -1
  282. package/dist/views/List/Default/index.d.ts +0 -4
  283. package/dist/views/List/Default/index.d.ts.map +0 -1
  284. package/dist/views/List/Default/index.js +0 -387
  285. package/dist/views/List/Default/index.js.map +0 -1
  286. package/dist/views/List/Default/index.scss +0 -179
  287. package/dist/views/List/Default/types.d.ts +0 -15
  288. package/dist/views/List/Default/types.d.ts.map +0 -1
  289. package/dist/views/List/Default/types.js +0 -2
  290. package/dist/views/List/Default/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"getViewsFromConfig.js","names":["notFound","APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","permission","length","create","payloadComponent","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","hideAPIURL","readVersions","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n CollectionPermission,\n GlobalPermission,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { notFound } from 'next/navigation.js'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n payloadComponent?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: CollectionPermission | GlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (\n !overrideDocPermissions &&\n 'create' in docPermissions &&\n docPermissions?.create?.permission\n ) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n notFound()\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read?.permission) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n payloadComponent: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n payloadComponent: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getViewsFromConfig.js","names":["APIView","DefaultAPIView","EditView","DefaultEditView","LivePreviewView","DefaultLivePreviewView","UnauthorizedView","VersionView","DefaultVersionView","VersionsView","DefaultVersionsView","getCustomViewByKey","getCustomViewByRoute","getViewsFromConfig","collectionConfig","config","docPermissions","globalConfig","overrideDocPermissions","routeSegments","DefaultView","CustomView","ErrorView","viewKey","routes","admin","adminRoute","views","components","livePreviewEnabled","livePreview","collections","includes","slug","globals","collectionEntity","collectionSlug","segment3","segment4","segment5","remainingSegments","read","permission","Error","length","create","ComponentConfig","Component","baseRoute","filter","Boolean","join","currentRoute","CustomViewComponent","customViewKey","hideAPIURL","readVersions","globalEntity","globalSlug"],"sources":["../../../src/views/Document/getViewsFromConfig.tsx"],"sourcesContent":["import type {\n AdminViewProps,\n CollectionPermission,\n GlobalPermission,\n PayloadComponent,\n SanitizedCollectionConfig,\n SanitizedConfig,\n SanitizedGlobalConfig,\n ServerSideEditViewProps,\n} from 'payload'\nimport type React from 'react'\n\nimport { APIView as DefaultAPIView } from '../API/index.js'\nimport { EditView as DefaultEditView } from '../Edit/index.js'\nimport { LivePreviewView as DefaultLivePreviewView } from '../LivePreview/index.js'\nimport { UnauthorizedView } from '../Unauthorized/index.js'\nimport { VersionView as DefaultVersionView } from '../Version/index.js'\nimport { VersionsView as DefaultVersionsView } from '../Versions/index.js'\nimport { getCustomViewByKey } from './getCustomViewByKey.js'\nimport { getCustomViewByRoute } from './getCustomViewByRoute.js'\n\nexport type ViewFromConfig<TProps extends object> = {\n Component?: React.FC<TProps>\n ComponentConfig?: PayloadComponent<TProps>\n}\n\nexport const getViewsFromConfig = ({\n collectionConfig,\n config,\n docPermissions,\n globalConfig,\n overrideDocPermissions,\n routeSegments,\n}: {\n collectionConfig?: SanitizedCollectionConfig\n config: SanitizedConfig\n globalConfig?: SanitizedGlobalConfig\n routeSegments: string[]\n} & (\n | {\n docPermissions: CollectionPermission | GlobalPermission\n overrideDocPermissions?: false | undefined\n }\n | {\n docPermissions?: never\n overrideDocPermissions: true\n }\n)): {\n CustomView: ViewFromConfig<ServerSideEditViewProps>\n DefaultView: ViewFromConfig<ServerSideEditViewProps>\n /**\n * The error view to display if CustomView or DefaultView do not exist (could be either due to not found, or unauthorized). Can be null\n */\n ErrorView: ViewFromConfig<AdminViewProps>\n viewKey: string\n} | null => {\n // Conditionally import and lazy load the default view\n let DefaultView: ViewFromConfig<ServerSideEditViewProps> = null\n let CustomView: ViewFromConfig<ServerSideEditViewProps> = null\n let ErrorView: ViewFromConfig<AdminViewProps> = null\n let viewKey: string\n\n const {\n routes: { admin: adminRoute },\n } = config\n\n const views =\n (collectionConfig && collectionConfig?.admin?.components?.views) ||\n (globalConfig && globalConfig?.admin?.components?.views)\n\n const livePreviewEnabled =\n (collectionConfig && collectionConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.collections?.includes(collectionConfig?.slug) ||\n (globalConfig && globalConfig?.admin?.livePreview) ||\n config?.admin?.livePreview?.globals?.includes(globalConfig?.slug)\n\n if (collectionConfig) {\n const [collectionEntity, collectionSlug, segment3, segment4, segment5, ...remainingSegments] =\n routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n throw new Error('not-found')\n } else {\n // `../:id`, or `../create`\n switch (routeSegments.length) {\n case 3: {\n switch (segment3) {\n case 'create': {\n if (\n !overrideDocPermissions &&\n 'create' in docPermissions &&\n docPermissions?.create?.permission\n ) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n } else {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/api`, `../:id/preview`, `../:id/versions`, etc\n case 4: {\n switch (segment4) {\n case 'api': {\n if (collectionConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'versions'),\n }\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n 'collections',\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n\n break\n }\n }\n break\n }\n\n // `../:id/versions/:version`, etc\n default: {\n if (segment4 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [\n adminRoute !== '/' && adminRoute,\n collectionEntity,\n collectionSlug,\n segment3,\n ]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment4, segment5, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n if (globalConfig) {\n const [globalEntity, globalSlug, segment3, ...remainingSegments] = routeSegments\n\n if (!overrideDocPermissions && !docPermissions?.read?.permission) {\n throw new Error('not-found')\n } else {\n switch (routeSegments.length) {\n case 2: {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'default'),\n }\n DefaultView = {\n Component: DefaultEditView,\n }\n break\n }\n\n case 3: {\n // `../:slug/api`, `../:slug/preview`, `../:slug/versions`, etc\n switch (segment3) {\n case 'api': {\n if (globalConfig?.admin?.hideAPIURL !== true) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'api'),\n }\n DefaultView = {\n Component: DefaultAPIView,\n }\n }\n break\n }\n\n case 'preview': {\n if (livePreviewEnabled) {\n DefaultView = {\n Component: DefaultLivePreviewView,\n }\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'livePreview'),\n }\n }\n break\n }\n\n case 'versions': {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'versions'),\n }\n\n DefaultView = {\n Component: DefaultVersionsView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n\n default: {\n if (!overrideDocPermissions && docPermissions?.read?.permission) {\n const baseRoute = [adminRoute, globalEntity, globalSlug, segment3]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } =\n getCustomViewByRoute({\n baseRoute,\n currentRoute,\n views,\n })\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n } else {\n DefaultView = {\n Component: DefaultEditView,\n }\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n break\n }\n }\n break\n }\n\n default: {\n // `../:slug/versions/:version`, etc\n if (segment3 === 'versions') {\n if (!overrideDocPermissions && docPermissions?.readVersions?.permission) {\n CustomView = {\n ComponentConfig: getCustomViewByKey(views, 'version'),\n }\n DefaultView = {\n Component: DefaultVersionView,\n }\n } else {\n ErrorView = {\n Component: UnauthorizedView,\n }\n }\n } else {\n const baseRoute = [adminRoute !== '/' && adminRoute, 'globals', globalSlug]\n .filter(Boolean)\n .join('/')\n\n const currentRoute = [baseRoute, segment3, ...remainingSegments]\n .filter(Boolean)\n .join('/')\n\n const { Component: CustomViewComponent, viewKey: customViewKey } = getCustomViewByRoute(\n {\n baseRoute,\n currentRoute,\n views,\n },\n )\n\n if (customViewKey) {\n viewKey = customViewKey\n\n CustomView = {\n ComponentConfig: CustomViewComponent,\n }\n }\n }\n\n break\n }\n }\n }\n }\n\n return {\n CustomView,\n DefaultView,\n ErrorView,\n viewKey,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,24 @@
1
+ import type { I18nClient } from '@payloadcms/translations';
2
+ import type { ClientConfig, Data, DocumentPreferences, FormState, PayloadRequest, SanitizedConfig } from 'payload';
3
+ export declare const getClientConfig: (args: {
4
+ config: SanitizedConfig;
5
+ i18n: I18nClient;
6
+ }) => ClientConfig;
7
+ type RenderDocumentResult = {
8
+ data: any;
9
+ Document: React.ReactNode;
10
+ preferences: DocumentPreferences;
11
+ };
12
+ export declare const renderDocumentHandler: (args: {
13
+ collectionSlug: string;
14
+ disableActions?: boolean;
15
+ docID: string;
16
+ drawerSlug?: string;
17
+ initialData?: Data;
18
+ initialState?: FormState;
19
+ redirectAfterDelete: boolean;
20
+ redirectAfterDuplicate: boolean;
21
+ req: PayloadRequest;
22
+ }) => Promise<RenderDocumentResult>;
23
+ export {};
24
+ //# sourceMappingURL=handleServerFunction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleServerFunction.d.ts","sourceRoot":"","sources":["../../../src/views/Document/handleServerFunction.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,IAAI,EACJ,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,eAAe,EAEhB,MAAM,SAAS,CAAA;AAahB,eAAO,MAAM,eAAe,SAAU;IACpC,MAAM,EAAE,eAAe,CAAA;IACvB,IAAI,EAAE,UAAU,CAAA;CACjB,KAAG,YAaH,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,IAAI,EAAE,GAAG,CAAA;IACT,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,WAAW,EAAE,mBAAmB,CAAA;CACjC,CAAA;AAED,eAAO,MAAM,qBAAqB,SAAgB;IAChD,cAAc,EAAE,MAAM,CAAA;IACtB,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,IAAI,CAAA;IAClB,YAAY,CAAC,EAAE,SAAS,CAAA;IACxB,mBAAmB,EAAE,OAAO,CAAA;IAC5B,sBAAsB,EAAE,OAAO,CAAA;IAC/B,GAAG,EAAE,cAAc,CAAA;CACpB,KAAG,OAAO,CAAC,oBAAoB,CA0I/B,CAAA"}
@@ -0,0 +1,156 @@
1
+ import { headers as getHeaders } from 'next/headers.js';
2
+ import { createClientConfig, getAccessResults, isEntityHidden, parseCookies } from 'payload';
3
+ import { renderDocument } from './index.js';
4
+ let cachedClientConfig = global._payload_clientConfig;
5
+ if (!cachedClientConfig) {
6
+ cachedClientConfig = global._payload_clientConfig = null;
7
+ }
8
+ export const getClientConfig = args => {
9
+ const {
10
+ config,
11
+ i18n
12
+ } = args;
13
+ if (cachedClientConfig && process.env.NODE_ENV !== 'development') {
14
+ return cachedClientConfig;
15
+ }
16
+ cachedClientConfig = createClientConfig({
17
+ config,
18
+ i18n
19
+ });
20
+ return cachedClientConfig;
21
+ };
22
+ export const renderDocumentHandler = async args => {
23
+ const {
24
+ collectionSlug,
25
+ disableActions,
26
+ docID,
27
+ drawerSlug,
28
+ initialData,
29
+ redirectAfterDelete,
30
+ redirectAfterDuplicate,
31
+ req,
32
+ req: {
33
+ i18n,
34
+ payload,
35
+ payload: {
36
+ config
37
+ },
38
+ user
39
+ }
40
+ } = args;
41
+ const headers = await getHeaders();
42
+ const cookies = parseCookies(headers);
43
+ const incomingUserSlug = user?.collection;
44
+ const adminUserSlug = config.admin.user;
45
+ // If we have a user slug, test it against the functions
46
+ if (incomingUserSlug) {
47
+ const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin;
48
+ // Run the admin access function from the config if it exists
49
+ if (adminAccessFunction) {
50
+ const canAccessAdmin = await adminAccessFunction({
51
+ req
52
+ });
53
+ if (!canAccessAdmin) {
54
+ throw new Error('Unauthorized');
55
+ }
56
+ // Match the user collection to the global admin config
57
+ } else if (adminUserSlug !== incomingUserSlug) {
58
+ throw new Error('Unauthorized');
59
+ }
60
+ } else {
61
+ const hasUsers = await payload.find({
62
+ collection: adminUserSlug,
63
+ depth: 0,
64
+ limit: 1,
65
+ pagination: false
66
+ });
67
+ // If there are users, we should not allow access because of /create-first-user
68
+ if (hasUsers.docs.length) {
69
+ throw new Error('Unauthorized');
70
+ }
71
+ }
72
+ const clientConfig = getClientConfig({
73
+ config,
74
+ i18n
75
+ });
76
+ let preferences;
77
+ if (docID) {
78
+ const preferencesKey = `${collectionSlug}-edit-${docID}`;
79
+ preferences = await payload.find({
80
+ collection: 'payload-preferences',
81
+ depth: 0,
82
+ limit: 1,
83
+ where: {
84
+ and: [{
85
+ key: {
86
+ equals: preferencesKey
87
+ }
88
+ }, {
89
+ 'user.relationTo': {
90
+ equals: user.collection
91
+ }
92
+ }, {
93
+ 'user.value': {
94
+ equals: user.id
95
+ }
96
+ }]
97
+ }
98
+ }).then(res => res.docs[0]?.value);
99
+ }
100
+ const visibleEntities = {
101
+ collections: payload.config.collections.map(({
102
+ slug,
103
+ admin: {
104
+ hidden
105
+ }
106
+ }) => !isEntityHidden({
107
+ hidden,
108
+ user
109
+ }) ? slug : null).filter(Boolean),
110
+ globals: payload.config.globals.map(({
111
+ slug,
112
+ admin: {
113
+ hidden
114
+ }
115
+ }) => !isEntityHidden({
116
+ hidden,
117
+ user
118
+ }) ? slug : null).filter(Boolean)
119
+ };
120
+ const permissions = await getAccessResults({
121
+ req
122
+ });
123
+ const {
124
+ data,
125
+ Document
126
+ } = await renderDocument({
127
+ clientConfig,
128
+ disableActions,
129
+ drawerSlug,
130
+ importMap: payload.importMap,
131
+ initialData,
132
+ initPageResult: {
133
+ collectionConfig: payload.config.collections.find(collection => collection.slug === collectionSlug),
134
+ cookies,
135
+ docID,
136
+ globalConfig: payload.config.globals.find(global1 => global1.slug === collectionSlug),
137
+ languageOptions: undefined,
138
+ permissions,
139
+ req,
140
+ translations: undefined,
141
+ visibleEntities
142
+ },
143
+ params: {
144
+ segments: ['collections', collectionSlug, docID]
145
+ },
146
+ redirectAfterDelete,
147
+ redirectAfterDuplicate,
148
+ searchParams: {}
149
+ });
150
+ return {
151
+ data,
152
+ Document,
153
+ preferences
154
+ };
155
+ };
156
+ //# sourceMappingURL=handleServerFunction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handleServerFunction.js","names":["headers","getHeaders","createClientConfig","getAccessResults","isEntityHidden","parseCookies","renderDocument","cachedClientConfig","global","_payload_clientConfig","getClientConfig","args","config","i18n","process","env","NODE_ENV","renderDocumentHandler","collectionSlug","disableActions","docID","drawerSlug","initialData","redirectAfterDelete","redirectAfterDuplicate","req","payload","user","cookies","incomingUserSlug","collection","adminUserSlug","admin","adminAccessFunction","collections","access","canAccessAdmin","Error","hasUsers","find","depth","limit","pagination","docs","length","clientConfig","preferences","preferencesKey","where","and","key","equals","id","then","res","value","visibleEntities","map","slug","hidden","filter","Boolean","globals","permissions","data","Document","importMap","initPageResult","collectionConfig","globalConfig","global1","languageOptions","undefined","translations","params","segments","searchParams"],"sources":["../../../src/views/Document/handleServerFunction.tsx"],"sourcesContent":["import type { I18nClient } from '@payloadcms/translations'\nimport type {\n ClientConfig,\n Data,\n DocumentPreferences,\n FormState,\n PayloadRequest,\n SanitizedConfig,\n VisibleEntities,\n} from 'payload'\n\nimport { headers as getHeaders } from 'next/headers.js'\nimport { createClientConfig, getAccessResults, isEntityHidden, parseCookies } from 'payload'\n\nimport { renderDocument } from './index.js'\n\nlet cachedClientConfig = global._payload_clientConfig\n\nif (!cachedClientConfig) {\n cachedClientConfig = global._payload_clientConfig = null\n}\n\nexport const getClientConfig = (args: {\n config: SanitizedConfig\n i18n: I18nClient\n}): ClientConfig => {\n const { config, i18n } = args\n\n if (cachedClientConfig && process.env.NODE_ENV !== 'development') {\n return cachedClientConfig\n }\n\n cachedClientConfig = createClientConfig({\n config,\n i18n,\n })\n\n return cachedClientConfig\n}\n\ntype RenderDocumentResult = {\n data: any\n Document: React.ReactNode\n preferences: DocumentPreferences\n}\n\nexport const renderDocumentHandler = async (args: {\n collectionSlug: string\n disableActions?: boolean\n docID: string\n drawerSlug?: string\n initialData?: Data\n initialState?: FormState\n redirectAfterDelete: boolean\n redirectAfterDuplicate: boolean\n req: PayloadRequest\n}): Promise<RenderDocumentResult> => {\n const {\n collectionSlug,\n disableActions,\n docID,\n drawerSlug,\n initialData,\n redirectAfterDelete,\n redirectAfterDuplicate,\n req,\n req: {\n i18n,\n payload,\n payload: { config },\n user,\n },\n } = args\n\n const headers = await getHeaders()\n\n const cookies = parseCookies(headers)\n\n const incomingUserSlug = user?.collection\n\n const adminUserSlug = config.admin.user\n\n // If we have a user slug, test it against the functions\n if (incomingUserSlug) {\n const adminAccessFunction = payload.collections[incomingUserSlug].config.access?.admin\n\n // Run the admin access function from the config if it exists\n if (adminAccessFunction) {\n const canAccessAdmin = await adminAccessFunction({ req })\n\n if (!canAccessAdmin) {\n throw new Error('Unauthorized')\n }\n // Match the user collection to the global admin config\n } else if (adminUserSlug !== incomingUserSlug) {\n throw new Error('Unauthorized')\n }\n } else {\n const hasUsers = await payload.find({\n collection: adminUserSlug,\n depth: 0,\n limit: 1,\n pagination: false,\n })\n\n // If there are users, we should not allow access because of /create-first-user\n if (hasUsers.docs.length) {\n throw new Error('Unauthorized')\n }\n }\n\n const clientConfig = getClientConfig({\n config,\n i18n,\n })\n\n let preferences: DocumentPreferences\n\n if (docID) {\n const preferencesKey = `${collectionSlug}-edit-${docID}`\n\n preferences = await payload\n .find({\n collection: 'payload-preferences',\n depth: 0,\n limit: 1,\n where: {\n and: [\n {\n key: {\n equals: preferencesKey,\n },\n },\n {\n 'user.relationTo': {\n equals: user.collection,\n },\n },\n {\n 'user.value': {\n equals: user.id,\n },\n },\n ],\n },\n })\n .then((res) => res.docs[0]?.value as DocumentPreferences)\n }\n\n const visibleEntities: VisibleEntities = {\n collections: payload.config.collections\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n globals: payload.config.globals\n .map(({ slug, admin: { hidden } }) => (!isEntityHidden({ hidden, user }) ? slug : null))\n .filter(Boolean),\n }\n\n const permissions = await getAccessResults({\n req,\n })\n\n const { data, Document } = await renderDocument({\n clientConfig,\n disableActions,\n drawerSlug,\n importMap: payload.importMap,\n initialData,\n initPageResult: {\n collectionConfig: payload.config.collections.find(\n (collection) => collection.slug === collectionSlug,\n ),\n cookies,\n docID,\n globalConfig: payload.config.globals.find((global) => global.slug === collectionSlug),\n languageOptions: undefined, // TODO\n permissions,\n req,\n translations: undefined, // TODO\n visibleEntities,\n },\n params: {\n segments: ['collections', collectionSlug, docID],\n },\n redirectAfterDelete,\n redirectAfterDuplicate,\n searchParams: {},\n })\n\n return {\n data,\n Document,\n preferences,\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,10 @@
1
- import type { AdminViewProps } from 'payload';
1
+ import type { AdminViewProps, Data } from 'payload';
2
2
  import React from 'react';
3
3
  import type { GenerateEditViewMetadata } from './getMetaBySegment.js';
4
4
  export declare const generateMetadata: GenerateEditViewMetadata;
5
+ export declare const renderDocument: ({ disableActions, drawerSlug, importMap, initialData, initPageResult, params, redirectAfterDelete, redirectAfterDuplicate, searchParams, }: AdminViewProps) => Promise<{
6
+ data: Data;
7
+ Document: React.ReactNode;
8
+ }>;
5
9
  export declare const Document: React.FC<AdminViewProps>;
6
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EAIf,MAAM,SAAS,CAAA;AAUhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AASrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAEhG,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAkS7C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/views/Document/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,IAAI,EAIL,MAAM,SAAS,CAAA;AAQhB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAA;AAcrE,eAAO,MAAM,gBAAgB,EAAE,wBAAiE,CAAA;AAKhG,eAAO,MAAM,cAAc,+IAUxB,cAAc,KAAG,OAAO,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAA;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAC1B,CAkUA,CAAA;AAED,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAc7C,CAAA"}