@payloadcms/next 3.0.0-beta.55 → 3.0.0-beta.56

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 (73) hide show
  1. package/dist/elements/DocumentHeader/Tabs/Tab/index.scss +91 -0
  2. package/dist/elements/DocumentHeader/Tabs/index.scss +53 -0
  3. package/dist/elements/DocumentHeader/index.scss +51 -0
  4. package/dist/elements/LeaveWithoutSaving/index.scss +36 -0
  5. package/dist/elements/Nav/NavWrapper/index.scss +17 -0
  6. package/dist/elements/Nav/index.scss +150 -0
  7. package/dist/prod/index.js +2 -2
  8. package/dist/routes/graphql/handler.d.ts.map +1 -1
  9. package/dist/routes/graphql/handler.js +5 -1
  10. package/dist/routes/graphql/handler.js.map +1 -1
  11. package/dist/routes/rest/auth/refresh.d.ts.map +1 -1
  12. package/dist/routes/rest/auth/refresh.js +12 -20
  13. package/dist/routes/rest/auth/refresh.js.map +1 -1
  14. package/dist/routes/rest/index.d.ts.map +1 -1
  15. package/dist/routes/rest/index.js +33 -6
  16. package/dist/routes/rest/index.js.map +1 -1
  17. package/dist/routes/rest/og/roboto-regular.woff +0 -0
  18. package/dist/scss/app.scss +208 -0
  19. package/dist/scss/colors.scss +269 -0
  20. package/dist/scss/custom.css +1 -0
  21. package/dist/scss/queries.scss +27 -0
  22. package/dist/scss/resets.scss +17 -0
  23. package/dist/scss/styles.scss +11 -0
  24. package/dist/scss/svg.scss +10 -0
  25. package/dist/scss/toasts.scss +111 -0
  26. package/dist/scss/type.scss +117 -0
  27. package/dist/scss/vars.scss +213 -0
  28. package/dist/scss/z-index.scss +9 -0
  29. package/dist/templates/Default/Wrapper/index.scss +25 -0
  30. package/dist/templates/Default/index.scss +67 -0
  31. package/dist/templates/Minimal/index.scss +28 -0
  32. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  33. package/dist/utilities/createPayloadRequest.js +3 -1
  34. package/dist/utilities/createPayloadRequest.js.map +1 -1
  35. package/dist/utilities/mergeHeaders.d.ts +2 -0
  36. package/dist/utilities/mergeHeaders.d.ts.map +1 -0
  37. package/dist/utilities/mergeHeaders.js +37 -0
  38. package/dist/utilities/mergeHeaders.js.map +1 -0
  39. package/dist/views/API/RenderJSON/index.scss +90 -0
  40. package/dist/views/API/index.scss +124 -0
  41. package/dist/views/Account/Settings/index.scss +46 -0
  42. package/dist/views/CreateFirstUser/index.scss +5 -0
  43. package/dist/views/Dashboard/Default/index.scss +58 -0
  44. package/dist/views/Edit/Default/Auth/index.scss +61 -0
  45. package/dist/views/Edit/Default/index.scss +21 -0
  46. package/dist/views/List/Default/index.scss +195 -0
  47. package/dist/views/LivePreview/IFrame/index.scss +7 -0
  48. package/dist/views/LivePreview/Preview/index.scss +41 -0
  49. package/dist/views/LivePreview/Toolbar/Controls/index.scss +59 -0
  50. package/dist/views/LivePreview/Toolbar/SizeInput/index.scss +10 -0
  51. package/dist/views/LivePreview/Toolbar/index.scss +41 -0
  52. package/dist/views/LivePreview/ToolbarArea/index.scss +4 -0
  53. package/dist/views/LivePreview/index.scss +66 -0
  54. package/dist/views/Login/LoginForm/index.scss +8 -0
  55. package/dist/views/Login/index.scss +8 -0
  56. package/dist/views/Logout/index.scss +20 -0
  57. package/dist/views/NotFound/index.scss +37 -0
  58. package/dist/views/ResetPassword/index.scss +5 -0
  59. package/dist/views/Unauthorized/index.scss +36 -0
  60. package/dist/views/Verify/index.scss +14 -0
  61. package/dist/views/Version/Default/index.scss +70 -0
  62. package/dist/views/Version/RenderFieldsToDiff/Label/index.scss +4 -0
  63. package/dist/views/Version/RenderFieldsToDiff/fields/Iterable/index.scss +34 -0
  64. package/dist/views/Version/RenderFieldsToDiff/fields/Nested/index.scss +12 -0
  65. package/dist/views/Version/RenderFieldsToDiff/fields/Relationship/index.scss +13 -0
  66. package/dist/views/Version/RenderFieldsToDiff/fields/Select/index.scss +13 -0
  67. package/dist/views/Version/RenderFieldsToDiff/fields/Text/index.scss +13 -0
  68. package/dist/views/Version/RenderFieldsToDiff/index.scss +18 -0
  69. package/dist/views/Version/Restore/index.scss +30 -0
  70. package/dist/views/Version/SelectComparison/index.scss +13 -0
  71. package/dist/views/Version/SelectLocales/index.scss +7 -0
  72. package/dist/views/Versions/index.scss +108 -0
  73. package/package.json +7 -7
@@ -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;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"}
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"}
@@ -5,6 +5,7 @@ import { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest
5
5
  import { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js';
6
6
  import { createPayloadRequest } from '../../utilities/createPayloadRequest.js';
7
7
  import { headersWithCors } from '../../utilities/headersWithCors.js';
8
+ import { mergeHeaders } from '../../utilities/mergeHeaders.js';
8
9
  const handleError = async (payload, err, debug, afterErrorHook)=>{
9
10
  const status = err.originalError.status || httpStatus.INTERNAL_SERVER_ERROR;
10
11
  let errorMessage = err.message;
@@ -105,7 +106,7 @@ export const POST = (config)=>async (request)=>{
105
106
  return response;
106
107
  },
107
108
  schema,
108
- validationRules: (request, args, defaultRules)=>defaultRules.concat(validationRules(args))
109
+ validationRules: (_, args, defaultRules)=>defaultRules.concat(validationRules(args))
109
110
  })(originalRequest);
110
111
  const resHeaders = headersWithCors({
111
112
  headers: new Headers(apiResponse.headers),
@@ -114,6 +115,9 @@ export const POST = (config)=>async (request)=>{
114
115
  for(const key in headers){
115
116
  resHeaders.append(key, headers[key]);
116
117
  }
118
+ if (basePayloadRequest.responseHeaders) {
119
+ mergeHeaders(basePayloadRequest.responseHeaders, resHeaders);
120
+ }
117
121
  return new Response(apiResponse.body, {
118
122
  headers: resHeaders,
119
123
  status: apiResponse.status
@@ -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'\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 basePayloadRequest = await createPayloadRequest({\n config,\n request,\n })\n\n const reqWithData = await addDataAndFileToRequest({ request: basePayloadRequest })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n const { schema, validationRules } = await getGraphql(config)\n\n const { payload } = payloadRequest\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: payloadRequest },\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: (request, args, defaultRules) => defaultRules.concat(validationRules(args)),\n })(originalRequest)\n\n const resHeaders = headersWithCors({\n headers: new Headers(apiResponse.headers),\n req: payloadRequest,\n })\n\n for (const key in headers) {\n resHeaders.append(key, headers[key])\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","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","basePayloadRequest","reqWithData","payloadRequest","validationRules","hooks","afterError","headers","apiResponse","context","req","onOperation","args","result","errors","all","map","defaultRules","concat","resHeaders","Headers","key","append","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 // 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 basePayloadRequest = await createPayloadRequest({\n config,\n request,\n })\n\n const reqWithData = await addDataAndFileToRequest({ request: basePayloadRequest })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n const { schema, validationRules } = await getGraphql(config)\n\n const { payload } = payloadRequest\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: payloadRequest },\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: payloadRequest,\n })\n\n for (const key in headers) {\n resHeaders.append(key, headers[key])\n }\n\n if (basePayloadRequest.responseHeaders) {\n mergeHeaders(basePayloadRequest.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","basePayloadRequest","reqWithData","payloadRequest","validationRules","hooks","afterError","headers","apiResponse","context","req","onOperation","args","result","errors","all","map","_","defaultRules","concat","resHeaders","Headers","key","append","responseHeaders","Response","body"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/auth/refresh.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,OAAO,EAAE,sBAiDrB,CAAA"}
1
+ {"version":3,"file":"refresh.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/auth/refresh.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAIzD,eAAO,MAAM,OAAO,EAAE,sBAqCrB,CAAA"}
@@ -1,35 +1,27 @@
1
1
  import httpStatus from 'http-status';
2
- import { extractJWT, generatePayloadCookie, refreshOperation } from 'payload';
2
+ import { generatePayloadCookie, refreshOperation } from 'payload';
3
3
  import { headersWithCors } from '../../../utilities/headersWithCors.js';
4
4
  export const refresh = async ({ collection, req })=>{
5
5
  const { t } = req;
6
- const token = typeof req.data?.token === 'string' ? req.data.token : extractJWT(req);
7
6
  const headers = headersWithCors({
8
7
  headers: new Headers(),
9
8
  req
10
9
  });
11
- if (!token) {
12
- return Response.json({
13
- message: t('error:tokenNotProvided')
14
- }, {
15
- headers,
16
- status: httpStatus.UNAUTHORIZED
17
- });
18
- }
19
10
  const result = await refreshOperation({
20
11
  collection,
21
- req,
22
- token
23
- });
24
- const cookie = generatePayloadCookie({
25
- collectionConfig: collection.config,
26
- payload: req.payload,
27
- token: result.refreshedToken
12
+ req
28
13
  });
29
- if (collection.config.auth.removeTokenFromResponses) {
30
- delete result.refreshedToken;
14
+ if (result.setCookie) {
15
+ const cookie = generatePayloadCookie({
16
+ collectionConfig: collection.config,
17
+ payload: req.payload,
18
+ token: result.refreshedToken
19
+ });
20
+ if (collection.config.auth.removeTokenFromResponses) {
21
+ delete result.refreshedToken;
22
+ }
23
+ headers.set('Set-Cookie', cookie);
31
24
  }
32
- headers.set('Set-Cookie', cookie);
33
25
  return Response.json({
34
26
  message: t('authentication:tokenRefreshSuccessful'),
35
27
  ...result
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/routes/rest/auth/refresh.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { extractJWT, generatePayloadCookie, refreshOperation } from 'payload'\n\nimport type { CollectionRouteHandler } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const refresh: CollectionRouteHandler = async ({ collection, req }) => {\n const { t } = req\n const token = typeof req.data?.token === 'string' ? req.data.token : extractJWT(req)\n\n const headers = headersWithCors({\n headers: new Headers(),\n req,\n })\n\n if (!token) {\n return Response.json(\n {\n message: t('error:tokenNotProvided'),\n },\n {\n headers,\n status: httpStatus.UNAUTHORIZED,\n },\n )\n }\n\n const result = await refreshOperation({\n collection,\n req,\n token,\n })\n\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: req.payload,\n token: result.refreshedToken,\n })\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.refreshedToken\n }\n\n headers.set('Set-Cookie', cookie)\n\n return Response.json(\n {\n message: t('authentication:tokenRefreshSuccessful'),\n ...result,\n },\n {\n headers,\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","extractJWT","generatePayloadCookie","refreshOperation","headersWithCors","refresh","collection","req","t","token","data","headers","Headers","Response","json","message","status","UNAUTHORIZED","result","cookie","collectionConfig","config","payload","refreshedToken","auth","removeTokenFromResponses","set","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,UAAU,EAAEC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAI7E,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,UAAkC,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAE;IACvE,MAAM,EAAEC,CAAC,EAAE,GAAGD;IACd,MAAME,QAAQ,OAAOF,IAAIG,IAAI,EAAED,UAAU,WAAWF,IAAIG,IAAI,CAACD,KAAK,GAAGR,WAAWM;IAEhF,MAAMI,UAAUP,gBAAgB;QAC9BO,SAAS,IAAIC;QACbL;IACF;IAEA,IAAI,CAACE,OAAO;QACV,OAAOI,SAASC,IAAI,CAClB;YACEC,SAASP,EAAE;QACb,GACA;YACEG;YACAK,QAAQhB,WAAWiB,YAAY;QACjC;IAEJ;IAEA,MAAMC,SAAS,MAAMf,iBAAiB;QACpCG;QACAC;QACAE;IACF;IAEA,MAAMU,SAASjB,sBAAsB;QACnCkB,kBAAkBd,WAAWe,MAAM;QACnCC,SAASf,IAAIe,OAAO;QACpBb,OAAOS,OAAOK,cAAc;IAC9B;IAEA,IAAIjB,WAAWe,MAAM,CAACG,IAAI,CAACC,wBAAwB,EAAE;QACnD,OAAOP,OAAOK,cAAc;IAC9B;IAEAZ,QAAQe,GAAG,CAAC,cAAcP;IAE1B,OAAON,SAASC,IAAI,CAClB;QACEC,SAASP,EAAE;QACX,GAAGU,MAAM;IACX,GACA;QACEP;QACAK,QAAQhB,WAAW2B,EAAE;IACvB;AAEJ,EAAC"}
1
+ {"version":3,"sources":["../../../../src/routes/rest/auth/refresh.ts"],"sourcesContent":["import httpStatus from 'http-status'\nimport { generatePayloadCookie, refreshOperation } from 'payload'\n\nimport type { CollectionRouteHandler } from '../types.js'\n\nimport { headersWithCors } from '../../../utilities/headersWithCors.js'\n\nexport const refresh: CollectionRouteHandler = async ({ collection, req }) => {\n const { t } = req\n\n const headers = headersWithCors({\n headers: new Headers(),\n req,\n })\n\n const result = await refreshOperation({\n collection,\n req,\n })\n\n if (result.setCookie) {\n const cookie = generatePayloadCookie({\n collectionConfig: collection.config,\n payload: req.payload,\n token: result.refreshedToken,\n })\n\n if (collection.config.auth.removeTokenFromResponses) {\n delete result.refreshedToken\n }\n\n headers.set('Set-Cookie', cookie)\n }\n\n return Response.json(\n {\n message: t('authentication:tokenRefreshSuccessful'),\n ...result,\n },\n {\n headers,\n status: httpStatus.OK,\n },\n )\n}\n"],"names":["httpStatus","generatePayloadCookie","refreshOperation","headersWithCors","refresh","collection","req","t","headers","Headers","result","setCookie","cookie","collectionConfig","config","payload","token","refreshedToken","auth","removeTokenFromResponses","set","Response","json","message","status","OK"],"mappings":"AAAA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,qBAAqB,EAAEC,gBAAgB,QAAQ,UAAS;AAIjE,SAASC,eAAe,QAAQ,wCAAuC;AAEvE,OAAO,MAAMC,UAAkC,OAAO,EAAEC,UAAU,EAAEC,GAAG,EAAE;IACvE,MAAM,EAAEC,CAAC,EAAE,GAAGD;IAEd,MAAME,UAAUL,gBAAgB;QAC9BK,SAAS,IAAIC;QACbH;IACF;IAEA,MAAMI,SAAS,MAAMR,iBAAiB;QACpCG;QACAC;IACF;IAEA,IAAII,OAAOC,SAAS,EAAE;QACpB,MAAMC,SAASX,sBAAsB;YACnCY,kBAAkBR,WAAWS,MAAM;YACnCC,SAAST,IAAIS,OAAO;YACpBC,OAAON,OAAOO,cAAc;QAC9B;QAEA,IAAIZ,WAAWS,MAAM,CAACI,IAAI,CAACC,wBAAwB,EAAE;YACnD,OAAOT,OAAOO,cAAc;QAC9B;QAEAT,QAAQY,GAAG,CAAC,cAAcR;IAC5B;IAEA,OAAOS,SAASC,IAAI,CAClB;QACEC,SAAShB,EAAE;QACX,GAAGG,MAAM;IACX,GACA;QACEF;QACAgB,QAAQxB,WAAWyB,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,EAMV,eAAe,EAChB,MAAM,SAAS,CAAA;AA0LhB,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,sBA+K5E,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,sBAqK5E,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,sBA6E5E,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,sBA8E5E,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAMV,eAAe,EAChB,MAAM,SAAS,CAAA;AAmMhB,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"}
@@ -4,6 +4,7 @@ import { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest
4
4
  import { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js';
5
5
  import { createPayloadRequest } from '../../utilities/createPayloadRequest.js';
6
6
  import { headersWithCors } from '../../utilities/headersWithCors.js';
7
+ import { mergeHeaders } from '../../utilities/mergeHeaders.js';
7
8
  import { access } from './auth/access.js';
8
9
  import { forgotPassword } from './auth/forgotPassword.js';
9
10
  import { init } from './auth/init.js';
@@ -103,7 +104,7 @@ const endpoints = {
103
104
  }
104
105
  }
105
106
  };
106
- const handleCustomEndpoints = ({ endpoints, entitySlug, payloadRequest })=>{
107
+ const handleCustomEndpoints = async ({ endpoints, entitySlug, payloadRequest })=>{
107
108
  if (endpoints && endpoints.length > 0) {
108
109
  let handlerParams = {};
109
110
  const { pathname } = payloadRequest;
@@ -135,7 +136,13 @@ const handleCustomEndpoints = ({ endpoints, entitySlug, payloadRequest })=>{
135
136
  ...payloadRequest.routeParams,
136
137
  ...handlerParams
137
138
  };
138
- return customEndpoint.handler(payloadRequest);
139
+ const res = await customEndpoint.handler(payloadRequest);
140
+ if (res instanceof Response) {
141
+ if (payloadRequest.responseHeaders) {
142
+ mergeHeaders(payloadRequest.responseHeaders, res.headers);
143
+ }
144
+ return res;
145
+ }
139
146
  }
140
147
  }
141
148
  return null;
@@ -332,7 +339,12 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
332
339
  req: payloadRequest
333
340
  });
334
341
  }
335
- if (res instanceof Response) return res;
342
+ if (res instanceof Response) {
343
+ if (req.responseHeaders) {
344
+ mergeHeaders(req.responseHeaders, res.headers);
345
+ }
346
+ return res;
347
+ }
336
348
  // root routes
337
349
  const customEndpointResponse = await handleCustomEndpoints({
338
350
  endpoints: req.payload.config.endpoints,
@@ -508,7 +520,12 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
508
520
  req: payloadRequest
509
521
  });
510
522
  }
511
- if (res instanceof Response) return res;
523
+ if (res instanceof Response) {
524
+ if (req.responseHeaders) {
525
+ mergeHeaders(req.responseHeaders, res.headers);
526
+ }
527
+ return res;
528
+ }
512
529
  // root routes
513
530
  const customEndpointResponse = await handleCustomEndpoints({
514
531
  endpoints: req.payload.config.endpoints,
@@ -584,7 +601,12 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
584
601
  }
585
602
  }
586
603
  }
587
- if (res instanceof Response) return res;
604
+ if (res instanceof Response) {
605
+ if (req.responseHeaders) {
606
+ mergeHeaders(req.responseHeaders, res.headers);
607
+ }
608
+ return res;
609
+ }
588
610
  // root routes
589
611
  const customEndpointResponse = await handleCustomEndpoints({
590
612
  endpoints: req.payload.config.endpoints,
@@ -660,7 +682,12 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
660
682
  }
661
683
  }
662
684
  }
663
- if (res instanceof Response) return res;
685
+ if (res instanceof Response) {
686
+ if (req.responseHeaders) {
687
+ mergeHeaders(req.responseHeaders, res.headers);
688
+ }
689
+ return res;
690
+ }
664
691
  // root routes
665
692
  const customEndpointResponse = await handleCustomEndpoints({
666
693
  endpoints: req.payload.config.endpoints,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type {\n Collection,\n Endpoint,\n GlobalConfig,\n PayloadRequest,\n PayloadRequestData,\n SanitizedConfig,\n} 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 { 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 = ({\n endpoints,\n entitySlug,\n payloadRequest,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n payloadRequest: PayloadRequest\n}): Promise<Response> | Response => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = payloadRequest\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 payloadRequest.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 =\n payloadRequest.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === payloadRequest.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 payloadRequest.routeParams = {\n ...payloadRequest.routeParams,\n ...handlerParams,\n }\n return customEndpoint.handler(payloadRequest)\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 | (PayloadRequest & PayloadRequestData)\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req: payloadRequest })\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: payloadRequest,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({\n id: slug2,\n collection,\n req: payloadRequest,\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: payloadRequest,\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: payloadRequest,\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: payloadRequest })\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req: payloadRequest })\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: payloadRequest,\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: payloadRequest,\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: payloadRequest,\n })\n }\n break\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n res = await endpoints.root.GET[slug1]({ req: payloadRequest })\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req: payloadRequest })\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: payloadRequest,\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: payloadRequest })\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: payloadRequest,\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req: payloadRequest })\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: payloadRequest,\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: payloadRequest,\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 const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n res = await endpoints.root.POST[slug1]({ req: payloadRequest })\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\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 payloadRequest: req,\n })\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req: payloadRequest })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req: payloadRequest })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) return res\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\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","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","payloadRequest","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","handler","RouteNotFoundResponse","slug","req","Response","json","message","join","headers","Headers","status","NOT_FOUND","OPTIONS","request","error","err","slug1","slug2","slug3","slug4","res","disableEndpoints","collections","customEndpointResponse","reqWithData","id","filename","globalConfig","globals","overrideHttpMethod","get","disableDuplicate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type {\n Collection,\n Endpoint,\n GlobalConfig,\n PayloadRequest,\n PayloadRequestData,\n SanitizedConfig,\n} 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 payloadRequest,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n payloadRequest: PayloadRequest\n}): Promise<Response> => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = payloadRequest\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 payloadRequest.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 =\n payloadRequest.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === payloadRequest.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 payloadRequest.routeParams = {\n ...payloadRequest.routeParams,\n ...handlerParams,\n }\n const res = await customEndpoint.handler(payloadRequest)\n\n if (res instanceof Response) {\n if (payloadRequest.responseHeaders) {\n mergeHeaders(payloadRequest.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 | (PayloadRequest & PayloadRequestData)\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req: payloadRequest })\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: payloadRequest,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({\n id: slug2,\n collection,\n req: payloadRequest,\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: payloadRequest,\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: payloadRequest,\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: payloadRequest })\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req: payloadRequest })\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: payloadRequest,\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: payloadRequest,\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: payloadRequest,\n })\n }\n break\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n res = await endpoints.root.GET[slug1]({ req: payloadRequest })\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 payloadRequest: 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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req: payloadRequest })\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: payloadRequest,\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: payloadRequest })\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: payloadRequest,\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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req: payloadRequest })\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: payloadRequest,\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: payloadRequest,\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 const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n res = await endpoints.root.POST[slug1]({ req: payloadRequest })\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 payloadRequest: 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 payloadRequest: req,\n })\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req: payloadRequest })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({\n id: slug2,\n collection,\n req: payloadRequest,\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 payloadRequest: 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 payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req: payloadRequest })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({\n id: slug2,\n collection,\n req: payloadRequest,\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 payloadRequest: 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","payloadRequest","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","req","json","message","join","Headers","status","NOT_FOUND","OPTIONS","request","error","err","slug1","slug2","slug3","slug4","disableEndpoints","collections","customEndpointResponse","reqWithData","id","filename","globalConfig","globals","overrideHttpMethod","get","disableDuplicate"],"mappings":"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"}