@payloadcms/next 3.0.0-canary.f83d96a → 3.0.0-canary.fb81f02

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 (339) hide show
  1. package/dist/cjs/withPayload.cjs +18 -11
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +5 -1
  5. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -1
  6. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +1 -1
  7. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -1
  8. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -1
  9. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +7 -5
  10. package/dist/elements/DocumentHeader/Tabs/index.scss +0 -1
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -1
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  13. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  14. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +2 -2
  15. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  16. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  17. package/dist/elements/DocumentHeader/index.scss +0 -2
  18. package/dist/elements/EmailAndUsername/index.d.ts +14 -0
  19. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
  20. package/dist/elements/EmailAndUsername/index.js +85 -0
  21. package/dist/elements/EmailAndUsername/index.js.map +1 -0
  22. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  23. package/dist/elements/LeaveWithoutSaving/index.js +2 -0
  24. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  25. package/dist/elements/LeaveWithoutSaving/index.scss +1 -0
  26. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  27. package/dist/elements/Nav/index.client.js +20 -11
  28. package/dist/elements/Nav/index.client.js.map +1 -1
  29. package/dist/elements/Nav/index.scss +17 -14
  30. package/dist/layouts/Root/index.d.ts.map +1 -1
  31. package/dist/layouts/Root/index.js +16 -19
  32. package/dist/layouts/Root/index.js.map +1 -1
  33. package/dist/prod/styles.css +1 -1
  34. package/dist/routes/graphql/handler.d.ts.map +1 -1
  35. package/dist/routes/graphql/handler.js +7 -15
  36. package/dist/routes/graphql/handler.js.map +1 -1
  37. package/dist/routes/rest/auth/forgotPassword.d.ts.map +1 -1
  38. package/dist/routes/rest/auth/forgotPassword.js +7 -3
  39. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  40. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  41. package/dist/routes/rest/auth/login.js +9 -4
  42. package/dist/routes/rest/auth/login.js.map +1 -1
  43. package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
  44. package/dist/routes/rest/auth/registerFirstUser.js +9 -2
  45. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  46. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  47. package/dist/routes/rest/auth/unlock.js +7 -3
  48. package/dist/routes/rest/auth/unlock.js.map +1 -1
  49. package/dist/routes/rest/auth/verifyEmail.js +1 -1
  50. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  51. package/dist/routes/rest/buildFormState.d.ts +2 -2
  52. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  53. package/dist/routes/rest/buildFormState.js.map +1 -1
  54. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  55. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  56. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  57. package/dist/routes/rest/files/checkFileAccess.d.ts +2 -2
  58. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  59. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  60. package/dist/routes/rest/files/getFile.d.ts +2 -2
  61. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  62. package/dist/routes/rest/files/getFile.js.map +1 -1
  63. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  64. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  65. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  66. package/dist/routes/rest/index.d.ts.map +1 -1
  67. package/dist/routes/rest/index.js +88 -95
  68. package/dist/routes/rest/index.js.map +1 -1
  69. package/dist/routes/rest/og/index.d.ts +2 -2
  70. package/dist/routes/rest/og/index.d.ts.map +1 -1
  71. package/dist/routes/rest/og/index.js.map +1 -1
  72. package/dist/routes/rest/routeError.d.ts +2 -2
  73. package/dist/routes/rest/routeError.d.ts.map +1 -1
  74. package/dist/routes/rest/routeError.js +3 -3
  75. package/dist/routes/rest/routeError.js.map +1 -1
  76. package/dist/routes/rest/types.d.ts +7 -7
  77. package/dist/routes/rest/types.d.ts.map +1 -1
  78. package/dist/routes/rest/types.js.map +1 -1
  79. package/dist/scss/app.scss +10 -15
  80. package/dist/scss/colors.scss +76 -76
  81. package/dist/scss/toastify.scss +59 -0
  82. package/dist/scss/toasts.scss +75 -45
  83. package/dist/scss/type.scss +15 -23
  84. package/dist/scss/vars.scss +26 -47
  85. package/dist/templates/Default/index.d.ts +2 -2
  86. package/dist/templates/Default/index.d.ts.map +1 -1
  87. package/dist/templates/Default/index.js.map +1 -1
  88. package/dist/utilities/addDataAndFileToRequest.d.ts +3 -6
  89. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  90. package/dist/utilities/addDataAndFileToRequest.js +15 -18
  91. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  92. package/dist/utilities/addLocalesToRequest.d.ts +2 -5
  93. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  94. package/dist/utilities/addLocalesToRequest.js +8 -9
  95. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  96. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  97. package/dist/utilities/createPayloadRequest.js +11 -8
  98. package/dist/utilities/createPayloadRequest.js.map +1 -1
  99. package/dist/utilities/getNextRequestI18n.d.ts +3 -3
  100. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  101. package/dist/utilities/getNextRequestI18n.js +3 -1
  102. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  103. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  104. package/dist/utilities/getPayloadHMR.js +11 -8
  105. package/dist/utilities/getPayloadHMR.js.map +1 -1
  106. package/dist/utilities/headersWithCors.d.ts +2 -2
  107. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  108. package/dist/utilities/headersWithCors.js +19 -3
  109. package/dist/utilities/headersWithCors.js.map +1 -1
  110. package/dist/utilities/initPage/handleAdminPage.d.ts +4 -0
  111. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  112. package/dist/utilities/initPage/handleAdminPage.js +17 -4
  113. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  114. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  115. package/dist/utilities/initPage/handleAuthRedirect.js +16 -4
  116. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  117. package/dist/utilities/initPage/index.d.ts.map +1 -1
  118. package/dist/utilities/initPage/index.js +2 -1
  119. package/dist/utilities/initPage/index.js.map +1 -1
  120. package/dist/utilities/initPage/shared.d.ts +14 -2
  121. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  122. package/dist/utilities/initPage/shared.js +14 -4
  123. package/dist/utilities/initPage/shared.js.map +1 -1
  124. package/dist/utilities/mergeHeaders.d.ts +1 -1
  125. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  126. package/dist/utilities/mergeHeaders.js +7 -33
  127. package/dist/utilities/mergeHeaders.js.map +1 -1
  128. package/dist/utilities/meta.d.ts +2 -2
  129. package/dist/utilities/meta.d.ts.map +1 -1
  130. package/dist/utilities/meta.js +3 -5
  131. package/dist/utilities/meta.js.map +1 -1
  132. package/dist/views/API/index.scss +1 -2
  133. package/dist/views/Account/index.client.d.ts +3 -0
  134. package/dist/views/Account/index.client.d.ts.map +1 -0
  135. package/dist/views/Account/index.client.js +21 -0
  136. package/dist/views/Account/index.client.js.map +1 -0
  137. package/dist/views/Account/index.d.ts.map +1 -1
  138. package/dist/views/Account/index.js +21 -26
  139. package/dist/views/Account/index.js.map +1 -1
  140. package/dist/views/CreateFirstUser/index.client.d.ts +2 -1
  141. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  142. package/dist/views/CreateFirstUser/index.client.js +14 -12
  143. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  144. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  145. package/dist/views/CreateFirstUser/index.js +11 -29
  146. package/dist/views/CreateFirstUser/index.js.map +1 -1
  147. package/dist/views/CreateFirstUser/index.scss +4 -0
  148. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  149. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  150. package/dist/views/Dashboard/Default/index.js +13 -4
  151. package/dist/views/Dashboard/Default/index.js.map +1 -1
  152. package/dist/views/Dashboard/Default/index.scss +11 -7
  153. package/dist/views/Dashboard/index.js +3 -4
  154. package/dist/views/Dashboard/index.js.map +1 -1
  155. package/dist/views/Document/getDocumentData.d.ts +3 -2
  156. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  157. package/dist/views/Document/getDocumentData.js +4 -3
  158. package/dist/views/Document/getDocumentData.js.map +1 -1
  159. package/dist/views/Document/getMetaBySegment.d.ts +2 -2
  160. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  161. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  162. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  163. package/dist/views/Document/getViewsFromConfig.js +19 -5
  164. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  165. package/dist/views/Document/index.d.ts.map +1 -1
  166. package/dist/views/Document/index.js +26 -40
  167. package/dist/views/Document/index.js.map +1 -1
  168. package/dist/views/Edit/Default/Auth/APIKey.d.ts +2 -2
  169. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  170. package/dist/views/Edit/Default/Auth/APIKey.js +36 -8
  171. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  172. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  173. package/dist/views/Edit/Default/Auth/index.js +69 -26
  174. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  175. package/dist/views/Edit/Default/Auth/index.scss +17 -2
  176. package/dist/views/Edit/Default/Auth/types.d.ts +4 -0
  177. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  178. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  179. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  180. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +15 -5
  181. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  182. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  183. package/dist/views/Edit/Default/index.js +34 -25
  184. package/dist/views/Edit/Default/index.js.map +1 -1
  185. package/dist/views/Edit/Default/index.scss +2 -2
  186. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  187. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +34 -6
  188. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  189. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  190. package/dist/views/ForgotPassword/index.js +12 -4
  191. package/dist/views/ForgotPassword/index.js.map +1 -1
  192. package/dist/views/List/Default/index.d.ts.map +1 -1
  193. package/dist/views/List/Default/index.js +28 -30
  194. package/dist/views/List/Default/index.js.map +1 -1
  195. package/dist/views/List/Default/index.scss +7 -17
  196. package/dist/views/List/index.d.ts.map +1 -1
  197. package/dist/views/List/index.js +33 -12
  198. package/dist/views/List/index.js.map +1 -1
  199. package/dist/views/List/meta.d.ts +2 -2
  200. package/dist/views/List/meta.d.ts.map +1 -1
  201. package/dist/views/List/meta.js.map +1 -1
  202. package/dist/views/LivePreview/Preview/index.js +1 -1
  203. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  204. package/dist/views/LivePreview/Toolbar/index.d.ts +2 -2
  205. package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  206. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  207. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  208. package/dist/views/LivePreview/index.client.js.map +1 -1
  209. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  210. package/dist/views/Login/LoginField/index.d.ts +9 -0
  211. package/dist/views/Login/LoginField/index.d.ts.map +1 -0
  212. package/dist/views/Login/LoginField/index.js +46 -0
  213. package/dist/views/Login/LoginField/index.js.map +1 -0
  214. package/dist/views/Login/LoginForm/index.d.ts +3 -0
  215. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  216. package/dist/views/Login/LoginForm/index.js +40 -51
  217. package/dist/views/Login/LoginForm/index.js.map +1 -1
  218. package/dist/views/Login/index.d.ts.map +1 -1
  219. package/dist/views/Login/index.js +7 -0
  220. package/dist/views/Login/index.js.map +1 -1
  221. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  222. package/dist/views/Logout/LogoutClient.js +7 -2
  223. package/dist/views/Logout/LogoutClient.js.map +1 -1
  224. package/dist/views/Logout/index.d.ts +2 -2
  225. package/dist/views/Logout/index.d.ts.map +1 -1
  226. package/dist/views/Logout/index.js +2 -2
  227. package/dist/views/Logout/index.js.map +1 -1
  228. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  229. package/dist/views/NotFound/index.client.js +3 -2
  230. package/dist/views/NotFound/index.client.js.map +1 -1
  231. package/dist/views/NotFound/index.d.ts.map +1 -1
  232. package/dist/views/NotFound/index.js +17 -22
  233. package/dist/views/NotFound/index.js.map +1 -1
  234. package/dist/views/NotFound/meta.d.ts +2 -2
  235. package/dist/views/NotFound/meta.d.ts.map +1 -1
  236. package/dist/views/NotFound/meta.js.map +1 -1
  237. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  238. package/dist/views/ResetPassword/index.client.js +19 -31
  239. package/dist/views/ResetPassword/index.client.js.map +1 -1
  240. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  241. package/dist/views/ResetPassword/index.js +7 -3
  242. package/dist/views/ResetPassword/index.js.map +1 -1
  243. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  244. package/dist/views/Root/getViewFromConfig.js +5 -1
  245. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  246. package/dist/views/Root/index.d.ts +2 -2
  247. package/dist/views/Root/index.d.ts.map +1 -1
  248. package/dist/views/Root/index.js +14 -8
  249. package/dist/views/Root/index.js.map +1 -1
  250. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  251. package/dist/views/Unauthorized/index.js +1 -0
  252. package/dist/views/Unauthorized/index.js.map +1 -1
  253. package/dist/views/Verify/index.d.ts.map +1 -1
  254. package/dist/views/Verify/index.js +9 -2
  255. package/dist/views/Verify/index.js.map +1 -1
  256. package/dist/views/Version/Default/SetStepNav.d.ts +1 -3
  257. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  258. package/dist/views/Version/Default/SetStepNav.js +28 -13
  259. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  260. package/dist/views/Version/Default/index.d.ts.map +1 -1
  261. package/dist/views/Version/Default/index.js +15 -15
  262. package/dist/views/Version/Default/index.js.map +1 -1
  263. package/dist/views/Version/Default/types.d.ts +3 -3
  264. package/dist/views/Version/Default/types.d.ts.map +1 -1
  265. package/dist/views/Version/Default/types.js.map +1 -1
  266. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  267. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  268. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +41 -21
  269. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  270. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -4
  271. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  272. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  273. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -3
  274. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  275. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  276. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +11 -11
  277. package/dist/views/Version/RenderFieldsToDiff/fields/index.js +3 -2
  278. package/dist/views/Version/RenderFieldsToDiff/fields/index.js.map +1 -1
  279. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +1 -2
  280. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  281. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  282. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +3 -4
  283. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  284. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  285. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  286. package/dist/views/Version/Restore/index.js +46 -13
  287. package/dist/views/Version/Restore/index.js.map +1 -1
  288. package/dist/views/Version/Restore/index.scss +31 -0
  289. package/dist/views/Version/Restore/types.d.ts +1 -0
  290. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  291. package/dist/views/Version/Restore/types.js.map +1 -1
  292. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  293. package/dist/views/Version/SelectComparison/index.js +49 -28
  294. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  295. package/dist/views/Version/SelectComparison/index.scss +1 -1
  296. package/dist/views/Version/SelectComparison/types.d.ts +2 -1
  297. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  298. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  299. package/dist/views/Version/index.d.ts +1 -1
  300. package/dist/views/Version/index.d.ts.map +1 -1
  301. package/dist/views/Version/index.js +55 -43
  302. package/dist/views/Version/index.js.map +1 -1
  303. package/dist/views/Versions/buildColumns.d.ts +3 -1
  304. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  305. package/dist/views/Versions/buildColumns.js +7 -4
  306. package/dist/views/Versions/buildColumns.js.map +1 -1
  307. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -1
  308. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  309. package/dist/views/Versions/cells/AutosaveCell/index.js +31 -13
  310. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  311. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  312. package/dist/views/Versions/cells/CreatedAt/index.js +10 -4
  313. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  314. package/dist/views/Versions/getLatestVersion.d.ts +14 -0
  315. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -0
  316. package/dist/views/Versions/getLatestVersion.js +34 -0
  317. package/dist/views/Versions/getLatestVersion.js.map +1 -0
  318. package/dist/views/Versions/index.client.d.ts.map +1 -1
  319. package/dist/views/Versions/index.client.js +3 -2
  320. package/dist/views/Versions/index.client.js.map +1 -1
  321. package/dist/views/Versions/index.d.ts.map +1 -1
  322. package/dist/views/Versions/index.js +45 -3
  323. package/dist/views/Versions/index.js.map +1 -1
  324. package/dist/withPayload.d.ts.map +1 -1
  325. package/dist/withPayload.js +18 -11
  326. package/dist/withPayload.js.map +1 -1
  327. package/package.json +20 -26
  328. package/dist/prod/index.js +0 -62
  329. package/dist/prod/payload/payload-favicon-dark.png +0 -0
  330. package/dist/prod/payload/payload-favicon-light.png +0 -0
  331. package/dist/prod/payload/static-og-image.png +0 -0
  332. package/dist/views/Version/shared.d.ts +0 -9
  333. package/dist/views/Version/shared.d.ts.map +0 -1
  334. package/dist/views/Version/shared.js +0 -10
  335. package/dist/views/Version/shared.js.map +0 -1
  336. package/dist/webpackEntry.d.ts +0 -5
  337. package/dist/webpackEntry.d.ts.map +0 -1
  338. package/dist/webpackEntry.js +0 -6
  339. package/dist/webpackEntry.js.map +0 -1
@@ -1,10 +1,7 @@
1
- import type { PayloadRequest, PayloadRequestData } from 'payload';
2
- type ReturnType = PayloadRequest & PayloadRequestData;
3
- type AddDataAndFileToRequest = (args: {
4
- request: PayloadRequest;
5
- }) => Promise<ReturnType>;
1
+ import type { PayloadRequest } from 'payload';
2
+ type AddDataAndFileToRequest = (req: PayloadRequest) => Promise<void>;
6
3
  /**
7
- * Mutates the Request to contain 'data' and 'file' if present
4
+ * Mutates the Request, appending 'data' and 'file' if found
8
5
  */
9
6
  export declare const addDataAndFileToRequest: AddDataAndFileToRequest;
10
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"addDataAndFileToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addDataAndFileToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAQjE,KAAK,UAAU,GAAG,cAAc,GAAG,kBAAkB,CAAA;AACrD,KAAK,uBAAuB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;AAEzF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,uBA+CrC,CAAA"}
1
+ {"version":3,"file":"addDataAndFileToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addDataAndFileToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAQ7C,KAAK,uBAAuB,GAAG,CAAC,GAAG,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;AAErE;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,uBAoCrC,CAAA"}
@@ -1,45 +1,42 @@
1
1
  import { APIError } from 'payload';
2
2
  import { fetchAPIFileUpload } from '../fetchAPI-multipart/index.js';
3
3
  /**
4
- * Mutates the Request to contain 'data' and 'file' if present
5
- */ export const addDataAndFileToRequest = async ({ request: incomingRequest })=>{
6
- const config = incomingRequest.payload.config;
7
- if (incomingRequest.method && [
4
+ * Mutates the Request, appending 'data' and 'file' if found
5
+ */ export const addDataAndFileToRequest = async (req)=>{
6
+ const { body, headers, method, payload } = req;
7
+ if (method && [
8
8
  'PATCH',
9
9
  'POST',
10
10
  'PUT'
11
- ].includes(incomingRequest.method.toUpperCase()) && incomingRequest.body) {
12
- const [contentType] = (incomingRequest.headers.get('Content-Type') || '').split(';');
13
- const mutableRequest = incomingRequest;
14
- const bodyByteSize = parseInt(incomingRequest.headers.get('Content-Length') || '0', 10);
11
+ ].includes(method.toUpperCase()) && body) {
12
+ const [contentType] = (headers.get('Content-Type') || '').split(';');
13
+ const bodyByteSize = parseInt(req.headers.get('Content-Length') || '0', 10);
15
14
  if (contentType === 'application/json') {
16
15
  let data = {};
17
16
  try {
18
- data = await mutableRequest.json();
17
+ data = await req.json();
19
18
  } catch (error) {
20
- mutableRequest.payload.logger.error(error);
19
+ req.payload.logger.error(error);
21
20
  } finally{
22
- mutableRequest.data = data;
23
- mutableRequest.json = ()=>Promise.resolve(data);
21
+ req.data = data;
22
+ req.json = ()=>Promise.resolve(data);
24
23
  }
25
24
  } else if (bodyByteSize && contentType.includes('multipart/')) {
26
25
  const { error, fields, files } = await fetchAPIFileUpload({
27
- options: config.upload,
28
- request: mutableRequest
26
+ options: payload.config.upload,
27
+ request: req
29
28
  });
30
29
  if (error) {
31
30
  throw new APIError(error.message);
32
31
  }
33
32
  if (files?.file) {
34
- mutableRequest.file = files.file;
33
+ req.file = files.file;
35
34
  }
36
35
  if (fields?._payload && typeof fields._payload === 'string') {
37
- mutableRequest.data = JSON.parse(fields._payload);
36
+ req.data = JSON.parse(fields._payload);
38
37
  }
39
38
  }
40
- return mutableRequest;
41
39
  }
42
- return incomingRequest;
43
40
  };
44
41
 
45
42
  //# sourceMappingURL=addDataAndFileToRequest.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type { PayloadRequest, PayloadRequestData } from 'payload'\n\nimport { APIError } from 'payload'\n\nimport type { FetchAPIFileUploadOptions } from '../fetchAPI-multipart/index.js'\n\nimport { fetchAPIFileUpload } from '../fetchAPI-multipart/index.js'\n\ntype ReturnType = PayloadRequest & PayloadRequestData\ntype AddDataAndFileToRequest = (args: { request: PayloadRequest }) => Promise<ReturnType>\n\n/**\n * Mutates the Request to contain 'data' and 'file' if present\n */\nexport const addDataAndFileToRequest: AddDataAndFileToRequest = async ({\n request: incomingRequest,\n}) => {\n const config = incomingRequest.payload.config\n\n if (\n incomingRequest.method &&\n ['PATCH', 'POST', 'PUT'].includes(incomingRequest.method.toUpperCase()) &&\n incomingRequest.body\n ) {\n const [contentType] = (incomingRequest.headers.get('Content-Type') || '').split(';')\n const mutableRequest = incomingRequest as ReturnType\n const bodyByteSize = parseInt(incomingRequest.headers.get('Content-Length') || '0', 10)\n\n if (contentType === 'application/json') {\n let data = {}\n try {\n data = await mutableRequest.json()\n } catch (error) {\n mutableRequest.payload.logger.error(error)\n } finally {\n mutableRequest.data = data\n mutableRequest.json = () => Promise.resolve(data)\n }\n } else if (bodyByteSize && contentType.includes('multipart/')) {\n const { error, fields, files } = await fetchAPIFileUpload({\n options: config.upload as FetchAPIFileUploadOptions,\n request: mutableRequest as Request,\n })\n\n if (error) {\n throw new APIError(error.message)\n }\n\n if (files?.file) {\n mutableRequest.file = files.file\n }\n\n if (fields?._payload && typeof fields._payload === 'string') {\n mutableRequest.data = JSON.parse(fields._payload)\n }\n }\n\n return mutableRequest\n }\n\n return incomingRequest\n}\n"],"names":["APIError","fetchAPIFileUpload","addDataAndFileToRequest","request","incomingRequest","config","payload","method","includes","toUpperCase","body","contentType","headers","get","split","mutableRequest","bodyByteSize","parseInt","data","json","error","logger","Promise","resolve","fields","files","options","upload","message","file","_payload","JSON","parse"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,UAAS;AAIlC,SAASC,kBAAkB,QAAQ,iCAAgC;AAKnE;;CAEC,GACD,OAAO,MAAMC,0BAAmD,OAAO,EACrEC,SAASC,eAAe,EACzB;IACC,MAAMC,SAASD,gBAAgBE,OAAO,CAACD,MAAM;IAE7C,IACED,gBAAgBG,MAAM,IACtB;QAAC;QAAS;QAAQ;KAAM,CAACC,QAAQ,CAACJ,gBAAgBG,MAAM,CAACE,WAAW,OACpEL,gBAAgBM,IAAI,EACpB;QACA,MAAM,CAACC,YAAY,GAAG,AAACP,CAAAA,gBAAgBQ,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAC,EAAGC,KAAK,CAAC;QAChF,MAAMC,iBAAiBX;QACvB,MAAMY,eAAeC,SAASb,gBAAgBQ,OAAO,CAACC,GAAG,CAAC,qBAAqB,KAAK;QAEpF,IAAIF,gBAAgB,oBAAoB;YACtC,IAAIO,OAAO,CAAC;YACZ,IAAI;gBACFA,OAAO,MAAMH,eAAeI,IAAI;YAClC,EAAE,OAAOC,OAAO;gBACdL,eAAeT,OAAO,CAACe,MAAM,CAACD,KAAK,CAACA;YACtC,SAAU;gBACRL,eAAeG,IAAI,GAAGA;gBACtBH,eAAeI,IAAI,GAAG,IAAMG,QAAQC,OAAO,CAACL;YAC9C;QACF,OAAO,IAAIF,gBAAgBL,YAAYH,QAAQ,CAAC,eAAe;YAC7D,MAAM,EAAEY,KAAK,EAAEI,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAMxB,mBAAmB;gBACxDyB,SAASrB,OAAOsB,MAAM;gBACtBxB,SAASY;YACX;YAEA,IAAIK,OAAO;gBACT,MAAM,IAAIpB,SAASoB,MAAMQ,OAAO;YAClC;YAEA,IAAIH,OAAOI,MAAM;gBACfd,eAAec,IAAI,GAAGJ,MAAMI,IAAI;YAClC;YAEA,IAAIL,QAAQM,YAAY,OAAON,OAAOM,QAAQ,KAAK,UAAU;gBAC3Df,eAAeG,IAAI,GAAGa,KAAKC,KAAK,CAACR,OAAOM,QAAQ;YAClD;QACF;QAEA,OAAOf;IACT;IAEA,OAAOX;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport { APIError } from 'payload'\n\nimport type { FetchAPIFileUploadOptions } from '../fetchAPI-multipart/index.js'\n\nimport { fetchAPIFileUpload } from '../fetchAPI-multipart/index.js'\n\ntype AddDataAndFileToRequest = (req: PayloadRequest) => Promise<void>\n\n/**\n * Mutates the Request, appending 'data' and 'file' if found\n */\nexport const addDataAndFileToRequest: AddDataAndFileToRequest = async (req) => {\n const { body, headers, method, payload } = req\n\n if (method && ['PATCH', 'POST', 'PUT'].includes(method.toUpperCase()) && body) {\n const [contentType] = (headers.get('Content-Type') || '').split(';')\n const bodyByteSize = parseInt(req.headers.get('Content-Length') || '0', 10)\n\n if (contentType === 'application/json') {\n let data = {}\n try {\n data = await req.json()\n } catch (error) {\n req.payload.logger.error(error)\n } finally {\n req.data = data\n req.json = () => Promise.resolve(data)\n }\n } else if (bodyByteSize && contentType.includes('multipart/')) {\n const { error, fields, files } = await fetchAPIFileUpload({\n options: payload.config.upload as FetchAPIFileUploadOptions,\n request: req as Request,\n })\n\n if (error) {\n throw new APIError(error.message)\n }\n\n if (files?.file) {\n req.file = files.file\n }\n\n if (fields?._payload && typeof fields._payload === 'string') {\n req.data = JSON.parse(fields._payload)\n }\n }\n }\n}\n"],"names":["APIError","fetchAPIFileUpload","addDataAndFileToRequest","req","body","headers","method","payload","includes","toUpperCase","contentType","get","split","bodyByteSize","parseInt","data","json","error","logger","Promise","resolve","fields","files","options","config","upload","request","message","file","_payload","JSON","parse"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,UAAS;AAIlC,SAASC,kBAAkB,QAAQ,iCAAgC;AAInE;;CAEC,GACD,OAAO,MAAMC,0BAAmD,OAAOC;IACrE,MAAM,EAAEC,IAAI,EAAEC,OAAO,EAAEC,MAAM,EAAEC,OAAO,EAAE,GAAGJ;IAE3C,IAAIG,UAAU;QAAC;QAAS;QAAQ;KAAM,CAACE,QAAQ,CAACF,OAAOG,WAAW,OAAOL,MAAM;QAC7E,MAAM,CAACM,YAAY,GAAG,AAACL,CAAAA,QAAQM,GAAG,CAAC,mBAAmB,EAAC,EAAGC,KAAK,CAAC;QAChE,MAAMC,eAAeC,SAASX,IAAIE,OAAO,CAACM,GAAG,CAAC,qBAAqB,KAAK;QAExE,IAAID,gBAAgB,oBAAoB;YACtC,IAAIK,OAAO,CAAC;YACZ,IAAI;gBACFA,OAAO,MAAMZ,IAAIa,IAAI;YACvB,EAAE,OAAOC,OAAO;gBACdd,IAAII,OAAO,CAACW,MAAM,CAACD,KAAK,CAACA;YAC3B,SAAU;gBACRd,IAAIY,IAAI,GAAGA;gBACXZ,IAAIa,IAAI,GAAG,IAAMG,QAAQC,OAAO,CAACL;YACnC;QACF,OAAO,IAAIF,gBAAgBH,YAAYF,QAAQ,CAAC,eAAe;YAC7D,MAAM,EAAES,KAAK,EAAEI,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAMrB,mBAAmB;gBACxDsB,SAAShB,QAAQiB,MAAM,CAACC,MAAM;gBAC9BC,SAASvB;YACX;YAEA,IAAIc,OAAO;gBACT,MAAM,IAAIjB,SAASiB,MAAMU,OAAO;YAClC;YAEA,IAAIL,OAAOM,MAAM;gBACfzB,IAAIyB,IAAI,GAAGN,MAAMM,IAAI;YACvB;YAEA,IAAIP,QAAQQ,YAAY,OAAOR,OAAOQ,QAAQ,KAAK,UAAU;gBAC3D1B,IAAIY,IAAI,GAAGe,KAAKC,KAAK,CAACV,OAAOQ,QAAQ;YACvC;QACF;IACF;AACF,EAAC"}
@@ -1,11 +1,8 @@
1
- import type { PayloadRequest, PayloadRequestData, PayloadRequestWithData, SanitizedConfig } from 'payload';
1
+ import type { PayloadRequest, SanitizedConfig } from 'payload';
2
2
  /**
3
3
  * Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams
4
4
  */
5
- type Args = {
6
- request: PayloadRequest & PayloadRequestData;
7
- };
8
- export declare function addLocalesToRequestFromData({ request }: Args): PayloadRequestWithData;
5
+ export declare function addLocalesToRequestFromData(req: PayloadRequest): void;
9
6
  type SanitizeLocalesArgs = {
10
7
  fallbackLocale: string;
11
8
  locale: string;
@@ -1 +1 @@
1
- {"version":3,"file":"addLocalesToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addLocalesToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,SAAS,CAAA;AAEhB;;GAEG;AACH,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAA;CAC7C,CAAA;AACD,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,GAAG,sBAAsB,CAmCrF;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AACD,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,qBAiBxB,CAAA"}
1
+ {"version":3,"file":"addLocalesToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addLocalesToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9D;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,CA+BrE;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AACD,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,qBAiBxB,CAAA"}
@@ -1,8 +1,10 @@
1
- export function addLocalesToRequestFromData({ request }) {
2
- const { data, payload: { config } } = request;
1
+ /**
2
+ * Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams
3
+ */ export function addLocalesToRequestFromData(req) {
4
+ const { data, payload: { config } } = req;
3
5
  if (data) {
4
- let localeOnReq = request.locale;
5
- let fallbackLocaleOnReq = request.fallbackLocale;
6
+ let localeOnReq = req.locale;
7
+ let fallbackLocaleOnReq = req.fallbackLocale;
6
8
  if (!localeOnReq && data?.locale && typeof data.locale === 'string') {
7
9
  localeOnReq = data.locale;
8
10
  }
@@ -14,12 +16,9 @@ export function addLocalesToRequestFromData({ request }) {
14
16
  locale: localeOnReq,
15
17
  localization: config.localization
16
18
  });
17
- const mutableRequest = request;
18
- if (locale) mutableRequest.locale = locale;
19
- if (fallbackLocale) mutableRequest.fallbackLocale = fallbackLocale;
20
- return mutableRequest;
19
+ if (locale) req.locale = locale;
20
+ if (fallbackLocale) req.fallbackLocale = fallbackLocale;
21
21
  }
22
- return request;
23
22
  }
24
23
  export const sanitizeLocales = ({ fallbackLocale, locale, localization })=>{
25
24
  if ([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/addLocalesToRequest.ts"],"sourcesContent":["import type {\n PayloadRequest,\n PayloadRequestData,\n PayloadRequestWithData,\n SanitizedConfig,\n} from 'payload'\n\n/**\n * Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams\n */\ntype Args = {\n request: PayloadRequest & PayloadRequestData\n}\nexport function addLocalesToRequestFromData({ request }: Args): PayloadRequestWithData {\n const {\n data,\n payload: { config },\n } = request\n\n if (data) {\n let localeOnReq = request.locale\n let fallbackLocaleOnReq = request.fallbackLocale\n\n if (!localeOnReq && data?.locale && typeof data.locale === 'string') {\n localeOnReq = data.locale\n }\n\n if (\n !fallbackLocaleOnReq &&\n data?.['fallback-locale'] &&\n typeof data?.['fallback-locale'] === 'string'\n ) {\n fallbackLocaleOnReq = data['fallback-locale']\n }\n\n const { fallbackLocale, locale } = sanitizeLocales({\n fallbackLocale: fallbackLocaleOnReq,\n locale: localeOnReq,\n localization: config.localization,\n })\n\n const mutableRequest = request\n if (locale) mutableRequest.locale = locale\n if (fallbackLocale) mutableRequest.fallbackLocale = fallbackLocale\n return mutableRequest\n }\n\n return request\n}\n\ntype SanitizeLocalesArgs = {\n fallbackLocale: string\n locale: string\n localization: SanitizedConfig['localization']\n}\ntype SanitizeLocalesReturn = {\n fallbackLocale?: string\n locale?: string\n}\nexport const sanitizeLocales = ({\n fallbackLocale,\n locale,\n localization,\n}: SanitizeLocalesArgs): SanitizeLocalesReturn => {\n if (['none', 'null'].includes(fallbackLocale)) {\n fallbackLocale = 'null'\n } else if (localization && !localization.localeCodes.includes(fallbackLocale)) {\n fallbackLocale = localization.defaultLocale\n }\n\n if (locale === '*') {\n locale = 'all'\n } else if (localization && !localization.localeCodes.includes(locale)) {\n locale = localization.defaultLocale\n }\n\n return {\n fallbackLocale,\n locale,\n }\n}\n"],"names":["addLocalesToRequestFromData","request","data","payload","config","localeOnReq","locale","fallbackLocaleOnReq","fallbackLocale","sanitizeLocales","localization","mutableRequest","includes","localeCodes","defaultLocale"],"mappings":"AAaA,OAAO,SAASA,4BAA4B,EAAEC,OAAO,EAAQ;IAC3D,MAAM,EACJC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACpB,GAAGH;IAEJ,IAAIC,MAAM;QACR,IAAIG,cAAcJ,QAAQK,MAAM;QAChC,IAAIC,sBAAsBN,QAAQO,cAAc;QAEhD,IAAI,CAACH,eAAeH,MAAMI,UAAU,OAAOJ,KAAKI,MAAM,KAAK,UAAU;YACnED,cAAcH,KAAKI,MAAM;QAC3B;QAEA,IACE,CAACC,uBACDL,MAAM,CAAC,kBAAkB,IACzB,OAAOA,MAAM,CAAC,kBAAkB,KAAK,UACrC;YACAK,sBAAsBL,IAAI,CAAC,kBAAkB;QAC/C;QAEA,MAAM,EAAEM,cAAc,EAAEF,MAAM,EAAE,GAAGG,gBAAgB;YACjDD,gBAAgBD;YAChBD,QAAQD;YACRK,cAAcN,OAAOM,YAAY;QACnC;QAEA,MAAMC,iBAAiBV;QACvB,IAAIK,QAAQK,eAAeL,MAAM,GAAGA;QACpC,IAAIE,gBAAgBG,eAAeH,cAAc,GAAGA;QACpD,OAAOG;IACT;IAEA,OAAOV;AACT;AAWA,OAAO,MAAMQ,kBAAkB,CAAC,EAC9BD,cAAc,EACdF,MAAM,EACNI,YAAY,EACQ;IACpB,IAAI;QAAC;QAAQ;KAAO,CAACE,QAAQ,CAACJ,iBAAiB;QAC7CA,iBAAiB;IACnB,OAAO,IAAIE,gBAAgB,CAACA,aAAaG,WAAW,CAACD,QAAQ,CAACJ,iBAAiB;QAC7EA,iBAAiBE,aAAaI,aAAa;IAC7C;IAEA,IAAIR,WAAW,KAAK;QAClBA,SAAS;IACX,OAAO,IAAII,gBAAgB,CAACA,aAAaG,WAAW,CAACD,QAAQ,CAACN,SAAS;QACrEA,SAASI,aAAaI,aAAa;IACrC;IAEA,OAAO;QACLN;QACAF;IACF;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/addLocalesToRequest.ts"],"sourcesContent":["import type { PayloadRequest, SanitizedConfig } from 'payload'\n\n/**\n * Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams\n */\nexport function addLocalesToRequestFromData(req: PayloadRequest): void {\n const {\n data,\n payload: { config },\n } = req\n\n if (data) {\n let localeOnReq = req.locale\n let fallbackLocaleOnReq = req.fallbackLocale\n\n if (!localeOnReq && data?.locale && typeof data.locale === 'string') {\n localeOnReq = data.locale\n }\n\n if (\n !fallbackLocaleOnReq &&\n data?.['fallback-locale'] &&\n typeof data?.['fallback-locale'] === 'string'\n ) {\n fallbackLocaleOnReq = data['fallback-locale']\n }\n\n const { fallbackLocale, locale } = sanitizeLocales({\n fallbackLocale: fallbackLocaleOnReq,\n locale: localeOnReq,\n localization: config.localization,\n })\n\n if (locale) req.locale = locale\n if (fallbackLocale) req.fallbackLocale = fallbackLocale\n }\n}\n\ntype SanitizeLocalesArgs = {\n fallbackLocale: string\n locale: string\n localization: SanitizedConfig['localization']\n}\ntype SanitizeLocalesReturn = {\n fallbackLocale?: string\n locale?: string\n}\nexport const sanitizeLocales = ({\n fallbackLocale,\n locale,\n localization,\n}: SanitizeLocalesArgs): SanitizeLocalesReturn => {\n if (['none', 'null'].includes(fallbackLocale)) {\n fallbackLocale = 'null'\n } else if (localization && !localization.localeCodes.includes(fallbackLocale)) {\n fallbackLocale = localization.defaultLocale\n }\n\n if (locale === '*') {\n locale = 'all'\n } else if (localization && !localization.localeCodes.includes(locale)) {\n locale = localization.defaultLocale\n }\n\n return {\n fallbackLocale,\n locale,\n }\n}\n"],"names":["addLocalesToRequestFromData","req","data","payload","config","localeOnReq","locale","fallbackLocaleOnReq","fallbackLocale","sanitizeLocales","localization","includes","localeCodes","defaultLocale"],"mappings":"AAEA;;CAEC,GACD,OAAO,SAASA,4BAA4BC,GAAmB;IAC7D,MAAM,EACJC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACpB,GAAGH;IAEJ,IAAIC,MAAM;QACR,IAAIG,cAAcJ,IAAIK,MAAM;QAC5B,IAAIC,sBAAsBN,IAAIO,cAAc;QAE5C,IAAI,CAACH,eAAeH,MAAMI,UAAU,OAAOJ,KAAKI,MAAM,KAAK,UAAU;YACnED,cAAcH,KAAKI,MAAM;QAC3B;QAEA,IACE,CAACC,uBACDL,MAAM,CAAC,kBAAkB,IACzB,OAAOA,MAAM,CAAC,kBAAkB,KAAK,UACrC;YACAK,sBAAsBL,IAAI,CAAC,kBAAkB;QAC/C;QAEA,MAAM,EAAEM,cAAc,EAAEF,MAAM,EAAE,GAAGG,gBAAgB;YACjDD,gBAAgBD;YAChBD,QAAQD;YACRK,cAAcN,OAAOM,YAAY;QACnC;QAEA,IAAIJ,QAAQL,IAAIK,MAAM,GAAGA;QACzB,IAAIE,gBAAgBP,IAAIO,cAAc,GAAGA;IAC3C;AACF;AAWA,OAAO,MAAMC,kBAAkB,CAAC,EAC9BD,cAAc,EACdF,MAAM,EACNI,YAAY,EACQ;IACpB,IAAI;QAAC;QAAQ;KAAO,CAACC,QAAQ,CAACH,iBAAiB;QAC7CA,iBAAiB;IACnB,OAAO,IAAIE,gBAAgB,CAACA,aAAaE,WAAW,CAACD,QAAQ,CAACH,iBAAiB;QAC7EA,iBAAiBE,aAAaG,aAAa;IAC7C;IAEA,IAAIP,WAAW,KAAK;QAClBA,SAAS;IACX,OAAO,IAAII,gBAAgB,CAACA,aAAaE,WAAW,CAACD,QAAQ,CAACL,SAAS;QACrEA,SAASI,aAAaG,aAAa;IACrC;IAEA,OAAO;QACLL;QACAF;IACF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"createPayloadRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/createPayloadRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9F,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,oBAAoB,gDAI9B,IAAI,KAAG,OAAO,CAAC,cAAc,CAuF/B,CAAA"}
1
+ {"version":3,"file":"createPayloadRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/createPayloadRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9F,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,oBAAoB,gDAI9B,IAAI,KAAG,OAAO,CAAC,cAAc,CA4F/B,CAAA"}
@@ -1,6 +1,6 @@
1
1
  import { initI18n } from '@payloadcms/translations';
2
2
  import { executeAuthStrategies, getDataLoader, parseCookies } from 'payload';
3
- import qs from 'qs';
3
+ import * as qs from 'qs-esm';
4
4
  import { URL } from 'url';
5
5
  import { sanitizeLocales } from './addLocalesToRequest.js';
6
6
  import { getPayloadHMR } from './getPayloadHMR.js';
@@ -26,6 +26,13 @@ export const createPayloadRequest = async ({ config: configPromise, params, requ
26
26
  });
27
27
  let locale;
28
28
  let fallbackLocale;
29
+ const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override');
30
+ const queryToParse = overrideHttpMethod === 'GET' ? await request.text() : urlProperties.search;
31
+ const query = queryToParse ? qs.parse(queryToParse, {
32
+ arrayLimit: 1000,
33
+ depth: 10,
34
+ ignoreQueryPrefix: true
35
+ }) : {};
29
36
  if (config.localization) {
30
37
  const locales = sanitizeLocales({
31
38
  fallbackLocale: searchParams.get('fallback-locale'),
@@ -34,14 +41,10 @@ export const createPayloadRequest = async ({ config: configPromise, params, requ
34
41
  });
35
42
  locale = locales.locale;
36
43
  fallbackLocale = locales.fallbackLocale;
44
+ // Override if query params are present, in order to respect HTTP method override
45
+ if (query.locale) locale = query.locale;
46
+ if (query?.['fallback-locale']) fallbackLocale = query['fallback-locale'];
37
47
  }
38
- const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override');
39
- const queryToParse = overrideHttpMethod === 'GET' ? await request.text() : urlProperties.search;
40
- const query = queryToParse ? qs.parse(queryToParse, {
41
- arrayLimit: 1000,
42
- depth: 10,
43
- ignoreQueryPrefix: true
44
- }) : {};
45
48
  const customRequest = {
46
49
  context: {},
47
50
  fallbackLocale,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/createPayloadRequest.ts"],"sourcesContent":["import type { CustomPayloadRequestProperties, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { executeAuthStrategies, getDataLoader, parseCookies } from 'payload'\nimport qs from 'qs'\nimport { URL } from 'url'\n\nimport { sanitizeLocales } from './addLocalesToRequest.js'\nimport { getPayloadHMR } from './getPayloadHMR.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\ntype Args = {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: {\n collection: string\n }\n request: Request\n}\n\nexport const createPayloadRequest = async ({\n config: configPromise,\n params,\n request,\n}: Args): Promise<PayloadRequest> => {\n const cookies = parseCookies(request.headers)\n const payload = await getPayloadHMR({ config: configPromise })\n\n const { config } = payload\n\n const urlProperties = new URL(request.url)\n const { pathname, searchParams } = urlProperties\n\n const isGraphQL =\n !config.graphQL.disable && pathname === `${config.routes.api}${config.routes.graphQL}`\n\n const language = getRequestLanguage({\n config,\n cookies,\n headers: request.headers,\n })\n\n const i18n = await initI18n({\n config: config.i18n,\n context: 'api',\n language,\n })\n\n let locale\n let fallbackLocale\n if (config.localization) {\n const locales = sanitizeLocales({\n fallbackLocale: searchParams.get('fallback-locale'),\n locale: searchParams.get('locale'),\n localization: payload.config.localization,\n })\n locale = locales.locale\n fallbackLocale = locales.fallbackLocale\n }\n\n const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override')\n const queryToParse = overrideHttpMethod === 'GET' ? await request.text() : urlProperties.search\n\n const query = queryToParse\n ? qs.parse(queryToParse, {\n arrayLimit: 1000,\n depth: 10,\n ignoreQueryPrefix: true,\n })\n : {}\n\n const customRequest: CustomPayloadRequestProperties = {\n context: {},\n fallbackLocale,\n hash: urlProperties.hash,\n host: urlProperties.host,\n href: urlProperties.href,\n i18n,\n locale,\n origin: urlProperties.origin,\n pathname: urlProperties.pathname,\n payload,\n payloadAPI: isGraphQL ? 'GraphQL' : 'REST',\n payloadDataLoader: undefined,\n payloadUploadSizes: {},\n port: urlProperties.port,\n protocol: urlProperties.protocol,\n query,\n routeParams: params || {},\n search: urlProperties.search,\n searchParams: urlProperties.searchParams,\n t: i18n.t,\n transactionID: undefined,\n user: null,\n }\n\n const req: PayloadRequest = Object.assign(request, customRequest)\n\n req.payloadDataLoader = getDataLoader(req)\n\n const { responseHeaders, user } = await executeAuthStrategies({\n headers: req.headers,\n isGraphQL,\n payload,\n })\n\n req.user = user\n\n if (responseHeaders) req.responseHeaders = responseHeaders\n\n return req\n}\n"],"names":["initI18n","executeAuthStrategies","getDataLoader","parseCookies","qs","URL","sanitizeLocales","getPayloadHMR","getRequestLanguage","createPayloadRequest","config","configPromise","params","request","cookies","headers","payload","urlProperties","url","pathname","searchParams","isGraphQL","graphQL","disable","routes","api","language","i18n","context","locale","fallbackLocale","localization","locales","get","overrideHttpMethod","queryToParse","text","search","query","parse","arrayLimit","depth","ignoreQueryPrefix","customRequest","hash","host","href","origin","payloadAPI","payloadDataLoader","undefined","payloadUploadSizes","port","protocol","routeParams","t","transactionID","user","req","Object","assign","responseHeaders"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,qBAAqB,EAAEC,aAAa,EAAEC,YAAY,QAAQ,UAAS;AAC5E,OAAOC,QAAQ,KAAI;AACnB,SAASC,GAAG,QAAQ,MAAK;AAEzB,SAASC,eAAe,QAAQ,2BAA0B;AAC1D,SAASC,aAAa,QAAQ,qBAAoB;AAClD,SAASC,kBAAkB,QAAQ,0BAAyB;AAU5D,OAAO,MAAMC,uBAAuB,OAAO,EACzCC,QAAQC,aAAa,EACrBC,MAAM,EACNC,OAAO,EACF;IACL,MAAMC,UAAUX,aAAaU,QAAQE,OAAO;IAC5C,MAAMC,UAAU,MAAMT,cAAc;QAAEG,QAAQC;IAAc;IAE5D,MAAM,EAAED,MAAM,EAAE,GAAGM;IAEnB,MAAMC,gBAAgB,IAAIZ,IAAIQ,QAAQK,GAAG;IACzC,MAAM,EAAEC,QAAQ,EAAEC,YAAY,EAAE,GAAGH;IAEnC,MAAMI,YACJ,CAACX,OAAOY,OAAO,CAACC,OAAO,IAAIJ,aAAa,CAAC,EAAET,OAAOc,MAAM,CAACC,GAAG,CAAC,EAAEf,OAAOc,MAAM,CAACF,OAAO,CAAC,CAAC;IAExF,MAAMI,WAAWlB,mBAAmB;QAClCE;QACAI;QACAC,SAASF,QAAQE,OAAO;IAC1B;IAEA,MAAMY,OAAO,MAAM3B,SAAS;QAC1BU,QAAQA,OAAOiB,IAAI;QACnBC,SAAS;QACTF;IACF;IAEA,IAAIG;IACJ,IAAIC;IACJ,IAAIpB,OAAOqB,YAAY,EAAE;QACvB,MAAMC,UAAU1B,gBAAgB;YAC9BwB,gBAAgBV,aAAaa,GAAG,CAAC;YACjCJ,QAAQT,aAAaa,GAAG,CAAC;YACzBF,cAAcf,QAAQN,MAAM,CAACqB,YAAY;QAC3C;QACAF,SAASG,QAAQH,MAAM;QACvBC,iBAAiBE,QAAQF,cAAc;IACzC;IAEA,MAAMI,qBAAqBrB,QAAQE,OAAO,CAACkB,GAAG,CAAC;IAC/C,MAAME,eAAeD,uBAAuB,QAAQ,MAAMrB,QAAQuB,IAAI,KAAKnB,cAAcoB,MAAM;IAE/F,MAAMC,QAAQH,eACV/B,GAAGmC,KAAK,CAACJ,cAAc;QACrBK,YAAY;QACZC,OAAO;QACPC,mBAAmB;IACrB,KACA,CAAC;IAEL,MAAMC,gBAAgD;QACpDf,SAAS,CAAC;QACVE;QACAc,MAAM3B,cAAc2B,IAAI;QACxBC,MAAM5B,cAAc4B,IAAI;QACxBC,MAAM7B,cAAc6B,IAAI;QACxBnB;QACAE;QACAkB,QAAQ9B,cAAc8B,MAAM;QAC5B5B,UAAUF,cAAcE,QAAQ;QAChCH;QACAgC,YAAY3B,YAAY,YAAY;QACpC4B,mBAAmBC;QACnBC,oBAAoB,CAAC;QACrBC,MAAMnC,cAAcmC,IAAI;QACxBC,UAAUpC,cAAcoC,QAAQ;QAChCf;QACAgB,aAAa1C,UAAU,CAAC;QACxByB,QAAQpB,cAAcoB,MAAM;QAC5BjB,cAAcH,cAAcG,YAAY;QACxCmC,GAAG5B,KAAK4B,CAAC;QACTC,eAAeN;QACfO,MAAM;IACR;IAEA,MAAMC,MAAsBC,OAAOC,MAAM,CAAC/C,SAAS8B;IAEnDe,IAAIT,iBAAiB,GAAG/C,cAAcwD;IAEtC,MAAM,EAAEG,eAAe,EAAEJ,IAAI,EAAE,GAAG,MAAMxD,sBAAsB;QAC5Dc,SAAS2C,IAAI3C,OAAO;QACpBM;QACAL;IACF;IAEA0C,IAAID,IAAI,GAAGA;IAEX,IAAII,iBAAiBH,IAAIG,eAAe,GAAGA;IAE3C,OAAOH;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/createPayloadRequest.ts"],"sourcesContent":["import type { CustomPayloadRequestProperties, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { executeAuthStrategies, getDataLoader, parseCookies } from 'payload'\nimport * as qs from 'qs-esm'\nimport { URL } from 'url'\n\nimport { sanitizeLocales } from './addLocalesToRequest.js'\nimport { getPayloadHMR } from './getPayloadHMR.js'\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\ntype Args = {\n config: Promise<SanitizedConfig> | SanitizedConfig\n params?: {\n collection: string\n }\n request: Request\n}\n\nexport const createPayloadRequest = async ({\n config: configPromise,\n params,\n request,\n}: Args): Promise<PayloadRequest> => {\n const cookies = parseCookies(request.headers)\n const payload = await getPayloadHMR({ config: configPromise })\n\n const { config } = payload\n\n const urlProperties = new URL(request.url)\n const { pathname, searchParams } = urlProperties\n\n const isGraphQL =\n !config.graphQL.disable && pathname === `${config.routes.api}${config.routes.graphQL}`\n\n const language = getRequestLanguage({\n config,\n cookies,\n headers: request.headers,\n })\n\n const i18n = await initI18n({\n config: config.i18n,\n context: 'api',\n language,\n })\n\n let locale\n let fallbackLocale\n\n const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override')\n const queryToParse = overrideHttpMethod === 'GET' ? await request.text() : urlProperties.search\n\n const query = queryToParse\n ? qs.parse(queryToParse, {\n arrayLimit: 1000,\n depth: 10,\n ignoreQueryPrefix: true,\n })\n : {}\n\n if (config.localization) {\n const locales = sanitizeLocales({\n fallbackLocale: searchParams.get('fallback-locale'),\n locale: searchParams.get('locale'),\n localization: payload.config.localization,\n })\n locale = locales.locale\n fallbackLocale = locales.fallbackLocale\n\n // Override if query params are present, in order to respect HTTP method override\n if (query.locale) locale = query.locale\n if (query?.['fallback-locale']) fallbackLocale = query['fallback-locale']\n }\n\n const customRequest: CustomPayloadRequestProperties = {\n context: {},\n fallbackLocale,\n hash: urlProperties.hash,\n host: urlProperties.host,\n href: urlProperties.href,\n i18n,\n locale,\n origin: urlProperties.origin,\n pathname: urlProperties.pathname,\n payload,\n payloadAPI: isGraphQL ? 'GraphQL' : 'REST',\n payloadDataLoader: undefined,\n payloadUploadSizes: {},\n port: urlProperties.port,\n protocol: urlProperties.protocol,\n query,\n routeParams: params || {},\n search: urlProperties.search,\n searchParams: urlProperties.searchParams,\n t: i18n.t,\n transactionID: undefined,\n user: null,\n }\n\n const req: PayloadRequest = Object.assign(request, customRequest)\n\n req.payloadDataLoader = getDataLoader(req)\n\n const { responseHeaders, user } = await executeAuthStrategies({\n headers: req.headers,\n isGraphQL,\n payload,\n })\n\n req.user = user\n\n if (responseHeaders) req.responseHeaders = responseHeaders\n\n return req\n}\n"],"names":["initI18n","executeAuthStrategies","getDataLoader","parseCookies","qs","URL","sanitizeLocales","getPayloadHMR","getRequestLanguage","createPayloadRequest","config","configPromise","params","request","cookies","headers","payload","urlProperties","url","pathname","searchParams","isGraphQL","graphQL","disable","routes","api","language","i18n","context","locale","fallbackLocale","overrideHttpMethod","get","queryToParse","text","search","query","parse","arrayLimit","depth","ignoreQueryPrefix","localization","locales","customRequest","hash","host","href","origin","payloadAPI","payloadDataLoader","undefined","payloadUploadSizes","port","protocol","routeParams","t","transactionID","user","req","Object","assign","responseHeaders"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
- import type { I18n } from '@payloadcms/translations';
1
+ import type { ClientTranslationsObject, I18nClient } from '@payloadcms/translations';
2
2
  import type { SanitizedConfig } from 'payload';
3
3
  /**
4
4
  * In the context of Next.js, this function initializes the i18n object for the current request.
5
5
  *
6
6
  * It must be called on the server side, and within the lifecycle of a request since it relies on the request headers and cookies.
7
7
  */
8
- export declare const getNextRequestI18n: ({ config }: {
8
+ export declare const getNextRequestI18n: <TAdditionalTranslations = {}, TAdditionalClientTranslationKeys extends string = never>({ config, }: {
9
9
  config: SanitizedConfig;
10
- }) => Promise<I18n>;
10
+ }) => Promise<[TAdditionalClientTranslationKeys] extends [never] ? I18nClient : TAdditionalTranslations extends object ? I18nClient<TAdditionalTranslations, TAdditionalClientTranslationKeys> : I18nClient<ClientTranslationsObject, TAdditionalClientTranslationKeys>>;
11
11
  //# sourceMappingURL=getNextRequestI18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getNextRequestI18n.d.ts","sourceRoot":"","sources":["../../src/utilities/getNextRequestI18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,eAAsB;IAAE,MAAM,EAAE,eAAe,CAAA;CAAE,KAAG,OAAO,CAAC,IAAI,CAK3F,CAAA"}
1
+ {"version":3,"file":"getNextRequestI18n.d.ts","sourceRoot":"","sources":["../../src/utilities/getNextRequestI18n.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EAIxB,UAAU,EACX,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAO9C;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,GAC7B,uBAAuB,OACvB,gCAAgC,SAAS,MAAM,uBAG9C;IACD,MAAM,EAAE,eAAe,CAAA;CACxB,KAAG,OAAO,CACT,CAAC,gCAAgC,CAAC,SAAS,CAAC,KAAK,CAAC,GAC9C,UAAU,GACV,uBAAuB,SAAS,MAAM,GACpC,UAAU,CAAC,uBAAuB,EAAE,gCAAgC,CAAC,GACrE,UAAU,CAAC,wBAAwB,EAAE,gCAAgC,CAAC,CAO7E,CAAA"}
@@ -5,7 +5,8 @@ import { getRequestLanguage } from './getRequestLanguage.js';
5
5
  * In the context of Next.js, this function initializes the i18n object for the current request.
6
6
  *
7
7
  * It must be called on the server side, and within the lifecycle of a request since it relies on the request headers and cookies.
8
- */ export const getNextRequestI18n = async ({ config })=>initI18n({
8
+ */ export const getNextRequestI18n = async ({ config })=>{
9
+ return await initI18n({
9
10
  config: config.i18n,
10
11
  context: 'client',
11
12
  language: getRequestLanguage({
@@ -14,5 +15,6 @@ import { getRequestLanguage } from './getRequestLanguage.js';
14
15
  headers: headers()
15
16
  })
16
17
  });
18
+ };
17
19
 
18
20
  //# sourceMappingURL=getNextRequestI18n.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getNextRequestI18n.ts"],"sourcesContent":["import type { I18n } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { cookies, headers } from 'next/headers.js'\n\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\n/**\n * In the context of Next.js, this function initializes the i18n object for the current request.\n *\n * It must be called on the server side, and within the lifecycle of a request since it relies on the request headers and cookies.\n */\nexport const getNextRequestI18n = async ({ config }: { config: SanitizedConfig }): Promise<I18n> =>\n initI18n({\n config: config.i18n,\n context: 'client',\n language: getRequestLanguage({ config, cookies: cookies(), headers: headers() }),\n })\n"],"names":["initI18n","cookies","headers","getRequestLanguage","getNextRequestI18n","config","i18n","context","language"],"mappings":"AAGA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,OAAO,EAAEC,OAAO,QAAQ,kBAAiB;AAElD,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5D;;;;CAIC,GACD,OAAO,MAAMC,qBAAqB,OAAO,EAAEC,MAAM,EAA+B,GAC9EL,SAAS;QACPK,QAAQA,OAAOC,IAAI;QACnBC,SAAS;QACTC,UAAUL,mBAAmB;YAAEE;YAAQJ,SAASA;YAAWC,SAASA;QAAU;IAChF,GAAE"}
1
+ {"version":3,"sources":["../../src/utilities/getNextRequestI18n.ts"],"sourcesContent":["import type {\n ClientTranslationsObject,\n DefaultTranslationKeys,\n DefaultTranslationsObject,\n I18n,\n I18nClient,\n} from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n } from '@payloadcms/translations'\nimport { cookies, headers } from 'next/headers.js'\n\nimport { getRequestLanguage } from './getRequestLanguage.js'\n\n/**\n * In the context of Next.js, this function initializes the i18n object for the current request.\n *\n * It must be called on the server side, and within the lifecycle of a request since it relies on the request headers and cookies.\n */\nexport const getNextRequestI18n = async <\n TAdditionalTranslations = {},\n TAdditionalClientTranslationKeys extends string = never,\n>({\n config,\n}: {\n config: SanitizedConfig\n}): Promise<\n [TAdditionalClientTranslationKeys] extends [never]\n ? I18nClient\n : TAdditionalTranslations extends object\n ? I18nClient<TAdditionalTranslations, TAdditionalClientTranslationKeys>\n : I18nClient<ClientTranslationsObject, TAdditionalClientTranslationKeys>\n> => {\n return (await initI18n({\n config: config.i18n,\n context: 'client',\n language: getRequestLanguage({ config, cookies: cookies(), headers: headers() }),\n })) as any\n}\n"],"names":["initI18n","cookies","headers","getRequestLanguage","getNextRequestI18n","config","i18n","context","language"],"mappings":"AASA,SAASA,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,OAAO,EAAEC,OAAO,QAAQ,kBAAiB;AAElD,SAASC,kBAAkB,QAAQ,0BAAyB;AAE5D;;;;CAIC,GACD,OAAO,MAAMC,qBAAqB,OAGhC,EACAC,MAAM,EAGP;IAOC,OAAQ,MAAML,SAAS;QACrBK,QAAQA,OAAOC,IAAI;QACnBC,SAAS;QACTC,UAAUL,mBAAmB;YAAEE;YAAQJ,SAASA;YAAWC,SAASA;QAAU;IAChF;AACF,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkB,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpF,eAAO,MAAM,MAAM,WAAkB,eAAe,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CAmCpF,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CA8DzE,CAAA"}
1
+ {"version":3,"file":"getPayloadHMR.d.ts","sourceRoot":"","sources":["../../src/utilities/getPayloadHMR.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBpE,eAAO,MAAM,MAAM,WAAkB,eAAe,WAAW,OAAO,KAAG,OAAO,CAAC,IAAI,CAmCpF,CAAA;AAED,eAAO,MAAM,aAAa,YAAmB,WAAW,KAAG,OAAO,CAAC,OAAO,CAiEzE,CAAA"}
@@ -2,11 +2,11 @@ import { BasePayload } from 'payload';
2
2
  import WebSocket from 'ws';
3
3
  let cached = global._payload;
4
4
  if (!cached) {
5
- // eslint-disable-next-line no-multi-assign
6
5
  cached = global._payload = {
7
6
  payload: null,
8
7
  promise: null,
9
- reload: false
8
+ reload: false,
9
+ ws: null
10
10
  };
11
11
  }
12
12
  export const reload = async (config, payload)=>{
@@ -45,14 +45,16 @@ export const reload = async (config, payload)=>{
45
45
  };
46
46
  export const getPayloadHMR = async (options)=>{
47
47
  if (!options?.config) {
48
- throw new Error('Error: the payload config is required for getPayload to work.');
48
+ throw new Error('Error: the payload config is required for getPayloadHMR to work.');
49
49
  }
50
50
  if (cached.payload) {
51
- const config = await options.config // TODO: check if we can move this inside the cached.reload === true condition
52
- ;
53
51
  if (cached.reload === true) {
54
52
  let resolve;
53
+ // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,
54
+ // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR
55
+ // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.
55
56
  cached.reload = new Promise((res)=>resolve = res);
57
+ const config = await options.config;
56
58
  await reload(config, cached.payload);
57
59
  resolve();
58
60
  }
@@ -62,15 +64,16 @@ export const getPayloadHMR = async (options)=>{
62
64
  return cached.payload;
63
65
  }
64
66
  if (!cached.promise) {
67
+ // no need to await options.config here, as it's already awaited in the BasePayload.init
65
68
  cached.promise = new BasePayload().init(options);
66
69
  }
67
70
  try {
68
71
  cached.payload = await cached.promise;
69
- if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && process.env.DISABLE_PAYLOAD_HMR !== 'true') {
72
+ if (!cached.ws && process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && process.env.DISABLE_PAYLOAD_HMR !== 'true') {
70
73
  try {
71
74
  const port = process.env.PORT || '3000';
72
- const ws = new WebSocket(`ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`);
73
- ws.onmessage = (event)=>{
75
+ cached.ws = new WebSocket(`ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`);
76
+ cached.ws.onmessage = (event)=>{
74
77
  if (typeof event.data === 'string') {
75
78
  const data = JSON.parse(event.data);
76
79
  if ('action' in data && data.action === 'serverComponentChanges') {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { GeneratedTypes, InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<boolean> | boolean\n} = global._payload\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload = { payload: null, promise: null, reload: false }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayload to work.')\n }\n\n if (cached.payload) {\n const config = await options.config // TODO: check if we can move this inside the cached.reload === true condition\n\n if (cached.reload === true) {\n let resolve\n\n cached.reload = new Promise((res) => (resolve = res))\n\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n const ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","ws","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utilities/getPayloadHMR.ts"],"sourcesContent":["import type { InitOptions, Payload, SanitizedConfig } from 'payload'\n\nimport { BasePayload } from 'payload'\nimport WebSocket from 'ws'\n\nlet cached: {\n payload: Payload | null\n promise: Promise<Payload> | null\n reload: Promise<void> | boolean\n ws: WebSocket | null\n} = global._payload\n\nif (!cached) {\n cached = global._payload = { payload: null, promise: null, reload: false, ws: null }\n}\n\nexport const reload = async (config: SanitizedConfig, payload: Payload): Promise<void> => {\n if (typeof payload.db.destroy === 'function') {\n await payload.db.destroy()\n }\n\n payload.config = config\n\n payload.collections = config.collections.reduce((collections, collection) => {\n collections[collection.slug] = {\n config: collection,\n customIDType: payload.collections[collection.slug]?.customIDType,\n }\n return collections\n }, {})\n\n payload.globals = {\n config: config.globals,\n }\n\n // TODO: support HMR for other props in the future (see payload/src/index init()) hat may change on Payload singleton\n\n // Generate types\n if (config.typescript.autoGenerate !== false) {\n // We cannot run it directly here, as generate-types imports json-schema-to-typescript, which breaks on turbopack.\n // see: https://github.com/vercel/next.js/issues/66723\n void payload.bin({\n args: ['generate:types'],\n log: false,\n })\n }\n\n await payload.db.init()\n if (payload.db.connect) {\n await payload.db.connect({ hotReload: true })\n }\n}\n\nexport const getPayloadHMR = async (options: InitOptions): Promise<Payload> => {\n if (!options?.config) {\n throw new Error('Error: the payload config is required for getPayloadHMR to work.')\n }\n\n if (cached.payload) {\n if (cached.reload === true) {\n let resolve: () => void\n\n // getPayloadHMR is called multiple times, in parallel. However, we only want to run `await reload` once. By immediately setting cached.reload to a promise,\n // we can ensure that all subsequent calls will wait for the first reload to finish. So if we set it here, the 2nd call of getPayloadHMR\n // will reach `if (cached.reload instanceof Promise) {` which then waits for the first reload to finish.\n cached.reload = new Promise((res) => (resolve = res))\n const config = await options.config\n await reload(config, cached.payload)\n\n resolve()\n }\n\n if (cached.reload instanceof Promise) {\n await cached.reload\n }\n\n return cached.payload\n }\n\n if (!cached.promise) {\n // no need to await options.config here, as it's already awaited in the BasePayload.init\n cached.promise = new BasePayload().init(options)\n }\n\n try {\n cached.payload = await cached.promise\n\n if (\n !cached.ws &&\n process.env.NODE_ENV !== 'production' &&\n process.env.NODE_ENV !== 'test' &&\n process.env.DISABLE_PAYLOAD_HMR !== 'true'\n ) {\n try {\n const port = process.env.PORT || '3000'\n cached.ws = new WebSocket(\n `ws://localhost:${port}${process.env.NEXT_BASE_PATH ?? ''}/_next/webpack-hmr`,\n )\n\n cached.ws.onmessage = (event) => {\n if (typeof event.data === 'string') {\n const data = JSON.parse(event.data)\n\n if ('action' in data && data.action === 'serverComponentChanges') {\n cached.reload = true\n }\n }\n }\n } catch (_) {\n // swallow e\n }\n }\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.payload\n}\n"],"names":["BasePayload","WebSocket","cached","global","_payload","payload","promise","reload","ws","config","db","destroy","collections","reduce","collection","slug","customIDType","globals","typescript","autoGenerate","bin","args","log","init","connect","hotReload","getPayloadHMR","options","Error","resolve","Promise","res","process","env","NODE_ENV","DISABLE_PAYLOAD_HMR","port","PORT","NEXT_BASE_PATH","onmessage","event","data","JSON","parse","action","_","e"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import type { PayloadRequestWithData } from 'payload';
1
+ import type { PayloadRequest } from 'payload';
2
2
  type CorsArgs = {
3
3
  headers: Headers;
4
- req: Partial<PayloadRequestWithData>;
4
+ req: Partial<PayloadRequest>;
5
5
  };
6
6
  export declare const headersWithCors: ({ headers, req }: CorsArgs) => Headers;
7
7
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"headersWithCors.d.ts","sourceRoot":"","sources":["../../src/utilities/headersWithCors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAErD,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;CACrC,CAAA;AACD,eAAO,MAAM,eAAe,qBAAsB,QAAQ,KAAG,OAoB5D,CAAA"}
1
+ {"version":3,"file":"headersWithCors.d.ts","sourceRoot":"","sources":["../../src/utilities/headersWithCors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAc,cAAc,EAAE,MAAM,SAAS,CAAA;AAEzD,KAAK,QAAQ,GAAG;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAC7B,CAAA;AACD,eAAO,MAAM,eAAe,qBAAsB,QAAQ,KAAG,OAyC5D,CAAA"}
@@ -2,11 +2,27 @@ export const headersWithCors = ({ headers, req })=>{
2
2
  const cors = req?.payload.config.cors;
3
3
  const requestOrigin = req?.headers.get('Origin');
4
4
  if (cors) {
5
+ const defaultAllowedHeaders = [
6
+ 'Origin',
7
+ 'X-Requested-With',
8
+ 'Content-Type',
9
+ 'Accept',
10
+ 'Authorization',
11
+ 'Content-Encoding',
12
+ 'x-apollo-tracing'
13
+ ];
5
14
  headers.set('Access-Control-Allow-Methods', 'PUT, PATCH, POST, GET, DELETE, OPTIONS');
6
- headers.set('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept, Authorization, Content-Encoding, x-apollo-tracing');
7
- if (cors === '*') {
15
+ if (typeof cors === 'object' && 'headers' in cors) {
16
+ headers.set('Access-Control-Allow-Headers', [
17
+ ...defaultAllowedHeaders,
18
+ ...cors.headers
19
+ ].filter(Boolean).join(', '));
20
+ } else {
21
+ headers.set('Access-Control-Allow-Headers', defaultAllowedHeaders.join(', '));
22
+ }
23
+ if (cors === '*' || typeof cors === 'object' && 'origins' in cors && cors.origins === '*') {
8
24
  headers.set('Access-Control-Allow-Origin', '*');
9
- } else if (Array.isArray(cors) && cors.indexOf(requestOrigin) > -1) {
25
+ } else if (Array.isArray(cors) && cors.indexOf(requestOrigin) > -1 || !Array.isArray(cors) && typeof cors === 'object' && 'origins' in cors && cors.origins.indexOf(requestOrigin) > -1) {
10
26
  headers.set('Access-Control-Allow-Credentials', 'true');
11
27
  headers.set('Access-Control-Allow-Origin', requestOrigin);
12
28
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utilities/headersWithCors.ts"],"sourcesContent":["import type { PayloadRequestWithData } from 'payload'\n\ntype CorsArgs = {\n headers: Headers\n req: Partial<PayloadRequestWithData>\n}\nexport const headersWithCors = ({ headers, req }: CorsArgs): Headers => {\n const cors = req?.payload.config.cors\n const requestOrigin = req?.headers.get('Origin')\n\n if (cors) {\n headers.set('Access-Control-Allow-Methods', 'PUT, PATCH, POST, GET, DELETE, OPTIONS')\n headers.set(\n 'Access-Control-Allow-Headers',\n 'Origin, X-Requested-With, Content-Type, Accept, Authorization, Content-Encoding, x-apollo-tracing',\n )\n\n if (cors === '*') {\n headers.set('Access-Control-Allow-Origin', '*')\n } else if (Array.isArray(cors) && cors.indexOf(requestOrigin) > -1) {\n headers.set('Access-Control-Allow-Credentials', 'true')\n headers.set('Access-Control-Allow-Origin', requestOrigin)\n }\n }\n\n return headers\n}\n"],"names":["headersWithCors","headers","req","cors","payload","config","requestOrigin","get","set","Array","isArray","indexOf"],"mappings":"AAMA,OAAO,MAAMA,kBAAkB,CAAC,EAAEC,OAAO,EAAEC,GAAG,EAAY;IACxD,MAAMC,OAAOD,KAAKE,QAAQC,OAAOF;IACjC,MAAMG,gBAAgBJ,KAAKD,QAAQM,IAAI;IAEvC,IAAIJ,MAAM;QACRF,QAAQO,GAAG,CAAC,gCAAgC;QAC5CP,QAAQO,GAAG,CACT,gCACA;QAGF,IAAIL,SAAS,KAAK;YAChBF,QAAQO,GAAG,CAAC,+BAA+B;QAC7C,OAAO,IAAIC,MAAMC,OAAO,CAACP,SAASA,KAAKQ,OAAO,CAACL,iBAAiB,CAAC,GAAG;YAClEL,QAAQO,GAAG,CAAC,oCAAoC;YAChDP,QAAQO,GAAG,CAAC,+BAA+BF;QAC7C;IACF;IAEA,OAAOL;AACT,EAAC"}
1
+ {"version":3,"sources":["../../src/utilities/headersWithCors.ts"],"sourcesContent":["import type { CORSConfig, PayloadRequest } from 'payload'\n\ntype CorsArgs = {\n headers: Headers\n req: Partial<PayloadRequest>\n}\nexport const headersWithCors = ({ headers, req }: CorsArgs): Headers => {\n const cors = req?.payload.config.cors\n const requestOrigin = req?.headers.get('Origin')\n\n if (cors) {\n const defaultAllowedHeaders = [\n 'Origin',\n 'X-Requested-With',\n 'Content-Type',\n 'Accept',\n 'Authorization',\n 'Content-Encoding',\n 'x-apollo-tracing',\n ]\n\n headers.set('Access-Control-Allow-Methods', 'PUT, PATCH, POST, GET, DELETE, OPTIONS')\n\n if (typeof cors === 'object' && 'headers' in cors) {\n headers.set(\n 'Access-Control-Allow-Headers',\n [...defaultAllowedHeaders, ...cors.headers].filter(Boolean).join(', '),\n )\n } else {\n headers.set('Access-Control-Allow-Headers', defaultAllowedHeaders.join(', '))\n }\n\n if (cors === '*' || (typeof cors === 'object' && 'origins' in cors && cors.origins === '*')) {\n headers.set('Access-Control-Allow-Origin', '*')\n } else if (\n (Array.isArray(cors) && cors.indexOf(requestOrigin) > -1) ||\n (!Array.isArray(cors) &&\n typeof cors === 'object' &&\n 'origins' in cors &&\n cors.origins.indexOf(requestOrigin) > -1)\n ) {\n headers.set('Access-Control-Allow-Credentials', 'true')\n headers.set('Access-Control-Allow-Origin', requestOrigin)\n }\n }\n\n return headers\n}\n"],"names":["headersWithCors","headers","req","cors","payload","config","requestOrigin","get","defaultAllowedHeaders","set","filter","Boolean","join","origins","Array","isArray","indexOf"],"mappings":"AAMA,OAAO,MAAMA,kBAAkB,CAAC,EAAEC,OAAO,EAAEC,GAAG,EAAY;IACxD,MAAMC,OAAOD,KAAKE,QAAQC,OAAOF;IACjC,MAAMG,gBAAgBJ,KAAKD,QAAQM,IAAI;IAEvC,IAAIJ,MAAM;QACR,MAAMK,wBAAwB;YAC5B;YACA;YACA;YACA;YACA;YACA;YACA;SACD;QAEDP,QAAQQ,GAAG,CAAC,gCAAgC;QAE5C,IAAI,OAAON,SAAS,YAAY,aAAaA,MAAM;YACjDF,QAAQQ,GAAG,CACT,gCACA;mBAAID;mBAA0BL,KAAKF,OAAO;aAAC,CAACS,MAAM,CAACC,SAASC,IAAI,CAAC;QAErE,OAAO;YACLX,QAAQQ,GAAG,CAAC,gCAAgCD,sBAAsBI,IAAI,CAAC;QACzE;QAEA,IAAIT,SAAS,OAAQ,OAAOA,SAAS,YAAY,aAAaA,QAAQA,KAAKU,OAAO,KAAK,KAAM;YAC3FZ,QAAQQ,GAAG,CAAC,+BAA+B;QAC7C,OAAO,IACL,AAACK,MAAMC,OAAO,CAACZ,SAASA,KAAKa,OAAO,CAACV,iBAAiB,CAAC,KACtD,CAACQ,MAAMC,OAAO,CAACZ,SACd,OAAOA,SAAS,YAChB,aAAaA,QACbA,KAAKU,OAAO,CAACG,OAAO,CAACV,iBAAiB,CAAC,GACzC;YACAL,QAAQQ,GAAG,CAAC,oCAAoC;YAChDR,QAAQQ,GAAG,CAAC,+BAA+BH;QAC7C;IACF;IAEA,OAAOL;AACT,EAAC"}
@@ -8,5 +8,9 @@ export declare const handleAdminPage: ({ adminRoute, config, permissions, route,
8
8
  collectionConfig: SanitizedCollectionConfig;
9
9
  docID: string;
10
10
  globalConfig: SanitizedGlobalConfig;
11
+ } | {
12
+ collectionConfig?: undefined;
13
+ docID?: undefined;
14
+ globalConfig?: undefined;
11
15
  };
12
16
  //# 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;;;;CAqCA,CAAA"}
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,8 +1,16 @@
1
1
  import { notFound } from 'next/navigation.js';
2
- import { isAdminAuthRoute, isAdminRoute } from './shared.js';
2
+ import { getRouteWithoutAdmin, isAdminAuthRoute, isAdminRoute } from './shared.js';
3
3
  export const handleAdminPage = ({ adminRoute, config, permissions, route })=>{
4
- if (isAdminRoute(route, adminRoute)) {
5
- const routeSegments = route.replace(adminRoute, '').split('/').filter(Boolean);
4
+ if (isAdminRoute({
5
+ adminRoute,
6
+ config,
7
+ route
8
+ })) {
9
+ const routeWithoutAdmin = getRouteWithoutAdmin({
10
+ adminRoute,
11
+ route
12
+ });
13
+ const routeSegments = routeWithoutAdmin.split('/').filter(Boolean);
6
14
  const [entityType, entitySlug, createOrID] = routeSegments;
7
15
  const collectionSlug = entityType === 'collections' ? entitySlug : undefined;
8
16
  const globalSlug = entityType === 'globals' ? entitySlug : undefined;
@@ -21,7 +29,11 @@ export const handleAdminPage = ({ adminRoute, config, permissions, route })=>{
21
29
  notFound();
22
30
  }
23
31
  }
24
- if (!permissions.canAccessAdmin && !isAdminAuthRoute(config, route, adminRoute)) {
32
+ if (!permissions.canAccessAdmin && !isAdminAuthRoute({
33
+ adminRoute,
34
+ config,
35
+ route
36
+ })) {
25
37
  notFound();
26
38
  }
27
39
  return {
@@ -30,6 +42,7 @@ export const handleAdminPage = ({ adminRoute, config, permissions, route })=>{
30
42
  globalConfig
31
43
  };
32
44
  }
45
+ return {};
33
46
  };
34
47
 
35
48
  //# sourceMappingURL=handleAdminPage.js.map
@@ -1 +1 @@
1
- {"version":3,"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 { 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(route, adminRoute)) {\n const routeSegments = route.replace(adminRoute, '').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(config, route, adminRoute)) {\n notFound()\n }\n\n return {\n collectionConfig,\n docID,\n globalConfig,\n }\n }\n}\n"],"names":["notFound","isAdminAuthRoute","isAdminRoute","handleAdminPage","adminRoute","config","permissions","route","routeSegments","replace","split","filter","Boolean","entityType","entitySlug","createOrID","collectionSlug","undefined","globalSlug","docID","collectionConfig","globalConfig","collections","find","collection","slug","globals","global","canAccessAdmin"],"mappings":"AAOA,SAASA,QAAQ,QAAQ,qBAAoB;AAE7C,SAASC,gBAAgB,EAAEC,YAAY,QAAQ,cAAa;AAE5D,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,UAAU,EACVC,MAAM,EACNC,WAAW,EACXC,KAAK,EAMN;IACC,IAAIL,aAAaK,OAAOH,aAAa;QACnC,MAAMI,gBAAgBD,MAAME,OAAO,CAACL,YAAY,IAAIM,KAAK,CAAC,KAAKC,MAAM,CAACC;QACtE,MAAM,CAACC,YAAYC,YAAYC,WAAW,GAAGP;QAC7C,MAAMQ,iBAAiBH,eAAe,gBAAgBC,aAAaG;QACnE,MAAMC,aAAaL,eAAe,YAAYC,aAAaG;QAC3D,MAAME,QAAQH,kBAAkBD,eAAe,WAAWA,aAAaE;QAEvE,IAAIG;QACJ,IAAIC;QAEJ,IAAIL,gBAAgB;YAClBI,mBAAmBf,OAAOiB,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKT;YAE/E,IAAI,CAACI,kBAAkB;gBACrBpB;YACF;QACF;QAEA,IAAIkB,YAAY;YACdG,eAAehB,OAAOqB,OAAO,CAACH,IAAI,CAAC,CAACI,SAAWA,OAAOF,IAAI,KAAKP;YAE/D,IAAI,CAACG,cAAc;gBACjBrB;YACF;QACF;QAEA,IAAI,CAACM,YAAYsB,cAAc,IAAI,CAAC3B,iBAAiBI,QAAQE,OAAOH,aAAa;YAC/EJ;QACF;QAEA,OAAO;YACLoB;YACAD;YACAE;QACF;IACF;AACF,EAAC"}
1
+ {"version":3,"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"],"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"],"mappings":"AAOA,SAASA,QAAQ,QAAQ,qBAAoB;AAE7C,SAASC,oBAAoB,EAAEC,gBAAgB,EAAEC,YAAY,QAAQ,cAAa;AAElF,OAAO,MAAMC,kBAAkB,CAAC,EAC9BC,UAAU,EACVC,MAAM,EACNC,WAAW,EACXC,KAAK,EAMN;IACC,IAAIL,aAAa;QAAEE;QAAYC;QAAQE;IAAM,IAAI;QAC/C,MAAMC,oBAAoBR,qBAAqB;YAAEI;YAAYG;QAAM;QACnE,MAAME,gBAAgBD,kBAAkBE,KAAK,CAAC,KAAKC,MAAM,CAACC;QAC1D,MAAM,CAACC,YAAYC,YAAYC,WAAW,GAAGN;QAC7C,MAAMO,iBAAiBH,eAAe,gBAAgBC,aAAaG;QACnE,MAAMC,aAAaL,eAAe,YAAYC,aAAaG;QAC3D,MAAME,QAAQH,kBAAkBD,eAAe,WAAWA,aAAaE;QAEvE,IAAIG;QACJ,IAAIC;QAEJ,IAAIL,gBAAgB;YAClBI,mBAAmBf,OAAOiB,WAAW,CAACC,IAAI,CAAC,CAACC,aAAeA,WAAWC,IAAI,KAAKT;YAE/E,IAAI,CAACI,kBAAkB;gBACrBrB;YACF;QACF;QAEA,IAAImB,YAAY;YACdG,eAAehB,OAAOqB,OAAO,CAACH,IAAI,CAAC,CAACI,SAAWA,OAAOF,IAAI,KAAKP;YAE/D,IAAI,CAACG,cAAc;gBACjBtB;YACF;QACF;QAEA,IAAI,CAACO,YAAYsB,cAAc,IAAI,CAAC3B,iBAAiB;YAAEG;YAAYC;YAAQE;QAAM,IAAI;YACnFR;QACF;QAEA,OAAO;YACLqB;YACAD;YACAE;QACF;IACF;IAEA,OAAO,CAAC;AACV,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"handleAuthRedirect.d.ts","sourceRoot":"","sources":["../../../src/utilities/initPage/handleAuthRedirect.ts"],"names":[],"mappings":"AAKA,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,SAsCA,CAAA"}
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,SAsCA,CAAA"}
@@ -1,16 +1,28 @@
1
+ import { formatAdminURL } from '@payloadcms/ui/shared';
1
2
  import { redirect } from 'next/navigation.js';
2
- import qs from 'qs';
3
+ import * as qs from 'qs-esm';
3
4
  import { isAdminAuthRoute, isAdminRoute } from './shared.js';
4
5
  export const handleAuthRedirect = ({ config, redirectUnauthenticatedUser, route, searchParams })=>{
5
6
  const { admin: { routes: { login: loginRouteFromConfig } }, routes: { admin: adminRoute } } = config;
6
- if (!isAdminAuthRoute(config, route, adminRoute)) {
7
+ if (!isAdminAuthRoute({
8
+ adminRoute,
9
+ config,
10
+ route
11
+ })) {
7
12
  if (searchParams && 'redirect' in searchParams) delete searchParams.redirect;
8
13
  const redirectRoute = encodeURIComponent(route + Object.keys(searchParams ?? {}).length ? `${qs.stringify(searchParams, {
9
14
  addQueryPrefix: true
10
15
  })}` : undefined);
11
- const adminLoginRoute = `${adminRoute}${loginRouteFromConfig}`;
16
+ const adminLoginRoute = formatAdminURL({
17
+ adminRoute,
18
+ path: loginRouteFromConfig
19
+ });
12
20
  const customLoginRoute = typeof redirectUnauthenticatedUser === 'string' ? redirectUnauthenticatedUser : undefined;
13
- const loginRoute = isAdminRoute(route, adminRoute) ? adminLoginRoute : customLoginRoute || loginRouteFromConfig;
21
+ const loginRoute = isAdminRoute({
22
+ adminRoute,
23
+ config,
24
+ route
25
+ }) ? adminLoginRoute : customLoginRoute || loginRouteFromConfig;
14
26
  const parsedLoginRouteSearchParams = qs.parse(loginRoute.split('?')[1] ?? '');
15
27
  const searchParamsWithRedirect = `${qs.stringify({
16
28
  ...parsedLoginRouteSearchParams,