@payloadcms/next 3.0.0-alpha.64 → 3.0.0-alpha.66

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (157) hide show
  1. package/dist/cjs/withPayload.cjs +2 -1
  2. package/dist/cjs/withPayload.cjs.map +1 -1
  3. package/dist/exports/utilities.d.ts +3 -1
  4. package/dist/exports/utilities.d.ts.map +1 -1
  5. package/dist/exports/utilities.js +3 -1
  6. package/dist/exports/utilities.js.map +1 -1
  7. package/dist/{next-fileupload → fetchAPI-multipart}/fileFactory.d.ts +2 -2
  8. package/dist/fetchAPI-multipart/fileFactory.d.ts.map +1 -0
  9. package/dist/fetchAPI-multipart/fileFactory.js.map +1 -0
  10. package/dist/{next-fileupload → fetchAPI-multipart}/handlers.d.ts +2 -2
  11. package/dist/fetchAPI-multipart/handlers.d.ts.map +1 -0
  12. package/dist/fetchAPI-multipart/handlers.js.map +1 -0
  13. package/dist/{next-fileupload → fetchAPI-multipart}/index.d.ts +8 -8
  14. package/dist/fetchAPI-multipart/index.d.ts.map +1 -0
  15. package/dist/{next-fileupload → fetchAPI-multipart}/index.js +1 -1
  16. package/dist/fetchAPI-multipart/index.js.map +1 -0
  17. package/dist/fetchAPI-multipart/isEligibleRequest.d.ts.map +1 -0
  18. package/dist/fetchAPI-multipart/isEligibleRequest.js.map +1 -0
  19. package/dist/fetchAPI-multipart/processMultipart.d.ts +8 -0
  20. package/dist/fetchAPI-multipart/processMultipart.d.ts.map +1 -0
  21. package/dist/fetchAPI-multipart/processMultipart.js.map +1 -0
  22. package/dist/fetchAPI-multipart/processNested.d.ts.map +1 -0
  23. package/dist/{next-fileupload → fetchAPI-multipart}/processNested.js +2 -1
  24. package/dist/fetchAPI-multipart/processNested.js.map +1 -0
  25. package/dist/fetchAPI-multipart/uploadTimer.d.ts.map +1 -0
  26. package/dist/fetchAPI-multipart/uploadTimer.js.map +1 -0
  27. package/dist/{next-fileupload → fetchAPI-multipart}/utilities.d.ts +4 -4
  28. package/dist/fetchAPI-multipart/utilities.d.ts.map +1 -0
  29. package/dist/fetchAPI-multipart/utilities.js.map +1 -0
  30. package/dist/fetchAPI-stream-file/index.d.ts.map +1 -0
  31. package/dist/fetchAPI-stream-file/index.js.map +1 -0
  32. package/dist/prod/styles.css +1 -1
  33. package/dist/routes/graphql/handler.d.ts.map +1 -1
  34. package/dist/routes/graphql/handler.js +13 -5
  35. package/dist/routes/graphql/handler.js.map +1 -1
  36. package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
  37. package/dist/routes/rest/auth/registerFirstUser.js +0 -9
  38. package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
  39. package/dist/routes/rest/buildFormState.d.ts +3 -3
  40. package/dist/routes/rest/buildFormState.d.ts.map +1 -1
  41. package/dist/routes/rest/buildFormState.js +30 -11
  42. package/dist/routes/rest/buildFormState.js.map +1 -1
  43. package/dist/routes/rest/files/checkFileAccess.d.ts +2 -2
  44. package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
  45. package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
  46. package/dist/routes/rest/files/getFile.d.ts +2 -2
  47. package/dist/routes/rest/files/getFile.d.ts.map +1 -1
  48. package/dist/routes/rest/files/getFile.js +3 -3
  49. package/dist/routes/rest/files/getFile.js.map +1 -1
  50. package/dist/routes/rest/index.d.ts.map +1 -1
  51. package/dist/routes/rest/index.js +275 -210
  52. package/dist/routes/rest/index.js.map +1 -1
  53. package/dist/routes/rest/routeError.d.ts +2 -2
  54. package/dist/routes/rest/routeError.d.ts.map +1 -1
  55. package/dist/routes/rest/routeError.js +7 -7
  56. package/dist/routes/rest/routeError.js.map +1 -1
  57. package/dist/routes/rest/types.d.ts +7 -7
  58. package/dist/routes/rest/types.d.ts.map +1 -1
  59. package/dist/routes/rest/types.js.map +1 -1
  60. package/dist/utilities/addDataAndFileToRequest.d.ts +11 -0
  61. package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -0
  62. package/dist/utilities/addDataAndFileToRequest.js +74 -0
  63. package/dist/utilities/addDataAndFileToRequest.js.map +1 -0
  64. package/dist/utilities/addLocalesToRequest.d.ts +20 -0
  65. package/dist/utilities/addLocalesToRequest.d.ts.map +1 -0
  66. package/dist/utilities/addLocalesToRequest.js +41 -0
  67. package/dist/utilities/addLocalesToRequest.js.map +1 -0
  68. package/dist/utilities/buildFieldSchemaMap/index.d.ts +2 -2
  69. package/dist/utilities/buildFieldSchemaMap/index.d.ts.map +1 -1
  70. package/dist/utilities/buildFieldSchemaMap/index.js.map +1 -1
  71. package/dist/utilities/buildFieldSchemaMap/traverseFields.d.ts.map +1 -1
  72. package/dist/utilities/buildFieldSchemaMap/traverseFields.js +3 -0
  73. package/dist/utilities/buildFieldSchemaMap/traverseFields.js.map +1 -1
  74. package/dist/utilities/createPayloadRequest.d.ts.map +1 -1
  75. package/dist/utilities/createPayloadRequest.js +15 -28
  76. package/dist/utilities/createPayloadRequest.js.map +1 -1
  77. package/dist/utilities/getDataAndFile.d.ts +2 -2
  78. package/dist/utilities/getDataAndFile.d.ts.map +1 -1
  79. package/dist/utilities/getDataAndFile.js +2 -2
  80. package/dist/utilities/getDataAndFile.js.map +1 -1
  81. package/dist/utilities/getPayloadHMR.d.ts +2 -1
  82. package/dist/utilities/getPayloadHMR.d.ts.map +1 -1
  83. package/dist/utilities/getPayloadHMR.js +22 -19
  84. package/dist/utilities/getPayloadHMR.js.map +1 -1
  85. package/dist/utilities/headersWithCors.d.ts +2 -2
  86. package/dist/utilities/headersWithCors.d.ts.map +1 -1
  87. package/dist/utilities/headersWithCors.js +2 -2
  88. package/dist/utilities/headersWithCors.js.map +1 -1
  89. package/dist/utilities/initPage.d.ts.map +1 -1
  90. package/dist/utilities/initPage.js +2 -1
  91. package/dist/utilities/initPage.js.map +1 -1
  92. package/dist/views/Account/index.d.ts.map +1 -1
  93. package/dist/views/Account/index.js +2 -1
  94. package/dist/views/Account/index.js.map +1 -1
  95. package/dist/views/CreateFirstUser/index.client.d.ts +3 -3
  96. package/dist/views/CreateFirstUser/index.client.d.ts.map +1 -1
  97. package/dist/views/CreateFirstUser/index.client.js +48 -6
  98. package/dist/views/CreateFirstUser/index.client.js.map +1 -1
  99. package/dist/views/CreateFirstUser/index.d.ts.map +1 -1
  100. package/dist/views/CreateFirstUser/index.js +9 -46
  101. package/dist/views/CreateFirstUser/index.js.map +1 -1
  102. package/dist/views/CreateFirstUser/index.scss +2 -12
  103. package/dist/views/Document/index.d.ts.map +1 -1
  104. package/dist/views/Document/index.js +2 -1
  105. package/dist/views/Document/index.js.map +1 -1
  106. package/dist/views/Edit/Default/Auth/APIKey.d.ts +1 -0
  107. package/dist/views/Edit/Default/Auth/APIKey.d.ts.map +1 -1
  108. package/dist/views/Edit/Default/Auth/APIKey.js +13 -6
  109. package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
  110. package/dist/views/Edit/Default/Auth/index.js +2 -1
  111. package/dist/views/Edit/Default/Auth/index.js.map +1 -1
  112. package/dist/views/Edit/Default/index.js +1 -1
  113. package/dist/views/Edit/Default/index.js.map +1 -1
  114. package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
  115. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +3 -0
  116. package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
  117. package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
  118. package/dist/views/Login/LoginForm/index.js +6 -0
  119. package/dist/views/Login/LoginForm/index.js.map +1 -1
  120. package/dist/views/Version/Restore/index.d.ts.map +1 -1
  121. package/dist/views/Version/Restore/index.js +11 -8
  122. package/dist/views/Version/Restore/index.js.map +1 -1
  123. package/dist/views/Version/Restore/index.scss +4 -2
  124. package/dist/withPayload.d.ts.map +1 -1
  125. package/dist/withPayload.js +2 -1
  126. package/dist/withPayload.js.map +1 -1
  127. package/package.json +34 -35
  128. package/dist/next-fileupload/fileFactory.d.ts.map +0 -1
  129. package/dist/next-fileupload/fileFactory.js.map +0 -1
  130. package/dist/next-fileupload/handlers.d.ts.map +0 -1
  131. package/dist/next-fileupload/handlers.js.map +0 -1
  132. package/dist/next-fileupload/index.d.ts.map +0 -1
  133. package/dist/next-fileupload/index.js.map +0 -1
  134. package/dist/next-fileupload/isEligibleRequest.d.ts.map +0 -1
  135. package/dist/next-fileupload/isEligibleRequest.js.map +0 -1
  136. package/dist/next-fileupload/processMultipart.d.ts +0 -8
  137. package/dist/next-fileupload/processMultipart.d.ts.map +0 -1
  138. package/dist/next-fileupload/processMultipart.js.map +0 -1
  139. package/dist/next-fileupload/processNested.d.ts.map +0 -1
  140. package/dist/next-fileupload/processNested.js.map +0 -1
  141. package/dist/next-fileupload/uploadTimer.d.ts.map +0 -1
  142. package/dist/next-fileupload/uploadTimer.js.map +0 -1
  143. package/dist/next-fileupload/utilities.d.ts.map +0 -1
  144. package/dist/next-fileupload/utilities.js.map +0 -1
  145. package/dist/next-stream-file/index.d.ts.map +0 -1
  146. package/dist/next-stream-file/index.js.map +0 -1
  147. /package/dist/{next-fileupload → fetchAPI-multipart}/fileFactory.js +0 -0
  148. /package/dist/{next-fileupload → fetchAPI-multipart}/handlers.js +0 -0
  149. /package/dist/{next-fileupload → fetchAPI-multipart}/isEligibleRequest.d.ts +0 -0
  150. /package/dist/{next-fileupload → fetchAPI-multipart}/isEligibleRequest.js +0 -0
  151. /package/dist/{next-fileupload → fetchAPI-multipart}/processMultipart.js +0 -0
  152. /package/dist/{next-fileupload → fetchAPI-multipart}/processNested.d.ts +0 -0
  153. /package/dist/{next-fileupload → fetchAPI-multipart}/uploadTimer.d.ts +0 -0
  154. /package/dist/{next-fileupload → fetchAPI-multipart}/uploadTimer.js +0 -0
  155. /package/dist/{next-fileupload → fetchAPI-multipart}/utilities.js +0 -0
  156. /package/dist/{next-stream-file → fetchAPI-stream-file}/index.d.ts +0 -0
  157. /package/dist/{next-stream-file → fetchAPI-stream-file}/index.js +0 -0
@@ -1,5 +1,7 @@
1
1
  import httpStatus from 'http-status';
2
2
  import { match } from 'path-to-regexp';
3
+ import { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js';
4
+ import { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js';
3
5
  import { createPayloadRequest } from '../../utilities/createPayloadRequest.js';
4
6
  import { headersWithCors } from '../../utilities/headersWithCors.js';
5
7
  import { access } from './auth/access.js';
@@ -117,7 +119,10 @@ const handleCustomEndpoints = ({ endpoints, entitySlug, payloadRequest })=>{
117
119
  }
118
120
  });
119
121
  if (customEndpoint) {
120
- payloadRequest.routeParams = handlerParams;
122
+ payloadRequest.routeParams = {
123
+ ...payloadRequest.routeParams,
124
+ ...handlerParams
125
+ };
121
126
  return customEndpoint.handler(payloadRequest);
122
127
  }
123
128
  }
@@ -150,7 +155,7 @@ export const OPTIONS = (config)=>async (request)=>{
150
155
  return routeError({
151
156
  config,
152
157
  err: error,
153
- req
158
+ req: req || request
154
159
  });
155
160
  }
156
161
  };
@@ -162,9 +167,6 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
162
167
  try {
163
168
  req = await createPayloadRequest({
164
169
  config,
165
- params: {
166
- collection: slug1
167
- },
168
170
  request
169
171
  });
170
172
  const disableEndpoints = endpointsAreDisabled({
@@ -174,6 +176,7 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
174
176
  if (disableEndpoints) return disableEndpoints;
175
177
  collection = req.payload.collections?.[slug1];
176
178
  if (collection) {
179
+ req.routeParams.collection = slug1;
177
180
  const disableEndpoints = endpointsAreDisabled({
178
181
  endpoints: collection.config.endpoints,
179
182
  request
@@ -184,62 +187,72 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
184
187
  entitySlug: slug1,
185
188
  payloadRequest: req
186
189
  });
187
- if (customEndpointResponse) return customEndpointResponse;
188
- switch(slug.length){
189
- case 1:
190
- // /:collection
191
- res = await endpoints.collection.GET.find({
192
- collection,
193
- req
194
- });
195
- break;
196
- case 2:
197
- if (slug2 in endpoints.collection.GET) {
198
- // /:collection/init
199
- // /:collection/me
200
- // /:collection/versions
201
- // /:collection/count
202
- res = await endpoints.collection.GET[slug2]({
203
- collection,
204
- req
205
- });
206
- } else {
207
- // /:collection/:id
208
- res = await endpoints.collection.GET.findByID({
209
- id: slug2,
210
- collection,
211
- req
212
- });
213
- }
214
- break;
215
- case 3:
216
- if (slug2 === 'file') {
217
- // /:collection/file/:filename
218
- res = await endpoints.collection.GET.getFile({
219
- collection,
220
- filename: slug3,
221
- req
222
- });
223
- } else if (slug3 in endpoints.collection.GET) {
224
- // /:collection/:id/preview
225
- res = await endpoints.collection.GET[slug3]({
226
- id: slug2,
227
- collection,
228
- req
229
- });
230
- } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {
231
- // /:collection/access/:id
232
- // /:collection/versions/:id
233
- res = await endpoints.collection.GET[`doc-${slug2}-by-id`]({
234
- id: slug3,
190
+ if (customEndpointResponse) {
191
+ return customEndpointResponse;
192
+ } else {
193
+ const reqWithData = await addDataAndFileToRequest({
194
+ request: req
195
+ });
196
+ const payloadRequest = addLocalesToRequestFromData({
197
+ request: reqWithData
198
+ });
199
+ switch(slug.length){
200
+ case 1:
201
+ // /:collection
202
+ res = await endpoints.collection.GET.find({
235
203
  collection,
236
- req
204
+ req: payloadRequest
237
205
  });
238
- }
239
- break;
206
+ break;
207
+ case 2:
208
+ if (slug2 in endpoints.collection.GET) {
209
+ // /:collection/init
210
+ // /:collection/me
211
+ // /:collection/versions
212
+ // /:collection/count
213
+ res = await endpoints.collection.GET[slug2]({
214
+ collection,
215
+ req: payloadRequest
216
+ });
217
+ } else {
218
+ // /:collection/:id
219
+ res = await endpoints.collection.GET.findByID({
220
+ id: slug2,
221
+ collection,
222
+ req: payloadRequest
223
+ });
224
+ }
225
+ break;
226
+ case 3:
227
+ if (slug2 === 'file') {
228
+ // /:collection/file/:filename
229
+ res = await endpoints.collection.GET.getFile({
230
+ collection,
231
+ filename: slug3,
232
+ req: payloadRequest
233
+ });
234
+ } else if (slug3 in endpoints.collection.GET) {
235
+ // /:collection/:id/preview
236
+ res = await endpoints.collection.GET[slug3]({
237
+ id: slug2,
238
+ collection,
239
+ req: payloadRequest
240
+ });
241
+ } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {
242
+ // /:collection/access/:id
243
+ // /:collection/versions/:id
244
+ res = await endpoints.collection.GET[`doc-${slug2}-by-id`]({
245
+ id: slug3,
246
+ collection,
247
+ req: payloadRequest
248
+ });
249
+ }
250
+ break;
251
+ }
240
252
  }
241
253
  } else if (slug1 === 'globals') {
242
254
  const globalConfig = req.payload.config.globals.find((global)=>global.slug === slug2);
255
+ req.routeParams.global = globalConfig.slug;
243
256
  const disableEndpoints = endpointsAreDisabled({
244
257
  endpoints: globalConfig.endpoints,
245
258
  request
@@ -250,46 +263,61 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
250
263
  entitySlug: `${slug1}/${slug2}`,
251
264
  payloadRequest: req
252
265
  });
253
- if (customEndpointResponse) return customEndpointResponse;
254
- switch(slug.length){
255
- case 2:
256
- // /globals/:slug
257
- res = await endpoints.global.GET.findOne({
258
- globalConfig,
259
- req
260
- });
261
- break;
262
- case 3:
263
- if (slug3 in endpoints.global.GET) {
264
- // /globals/:slug/preview
265
- res = await endpoints.global.GET[slug3]({
266
- globalConfig,
267
- req
268
- });
269
- } else if (`doc-${slug3}` in endpoints.global.GET) {
270
- // /globals/:slug/access
271
- // /globals/:slug/versions
272
- // /globals/:slug/preview
273
- res = await (endpoints.global.GET?.[`doc-${slug3}`])({
266
+ if (customEndpointResponse) {
267
+ return customEndpointResponse;
268
+ } else {
269
+ const reqWithData = await addDataAndFileToRequest({
270
+ request: req
271
+ });
272
+ const payloadRequest = addLocalesToRequestFromData({
273
+ request: reqWithData
274
+ });
275
+ switch(slug.length){
276
+ case 2:
277
+ // /globals/:slug
278
+ res = await endpoints.global.GET.findOne({
274
279
  globalConfig,
275
- req
280
+ req: payloadRequest
276
281
  });
277
- }
278
- break;
279
- case 4:
280
- if (`doc-${slug3}-by-id` in endpoints.global.GET) {
281
- // /globals/:slug/versions/:id
282
- res = await (endpoints.global.GET?.[`doc-${slug3}-by-id`])({
283
- id: slug4,
284
- globalConfig,
285
- req
286
- });
287
- }
288
- break;
282
+ break;
283
+ case 3:
284
+ if (slug3 in endpoints.global.GET) {
285
+ // /globals/:slug/preview
286
+ res = await endpoints.global.GET[slug3]({
287
+ globalConfig,
288
+ req: payloadRequest
289
+ });
290
+ } else if (`doc-${slug3}` in endpoints.global.GET) {
291
+ // /globals/:slug/access
292
+ // /globals/:slug/versions
293
+ // /globals/:slug/preview
294
+ res = await (endpoints.global.GET?.[`doc-${slug3}`])({
295
+ globalConfig,
296
+ req: payloadRequest
297
+ });
298
+ }
299
+ break;
300
+ case 4:
301
+ if (`doc-${slug3}-by-id` in endpoints.global.GET) {
302
+ // /globals/:slug/versions/:id
303
+ res = await (endpoints.global.GET?.[`doc-${slug3}-by-id`])({
304
+ id: slug4,
305
+ globalConfig,
306
+ req: payloadRequest
307
+ });
308
+ }
309
+ break;
310
+ }
289
311
  }
290
312
  } else if (slug.length === 1 && slug1 in endpoints.root.GET) {
313
+ const reqWithData = await addDataAndFileToRequest({
314
+ request: req
315
+ });
316
+ const payloadRequest = addLocalesToRequestFromData({
317
+ request: reqWithData
318
+ });
291
319
  res = await endpoints.root.GET[slug1]({
292
- req
320
+ req: payloadRequest
293
321
  });
294
322
  }
295
323
  if (res instanceof Response) return res;
@@ -308,7 +336,7 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
308
336
  collection,
309
337
  config,
310
338
  err: error,
311
- req
339
+ req: req || request
312
340
  });
313
341
  }
314
342
  };
@@ -320,9 +348,6 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
320
348
  try {
321
349
  req = await createPayloadRequest({
322
350
  config,
323
- params: {
324
- collection: slug1
325
- },
326
351
  request
327
352
  });
328
353
  collection = req.payload.collections?.[slug1];
@@ -332,6 +357,7 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
332
357
  });
333
358
  if (disableEndpoints) return disableEndpoints;
334
359
  if (collection) {
360
+ req.routeParams.collection = slug1;
335
361
  const disableEndpoints = endpointsAreDisabled({
336
362
  endpoints: collection.config.endpoints,
337
363
  request
@@ -342,53 +368,63 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
342
368
  entitySlug: slug1,
343
369
  payloadRequest: req
344
370
  });
345
- if (customEndpointResponse) return customEndpointResponse;
346
- switch(slug.length){
347
- case 1:
348
- // /:collection
349
- res = await endpoints.collection.POST.create({
350
- collection,
351
- req
352
- });
353
- break;
354
- case 2:
355
- if (slug2 in endpoints.collection.POST) {
356
- // /:collection/login
357
- // /:collection/logout
358
- // /:collection/unlock
359
- // /:collection/access
360
- // /:collection/first-register
361
- // /:collection/forgot-password
362
- // /:collection/reset-password
363
- // /:collection/refresh-token
364
- res = await (endpoints.collection.POST?.[slug2])({
365
- collection,
366
- req
367
- });
368
- }
369
- break;
370
- case 3:
371
- if (`doc-${slug2}-by-id` in endpoints.collection.POST) {
372
- // /:collection/access/:id
373
- // /:collection/versions/:id
374
- // /:collection/verify/:token ("doc-verify-by-id" uses id as token internally)
375
- res = await endpoints.collection.POST[`doc-${slug2}-by-id`]({
376
- id: slug3,
371
+ if (customEndpointResponse) {
372
+ return customEndpointResponse;
373
+ } else {
374
+ const reqWithData = await addDataAndFileToRequest({
375
+ request: req
376
+ });
377
+ const payloadRequest = addLocalesToRequestFromData({
378
+ request: reqWithData
379
+ });
380
+ switch(slug.length){
381
+ case 1:
382
+ // /:collection
383
+ res = await endpoints.collection.POST.create({
377
384
  collection,
378
- req
385
+ req: payloadRequest
379
386
  });
380
- } else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {
381
- // /:collection/:id/duplicate
382
- res = await endpoints.collection.POST.duplicate({
383
- id: slug2,
384
- collection,
385
- req
386
- });
387
- }
388
- break;
387
+ break;
388
+ case 2:
389
+ if (slug2 in endpoints.collection.POST) {
390
+ // /:collection/login
391
+ // /:collection/logout
392
+ // /:collection/unlock
393
+ // /:collection/access
394
+ // /:collection/first-register
395
+ // /:collection/forgot-password
396
+ // /:collection/reset-password
397
+ // /:collection/refresh-token
398
+ res = await (endpoints.collection.POST?.[slug2])({
399
+ collection,
400
+ req: payloadRequest
401
+ });
402
+ }
403
+ break;
404
+ case 3:
405
+ if (`doc-${slug2}-by-id` in endpoints.collection.POST) {
406
+ // /:collection/access/:id
407
+ // /:collection/versions/:id
408
+ // /:collection/verify/:token ("doc-verify-by-id" uses id as token internally)
409
+ res = await endpoints.collection.POST[`doc-${slug2}-by-id`]({
410
+ id: slug3,
411
+ collection,
412
+ req: payloadRequest
413
+ });
414
+ } else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {
415
+ // /:collection/:id/duplicate
416
+ res = await endpoints.collection.POST.duplicate({
417
+ id: slug2,
418
+ collection,
419
+ req: payloadRequest
420
+ });
421
+ }
422
+ break;
423
+ }
389
424
  }
390
425
  } else if (slug1 === 'globals' && slug2) {
391
426
  const globalConfig = req.payload.config.globals.find((global)=>global.slug === slug2);
427
+ req.routeParams.global = globalConfig.slug;
392
428
  const disableEndpoints = endpointsAreDisabled({
393
429
  endpoints: globalConfig.endpoints,
394
430
  request
@@ -399,42 +435,57 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
399
435
  entitySlug: `${slug1}/${slug2}`,
400
436
  payloadRequest: req
401
437
  });
402
- if (customEndpointResponse) return customEndpointResponse;
403
- switch(slug.length){
404
- case 2:
405
- // /globals/:slug
406
- res = await endpoints.global.POST.update({
407
- globalConfig,
408
- req
409
- });
410
- break;
411
- case 3:
412
- if (`doc-${slug3}` in endpoints.global.POST) {
413
- // /globals/:slug/access
414
- res = await (endpoints.global.POST?.[`doc-${slug3}`])({
438
+ if (customEndpointResponse) {
439
+ return customEndpointResponse;
440
+ } else {
441
+ const reqWithData = await addDataAndFileToRequest({
442
+ request: req
443
+ });
444
+ const payloadRequest = addLocalesToRequestFromData({
445
+ request: reqWithData
446
+ });
447
+ switch(slug.length){
448
+ case 2:
449
+ // /globals/:slug
450
+ res = await endpoints.global.POST.update({
415
451
  globalConfig,
416
- req
452
+ req: payloadRequest
417
453
  });
418
- }
419
- break;
420
- case 4:
421
- if (`doc-${slug3}-by-id` in endpoints.global.POST) {
422
- // /globals/:slug/versions/:id
423
- res = await (endpoints.global.POST?.[`doc-${slug3}-by-id`])({
424
- id: slug4,
425
- globalConfig,
426
- req
454
+ break;
455
+ case 3:
456
+ if (`doc-${slug3}` in endpoints.global.POST) {
457
+ // /globals/:slug/access
458
+ res = await (endpoints.global.POST?.[`doc-${slug3}`])({
459
+ globalConfig,
460
+ req: payloadRequest
461
+ });
462
+ }
463
+ break;
464
+ case 4:
465
+ if (`doc-${slug3}-by-id` in endpoints.global.POST) {
466
+ // /globals/:slug/versions/:id
467
+ res = await (endpoints.global.POST?.[`doc-${slug3}-by-id`])({
468
+ id: slug4,
469
+ globalConfig,
470
+ req: payloadRequest
471
+ });
472
+ }
473
+ break;
474
+ default:
475
+ res = new Response('Route Not Found', {
476
+ status: 404
427
477
  });
428
- }
429
- break;
430
- default:
431
- res = new Response('Route Not Found', {
432
- status: 404
433
- });
478
+ }
434
479
  }
435
480
  } else if (slug.length === 1 && slug1 in endpoints.root.POST) {
481
+ const reqWithData = await addDataAndFileToRequest({
482
+ request: req
483
+ });
484
+ const payloadRequest = addLocalesToRequestFromData({
485
+ request: reqWithData
486
+ });
436
487
  res = await endpoints.root.POST[slug1]({
437
- req
488
+ req: payloadRequest
438
489
  });
439
490
  }
440
491
  if (res instanceof Response) return res;
@@ -453,7 +504,7 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
453
504
  collection,
454
505
  config,
455
506
  err: error,
456
- req
507
+ req: req || request
457
508
  });
458
509
  }
459
510
  };
@@ -465,9 +516,6 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
465
516
  try {
466
517
  req = await createPayloadRequest({
467
518
  config,
468
- params: {
469
- collection: slug1
470
- },
471
519
  request
472
520
  });
473
521
  collection = req.payload.collections?.[slug1];
@@ -477,6 +525,7 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
477
525
  });
478
526
  if (disableEndpoints) return disableEndpoints;
479
527
  if (collection) {
528
+ req.routeParams.collection = slug1;
480
529
  const disableEndpoints = endpointsAreDisabled({
481
530
  endpoints: collection.config.endpoints,
482
531
  request
@@ -487,23 +536,32 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
487
536
  entitySlug: slug1,
488
537
  payloadRequest: req
489
538
  });
490
- if (customEndpointResponse) return customEndpointResponse;
491
- switch(slug.length){
492
- case 1:
493
- // /:collection
494
- res = await endpoints.collection.DELETE.delete({
495
- collection,
496
- req
497
- });
498
- break;
499
- case 2:
500
- // /:collection/:id
501
- res = await endpoints.collection.DELETE.deleteByID({
502
- id: slug2,
503
- collection,
504
- req
505
- });
506
- break;
539
+ if (customEndpointResponse) {
540
+ return customEndpointResponse;
541
+ } else {
542
+ const reqWithData = await addDataAndFileToRequest({
543
+ request: req
544
+ });
545
+ const payloadRequest = addLocalesToRequestFromData({
546
+ request: reqWithData
547
+ });
548
+ switch(slug.length){
549
+ case 1:
550
+ // /:collection
551
+ res = await endpoints.collection.DELETE.delete({
552
+ collection,
553
+ req: payloadRequest
554
+ });
555
+ break;
556
+ case 2:
557
+ // /:collection/:id
558
+ res = await endpoints.collection.DELETE.deleteByID({
559
+ id: slug2,
560
+ collection,
561
+ req: payloadRequest
562
+ });
563
+ break;
564
+ }
507
565
  }
508
566
  }
509
567
  if (res instanceof Response) return res;
@@ -522,7 +580,7 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
522
580
  collection,
523
581
  config,
524
582
  err: error,
525
- req
583
+ req: req || request
526
584
  });
527
585
  }
528
586
  };
@@ -534,9 +592,6 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
534
592
  try {
535
593
  req = await createPayloadRequest({
536
594
  config,
537
- params: {
538
- collection: slug1
539
- },
540
595
  request
541
596
  });
542
597
  collection = req.payload.collections?.[slug1];
@@ -546,6 +601,7 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
546
601
  });
547
602
  if (disableEndpoints) return disableEndpoints;
548
603
  if (collection) {
604
+ req.routeParams.collection = slug1;
549
605
  const disableEndpoints = endpointsAreDisabled({
550
606
  endpoints: collection.config.endpoints,
551
607
  request
@@ -556,23 +612,32 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
556
612
  entitySlug: slug1,
557
613
  payloadRequest: req
558
614
  });
559
- if (customEndpointResponse) return customEndpointResponse;
560
- switch(slug.length){
561
- case 1:
562
- // /:collection
563
- res = await endpoints.collection.PATCH.update({
564
- collection,
565
- req
566
- });
567
- break;
568
- case 2:
569
- // /:collection/:id
570
- res = await endpoints.collection.PATCH.updateByID({
571
- id: slug2,
572
- collection,
573
- req
574
- });
575
- break;
615
+ if (customEndpointResponse) {
616
+ return customEndpointResponse;
617
+ } else {
618
+ const reqWithData = await addDataAndFileToRequest({
619
+ request: req
620
+ });
621
+ const payloadRequest = addLocalesToRequestFromData({
622
+ request: reqWithData
623
+ });
624
+ switch(slug.length){
625
+ case 1:
626
+ // /:collection
627
+ res = await endpoints.collection.PATCH.update({
628
+ collection,
629
+ req: payloadRequest
630
+ });
631
+ break;
632
+ case 2:
633
+ // /:collection/:id
634
+ res = await endpoints.collection.PATCH.updateByID({
635
+ id: slug2,
636
+ collection,
637
+ req: payloadRequest
638
+ });
639
+ break;
640
+ }
576
641
  }
577
642
  }
578
643
  if (res instanceof Response) return res;
@@ -591,7 +656,7 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
591
656
  collection,
592
657
  config,
593
658
  err: error,
594
- req
659
+ req: req || request
595
660
  });
596
661
  }
597
662
  };