@payloadcms/next 3.0.0-canary.926cbeb → 3.0.0-canary.95fcd13

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 (281) hide show
  1. package/dist/cjs/withPayload.cjs +10 -5
  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/tabs/VersionsPill/index.d.ts.map +1 -1
  11. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js +3 -5
  12. package/dist/elements/DocumentHeader/Tabs/tabs/VersionsPill/index.js.map +1 -1
  13. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts +2 -2
  14. package/dist/elements/DocumentHeader/Tabs/tabs/index.d.ts.map +1 -1
  15. package/dist/elements/DocumentHeader/Tabs/tabs/index.js.map +1 -1
  16. package/dist/elements/EmailAndUsername/index.d.ts +8 -0
  17. package/dist/elements/EmailAndUsername/index.d.ts.map +1 -0
  18. package/dist/elements/EmailAndUsername/index.js +33 -0
  19. package/dist/elements/EmailAndUsername/index.js.map +1 -0
  20. package/dist/elements/LeaveWithoutSaving/index.d.ts.map +1 -1
  21. package/dist/elements/LeaveWithoutSaving/index.js +2 -0
  22. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  23. package/dist/elements/Nav/index.client.d.ts.map +1 -1
  24. package/dist/elements/Nav/index.client.js +15 -5
  25. package/dist/elements/Nav/index.client.js.map +1 -1
  26. package/dist/layouts/Root/index.d.ts.map +1 -1
  27. package/dist/layouts/Root/index.js +0 -18
  28. package/dist/layouts/Root/index.js.map +1 -1
  29. package/dist/prod/styles.css +1 -1
  30. package/dist/routes/graphql/handler.d.ts.map +1 -1
  31. package/dist/routes/graphql/handler.js +1 -5
  32. package/dist/routes/graphql/handler.js.map +1 -1
  33. package/dist/routes/rest/auth/login.d.ts.map +1 -1
  34. package/dist/routes/rest/auth/login.js +1 -1
  35. package/dist/routes/rest/auth/login.js.map +1 -1
  36. package/dist/routes/rest/auth/unlock.d.ts.map +1 -1
  37. package/dist/routes/rest/auth/unlock.js +7 -3
  38. package/dist/routes/rest/auth/unlock.js.map +1 -1
  39. package/dist/routes/rest/collections/restoreVersion.d.ts.map +1 -1
  40. package/dist/routes/rest/collections/restoreVersion.js +2 -0
  41. package/dist/routes/rest/collections/restoreVersion.js.map +1 -1
  42. package/dist/routes/rest/globals/restoreVersion.d.ts.map +1 -1
  43. package/dist/routes/rest/globals/restoreVersion.js +2 -0
  44. package/dist/routes/rest/globals/restoreVersion.js.map +1 -1
  45. package/dist/routes/rest/index.d.ts.map +1 -1
  46. package/dist/routes/rest/index.js +30 -5
  47. package/dist/routes/rest/index.js.map +1 -1
  48. package/dist/routes/rest/routeError.d.ts.map +1 -1
  49. package/dist/routes/rest/routeError.js +3 -3
  50. package/dist/routes/rest/routeError.js.map +1 -1
  51. package/dist/scss/app.scss +5 -10
  52. package/dist/scss/colors.scss +76 -76
  53. package/dist/scss/toastify.scss +59 -0
  54. package/dist/scss/toasts.scss +75 -45
  55. package/dist/scss/type.scss +14 -23
  56. package/dist/scss/vars.scss +26 -47
  57. package/dist/templates/Default/index.d.ts +2 -2
  58. package/dist/templates/Default/index.d.ts.map +1 -1
  59. package/dist/templates/Default/index.js.map +1 -1
  60. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  61. package/dist/utilities/createPayloadRequest.js +11 -8
  62. package/dist/utilities/createPayloadRequest.js.map +1 -1
  63. package/dist/utilities/getNextRequestI18n.d.ts +3 -3
  64. package/dist/utilities/getNextRequestI18n.d.ts.map +1 -1
  65. package/dist/utilities/getNextRequestI18n.js +3 -1
  66. package/dist/utilities/getNextRequestI18n.js.map +1 -1
  67. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  68. package/dist/utilities/getPayloadHMR.js +11 -8
  69. package/dist/utilities/getPayloadHMR.js.map +1 -1
  70. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  71. package/dist/utilities/headersWithCors.js +19 -3
  72. package/dist/utilities/headersWithCors.js.map +1 -1
  73. package/dist/utilities/initPage/handleAdminPage.d.ts +4 -0
  74. package/dist/utilities/initPage/handleAdminPage.d.ts.map +1 -1
  75. package/dist/utilities/initPage/handleAdminPage.js +17 -4
  76. package/dist/utilities/initPage/handleAdminPage.js.map +1 -1
  77. package/dist/utilities/initPage/handleAuthRedirect.d.ts.map +1 -1
  78. package/dist/utilities/initPage/handleAuthRedirect.js +16 -4
  79. package/dist/utilities/initPage/handleAuthRedirect.js.map +1 -1
  80. package/dist/utilities/initPage/index.js +1 -1
  81. package/dist/utilities/initPage/index.js.map +1 -1
  82. package/dist/utilities/initPage/shared.d.ts +14 -2
  83. package/dist/utilities/initPage/shared.d.ts.map +1 -1
  84. package/dist/utilities/initPage/shared.js +14 -4
  85. package/dist/utilities/initPage/shared.js.map +1 -1
  86. package/dist/utilities/mergeHeaders.d.ts +1 -1
  87. package/dist/utilities/mergeHeaders.d.ts.map +1 -1
  88. package/dist/utilities/mergeHeaders.js +7 -33
  89. package/dist/utilities/mergeHeaders.js.map +1 -1
  90. package/dist/utilities/meta.d.ts +2 -2
  91. package/dist/utilities/meta.d.ts.map +1 -1
  92. package/dist/utilities/meta.js +1 -1
  93. package/dist/utilities/meta.js.map +1 -1
  94. package/dist/views/Account/index.d.ts.map +1 -1
  95. package/dist/views/Account/index.js +14 -23
  96. package/dist/views/Account/index.js.map +1 -1
  97. package/dist/views/CreateFirstUser/index.client.d.ts +2 -1
  98. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  99. package/dist/views/CreateFirstUser/index.client.js +11 -13
  100. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  101. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  102. package/dist/views/CreateFirstUser/index.js +11 -29
  103. package/dist/views/CreateFirstUser/index.js.map +1 -1
  104. package/dist/views/Dashboard/Default/index.d.ts +2 -2
  105. package/dist/views/Dashboard/Default/index.d.ts.map +1 -1
  106. package/dist/views/Dashboard/Default/index.js +13 -4
  107. package/dist/views/Dashboard/Default/index.js.map +1 -1
  108. package/dist/views/Dashboard/Default/index.scss +11 -7
  109. package/dist/views/Document/getDocumentData.d.ts +1 -0
  110. package/dist/views/Document/getDocumentData.d.ts.map +1 -1
  111. package/dist/views/Document/getDocumentData.js +4 -3
  112. package/dist/views/Document/getDocumentData.js.map +1 -1
  113. package/dist/views/Document/getMetaBySegment.d.ts +2 -2
  114. package/dist/views/Document/getMetaBySegment.d.ts.map +1 -1
  115. package/dist/views/Document/getMetaBySegment.js.map +1 -1
  116. package/dist/views/Document/getViewsFromConfig.d.ts.map +1 -1
  117. package/dist/views/Document/getViewsFromConfig.js +19 -5
  118. package/dist/views/Document/getViewsFromConfig.js.map +1 -1
  119. package/dist/views/Document/index.d.ts.map +1 -1
  120. package/dist/views/Document/index.js +24 -32
  121. package/dist/views/Document/index.js.map +1 -1
  122. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  123. package/dist/views/Edit/Default/Auth/APIKey.js +2 -1
  124. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  125. package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
  126. package/dist/views/Edit/Default/Auth/index.js +65 -32
  127. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  128. package/dist/views/Edit/Default/Auth/index.scss +17 -2
  129. package/dist/views/Edit/Default/Auth/types.d.ts +4 -1
  130. package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
  131. package/dist/views/Edit/Default/Auth/types.js.map +1 -1
  132. package/dist/views/Edit/Default/SetDocumentStepNav/index.d.ts.map +1 -1
  133. package/dist/views/Edit/Default/SetDocumentStepNav/index.js +15 -5
  134. package/dist/views/Edit/Default/SetDocumentStepNav/index.js.map +1 -1
  135. package/dist/views/Edit/Default/index.d.ts.map +1 -1
  136. package/dist/views/Edit/Default/index.js +26 -23
  137. package/dist/views/Edit/Default/index.js.map +1 -1
  138. package/dist/views/Edit/Default/index.scss +2 -2
  139. package/dist/views/ForgotPassword/index.d.ts.map +1 -1
  140. package/dist/views/ForgotPassword/index.js +12 -4
  141. package/dist/views/ForgotPassword/index.js.map +1 -1
  142. package/dist/views/List/Default/index.scss +2 -5
  143. package/dist/views/List/index.d.ts.map +1 -1
  144. package/dist/views/List/index.js +10 -4
  145. package/dist/views/List/index.js.map +1 -1
  146. package/dist/views/List/meta.d.ts +2 -2
  147. package/dist/views/List/meta.d.ts.map +1 -1
  148. package/dist/views/List/meta.js.map +1 -1
  149. package/dist/views/LivePreview/Preview/index.js +1 -1
  150. package/dist/views/LivePreview/Preview/index.js.map +1 -1
  151. package/dist/views/LivePreview/Toolbar/index.d.ts +2 -2
  152. package/dist/views/LivePreview/Toolbar/index.d.ts.map +1 -1
  153. package/dist/views/LivePreview/Toolbar/index.js.map +1 -1
  154. package/dist/views/LivePreview/index.client.d.ts.map +1 -1
  155. package/dist/views/LivePreview/index.client.js.map +1 -1
  156. package/dist/views/LivePreview/usePopupWindow.js.map +1 -1
  157. package/dist/views/Login/LoginField/index.d.ts +9 -0
  158. package/dist/views/Login/LoginField/index.d.ts.map +1 -0
  159. package/dist/views/Login/LoginField/index.js +46 -0
  160. package/dist/views/Login/LoginField/index.js.map +1 -0
  161. package/dist/views/Login/LoginForm/index.d.ts +3 -0
  162. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  163. package/dist/views/Login/LoginForm/index.js +30 -71
  164. package/dist/views/Login/LoginForm/index.js.map +1 -1
  165. package/dist/views/Login/index.d.ts.map +1 -1
  166. package/dist/views/Login/index.js +7 -0
  167. package/dist/views/Login/index.js.map +1 -1
  168. package/dist/views/Logout/LogoutClient.d.ts.map +1 -1
  169. package/dist/views/Logout/LogoutClient.js +7 -2
  170. package/dist/views/Logout/LogoutClient.js.map +1 -1
  171. package/dist/views/Logout/index.d.ts +2 -2
  172. package/dist/views/Logout/index.d.ts.map +1 -1
  173. package/dist/views/Logout/index.js +2 -2
  174. package/dist/views/Logout/index.js.map +1 -1
  175. package/dist/views/NotFound/index.client.d.ts.map +1 -1
  176. package/dist/views/NotFound/index.client.js +3 -2
  177. package/dist/views/NotFound/index.client.js.map +1 -1
  178. package/dist/views/NotFound/index.d.ts.map +1 -1
  179. package/dist/views/NotFound/index.js +5 -1
  180. package/dist/views/NotFound/index.js.map +1 -1
  181. package/dist/views/NotFound/meta.d.ts +2 -2
  182. package/dist/views/NotFound/meta.d.ts.map +1 -1
  183. package/dist/views/NotFound/meta.js.map +1 -1
  184. package/dist/views/ResetPassword/index.client.d.ts.map +1 -1
  185. package/dist/views/ResetPassword/index.client.js +19 -31
  186. package/dist/views/ResetPassword/index.client.js.map +1 -1
  187. package/dist/views/ResetPassword/index.d.ts.map +1 -1
  188. package/dist/views/ResetPassword/index.js +7 -3
  189. package/dist/views/ResetPassword/index.js.map +1 -1
  190. package/dist/views/Root/getViewFromConfig.d.ts.map +1 -1
  191. package/dist/views/Root/getViewFromConfig.js +5 -1
  192. package/dist/views/Root/getViewFromConfig.js.map +1 -1
  193. package/dist/views/Root/index.d.ts +2 -2
  194. package/dist/views/Root/index.d.ts.map +1 -1
  195. package/dist/views/Root/index.js +14 -8
  196. package/dist/views/Root/index.js.map +1 -1
  197. package/dist/views/Unauthorized/index.d.ts.map +1 -1
  198. package/dist/views/Unauthorized/index.js +1 -0
  199. package/dist/views/Unauthorized/index.js.map +1 -1
  200. package/dist/views/Verify/index.d.ts.map +1 -1
  201. package/dist/views/Verify/index.js +9 -2
  202. package/dist/views/Verify/index.js.map +1 -1
  203. package/dist/views/Version/Default/SetStepNav.d.ts +1 -3
  204. package/dist/views/Version/Default/SetStepNav.d.ts.map +1 -1
  205. package/dist/views/Version/Default/SetStepNav.js +28 -13
  206. package/dist/views/Version/Default/SetStepNav.js.map +1 -1
  207. package/dist/views/Version/Default/index.d.ts.map +1 -1
  208. package/dist/views/Version/Default/index.js +15 -15
  209. package/dist/views/Version/Default/index.js.map +1 -1
  210. package/dist/views/Version/Default/types.d.ts +3 -3
  211. package/dist/views/Version/Default/types.d.ts.map +1 -1
  212. package/dist/views/Version/Default/types.js.map +1 -1
  213. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.js.map +1 -1
  214. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.js.map +1 -1
  215. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts +3 -4
  216. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.d.ts.map +1 -1
  217. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.js.map +1 -1
  218. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts +3 -3
  219. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.d.ts.map +1 -1
  220. package/dist/views/Version/RenderFieldsToDiff/fields/Tabs/index.js.map +1 -1
  221. package/dist/views/Version/RenderFieldsToDiff/fields/index.d.ts +9 -9
  222. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts +1 -2
  223. package/dist/views/Version/RenderFieldsToDiff/fields/types.d.ts.map +1 -1
  224. package/dist/views/Version/RenderFieldsToDiff/fields/types.js.map +1 -1
  225. package/dist/views/Version/RenderFieldsToDiff/types.d.ts +3 -4
  226. package/dist/views/Version/RenderFieldsToDiff/types.d.ts.map +1 -1
  227. package/dist/views/Version/RenderFieldsToDiff/types.js.map +1 -1
  228. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  229. package/dist/views/Version/Restore/index.js +46 -13
  230. package/dist/views/Version/Restore/index.js.map +1 -1
  231. package/dist/views/Version/Restore/index.scss +31 -0
  232. package/dist/views/Version/Restore/types.d.ts +1 -0
  233. package/dist/views/Version/Restore/types.d.ts.map +1 -1
  234. package/dist/views/Version/Restore/types.js.map +1 -1
  235. package/dist/views/Version/SelectComparison/index.d.ts.map +1 -1
  236. package/dist/views/Version/SelectComparison/index.js +49 -28
  237. package/dist/views/Version/SelectComparison/index.js.map +1 -1
  238. package/dist/views/Version/SelectComparison/index.scss +1 -1
  239. package/dist/views/Version/SelectComparison/types.d.ts +2 -1
  240. package/dist/views/Version/SelectComparison/types.d.ts.map +1 -1
  241. package/dist/views/Version/SelectComparison/types.js.map +1 -1
  242. package/dist/views/Version/index.d.ts.map +1 -1
  243. package/dist/views/Version/index.js +24 -45
  244. package/dist/views/Version/index.js.map +1 -1
  245. package/dist/views/Versions/buildColumns.d.ts +3 -1
  246. package/dist/views/Versions/buildColumns.d.ts.map +1 -1
  247. package/dist/views/Versions/buildColumns.js +7 -4
  248. package/dist/views/Versions/buildColumns.js.map +1 -1
  249. package/dist/views/Versions/cells/AutosaveCell/index.d.ts +7 -1
  250. package/dist/views/Versions/cells/AutosaveCell/index.d.ts.map +1 -1
  251. package/dist/views/Versions/cells/AutosaveCell/index.js +31 -13
  252. package/dist/views/Versions/cells/AutosaveCell/index.js.map +1 -1
  253. package/dist/views/Versions/cells/CreatedAt/index.d.ts.map +1 -1
  254. package/dist/views/Versions/cells/CreatedAt/index.js +10 -4
  255. package/dist/views/Versions/cells/CreatedAt/index.js.map +1 -1
  256. package/dist/views/Versions/getLatestVersion.d.ts +5 -0
  257. package/dist/views/Versions/getLatestVersion.d.ts.map +1 -0
  258. package/dist/views/Versions/getLatestVersion.js +29 -0
  259. package/dist/views/Versions/getLatestVersion.js.map +1 -0
  260. package/dist/views/Versions/index.client.d.ts.map +1 -1
  261. package/dist/views/Versions/index.client.js +3 -2
  262. package/dist/views/Versions/index.client.js.map +1 -1
  263. package/dist/views/Versions/index.d.ts.map +1 -1
  264. package/dist/views/Versions/index.js +22 -2
  265. package/dist/views/Versions/index.js.map +1 -1
  266. package/dist/withPayload.d.ts.map +1 -1
  267. package/dist/withPayload.js +10 -5
  268. package/dist/withPayload.js.map +1 -1
  269. package/package.json +19 -25
  270. package/dist/prod/index.js +0 -62
  271. package/dist/prod/payload/payload-favicon-dark.png +0 -0
  272. package/dist/prod/payload/payload-favicon-light.png +0 -0
  273. package/dist/prod/payload/static-og-image.png +0 -0
  274. package/dist/views/Version/shared.d.ts +0 -9
  275. package/dist/views/Version/shared.d.ts.map +0 -1
  276. package/dist/views/Version/shared.js +0 -10
  277. package/dist/views/Version/shared.js.map +0 -1
  278. package/dist/webpackEntry.d.ts +0 -5
  279. package/dist/webpackEntry.d.ts.map +0 -1
  280. package/dist/webpackEntry.js +0 -6
  281. package/dist/webpackEntry.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/routes/graphql/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,SAAS,CAAA;AAuDjF,eAAO,MAAM,UAAU,WAAkB,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,iBAyBlF,CAAA;AAED,eAAO,MAAM,IAAI,WACN,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eAAqB,OAAO,sBA6D9E,CAAA"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../src/routes/graphql/handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAqC,eAAe,EAAE,MAAM,SAAS,CAAA;AAsDjF,eAAO,MAAM,UAAU,WAAkB,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,iBAyBlF,CAAA;AAED,eAAO,MAAM,IAAI,WACN,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eAAqB,OAAO,sBAyD9E,CAAA"}
@@ -35,7 +35,6 @@ const handleError = async (payload, err, debug, afterErrorHook)=>{
35
35
  };
36
36
  let cached = global._payload_graphql;
37
37
  if (!cached) {
38
- // eslint-disable-next-line no-multi-assign
39
38
  cached = global._payload_graphql = {
40
39
  graphql: null,
41
40
  promise: null
@@ -111,11 +110,8 @@ export const POST = (config)=>async (request)=>{
111
110
  for(const key in headers){
112
111
  resHeaders.append(key, headers[key]);
113
112
  }
114
- if (req.responseHeaders) {
115
- mergeHeaders(req.responseHeaders, resHeaders);
116
- }
117
113
  return new Response(apiResponse.body, {
118
- headers: resHeaders,
114
+ headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,
119
115
  status: apiResponse.status
120
116
  });
121
117
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/graphql/handler.ts"],"sourcesContent":["import type { GraphQLError, GraphQLFormattedError } from 'graphql'\nimport type { CollectionAfterErrorHook, Payload, SanitizedConfig } from 'payload'\n\nimport { configToSchema } from '@payloadcms/graphql'\nimport { createHandler } from 'graphql-http/lib/use/fetch'\nimport httpStatus from 'http-status'\n\nimport { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js'\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { mergeHeaders } from '../../utilities/mergeHeaders.js'\n\nconst handleError = async (\n payload: Payload,\n err: any,\n debug: boolean,\n afterErrorHook: CollectionAfterErrorHook,\n // eslint-disable-next-line @typescript-eslint/require-await\n): Promise<GraphQLFormattedError> => {\n const status = err.originalError.status || httpStatus.INTERNAL_SERVER_ERROR\n let errorMessage = err.message\n payload.logger.error(err.stack)\n\n // Internal server errors can contain anything, including potentially sensitive data.\n // Therefore, error details will be hidden from the response unless `config.debug` is `true`\n if (!debug && status === httpStatus.INTERNAL_SERVER_ERROR) {\n errorMessage = 'Something went wrong.'\n }\n\n let response: GraphQLFormattedError = {\n extensions: {\n name: err?.originalError?.name || undefined,\n data: (err && err.originalError && err.originalError.data) || undefined,\n stack: debug ? err.stack : undefined,\n statusCode: status,\n },\n locations: err.locations,\n message: errorMessage,\n path: err.path,\n }\n\n if (afterErrorHook) {\n ;({ response } = afterErrorHook(err, response, null, null) || { response })\n }\n\n return response\n}\n\nlet cached = global._payload_graphql\n\nif (!cached) {\n // eslint-disable-next-line no-multi-assign\n cached = global._payload_graphql = { graphql: null, promise: null }\n}\n\nexport const getGraphql = async (config: Promise<SanitizedConfig> | SanitizedConfig) => {\n if (process.env.NODE_ENV === 'development') {\n cached = global._payload_graphql = { graphql: null, promise: null }\n }\n\n if (cached.graphql) {\n return cached.graphql\n }\n\n if (!cached.promise) {\n const resolvedConfig = await config\n cached.promise = new Promise((resolve) => {\n const schema = configToSchema(resolvedConfig)\n resolve(cached.graphql || schema)\n })\n }\n\n try {\n cached.graphql = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.graphql\n}\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n const originalRequest = request.clone()\n const req = await createPayloadRequest({\n config,\n request,\n })\n\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n const { schema, validationRules } = await getGraphql(config)\n\n const { payload } = req\n\n const afterErrorHook =\n typeof payload.config.hooks.afterError === 'function' ? payload.config.hooks.afterError : null\n\n const headers = {}\n const apiResponse = await createHandler({\n context: { headers, req },\n onOperation: async (request, args, result) => {\n const response =\n typeof payload.extensions === 'function'\n ? await payload.extensions({\n args,\n req: request,\n result,\n })\n : result\n if (response.errors) {\n const errors = (await Promise.all(\n result.errors.map((error) => {\n return handleError(payload, error, payload.config.debug, afterErrorHook)\n }),\n )) as GraphQLError[]\n // errors type should be FormattedGraphQLError[] but onOperation has a return type of ExecutionResult instead of FormattedExecutionResult\n return { ...response, errors }\n }\n return response\n },\n schema,\n validationRules: (_, args, defaultRules) => defaultRules.concat(validationRules(args)),\n })(originalRequest)\n\n const resHeaders = headersWithCors({\n headers: new Headers(apiResponse.headers),\n req,\n })\n\n for (const key in headers) {\n resHeaders.append(key, headers[key])\n }\n\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, resHeaders)\n }\n\n return new Response(apiResponse.body, {\n headers: resHeaders,\n status: apiResponse.status,\n })\n }\n"],"names":["configToSchema","createHandler","httpStatus","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","handleError","payload","err","debug","afterErrorHook","status","originalError","INTERNAL_SERVER_ERROR","errorMessage","message","logger","error","stack","response","extensions","name","undefined","data","statusCode","locations","path","cached","global","_payload_graphql","graphql","promise","getGraphql","config","process","env","NODE_ENV","resolvedConfig","Promise","resolve","schema","e","POST","request","originalRequest","clone","req","validationRules","hooks","afterError","headers","apiResponse","context","onOperation","args","result","errors","all","map","_","defaultRules","concat","resHeaders","Headers","key","append","responseHeaders","Response","body"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/routes/graphql/handler.ts"],"sourcesContent":["import type { GraphQLError, GraphQLFormattedError } from 'graphql'\nimport type { CollectionAfterErrorHook, Payload, SanitizedConfig } from 'payload'\n\nimport { configToSchema } from '@payloadcms/graphql'\nimport { createHandler } from 'graphql-http/lib/use/fetch'\nimport httpStatus from 'http-status'\n\nimport { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js'\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { mergeHeaders } from '../../utilities/mergeHeaders.js'\n\nconst handleError = async (\n payload: Payload,\n err: any,\n debug: boolean,\n afterErrorHook: CollectionAfterErrorHook,\n // eslint-disable-next-line @typescript-eslint/require-await\n): Promise<GraphQLFormattedError> => {\n const status = err.originalError.status || httpStatus.INTERNAL_SERVER_ERROR\n let errorMessage = err.message\n payload.logger.error(err.stack)\n\n // Internal server errors can contain anything, including potentially sensitive data.\n // Therefore, error details will be hidden from the response unless `config.debug` is `true`\n if (!debug && status === httpStatus.INTERNAL_SERVER_ERROR) {\n errorMessage = 'Something went wrong.'\n }\n\n let response: GraphQLFormattedError = {\n extensions: {\n name: err?.originalError?.name || undefined,\n data: (err && err.originalError && err.originalError.data) || undefined,\n stack: debug ? err.stack : undefined,\n statusCode: status,\n },\n locations: err.locations,\n message: errorMessage,\n path: err.path,\n }\n\n if (afterErrorHook) {\n ;({ response } = afterErrorHook(err, response, null, null) || { response })\n }\n\n return response\n}\n\nlet cached = global._payload_graphql\n\nif (!cached) {\n cached = global._payload_graphql = { graphql: null, promise: null }\n}\n\nexport const getGraphql = async (config: Promise<SanitizedConfig> | SanitizedConfig) => {\n if (process.env.NODE_ENV === 'development') {\n cached = global._payload_graphql = { graphql: null, promise: null }\n }\n\n if (cached.graphql) {\n return cached.graphql\n }\n\n if (!cached.promise) {\n const resolvedConfig = await config\n cached.promise = new Promise((resolve) => {\n const schema = configToSchema(resolvedConfig)\n resolve(cached.graphql || schema)\n })\n }\n\n try {\n cached.graphql = await cached.promise\n } catch (e) {\n cached.promise = null\n throw e\n }\n\n return cached.graphql\n}\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n const originalRequest = request.clone()\n const req = await createPayloadRequest({\n config,\n request,\n })\n\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n const { schema, validationRules } = await getGraphql(config)\n\n const { payload } = req\n\n const afterErrorHook =\n typeof payload.config.hooks.afterError === 'function' ? payload.config.hooks.afterError : null\n\n const headers = {}\n const apiResponse = await createHandler({\n context: { headers, req },\n onOperation: async (request, args, result) => {\n const response =\n typeof payload.extensions === 'function'\n ? await payload.extensions({\n args,\n req: request,\n result,\n })\n : result\n if (response.errors) {\n const errors = (await Promise.all(\n result.errors.map((error) => {\n return handleError(payload, error, payload.config.debug, afterErrorHook)\n }),\n )) as GraphQLError[]\n // errors type should be FormattedGraphQLError[] but onOperation has a return type of ExecutionResult instead of FormattedExecutionResult\n return { ...response, errors }\n }\n return response\n },\n schema,\n validationRules: (_, args, defaultRules) => defaultRules.concat(validationRules(args)),\n })(originalRequest)\n\n const resHeaders = headersWithCors({\n headers: new Headers(apiResponse.headers),\n req,\n })\n\n for (const key in headers) {\n resHeaders.append(key, headers[key])\n }\n\n return new Response(apiResponse.body, {\n headers: req.responseHeaders ? mergeHeaders(req.responseHeaders, resHeaders) : resHeaders,\n status: apiResponse.status,\n })\n }\n"],"names":["configToSchema","createHandler","httpStatus","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","handleError","payload","err","debug","afterErrorHook","status","originalError","INTERNAL_SERVER_ERROR","errorMessage","message","logger","error","stack","response","extensions","name","undefined","data","statusCode","locations","path","cached","global","_payload_graphql","graphql","promise","getGraphql","config","process","env","NODE_ENV","resolvedConfig","Promise","resolve","schema","e","POST","request","originalRequest","clone","req","validationRules","hooks","afterError","headers","apiResponse","context","onOperation","args","result","errors","all","map","_","defaultRules","concat","resHeaders","Headers","key","append","Response","body","responseHeaders"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/auth/login.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,KAAK,EAAE,sBA8CnB,CAAA"}
1
+ {"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/auth/login.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,KAAK,EAAE,sBA+CnB,CAAA"}
@@ -5,7 +5,7 @@ import { headersWithCors } from '../../../utilities/headersWithCors.js';
5
5
  export const login = async ({ collection, req })=>{
6
6
  const { searchParams, t } = req;
7
7
  const depth = searchParams.get('depth');
8
- const authData = collection.config.auth?.loginWithUsername ? {
8
+ const authData = collection.config.auth?.loginWithUsername !== false ? {
9
9
  email: typeof req.data?.email === 'string' ? req.data.email : '',
10
10
  password: typeof req.data?.password === 'string' ? req.data.password : '',
11
11
  username: typeof req.data?.username === 'string' ? req.data.username : ''
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/routes/rest/auth/login.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { generatePayloadCookie, loginOperation } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport type { CollectionRouteHandler } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const login: CollectionRouteHandler = async ({ collection, req }) => {\n const { searchParams, t } = req\n const depth = searchParams.get('depth')\n const authData = collection.config.auth?.loginWithUsername\n ? {\n email: typeof req.data?.email === 'string' ? req.data.email : '',\n password: typeof req.data?.password === 'string' ? req.data.password : '',\n username: typeof req.data?.username === 'string' ? req.data.username : '',\n }\n : {\n email: typeof req.data?.email === 'string' ? req.data.email : '',\n password: typeof req.data?.password === 'string' ? req.data.password : '',\n }\n\n const result = await loginOperation({\n collection,\n data: authData,\n depth: isNumber(depth) ? Number(depth) : undefined,\n req,\n })\n\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: req.payload,\n token: result.token,\n })\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return Response.json(\n {\n message: t('authentication:passed'),\n ...result,\n },\n {\n headers: headersWithCors({\n headers: new Headers({\n 'Set-Cookie': cookie,\n }),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","generatePayloadCookie","loginOperation","isNumber","headersWithCors","login","collection","req","searchParams","t","depth","get","authData","config","auth","loginWithUsername","email","data","password","username","result","Number","undefined","cookie","collectionConfig","payload","token","removeTokenFromResponses","Response","json","message","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,qBAAqB,EAAEC,cAAc,QAAQ,UAAS;AAC/D,SAASC,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,QAAgC,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAE;IACrE,MAAM,EAAEC,YAAY,EAAEC,CAAC,EAAE,GAAGF;IAC5B,MAAMG,QAAQF,aAAaG,GAAG,CAAC;IAC/B,MAAMC,WAAWN,WAAWO,MAAM,CAACC,IAAI,EAAEC,oBACrC;QACEC,OAAO,OAAOT,IAAIU,IAAI,EAAED,UAAU,WAAWT,IAAIU,IAAI,CAACD,KAAK,GAAG;QAC9DE,UAAU,OAAOX,IAAIU,IAAI,EAAEC,aAAa,WAAWX,IAAIU,IAAI,CAACC,QAAQ,GAAG;QACvEC,UAAU,OAAOZ,IAAIU,IAAI,EAAEE,aAAa,WAAWZ,IAAIU,IAAI,CAACE,QAAQ,GAAG;IACzE,IACA;QACEH,OAAO,OAAOT,IAAIU,IAAI,EAAED,UAAU,WAAWT,IAAIU,IAAI,CAACD,KAAK,GAAG;QAC9DE,UAAU,OAAOX,IAAIU,IAAI,EAAEC,aAAa,WAAWX,IAAIU,IAAI,CAACC,QAAQ,GAAG;IACzE;IAEJ,MAAME,SAAS,MAAMlB,eAAe;QAClCI;QACAW,MAAML;QACNF,OAAOP,SAASO,SAASW,OAAOX,SAASY;QACzCf;IACF;IAEA,MAAMgB,SAAStB,sBAAsB;QACnCuB,kBAAkBlB,WAAWO,MAAM;QACnCY,SAASlB,IAAIkB,OAAO;QACpBC,OAAON,OAAOM,KAAK;IACrB;IAEA,IAAIpB,WAAWO,MAAM,CAACC,IAAI,CAACa,wBAAwB,EAAE;QACnD,OAAOP,OAAOM,KAAK;IACrB;IAEA,OAAOE,SAASC,IAAI,CAClB;QACEC,SAASrB,EAAE;QACX,GAAGW,MAAM;IACX,GACA;QACEW,SAAS3B,gBAAgB;YACvB2B,SAAS,IAAIC,QAAQ;gBACnB,cAAcT;YAChB;YACAhB;QACF;QACA0B,QAAQjC,WAAWkC,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../../src/routes/rest/auth/login.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { generatePayloadCookie, loginOperation } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport type { CollectionRouteHandler } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const login: CollectionRouteHandler = async ({ collection, req }) => {\n const { searchParams, t } = req\n const depth = searchParams.get('depth')\n const authData =\n collection.config.auth?.loginWithUsername !== false\n ? {\n email: typeof req.data?.email === 'string' ? req.data.email : '',\n password: typeof req.data?.password === 'string' ? req.data.password : '',\n username: typeof req.data?.username === 'string' ? req.data.username : '',\n }\n : {\n email: typeof req.data?.email === 'string' ? req.data.email : '',\n password: typeof req.data?.password === 'string' ? req.data.password : '',\n }\n\n const result = await loginOperation({\n collection,\n data: authData,\n depth: isNumber(depth) ? Number(depth) : undefined,\n req,\n })\n\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: req.payload,\n token: result.token,\n })\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.token\n }\n\n return Response.json(\n {\n message: t('authentication:passed'),\n ...result,\n },\n {\n headers: headersWithCors({\n headers: new Headers({\n 'Set-Cookie': cookie,\n }),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","generatePayloadCookie","loginOperation","isNumber","headersWithCors","login","collection","req","searchParams","t","depth","get","authData","config","auth","loginWithUsername","email","data","password","username","result","Number","undefined","cookie","collectionConfig","payload","token","removeTokenFromResponses","Response","json","message","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,qBAAqB,EAAEC,cAAc,QAAQ,UAAS;AAC/D,SAASC,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,QAAgC,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAE;IACrE,MAAM,EAAEC,YAAY,EAAEC,CAAC,EAAE,GAAGF;IAC5B,MAAMG,QAAQF,aAAaG,GAAG,CAAC;IAC/B,MAAMC,WACJN,WAAWO,MAAM,CAACC,IAAI,EAAEC,sBAAsB,QAC1C;QACEC,OAAO,OAAOT,IAAIU,IAAI,EAAED,UAAU,WAAWT,IAAIU,IAAI,CAACD,KAAK,GAAG;QAC9DE,UAAU,OAAOX,IAAIU,IAAI,EAAEC,aAAa,WAAWX,IAAIU,IAAI,CAACC,QAAQ,GAAG;QACvEC,UAAU,OAAOZ,IAAIU,IAAI,EAAEE,aAAa,WAAWZ,IAAIU,IAAI,CAACE,QAAQ,GAAG;IACzE,IACA;QACEH,OAAO,OAAOT,IAAIU,IAAI,EAAED,UAAU,WAAWT,IAAIU,IAAI,CAACD,KAAK,GAAG;QAC9DE,UAAU,OAAOX,IAAIU,IAAI,EAAEC,aAAa,WAAWX,IAAIU,IAAI,CAACC,QAAQ,GAAG;IACzE;IAEN,MAAME,SAAS,MAAMlB,eAAe;QAClCI;QACAW,MAAML;QACNF,OAAOP,SAASO,SAASW,OAAOX,SAASY;QACzCf;IACF;IAEA,MAAMgB,SAAStB,sBAAsB;QACnCuB,kBAAkBlB,WAAWO,MAAM;QACnCY,SAASlB,IAAIkB,OAAO;QACpBC,OAAON,OAAOM,KAAK;IACrB;IAEA,IAAIpB,WAAWO,MAAM,CAACC,IAAI,CAACa,wBAAwB,EAAE;QACnD,OAAOP,OAAOM,KAAK;IACrB;IAEA,OAAOE,SAASC,IAAI,CAClB;QACEC,SAASrB,EAAE;QACX,GAAGW,MAAM;IACX,GACA;QACEW,SAAS3B,gBAAgB;YACvB2B,SAAS,IAAIC,QAAQ;gBACnB,cAAcT;YAChB;YACAhB;QACF;QACA0B,QAAQjC,WAAWkC,EAAE;IACvB;AAEJ,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/auth/unlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,MAAM,EAAE,sBAqBpB,CAAA"}
1
+ {"version":3,"file":"unlock.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/auth/unlock.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,MAAM,EAAE,sBA+BpB,CAAA"}
@@ -3,11 +3,15 @@ import { unlockOperation } from 'payload';
3
3
  import { headersWithCors } from '../../../utilities/headersWithCors.js';
4
4
  export const unlock = async ({ collection, req })=>{
5
5
  const { t } = req;
6
+ const authData = collection.config.auth?.loginWithUsername !== false ? {
7
+ email: typeof req.data?.email === 'string' ? req.data.email : '',
8
+ username: typeof req.data?.username === 'string' ? req.data.username : ''
9
+ } : {
10
+ email: typeof req.data?.email === 'string' ? req.data.email : ''
11
+ };
6
12
  await unlockOperation({
7
13
  collection,
8
- data: {
9
- email: req.data.email
10
- },
14
+ data: authData,
11
15
  req
12
16
  });
13
17
  return Response.json({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/routes/rest/auth/unlock.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { unlockOperation } from 'payload'\n\nimport type { CollectionRouteHandler } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const unlock: CollectionRouteHandler = async ({ collection, req }) => {\n const { t } = req\n\n await unlockOperation({\n collection,\n data: { email: req.data.email as string },\n req,\n })\n\n return Response.json(\n {\n message: t('general:success'),\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","unlockOperation","headersWithCors","unlock","collection","req","t","data","email","Response","json","message","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,eAAe,QAAQ,UAAS;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,SAAiC,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAE;IACtE,MAAM,EAAEC,CAAC,EAAE,GAAGD;IAEd,MAAMJ,gBAAgB;QACpBG;QACAG,MAAM;YAAEC,OAAOH,IAAIE,IAAI,CAACC,KAAK;QAAW;QACxCH;IACF;IAEA,OAAOI,SAASC,IAAI,CAClB;QACEC,SAASL,EAAE;IACb,GACA;QACEM,SAASV,gBAAgB;YACvBU,SAAS,IAAIC;YACbR;QACF;QACAS,QAAQd,WAAWe,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../../src/routes/rest/auth/unlock.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { unlockOperation } from 'payload'\n\nimport type { CollectionRouteHandler } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const unlock: CollectionRouteHandler = async ({ collection, req }) => {\n const { t } = req\n\n const authData =\n collection.config.auth?.loginWithUsername !== false\n ? {\n email: typeof req.data?.email === 'string' ? req.data.email : '',\n username: typeof req.data?.username === 'string' ? req.data.username : '',\n }\n : {\n email: typeof req.data?.email === 'string' ? req.data.email : '',\n }\n\n await unlockOperation({\n collection,\n data: authData,\n req,\n })\n\n return Response.json(\n {\n message: t('general:success'),\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","unlockOperation","headersWithCors","unlock","collection","req","t","authData","config","auth","loginWithUsername","email","data","username","Response","json","message","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,eAAe,QAAQ,UAAS;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,SAAiC,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAE;IACtE,MAAM,EAAEC,CAAC,EAAE,GAAGD;IAEd,MAAME,WACJH,WAAWI,MAAM,CAACC,IAAI,EAAEC,sBAAsB,QAC1C;QACEC,OAAO,OAAON,IAAIO,IAAI,EAAED,UAAU,WAAWN,IAAIO,IAAI,CAACD,KAAK,GAAG;QAC9DE,UAAU,OAAOR,IAAIO,IAAI,EAAEC,aAAa,WAAWR,IAAIO,IAAI,CAACC,QAAQ,GAAG;IACzE,IACA;QACEF,OAAO,OAAON,IAAIO,IAAI,EAAED,UAAU,WAAWN,IAAIO,IAAI,CAACD,KAAK,GAAG;IAChE;IAEN,MAAMV,gBAAgB;QACpBG;QACAQ,MAAML;QACNF;IACF;IAEA,OAAOS,SAASC,IAAI,CAClB;QACEC,SAASV,EAAE;IACb,GACA;QACEW,SAASf,gBAAgB;YACvBe,SAAS,IAAIC;YACbb;QACF;QACAc,QAAQnB,WAAWoB,EAAE;IACvB;AAEJ,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/collections/restoreVersion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAK/D,eAAO,MAAM,cAAc,EAAE,4BAkC5B,CAAA"}
1
+ {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/collections/restoreVersion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAA;AAK/D,eAAO,MAAM,cAAc,EAAE,4BAoC5B,CAAA"}
@@ -6,6 +6,7 @@ import { sanitizeCollectionID } from '../utilities/sanitizeCollectionID.js';
6
6
  export const restoreVersion = async ({ id: incomingID, collection, req })=>{
7
7
  const { searchParams } = req;
8
8
  const depth = searchParams.get('depth');
9
+ const draft = searchParams.get('draft');
9
10
  const id = sanitizeCollectionID({
10
11
  id: incomingID,
11
12
  collectionSlug: collection.config.slug,
@@ -15,6 +16,7 @@ export const restoreVersion = async ({ id: incomingID, collection, req })=>{
15
16
  id,
16
17
  collection,
17
18
  depth: isNumber(depth) ? Number(depth) : undefined,
19
+ draft: draft === 'true' ? true : undefined,
18
20
  req
19
21
  });
20
22
  return Response.json({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/routes/rest/collections/restoreVersion.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { restoreVersionOperation } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport type { CollectionRouteHandlerWithID } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\nimport { sanitizeCollectionID } from '../utilities/sanitizeCollectionID.js'\n\nexport const restoreVersion: CollectionRouteHandlerWithID = async ({\n id: incomingID,\n collection,\n req,\n}) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n\n const id = sanitizeCollectionID({\n id: incomingID,\n collectionSlug: collection.config.slug,\n payload: req.payload,\n })\n\n const result = await restoreVersionOperation({\n id,\n collection,\n depth: isNumber(depth) ? Number(depth) : undefined,\n req,\n })\n\n return Response.json(\n {\n ...result,\n message: req.t('version:restoredSuccessfully'),\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","restoreVersionOperation","isNumber","headersWithCors","sanitizeCollectionID","restoreVersion","id","incomingID","collection","req","searchParams","depth","get","collectionSlug","config","slug","payload","result","Number","undefined","Response","json","message","t","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,uBAAuB,QAAQ,UAAS;AACjD,SAASC,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,oBAAoB,QAAQ,uCAAsC;AAE3E,OAAO,MAAMC,iBAA+C,OAAO,EACjEC,IAAIC,UAAU,EACdC,UAAU,EACVC,GAAG,EACJ;IACC,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAMN,KAAKF,qBAAqB;QAC9BE,IAAIC;QACJM,gBAAgBL,WAAWM,MAAM,CAACC,IAAI;QACtCC,SAASP,IAAIO,OAAO;IACtB;IAEA,MAAMC,SAAS,MAAMhB,wBAAwB;QAC3CK;QACAE;QACAG,OAAOT,SAASS,SAASO,OAAOP,SAASQ;QACzCV;IACF;IAEA,OAAOW,SAASC,IAAI,CAClB;QACE,GAAGJ,MAAM;QACTK,SAASb,IAAIc,CAAC,CAAC;IACjB,GACA;QACEC,SAASrB,gBAAgB;YACvBqB,SAAS,IAAIC;YACbhB;QACF;QACAiB,QAAQ1B,WAAW2B,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../../src/routes/rest/collections/restoreVersion.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { restoreVersionOperation } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport type { CollectionRouteHandlerWithID } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\nimport { sanitizeCollectionID } from '../utilities/sanitizeCollectionID.js'\n\nexport const restoreVersion: CollectionRouteHandlerWithID = async ({\n id: incomingID,\n collection,\n req,\n}) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n const draft = searchParams.get('draft')\n\n const id = sanitizeCollectionID({\n id: incomingID,\n collectionSlug: collection.config.slug,\n payload: req.payload,\n })\n\n const result = await restoreVersionOperation({\n id,\n collection,\n depth: isNumber(depth) ? Number(depth) : undefined,\n draft: draft === 'true' ? true : undefined,\n req,\n })\n\n return Response.json(\n {\n ...result,\n message: req.t('version:restoredSuccessfully'),\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","restoreVersionOperation","isNumber","headersWithCors","sanitizeCollectionID","restoreVersion","id","incomingID","collection","req","searchParams","depth","get","draft","collectionSlug","config","slug","payload","result","Number","undefined","Response","json","message","t","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,uBAAuB,QAAQ,UAAS;AACjD,SAASC,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,oBAAoB,QAAQ,uCAAsC;AAE3E,OAAO,MAAMC,iBAA+C,OAAO,EACjEC,IAAIC,UAAU,EACdC,UAAU,EACVC,GAAG,EACJ;IACC,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAC/B,MAAMC,QAAQH,aAAaE,GAAG,CAAC;IAE/B,MAAMN,KAAKF,qBAAqB;QAC9BE,IAAIC;QACJO,gBAAgBN,WAAWO,MAAM,CAACC,IAAI;QACtCC,SAASR,IAAIQ,OAAO;IACtB;IAEA,MAAMC,SAAS,MAAMjB,wBAAwB;QAC3CK;QACAE;QACAG,OAAOT,SAASS,SAASQ,OAAOR,SAASS;QACzCP,OAAOA,UAAU,SAAS,OAAOO;QACjCX;IACF;IAEA,OAAOY,SAASC,IAAI,CAClB;QACE,GAAGJ,MAAM;QACTK,SAASd,IAAIe,CAAC,CAAC;IACjB,GACA;QACEC,SAAStB,gBAAgB;YACvBsB,SAAS,IAAIC;YACbjB;QACF;QACAkB,QAAQ3B,WAAW4B,EAAE;IACvB;AAEJ,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/globals/restoreVersion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAI3D,eAAO,MAAM,cAAc,EAAE,wBAwB5B,CAAA"}
1
+ {"version":3,"file":"restoreVersion.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/globals/restoreVersion.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAA;AAI3D,eAAO,MAAM,cAAc,EAAE,wBA0B5B,CAAA"}
@@ -5,9 +5,11 @@ import { headersWithCors } from '../../../utilities/headersWithCors.js';
5
5
  export const restoreVersion = async ({ id, globalConfig, req })=>{
6
6
  const { searchParams } = req;
7
7
  const depth = searchParams.get('depth');
8
+ const draft = searchParams.get('draft');
8
9
  const doc = await restoreVersionOperationGlobal({
9
10
  id,
10
11
  depth: isNumber(depth) ? Number(depth) : undefined,
12
+ draft: draft === 'true' ? true : undefined,
11
13
  globalConfig,
12
14
  req
13
15
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/routes/rest/globals/restoreVersion.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { restoreVersionOperationGlobal } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport type { GlobalRouteHandlerWithID } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const restoreVersion: GlobalRouteHandlerWithID = async ({ id, globalConfig, req }) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n\n const doc = await restoreVersionOperationGlobal({\n id,\n depth: isNumber(depth) ? Number(depth) : undefined,\n globalConfig,\n req,\n })\n\n return Response.json(\n {\n doc,\n message: req.t('version:restoredSuccessfully'),\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","restoreVersionOperationGlobal","isNumber","headersWithCors","restoreVersion","id","globalConfig","req","searchParams","depth","get","doc","Number","undefined","Response","json","message","t","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,6BAA6B,QAAQ,UAAS;AACvD,SAASC,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,iBAA2C,OAAO,EAAEC,EAAE,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACtF,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAE/B,MAAMC,MAAM,MAAMV,8BAA8B;QAC9CI;QACAI,OAAOP,SAASO,SAASG,OAAOH,SAASI;QACzCP;QACAC;IACF;IAEA,OAAOO,SAASC,IAAI,CAClB;QACEJ;QACAK,SAAST,IAAIU,CAAC,CAAC;IACjB,GACA;QACEC,SAASf,gBAAgB;YACvBe,SAAS,IAAIC;YACbZ;QACF;QACAa,QAAQpB,WAAWqB,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../../src/routes/rest/globals/restoreVersion.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { restoreVersionOperationGlobal } from 'payload'\nimport { isNumber } from 'payload/shared'\n\nimport type { GlobalRouteHandlerWithID } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const restoreVersion: GlobalRouteHandlerWithID = async ({ id, globalConfig, req }) => {\n const { searchParams } = req\n const depth = searchParams.get('depth')\n const draft = searchParams.get('draft')\n\n const doc = await restoreVersionOperationGlobal({\n id,\n depth: isNumber(depth) ? Number(depth) : undefined,\n draft: draft === 'true' ? true : undefined,\n globalConfig,\n req,\n })\n\n return Response.json(\n {\n doc,\n message: req.t('version:restoredSuccessfully'),\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","restoreVersionOperationGlobal","isNumber","headersWithCors","restoreVersion","id","globalConfig","req","searchParams","depth","get","draft","doc","Number","undefined","Response","json","message","t","headers","Headers","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,6BAA6B,QAAQ,UAAS;AACvD,SAASC,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,iBAA2C,OAAO,EAAEC,EAAE,EAAEC,YAAY,EAAEC,GAAG,EAAE;IACtF,MAAM,EAAEC,YAAY,EAAE,GAAGD;IACzB,MAAME,QAAQD,aAAaE,GAAG,CAAC;IAC/B,MAAMC,QAAQH,aAAaE,GAAG,CAAC;IAE/B,MAAME,MAAM,MAAMX,8BAA8B;QAC9CI;QACAI,OAAOP,SAASO,SAASI,OAAOJ,SAASK;QACzCH,OAAOA,UAAU,SAAS,OAAOG;QACjCR;QACAC;IACF;IAEA,OAAOQ,SAASC,IAAI,CAClB;QACEJ;QACAK,SAASV,IAAIW,CAAC,CAAC;IACjB,GACA;QACEC,SAAShB,gBAAgB;YACvBgB,SAAS,IAAIC;YACbb;QACF;QACAc,QAAQrB,WAAWsB,EAAE;IACvB;AAEJ,EAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsD,eAAe,EAAE,MAAM,SAAS,CAAA;AAkMlG,eAAO,MAAM,OAAO,WACT,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eAAqB,OAAO,sBA0B9E,CAAA;AAEH,eAAO,MAAM,GAAG,WACL,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBAsL5E,CAAA;AAEH,eAAO,MAAM,IAAI,WACN,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBA4K5E,CAAA;AAEH,eAAO,MAAM,MAAM,WACR,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBAoF5E,CAAA;AAEH,eAAO,MAAM,KAAK,WACP,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBAqF5E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAsD,eAAe,EAAE,MAAM,SAAS,CAAA;AAwMlG,eAAO,MAAM,OAAO,WACT,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eAAqB,OAAO,sBA0B9E,CAAA;AAEH,eAAO,MAAM,GAAG,WACL,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBA4L5E,CAAA;AAEH,eAAO,MAAM,IAAI,WACN,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBAkL5E,CAAA;AAEH,eAAO,MAAM,MAAM,WACR,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBA0F5E,CAAA;AAEH,eAAO,MAAM,KAAK,WACP,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,eACnC,OAAO,wBAAwB;IAAE,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;CAAE,sBA2F5E,CAAA"}
@@ -139,7 +139,12 @@ const handleCustomEndpoints = async ({ endpoints, entitySlug, req })=>{
139
139
  const res = await customEndpoint.handler(req);
140
140
  if (res instanceof Response) {
141
141
  if (req.responseHeaders) {
142
- mergeHeaders(req.responseHeaders, res.headers);
142
+ const mergedResponse = new Response(res.body, {
143
+ headers: mergeHeaders(req.responseHeaders, res.headers),
144
+ status: res.status,
145
+ statusText: res.statusText
146
+ });
147
+ return mergedResponse;
143
148
  }
144
149
  return res;
145
150
  }
@@ -329,7 +334,12 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
329
334
  }
330
335
  if (res instanceof Response) {
331
336
  if (req.responseHeaders) {
332
- mergeHeaders(req.responseHeaders, res.headers);
337
+ const mergedResponse = new Response(res.body, {
338
+ headers: mergeHeaders(req.responseHeaders, res.headers),
339
+ status: res.status,
340
+ statusText: res.statusText
341
+ });
342
+ return mergedResponse;
333
343
  }
334
344
  return res;
335
345
  }
@@ -498,7 +508,12 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
498
508
  }
499
509
  if (res instanceof Response) {
500
510
  if (req.responseHeaders) {
501
- mergeHeaders(req.responseHeaders, res.headers);
511
+ const mergedResponse = new Response(res.body, {
512
+ headers: mergeHeaders(req.responseHeaders, res.headers),
513
+ status: res.status,
514
+ statusText: res.statusText
515
+ });
516
+ return mergedResponse;
502
517
  }
503
518
  return res;
504
519
  }
@@ -575,7 +590,12 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
575
590
  }
576
591
  if (res instanceof Response) {
577
592
  if (req.responseHeaders) {
578
- mergeHeaders(req.responseHeaders, res.headers);
593
+ const mergedResponse = new Response(res.body, {
594
+ headers: mergeHeaders(req.responseHeaders, res.headers),
595
+ status: res.status,
596
+ statusText: res.statusText
597
+ });
598
+ return mergedResponse;
579
599
  }
580
600
  return res;
581
601
  }
@@ -652,7 +672,12 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
652
672
  }
653
673
  if (res instanceof Response) {
654
674
  if (req.responseHeaders) {
655
- mergeHeaders(req.responseHeaders, res.headers);
675
+ const mergedResponse = new Response(res.body, {
676
+ headers: mergeHeaders(req.responseHeaders, res.headers),
677
+ status: res.status,
678
+ statusText: res.statusText
679
+ });
680
+ return mergedResponse;
656
681
  }
657
682
  return res;
658
683
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type { Collection, Endpoint, GlobalConfig, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport httpStatus from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type {\n CollectionRouteHandler,\n CollectionRouteHandlerWithID,\n GlobalRouteHandler,\n GlobalRouteHandlerWithID,\n} from './types.js'\n\nimport { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js'\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { mergeHeaders } from '../../utilities/mergeHeaders.js'\nimport { access } from './auth/access.js'\nimport { forgotPassword } from './auth/forgotPassword.js'\nimport { init } from './auth/init.js'\nimport { login } from './auth/login.js'\nimport { logout } from './auth/logout.js'\nimport { me } from './auth/me.js'\nimport { refresh } from './auth/refresh.js'\nimport { registerFirstUser } from './auth/registerFirstUser.js'\nimport { resetPassword } from './auth/resetPassword.js'\nimport { unlock } from './auth/unlock.js'\nimport { verifyEmail } from './auth/verifyEmail.js'\nimport { buildFormState } from './buildFormState.js'\nimport { endpointsAreDisabled } from './checkEndpoints.js'\nimport { count } from './collections/count.js'\nimport { create } from './collections/create.js'\nimport { deleteDoc } from './collections/delete.js'\nimport { deleteByID } from './collections/deleteByID.js'\nimport { docAccess } from './collections/docAccess.js'\nimport { duplicate } from './collections/duplicate.js'\nimport { find } from './collections/find.js'\nimport { findByID } from './collections/findByID.js'\nimport { findVersionByID } from './collections/findVersionByID.js'\nimport { findVersions } from './collections/findVersions.js'\nimport { preview as previewCollection } from './collections/preview.js'\nimport { restoreVersion } from './collections/restoreVersion.js'\nimport { update } from './collections/update.js'\nimport { updateByID } from './collections/updateByID.js'\nimport { getFile } from './files/getFile.js'\nimport { docAccess as docAccessGlobal } from './globals/docAccess.js'\nimport { findOne } from './globals/findOne.js'\nimport { findVersionByID as findVersionByIdGlobal } from './globals/findVersionByID.js'\nimport { findVersions as findVersionsGlobal } from './globals/findVersions.js'\nimport { preview as previewGlobal } from './globals/preview.js'\nimport { restoreVersion as restoreVersionGlobal } from './globals/restoreVersion.js'\nimport { update as updateGlobal } from './globals/update.js'\nimport { generateOGImage } from './og/index.js'\nimport { routeError } from './routeError.js'\n\nconst endpoints = {\n collection: {\n DELETE: {\n delete: deleteDoc,\n deleteByID,\n },\n GET: {\n count,\n 'doc-access-by-id': docAccess,\n 'doc-versions-by-id': findVersionByID,\n find,\n findByID,\n getFile,\n init,\n me,\n preview: previewCollection,\n versions: findVersions,\n },\n PATCH: {\n update,\n updateByID,\n },\n POST: {\n access: docAccess,\n create,\n 'doc-access-by-id': docAccess,\n 'doc-verify-by-id': verifyEmail,\n 'doc-versions-by-id': restoreVersion,\n duplicate,\n 'first-register': registerFirstUser,\n 'forgot-password': forgotPassword,\n login,\n logout,\n 'refresh-token': refresh,\n 'reset-password': resetPassword,\n unlock,\n },\n },\n global: {\n GET: {\n 'doc-access': docAccessGlobal,\n 'doc-versions': findVersionsGlobal,\n 'doc-versions-by-id': findVersionByIdGlobal,\n findOne,\n preview: previewGlobal,\n },\n POST: {\n 'doc-access': docAccessGlobal,\n 'doc-versions-by-id': restoreVersionGlobal,\n update: updateGlobal,\n },\n },\n root: {\n GET: {\n access,\n og: generateOGImage,\n },\n POST: {\n 'form-state': buildFormState,\n },\n },\n}\n\nconst handleCustomEndpoints = async ({\n endpoints,\n entitySlug,\n req,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n req: PayloadRequest\n}): Promise<Response> => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = req\n\n /*\n * This makes sure the next.js basePath property is supported. If basePath is used, payload config.routes.api should include it. This makes all outgoing frontend request\n * target the correct API endpoint starting with basePath, which is good!\n *\n * The incoming request (here) will not include the basePath though, as it's automatically stripped by Next.js. Since we are adding the basePath to the pathPrefix below though\n * (from req.payload.config.routes.api) we need to add it to pathname, which does not contain the basePath. Otherwise, no endpoint will be matched if basePath is set.\n */\n let adjustedPathname = pathname\n\n if (process.env.NEXT_BASE_PATH) {\n adjustedPathname = process.env.NEXT_BASE_PATH + pathname\n }\n\n const pathPrefix = req.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === req.method.toLowerCase()) {\n const pathMatchFn = match(`${pathPrefix}${endpoint.path}`, {\n decode: decodeURIComponent,\n })\n\n const tempParams = pathMatchFn(adjustedPathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n req.routeParams = {\n ...req.routeParams,\n ...handlerParams,\n }\n const res = await customEndpoint.handler(req)\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n }\n }\n\n return null\n}\n\nconst RouteNotFoundResponse = ({ slug, req }: { req: PayloadRequest; slug: string[] }) =>\n Response.json(\n {\n message: `Route Not Found: \"${slug.join('/')}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n\nexport const OPTIONS =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n let req: PayloadRequest\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n } catch (error) {\n return routeError({\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const GET =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n collection = req.payload.collections?.[slug1]\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.GET) {\n // /:collection/init\n // /:collection/me\n // /:collection/versions\n // /:collection/count\n res = await (endpoints.collection.GET[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({\n id: slug2,\n collection,\n req,\n })\n }\n break\n case 3:\n if (slug2 === 'file') {\n // /:collection/file/:filename\n res = await endpoints.collection.GET.getFile({\n collection,\n filename: slug3,\n req,\n })\n } else if (slug3 in endpoints.collection.GET) {\n // /:collection/:id/preview\n res = await (endpoints.collection.GET[slug3] as CollectionRouteHandlerWithID)({\n id: slug2,\n collection,\n req,\n })\n } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {\n // /:collection/access/:id\n // /:collection/versions/:id\n res = await (\n endpoints.collection.GET[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n }\n break\n }\n }\n } else if (slug1 === 'globals') {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req })\n break\n case 3:\n if (slug3 in endpoints.global.GET) {\n // /globals/:slug/preview\n res = await (endpoints.global.GET[slug3] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n } else if (`doc-${slug3}` in endpoints.global.GET) {\n // /globals/:slug/access\n // /globals/:slug/versions\n // /globals/:slug/preview\n res = await (endpoints.global.GET?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.GET) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.GET?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n res = await endpoints.root.GET[slug1]({ req })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override')\n if (overrideHttpMethod === 'GET') {\n return await GET(config)(request, { params: { slug } })\n }\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.POST) {\n // /:collection/login\n // /:collection/logout\n // /:collection/unlock\n // /:collection/access\n // /:collection/first-register\n // /:collection/forgot-password\n // /:collection/reset-password\n // /:collection/refresh-token\n\n res = await (endpoints.collection.POST?.[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n }\n break\n case 3:\n if (`doc-${slug2}-by-id` in endpoints.collection.POST) {\n // /:collection/access/:id\n // /:collection/versions/:id\n // /:collection/verify/:token (\"doc-verify-by-id\" uses id as token internally)\n res = await (\n endpoints.collection.POST[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n } else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {\n // /:collection/:id/duplicate\n res = await endpoints.collection.POST.duplicate({\n id: slug2,\n collection,\n req,\n })\n }\n break\n }\n }\n } else if (slug1 === 'globals' && slug2) {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req })\n break\n case 3:\n if (`doc-${slug3}` in endpoints.global.POST) {\n // /globals/:slug/access\n res = await (endpoints.global.POST?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.POST) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.POST?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n default:\n res = new Response('Route Not Found', { status: 404 })\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.POST) {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n res = await endpoints.root.POST[slug1]({ req })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const DELETE =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({\n id: slug2,\n collection,\n req,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const PATCH =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({\n id: slug2,\n collection,\n req,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n"],"names":["httpStatus","match","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","access","forgotPassword","init","login","logout","me","refresh","registerFirstUser","resetPassword","unlock","verifyEmail","buildFormState","endpointsAreDisabled","count","create","deleteDoc","deleteByID","docAccess","duplicate","find","findByID","findVersionByID","findVersions","preview","previewCollection","restoreVersion","update","updateByID","getFile","docAccessGlobal","findOne","findVersionByIdGlobal","findVersionsGlobal","previewGlobal","restoreVersionGlobal","updateGlobal","generateOGImage","routeError","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","og","handleCustomEndpoints","entitySlug","req","length","handlerParams","pathname","adjustedPathname","process","env","NEXT_BASE_PATH","pathPrefix","payload","config","routes","api","customEndpoint","endpoint","method","toLowerCase","pathMatchFn","path","decode","decodeURIComponent","tempParams","params","routeParams","res","handler","Response","responseHeaders","headers","RouteNotFoundResponse","slug","json","message","join","Headers","status","NOT_FOUND","OPTIONS","request","error","err","slug1","slug2","slug3","slug4","disableEndpoints","collections","customEndpointResponse","id","filename","globalConfig","globals","overrideHttpMethod","get","disableDuplicate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type { Collection, Endpoint, GlobalConfig, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport httpStatus from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type {\n CollectionRouteHandler,\n CollectionRouteHandlerWithID,\n GlobalRouteHandler,\n GlobalRouteHandlerWithID,\n} from './types.js'\n\nimport { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js'\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { mergeHeaders } from '../../utilities/mergeHeaders.js'\nimport { access } from './auth/access.js'\nimport { forgotPassword } from './auth/forgotPassword.js'\nimport { init } from './auth/init.js'\nimport { login } from './auth/login.js'\nimport { logout } from './auth/logout.js'\nimport { me } from './auth/me.js'\nimport { refresh } from './auth/refresh.js'\nimport { registerFirstUser } from './auth/registerFirstUser.js'\nimport { resetPassword } from './auth/resetPassword.js'\nimport { unlock } from './auth/unlock.js'\nimport { verifyEmail } from './auth/verifyEmail.js'\nimport { buildFormState } from './buildFormState.js'\nimport { endpointsAreDisabled } from './checkEndpoints.js'\nimport { count } from './collections/count.js'\nimport { create } from './collections/create.js'\nimport { deleteDoc } from './collections/delete.js'\nimport { deleteByID } from './collections/deleteByID.js'\nimport { docAccess } from './collections/docAccess.js'\nimport { duplicate } from './collections/duplicate.js'\nimport { find } from './collections/find.js'\nimport { findByID } from './collections/findByID.js'\nimport { findVersionByID } from './collections/findVersionByID.js'\nimport { findVersions } from './collections/findVersions.js'\nimport { preview as previewCollection } from './collections/preview.js'\nimport { restoreVersion } from './collections/restoreVersion.js'\nimport { update } from './collections/update.js'\nimport { updateByID } from './collections/updateByID.js'\nimport { getFile } from './files/getFile.js'\nimport { docAccess as docAccessGlobal } from './globals/docAccess.js'\nimport { findOne } from './globals/findOne.js'\nimport { findVersionByID as findVersionByIdGlobal } from './globals/findVersionByID.js'\nimport { findVersions as findVersionsGlobal } from './globals/findVersions.js'\nimport { preview as previewGlobal } from './globals/preview.js'\nimport { restoreVersion as restoreVersionGlobal } from './globals/restoreVersion.js'\nimport { update as updateGlobal } from './globals/update.js'\nimport { generateOGImage } from './og/index.js'\nimport { routeError } from './routeError.js'\n\nconst endpoints = {\n collection: {\n DELETE: {\n delete: deleteDoc,\n deleteByID,\n },\n GET: {\n count,\n 'doc-access-by-id': docAccess,\n 'doc-versions-by-id': findVersionByID,\n find,\n findByID,\n getFile,\n init,\n me,\n preview: previewCollection,\n versions: findVersions,\n },\n PATCH: {\n update,\n updateByID,\n },\n POST: {\n access: docAccess,\n create,\n 'doc-access-by-id': docAccess,\n 'doc-verify-by-id': verifyEmail,\n 'doc-versions-by-id': restoreVersion,\n duplicate,\n 'first-register': registerFirstUser,\n 'forgot-password': forgotPassword,\n login,\n logout,\n 'refresh-token': refresh,\n 'reset-password': resetPassword,\n unlock,\n },\n },\n global: {\n GET: {\n 'doc-access': docAccessGlobal,\n 'doc-versions': findVersionsGlobal,\n 'doc-versions-by-id': findVersionByIdGlobal,\n findOne,\n preview: previewGlobal,\n },\n POST: {\n 'doc-access': docAccessGlobal,\n 'doc-versions-by-id': restoreVersionGlobal,\n update: updateGlobal,\n },\n },\n root: {\n GET: {\n access,\n og: generateOGImage,\n },\n POST: {\n 'form-state': buildFormState,\n },\n },\n}\n\nconst handleCustomEndpoints = async ({\n endpoints,\n entitySlug,\n req,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n req: PayloadRequest\n}): Promise<Response> => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = req\n\n /*\n * This makes sure the next.js basePath property is supported. If basePath is used, payload config.routes.api should include it. This makes all outgoing frontend request\n * target the correct API endpoint starting with basePath, which is good!\n *\n * The incoming request (here) will not include the basePath though, as it's automatically stripped by Next.js. Since we are adding the basePath to the pathPrefix below though\n * (from req.payload.config.routes.api) we need to add it to pathname, which does not contain the basePath. Otherwise, no endpoint will be matched if basePath is set.\n */\n let adjustedPathname = pathname\n\n if (process.env.NEXT_BASE_PATH) {\n adjustedPathname = process.env.NEXT_BASE_PATH + pathname\n }\n\n const pathPrefix = req.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === req.method.toLowerCase()) {\n const pathMatchFn = match(`${pathPrefix}${endpoint.path}`, {\n decode: decodeURIComponent,\n })\n\n const tempParams = pathMatchFn(adjustedPathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n req.routeParams = {\n ...req.routeParams,\n ...handlerParams,\n }\n const res = await customEndpoint.handler(req)\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n const mergedResponse = new Response(res.body, {\n headers: mergeHeaders(req.responseHeaders, res.headers),\n status: res.status,\n statusText: res.statusText,\n })\n\n return mergedResponse\n }\n\n return res\n }\n }\n }\n\n return null\n}\n\nconst RouteNotFoundResponse = ({ slug, req }: { req: PayloadRequest; slug: string[] }) =>\n Response.json(\n {\n message: `Route Not Found: \"${slug.join('/')}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n\nexport const OPTIONS =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n let req: PayloadRequest\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n } catch (error) {\n return routeError({\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const GET =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n collection = req.payload.collections?.[slug1]\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.GET) {\n // /:collection/init\n // /:collection/me\n // /:collection/versions\n // /:collection/count\n res = await (endpoints.collection.GET[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({\n id: slug2,\n collection,\n req,\n })\n }\n break\n case 3:\n if (slug2 === 'file') {\n // /:collection/file/:filename\n res = await endpoints.collection.GET.getFile({\n collection,\n filename: slug3,\n req,\n })\n } else if (slug3 in endpoints.collection.GET) {\n // /:collection/:id/preview\n res = await (endpoints.collection.GET[slug3] as CollectionRouteHandlerWithID)({\n id: slug2,\n collection,\n req,\n })\n } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {\n // /:collection/access/:id\n // /:collection/versions/:id\n res = await (\n endpoints.collection.GET[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n }\n break\n }\n }\n } else if (slug1 === 'globals') {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req })\n break\n case 3:\n if (slug3 in endpoints.global.GET) {\n // /globals/:slug/preview\n res = await (endpoints.global.GET[slug3] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n } else if (`doc-${slug3}` in endpoints.global.GET) {\n // /globals/:slug/access\n // /globals/:slug/versions\n // /globals/:slug/preview\n res = await (endpoints.global.GET?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.GET) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.GET?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n res = await endpoints.root.GET[slug1]({ req })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n const mergedResponse = new Response(res.body, {\n headers: mergeHeaders(req.responseHeaders, res.headers),\n status: res.status,\n statusText: res.statusText,\n })\n\n return mergedResponse\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override')\n if (overrideHttpMethod === 'GET') {\n return await GET(config)(request, { params: { slug } })\n }\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.POST) {\n // /:collection/login\n // /:collection/logout\n // /:collection/unlock\n // /:collection/access\n // /:collection/first-register\n // /:collection/forgot-password\n // /:collection/reset-password\n // /:collection/refresh-token\n\n res = await (endpoints.collection.POST?.[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n }\n break\n case 3:\n if (`doc-${slug2}-by-id` in endpoints.collection.POST) {\n // /:collection/access/:id\n // /:collection/versions/:id\n // /:collection/verify/:token (\"doc-verify-by-id\" uses id as token internally)\n res = await (\n endpoints.collection.POST[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n } else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {\n // /:collection/:id/duplicate\n res = await endpoints.collection.POST.duplicate({\n id: slug2,\n collection,\n req,\n })\n }\n break\n }\n }\n } else if (slug1 === 'globals' && slug2) {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req })\n break\n case 3:\n if (`doc-${slug3}` in endpoints.global.POST) {\n // /globals/:slug/access\n res = await (endpoints.global.POST?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.POST) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.POST?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n default:\n res = new Response('Route Not Found', { status: 404 })\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.POST) {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n res = await endpoints.root.POST[slug1]({ req })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n const mergedResponse = new Response(res.body, {\n headers: mergeHeaders(req.responseHeaders, res.headers),\n status: res.status,\n statusText: res.statusText,\n })\n\n return mergedResponse\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const DELETE =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({\n id: slug2,\n collection,\n req,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n const mergedResponse = new Response(res.body, {\n headers: mergeHeaders(req.responseHeaders, res.headers),\n status: res.status,\n statusText: res.statusText,\n })\n\n return mergedResponse\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const PATCH =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({\n id: slug2,\n collection,\n req,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n const mergedResponse = new Response(res.body, {\n headers: mergeHeaders(req.responseHeaders, res.headers),\n status: res.status,\n statusText: res.statusText,\n })\n\n return mergedResponse\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n"],"names":["httpStatus","match","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","access","forgotPassword","init","login","logout","me","refresh","registerFirstUser","resetPassword","unlock","verifyEmail","buildFormState","endpointsAreDisabled","count","create","deleteDoc","deleteByID","docAccess","duplicate","find","findByID","findVersionByID","findVersions","preview","previewCollection","restoreVersion","update","updateByID","getFile","docAccessGlobal","findOne","findVersionByIdGlobal","findVersionsGlobal","previewGlobal","restoreVersionGlobal","updateGlobal","generateOGImage","routeError","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","og","handleCustomEndpoints","entitySlug","req","length","handlerParams","pathname","adjustedPathname","process","env","NEXT_BASE_PATH","pathPrefix","payload","config","routes","api","customEndpoint","endpoint","method","toLowerCase","pathMatchFn","path","decode","decodeURIComponent","tempParams","params","routeParams","res","handler","Response","responseHeaders","mergedResponse","body","headers","status","statusText","RouteNotFoundResponse","slug","json","message","join","Headers","NOT_FOUND","OPTIONS","request","error","err","slug1","slug2","slug3","slug4","disableEndpoints","collections","customEndpointResponse","id","filename","globalConfig","globals","overrideHttpMethod","get","disableDuplicate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"routeError.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/routeError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG1E,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAKlC,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AA+D7E,eAAO,MAAM,UAAU,iDAKpB;IACD,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,GAAG,EAAE,QAAQ,CAAA;IACb,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAC7B,sBA8DA,CAAA"}
1
+ {"version":3,"file":"routeError.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/routeError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG1E,OAAO,EAAE,QAAQ,EAAqC,MAAM,SAAS,CAAA;AAKrE,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,CAAC,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAA;AA+D7E,eAAO,MAAM,UAAU,iDAKpB;IACD,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,GAAG,EAAE,QAAQ,CAAA;IACb,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAA;CAC7B,sBA8DA,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import httpStatus from 'http-status';
2
- import { APIError } from 'payload';
2
+ import { APIError, APIErrorName, ValidationErrorName } from 'payload';
3
3
  import { getPayloadHMR } from '../../utilities/getPayloadHMR.js';
4
4
  import { headersWithCors } from '../../utilities/headersWithCors.js';
5
5
  const formatErrors = (incoming)=>{
@@ -8,7 +8,7 @@ const formatErrors = (incoming)=>{
8
8
  // Instead, get the prototype of the incoming error and check its constructor name
9
9
  const proto = Object.getPrototypeOf(incoming);
10
10
  // Payload 'ValidationError' and 'APIError'
11
- if ((proto.constructor.name === 'ValidationError' || proto.constructor.name === 'APIError') && incoming.data) {
11
+ if ((proto.constructor.name === ValidationErrorName || proto.constructor.name === APIErrorName) && incoming.data) {
12
12
  return {
13
13
  errors: [
14
14
  {
@@ -20,7 +20,7 @@ const formatErrors = (incoming)=>{
20
20
  };
21
21
  }
22
22
  // Mongoose 'ValidationError': https://mongoosejs.com/docs/api/error.html#Error.ValidationError
23
- if (proto.constructor.name === 'ValidationError' && 'errors' in incoming && incoming.errors) {
23
+ if (proto.constructor.name === ValidationErrorName && 'errors' in incoming && incoming.errors) {
24
24
  return {
25
25
  errors: Object.keys(incoming.errors).reduce((acc, key)=>{
26
26
  acc.push({
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/rest/routeError.ts"],"sourcesContent":["import type { Collection, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport httpStatus from 'http-status'\nimport { APIError } from 'payload'\n\nimport { getPayloadHMR } from '../../utilities/getPayloadHMR.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\n\nexport type ErrorResponse = { data?: any; errors: unknown[]; stack?: string }\n\nconst formatErrors = (incoming: { [key: string]: unknown } | APIError): ErrorResponse => {\n if (incoming) {\n // Cannot use `instanceof` to check error type: https://github.com/microsoft/TypeScript/issues/13965\n // Instead, get the prototype of the incoming error and check its constructor name\n const proto = Object.getPrototypeOf(incoming)\n\n // Payload 'ValidationError' and 'APIError'\n if (\n (proto.constructor.name === 'ValidationError' || proto.constructor.name === 'APIError') &&\n incoming.data\n ) {\n return {\n errors: [\n {\n name: incoming.name,\n data: incoming.data,\n message: incoming.message,\n },\n ],\n }\n }\n\n // Mongoose 'ValidationError': https://mongoosejs.com/docs/api/error.html#Error.ValidationError\n if (proto.constructor.name === 'ValidationError' && 'errors' in incoming && incoming.errors) {\n return {\n errors: Object.keys(incoming.errors).reduce((acc, key) => {\n acc.push({\n field: incoming.errors[key].path,\n message: incoming.errors[key].message,\n })\n return acc\n }, []),\n }\n }\n\n if (Array.isArray(incoming.message)) {\n return {\n errors: incoming.message,\n }\n }\n\n if (incoming.name) {\n return {\n errors: [\n {\n message: incoming.message,\n },\n ],\n }\n }\n }\n\n return {\n errors: [\n {\n message: 'An unknown error occurred.',\n },\n ],\n }\n}\n\nexport const routeError = async ({\n collection,\n config: configArg,\n err,\n req,\n}: {\n collection?: Collection\n config: Promise<SanitizedConfig> | SanitizedConfig\n err: APIError\n req: Partial<PayloadRequest>\n}) => {\n let payload = req?.payload\n\n if (!payload) {\n try {\n payload = await getPayloadHMR({ config: configArg })\n } catch (e) {\n return Response.json(\n {\n message: 'There was an error initializing Payload',\n },\n { status: httpStatus.INTERNAL_SERVER_ERROR },\n )\n }\n }\n\n req.payload = payload\n const headers = headersWithCors({\n headers: new Headers(),\n req,\n })\n\n const { config, logger } = payload\n\n let response = formatErrors(err)\n\n let status = err.status || httpStatus.INTERNAL_SERVER_ERROR\n\n logger.error(err.stack)\n\n // Internal server errors can contain anything, including potentially sensitive data.\n // Therefore, error details will be hidden from the response unless `config.debug` is `true`\n if (!config.debug && status === httpStatus.INTERNAL_SERVER_ERROR) {\n response = formatErrors(new APIError('Something went wrong.'))\n }\n\n if (config.debug && config.debug === true) {\n response.stack = err.stack\n }\n\n if (collection && typeof collection.config.hooks.afterError === 'function') {\n ;({ response, status } = collection.config.hooks.afterError(\n err,\n response,\n req?.context,\n collection.config,\n ) || { response, status })\n }\n\n if (typeof config.hooks.afterError === 'function') {\n ;({ response, status } = config.hooks.afterError(\n err,\n response,\n req?.context,\n collection?.config,\n ) || {\n response,\n status,\n })\n }\n\n return Response.json(response, { headers, status })\n}\n"],"names":["httpStatus","APIError","getPayloadHMR","headersWithCors","formatErrors","incoming","proto","Object","getPrototypeOf","constructor","name","data","errors","message","keys","reduce","acc","key","push","field","path","Array","isArray","routeError","collection","config","configArg","err","req","payload","e","Response","json","status","INTERNAL_SERVER_ERROR","headers","Headers","logger","response","error","stack","debug","hooks","afterError","context"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/routes/rest/routeError.ts"],"sourcesContent":["import type { Collection, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport httpStatus from 'http-status'\nimport { APIError, APIErrorName, ValidationErrorName } from 'payload'\n\nimport { getPayloadHMR } from '../../utilities/getPayloadHMR.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\n\nexport type ErrorResponse = { data?: any; errors: unknown[]; stack?: string }\n\nconst formatErrors = (incoming: { [key: string]: unknown } | APIError): ErrorResponse => {\n if (incoming) {\n // Cannot use `instanceof` to check error type: https://github.com/microsoft/TypeScript/issues/13965\n // Instead, get the prototype of the incoming error and check its constructor name\n const proto = Object.getPrototypeOf(incoming)\n\n // Payload 'ValidationError' and 'APIError'\n if (\n (proto.constructor.name === ValidationErrorName || proto.constructor.name === APIErrorName) &&\n incoming.data\n ) {\n return {\n errors: [\n {\n name: incoming.name,\n data: incoming.data,\n message: incoming.message,\n },\n ],\n }\n }\n\n // Mongoose 'ValidationError': https://mongoosejs.com/docs/api/error.html#Error.ValidationError\n if (proto.constructor.name === ValidationErrorName && 'errors' in incoming && incoming.errors) {\n return {\n errors: Object.keys(incoming.errors).reduce((acc, key) => {\n acc.push({\n field: incoming.errors[key].path,\n message: incoming.errors[key].message,\n })\n return acc\n }, []),\n }\n }\n\n if (Array.isArray(incoming.message)) {\n return {\n errors: incoming.message,\n }\n }\n\n if (incoming.name) {\n return {\n errors: [\n {\n message: incoming.message,\n },\n ],\n }\n }\n }\n\n return {\n errors: [\n {\n message: 'An unknown error occurred.',\n },\n ],\n }\n}\n\nexport const routeError = async ({\n collection,\n config: configArg,\n err,\n req,\n}: {\n collection?: Collection\n config: Promise<SanitizedConfig> | SanitizedConfig\n err: APIError\n req: Partial<PayloadRequest>\n}) => {\n let payload = req?.payload\n\n if (!payload) {\n try {\n payload = await getPayloadHMR({ config: configArg })\n } catch (e) {\n return Response.json(\n {\n message: 'There was an error initializing Payload',\n },\n { status: httpStatus.INTERNAL_SERVER_ERROR },\n )\n }\n }\n\n req.payload = payload\n const headers = headersWithCors({\n headers: new Headers(),\n req,\n })\n\n const { config, logger } = payload\n\n let response = formatErrors(err)\n\n let status = err.status || httpStatus.INTERNAL_SERVER_ERROR\n\n logger.error(err.stack)\n\n // Internal server errors can contain anything, including potentially sensitive data.\n // Therefore, error details will be hidden from the response unless `config.debug` is `true`\n if (!config.debug && status === httpStatus.INTERNAL_SERVER_ERROR) {\n response = formatErrors(new APIError('Something went wrong.'))\n }\n\n if (config.debug && config.debug === true) {\n response.stack = err.stack\n }\n\n if (collection && typeof collection.config.hooks.afterError === 'function') {\n ;({ response, status } = collection.config.hooks.afterError(\n err,\n response,\n req?.context,\n collection.config,\n ) || { response, status })\n }\n\n if (typeof config.hooks.afterError === 'function') {\n ;({ response, status } = config.hooks.afterError(\n err,\n response,\n req?.context,\n collection?.config,\n ) || {\n response,\n status,\n })\n }\n\n return Response.json(response, { headers, status })\n}\n"],"names":["httpStatus","APIError","APIErrorName","ValidationErrorName","getPayloadHMR","headersWithCors","formatErrors","incoming","proto","Object","getPrototypeOf","constructor","name","data","errors","message","keys","reduce","acc","key","push","field","path","Array","isArray","routeError","collection","config","configArg","err","req","payload","e","Response","json","status","INTERNAL_SERVER_ERROR","headers","Headers","logger","response","error","stack","debug","hooks","afterError","context"],"mappings":"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"}