@payloadcms/next 3.0.0-beta.14 → 3.0.0-beta.18
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.
- package/dist/exports/utilities.d.ts +3 -1
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +3 -1
- package/dist/exports/utilities.js.map +1 -1
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +12 -4
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.js +0 -9
- package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
- package/dist/routes/rest/buildFormState.d.ts +3 -3
- package/dist/routes/rest/buildFormState.d.ts.map +1 -1
- package/dist/routes/rest/buildFormState.js +21 -6
- package/dist/routes/rest/buildFormState.js.map +1 -1
- package/dist/routes/rest/files/checkFileAccess.d.ts +2 -2
- package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
- package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
- package/dist/routes/rest/files/getFile.d.ts +2 -2
- package/dist/routes/rest/files/getFile.d.ts.map +1 -1
- package/dist/routes/rest/files/getFile.js.map +1 -1
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +260 -192
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/routes/rest/routeError.d.ts +2 -2
- package/dist/routes/rest/routeError.d.ts.map +1 -1
- package/dist/routes/rest/routeError.js.map +1 -1
- package/dist/routes/rest/types.d.ts +7 -7
- package/dist/routes/rest/types.d.ts.map +1 -1
- package/dist/routes/rest/types.js.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.d.ts +11 -0
- package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -0
- package/dist/utilities/addDataAndFileToRequest.js +53 -0
- package/dist/utilities/addDataAndFileToRequest.js.map +1 -0
- package/dist/utilities/addLocalesToRequest.d.ts +20 -0
- package/dist/utilities/addLocalesToRequest.d.ts.map +1 -0
- package/dist/utilities/addLocalesToRequest.js +41 -0
- package/dist/utilities/addLocalesToRequest.js.map +1 -0
- package/dist/utilities/buildFieldSchemaMap/index.d.ts +2 -2
- package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
- package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
- package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
- package/dist/utilities/createPayloadRequest.js +15 -28
- package/dist/utilities/createPayloadRequest.js.map +1 -1
- package/dist/utilities/getDataAndFile.d.ts +2 -2
- package/dist/utilities/getDataAndFile.d.ts.map +1 -1
- package/dist/utilities/getDataAndFile.js.map +1 -1
- package/dist/utilities/headersWithCors.d.ts +2 -2
- package/dist/utilities/headersWithCors.d.ts.map +1 -1
- package/dist/utilities/headersWithCors.js.map +1 -1
- package/dist/utilities/initPage.js.map +1 -1
- package/dist/views/CreateFirstUser/index.client.d.ts +3 -3
- package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.client.js +48 -6
- package/dist/views/CreateFirstUser/index.client.js.map +1 -1
- package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
- package/dist/views/CreateFirstUser/index.js +9 -46
- package/dist/views/CreateFirstUser/index.js.map +1 -1
- package/dist/views/CreateFirstUser/index.scss +2 -12
- package/dist/views/Edit/Default/Auth/APIKey.d.ts +1 -0
- package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js +13 -6
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +2 -1
- package/dist/views/Edit/Default/Auth/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -0
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +6 -0
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type { Endpoint } from 'payload/config'\nimport type { Collection, GlobalConfig, PayloadRequest, SanitizedConfig } from 'payload/types'\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 { 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 { 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 },\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 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 const tempParams = pathMatchFn(pathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n payloadRequest.routeParams = handlerParams\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\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n params: {\n collection: slug1,\n },\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 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) return customEndpointResponse\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({ id: slug2, collection, req })\n }\n break\n case 3:\n if (slug2 === 'file') {\n // /:collection/file/:filename\n res = await endpoints.collection.GET.getFile({ collection, filename: slug3, req })\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 } else if (slug1 === 'globals') {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\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) return customEndpointResponse\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 } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n res = await endpoints.root.GET[slug1]({ req })\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 try {\n req = await createPayloadRequest({\n config,\n params: { collection: slug1 },\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 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) return customEndpointResponse\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({ id: slug2, collection, req })\n }\n break\n }\n } else if (slug1 === 'globals' && slug2) {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\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 if (customEndpointResponse) return customEndpointResponse\n\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 } else if (slug.length === 1 && slug1 in endpoints.root.POST) {\n res = await endpoints.root.POST[slug1]({ req })\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 params: {\n collection: slug1,\n },\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 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) return customEndpointResponse\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({ id: slug2, collection, req })\n break\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 params: {\n collection: slug1,\n },\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 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) return customEndpointResponse\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({ id: slug2, collection, req })\n break\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","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","routeError","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","handleCustomEndpoints","entitySlug","payloadRequest","length","handlerParams","pathname","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","id","filename","globalConfig","globals","disableDuplicate"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type { Endpoint } from 'payload/config'\nimport type {\n Collection,\n GlobalConfig,\n PayloadRequest,\n PayloadRequestData,\n SanitizedConfig,\n} from 'payload/types'\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 { 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 },\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 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 const tempParams = pathMatchFn(pathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n payloadRequest.routeParams = handlerParams\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 params: {\n collection: slug1,\n },\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 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.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\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\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 try {\n req = await createPayloadRequest({\n config,\n params: { collection: slug1 },\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 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 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 params: {\n collection: slug1,\n },\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 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 params: {\n collection: slug1,\n },\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 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","routeError","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","handleCustomEndpoints","entitySlug","payloadRequest","length","handlerParams","pathname","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","disableDuplicate"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Collection,
|
|
1
|
+
import type { Collection, PayloadRequestWithData, SanitizedConfig } from 'payload/types';
|
|
2
2
|
import { APIError } from 'payload/errors';
|
|
3
3
|
export type ErrorResponse = {
|
|
4
4
|
data?: any;
|
|
@@ -9,6 +9,6 @@ export declare const routeError: ({ collection, config: configArg, err, req, }:
|
|
|
9
9
|
collection?: Collection;
|
|
10
10
|
config: Promise<SanitizedConfig> | SanitizedConfig;
|
|
11
11
|
err: APIError;
|
|
12
|
-
req: Partial<
|
|
12
|
+
req: Partial<PayloadRequestWithData>;
|
|
13
13
|
}) => Promise<Response>;
|
|
14
14
|
//# sourceMappingURL=routeError.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routeError.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/routeError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"routeError.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/routeError.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAGxF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAKzC,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,QAAQ,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,GAAG,EAAE,QAAQ,CAAA;IACb,GAAG,EAAE,QAAQ,sBAAsB,CAAC,CAAA;CACrC,sBA8DA,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/routes/rest/routeError.ts"],"sourcesContent":["import type { Collection,
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/routeError.ts"],"sourcesContent":["import type { Collection, PayloadRequestWithData, SanitizedConfig } from 'payload/types'\n\nimport httpStatus from 'http-status'\nimport { APIError } from 'payload/errors'\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<PayloadRequestWithData>\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"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,QAAQ,QAAQ,iBAAgB;AAEzC,SAASC,aAAa,QAAQ,mCAAkC;AAChE,SAASC,eAAe,QAAQ,qCAAoC;AAIpE,MAAMC,eAAe,CAACC;IACpB,IAAIA,UAAU;QACZ,oGAAoG;QACpG,kFAAkF;QAClF,MAAMC,QAAQC,OAAOC,cAAc,CAACH;QAEpC,2CAA2C;QAC3C,IACE,AAACC,CAAAA,MAAMG,WAAW,CAACC,IAAI,KAAK,qBAAqBJ,MAAMG,WAAW,CAACC,IAAI,KAAK,UAAS,KACrFL,SAASM,IAAI,EACb;YACA,OAAO;gBACLC,QAAQ;oBACN;wBACEF,MAAML,SAASK,IAAI;wBACnBC,MAAMN,SAASM,IAAI;wBACnBE,SAASR,SAASQ,OAAO;oBAC3B;iBACD;YACH;QACF;QAEA,+FAA+F;QAC/F,IAAIP,MAAMG,WAAW,CAACC,IAAI,KAAK,qBAAqB,YAAYL,YAAYA,SAASO,MAAM,EAAE;YAC3F,OAAO;gBACLA,QAAQL,OAAOO,IAAI,CAACT,SAASO,MAAM,EAAEG,MAAM,CAAC,CAACC,KAAKC;oBAChDD,IAAIE,IAAI,CAAC;wBACPC,OAAOd,SAASO,MAAM,CAACK,IAAI,CAACG,IAAI;wBAChCP,SAASR,SAASO,MAAM,CAACK,IAAI,CAACJ,OAAO;oBACvC;oBACA,OAAOG;gBACT,GAAG,EAAE;YACP;QACF;QAEA,IAAIK,MAAMC,OAAO,CAACjB,SAASQ,OAAO,GAAG;YACnC,OAAO;gBACLD,QAAQP,SAASQ,OAAO;YAC1B;QACF;QAEA,IAAIR,SAASK,IAAI,EAAE;YACjB,OAAO;gBACLE,QAAQ;oBACN;wBACEC,SAASR,SAASQ,OAAO;oBAC3B;iBACD;YACH;QACF;IACF;IAEA,OAAO;QACLD,QAAQ;YACN;gBACEC,SAAS;YACX;SACD;IACH;AACF;AAEA,OAAO,MAAMU,aAAa,OAAO,EAC/BC,UAAU,EACVC,QAAQC,SAAS,EACjBC,GAAG,EACHC,GAAG,EAMJ;IACC,IAAIC,UAAUD,KAAKC;IAEnB,IAAI,CAACA,SAAS;QACZ,IAAI;YACFA,UAAU,MAAM3B,cAAc;gBAAEuB,QAAQC;YAAU;QACpD,EAAE,OAAOI,GAAG;YACV,OAAOC,SAASC,IAAI,CAClB;gBACEnB,SAAS;YACX,GACA;gBAAEoB,QAAQjC,WAAWkC,qBAAqB;YAAC;QAE/C;IACF;IAEAN,IAAIC,OAAO,GAAGA;IACd,MAAMM,UAAUhC,gBAAgB;QAC9BgC,SAAS,IAAIC;QACbR;IACF;IAEA,MAAM,EAAEH,MAAM,EAAEY,MAAM,EAAE,GAAGR;IAE3B,IAAIS,WAAWlC,aAAauB;IAE5B,IAAIM,SAASN,IAAIM,MAAM,IAAIjC,WAAWkC,qBAAqB;IAE3DG,OAAOE,KAAK,CAACZ,IAAIa,KAAK;IAEtB,qFAAqF;IACrF,4FAA4F;IAC5F,IAAI,CAACf,OAAOgB,KAAK,IAAIR,WAAWjC,WAAWkC,qBAAqB,EAAE;QAChEI,WAAWlC,aAAa,IAAIH,SAAS;IACvC;IAEA,IAAIwB,OAAOgB,KAAK,IAAIhB,OAAOgB,KAAK,KAAK,MAAM;QACzCH,SAASE,KAAK,GAAGb,IAAIa,KAAK;IAC5B;IAEA,IAAIhB,cAAc,OAAOA,WAAWC,MAAM,CAACiB,KAAK,CAACC,UAAU,KAAK,YAAY;QACxE,CAAA,EAAEL,QAAQ,EAAEL,MAAM,EAAE,GAAGT,WAAWC,MAAM,CAACiB,KAAK,CAACC,UAAU,CACzDhB,KACAW,UACAV,KAAKgB,SACLpB,WAAWC,MAAM,KACd;YAAEa;YAAUL;QAAO,CAAA;IAC1B;IAEA,IAAI,OAAOR,OAAOiB,KAAK,CAACC,UAAU,KAAK,YAAY;QAC/C,CAAA,EAAEL,QAAQ,EAAEL,MAAM,EAAE,GAAGR,OAAOiB,KAAK,CAACC,UAAU,CAC9ChB,KACAW,UACAV,KAAKgB,SACLpB,YAAYC,WACT;YACHa;YACAL;QACF,CAAA;IACF;IAEA,OAAOF,SAASC,IAAI,CAACM,UAAU;QAAEH;QAASF;IAAO;AACnD,EAAC"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import type { Collection,
|
|
2
|
-
export type BaseRouteHandler = ({ req }: {
|
|
3
|
-
req:
|
|
1
|
+
import type { Collection, PayloadRequestWithData, SanitizedGlobalConfig } from 'payload/types';
|
|
2
|
+
export type BaseRouteHandler = ({ req, }: {
|
|
3
|
+
req: PayloadRequestWithData;
|
|
4
4
|
}) => Promise<Response> | Response;
|
|
5
5
|
export type CollectionRouteHandler = ({ collection, req, }: {
|
|
6
6
|
collection: Collection;
|
|
7
|
-
req:
|
|
7
|
+
req: PayloadRequestWithData;
|
|
8
8
|
}) => Promise<Response> | Response;
|
|
9
9
|
export type CollectionRouteHandlerWithID = ({ id, collection, req, }: {
|
|
10
10
|
collection: Collection;
|
|
11
11
|
id: string;
|
|
12
|
-
req:
|
|
12
|
+
req: PayloadRequestWithData;
|
|
13
13
|
}) => Promise<Response> | Response;
|
|
14
14
|
export type GlobalRouteHandler = ({ globalConfig, req, }: {
|
|
15
15
|
globalConfig: SanitizedGlobalConfig;
|
|
16
|
-
req:
|
|
16
|
+
req: PayloadRequestWithData;
|
|
17
17
|
}) => Promise<Response> | Response;
|
|
18
18
|
export type GlobalRouteHandlerWithID = ({ id, globalConfig, req, }: {
|
|
19
19
|
globalConfig: SanitizedGlobalConfig;
|
|
20
20
|
id: string;
|
|
21
|
-
req:
|
|
21
|
+
req: PayloadRequestWithData;
|
|
22
22
|
}) => Promise<Response> | Response;
|
|
23
23
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/rest/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAE9F,MAAM,MAAM,gBAAgB,GAAG,CAAC,EAC9B,GAAG,GACJ,EAAE;IACD,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;AAElC,MAAM,MAAM,sBAAsB,GAAG,CAAC,EACpC,UAAU,EACV,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;AAElC,MAAM,MAAM,4BAA4B,GAAG,CAAC,EAC1C,EAAE,EACF,UAAU,EACV,GAAG,GACJ,EAAE;IACD,UAAU,EAAE,UAAU,CAAA;IACtB,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;AAElC,MAAM,MAAM,kBAAkB,GAAG,CAAC,EAChC,YAAY,EACZ,GAAG,GACJ,EAAE;IACD,YAAY,EAAE,qBAAqB,CAAA;IACnC,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA;AAElC,MAAM,MAAM,wBAAwB,GAAG,CAAC,EACtC,EAAE,EACF,YAAY,EACZ,GAAG,GACJ,EAAE;IACD,YAAY,EAAE,qBAAqB,CAAA;IACnC,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,sBAAsB,CAAA;CAC5B,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/routes/rest/types.ts"],"sourcesContent":["import type { Collection,
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/types.ts"],"sourcesContent":["import type { Collection, PayloadRequestWithData, SanitizedGlobalConfig } from 'payload/types'\n\nexport type BaseRouteHandler = ({\n req,\n}: {\n req: PayloadRequestWithData\n}) => Promise<Response> | Response\n\nexport type CollectionRouteHandler = ({\n collection,\n req,\n}: {\n collection: Collection\n req: PayloadRequestWithData\n}) => Promise<Response> | Response\n\nexport type CollectionRouteHandlerWithID = ({\n id,\n collection,\n req,\n}: {\n collection: Collection\n id: string\n req: PayloadRequestWithData\n}) => Promise<Response> | Response\n\nexport type GlobalRouteHandler = ({\n globalConfig,\n req,\n}: {\n globalConfig: SanitizedGlobalConfig\n req: PayloadRequestWithData\n}) => Promise<Response> | Response\n\nexport type GlobalRouteHandlerWithID = ({\n id,\n globalConfig,\n req,\n}: {\n globalConfig: SanitizedGlobalConfig\n id: string\n req: PayloadRequestWithData\n}) => Promise<Response> | Response\n"],"names":[],"rangeMappings":"","mappings":"AAkCA,WAQkC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PayloadRequest, PayloadRequestData } from 'payload/types';
|
|
2
|
+
type ReturnType = PayloadRequest & PayloadRequestData;
|
|
3
|
+
type AddDataAndFileToRequest = (args: {
|
|
4
|
+
request: PayloadRequest;
|
|
5
|
+
}) => Promise<ReturnType>;
|
|
6
|
+
/**
|
|
7
|
+
* Mutates the Request to contain 'data' and 'file' if present
|
|
8
|
+
*/
|
|
9
|
+
export declare const addDataAndFileToRequest: AddDataAndFileToRequest;
|
|
10
|
+
export {};
|
|
11
|
+
//# sourceMappingURL=addDataAndFileToRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addDataAndFileToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addDataAndFileToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAMvE,KAAK,UAAU,GAAG,cAAc,GAAG,kBAAkB,CAAA;AACrD,KAAK,uBAAuB,GAAG,CAAC,IAAI,EAAE;IAAE,OAAO,EAAE,cAAc,CAAA;CAAE,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;AAEzF;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,uBAyDrC,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { nextFileUpload } from '../next-fileupload/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Mutates the Request to contain 'data' and 'file' if present
|
|
4
|
+
*/ export const addDataAndFileToRequest = async ({ request })=>{
|
|
5
|
+
const config = request.payload.config;
|
|
6
|
+
let data = undefined;
|
|
7
|
+
let file = undefined;
|
|
8
|
+
if (request.method && [
|
|
9
|
+
'PATCH',
|
|
10
|
+
'POST',
|
|
11
|
+
'PUT'
|
|
12
|
+
].includes(request.method.toUpperCase()) && request.body) {
|
|
13
|
+
const [contentType] = (request.headers.get('Content-Type') || '').split(';');
|
|
14
|
+
if (contentType === 'application/json') {
|
|
15
|
+
const bodyByteSize = parseInt(request.headers.get('Content-Length') || '0', 10);
|
|
16
|
+
const upperByteLimit = typeof config.upload?.limits?.fieldSize === 'number' ? config.upload.limits.fields : undefined;
|
|
17
|
+
if (upperByteLimit && bodyByteSize <= upperByteLimit || upperByteLimit === undefined) {
|
|
18
|
+
try {
|
|
19
|
+
data = await request.json();
|
|
20
|
+
} catch (error) {
|
|
21
|
+
data = {};
|
|
22
|
+
}
|
|
23
|
+
} else {
|
|
24
|
+
throw new Error('Request body size exceeds the limit');
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
if (request.headers.has('Content-Length') && request.headers.get('Content-Length') !== '0') {
|
|
28
|
+
const { error, fields, files } = await nextFileUpload({
|
|
29
|
+
options: config.upload,
|
|
30
|
+
request: request
|
|
31
|
+
});
|
|
32
|
+
if (error) {
|
|
33
|
+
throw new Error(error.message);
|
|
34
|
+
}
|
|
35
|
+
if (files?.file) {
|
|
36
|
+
file = files.file;
|
|
37
|
+
}
|
|
38
|
+
if (fields?._payload && typeof fields._payload === 'string') {
|
|
39
|
+
data = JSON.parse(fields._payload);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const mutableRequest = request;
|
|
45
|
+
if (data) {
|
|
46
|
+
mutableRequest.data = data;
|
|
47
|
+
mutableRequest.json = ()=>Promise.resolve(data);
|
|
48
|
+
}
|
|
49
|
+
if (file) mutableRequest.file = file;
|
|
50
|
+
return mutableRequest;
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=addDataAndFileToRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type { PayloadRequest, PayloadRequestData } from 'payload/types'\n\nimport type { NextFileUploadOptions } from '../next-fileupload/index.js'\n\nimport { nextFileUpload } from '../next-fileupload/index.js'\n\ntype ReturnType = PayloadRequest & PayloadRequestData\ntype AddDataAndFileToRequest = (args: { request: PayloadRequest }) => Promise<ReturnType>\n\n/**\n * Mutates the Request to contain 'data' and 'file' if present\n */\nexport const addDataAndFileToRequest: AddDataAndFileToRequest = async ({ request }) => {\n const config = request.payload.config\n let data: Record<string, any> | undefined = undefined\n let file: PayloadRequestData['file'] = undefined\n\n if (\n request.method &&\n ['PATCH', 'POST', 'PUT'].includes(request.method.toUpperCase()) &&\n request.body\n ) {\n const [contentType] = (request.headers.get('Content-Type') || '').split(';')\n\n if (contentType === 'application/json') {\n const bodyByteSize = parseInt(request.headers.get('Content-Length') || '0', 10)\n const upperByteLimit =\n typeof config.upload?.limits?.fieldSize === 'number'\n ? config.upload.limits.fields\n : undefined\n if ((upperByteLimit && bodyByteSize <= upperByteLimit) || upperByteLimit === undefined) {\n try {\n data = await request.json()\n } catch (error) {\n data = {}\n }\n } else {\n throw new Error('Request body size exceeds the limit')\n }\n } else {\n if (request.headers.has('Content-Length') && request.headers.get('Content-Length') !== '0') {\n const { error, fields, files } = await nextFileUpload({\n options: config.upload as NextFileUploadOptions,\n request: request as Request,\n })\n\n if (error) {\n throw new Error(error.message)\n }\n\n if (files?.file) {\n file = files.file\n }\n\n if (fields?._payload && typeof fields._payload === 'string') {\n data = JSON.parse(fields._payload)\n }\n }\n }\n }\n\n const mutableRequest = request as ReturnType\n if (data) {\n mutableRequest.data = data\n mutableRequest.json = () => Promise.resolve(data)\n }\n if (file) mutableRequest.file = file\n\n return mutableRequest\n}\n"],"names":["nextFileUpload","addDataAndFileToRequest","request","config","payload","data","undefined","file","method","includes","toUpperCase","body","contentType","headers","get","split","bodyByteSize","parseInt","upperByteLimit","upload","limits","fieldSize","fields","json","error","Error","has","files","options","message","_payload","JSON","parse","mutableRequest","Promise","resolve"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,cAAc,QAAQ,8BAA6B;AAK5D;;CAEC,GACD,OAAO,MAAMC,0BAAmD,OAAO,EAAEC,OAAO,EAAE;IAChF,MAAMC,SAASD,QAAQE,OAAO,CAACD,MAAM;IACrC,IAAIE,OAAwCC;IAC5C,IAAIC,OAAmCD;IAEvC,IACEJ,QAAQM,MAAM,IACd;QAAC;QAAS;QAAQ;KAAM,CAACC,QAAQ,CAACP,QAAQM,MAAM,CAACE,WAAW,OAC5DR,QAAQS,IAAI,EACZ;QACA,MAAM,CAACC,YAAY,GAAG,AAACV,CAAAA,QAAQW,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAC,EAAGC,KAAK,CAAC;QAExE,IAAIH,gBAAgB,oBAAoB;YACtC,MAAMI,eAAeC,SAASf,QAAQW,OAAO,CAACC,GAAG,CAAC,qBAAqB,KAAK;YAC5E,MAAMI,iBACJ,OAAOf,OAAOgB,MAAM,EAAEC,QAAQC,cAAc,WACxClB,OAAOgB,MAAM,CAACC,MAAM,CAACE,MAAM,GAC3BhB;YACN,IAAI,AAACY,kBAAkBF,gBAAgBE,kBAAmBA,mBAAmBZ,WAAW;gBACtF,IAAI;oBACFD,OAAO,MAAMH,QAAQqB,IAAI;gBAC3B,EAAE,OAAOC,OAAO;oBACdnB,OAAO,CAAC;gBACV;YACF,OAAO;gBACL,MAAM,IAAIoB,MAAM;YAClB;QACF,OAAO;YACL,IAAIvB,QAAQW,OAAO,CAACa,GAAG,CAAC,qBAAqBxB,QAAQW,OAAO,CAACC,GAAG,CAAC,sBAAsB,KAAK;gBAC1F,MAAM,EAAEU,KAAK,EAAEF,MAAM,EAAEK,KAAK,EAAE,GAAG,MAAM3B,eAAe;oBACpD4B,SAASzB,OAAOgB,MAAM;oBACtBjB,SAASA;gBACX;gBAEA,IAAIsB,OAAO;oBACT,MAAM,IAAIC,MAAMD,MAAMK,OAAO;gBAC/B;gBAEA,IAAIF,OAAOpB,MAAM;oBACfA,OAAOoB,MAAMpB,IAAI;gBACnB;gBAEA,IAAIe,QAAQQ,YAAY,OAAOR,OAAOQ,QAAQ,KAAK,UAAU;oBAC3DzB,OAAO0B,KAAKC,KAAK,CAACV,OAAOQ,QAAQ;gBACnC;YACF;QACF;IACF;IAEA,MAAMG,iBAAiB/B;IACvB,IAAIG,MAAM;QACR4B,eAAe5B,IAAI,GAAGA;QACtB4B,eAAeV,IAAI,GAAG,IAAMW,QAAQC,OAAO,CAAC9B;IAC9C;IACA,IAAIE,MAAM0B,eAAe1B,IAAI,GAAGA;IAEhC,OAAO0B;AACT,EAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { PayloadRequest, PayloadRequestData, PayloadRequestWithData, SanitizedConfig } from 'payload/types';
|
|
2
|
+
/**
|
|
3
|
+
* Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams
|
|
4
|
+
*/
|
|
5
|
+
type Args = {
|
|
6
|
+
request: PayloadRequest & PayloadRequestData;
|
|
7
|
+
};
|
|
8
|
+
export declare function addLocalesToRequestFromData({ request }: Args): PayloadRequestWithData;
|
|
9
|
+
type SanitizeLocalesArgs = {
|
|
10
|
+
fallbackLocale: string;
|
|
11
|
+
locale: string;
|
|
12
|
+
localization: SanitizedConfig['localization'];
|
|
13
|
+
};
|
|
14
|
+
type SanitizeLocalesReturn = {
|
|
15
|
+
fallbackLocale?: string;
|
|
16
|
+
locale?: string;
|
|
17
|
+
};
|
|
18
|
+
export declare const sanitizeLocales: ({ fallbackLocale, locale, localization, }: SanitizeLocalesArgs) => SanitizeLocalesReturn;
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=addLocalesToRequest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addLocalesToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addLocalesToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EAChB,MAAM,eAAe,CAAA;AAEtB;;GAEG;AACH,KAAK,IAAI,GAAG;IACV,OAAO,EAAE,cAAc,GAAG,kBAAkB,CAAA;CAC7C,CAAA;AACD,wBAAgB,2BAA2B,CAAC,EAAE,OAAO,EAAE,EAAE,IAAI,GAAG,sBAAsB,CAmCrF;AAED,KAAK,mBAAmB,GAAG;IACzB,cAAc,EAAE,MAAM,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,YAAY,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;CAC9C,CAAA;AACD,KAAK,qBAAqB,GAAG;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB,CAAA;AACD,eAAO,MAAM,eAAe,8CAIzB,mBAAmB,KAAG,qBAiBxB,CAAA"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export function addLocalesToRequestFromData({ request }) {
|
|
2
|
+
const { data, payload: { config } } = request;
|
|
3
|
+
if (data) {
|
|
4
|
+
let localeOnReq = request.locale;
|
|
5
|
+
let fallbackLocaleOnReq = request.fallbackLocale;
|
|
6
|
+
if (!localeOnReq && data?.locale && typeof data.locale === 'string') {
|
|
7
|
+
localeOnReq = data.locale;
|
|
8
|
+
}
|
|
9
|
+
if (!fallbackLocaleOnReq && data?.['fallback-locale'] && typeof data?.['fallback-locale'] === 'string') {
|
|
10
|
+
fallbackLocaleOnReq = data['fallback-locale'];
|
|
11
|
+
}
|
|
12
|
+
const { fallbackLocale, locale } = sanitizeLocales({
|
|
13
|
+
fallbackLocale: fallbackLocaleOnReq,
|
|
14
|
+
locale: localeOnReq,
|
|
15
|
+
localization: config.localization
|
|
16
|
+
});
|
|
17
|
+
const mutableRequest = request;
|
|
18
|
+
if (locale) mutableRequest.locale = locale;
|
|
19
|
+
if (fallbackLocale) mutableRequest.fallbackLocale = fallbackLocale;
|
|
20
|
+
return mutableRequest;
|
|
21
|
+
}
|
|
22
|
+
return request;
|
|
23
|
+
}
|
|
24
|
+
export const sanitizeLocales = ({ fallbackLocale, locale, localization })=>{
|
|
25
|
+
if (fallbackLocale === 'none') {
|
|
26
|
+
fallbackLocale = 'null';
|
|
27
|
+
} else if (localization && !localization.localeCodes.includes(fallbackLocale)) {
|
|
28
|
+
fallbackLocale = localization.defaultLocale;
|
|
29
|
+
}
|
|
30
|
+
if (locale === '*') {
|
|
31
|
+
locale = 'all';
|
|
32
|
+
} else if (localization && !localization.localeCodes.includes(locale)) {
|
|
33
|
+
locale = localization.defaultLocale;
|
|
34
|
+
}
|
|
35
|
+
return {
|
|
36
|
+
fallbackLocale,
|
|
37
|
+
locale
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
//# sourceMappingURL=addLocalesToRequest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/addLocalesToRequest.ts"],"sourcesContent":["import type {\n PayloadRequest,\n PayloadRequestData,\n PayloadRequestWithData,\n SanitizedConfig,\n} from 'payload/types'\n\n/**\n * Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams\n */\ntype Args = {\n request: PayloadRequest & PayloadRequestData\n}\nexport function addLocalesToRequestFromData({ request }: Args): PayloadRequestWithData {\n const {\n data,\n payload: { config },\n } = request\n\n if (data) {\n let localeOnReq = request.locale\n let fallbackLocaleOnReq = request.fallbackLocale\n\n if (!localeOnReq && data?.locale && typeof data.locale === 'string') {\n localeOnReq = data.locale\n }\n\n if (\n !fallbackLocaleOnReq &&\n data?.['fallback-locale'] &&\n typeof data?.['fallback-locale'] === 'string'\n ) {\n fallbackLocaleOnReq = data['fallback-locale']\n }\n\n const { fallbackLocale, locale } = sanitizeLocales({\n fallbackLocale: fallbackLocaleOnReq,\n locale: localeOnReq,\n localization: config.localization,\n })\n\n const mutableRequest = request\n if (locale) mutableRequest.locale = locale\n if (fallbackLocale) mutableRequest.fallbackLocale = fallbackLocale\n return mutableRequest\n }\n\n return request\n}\n\ntype SanitizeLocalesArgs = {\n fallbackLocale: string\n locale: string\n localization: SanitizedConfig['localization']\n}\ntype SanitizeLocalesReturn = {\n fallbackLocale?: string\n locale?: string\n}\nexport const sanitizeLocales = ({\n fallbackLocale,\n locale,\n localization,\n}: SanitizeLocalesArgs): SanitizeLocalesReturn => {\n if (fallbackLocale === 'none') {\n fallbackLocale = 'null'\n } else if (localization && !localization.localeCodes.includes(fallbackLocale)) {\n fallbackLocale = localization.defaultLocale\n }\n\n if (locale === '*') {\n locale = 'all'\n } else if (localization && !localization.localeCodes.includes(locale)) {\n locale = localization.defaultLocale\n }\n\n return {\n fallbackLocale,\n locale,\n }\n}\n"],"names":["addLocalesToRequestFromData","request","data","payload","config","localeOnReq","locale","fallbackLocaleOnReq","fallbackLocale","sanitizeLocales","localization","mutableRequest","localeCodes","includes","defaultLocale"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAaA,OAAO,SAASA,4BAA4B,EAAEC,OAAO,EAAQ;IAC3D,MAAM,EACJC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACpB,GAAGH;IAEJ,IAAIC,MAAM;QACR,IAAIG,cAAcJ,QAAQK,MAAM;QAChC,IAAIC,sBAAsBN,QAAQO,cAAc;QAEhD,IAAI,CAACH,eAAeH,MAAMI,UAAU,OAAOJ,KAAKI,MAAM,KAAK,UAAU;YACnED,cAAcH,KAAKI,MAAM;QAC3B;QAEA,IACE,CAACC,uBACDL,MAAM,CAAC,kBAAkB,IACzB,OAAOA,MAAM,CAAC,kBAAkB,KAAK,UACrC;YACAK,sBAAsBL,IAAI,CAAC,kBAAkB;QAC/C;QAEA,MAAM,EAAEM,cAAc,EAAEF,MAAM,EAAE,GAAGG,gBAAgB;YACjDD,gBAAgBD;YAChBD,QAAQD;YACRK,cAAcN,OAAOM,YAAY;QACnC;QAEA,MAAMC,iBAAiBV;QACvB,IAAIK,QAAQK,eAAeL,MAAM,GAAGA;QACpC,IAAIE,gBAAgBG,eAAeH,cAAc,GAAGA;QACpD,OAAOG;IACT;IAEA,OAAOV;AACT;AAWA,OAAO,MAAMQ,kBAAkB,CAAC,EAC9BD,cAAc,EACdF,MAAM,EACNI,YAAY,EACQ;IACpB,IAAIF,mBAAmB,QAAQ;QAC7BA,iBAAiB;IACnB,OAAO,IAAIE,gBAAgB,CAACA,aAAaE,WAAW,CAACC,QAAQ,CAACL,iBAAiB;QAC7EA,iBAAiBE,aAAaI,aAAa;IAC7C;IAEA,IAAIR,WAAW,KAAK;QAClBA,SAAS;IACX,OAAO,IAAII,gBAAgB,CAACA,aAAaE,WAAW,CAACC,QAAQ,CAACP,SAAS;QACrEA,SAASI,aAAaI,aAAa;IACrC;IAEA,OAAO;QACLN;QACAF;IACF;AACF,EAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PayloadRequestWithData } from 'payload/types';
|
|
2
2
|
import type { FieldSchemaMap } from './types.js';
|
|
3
|
-
export declare const buildFieldSchemaMap: ({ i18n, payload: { config }, }:
|
|
3
|
+
export declare const buildFieldSchemaMap: ({ i18n, payload: { config }, }: PayloadRequestWithData) => FieldSchemaMap;
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAE3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAIhD,eAAO,MAAM,mBAAmB,mCAG7B,sBAAsB,mBA4BxB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../../src/utilities/buildFieldSchemaMap/index.ts"],"sourcesContent":["import type { PayloadRequestWithData } from 'payload/types'\n\nimport type { FieldSchemaMap } from './types.js'\n\nimport { traverseFields } from './traverseFields.js'\n\nexport const buildFieldSchemaMap = ({\n i18n,\n payload: { config },\n}: PayloadRequestWithData): FieldSchemaMap => {\n const result: FieldSchemaMap = new Map()\n\n const validRelationships = config.collections.map((c) => c.slug) || []\n\n config.collections.forEach((collection) => {\n traverseFields({\n config,\n fields: collection.fields,\n i18n,\n schemaMap: result,\n schemaPath: collection.slug,\n validRelationships,\n })\n })\n\n config.globals.forEach((global) => {\n traverseFields({\n config,\n fields: global.fields,\n i18n,\n schemaMap: result,\n schemaPath: global.slug,\n validRelationships,\n })\n })\n\n return result\n}\n"],"names":["traverseFields","buildFieldSchemaMap","i18n","payload","config","result","Map","validRelationships","collections","map","c","slug","forEach","collection","fields","schemaMap","schemaPath","globals","global"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAIA,SAASA,cAAc,QAAQ,sBAAqB;AAEpD,OAAO,MAAMC,sBAAsB,CAAC,EAClCC,IAAI,EACJC,SAAS,EAAEC,MAAM,EAAE,EACI;IACvB,MAAMC,SAAyB,IAAIC;IAEnC,MAAMC,qBAAqBH,OAAOI,WAAW,CAACC,GAAG,CAAC,CAACC,IAAMA,EAAEC,IAAI,KAAK,EAAE;IAEtEP,OAAOI,WAAW,CAACI,OAAO,CAAC,CAACC;QAC1Bb,eAAe;YACbI;YACAU,QAAQD,WAAWC,MAAM;YACzBZ;YACAa,WAAWV;YACXW,YAAYH,WAAWF,IAAI;YAC3BJ;QACF;IACF;IAEAH,OAAOa,OAAO,CAACL,OAAO,CAAC,CAACM;QACtBlB,eAAe;YACbI;YACAU,QAAQI,OAAOJ,MAAM;YACrBZ;YACAa,WAAWV;YACXW,YAAYE,OAAOP,IAAI;YACvBJ;QACF;IACF;IAEA,OAAOF;AACT,EAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createPayloadRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/createPayloadRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"createPayloadRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/createPayloadRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,cAAc,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAapG,KAAK,IAAI,GAAG;IACV,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,eAAe,CAAA;IAClD,MAAM,CAAC,EAAE;QACP,UAAU,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,eAAO,MAAM,oBAAoB,gDAI9B,IAAI,KAAG,QAAQ,cAAc,CA+E/B,CAAA"}
|
|
@@ -4,39 +4,18 @@ import { parseCookies } from 'payload/auth';
|
|
|
4
4
|
import { getDataLoader } from 'payload/utilities';
|
|
5
5
|
import qs from 'qs';
|
|
6
6
|
import { URL } from 'url';
|
|
7
|
-
import {
|
|
7
|
+
import { sanitizeLocales } from './addLocalesToRequest.js';
|
|
8
8
|
import { getPayloadHMR } from './getPayloadHMR.js';
|
|
9
9
|
import { getRequestLanguage } from './getRequestLanguage.js';
|
|
10
|
-
import { getRequestLocales } from './getRequestLocales.js';
|
|
11
10
|
export const createPayloadRequest = async ({ config: configPromise, params, request })=>{
|
|
12
11
|
const cookies = parseCookies(request.headers);
|
|
13
12
|
const payload = await getPayloadHMR({
|
|
14
13
|
config: configPromise
|
|
15
14
|
});
|
|
16
|
-
const {
|
|
17
|
-
let collection = undefined;
|
|
18
|
-
if (params?.collection && collections?.[params.collection]) {
|
|
19
|
-
collection = collections[params.collection];
|
|
20
|
-
}
|
|
15
|
+
const { config } = payload;
|
|
21
16
|
const urlProperties = new URL(request.url);
|
|
22
17
|
const { pathname, searchParams } = urlProperties;
|
|
23
18
|
const isGraphQL = !config.graphQL.disable && pathname === `${config.routes.api}${config.routes.graphQL}`;
|
|
24
|
-
const { data, file } = await getDataAndFile({
|
|
25
|
-
collection,
|
|
26
|
-
config,
|
|
27
|
-
request
|
|
28
|
-
});
|
|
29
|
-
let requestFallbackLocale;
|
|
30
|
-
let requestLocale;
|
|
31
|
-
if (config.localization) {
|
|
32
|
-
const locales = getRequestLocales({
|
|
33
|
-
data,
|
|
34
|
-
localization: config.localization,
|
|
35
|
-
searchParams
|
|
36
|
-
});
|
|
37
|
-
requestLocale = locales.locale;
|
|
38
|
-
requestFallbackLocale = locales.fallbackLocale;
|
|
39
|
-
}
|
|
40
19
|
const language = getRequestLanguage({
|
|
41
20
|
config,
|
|
42
21
|
cookies,
|
|
@@ -47,16 +26,25 @@ export const createPayloadRequest = async ({ config: configPromise, params, requ
|
|
|
47
26
|
context: 'api',
|
|
48
27
|
language
|
|
49
28
|
});
|
|
29
|
+
let locale;
|
|
30
|
+
let fallbackLocale;
|
|
31
|
+
if (config.localization) {
|
|
32
|
+
const locales = sanitizeLocales({
|
|
33
|
+
fallbackLocale: searchParams.get('fallback-locale'),
|
|
34
|
+
locale: searchParams.get('locale'),
|
|
35
|
+
localization: payload.config.localization
|
|
36
|
+
});
|
|
37
|
+
locale = locales.locale;
|
|
38
|
+
fallbackLocale = locales.fallbackLocale;
|
|
39
|
+
}
|
|
50
40
|
const customRequest = {
|
|
51
41
|
context: {},
|
|
52
|
-
|
|
53
|
-
fallbackLocale: requestFallbackLocale,
|
|
54
|
-
file,
|
|
42
|
+
fallbackLocale,
|
|
55
43
|
hash: urlProperties.hash,
|
|
56
44
|
host: urlProperties.host,
|
|
57
45
|
href: urlProperties.href,
|
|
58
46
|
i18n,
|
|
59
|
-
locale
|
|
47
|
+
locale,
|
|
60
48
|
origin: urlProperties.origin,
|
|
61
49
|
pathname: urlProperties.pathname,
|
|
62
50
|
payload,
|
|
@@ -78,7 +66,6 @@ export const createPayloadRequest = async ({ config: configPromise, params, requ
|
|
|
78
66
|
user: null
|
|
79
67
|
};
|
|
80
68
|
const req = Object.assign(request, customRequest);
|
|
81
|
-
if (data) req.json = ()=>Promise.resolve(data);
|
|
82
69
|
req.payloadDataLoader = getDataLoader(req);
|
|
83
70
|
req.user = await executeAuthStrategies({
|
|
84
71
|
cookies,
|