@payloadcms/next 3.0.0-beta.15 → 3.0.0-beta.19
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 +1 -1
- package/dist/exports/utilities.d.ts.map +1 -1
- package/dist/exports/utilities.js +1 -1
- package/dist/exports/utilities.js.map +1 -1
- package/dist/{next-fileupload → fetchAPI-multipart}/fileFactory.d.ts +2 -2
- package/dist/fetchAPI-multipart/fileFactory.d.ts.map +1 -0
- package/dist/fetchAPI-multipart/fileFactory.js.map +1 -0
- package/dist/{next-fileupload → fetchAPI-multipart}/handlers.d.ts +2 -2
- package/dist/fetchAPI-multipart/handlers.d.ts.map +1 -0
- package/dist/fetchAPI-multipart/handlers.js.map +1 -0
- package/dist/{next-fileupload → fetchAPI-multipart}/index.d.ts +8 -8
- package/dist/fetchAPI-multipart/index.d.ts.map +1 -0
- package/dist/{next-fileupload → fetchAPI-multipart}/index.js +1 -1
- package/dist/fetchAPI-multipart/index.js.map +1 -0
- package/dist/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -0
- package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -0
- package/dist/fetchAPI-multipart/processMultipart.d.ts +8 -0
- package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -0
- package/dist/fetchAPI-multipart/processMultipart.js.map +1 -0
- package/dist/fetchAPI-multipart/processNested.d.ts.map +1 -0
- package/dist/{next-fileupload → fetchAPI-multipart}/processNested.js +2 -1
- package/dist/fetchAPI-multipart/processNested.js.map +1 -0
- package/dist/fetchAPI-multipart/uploadTimer.d.ts.map +1 -0
- package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -0
- package/dist/{next-fileupload → fetchAPI-multipart}/utilities.d.ts +4 -4
- package/dist/fetchAPI-multipart/utilities.d.ts.map +1 -0
- package/dist/fetchAPI-multipart/utilities.js.map +1 -0
- package/dist/fetchAPI-stream-file/index.d.ts.map +1 -0
- package/dist/fetchAPI-stream-file/index.js.map +1 -0
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.d.ts.map +1 -1
- package/dist/routes/graphql/handler.js +11 -7
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/routes/graphql/playground.d.ts.map +1 -1
- package/dist/routes/graphql/playground.js +0 -4
- package/dist/routes/graphql/playground.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 +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 +227 -230
- 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 +3 -2
- package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.js +47 -26
- package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
- package/dist/utilities/addLocalesToRequest.d.ts +15 -5
- package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
- package/dist/utilities/addLocalesToRequest.js +24 -15
- package/dist/utilities/addLocalesToRequest.js.map +1 -1
- 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 +16 -6
- 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 +2 -2
- 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 -52
- 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 +10 -6
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +3 -3
- package/dist/views/Edit/Default/Auth/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/dist/views/ResetPassword/index.js +1 -3
- package/dist/views/ResetPassword/index.js.map +1 -1
- package/dist/views/Version/Restore/index.d.ts.map +1 -1
- package/dist/views/Version/Restore/index.js +11 -8
- package/dist/views/Version/Restore/index.js.map +1 -1
- package/dist/views/Version/Restore/index.scss +4 -2
- package/package.json +31 -31
- package/dist/next-fileupload/fileFactory.d.ts.map +0 -1
- package/dist/next-fileupload/fileFactory.js.map +0 -1
- package/dist/next-fileupload/handlers.d.ts.map +0 -1
- package/dist/next-fileupload/handlers.js.map +0 -1
- package/dist/next-fileupload/index.d.ts.map +0 -1
- package/dist/next-fileupload/index.js.map +0 -1
- package/dist/next-fileupload/isEligibleRequest.d.ts.map +0 -1
- package/dist/next-fileupload/isEligibleRequest.js.map +0 -1
- package/dist/next-fileupload/processMultipart.d.ts +0 -8
- package/dist/next-fileupload/processMultipart.d.ts.map +0 -1
- package/dist/next-fileupload/processMultipart.js.map +0 -1
- package/dist/next-fileupload/processNested.d.ts.map +0 -1
- package/dist/next-fileupload/processNested.js.map +0 -1
- package/dist/next-fileupload/uploadTimer.d.ts.map +0 -1
- package/dist/next-fileupload/uploadTimer.js.map +0 -1
- package/dist/next-fileupload/utilities.d.ts.map +0 -1
- package/dist/next-fileupload/utilities.js.map +0 -1
- package/dist/next-stream-file/index.d.ts.map +0 -1
- package/dist/next-stream-file/index.js.map +0 -1
- /package/dist/{next-fileupload → fetchAPI-multipart}/fileFactory.js +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/handlers.js +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/isEligibleRequest.d.ts +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/isEligibleRequest.js +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/processMultipart.js +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/processNested.d.ts +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/uploadTimer.d.ts +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/uploadTimer.js +0 -0
- /package/dist/{next-fileupload → fetchAPI-multipart}/utilities.js +0 -0
- /package/dist/{next-stream-file → fetchAPI-stream-file}/index.d.ts +0 -0
- /package/dist/{next-stream-file → fetchAPI-stream-file}/index.js +0 -0
|
@@ -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 { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequest } 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\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 await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\n }\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) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\n }\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 await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\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) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\n }\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\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\n }\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 await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\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) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\n }\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\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest({ request: req })\n addLocalesToRequest({ request: req })\n }\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","addDataAndFileToRequest","addLocalesToRequest","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 = {\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 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 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","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":"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"}
|
|
@@ -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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import type { PayloadRequest } from 'payload/types';
|
|
1
|
+
import type { PayloadRequest, PayloadRequestData } from 'payload/types';
|
|
2
|
+
type ReturnType = PayloadRequest & PayloadRequestData;
|
|
2
3
|
type AddDataAndFileToRequest = (args: {
|
|
3
4
|
request: PayloadRequest;
|
|
4
|
-
}) => Promise<
|
|
5
|
+
}) => Promise<ReturnType>;
|
|
5
6
|
/**
|
|
6
7
|
* Mutates the Request to contain 'data' and 'file' if present
|
|
7
8
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addDataAndFileToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addDataAndFileToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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;AAWvE,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,uBAgFrC,CAAA"}
|
|
@@ -1,53 +1,74 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { APIError } from 'payload/errors';
|
|
2
|
+
import { fetchAPIFileUpload } from '../fetchAPI-multipart/index.js';
|
|
3
|
+
const KB = 1024;
|
|
4
|
+
const MB = KB * KB;
|
|
2
5
|
/**
|
|
3
6
|
* Mutates the Request to contain 'data' and 'file' if present
|
|
4
7
|
*/ export const addDataAndFileToRequest = async ({ request: incomingRequest })=>{
|
|
5
8
|
const config = incomingRequest.payload.config;
|
|
6
|
-
let data = undefined;
|
|
7
|
-
let file = undefined;
|
|
8
9
|
if (incomingRequest.method && [
|
|
9
10
|
'PATCH',
|
|
10
11
|
'POST',
|
|
11
12
|
'PUT'
|
|
12
13
|
].includes(incomingRequest.method.toUpperCase()) && incomingRequest.body) {
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
const
|
|
14
|
+
const [contentType] = (incomingRequest.headers.get('Content-Type') || '').split(';');
|
|
15
|
+
const mutableRequest = incomingRequest;
|
|
16
|
+
const bodyByteSize = parseInt(incomingRequest.headers.get('Content-Length') || '0', 10);
|
|
16
17
|
if (contentType === 'application/json') {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
let data = {};
|
|
19
|
+
try {
|
|
20
|
+
data = await mutableRequest.json();
|
|
21
|
+
} catch (error) {
|
|
22
|
+
mutableRequest.payload.logger.error(error);
|
|
23
|
+
} finally{
|
|
24
|
+
mutableRequest.data = data;
|
|
25
|
+
mutableRequest.json = ()=>Promise.resolve(data);
|
|
26
|
+
}
|
|
27
|
+
} else if (bodyByteSize && contentType.includes('multipart/')) {
|
|
28
|
+
// body is <= 4MB
|
|
29
|
+
if (bodyByteSize <= 4 * MB) {
|
|
30
|
+
const formData = await mutableRequest.formData();
|
|
31
|
+
mutableRequest.formData = async ()=>Promise.resolve(formData);
|
|
32
|
+
const payloadData = formData.get('_payload');
|
|
33
|
+
if (typeof payloadData === 'string') {
|
|
34
|
+
mutableRequest.data = JSON.parse(payloadData);
|
|
35
|
+
}
|
|
36
|
+
const formFile = formData.get('file');
|
|
37
|
+
if (formFile instanceof Blob) {
|
|
38
|
+
const maxFileSizeLimit = config.upload.limits?.fileSize ?? undefined;
|
|
39
|
+
if (maxFileSizeLimit === undefined || maxFileSizeLimit && formFile.size <= maxFileSizeLimit) {
|
|
40
|
+
const fileBytes = await formFile.arrayBuffer();
|
|
41
|
+
const buffer = Buffer.from(fileBytes);
|
|
42
|
+
mutableRequest.file = {
|
|
43
|
+
name: formFile.name,
|
|
44
|
+
data: buffer,
|
|
45
|
+
mimetype: formFile.type,
|
|
46
|
+
size: formFile.size
|
|
47
|
+
};
|
|
48
|
+
} else if (config.upload?.abortOnLimit) {
|
|
49
|
+
throw new APIError('File size limit has been reached', 413);
|
|
50
|
+
}
|
|
24
51
|
}
|
|
25
52
|
} else {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
} else {
|
|
29
|
-
if (request.headers.has('Content-Length') && request.headers.get('Content-Length') !== '0') {
|
|
30
|
-
const { error, fields, files } = await nextFileUpload({
|
|
53
|
+
// body is > 4MB
|
|
54
|
+
const { error, fields, files } = await fetchAPIFileUpload({
|
|
31
55
|
options: config.upload,
|
|
32
|
-
request
|
|
56
|
+
request: mutableRequest
|
|
33
57
|
});
|
|
34
58
|
if (error) {
|
|
35
59
|
throw new Error(error.message);
|
|
36
60
|
}
|
|
37
61
|
if (files?.file) {
|
|
38
|
-
file = files.file;
|
|
62
|
+
mutableRequest.file = files.file;
|
|
39
63
|
}
|
|
40
64
|
if (fields?._payload && typeof fields._payload === 'string') {
|
|
41
|
-
data = JSON.parse(fields._payload);
|
|
65
|
+
mutableRequest.data = JSON.parse(fields._payload);
|
|
42
66
|
}
|
|
43
67
|
}
|
|
44
68
|
}
|
|
69
|
+
return mutableRequest;
|
|
45
70
|
}
|
|
46
|
-
|
|
47
|
-
incomingRequest.data = data;
|
|
48
|
-
incomingRequest.json = ()=>Promise.resolve(data);
|
|
49
|
-
}
|
|
50
|
-
if (file) incomingRequest.file = file;
|
|
71
|
+
return incomingRequest;
|
|
51
72
|
};
|
|
52
73
|
|
|
53
74
|
//# sourceMappingURL=addDataAndFileToRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"sources":["../../src/utilities/addDataAndFileToRequest.ts"],"sourcesContent":["import type { PayloadRequest, PayloadRequestData } from 'payload/types'\n\nimport { APIError } from 'payload/errors'\n\nimport type { FetchAPIFileUploadOptions } from '../fetchAPI-multipart/index.js'\n\nimport { fetchAPIFileUpload } from '../fetchAPI-multipart/index.js'\n\nconst KB = 1024\nconst MB = KB * KB\n\ntype ReturnType = PayloadRequest & PayloadRequestData\ntype AddDataAndFileToRequest = (args: { request: PayloadRequest }) => Promise<ReturnType>\n\n/**\n * Mutates the Request to contain 'data' and 'file' if present\n */\nexport const addDataAndFileToRequest: AddDataAndFileToRequest = async ({\n request: incomingRequest,\n}) => {\n const config = incomingRequest.payload.config\n\n if (\n incomingRequest.method &&\n ['PATCH', 'POST', 'PUT'].includes(incomingRequest.method.toUpperCase()) &&\n incomingRequest.body\n ) {\n const [contentType] = (incomingRequest.headers.get('Content-Type') || '').split(';')\n const mutableRequest = incomingRequest as ReturnType\n const bodyByteSize = parseInt(incomingRequest.headers.get('Content-Length') || '0', 10)\n\n if (contentType === 'application/json') {\n let data = {}\n try {\n data = await mutableRequest.json()\n } catch (error) {\n mutableRequest.payload.logger.error(error)\n } finally {\n mutableRequest.data = data\n mutableRequest.json = () => Promise.resolve(data)\n }\n } else if (bodyByteSize && contentType.includes('multipart/')) {\n // body is <= 4MB\n if (bodyByteSize <= 4 * MB) {\n const formData = await mutableRequest.formData()\n mutableRequest.formData = async () => Promise.resolve(formData)\n\n const payloadData = formData.get('_payload')\n if (typeof payloadData === 'string') {\n mutableRequest.data = JSON.parse(payloadData)\n }\n\n const formFile = formData.get('file')\n if (formFile instanceof Blob) {\n const maxFileSizeLimit = config.upload.limits?.fileSize ?? undefined\n if (\n maxFileSizeLimit === undefined ||\n (maxFileSizeLimit && formFile.size <= maxFileSizeLimit)\n ) {\n const fileBytes = await formFile.arrayBuffer()\n const buffer = Buffer.from(fileBytes)\n\n mutableRequest.file = {\n name: formFile.name,\n data: buffer,\n mimetype: formFile.type,\n size: formFile.size,\n }\n } else if (config.upload?.abortOnLimit) {\n throw new APIError('File size limit has been reached', 413)\n }\n }\n } else {\n // body is > 4MB\n const { error, fields, files } = await fetchAPIFileUpload({\n options: config.upload as FetchAPIFileUploadOptions,\n request: mutableRequest as Request,\n })\n\n if (error) {\n throw new Error(error.message)\n }\n\n if (files?.file) {\n mutableRequest.file = files.file\n }\n\n if (fields?._payload && typeof fields._payload === 'string') {\n mutableRequest.data = JSON.parse(fields._payload)\n }\n }\n }\n\n return mutableRequest\n }\n\n return incomingRequest\n}\n"],"names":["APIError","fetchAPIFileUpload","KB","MB","addDataAndFileToRequest","request","incomingRequest","config","payload","method","includes","toUpperCase","body","contentType","headers","get","split","mutableRequest","bodyByteSize","parseInt","data","json","error","logger","Promise","resolve","formData","payloadData","JSON","parse","formFile","Blob","maxFileSizeLimit","upload","limits","fileSize","undefined","size","fileBytes","arrayBuffer","buffer","Buffer","from","file","name","mimetype","type","abortOnLimit","fields","files","options","Error","message","_payload"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,SAASA,QAAQ,QAAQ,iBAAgB;AAIzC,SAASC,kBAAkB,QAAQ,iCAAgC;AAEnE,MAAMC,KAAK;AACX,MAAMC,KAAKD,KAAKA;AAKhB;;CAEC,GACD,OAAO,MAAME,0BAAmD,OAAO,EACrEC,SAASC,eAAe,EACzB;IACC,MAAMC,SAASD,gBAAgBE,OAAO,CAACD,MAAM;IAE7C,IACED,gBAAgBG,MAAM,IACtB;QAAC;QAAS;QAAQ;KAAM,CAACC,QAAQ,CAACJ,gBAAgBG,MAAM,CAACE,WAAW,OACpEL,gBAAgBM,IAAI,EACpB;QACA,MAAM,CAACC,YAAY,GAAG,AAACP,CAAAA,gBAAgBQ,OAAO,CAACC,GAAG,CAAC,mBAAmB,EAAC,EAAGC,KAAK,CAAC;QAChF,MAAMC,iBAAiBX;QACvB,MAAMY,eAAeC,SAASb,gBAAgBQ,OAAO,CAACC,GAAG,CAAC,qBAAqB,KAAK;QAEpF,IAAIF,gBAAgB,oBAAoB;YACtC,IAAIO,OAAO,CAAC;YACZ,IAAI;gBACFA,OAAO,MAAMH,eAAeI,IAAI;YAClC,EAAE,OAAOC,OAAO;gBACdL,eAAeT,OAAO,CAACe,MAAM,CAACD,KAAK,CAACA;YACtC,SAAU;gBACRL,eAAeG,IAAI,GAAGA;gBACtBH,eAAeI,IAAI,GAAG,IAAMG,QAAQC,OAAO,CAACL;YAC9C;QACF,OAAO,IAAIF,gBAAgBL,YAAYH,QAAQ,CAAC,eAAe;YAC7D,iBAAiB;YACjB,IAAIQ,gBAAgB,IAAIf,IAAI;gBAC1B,MAAMuB,WAAW,MAAMT,eAAeS,QAAQ;gBAC9CT,eAAeS,QAAQ,GAAG,UAAYF,QAAQC,OAAO,CAACC;gBAEtD,MAAMC,cAAcD,SAASX,GAAG,CAAC;gBACjC,IAAI,OAAOY,gBAAgB,UAAU;oBACnCV,eAAeG,IAAI,GAAGQ,KAAKC,KAAK,CAACF;gBACnC;gBAEA,MAAMG,WAAWJ,SAASX,GAAG,CAAC;gBAC9B,IAAIe,oBAAoBC,MAAM;oBAC5B,MAAMC,mBAAmBzB,OAAO0B,MAAM,CAACC,MAAM,EAAEC,YAAYC;oBAC3D,IACEJ,qBAAqBI,aACpBJ,oBAAoBF,SAASO,IAAI,IAAIL,kBACtC;wBACA,MAAMM,YAAY,MAAMR,SAASS,WAAW;wBAC5C,MAAMC,SAASC,OAAOC,IAAI,CAACJ;wBAE3BrB,eAAe0B,IAAI,GAAG;4BACpBC,MAAMd,SAASc,IAAI;4BACnBxB,MAAMoB;4BACNK,UAAUf,SAASgB,IAAI;4BACvBT,MAAMP,SAASO,IAAI;wBACrB;oBACF,OAAO,IAAI9B,OAAO0B,MAAM,EAAEc,cAAc;wBACtC,MAAM,IAAI/C,SAAS,oCAAoC;oBACzD;gBACF;YACF,OAAO;gBACL,gBAAgB;gBAChB,MAAM,EAAEsB,KAAK,EAAE0B,MAAM,EAAEC,KAAK,EAAE,GAAG,MAAMhD,mBAAmB;oBACxDiD,SAAS3C,OAAO0B,MAAM;oBACtB5B,SAASY;gBACX;gBAEA,IAAIK,OAAO;oBACT,MAAM,IAAI6B,MAAM7B,MAAM8B,OAAO;gBAC/B;gBAEA,IAAIH,OAAON,MAAM;oBACf1B,eAAe0B,IAAI,GAAGM,MAAMN,IAAI;gBAClC;gBAEA,IAAIK,QAAQK,YAAY,OAAOL,OAAOK,QAAQ,KAAK,UAAU;oBAC3DpC,eAAeG,IAAI,GAAGQ,KAAKC,KAAK,CAACmB,OAAOK,QAAQ;gBAClD;YACF;QACF;QAEA,OAAOpC;IACT;IAEA,OAAOX;AACT,EAAC"}
|
|
@@ -1,10 +1,20 @@
|
|
|
1
|
-
import type { PayloadRequest } from 'payload/types';
|
|
2
|
-
type AddLocalesToRequestArgs = {
|
|
3
|
-
request: PayloadRequest;
|
|
4
|
-
};
|
|
1
|
+
import type { PayloadRequest, PayloadRequestData, PayloadRequestWithData, SanitizedConfig } from 'payload/types';
|
|
5
2
|
/**
|
|
6
3
|
* Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams
|
|
7
4
|
*/
|
|
8
|
-
|
|
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;
|
|
9
19
|
export {};
|
|
10
20
|
//# sourceMappingURL=addLocalesToRequest.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"addLocalesToRequest.d.ts","sourceRoot":"","sources":["../../src/utilities/addLocalesToRequest.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
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"}
|
|
@@ -1,20 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
* Mutates the Request to contain 'locale' and 'fallbackLocale' based on data or searchParams
|
|
3
|
-
*/ export function addLocalesToRequest({ request }) {
|
|
1
|
+
export function addLocalesToRequestFromData({ request }) {
|
|
4
2
|
const { data, payload: { config } } = request;
|
|
5
|
-
const { localization } = config;
|
|
6
|
-
const urlProperties = new URL(request.url);
|
|
7
|
-
const { searchParams } = urlProperties;
|
|
8
|
-
let locale = searchParams.get('locale');
|
|
9
|
-
let fallbackLocale = searchParams.get('fallback-locale');
|
|
10
3
|
if (data) {
|
|
11
|
-
|
|
12
|
-
|
|
4
|
+
let localeOnReq = request.locale;
|
|
5
|
+
let fallbackLocaleOnReq = request.fallbackLocale;
|
|
6
|
+
if (!localeOnReq && data?.locale && typeof data.locale === 'string') {
|
|
7
|
+
localeOnReq = data.locale;
|
|
13
8
|
}
|
|
14
|
-
if (data?.['fallback-locale'] && typeof data?.['fallback-locale'] === 'string') {
|
|
15
|
-
|
|
9
|
+
if (!fallbackLocaleOnReq && data?.['fallback-locale'] && typeof data?.['fallback-locale'] === 'string') {
|
|
10
|
+
fallbackLocaleOnReq = data['fallback-locale'];
|
|
16
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;
|
|
17
21
|
}
|
|
22
|
+
return request;
|
|
23
|
+
}
|
|
24
|
+
export const sanitizeLocales = ({ fallbackLocale, locale, localization })=>{
|
|
18
25
|
if (fallbackLocale === 'none') {
|
|
19
26
|
fallbackLocale = 'null';
|
|
20
27
|
} else if (localization && !localization.localeCodes.includes(fallbackLocale)) {
|
|
@@ -25,8 +32,10 @@
|
|
|
25
32
|
} else if (localization && !localization.localeCodes.includes(locale)) {
|
|
26
33
|
locale = localization.defaultLocale;
|
|
27
34
|
}
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
35
|
+
return {
|
|
36
|
+
fallbackLocale,
|
|
37
|
+
locale
|
|
38
|
+
};
|
|
39
|
+
};
|
|
31
40
|
|
|
32
41
|
//# sourceMappingURL=addLocalesToRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/utilities/addLocalesToRequest.ts"],"sourcesContent":["import type {
|
|
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"}
|