@payloadcms/next 3.0.0-beta.48 → 3.0.0-beta.49

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 (524) hide show
  1. package/dist/config.d.ts +1 -1
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.d.ts +5 -0
  5. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.d.ts.map +1 -0
  6. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js +13 -0
  7. package/dist/elements/DocumentHeader/Tabs/ShouldRenderTabs.js.map +1 -0
  8. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts +13 -0
  9. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.d.ts.map +1 -0
  10. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js +43 -0
  11. package/dist/elements/DocumentHeader/Tabs/Tab/TabLink.js.map +1 -0
  12. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts +6 -0
  13. package/dist/elements/DocumentHeader/Tabs/Tab/index.d.ts.map +1 -0
  14. package/dist/elements/DocumentHeader/Tabs/Tab/index.js +58 -0
  15. package/dist/elements/DocumentHeader/Tabs/Tab/index.js.map +1 -0
  16. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +91 -0
  17. package/dist/elements/DocumentHeader/Tabs/getCustomViews.d.ts +6 -0
  18. package/dist/elements/DocumentHeader/Tabs/getCustomViews.d.ts.map +1 -0
  19. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js +38 -0
  20. package/dist/elements/DocumentHeader/Tabs/getCustomViews.js.map +1 -0
  21. package/dist/elements/DocumentHeader/Tabs/getViewConfig.d.ts +7 -0
  22. package/dist/elements/DocumentHeader/Tabs/getViewConfig.d.ts.map +1 -0
  23. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js +14 -0
  24. package/dist/elements/DocumentHeader/Tabs/getViewConfig.js.map +1 -0
  25. package/dist/elements/DocumentHeader/Tabs/index.d.ts +12 -0
  26. package/dist/elements/DocumentHeader/Tabs/index.d.ts.map +1 -0
  27. package/dist/elements/DocumentHeader/Tabs/index.js +81 -0
  28. package/dist/elements/DocumentHeader/Tabs/index.js.map +1 -0
  29. package/dist/elements/DocumentHeader/Tabs/index.scss +53 -0
  30. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts +3 -0
  31. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.d.ts.map +1 -0
  32. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +23 -0
  33. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -0
  34. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +7 -0
  35. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -0
  36. package/dist/elements/DocumentHeader/Tabs/tabs/index.js +57 -0
  37. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -0
  38. package/dist/elements/DocumentHeader/index.d.ts +14 -0
  39. package/dist/elements/DocumentHeader/index.d.ts.map +1 -0
  40. package/dist/elements/DocumentHeader/index.js +30 -0
  41. package/dist/elements/DocumentHeader/index.js.map +1 -0
  42. package/dist/elements/DocumentHeader/index.scss +51 -0
  43. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  44. package/dist/elements/LeaveWithoutSaving/index.js +1 -5
  45. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  46. package/dist/elements/Logo/index.d.ts +4 -0
  47. package/dist/elements/Logo/index.d.ts.map +1 -0
  48. package/dist/elements/Logo/index.js +24 -0
  49. package/dist/elements/Logo/index.js.map +1 -0
  50. package/dist/elements/Nav/NavHamburger/index.d.ts +5 -0
  51. package/dist/elements/Nav/NavHamburger/index.d.ts.map +1 -0
  52. package/dist/elements/Nav/NavHamburger/index.js +20 -0
  53. package/dist/elements/Nav/NavHamburger/index.js.map +1 -0
  54. package/dist/elements/Nav/NavWrapper/index.d.ts +7 -0
  55. package/dist/elements/Nav/NavWrapper/index.d.ts.map +1 -0
  56. package/dist/elements/Nav/NavWrapper/index.js +21 -0
  57. package/dist/elements/Nav/NavWrapper/index.js.map +1 -0
  58. package/dist/elements/Nav/NavWrapper/index.scss +17 -0
  59. package/dist/elements/Nav/index.client.d.ts +3 -0
  60. package/dist/elements/Nav/index.client.d.ts.map +1 -0
  61. package/dist/elements/Nav/index.client.js +79 -0
  62. package/dist/elements/Nav/index.client.js.map +1 -0
  63. package/dist/elements/Nav/index.d.ts +6 -0
  64. package/dist/elements/Nav/index.d.ts.map +1 -0
  65. package/dist/elements/Nav/index.js +67 -0
  66. package/dist/elements/Nav/index.js.map +1 -0
  67. package/dist/elements/Nav/index.scss +150 -0
  68. package/dist/exports/templates.d.ts +3 -0
  69. package/dist/exports/templates.d.ts.map +1 -0
  70. package/dist/exports/templates.js +4 -0
  71. package/dist/exports/templates.js.map +1 -0
  72. package/dist/fetchAPI-multipart/index.d.ts +1 -1
  73. package/dist/fetchAPI-multipart/index.d.ts.map +1 -1
  74. package/dist/fetchAPI-multipart/index.js +1 -1
  75. package/dist/fetchAPI-multipart/index.js.map +1 -1
  76. package/dist/fetchAPI-multipart/processMultipart.js +1 -1
  77. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -1
  78. package/dist/layouts/Root/index.d.ts +1 -1
  79. package/dist/layouts/Root/index.d.ts.map +1 -1
  80. package/dist/layouts/Root/index.js +4 -6
  81. package/dist/layouts/Root/index.js.map +1 -1
  82. package/dist/prod/index.js +55 -0
  83. package/dist/prod/styles.css +1 -1
  84. package/dist/routes/graphql/handler.d.ts +1 -1
  85. package/dist/routes/graphql/handler.d.ts.map +1 -1
  86. package/dist/routes/graphql/handler.js.map +1 -1
  87. package/dist/routes/graphql/playground.d.ts +1 -1
  88. package/dist/routes/graphql/playground.d.ts.map +1 -1
  89. package/dist/routes/graphql/playground.js.map +1 -1
  90. package/dist/routes/rest/auth/access.js +1 -1
  91. package/dist/routes/rest/auth/access.js.map +1 -1
  92. package/dist/routes/rest/auth/forgotPassword.js +1 -1
  93. package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
  94. package/dist/routes/rest/auth/init.js +1 -1
  95. package/dist/routes/rest/auth/init.js.map +1 -1
  96. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  97. package/dist/routes/rest/auth/login.js +2 -3
  98. package/dist/routes/rest/auth/login.js.map +1 -1
  99. package/dist/routes/rest/auth/logout.d.ts.map +1 -1
  100. package/dist/routes/rest/auth/logout.js +1 -2
  101. package/dist/routes/rest/auth/logout.js.map +1 -1
  102. package/dist/routes/rest/auth/me.d.ts.map +1 -1
  103. package/dist/routes/rest/auth/me.js +1 -2
  104. package/dist/routes/rest/auth/me.js.map +1 -1
  105. package/dist/routes/rest/auth/refresh.d.ts.map +1 -1
  106. package/dist/routes/rest/auth/refresh.js +1 -2
  107. package/dist/routes/rest/auth/refresh.js.map +1 -1
  108. package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
  109. package/dist/routes/rest/auth/registerFirstUser.js +1 -2
  110. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  111. package/dist/routes/rest/auth/resetPassword.d.ts.map +1 -1
  112. package/dist/routes/rest/auth/resetPassword.js +1 -2
  113. package/dist/routes/rest/auth/resetPassword.js.map +1 -1
  114. package/dist/routes/rest/auth/unlock.js +1 -1
  115. package/dist/routes/rest/auth/unlock.js.map +1 -1
  116. package/dist/routes/rest/auth/verifyEmail.js +1 -1
  117. package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
  118. package/dist/routes/rest/buildFormState.d.ts +1 -1
  119. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  120. package/dist/routes/rest/buildFormState.js.map +1 -1
  121. package/dist/routes/rest/collections/count.js +1 -1
  122. package/dist/routes/rest/collections/count.js.map +1 -1
  123. package/dist/routes/rest/collections/create.js +2 -2
  124. package/dist/routes/rest/collections/create.js.map +1 -1
  125. package/dist/routes/rest/collections/delete.js +2 -2
  126. package/dist/routes/rest/collections/delete.js.map +1 -1
  127. package/dist/routes/rest/collections/deleteByID.js +2 -2
  128. package/dist/routes/rest/collections/deleteByID.js.map +1 -1
  129. package/dist/routes/rest/collections/docAccess.js +1 -1
  130. package/dist/routes/rest/collections/docAccess.js.map +1 -1
  131. package/dist/routes/rest/collections/duplicate.js +2 -2
  132. package/dist/routes/rest/collections/duplicate.js.map +1 -1
  133. package/dist/routes/rest/collections/find.js +2 -2
  134. package/dist/routes/rest/collections/find.js.map +1 -1
  135. package/dist/routes/rest/collections/findByID.js +2 -2
  136. package/dist/routes/rest/collections/findByID.js.map +1 -1
  137. package/dist/routes/rest/collections/findVersionByID.js +2 -2
  138. package/dist/routes/rest/collections/findVersionByID.js.map +1 -1
  139. package/dist/routes/rest/collections/findVersions.js +2 -2
  140. package/dist/routes/rest/collections/findVersions.js.map +1 -1
  141. package/dist/routes/rest/collections/preview.d.ts.map +1 -1
  142. package/dist/routes/rest/collections/preview.js +2 -3
  143. package/dist/routes/rest/collections/preview.js.map +1 -1
  144. package/dist/routes/rest/collections/restoreVersion.js +2 -2
  145. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  146. package/dist/routes/rest/collections/update.js +2 -2
  147. package/dist/routes/rest/collections/update.js.map +1 -1
  148. package/dist/routes/rest/collections/updateByID.js +2 -2
  149. package/dist/routes/rest/collections/updateByID.js.map +1 -1
  150. package/dist/routes/rest/files/checkFileAccess.d.ts +1 -1
  151. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  152. package/dist/routes/rest/files/checkFileAccess.js +1 -2
  153. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  154. package/dist/routes/rest/files/getFile.d.ts +1 -1
  155. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  156. package/dist/routes/rest/files/getFile.js +1 -1
  157. package/dist/routes/rest/files/getFile.js.map +1 -1
  158. package/dist/routes/rest/globals/docAccess.js +1 -1
  159. package/dist/routes/rest/globals/docAccess.js.map +1 -1
  160. package/dist/routes/rest/globals/findOne.js +2 -2
  161. package/dist/routes/rest/globals/findOne.js.map +1 -1
  162. package/dist/routes/rest/globals/findVersionByID.js +2 -2
  163. package/dist/routes/rest/globals/findVersionByID.js.map +1 -1
  164. package/dist/routes/rest/globals/findVersions.js +2 -2
  165. package/dist/routes/rest/globals/findVersions.js.map +1 -1
  166. package/dist/routes/rest/globals/preview.d.ts.map +1 -1
  167. package/dist/routes/rest/globals/preview.js +2 -3
  168. package/dist/routes/rest/globals/preview.js.map +1 -1
  169. package/dist/routes/rest/globals/restoreVersion.js +2 -2
  170. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  171. package/dist/routes/rest/globals/update.js +2 -2
  172. package/dist/routes/rest/globals/update.js.map +1 -1
  173. package/dist/routes/rest/index.d.ts +1 -1
  174. package/dist/routes/rest/index.d.ts.map +1 -1
  175. package/dist/routes/rest/index.js.map +1 -1
  176. package/dist/routes/rest/og/index.d.ts +1 -1
  177. package/dist/routes/rest/og/index.d.ts.map +1 -1
  178. package/dist/routes/rest/og/index.js +1 -1
  179. package/dist/routes/rest/og/index.js.map +1 -1
  180. package/dist/routes/rest/routeError.d.ts +2 -2
  181. package/dist/routes/rest/routeError.d.ts.map +1 -1
  182. package/dist/routes/rest/routeError.js +1 -1
  183. package/dist/routes/rest/routeError.js.map +1 -1
  184. package/dist/routes/rest/types.d.ts +1 -1
  185. package/dist/routes/rest/types.d.ts.map +1 -1
  186. package/dist/routes/rest/types.js.map +1 -1
  187. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts +1 -1
  188. package/dist/routes/rest/utilities/sanitizeCollectionID.d.ts.map +1 -1
  189. package/dist/routes/rest/utilities/sanitizeCollectionID.js.map +1 -1
  190. package/dist/templates/Default/NavHamburger/index.d.ts +3 -0
  191. package/dist/templates/Default/NavHamburger/index.d.ts.map +1 -0
  192. package/dist/templates/Default/NavHamburger/index.js +13 -0
  193. package/dist/templates/Default/NavHamburger/index.js.map +1 -0
  194. package/dist/templates/Default/Wrapper/index.d.ts +8 -0
  195. package/dist/templates/Default/Wrapper/index.d.ts.map +1 -0
  196. package/dist/templates/Default/Wrapper/index.js +18 -0
  197. package/dist/templates/Default/Wrapper/index.js.map +1 -0
  198. package/dist/templates/Default/Wrapper/index.scss +25 -0
  199. package/dist/templates/Default/index.d.ts +10 -0
  200. package/dist/templates/Default/index.d.ts.map +1 -0
  201. package/dist/templates/Default/index.js +66 -0
  202. package/dist/templates/Default/index.js.map +1 -0
  203. package/dist/templates/Default/index.scss +67 -0
  204. package/dist/templates/Minimal/index.d.ts +10 -0
  205. package/dist/templates/Minimal/index.d.ts.map +1 -0
  206. package/dist/templates/Minimal/index.js +21 -0
  207. package/dist/templates/Minimal/index.js.map +1 -0
  208. package/dist/templates/Minimal/index.scss +28 -0
  209. package/dist/utilities/addDataAndFileToRequest.d.ts +1 -1
  210. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
  211. package/dist/utilities/addDataAndFileToRequest.js +1 -1
  212. package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
  213. package/dist/utilities/addLocalesToRequest.d.ts +1 -1
  214. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
  215. package/dist/utilities/addLocalesToRequest.js.map +1 -1
  216. package/dist/utilities/createPayloadRequest.d.ts +1 -1
  217. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  218. package/dist/utilities/createPayloadRequest.js +1 -2
  219. package/dist/utilities/createPayloadRequest.js.map +1 -1
  220. package/dist/utilities/getNextRequestI18n.d.ts +1 -1
  221. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  222. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  223. package/dist/utilities/getPayloadHMR.d.ts +1 -2
  224. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  225. package/dist/utilities/getPayloadHMR.js.map +1 -1
  226. package/dist/utilities/getRequestLanguage.d.ts +1 -1
  227. package/dist/utilities/getRequestLanguage.d.ts.map +1 -1
  228. package/dist/utilities/getRequestLanguage.js.map +1 -1
  229. package/dist/utilities/getRequestTheme.d.ts +2 -2
  230. package/dist/utilities/getRequestTheme.d.ts.map +1 -1
  231. package/dist/utilities/getRequestTheme.js +1 -1
  232. package/dist/utilities/getRequestTheme.js.map +1 -1
  233. package/dist/utilities/headersWithCors.d.ts +1 -1
  234. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  235. package/dist/utilities/headersWithCors.js.map +1 -1
  236. package/dist/utilities/initPage/handleAdminPage.d.ts +1 -2
  237. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  238. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  239. package/dist/utilities/initPage/index.d.ts +1 -1
  240. package/dist/utilities/initPage/index.d.ts.map +1 -1
  241. package/dist/utilities/initPage/index.js +2 -3
  242. package/dist/utilities/initPage/index.js.map +1 -1
  243. package/dist/utilities/initPage/shared.d.ts +1 -1
  244. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  245. package/dist/utilities/initPage/shared.js.map +1 -1
  246. package/dist/utilities/initPage/types.d.ts +1 -1
  247. package/dist/utilities/initPage/types.d.ts.map +1 -1
  248. package/dist/utilities/initPage/types.js.map +1 -1
  249. package/dist/utilities/meta.d.ts +1 -1
  250. package/dist/utilities/meta.d.ts.map +1 -1
  251. package/dist/utilities/meta.js.map +1 -1
  252. package/dist/views/API/LocaleSelector/index.d.ts.map +1 -1
  253. package/dist/views/API/LocaleSelector/index.js +2 -3
  254. package/dist/views/API/LocaleSelector/index.js.map +1 -1
  255. package/dist/views/API/RenderJSON/index.js +2 -2
  256. package/dist/views/API/RenderJSON/index.js.map +1 -1
  257. package/dist/views/API/index.client.d.ts.map +1 -1
  258. package/dist/views/API/index.client.js +4 -15
  259. package/dist/views/API/index.client.js.map +1 -1
  260. package/dist/views/API/index.d.ts +1 -1
  261. package/dist/views/API/index.d.ts.map +1 -1
  262. package/dist/views/API/index.js.map +1 -1
  263. package/dist/views/Account/Settings/LanguageSelector.d.ts +1 -1
  264. package/dist/views/Account/Settings/LanguageSelector.d.ts.map +1 -1
  265. package/dist/views/Account/Settings/LanguageSelector.js +1 -2
  266. package/dist/views/Account/Settings/LanguageSelector.js.map +1 -1
  267. package/dist/views/Account/Settings/index.d.ts +1 -1
  268. package/dist/views/Account/Settings/index.d.ts.map +1 -1
  269. package/dist/views/Account/Settings/index.js +1 -1
  270. package/dist/views/Account/Settings/index.js.map +1 -1
  271. package/dist/views/Account/ToggleTheme/index.d.ts.map +1 -1
  272. package/dist/views/Account/ToggleTheme/index.js +2 -4
  273. package/dist/views/Account/ToggleTheme/index.js.map +1 -1
  274. package/dist/views/Account/index.d.ts +1 -1
  275. package/dist/views/Account/index.d.ts.map +1 -1
  276. package/dist/views/Account/index.js +3 -5
  277. package/dist/views/Account/index.js.map +1 -1
  278. package/dist/views/CreateFirstUser/index.client.d.ts +1 -1
  279. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  280. package/dist/views/CreateFirstUser/index.client.js +5 -13
  281. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  282. package/dist/views/CreateFirstUser/index.d.ts +1 -1
  283. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  284. package/dist/views/CreateFirstUser/index.js.map +1 -1
  285. package/dist/views/Dashboard/Default/index.d.ts +2 -4
  286. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  287. package/dist/views/Dashboard/Default/index.js +2 -7
  288. package/dist/views/Dashboard/Default/index.js.map +1 -1
  289. package/dist/views/Dashboard/index.d.ts +1 -1
  290. package/dist/views/Dashboard/index.d.ts.map +1 -1
  291. package/dist/views/Dashboard/index.js +2 -3
  292. package/dist/views/Dashboard/index.js.map +1 -1
  293. package/dist/views/Document/getCustomViewByKey.d.ts +1 -2
  294. package/dist/views/Document/getCustomViewByKey.d.ts.map +1 -1
  295. package/dist/views/Document/getCustomViewByKey.js +1 -1
  296. package/dist/views/Document/getCustomViewByKey.js.map +1 -1
  297. package/dist/views/Document/getCustomViewByRoute.d.ts +1 -2
  298. package/dist/views/Document/getCustomViewByRoute.d.ts.map +1 -1
  299. package/dist/views/Document/getCustomViewByRoute.js.map +1 -1
  300. package/dist/views/Document/getDocumentData.d.ts +1 -2
  301. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  302. package/dist/views/Document/getDocumentData.js +1 -1
  303. package/dist/views/Document/getDocumentData.js.map +1 -1
  304. package/dist/views/Document/getDocumentPermissions.d.ts +1 -2
  305. package/dist/views/Document/getDocumentPermissions.d.ts.map +1 -1
  306. package/dist/views/Document/getDocumentPermissions.js +2 -3
  307. package/dist/views/Document/getDocumentPermissions.js.map +1 -1
  308. package/dist/views/Document/getMetaBySegment.d.ts +1 -1
  309. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  310. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  311. package/dist/views/Document/getViewsFromConfig.d.ts +1 -3
  312. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  313. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  314. package/dist/views/Document/index.d.ts +1 -1
  315. package/dist/views/Document/index.d.ts.map +1 -1
  316. package/dist/views/Document/index.js +3 -7
  317. package/dist/views/Document/index.js.map +1 -1
  318. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  319. package/dist/views/Edit/Default/Auth/APIKey.js +2 -8
  320. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  321. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  322. package/dist/views/Edit/Default/Auth/index.js +6 -14
  323. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  324. package/dist/views/Edit/Default/Auth/types.d.ts +1 -2
  325. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  326. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  327. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts +1 -1
  328. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  329. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +1 -6
  330. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  331. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts +1 -1
  332. package/dist/views/Edit/Default/SetDocumentTitle/index.d.ts.map +1 -1
  333. package/dist/views/Edit/Default/SetDocumentTitle/index.js +2 -4
  334. package/dist/views/Edit/Default/SetDocumentTitle/index.js.map +1 -1
  335. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  336. package/dist/views/Edit/Default/index.js +3 -15
  337. package/dist/views/Edit/Default/index.js.map +1 -1
  338. package/dist/views/Edit/Default/types.d.ts +1 -1
  339. package/dist/views/Edit/Default/types.d.ts.map +1 -1
  340. package/dist/views/Edit/Default/types.js.map +1 -1
  341. package/dist/views/Edit/index.client.d.ts.map +1 -1
  342. package/dist/views/Edit/index.client.js +1 -3
  343. package/dist/views/Edit/index.client.js.map +1 -1
  344. package/dist/views/Edit/index.d.ts +1 -1
  345. package/dist/views/Edit/index.d.ts.map +1 -1
  346. package/dist/views/Edit/index.js.map +1 -1
  347. package/dist/views/Edit/sanitizeEditViewProps.d.ts +1 -1
  348. package/dist/views/Edit/sanitizeEditViewProps.d.ts.map +1 -1
  349. package/dist/views/Edit/sanitizeEditViewProps.js.map +1 -1
  350. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  351. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -7
  352. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  353. package/dist/views/ForgotPassword/index.d.ts +1 -1
  354. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  355. package/dist/views/ForgotPassword/index.js +1 -2
  356. package/dist/views/ForgotPassword/index.js.map +1 -1
  357. package/dist/views/List/Default/index.d.ts.map +1 -1
  358. package/dist/views/List/Default/index.js +2 -26
  359. package/dist/views/List/Default/index.js.map +1 -1
  360. package/dist/views/List/Default/types.d.ts +2 -2
  361. package/dist/views/List/Default/types.d.ts.map +1 -1
  362. package/dist/views/List/Default/types.js.map +1 -1
  363. package/dist/views/List/index.d.ts +1 -1
  364. package/dist/views/List/index.d.ts.map +1 -1
  365. package/dist/views/List/index.js +4 -7
  366. package/dist/views/List/index.js.map +1 -1
  367. package/dist/views/List/meta.d.ts +1 -1
  368. package/dist/views/List/meta.d.ts.map +1 -1
  369. package/dist/views/List/meta.js.map +1 -1
  370. package/dist/views/LivePreview/Context/context.d.ts +2 -2
  371. package/dist/views/LivePreview/Context/context.d.ts.map +1 -1
  372. package/dist/views/LivePreview/Context/context.js.map +1 -1
  373. package/dist/views/LivePreview/Context/index.d.ts +1 -2
  374. package/dist/views/LivePreview/Context/index.d.ts.map +1 -1
  375. package/dist/views/LivePreview/Context/index.js +1 -1
  376. package/dist/views/LivePreview/Context/index.js.map +1 -1
  377. package/dist/views/LivePreview/Device/index.js +1 -1
  378. package/dist/views/LivePreview/Device/index.js.map +1 -1
  379. package/dist/views/LivePreview/Preview/index.d.ts +1 -1
  380. package/dist/views/LivePreview/Preview/index.d.ts.map +1 -1
  381. package/dist/views/LivePreview/Preview/index.js +2 -4
  382. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  383. package/dist/views/LivePreview/Toolbar/Controls/index.d.ts +1 -1
  384. package/dist/views/LivePreview/Toolbar/Controls/index.d.ts.map +1 -1
  385. package/dist/views/LivePreview/Toolbar/Controls/index.js +4 -8
  386. package/dist/views/LivePreview/Toolbar/Controls/index.js.map +1 -1
  387. package/dist/views/LivePreview/Toolbar/index.d.ts +1 -1
  388. package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  389. package/dist/views/LivePreview/Toolbar/index.js +2 -2
  390. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  391. package/dist/views/LivePreview/index.client.d.ts +1 -2
  392. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  393. package/dist/views/LivePreview/index.client.js +2 -12
  394. package/dist/views/LivePreview/index.client.js.map +1 -1
  395. package/dist/views/LivePreview/index.d.ts +1 -1
  396. package/dist/views/LivePreview/index.d.ts.map +1 -1
  397. package/dist/views/LivePreview/index.js.map +1 -1
  398. package/dist/views/LivePreview/usePopupWindow.js +1 -1
  399. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  400. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  401. package/dist/views/Login/LoginForm/index.js +4 -9
  402. package/dist/views/Login/LoginForm/index.js.map +1 -1
  403. package/dist/views/Login/index.d.ts +1 -1
  404. package/dist/views/Login/index.d.ts.map +1 -1
  405. package/dist/views/Login/index.js +2 -2
  406. package/dist/views/Login/index.js.map +1 -1
  407. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  408. package/dist/views/Logout/LogoutClient.js +1 -3
  409. package/dist/views/Logout/LogoutClient.js.map +1 -1
  410. package/dist/views/Logout/index.d.ts +1 -1
  411. package/dist/views/Logout/index.d.ts.map +1 -1
  412. package/dist/views/Logout/index.js.map +1 -1
  413. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  414. package/dist/views/NotFound/index.client.js +1 -5
  415. package/dist/views/NotFound/index.client.js.map +1 -1
  416. package/dist/views/NotFound/index.d.ts +1 -1
  417. package/dist/views/NotFound/index.d.ts.map +1 -1
  418. package/dist/views/NotFound/index.js +2 -2
  419. package/dist/views/NotFound/index.js.map +1 -1
  420. package/dist/views/NotFound/meta.d.ts +1 -1
  421. package/dist/views/NotFound/meta.d.ts.map +1 -1
  422. package/dist/views/NotFound/meta.js.map +1 -1
  423. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  424. package/dist/views/ResetPassword/index.client.js +4 -11
  425. package/dist/views/ResetPassword/index.client.js.map +1 -1
  426. package/dist/views/ResetPassword/index.d.ts +1 -1
  427. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  428. package/dist/views/ResetPassword/index.js +2 -3
  429. package/dist/views/ResetPassword/index.js.map +1 -1
  430. package/dist/views/Root/getCustomViewByRoute.d.ts +1 -1
  431. package/dist/views/Root/getCustomViewByRoute.d.ts.map +1 -1
  432. package/dist/views/Root/getCustomViewByRoute.js.map +1 -1
  433. package/dist/views/Root/getViewFromConfig.d.ts +1 -2
  434. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  435. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  436. package/dist/views/Root/index.d.ts +1 -1
  437. package/dist/views/Root/index.d.ts.map +1 -1
  438. package/dist/views/Root/index.js +3 -3
  439. package/dist/views/Root/index.js.map +1 -1
  440. package/dist/views/Root/meta.d.ts +1 -1
  441. package/dist/views/Root/meta.d.ts.map +1 -1
  442. package/dist/views/Root/meta.js.map +1 -1
  443. package/dist/views/Unauthorized/index.d.ts +1 -1
  444. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  445. package/dist/views/Unauthorized/index.js +1 -2
  446. package/dist/views/Unauthorized/index.js.map +1 -1
  447. package/dist/views/Verify/index.d.ts +1 -1
  448. package/dist/views/Verify/index.d.ts.map +1 -1
  449. package/dist/views/Verify/index.js +1 -1
  450. package/dist/views/Verify/index.js.map +1 -1
  451. package/dist/views/Version/Default/SetStepNav.d.ts +1 -1
  452. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  453. package/dist/views/Version/Default/SetStepNav.js +2 -5
  454. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  455. package/dist/views/Version/Default/index.d.ts.map +1 -1
  456. package/dist/views/Version/Default/index.js +2 -8
  457. package/dist/views/Version/Default/index.js.map +1 -1
  458. package/dist/views/Version/Default/types.d.ts +1 -2
  459. package/dist/views/Version/Default/types.d.ts.map +1 -1
  460. package/dist/views/Version/Default/types.js.map +1 -1
  461. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js +1 -1
  462. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  463. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.d.ts.map +1 -1
  464. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js +2 -2
  465. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  466. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  467. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +1 -2
  468. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  469. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  470. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +5 -5
  471. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +1 -1
  472. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  473. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  474. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +1 -1
  475. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  476. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  477. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  478. package/dist/views/Version/Restore/index.js +3 -7
  479. package/dist/views/Version/Restore/index.js.map +1 -1
  480. package/dist/views/Version/Restore/types.d.ts +1 -1
  481. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  482. package/dist/views/Version/Restore/types.js.map +1 -1
  483. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  484. package/dist/views/Version/SelectComparison/index.js +2 -6
  485. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  486. package/dist/views/Version/SelectComparison/types.d.ts +1 -2
  487. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  488. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  489. package/dist/views/Version/SelectLocales/index.d.ts.map +1 -1
  490. package/dist/views/Version/SelectLocales/index.js +1 -3
  491. package/dist/views/Version/SelectLocales/index.js.map +1 -1
  492. package/dist/views/Version/SelectLocales/types.d.ts +1 -1
  493. package/dist/views/Version/SelectLocales/types.d.ts.map +1 -1
  494. package/dist/views/Version/SelectLocales/types.js.map +1 -1
  495. package/dist/views/Version/index.d.ts +1 -1
  496. package/dist/views/Version/index.d.ts.map +1 -1
  497. package/dist/views/Version/index.js.map +1 -1
  498. package/dist/views/Version/meta.js +1 -1
  499. package/dist/views/Version/meta.js.map +1 -1
  500. package/dist/views/Versions/buildColumns.d.ts +2 -2
  501. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  502. package/dist/views/Versions/buildColumns.js +1 -1
  503. package/dist/views/Versions/buildColumns.js.map +1 -1
  504. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  505. package/dist/views/Versions/cells/AutosaveCell/index.js +1 -3
  506. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  507. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  508. package/dist/views/Versions/cells/CreatedAt/index.js +2 -4
  509. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  510. package/dist/views/Versions/cells/ID/index.js +1 -1
  511. package/dist/views/Versions/cells/ID/index.js.map +1 -1
  512. package/dist/views/Versions/index.client.d.ts +2 -2
  513. package/dist/views/Versions/index.client.d.ts.map +1 -1
  514. package/dist/views/Versions/index.client.js +1 -9
  515. package/dist/views/Versions/index.client.js.map +1 -1
  516. package/dist/views/Versions/index.d.ts +1 -1
  517. package/dist/views/Versions/index.d.ts.map +1 -1
  518. package/dist/views/Versions/index.js +2 -3
  519. package/dist/views/Versions/index.js.map +1 -1
  520. package/dist/views/Versions/types.d.ts +1 -3
  521. package/dist/views/Versions/types.d.ts.map +1 -1
  522. package/dist/views/Versions/types.js.map +1 -1
  523. package/package.json +9 -9
  524. package/dist/prod/payload/payload-favicon.svg +0 -15
@@ -0,0 +1,150 @@
1
+ @import '../../scss/styles.scss';
2
+
3
+ .nav {
4
+ position: sticky;
5
+ top: 0;
6
+ left: 0;
7
+ flex-shrink: 0;
8
+ height: 100vh;
9
+ width: var(--nav-width);
10
+ border-right: 1px solid var(--theme-elevation-100);
11
+ opacity: 0;
12
+ transition: opacity var(--nav-trans-time) ease-in-out;
13
+
14
+ &--nav-open {
15
+ opacity: 1;
16
+ }
17
+
18
+ &__header {
19
+ position: absolute;
20
+ top: 0;
21
+ width: 100%;
22
+ height: var(--app-header-height);
23
+ }
24
+
25
+ &__header-content {
26
+ z-index: 1;
27
+ position: relative;
28
+ height: 100%;
29
+ }
30
+
31
+ &__mobile-close {
32
+ display: none;
33
+ background: none;
34
+ border: 0;
35
+ outline: 0;
36
+ padding: calc(var(--base) * 0.75) var(--gutter-h);
37
+ }
38
+
39
+ &__scroll {
40
+ height: 100%;
41
+ display: flex;
42
+ flex-direction: column;
43
+ padding: var(--app-header-height) base(1) base(2) base(1);
44
+ overflow-y: auto;
45
+
46
+ // remove the scrollbar here to prevent layout shift as nav groups are toggled
47
+ &::-webkit-scrollbar {
48
+ display: none;
49
+ }
50
+ }
51
+
52
+ &__wrap {
53
+ width: 100%;
54
+ display: flex;
55
+ flex-direction: column;
56
+ align-items: flex-start;
57
+ flex-grow: 1;
58
+ }
59
+
60
+ &__label {
61
+ color: var(--theme-elevation-400);
62
+ }
63
+
64
+ &__controls {
65
+ margin-top: auto;
66
+ margin-bottom: 0;
67
+
68
+ > * {
69
+ margin-top: base(1);
70
+ }
71
+
72
+ a:focus-visible {
73
+ outline: var(--accessibility-outline);
74
+ }
75
+ }
76
+
77
+ &__log-out {
78
+ &:hover {
79
+ g {
80
+ transform: translateX(-#{base(0.125)});
81
+ }
82
+ }
83
+ }
84
+
85
+ nav {
86
+ a {
87
+ position: relative;
88
+ padding: base(0.125) base(1.5) base(0.125) 0;
89
+ display: flex;
90
+ text-decoration: none;
91
+
92
+ &:focus:not(:focus-visible) {
93
+ box-shadow: none;
94
+ font-weight: 600;
95
+ }
96
+
97
+ &:hover,
98
+ &:focus-visible {
99
+ text-decoration: underline;
100
+ }
101
+
102
+ &.active {
103
+ font-weight: normal;
104
+ padding-left: 0;
105
+ font-weight: 600;
106
+ }
107
+ }
108
+ }
109
+
110
+ &__link {
111
+ display: flex;
112
+ align-items: center;
113
+
114
+ &.active {
115
+ .nav__link-icon {
116
+ display: block;
117
+ }
118
+ }
119
+ }
120
+
121
+ &__link-icon {
122
+ display: none;
123
+ margin-right: calc(var(--base) * 0.25);
124
+ top: -1px;
125
+ position: relative;
126
+ }
127
+
128
+ @include mid-break {
129
+ &__scroll {
130
+ padding: var(--app-header-height) base(0.5) base(2);
131
+ }
132
+ }
133
+
134
+ @include small-break {
135
+ &__scroll {
136
+ padding: var(--app-header-height) var(--gutter-h) base(2);
137
+ }
138
+
139
+ nav a {
140
+ font-size: base(0.875);
141
+ line-height: base(1.5);
142
+ }
143
+
144
+ &__mobile-close {
145
+ display: flex;
146
+ height: 100%;
147
+ align-items: center;
148
+ }
149
+ }
150
+ }
@@ -0,0 +1,3 @@
1
+ export { DefaultTemplate, type DefaultTemplateProps } from '../templates/Default/index.js';
2
+ export { MinimalTemplate, type MinimalTemplateProps } from '../templates/Minimal/index.js';
3
+ //# sourceMappingURL=templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/exports/templates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AAC1F,OAAO,EAAE,eAAe,EAAE,KAAK,oBAAoB,EAAE,MAAM,+BAA+B,CAAA"}
@@ -0,0 +1,4 @@
1
+ export { DefaultTemplate } from '../templates/Default/index.js';
2
+ export { MinimalTemplate } from '../templates/Minimal/index.js';
3
+
4
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exports/templates.ts"],"sourcesContent":["export { DefaultTemplate, type DefaultTemplateProps } from '../templates/Default/index.js'\nexport { MinimalTemplate, type MinimalTemplateProps } from '../templates/Minimal/index.js'\n"],"names":["DefaultTemplate","MinimalTemplate"],"rangeMappings":";","mappings":"AAAA,SAASA,eAAe,QAAmC,gCAA+B;AAC1F,SAASC,eAAe,QAAmC,gCAA+B"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" resolution-mode="require"/>
2
2
  import type { BusboyConfig } from 'busboy';
3
- import { APIError } from 'payload/errors';
3
+ import { APIError } from 'payload';
4
4
  export type FileShape = {
5
5
  data: Buffer;
6
6
  encoding: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetchAPI-multipart/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAsBzC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAA;IACzF;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;IAChD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACnC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAEzB,KAAK,8BAA8B,GAAG;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;CACtD,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE;IAC/B,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAYhC,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fetchAPI-multipart/index.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAG1C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAsBlC,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,GAAG,EAAE,MAAM,GAAG,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;IACpE,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAClC;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtC;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IAC3B;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,OAAO,GAAG,SAAS,CAAA;IACzF;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACjC;;;;;;;;;;;;;;;;;OAiBG;IACH,iBAAiB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;IAChD;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAA;IAC5C;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAChC;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAClC;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACxC;;;;;;OAMG;IACH,YAAY,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACnC,GAAG,OAAO,CAAC,YAAY,CAAC,CAAA;AAEzB,KAAK,8BAA8B,GAAG;IACpC,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,MAAM,MAAM,0BAA0B,GAAG;IACvC,KAAK,CAAC,EAAE,QAAQ,CAAA;IAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,8BAA8B,CAAC,CAAA;CACtD,CAAA;AAED,KAAK,kBAAkB,GAAG,CAAC,IAAI,EAAE;IAC/B,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC,OAAO,EAAE,OAAO,CAAA;CACjB,KAAK,OAAO,CAAC,0BAA0B,CAAC,CAAA;AACzC,eAAO,MAAM,kBAAkB,EAAE,kBAYhC,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import path from 'path';
2
- import { APIError } from 'payload/errors';
2
+ import { APIError } from 'payload';
3
3
  import { isEligibleRequest } from './isEligibleRequest.js';
4
4
  import { processMultipart } from './processMultipart.js';
5
5
  import { debugLog } from './utilities.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fetchAPI-multipart/index.ts"],"sourcesContent":["import type { BusboyConfig } from 'busboy'\n\nimport path from 'path'\nimport { APIError } from 'payload/errors'\n\nimport { isEligibleRequest } from './isEligibleRequest.js'\nimport { processMultipart } from './processMultipart.js'\nimport { debugLog } from './utilities.js'\n\nconst DEFAULT_OPTIONS = {\n abortOnLimit: false,\n createParentPath: false,\n debug: false,\n fileHandler: false,\n limitHandler: false,\n parseNested: false,\n preserveExtension: false,\n responseOnLimit: 'File size limit has been reached',\n safeFileNames: false,\n tempFileDir: path.join(process.cwd(), 'tmp'),\n uploadTimeout: 60000,\n uriDecodeFileNames: false,\n useTempFiles: false,\n}\n\nexport type FileShape = {\n data: Buffer\n encoding: string\n md5: Buffer | string\n mimetype: string\n mv: (filePath: string, callback: () => void) => Promise<void> | void\n name: string\n size: number\n tempFilePath: string\n truncated: boolean\n}\n\nexport type FetchAPIFileUploadOptions = {\n /**\n * Returns a HTTP 413 when the file is bigger than the size limit if `true`.\n * Otherwise, it will add a `truncated = true` to the resulting file structure.\n * @default false\n */\n abortOnLimit?: boolean | undefined\n /**\n * Automatically creates the directory path specified in `.mv(filePathName)`\n * @default false\n */\n createParentPath?: boolean | undefined\n /**\n * Turn on/off upload process logging. Can be useful for troubleshooting.\n * @default false\n */\n debug?: boolean | undefined\n /**\n * User defined limit handler which will be invoked if the file is bigger than configured limits.\n * @default false\n */\n limitHandler?: ((args: { request: Request; size: number }) => void) | boolean | undefined\n /**\n * By default, `req.body` and `req.files` are flattened like this:\n * `{'name': 'John', 'hobbies[0]': 'Cinema', 'hobbies[1]': 'Bike'}\n *\n * When this option is enabled they are parsed in order to be nested like this:\n * `{'name': 'John', 'hobbies': ['Cinema', 'Bike']}`\n * @default false\n */\n parseNested?: boolean | undefined\n /**\n * Preserves filename extension when using `safeFileNames` option.\n * If set to `true`, will default to an extension length of `3`.\n * If set to `number`, this will be the max allowable extension length.\n * If an extension is smaller than the extension length, it remains untouched. If the extension is longer,\n * it is shifted.\n * @default false\n *\n * @example\n * // true\n * app.use(fileUpload({ safeFileNames: true, preserveExtension: true }));\n * // myFileName.ext --> myFileName.ext\n *\n * @example\n * // max extension length 2, extension shifted\n * app.use(fileUpload({ safeFileNames: true, preserveExtension: 2 }));\n * // myFileName.ext --> myFileNamee.xt\n */\n preserveExtension?: boolean | number | undefined\n /**\n * Response which will be send to client if file size limit exceeded when `abortOnLimit` set to `true`.\n * @default 'File size limit has been reached'\n */\n responseOnLimit?: string | undefined\n /**\n * Strips characters from the upload's filename.\n * You can use custom regex to determine what to strip.\n * If set to `true`, non-alphanumeric characters _except_ dashes and underscores will be stripped.\n * This option is off by default.\n * @default false\n *\n * @example\n * // strip slashes from file names\n * app.use(fileUpload({ safeFileNames: /\\\\/g }))\n *\n * @example\n * app.use(fileUpload({ safeFileNames: true }))\n */\n safeFileNames?: RegExp | boolean | undefined\n /**\n * Path to store temporary files.\n * Used along with the `useTempFiles` option. By default this module uses `'tmp'` folder\n * in the current working directory.\n * You can use trailing slash, but it is not necessary.\n * @default './tmp'\n */\n tempFileDir?: string | undefined\n /**\n * This defines how long to wait for data before aborting. Set to `0` if you want to turn off timeout checks.\n * @default 60_000\n */\n uploadTimeout?: number | undefined\n /**\n * Applies uri decoding to file names if set `true`.\n * @default false\n */\n uriDecodeFileNames?: boolean | undefined\n /**\n * By default this module uploads files into RAM.\n * Setting this option to `true` turns on using temporary files instead of utilising RAM.\n * This avoids memory overflow issues when uploading large files or in case of uploading\n * lots of files at same time.\n * @default false\n */\n useTempFiles?: boolean | undefined\n} & Partial<BusboyConfig>\n\ntype FetchAPIFileUploadResponseFile = {\n data: Buffer\n mimetype: string\n name: string\n size: number\n tempFilePath?: string\n}\n\nexport type FetchAPIFileUploadResponse = {\n error?: APIError\n fields: Record<string, string>\n files: Record<string, FetchAPIFileUploadResponseFile>\n}\n\ntype FetchAPIFileUpload = (args: {\n options?: FetchAPIFileUploadOptions\n request: Request\n}) => Promise<FetchAPIFileUploadResponse>\nexport const fetchAPIFileUpload: FetchAPIFileUpload = async ({ options, request }) => {\n const uploadOptions: FetchAPIFileUploadOptions = { ...DEFAULT_OPTIONS, ...options }\n if (!isEligibleRequest(request)) {\n debugLog(uploadOptions, 'Request is not eligible for file upload!')\n return {\n error: new APIError('Request is not eligible for file upload', 500),\n fields: undefined,\n files: undefined,\n }\n } else {\n return processMultipart({ options: uploadOptions, request })\n }\n}\n"],"names":["path","APIError","isEligibleRequest","processMultipart","debugLog","DEFAULT_OPTIONS","abortOnLimit","createParentPath","debug","fileHandler","limitHandler","parseNested","preserveExtension","responseOnLimit","safeFileNames","tempFileDir","join","process","cwd","uploadTimeout","uriDecodeFileNames","useTempFiles","fetchAPIFileUpload","options","request","uploadOptions","error","fields","undefined","files"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,UAAU,OAAM;AACvB,SAASC,QAAQ,QAAQ,iBAAgB;AAEzC,SAASC,iBAAiB,QAAQ,yBAAwB;AAC1D,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,QAAQ,QAAQ,iBAAgB;AAEzC,MAAMC,kBAAkB;IACtBC,cAAc;IACdC,kBAAkB;IAClBC,OAAO;IACPC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC,mBAAmB;IACnBC,iBAAiB;IACjBC,eAAe;IACfC,aAAaf,KAAKgB,IAAI,CAACC,QAAQC,GAAG,IAAI;IACtCC,eAAe;IACfC,oBAAoB;IACpBC,cAAc;AAChB;AAkIA,OAAO,MAAMC,qBAAyC,OAAO,EAAEC,OAAO,EAAEC,OAAO,EAAE;IAC/E,MAAMC,gBAA2C;QAAE,GAAGpB,eAAe;QAAE,GAAGkB,OAAO;IAAC;IAClF,IAAI,CAACrB,kBAAkBsB,UAAU;QAC/BpB,SAASqB,eAAe;QACxB,OAAO;YACLC,OAAO,IAAIzB,SAAS,2CAA2C;YAC/D0B,QAAQC;YACRC,OAAOD;QACT;IACF,OAAO;QACL,OAAOzB,iBAAiB;YAAEoB,SAASE;YAAeD;QAAQ;IAC5D;AACF,EAAC"}
1
+ {"version":3,"sources":["../../src/fetchAPI-multipart/index.ts"],"sourcesContent":["import type { BusboyConfig } from 'busboy'\n\nimport path from 'path'\nimport { APIError } from 'payload'\n\nimport { isEligibleRequest } from './isEligibleRequest.js'\nimport { processMultipart } from './processMultipart.js'\nimport { debugLog } from './utilities.js'\n\nconst DEFAULT_OPTIONS = {\n abortOnLimit: false,\n createParentPath: false,\n debug: false,\n fileHandler: false,\n limitHandler: false,\n parseNested: false,\n preserveExtension: false,\n responseOnLimit: 'File size limit has been reached',\n safeFileNames: false,\n tempFileDir: path.join(process.cwd(), 'tmp'),\n uploadTimeout: 60000,\n uriDecodeFileNames: false,\n useTempFiles: false,\n}\n\nexport type FileShape = {\n data: Buffer\n encoding: string\n md5: Buffer | string\n mimetype: string\n mv: (filePath: string, callback: () => void) => Promise<void> | void\n name: string\n size: number\n tempFilePath: string\n truncated: boolean\n}\n\nexport type FetchAPIFileUploadOptions = {\n /**\n * Returns a HTTP 413 when the file is bigger than the size limit if `true`.\n * Otherwise, it will add a `truncated = true` to the resulting file structure.\n * @default false\n */\n abortOnLimit?: boolean | undefined\n /**\n * Automatically creates the directory path specified in `.mv(filePathName)`\n * @default false\n */\n createParentPath?: boolean | undefined\n /**\n * Turn on/off upload process logging. Can be useful for troubleshooting.\n * @default false\n */\n debug?: boolean | undefined\n /**\n * User defined limit handler which will be invoked if the file is bigger than configured limits.\n * @default false\n */\n limitHandler?: ((args: { request: Request; size: number }) => void) | boolean | undefined\n /**\n * By default, `req.body` and `req.files` are flattened like this:\n * `{'name': 'John', 'hobbies[0]': 'Cinema', 'hobbies[1]': 'Bike'}\n *\n * When this option is enabled they are parsed in order to be nested like this:\n * `{'name': 'John', 'hobbies': ['Cinema', 'Bike']}`\n * @default false\n */\n parseNested?: boolean | undefined\n /**\n * Preserves filename extension when using `safeFileNames` option.\n * If set to `true`, will default to an extension length of `3`.\n * If set to `number`, this will be the max allowable extension length.\n * If an extension is smaller than the extension length, it remains untouched. If the extension is longer,\n * it is shifted.\n * @default false\n *\n * @example\n * // true\n * app.use(fileUpload({ safeFileNames: true, preserveExtension: true }));\n * // myFileName.ext --> myFileName.ext\n *\n * @example\n * // max extension length 2, extension shifted\n * app.use(fileUpload({ safeFileNames: true, preserveExtension: 2 }));\n * // myFileName.ext --> myFileNamee.xt\n */\n preserveExtension?: boolean | number | undefined\n /**\n * Response which will be send to client if file size limit exceeded when `abortOnLimit` set to `true`.\n * @default 'File size limit has been reached'\n */\n responseOnLimit?: string | undefined\n /**\n * Strips characters from the upload's filename.\n * You can use custom regex to determine what to strip.\n * If set to `true`, non-alphanumeric characters _except_ dashes and underscores will be stripped.\n * This option is off by default.\n * @default false\n *\n * @example\n * // strip slashes from file names\n * app.use(fileUpload({ safeFileNames: /\\\\/g }))\n *\n * @example\n * app.use(fileUpload({ safeFileNames: true }))\n */\n safeFileNames?: RegExp | boolean | undefined\n /**\n * Path to store temporary files.\n * Used along with the `useTempFiles` option. By default this module uses `'tmp'` folder\n * in the current working directory.\n * You can use trailing slash, but it is not necessary.\n * @default './tmp'\n */\n tempFileDir?: string | undefined\n /**\n * This defines how long to wait for data before aborting. Set to `0` if you want to turn off timeout checks.\n * @default 60_000\n */\n uploadTimeout?: number | undefined\n /**\n * Applies uri decoding to file names if set `true`.\n * @default false\n */\n uriDecodeFileNames?: boolean | undefined\n /**\n * By default this module uploads files into RAM.\n * Setting this option to `true` turns on using temporary files instead of utilising RAM.\n * This avoids memory overflow issues when uploading large files or in case of uploading\n * lots of files at same time.\n * @default false\n */\n useTempFiles?: boolean | undefined\n} & Partial<BusboyConfig>\n\ntype FetchAPIFileUploadResponseFile = {\n data: Buffer\n mimetype: string\n name: string\n size: number\n tempFilePath?: string\n}\n\nexport type FetchAPIFileUploadResponse = {\n error?: APIError\n fields: Record<string, string>\n files: Record<string, FetchAPIFileUploadResponseFile>\n}\n\ntype FetchAPIFileUpload = (args: {\n options?: FetchAPIFileUploadOptions\n request: Request\n}) => Promise<FetchAPIFileUploadResponse>\nexport const fetchAPIFileUpload: FetchAPIFileUpload = async ({ options, request }) => {\n const uploadOptions: FetchAPIFileUploadOptions = { ...DEFAULT_OPTIONS, ...options }\n if (!isEligibleRequest(request)) {\n debugLog(uploadOptions, 'Request is not eligible for file upload!')\n return {\n error: new APIError('Request is not eligible for file upload', 500),\n fields: undefined,\n files: undefined,\n }\n } else {\n return processMultipart({ options: uploadOptions, request })\n }\n}\n"],"names":["path","APIError","isEligibleRequest","processMultipart","debugLog","DEFAULT_OPTIONS","abortOnLimit","createParentPath","debug","fileHandler","limitHandler","parseNested","preserveExtension","responseOnLimit","safeFileNames","tempFileDir","join","process","cwd","uploadTimeout","uriDecodeFileNames","useTempFiles","fetchAPIFileUpload","options","request","uploadOptions","error","fields","undefined","files"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,UAAU,OAAM;AACvB,SAASC,QAAQ,QAAQ,UAAS;AAElC,SAASC,iBAAiB,QAAQ,yBAAwB;AAC1D,SAASC,gBAAgB,QAAQ,wBAAuB;AACxD,SAASC,QAAQ,QAAQ,iBAAgB;AAEzC,MAAMC,kBAAkB;IACtBC,cAAc;IACdC,kBAAkB;IAClBC,OAAO;IACPC,aAAa;IACbC,cAAc;IACdC,aAAa;IACbC,mBAAmB;IACnBC,iBAAiB;IACjBC,eAAe;IACfC,aAAaf,KAAKgB,IAAI,CAACC,QAAQC,GAAG,IAAI;IACtCC,eAAe;IACfC,oBAAoB;IACpBC,cAAc;AAChB;AAkIA,OAAO,MAAMC,qBAAyC,OAAO,EAAEC,OAAO,EAAEC,OAAO,EAAE;IAC/E,MAAMC,gBAA2C;QAAE,GAAGpB,eAAe;QAAE,GAAGkB,OAAO;IAAC;IAClF,IAAI,CAACrB,kBAAkBsB,UAAU;QAC/BpB,SAASqB,eAAe;QACxB,OAAO;YACLC,OAAO,IAAIzB,SAAS,2CAA2C;YAC/D0B,QAAQC;YACRC,OAAOD;QACT;IACF,OAAO;QACL,OAAOzB,iBAAiB;YAAEoB,SAASE;YAAeD;QAAQ;IAC5D;AACF,EAAC"}
@@ -1,6 +1,6 @@
1
1
  import Busboy from 'busboy';
2
2
  import httpStatus from 'http-status';
3
- import { APIError } from 'payload/errors';
3
+ import { APIError } from 'payload';
4
4
  import { fileFactory } from './fileFactory.js';
5
5
  import { memHandler, tempFileHandler } from './handlers.js';
6
6
  import { processNested } from './processNested.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/fetchAPI-multipart/processMultipart.ts"],"sourcesContent":["import type { Readable } from 'stream'\n\nimport Busboy from 'busboy'\nimport httpStatus from 'http-status'\nimport { APIError } from 'payload/errors'\n\nimport type { FetchAPIFileUploadOptions, FetchAPIFileUploadResponse } from './index.js'\n\nimport { fileFactory } from './fileFactory.js'\nimport { memHandler, tempFileHandler } from './handlers.js'\nimport { processNested } from './processNested.js'\nimport { createUploadTimer } from './uploadTimer.js'\nimport { buildFields, debugLog, isFunc, parseFileName } from './utilities.js'\n\nconst waitFlushProperty = Symbol('wait flush property symbol')\n\ntype ProcessMultipart = (args: {\n options: FetchAPIFileUploadOptions\n request: Request\n}) => Promise<FetchAPIFileUploadResponse>\nexport const processMultipart: ProcessMultipart = async ({ options, request }) => {\n let parsingRequest = true\n\n let fileCount = 0\n let filesCompleted = 0\n let allFilesHaveResolved: (value?: unknown) => void\n let failedResolvingFiles: (err: Error) => void\n\n const allFilesComplete = new Promise((res, rej) => {\n allFilesHaveResolved = res\n failedResolvingFiles = rej\n })\n\n const result: FetchAPIFileUploadResponse = {\n fields: undefined,\n files: undefined,\n }\n\n const headersObject = {}\n request.headers.forEach((value, name) => {\n headersObject[name] = value\n })\n\n function abortAndDestroyFile(file: Readable, err: APIError) {\n file.destroy()\n parsingRequest = false\n failedResolvingFiles(err)\n }\n\n const busboy = Busboy({ ...options, headers: headersObject })\n\n // Build multipart req.body fields\n busboy.on('field', (field, val) => {\n result.fields = buildFields(result.fields, field, val)\n })\n\n // Build req.files fields\n busboy.on('file', (field, file, info) => {\n fileCount += 1\n // Parse file name(cutting huge names, decoding, etc..).\n const { encoding, filename: name, mimeType: mime } = info\n const filename = parseFileName(options, name)\n\n // Define methods and handlers for upload process.\n const { cleanup, complete, dataHandler, getFilePath, getFileSize, getHash, getWritePromise } =\n options.useTempFiles\n ? tempFileHandler(options, field, filename) // Upload into temporary file.\n : memHandler(options, field, filename) // Upload into RAM.\n\n const writePromise = options.useTempFiles\n ? getWritePromise().catch((err) => {\n busboy.end()\n cleanup()\n })\n : getWritePromise()\n\n const uploadTimer = createUploadTimer(options.uploadTimeout, () => {\n return abortAndDestroyFile(\n file,\n new APIError(`Upload timeout for ${field}->${filename}, bytes:${getFileSize()}`),\n )\n })\n\n file.on('limit', () => {\n debugLog(options, `Size limit reached for ${field}->${filename}, bytes:${getFileSize()}`)\n uploadTimer.clear()\n\n if (isFunc(options.limitHandler)) {\n options.limitHandler({ request, size: getFileSize() })\n }\n\n // Return error and cleanup files if abortOnLimit set.\n if (options.abortOnLimit) {\n debugLog(options, `Upload file size limit reached ${field}->${filename}.`)\n cleanup()\n abortAndDestroyFile(\n file,\n new APIError(options.responseOnLimit, httpStatus.REQUEST_ENTITY_TOO_LARGE, {\n size: getFileSize(),\n }),\n )\n }\n })\n\n file.on('data', (data) => {\n uploadTimer.set()\n dataHandler(data)\n })\n\n file.on('end', () => {\n const size = getFileSize()\n debugLog(options, `Upload finished ${field}->${filename}, bytes:${size}`)\n uploadTimer.clear()\n\n if (!name && size === 0) {\n fileCount -= 1\n if (options.useTempFiles) {\n cleanup()\n debugLog(options, `Removing the empty file ${field}->${filename}`)\n }\n return debugLog(options, `Don't add file instance if original name and size are empty`)\n }\n\n filesCompleted += 1\n\n result.files = buildFields(\n result.files,\n field,\n fileFactory(\n {\n name: filename,\n buffer: complete(),\n encoding,\n hash: getHash(),\n mimetype: mime,\n size,\n tempFilePath: getFilePath(),\n truncated: Boolean('truncated' in file && file.truncated),\n },\n options,\n ),\n )\n\n if (!request[waitFlushProperty]) {\n request[waitFlushProperty] = []\n }\n request[waitFlushProperty].push(writePromise)\n\n if (filesCompleted === fileCount) {\n allFilesHaveResolved()\n }\n })\n\n file.on('error', (err) => {\n uploadTimer.clear()\n debugLog(options, `File Error: ${err.message}`)\n cleanup()\n failedResolvingFiles(err)\n })\n\n // Start upload process.\n debugLog(options, `New upload started ${field}->${filename}, bytes:${getFileSize()}`)\n uploadTimer.set()\n })\n\n busboy.on('finish', async () => {\n debugLog(options, `Busboy finished parsing request.`)\n if (options.parseNested) {\n result.fields = processNested(result.fields)\n result.files = processNested(result.files)\n }\n\n if (request[waitFlushProperty]) {\n try {\n await Promise.all(request[waitFlushProperty]).then(() => {\n delete request[waitFlushProperty]\n })\n } catch (err) {\n debugLog(options, `Error waiting for file write promises: ${err}`)\n }\n }\n\n return result\n })\n\n busboy.on(\n 'error',\n (err = new APIError('Busboy error parsing multipart request', httpStatus.BAD_REQUEST)) => {\n debugLog(options, `Busboy error`)\n parsingRequest = false\n throw err\n },\n )\n\n const reader = request.body.getReader()\n\n // Start parsing request\n while (parsingRequest) {\n const { done, value } = await reader.read()\n\n if (done) {\n parsingRequest = false\n }\n\n if (value) {\n busboy.write(value)\n }\n }\n\n if (fileCount !== 0) {\n await allFilesComplete.catch((e) => {\n throw e\n })\n }\n\n return result\n}\n"],"names":["Busboy","httpStatus","APIError","fileFactory","memHandler","tempFileHandler","processNested","createUploadTimer","buildFields","debugLog","isFunc","parseFileName","waitFlushProperty","Symbol","processMultipart","options","request","parsingRequest","fileCount","filesCompleted","allFilesHaveResolved","failedResolvingFiles","allFilesComplete","Promise","res","rej","result","fields","undefined","files","headersObject","headers","forEach","value","name","abortAndDestroyFile","file","err","destroy","busboy","on","field","val","info","encoding","filename","mimeType","mime","cleanup","complete","dataHandler","getFilePath","getFileSize","getHash","getWritePromise","useTempFiles","writePromise","catch","end","uploadTimer","uploadTimeout","clear","limitHandler","size","abortOnLimit","responseOnLimit","REQUEST_ENTITY_TOO_LARGE","data","set","buffer","hash","mimetype","tempFilePath","truncated","Boolean","push","message","parseNested","all","then","BAD_REQUEST","reader","body","getReader","done","read","write","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../../src/fetchAPI-multipart/processMultipart.ts"],"sourcesContent":["import type { Readable } from 'stream'\n\nimport Busboy from 'busboy'\nimport httpStatus from 'http-status'\nimport { APIError } from 'payload'\n\nimport type { FetchAPIFileUploadOptions, FetchAPIFileUploadResponse } from './index.js'\n\nimport { fileFactory } from './fileFactory.js'\nimport { memHandler, tempFileHandler } from './handlers.js'\nimport { processNested } from './processNested.js'\nimport { createUploadTimer } from './uploadTimer.js'\nimport { buildFields, debugLog, isFunc, parseFileName } from './utilities.js'\n\nconst waitFlushProperty = Symbol('wait flush property symbol')\n\ntype ProcessMultipart = (args: {\n options: FetchAPIFileUploadOptions\n request: Request\n}) => Promise<FetchAPIFileUploadResponse>\nexport const processMultipart: ProcessMultipart = async ({ options, request }) => {\n let parsingRequest = true\n\n let fileCount = 0\n let filesCompleted = 0\n let allFilesHaveResolved: (value?: unknown) => void\n let failedResolvingFiles: (err: Error) => void\n\n const allFilesComplete = new Promise((res, rej) => {\n allFilesHaveResolved = res\n failedResolvingFiles = rej\n })\n\n const result: FetchAPIFileUploadResponse = {\n fields: undefined,\n files: undefined,\n }\n\n const headersObject = {}\n request.headers.forEach((value, name) => {\n headersObject[name] = value\n })\n\n function abortAndDestroyFile(file: Readable, err: APIError) {\n file.destroy()\n parsingRequest = false\n failedResolvingFiles(err)\n }\n\n const busboy = Busboy({ ...options, headers: headersObject })\n\n // Build multipart req.body fields\n busboy.on('field', (field, val) => {\n result.fields = buildFields(result.fields, field, val)\n })\n\n // Build req.files fields\n busboy.on('file', (field, file, info) => {\n fileCount += 1\n // Parse file name(cutting huge names, decoding, etc..).\n const { encoding, filename: name, mimeType: mime } = info\n const filename = parseFileName(options, name)\n\n // Define methods and handlers for upload process.\n const { cleanup, complete, dataHandler, getFilePath, getFileSize, getHash, getWritePromise } =\n options.useTempFiles\n ? tempFileHandler(options, field, filename) // Upload into temporary file.\n : memHandler(options, field, filename) // Upload into RAM.\n\n const writePromise = options.useTempFiles\n ? getWritePromise().catch((err) => {\n busboy.end()\n cleanup()\n })\n : getWritePromise()\n\n const uploadTimer = createUploadTimer(options.uploadTimeout, () => {\n return abortAndDestroyFile(\n file,\n new APIError(`Upload timeout for ${field}->${filename}, bytes:${getFileSize()}`),\n )\n })\n\n file.on('limit', () => {\n debugLog(options, `Size limit reached for ${field}->${filename}, bytes:${getFileSize()}`)\n uploadTimer.clear()\n\n if (isFunc(options.limitHandler)) {\n options.limitHandler({ request, size: getFileSize() })\n }\n\n // Return error and cleanup files if abortOnLimit set.\n if (options.abortOnLimit) {\n debugLog(options, `Upload file size limit reached ${field}->${filename}.`)\n cleanup()\n abortAndDestroyFile(\n file,\n new APIError(options.responseOnLimit, httpStatus.REQUEST_ENTITY_TOO_LARGE, {\n size: getFileSize(),\n }),\n )\n }\n })\n\n file.on('data', (data) => {\n uploadTimer.set()\n dataHandler(data)\n })\n\n file.on('end', () => {\n const size = getFileSize()\n debugLog(options, `Upload finished ${field}->${filename}, bytes:${size}`)\n uploadTimer.clear()\n\n if (!name && size === 0) {\n fileCount -= 1\n if (options.useTempFiles) {\n cleanup()\n debugLog(options, `Removing the empty file ${field}->${filename}`)\n }\n return debugLog(options, `Don't add file instance if original name and size are empty`)\n }\n\n filesCompleted += 1\n\n result.files = buildFields(\n result.files,\n field,\n fileFactory(\n {\n name: filename,\n buffer: complete(),\n encoding,\n hash: getHash(),\n mimetype: mime,\n size,\n tempFilePath: getFilePath(),\n truncated: Boolean('truncated' in file && file.truncated),\n },\n options,\n ),\n )\n\n if (!request[waitFlushProperty]) {\n request[waitFlushProperty] = []\n }\n request[waitFlushProperty].push(writePromise)\n\n if (filesCompleted === fileCount) {\n allFilesHaveResolved()\n }\n })\n\n file.on('error', (err) => {\n uploadTimer.clear()\n debugLog(options, `File Error: ${err.message}`)\n cleanup()\n failedResolvingFiles(err)\n })\n\n // Start upload process.\n debugLog(options, `New upload started ${field}->${filename}, bytes:${getFileSize()}`)\n uploadTimer.set()\n })\n\n busboy.on('finish', async () => {\n debugLog(options, `Busboy finished parsing request.`)\n if (options.parseNested) {\n result.fields = processNested(result.fields)\n result.files = processNested(result.files)\n }\n\n if (request[waitFlushProperty]) {\n try {\n await Promise.all(request[waitFlushProperty]).then(() => {\n delete request[waitFlushProperty]\n })\n } catch (err) {\n debugLog(options, `Error waiting for file write promises: ${err}`)\n }\n }\n\n return result\n })\n\n busboy.on(\n 'error',\n (err = new APIError('Busboy error parsing multipart request', httpStatus.BAD_REQUEST)) => {\n debugLog(options, `Busboy error`)\n parsingRequest = false\n throw err\n },\n )\n\n const reader = request.body.getReader()\n\n // Start parsing request\n while (parsingRequest) {\n const { done, value } = await reader.read()\n\n if (done) {\n parsingRequest = false\n }\n\n if (value) {\n busboy.write(value)\n }\n }\n\n if (fileCount !== 0) {\n await allFilesComplete.catch((e) => {\n throw e\n })\n }\n\n return result\n}\n"],"names":["Busboy","httpStatus","APIError","fileFactory","memHandler","tempFileHandler","processNested","createUploadTimer","buildFields","debugLog","isFunc","parseFileName","waitFlushProperty","Symbol","processMultipart","options","request","parsingRequest","fileCount","filesCompleted","allFilesHaveResolved","failedResolvingFiles","allFilesComplete","Promise","res","rej","result","fields","undefined","files","headersObject","headers","forEach","value","name","abortAndDestroyFile","file","err","destroy","busboy","on","field","val","info","encoding","filename","mimeType","mime","cleanup","complete","dataHandler","getFilePath","getFileSize","getHash","getWritePromise","useTempFiles","writePromise","catch","end","uploadTimer","uploadTimeout","clear","limitHandler","size","abortOnLimit","responseOnLimit","REQUEST_ENTITY_TOO_LARGE","data","set","buffer","hash","mimetype","tempFilePath","truncated","Boolean","push","message","parseNested","all","then","BAD_REQUEST","reader","body","getReader","done","read","write","e"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { SanitizedConfig } from 'payload/types';
1
+ import type { SanitizedConfig } from 'payload';
2
2
  import '@payloadcms/ui/scss/app.scss';
3
3
  import React from 'react';
4
4
  export declare const metadata: {
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAKpD,OAAO,8BAA8B,CAAA;AAMrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAgBzB,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,eAAO,MAAM,UAAU,yCAGpB;IACD,QAAQ,EAAE,MAAM,SAAS,CAAA;IACzB,MAAM,EAAE,QAAQ,eAAe,CAAC,CAAA;CACjC,+BAqFA,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/layouts/Root/index.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAK9C,OAAO,8BAA8B,CAAA;AAIrC,OAAO,KAAK,MAAM,OAAO,CAAA;AAgBzB,eAAO,MAAM,QAAQ;;;CAGpB,CAAA;AAED,eAAO,MAAM,UAAU,yCAGpB;IACD,QAAQ,EAAE,MAAM,SAAS,CAAA;IACzB,MAAM,EAAE,QAAQ,eAAe,CAAC,CAAA;CACjC,+BAqFA,CAAA"}
@@ -1,12 +1,10 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { rtlLanguages } from '@payloadcms/translations';
3
- import { initI18n } from '@payloadcms/translations';
4
- import { RootProvider } from '@payloadcms/ui/providers/Root';
5
- import { buildComponentMap } from '@payloadcms/ui/utilities/buildComponentMap';
2
+ import { initI18n, rtlLanguages } from '@payloadcms/translations';
3
+ import { RootProvider } from '@payloadcms/ui/client';
4
+ import { buildComponentMap } from '@payloadcms/ui/providers/ComponentMap/buildComponentMap';
6
5
  import { Merriweather } from 'next/font/google';
7
6
  import { headers as getHeaders, cookies as nextCookies } from 'next/headers.js';
8
- import { parseCookies } from 'payload/auth';
9
- import { createClientConfig } from 'payload/config';
7
+ import { createClientConfig, parseCookies } from 'payload';
10
8
  import React from 'react';
11
9
  import { getPayloadHMR } from '../../utilities/getPayloadHMR.js';
12
10
  import { getRequestLanguage } from '../../utilities/getRequestLanguage.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages, I18nClient } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload/types'\n\nimport { rtlLanguages } from '@payloadcms/translations'\nimport { initI18n } from '@payloadcms/translations'\nimport { RootProvider } from '@payloadcms/ui/providers/Root'\nimport '@payloadcms/ui/scss/app.scss'\nimport { buildComponentMap } from '@payloadcms/ui/utilities/buildComponentMap'\nimport { Merriweather } from 'next/font/google'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { parseCookies } from 'payload/auth'\nimport { createClientConfig } from 'payload/config'\nimport React from 'react'\n\nimport { getPayloadHMR } from '../../utilities/getPayloadHMR.js'\nimport { getRequestLanguage } from '../../utilities/getRequestLanguage.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { DefaultEditView } from '../../views/Edit/Default/index.js'\nimport { DefaultListView } from '../../views/List/Default/index.js'\n\nconst merriweather = Merriweather({\n display: 'swap',\n style: ['normal', 'italic'],\n subsets: ['latin'],\n variable: '--font-serif',\n weight: ['400', '900'],\n})\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\nexport const RootLayout = async ({\n children,\n config: configPromise,\n}: {\n children: React.ReactNode\n config: Promise<SanitizedConfig>\n}) => {\n const config = await configPromise\n\n const headers = getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const payload = await getPayloadHMR({ config })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const clientConfig = await createClientConfig({ config, t: i18n.t })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n nextCookies().set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n path: '/',\n value: lang,\n })\n }\n\n const { componentMap, wrappedChildren } = buildComponentMap({\n DefaultEditView,\n DefaultListView,\n children,\n i18n,\n payload,\n })\n\n return (\n <html className={merriweather.variable} data-theme={theme} dir={dir} lang={languageCode}>\n <body>\n <RootProvider\n componentMap={componentMap}\n config={clientConfig}\n dateFNSKey={i18n.dateFNSKey}\n fallbackLang={clientConfig.i18n.fallbackLanguage}\n languageCode={languageCode}\n languageOptions={languageOptions}\n // eslint-disable-next-line react/jsx-no-bind\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={i18n.translations}\n >\n {wrappedChildren}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"names":["rtlLanguages","initI18n","RootProvider","buildComponentMap","Merriweather","headers","getHeaders","cookies","nextCookies","parseCookies","createClientConfig","React","getPayloadHMR","getRequestLanguage","getRequestTheme","DefaultEditView","DefaultListView","merriweather","display","style","subsets","variable","weight","metadata","description","title","RootLayout","children","config","configPromise","languageCode","theme","payload","i18n","context","language","clientConfig","t","dir","includes","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","componentMap","wrappedChildren","html","className","data-theme","body","dateFNSKey","fallbackLang","fallbackLanguage","div","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAGA,SAASA,YAAY,QAAQ,2BAA0B;AACvD,SAASC,QAAQ,QAAQ,2BAA0B;AACnD,SAASC,YAAY,QAAQ,gCAA+B;AAE5D,SAASC,iBAAiB,QAAQ,6CAA4C;AAC9E,SAASC,YAAY,QAAQ,mBAAkB;AAC/C,SAASC,WAAWC,UAAU,EAAEC,WAAWC,WAAW,QAAQ,kBAAiB;AAC/E,SAASC,YAAY,QAAQ,eAAc;AAC3C,SAASC,kBAAkB,QAAQ,iBAAgB;AACnD,OAAOC,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,oCAAmC;AACnE,SAASC,eAAe,QAAQ,oCAAmC;AAEnE,MAAMC,eAAeb,aAAa;IAChCc,SAAS;IACTC,OAAO;QAAC;QAAU;KAAS;IAC3BC,SAAS;QAAC;KAAQ;IAClBC,UAAU;IACVC,QAAQ;QAAC;QAAO;KAAM;AACxB;AAEA,OAAO,MAAMC,WAAW;IACtBC,aAAa;IACbC,OAAO;AACT,EAAC;AAED,OAAO,MAAMC,aAAa,OAAO,EAC/BC,QAAQ,EACRC,QAAQC,aAAa,EAItB;IACC,MAAMD,SAAS,MAAMC;IAErB,MAAMxB,UAAUC;IAChB,MAAMC,UAAUE,aAAaJ;IAE7B,MAAMyB,eAAejB,mBAAmB;QACtCe;QACArB;QACAF;IACF;IAEA,MAAM0B,QAAQjB,gBAAgB;QAC5Bc;QACArB;QACAF;IACF;IAEA,MAAM2B,UAAU,MAAMpB,cAAc;QAAEgB;IAAO;IAE7C,MAAMK,OAAmB,MAAMhC,SAAS;QACtC2B,QAAQA,OAAOK,IAAI;QACnBC,SAAS;QACTC,UAAUL;IACZ;IAEA,MAAMM,eAAe,MAAM1B,mBAAmB;QAAEkB;QAAQS,GAAGJ,KAAKI,CAAC;IAAC;IAElE,MAAMC,MAAM,AAACtC,aAAgDuC,QAAQ,CAACT,gBAClE,QACA;IAEJ,MAAMU,kBAAkBC,OAAOC,OAAO,CAACd,OAAOK,IAAI,CAACU,kBAAkB,IAAI,CAAC,GAAGC,MAAM,CACjF,CAACC,KAAK,CAACV,UAAUW,eAAe;QAC9B,IAAIL,OAAOM,IAAI,CAACnB,OAAOK,IAAI,CAACU,kBAAkB,EAAEJ,QAAQ,CAACJ,WAAW;YAClEU,IAAIG,IAAI,CAAC;gBACPC,OAAOH,eAAeI,YAAY,CAACC,OAAO,CAACC,YAAY;gBACvDC,OAAOlB;YACT;QACF;QAEA,OAAOU;IACT,GACA,EAAE;IAGJ,4DAA4D;IAC5D,eAAeS,2BAA2BC,IAAY;QACpD;QACA/C,cAAcgD,GAAG,CAAC;YAChBC,MAAM,CAAC,EAAE7B,OAAO8B,YAAY,IAAI,UAAU,IAAI,CAAC;YAC/CC,MAAM;YACNN,OAAOE;QACT;IACF;IAEA,MAAM,EAAEK,YAAY,EAAEC,eAAe,EAAE,GAAG1D,kBAAkB;QAC1DY;QACAC;QACAW;QACAM;QACAD;IACF;IAEA,qBACE,KAAC8B;QAAKC,WAAW9C,aAAaI,QAAQ;QAAE2C,cAAYjC;QAAOO,KAAKA;QAAKiB,MAAMzB;kBACzE,cAAA,MAACmC;;8BACC,KAAC/D;oBACC0D,cAAcA;oBACdhC,QAAQQ;oBACR8B,YAAYjC,KAAKiC,UAAU;oBAC3BC,cAAc/B,aAAaH,IAAI,CAACmC,gBAAgB;oBAChDtC,cAAcA;oBACdU,iBAAiBA;oBACjB,6CAA6C;oBAC7Cc,4BAA4BA;oBAC5BvB,OAAOA;oBACPmB,cAAcjB,KAAKiB,YAAY;8BAE9BW;;8BAEH,KAACQ;oBAAIC,IAAG;;;;;AAIhB,EAAC"}
1
+ {"version":3,"sources":["../../../src/layouts/Root/index.tsx"],"sourcesContent":["import type { AcceptedLanguages, I18nClient } from '@payloadcms/translations'\nimport type { SanitizedConfig } from 'payload'\n\nimport { initI18n, rtlLanguages } from '@payloadcms/translations'\nimport { RootProvider } from '@payloadcms/ui/client'\nimport { buildComponentMap } from '@payloadcms/ui/providers/ComponentMap/buildComponentMap'\nimport '@payloadcms/ui/scss/app.scss'\nimport { Merriweather } from 'next/font/google'\nimport { headers as getHeaders, cookies as nextCookies } from 'next/headers.js'\nimport { createClientConfig, parseCookies } from 'payload'\nimport React from 'react'\n\nimport { getPayloadHMR } from '../../utilities/getPayloadHMR.js'\nimport { getRequestLanguage } from '../../utilities/getRequestLanguage.js'\nimport { getRequestTheme } from '../../utilities/getRequestTheme.js'\nimport { DefaultEditView } from '../../views/Edit/Default/index.js'\nimport { DefaultListView } from '../../views/List/Default/index.js'\n\nconst merriweather = Merriweather({\n display: 'swap',\n style: ['normal', 'italic'],\n subsets: ['latin'],\n variable: '--font-serif',\n weight: ['400', '900'],\n})\n\nexport const metadata = {\n description: 'Generated by Next.js',\n title: 'Next.js',\n}\n\nexport const RootLayout = async ({\n children,\n config: configPromise,\n}: {\n children: React.ReactNode\n config: Promise<SanitizedConfig>\n}) => {\n const config = await configPromise\n\n const headers = getHeaders()\n const cookies = parseCookies(headers)\n\n const languageCode = getRequestLanguage({\n config,\n cookies,\n headers,\n })\n\n const theme = getRequestTheme({\n config,\n cookies,\n headers,\n })\n\n const payload = await getPayloadHMR({ config })\n\n const i18n: I18nClient = await initI18n({\n config: config.i18n,\n context: 'client',\n language: languageCode,\n })\n\n const clientConfig = await createClientConfig({ config, t: i18n.t })\n\n const dir = (rtlLanguages as unknown as AcceptedLanguages[]).includes(languageCode)\n ? 'RTL'\n : 'LTR'\n\n const languageOptions = Object.entries(config.i18n.supportedLanguages || {}).reduce(\n (acc, [language, languageConfig]) => {\n if (Object.keys(config.i18n.supportedLanguages).includes(language)) {\n acc.push({\n label: languageConfig.translations.general.thisLanguage,\n value: language,\n })\n }\n\n return acc\n },\n [],\n )\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async function switchLanguageServerAction(lang: string): Promise<void> {\n 'use server'\n nextCookies().set({\n name: `${config.cookiePrefix || 'payload'}-lng`,\n path: '/',\n value: lang,\n })\n }\n\n const { componentMap, wrappedChildren } = buildComponentMap({\n DefaultEditView,\n DefaultListView,\n children,\n i18n,\n payload,\n })\n\n return (\n <html className={merriweather.variable} data-theme={theme} dir={dir} lang={languageCode}>\n <body>\n <RootProvider\n componentMap={componentMap}\n config={clientConfig}\n dateFNSKey={i18n.dateFNSKey}\n fallbackLang={clientConfig.i18n.fallbackLanguage}\n languageCode={languageCode}\n languageOptions={languageOptions}\n // eslint-disable-next-line react/jsx-no-bind\n switchLanguageServerAction={switchLanguageServerAction}\n theme={theme}\n translations={i18n.translations}\n >\n {wrappedChildren}\n </RootProvider>\n <div id=\"portal\" />\n </body>\n </html>\n )\n}\n"],"names":["initI18n","rtlLanguages","RootProvider","buildComponentMap","Merriweather","headers","getHeaders","cookies","nextCookies","createClientConfig","parseCookies","React","getPayloadHMR","getRequestLanguage","getRequestTheme","DefaultEditView","DefaultListView","merriweather","display","style","subsets","variable","weight","metadata","description","title","RootLayout","children","config","configPromise","languageCode","theme","payload","i18n","context","language","clientConfig","t","dir","includes","languageOptions","Object","entries","supportedLanguages","reduce","acc","languageConfig","keys","push","label","translations","general","thisLanguage","value","switchLanguageServerAction","lang","set","name","cookiePrefix","path","componentMap","wrappedChildren","html","className","data-theme","body","dateFNSKey","fallbackLang","fallbackLanguage","div","id"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";AAGA,SAASA,QAAQ,EAAEC,YAAY,QAAQ,2BAA0B;AACjE,SAASC,YAAY,QAAQ,wBAAuB;AACpD,SAASC,iBAAiB,QAAQ,0DAAyD;AAE3F,SAASC,YAAY,QAAQ,mBAAkB;AAC/C,SAASC,WAAWC,UAAU,EAAEC,WAAWC,WAAW,QAAQ,kBAAiB;AAC/E,SAASC,kBAAkB,EAAEC,YAAY,QAAQ,UAAS;AAC1D,OAAOC,WAAW,QAAO;AAEzB,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,eAAe,QAAQ,oCAAmC;AACnE,SAASC,eAAe,QAAQ,oCAAmC;AAEnE,MAAMC,eAAeb,aAAa;IAChCc,SAAS;IACTC,OAAO;QAAC;QAAU;KAAS;IAC3BC,SAAS;QAAC;KAAQ;IAClBC,UAAU;IACVC,QAAQ;QAAC;QAAO;KAAM;AACxB;AAEA,OAAO,MAAMC,WAAW;IACtBC,aAAa;IACbC,OAAO;AACT,EAAC;AAED,OAAO,MAAMC,aAAa,OAAO,EAC/BC,QAAQ,EACRC,QAAQC,aAAa,EAItB;IACC,MAAMD,SAAS,MAAMC;IAErB,MAAMxB,UAAUC;IAChB,MAAMC,UAAUG,aAAaL;IAE7B,MAAMyB,eAAejB,mBAAmB;QACtCe;QACArB;QACAF;IACF;IAEA,MAAM0B,QAAQjB,gBAAgB;QAC5Bc;QACArB;QACAF;IACF;IAEA,MAAM2B,UAAU,MAAMpB,cAAc;QAAEgB;IAAO;IAE7C,MAAMK,OAAmB,MAAMjC,SAAS;QACtC4B,QAAQA,OAAOK,IAAI;QACnBC,SAAS;QACTC,UAAUL;IACZ;IAEA,MAAMM,eAAe,MAAM3B,mBAAmB;QAAEmB;QAAQS,GAAGJ,KAAKI,CAAC;IAAC;IAElE,MAAMC,MAAM,AAACrC,aAAgDsC,QAAQ,CAACT,gBAClE,QACA;IAEJ,MAAMU,kBAAkBC,OAAOC,OAAO,CAACd,OAAOK,IAAI,CAACU,kBAAkB,IAAI,CAAC,GAAGC,MAAM,CACjF,CAACC,KAAK,CAACV,UAAUW,eAAe;QAC9B,IAAIL,OAAOM,IAAI,CAACnB,OAAOK,IAAI,CAACU,kBAAkB,EAAEJ,QAAQ,CAACJ,WAAW;YAClEU,IAAIG,IAAI,CAAC;gBACPC,OAAOH,eAAeI,YAAY,CAACC,OAAO,CAACC,YAAY;gBACvDC,OAAOlB;YACT;QACF;QAEA,OAAOU;IACT,GACA,EAAE;IAGJ,4DAA4D;IAC5D,eAAeS,2BAA2BC,IAAY;QACpD;QACA/C,cAAcgD,GAAG,CAAC;YAChBC,MAAM,CAAC,EAAE7B,OAAO8B,YAAY,IAAI,UAAU,IAAI,CAAC;YAC/CC,MAAM;YACNN,OAAOE;QACT;IACF;IAEA,MAAM,EAAEK,YAAY,EAAEC,eAAe,EAAE,GAAG1D,kBAAkB;QAC1DY;QACAC;QACAW;QACAM;QACAD;IACF;IAEA,qBACE,KAAC8B;QAAKC,WAAW9C,aAAaI,QAAQ;QAAE2C,cAAYjC;QAAOO,KAAKA;QAAKiB,MAAMzB;kBACzE,cAAA,MAACmC;;8BACC,KAAC/D;oBACC0D,cAAcA;oBACdhC,QAAQQ;oBACR8B,YAAYjC,KAAKiC,UAAU;oBAC3BC,cAAc/B,aAAaH,IAAI,CAACmC,gBAAgB;oBAChDtC,cAAcA;oBACdU,iBAAiBA;oBACjB,6CAA6C;oBAC7Cc,4BAA4BA;oBAC5BvB,OAAOA;oBACPmB,cAAcjB,KAAKiB,YAAY;8BAE9BW;;8BAEH,KAACQ;oBAAIC,IAAG;;;;;AAIhB,EAAC"}