@payloadcms/next 3.0.0-beta.56 → 3.0.0-beta.57
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/prod/index.js +2 -2
- package/dist/prod/styles.css +1 -1
- package/dist/routes/graphql/handler.js +8 -12
- package/dist/routes/graphql/handler.js.map +1 -1
- package/dist/routes/rest/auth/forgotPassword.d.ts.map +1 -1
- package/dist/routes/rest/auth/forgotPassword.js +7 -3
- package/dist/routes/rest/auth/forgotPassword.js.map +1 -1
- package/dist/routes/rest/auth/login.d.ts.map +1 -1
- package/dist/routes/rest/auth/login.js +9 -4
- package/dist/routes/rest/auth/login.js.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.d.ts.map +1 -1
- package/dist/routes/rest/auth/registerFirstUser.js +9 -2
- package/dist/routes/rest/auth/registerFirstUser.js.map +1 -1
- package/dist/routes/rest/auth/verifyEmail.js +1 -1
- package/dist/routes/rest/auth/verifyEmail.js.map +1 -1
- package/dist/routes/rest/buildFormState.d.ts +2 -2
- package/dist/routes/rest/buildFormState.d.ts.map +1 -1
- package/dist/routes/rest/buildFormState.js.map +1 -1
- package/dist/routes/rest/files/checkFileAccess.d.ts +2 -2
- package/dist/routes/rest/files/checkFileAccess.d.ts.map +1 -1
- package/dist/routes/rest/files/checkFileAccess.js.map +1 -1
- package/dist/routes/rest/files/getFile.d.ts +2 -2
- package/dist/routes/rest/files/getFile.d.ts.map +1 -1
- package/dist/routes/rest/files/getFile.js.map +1 -1
- package/dist/routes/rest/index.d.ts.map +1 -1
- package/dist/routes/rest/index.js +59 -91
- package/dist/routes/rest/index.js.map +1 -1
- package/dist/routes/rest/og/index.d.ts +2 -2
- package/dist/routes/rest/og/index.d.ts.map +1 -1
- package/dist/routes/rest/og/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 -6
- package/dist/utilities/addDataAndFileToRequest.d.ts.map +1 -1
- package/dist/utilities/addDataAndFileToRequest.js +15 -18
- package/dist/utilities/addDataAndFileToRequest.js.map +1 -1
- package/dist/utilities/addLocalesToRequest.d.ts +2 -5
- package/dist/utilities/addLocalesToRequest.d.ts.map +1 -1
- package/dist/utilities/addLocalesToRequest.js +8 -9
- package/dist/utilities/addLocalesToRequest.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/index.d.ts.map +1 -1
- package/dist/utilities/initPage/index.js.map +1 -1
- package/dist/views/Document/getDocumentData.d.ts +2 -2
- package/dist/views/Document/getDocumentData.d.ts.map +1 -1
- package/dist/views/Document/getDocumentData.js.map +1 -1
- package/dist/views/Edit/Default/Auth/APIKey.js.map +1 -1
- package/dist/views/Edit/Default/Auth/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/index.js +10 -3
- package/dist/views/Edit/Default/Auth/index.js.map +1 -1
- package/dist/views/Edit/Default/Auth/types.d.ts +1 -0
- package/dist/views/Edit/Default/Auth/types.d.ts.map +1 -1
- package/dist/views/Edit/Default/Auth/types.js.map +1 -1
- package/dist/views/Edit/Default/index.d.ts.map +1 -1
- package/dist/views/Edit/Default/index.js +1 -0
- package/dist/views/Edit/Default/index.js.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.d.ts.map +1 -1
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js +34 -6
- package/dist/views/ForgotPassword/ForgotPasswordForm/index.js.map +1 -1
- package/dist/views/Login/LoginForm/index.d.ts.map +1 -1
- package/dist/views/Login/LoginForm/index.js +38 -8
- package/dist/views/Login/LoginForm/index.js.map +1 -1
- package/package.json +7 -7
|
@@ -104,23 +104,23 @@ const endpoints = {
|
|
|
104
104
|
}
|
|
105
105
|
}
|
|
106
106
|
};
|
|
107
|
-
const handleCustomEndpoints = async ({ endpoints, entitySlug,
|
|
107
|
+
const handleCustomEndpoints = async ({ endpoints, entitySlug, req })=>{
|
|
108
108
|
if (endpoints && endpoints.length > 0) {
|
|
109
109
|
let handlerParams = {};
|
|
110
|
-
const { pathname } =
|
|
110
|
+
const { pathname } = req;
|
|
111
111
|
/*
|
|
112
112
|
* This makes sure the next.js basePath property is supported. If basePath is used, payload config.routes.api should include it. This makes all outgoing frontend request
|
|
113
113
|
* target the correct API endpoint starting with basePath, which is good!
|
|
114
114
|
*
|
|
115
115
|
* The incoming request (here) will not include the basePath though, as it's automatically stripped by Next.js. Since we are adding the basePath to the pathPrefix below though
|
|
116
|
-
* (from
|
|
116
|
+
* (from req.payload.config.routes.api) we need to add it to pathname, which does not contain the basePath. Otherwise, no endpoint will be matched if basePath is set.
|
|
117
117
|
*/ let adjustedPathname = pathname;
|
|
118
118
|
if (process.env.NEXT_BASE_PATH) {
|
|
119
119
|
adjustedPathname = process.env.NEXT_BASE_PATH + pathname;
|
|
120
120
|
}
|
|
121
|
-
const pathPrefix =
|
|
121
|
+
const pathPrefix = req.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '');
|
|
122
122
|
const customEndpoint = endpoints.find((endpoint)=>{
|
|
123
|
-
if (endpoint.method ===
|
|
123
|
+
if (endpoint.method === req.method.toLowerCase()) {
|
|
124
124
|
const pathMatchFn = match(`${pathPrefix}${endpoint.path}`, {
|
|
125
125
|
decode: decodeURIComponent
|
|
126
126
|
});
|
|
@@ -132,14 +132,14 @@ const handleCustomEndpoints = async ({ endpoints, entitySlug, payloadRequest })=
|
|
|
132
132
|
}
|
|
133
133
|
});
|
|
134
134
|
if (customEndpoint) {
|
|
135
|
-
|
|
136
|
-
...
|
|
135
|
+
req.routeParams = {
|
|
136
|
+
...req.routeParams,
|
|
137
137
|
...handlerParams
|
|
138
138
|
};
|
|
139
|
-
const res = await customEndpoint.handler(
|
|
139
|
+
const res = await customEndpoint.handler(req);
|
|
140
140
|
if (res instanceof Response) {
|
|
141
|
-
if (
|
|
142
|
-
mergeHeaders(
|
|
141
|
+
if (req.responseHeaders) {
|
|
142
|
+
mergeHeaders(req.responseHeaders, res.headers);
|
|
143
143
|
}
|
|
144
144
|
return res;
|
|
145
145
|
}
|
|
@@ -204,23 +204,19 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
204
204
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
205
205
|
endpoints: collection.config.endpoints,
|
|
206
206
|
entitySlug: slug1,
|
|
207
|
-
|
|
207
|
+
req
|
|
208
208
|
});
|
|
209
209
|
if (customEndpointResponse) {
|
|
210
210
|
return customEndpointResponse;
|
|
211
211
|
} else {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
});
|
|
215
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
216
|
-
request: reqWithData
|
|
217
|
-
});
|
|
212
|
+
await addDataAndFileToRequest(req);
|
|
213
|
+
addLocalesToRequestFromData(req);
|
|
218
214
|
switch(slug.length){
|
|
219
215
|
case 1:
|
|
220
216
|
// /:collection
|
|
221
217
|
res = await endpoints.collection.GET.find({
|
|
222
218
|
collection,
|
|
223
|
-
req
|
|
219
|
+
req
|
|
224
220
|
});
|
|
225
221
|
break;
|
|
226
222
|
case 2:
|
|
@@ -231,14 +227,14 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
231
227
|
// /:collection/count
|
|
232
228
|
res = await endpoints.collection.GET[slug2]({
|
|
233
229
|
collection,
|
|
234
|
-
req
|
|
230
|
+
req
|
|
235
231
|
});
|
|
236
232
|
} else {
|
|
237
233
|
// /:collection/:id
|
|
238
234
|
res = await endpoints.collection.GET.findByID({
|
|
239
235
|
id: slug2,
|
|
240
236
|
collection,
|
|
241
|
-
req
|
|
237
|
+
req
|
|
242
238
|
});
|
|
243
239
|
}
|
|
244
240
|
break;
|
|
@@ -248,14 +244,14 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
248
244
|
res = await endpoints.collection.GET.getFile({
|
|
249
245
|
collection,
|
|
250
246
|
filename: slug3,
|
|
251
|
-
req
|
|
247
|
+
req
|
|
252
248
|
});
|
|
253
249
|
} else if (slug3 in endpoints.collection.GET) {
|
|
254
250
|
// /:collection/:id/preview
|
|
255
251
|
res = await endpoints.collection.GET[slug3]({
|
|
256
252
|
id: slug2,
|
|
257
253
|
collection,
|
|
258
|
-
req
|
|
254
|
+
req
|
|
259
255
|
});
|
|
260
256
|
} else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {
|
|
261
257
|
// /:collection/access/:id
|
|
@@ -263,7 +259,7 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
263
259
|
res = await endpoints.collection.GET[`doc-${slug2}-by-id`]({
|
|
264
260
|
id: slug3,
|
|
265
261
|
collection,
|
|
266
|
-
req
|
|
262
|
+
req
|
|
267
263
|
});
|
|
268
264
|
}
|
|
269
265
|
break;
|
|
@@ -280,23 +276,19 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
280
276
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
281
277
|
endpoints: globalConfig.endpoints,
|
|
282
278
|
entitySlug: `${slug1}/${slug2}`,
|
|
283
|
-
|
|
279
|
+
req
|
|
284
280
|
});
|
|
285
281
|
if (customEndpointResponse) {
|
|
286
282
|
return customEndpointResponse;
|
|
287
283
|
} else {
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
});
|
|
291
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
292
|
-
request: reqWithData
|
|
293
|
-
});
|
|
284
|
+
await addDataAndFileToRequest(req);
|
|
285
|
+
addLocalesToRequestFromData(req);
|
|
294
286
|
switch(slug.length){
|
|
295
287
|
case 2:
|
|
296
288
|
// /globals/:slug
|
|
297
289
|
res = await endpoints.global.GET.findOne({
|
|
298
290
|
globalConfig,
|
|
299
|
-
req
|
|
291
|
+
req
|
|
300
292
|
});
|
|
301
293
|
break;
|
|
302
294
|
case 3:
|
|
@@ -304,7 +296,7 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
304
296
|
// /globals/:slug/preview
|
|
305
297
|
res = await endpoints.global.GET[slug3]({
|
|
306
298
|
globalConfig,
|
|
307
|
-
req
|
|
299
|
+
req
|
|
308
300
|
});
|
|
309
301
|
} else if (`doc-${slug3}` in endpoints.global.GET) {
|
|
310
302
|
// /globals/:slug/access
|
|
@@ -312,7 +304,7 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
312
304
|
// /globals/:slug/preview
|
|
313
305
|
res = await (endpoints.global.GET?.[`doc-${slug3}`])({
|
|
314
306
|
globalConfig,
|
|
315
|
-
req
|
|
307
|
+
req
|
|
316
308
|
});
|
|
317
309
|
}
|
|
318
310
|
break;
|
|
@@ -322,21 +314,17 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
322
314
|
res = await (endpoints.global.GET?.[`doc-${slug3}-by-id`])({
|
|
323
315
|
id: slug4,
|
|
324
316
|
globalConfig,
|
|
325
|
-
req
|
|
317
|
+
req
|
|
326
318
|
});
|
|
327
319
|
}
|
|
328
320
|
break;
|
|
329
321
|
}
|
|
330
322
|
}
|
|
331
323
|
} else if (slug.length === 1 && slug1 in endpoints.root.GET) {
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
});
|
|
335
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
336
|
-
request: reqWithData
|
|
337
|
-
});
|
|
324
|
+
await addDataAndFileToRequest(req);
|
|
325
|
+
addLocalesToRequestFromData(req);
|
|
338
326
|
res = await endpoints.root.GET[slug1]({
|
|
339
|
-
req
|
|
327
|
+
req
|
|
340
328
|
});
|
|
341
329
|
}
|
|
342
330
|
if (res instanceof Response) {
|
|
@@ -348,7 +336,7 @@ export const GET = (config)=>async (request, { params: { slug } })=>{
|
|
|
348
336
|
// root routes
|
|
349
337
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
350
338
|
endpoints: req.payload.config.endpoints,
|
|
351
|
-
|
|
339
|
+
req
|
|
352
340
|
});
|
|
353
341
|
if (customEndpointResponse) return customEndpointResponse;
|
|
354
342
|
return RouteNotFoundResponse({
|
|
@@ -398,23 +386,19 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
398
386
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
399
387
|
endpoints: collection.config.endpoints,
|
|
400
388
|
entitySlug: slug1,
|
|
401
|
-
|
|
389
|
+
req
|
|
402
390
|
});
|
|
403
391
|
if (customEndpointResponse) {
|
|
404
392
|
return customEndpointResponse;
|
|
405
393
|
} else {
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
});
|
|
409
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
410
|
-
request: reqWithData
|
|
411
|
-
});
|
|
394
|
+
await addDataAndFileToRequest(req);
|
|
395
|
+
addLocalesToRequestFromData(req);
|
|
412
396
|
switch(slug.length){
|
|
413
397
|
case 1:
|
|
414
398
|
// /:collection
|
|
415
399
|
res = await endpoints.collection.POST.create({
|
|
416
400
|
collection,
|
|
417
|
-
req
|
|
401
|
+
req
|
|
418
402
|
});
|
|
419
403
|
break;
|
|
420
404
|
case 2:
|
|
@@ -429,7 +413,7 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
429
413
|
// /:collection/refresh-token
|
|
430
414
|
res = await (endpoints.collection.POST?.[slug2])({
|
|
431
415
|
collection,
|
|
432
|
-
req
|
|
416
|
+
req
|
|
433
417
|
});
|
|
434
418
|
}
|
|
435
419
|
break;
|
|
@@ -441,14 +425,14 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
441
425
|
res = await endpoints.collection.POST[`doc-${slug2}-by-id`]({
|
|
442
426
|
id: slug3,
|
|
443
427
|
collection,
|
|
444
|
-
req
|
|
428
|
+
req
|
|
445
429
|
});
|
|
446
430
|
} else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {
|
|
447
431
|
// /:collection/:id/duplicate
|
|
448
432
|
res = await endpoints.collection.POST.duplicate({
|
|
449
433
|
id: slug2,
|
|
450
434
|
collection,
|
|
451
|
-
req
|
|
435
|
+
req
|
|
452
436
|
});
|
|
453
437
|
}
|
|
454
438
|
break;
|
|
@@ -465,23 +449,19 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
465
449
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
466
450
|
endpoints: globalConfig.endpoints,
|
|
467
451
|
entitySlug: `${slug1}/${slug2}`,
|
|
468
|
-
|
|
452
|
+
req
|
|
469
453
|
});
|
|
470
454
|
if (customEndpointResponse) {
|
|
471
455
|
return customEndpointResponse;
|
|
472
456
|
} else {
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
});
|
|
476
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
477
|
-
request: reqWithData
|
|
478
|
-
});
|
|
457
|
+
await addDataAndFileToRequest(req);
|
|
458
|
+
addLocalesToRequestFromData(req);
|
|
479
459
|
switch(slug.length){
|
|
480
460
|
case 2:
|
|
481
461
|
// /globals/:slug
|
|
482
462
|
res = await endpoints.global.POST.update({
|
|
483
463
|
globalConfig,
|
|
484
|
-
req
|
|
464
|
+
req
|
|
485
465
|
});
|
|
486
466
|
break;
|
|
487
467
|
case 3:
|
|
@@ -489,7 +469,7 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
489
469
|
// /globals/:slug/access
|
|
490
470
|
res = await (endpoints.global.POST?.[`doc-${slug3}`])({
|
|
491
471
|
globalConfig,
|
|
492
|
-
req
|
|
472
|
+
req
|
|
493
473
|
});
|
|
494
474
|
}
|
|
495
475
|
break;
|
|
@@ -499,7 +479,7 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
499
479
|
res = await (endpoints.global.POST?.[`doc-${slug3}-by-id`])({
|
|
500
480
|
id: slug4,
|
|
501
481
|
globalConfig,
|
|
502
|
-
req
|
|
482
|
+
req
|
|
503
483
|
});
|
|
504
484
|
}
|
|
505
485
|
break;
|
|
@@ -510,14 +490,10 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
510
490
|
}
|
|
511
491
|
}
|
|
512
492
|
} else if (slug.length === 1 && slug1 in endpoints.root.POST) {
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
});
|
|
516
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
517
|
-
request: reqWithData
|
|
518
|
-
});
|
|
493
|
+
await addDataAndFileToRequest(req);
|
|
494
|
+
addLocalesToRequestFromData(req);
|
|
519
495
|
res = await endpoints.root.POST[slug1]({
|
|
520
|
-
req
|
|
496
|
+
req
|
|
521
497
|
});
|
|
522
498
|
}
|
|
523
499
|
if (res instanceof Response) {
|
|
@@ -529,7 +505,7 @@ export const POST = (config)=>async (request, { params: { slug } })=>{
|
|
|
529
505
|
// root routes
|
|
530
506
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
531
507
|
endpoints: req.payload.config.endpoints,
|
|
532
|
-
|
|
508
|
+
req
|
|
533
509
|
});
|
|
534
510
|
if (customEndpointResponse) return customEndpointResponse;
|
|
535
511
|
return RouteNotFoundResponse({
|
|
@@ -571,23 +547,19 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
|
|
|
571
547
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
572
548
|
endpoints: collection.config.endpoints,
|
|
573
549
|
entitySlug: slug1,
|
|
574
|
-
|
|
550
|
+
req
|
|
575
551
|
});
|
|
576
552
|
if (customEndpointResponse) {
|
|
577
553
|
return customEndpointResponse;
|
|
578
554
|
} else {
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
});
|
|
582
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
583
|
-
request: reqWithData
|
|
584
|
-
});
|
|
555
|
+
await addDataAndFileToRequest(req);
|
|
556
|
+
addLocalesToRequestFromData(req);
|
|
585
557
|
switch(slug.length){
|
|
586
558
|
case 1:
|
|
587
559
|
// /:collection
|
|
588
560
|
res = await endpoints.collection.DELETE.delete({
|
|
589
561
|
collection,
|
|
590
|
-
req
|
|
562
|
+
req
|
|
591
563
|
});
|
|
592
564
|
break;
|
|
593
565
|
case 2:
|
|
@@ -595,7 +567,7 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
|
|
|
595
567
|
res = await endpoints.collection.DELETE.deleteByID({
|
|
596
568
|
id: slug2,
|
|
597
569
|
collection,
|
|
598
|
-
req
|
|
570
|
+
req
|
|
599
571
|
});
|
|
600
572
|
break;
|
|
601
573
|
}
|
|
@@ -610,7 +582,7 @@ export const DELETE = (config)=>async (request, { params: { slug } })=>{
|
|
|
610
582
|
// root routes
|
|
611
583
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
612
584
|
endpoints: req.payload.config.endpoints,
|
|
613
|
-
|
|
585
|
+
req
|
|
614
586
|
});
|
|
615
587
|
if (customEndpointResponse) return customEndpointResponse;
|
|
616
588
|
return RouteNotFoundResponse({
|
|
@@ -652,23 +624,19 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
|
|
|
652
624
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
653
625
|
endpoints: collection.config.endpoints,
|
|
654
626
|
entitySlug: slug1,
|
|
655
|
-
|
|
627
|
+
req
|
|
656
628
|
});
|
|
657
629
|
if (customEndpointResponse) {
|
|
658
630
|
return customEndpointResponse;
|
|
659
631
|
} else {
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
});
|
|
663
|
-
const payloadRequest = addLocalesToRequestFromData({
|
|
664
|
-
request: reqWithData
|
|
665
|
-
});
|
|
632
|
+
await addDataAndFileToRequest(req);
|
|
633
|
+
addLocalesToRequestFromData(req);
|
|
666
634
|
switch(slug.length){
|
|
667
635
|
case 1:
|
|
668
636
|
// /:collection
|
|
669
637
|
res = await endpoints.collection.PATCH.update({
|
|
670
638
|
collection,
|
|
671
|
-
req
|
|
639
|
+
req
|
|
672
640
|
});
|
|
673
641
|
break;
|
|
674
642
|
case 2:
|
|
@@ -676,7 +644,7 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
|
|
|
676
644
|
res = await endpoints.collection.PATCH.updateByID({
|
|
677
645
|
id: slug2,
|
|
678
646
|
collection,
|
|
679
|
-
req
|
|
647
|
+
req
|
|
680
648
|
});
|
|
681
649
|
break;
|
|
682
650
|
}
|
|
@@ -691,7 +659,7 @@ export const PATCH = (config)=>async (request, { params: { slug } })=>{
|
|
|
691
659
|
// root routes
|
|
692
660
|
const customEndpointResponse = await handleCustomEndpoints({
|
|
693
661
|
endpoints: req.payload.config.endpoints,
|
|
694
|
-
|
|
662
|
+
req
|
|
695
663
|
});
|
|
696
664
|
if (customEndpointResponse) return customEndpointResponse;
|
|
697
665
|
return RouteNotFoundResponse({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type {\n Collection,\n Endpoint,\n GlobalConfig,\n PayloadRequest,\n PayloadRequestData,\n SanitizedConfig,\n} from 'payload'\n\nimport httpStatus from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type {\n CollectionRouteHandler,\n CollectionRouteHandlerWithID,\n GlobalRouteHandler,\n GlobalRouteHandlerWithID,\n} from './types.js'\n\nimport { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js'\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { mergeHeaders } from '../../utilities/mergeHeaders.js'\nimport { access } from './auth/access.js'\nimport { forgotPassword } from './auth/forgotPassword.js'\nimport { init } from './auth/init.js'\nimport { login } from './auth/login.js'\nimport { logout } from './auth/logout.js'\nimport { me } from './auth/me.js'\nimport { refresh } from './auth/refresh.js'\nimport { registerFirstUser } from './auth/registerFirstUser.js'\nimport { resetPassword } from './auth/resetPassword.js'\nimport { unlock } from './auth/unlock.js'\nimport { verifyEmail } from './auth/verifyEmail.js'\nimport { buildFormState } from './buildFormState.js'\nimport { endpointsAreDisabled } from './checkEndpoints.js'\nimport { count } from './collections/count.js'\nimport { create } from './collections/create.js'\nimport { deleteDoc } from './collections/delete.js'\nimport { deleteByID } from './collections/deleteByID.js'\nimport { docAccess } from './collections/docAccess.js'\nimport { duplicate } from './collections/duplicate.js'\nimport { find } from './collections/find.js'\nimport { findByID } from './collections/findByID.js'\nimport { findVersionByID } from './collections/findVersionByID.js'\nimport { findVersions } from './collections/findVersions.js'\nimport { preview as previewCollection } from './collections/preview.js'\nimport { restoreVersion } from './collections/restoreVersion.js'\nimport { update } from './collections/update.js'\nimport { updateByID } from './collections/updateByID.js'\nimport { getFile } from './files/getFile.js'\nimport { docAccess as docAccessGlobal } from './globals/docAccess.js'\nimport { findOne } from './globals/findOne.js'\nimport { findVersionByID as findVersionByIdGlobal } from './globals/findVersionByID.js'\nimport { findVersions as findVersionsGlobal } from './globals/findVersions.js'\nimport { preview as previewGlobal } from './globals/preview.js'\nimport { restoreVersion as restoreVersionGlobal } from './globals/restoreVersion.js'\nimport { update as updateGlobal } from './globals/update.js'\nimport { generateOGImage } from './og/index.js'\nimport { routeError } from './routeError.js'\n\nconst endpoints = {\n collection: {\n DELETE: {\n delete: deleteDoc,\n deleteByID,\n },\n GET: {\n count,\n 'doc-access-by-id': docAccess,\n 'doc-versions-by-id': findVersionByID,\n find,\n findByID,\n getFile,\n init,\n me,\n preview: previewCollection,\n versions: findVersions,\n },\n PATCH: {\n update,\n updateByID,\n },\n POST: {\n access: docAccess,\n create,\n 'doc-access-by-id': docAccess,\n 'doc-verify-by-id': verifyEmail,\n 'doc-versions-by-id': restoreVersion,\n duplicate,\n 'first-register': registerFirstUser,\n 'forgot-password': forgotPassword,\n login,\n logout,\n 'refresh-token': refresh,\n 'reset-password': resetPassword,\n unlock,\n },\n },\n global: {\n GET: {\n 'doc-access': docAccessGlobal,\n 'doc-versions': findVersionsGlobal,\n 'doc-versions-by-id': findVersionByIdGlobal,\n findOne,\n preview: previewGlobal,\n },\n POST: {\n 'doc-access': docAccessGlobal,\n 'doc-versions-by-id': restoreVersionGlobal,\n update: updateGlobal,\n },\n },\n root: {\n GET: {\n access,\n og: generateOGImage,\n },\n POST: {\n 'form-state': buildFormState,\n },\n },\n}\n\nconst handleCustomEndpoints = async ({\n endpoints,\n entitySlug,\n payloadRequest,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n payloadRequest: PayloadRequest\n}): Promise<Response> => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = payloadRequest\n\n /*\n * This makes sure the next.js basePath property is supported. If basePath is used, payload config.routes.api should include it. This makes all outgoing frontend request\n * target the correct API endpoint starting with basePath, which is good!\n *\n * The incoming request (here) will not include the basePath though, as it's automatically stripped by Next.js. Since we are adding the basePath to the pathPrefix below though\n * (from payloadRequest.payload.config.routes.api) we need to add it to pathname, which does not contain the basePath. Otherwise, no endpoint will be matched if basePath is set.\n */\n let adjustedPathname = pathname\n\n if (process.env.NEXT_BASE_PATH) {\n adjustedPathname = process.env.NEXT_BASE_PATH + pathname\n }\n\n const pathPrefix =\n payloadRequest.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === payloadRequest.method.toLowerCase()) {\n const pathMatchFn = match(`${pathPrefix}${endpoint.path}`, {\n decode: decodeURIComponent,\n })\n\n const tempParams = pathMatchFn(adjustedPathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n payloadRequest.routeParams = {\n ...payloadRequest.routeParams,\n ...handlerParams,\n }\n const res = await customEndpoint.handler(payloadRequest)\n\n if (res instanceof Response) {\n if (payloadRequest.responseHeaders) {\n mergeHeaders(payloadRequest.responseHeaders, res.headers)\n }\n\n return res\n }\n }\n }\n\n return null\n}\n\nconst RouteNotFoundResponse = ({ slug, req }: { req: PayloadRequest; slug: string[] }) =>\n Response.json(\n {\n message: `Route Not Found: \"${slug.join('/')}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n\nexport const OPTIONS =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n let req: PayloadRequest\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n } catch (error) {\n return routeError({\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const GET =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest | (PayloadRequest & PayloadRequestData)\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n collection = req.payload.collections?.[slug1]\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req: payloadRequest })\n break\n case 2:\n if (slug2 in endpoints.collection.GET) {\n // /:collection/init\n // /:collection/me\n // /:collection/versions\n // /:collection/count\n res = await (endpoints.collection.GET[slug2] as CollectionRouteHandler)({\n collection,\n req: payloadRequest,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n }\n break\n case 3:\n if (slug2 === 'file') {\n // /:collection/file/:filename\n res = await endpoints.collection.GET.getFile({\n collection,\n filename: slug3,\n req: payloadRequest,\n })\n } else if (slug3 in endpoints.collection.GET) {\n // /:collection/:id/preview\n res = await (endpoints.collection.GET[slug3] as CollectionRouteHandlerWithID)({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {\n // /:collection/access/:id\n // /:collection/versions/:id\n res = await (\n endpoints.collection.GET[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req: payloadRequest })\n }\n break\n }\n }\n } else if (slug1 === 'globals') {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req: payloadRequest })\n break\n case 3:\n if (slug3 in endpoints.global.GET) {\n // /globals/:slug/preview\n res = await (endpoints.global.GET[slug3] as GlobalRouteHandler)({\n globalConfig,\n req: payloadRequest,\n })\n } else if (`doc-${slug3}` in endpoints.global.GET) {\n // /globals/:slug/access\n // /globals/:slug/versions\n // /globals/:slug/preview\n res = await (endpoints.global.GET?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req: payloadRequest,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.GET) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.GET?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req: payloadRequest,\n })\n }\n break\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n res = await endpoints.root.GET[slug1]({ req: payloadRequest })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override')\n if (overrideHttpMethod === 'GET') {\n return await GET(config)(request, { params: { slug } })\n }\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req: payloadRequest })\n break\n case 2:\n if (slug2 in endpoints.collection.POST) {\n // /:collection/login\n // /:collection/logout\n // /:collection/unlock\n // /:collection/access\n // /:collection/first-register\n // /:collection/forgot-password\n // /:collection/reset-password\n // /:collection/refresh-token\n\n res = await (endpoints.collection.POST?.[slug2] as CollectionRouteHandler)({\n collection,\n req: payloadRequest,\n })\n }\n break\n case 3:\n if (`doc-${slug2}-by-id` in endpoints.collection.POST) {\n // /:collection/access/:id\n // /:collection/versions/:id\n // /:collection/verify/:token (\"doc-verify-by-id\" uses id as token internally)\n res = await (\n endpoints.collection.POST[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req: payloadRequest })\n } else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {\n // /:collection/:id/duplicate\n res = await endpoints.collection.POST.duplicate({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n }\n break\n }\n }\n } else if (slug1 === 'globals' && slug2) {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req: payloadRequest })\n break\n case 3:\n if (`doc-${slug3}` in endpoints.global.POST) {\n // /globals/:slug/access\n res = await (endpoints.global.POST?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req: payloadRequest,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.POST) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.POST?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req: payloadRequest,\n })\n }\n break\n default:\n res = new Response('Route Not Found', { status: 404 })\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.POST) {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n res = await endpoints.root.POST[slug1]({ req: payloadRequest })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const DELETE =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req: payloadRequest })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const PATCH =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n const reqWithData = await addDataAndFileToRequest({ request: req })\n const payloadRequest = addLocalesToRequestFromData({ request: reqWithData })\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req: payloadRequest })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({\n id: slug2,\n collection,\n req: payloadRequest,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n payloadRequest: req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n"],"names":["httpStatus","match","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","access","forgotPassword","init","login","logout","me","refresh","registerFirstUser","resetPassword","unlock","verifyEmail","buildFormState","endpointsAreDisabled","count","create","deleteDoc","deleteByID","docAccess","duplicate","find","findByID","findVersionByID","findVersions","preview","previewCollection","restoreVersion","update","updateByID","getFile","docAccessGlobal","findOne","findVersionByIdGlobal","findVersionsGlobal","previewGlobal","restoreVersionGlobal","updateGlobal","generateOGImage","routeError","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","og","handleCustomEndpoints","entitySlug","payloadRequest","length","handlerParams","pathname","adjustedPathname","process","env","NEXT_BASE_PATH","pathPrefix","payload","config","routes","api","customEndpoint","endpoint","method","toLowerCase","pathMatchFn","path","decode","decodeURIComponent","tempParams","params","routeParams","res","handler","Response","responseHeaders","headers","RouteNotFoundResponse","slug","req","json","message","join","Headers","status","NOT_FOUND","OPTIONS","request","error","err","slug1","slug2","slug3","slug4","disableEndpoints","collections","customEndpointResponse","reqWithData","id","filename","globalConfig","globals","overrideHttpMethod","get","disableDuplicate"],"mappings":"AASA,OAAOA,gBAAgB,cAAa;AACpC,SAASC,KAAK,QAAQ,iBAAgB;AAStC,SAASC,uBAAuB,QAAQ,6CAA4C;AACpF,SAASC,2BAA2B,QAAQ,yCAAwC;AACpF,SAASC,oBAAoB,QAAQ,0CAAyC;AAC9E,SAASC,eAAe,QAAQ,qCAAoC;AACpE,SAASC,YAAY,QAAQ,kCAAiC;AAC9D,SAASC,MAAM,QAAQ,mBAAkB;AACzC,SAASC,cAAc,QAAQ,2BAA0B;AACzD,SAASC,IAAI,QAAQ,iBAAgB;AACrC,SAASC,KAAK,QAAQ,kBAAiB;AACvC,SAASC,MAAM,QAAQ,mBAAkB;AACzC,SAASC,EAAE,QAAQ,eAAc;AACjC,SAASC,OAAO,QAAQ,oBAAmB;AAC3C,SAASC,iBAAiB,QAAQ,8BAA6B;AAC/D,SAASC,aAAa,QAAQ,0BAAyB;AACvD,SAASC,MAAM,QAAQ,mBAAkB;AACzC,SAASC,WAAW,QAAQ,wBAAuB;AACnD,SAASC,cAAc,QAAQ,sBAAqB;AACpD,SAASC,oBAAoB,QAAQ,sBAAqB;AAC1D,SAASC,KAAK,QAAQ,yBAAwB;AAC9C,SAASC,MAAM,QAAQ,0BAAyB;AAChD,SAASC,SAAS,QAAQ,0BAAyB;AACnD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,SAAS,QAAQ,6BAA4B;AACtD,SAASC,SAAS,QAAQ,6BAA4B;AACtD,SAASC,IAAI,QAAQ,wBAAuB;AAC5C,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,eAAe,QAAQ,mCAAkC;AAClE,SAASC,YAAY,QAAQ,gCAA+B;AAC5D,SAASC,WAAWC,iBAAiB,QAAQ,2BAA0B;AACvE,SAASC,cAAc,QAAQ,kCAAiC;AAChE,SAASC,MAAM,QAAQ,0BAAyB;AAChD,SAASC,UAAU,QAAQ,8BAA6B;AACxD,SAASC,OAAO,QAAQ,qBAAoB;AAC5C,SAASX,aAAaY,eAAe,QAAQ,yBAAwB;AACrE,SAASC,OAAO,QAAQ,uBAAsB;AAC9C,SAAST,mBAAmBU,qBAAqB,QAAQ,+BAA8B;AACvF,SAAST,gBAAgBU,kBAAkB,QAAQ,4BAA2B;AAC9E,SAAST,WAAWU,aAAa,QAAQ,uBAAsB;AAC/D,SAASR,kBAAkBS,oBAAoB,QAAQ,8BAA6B;AACpF,SAASR,UAAUS,YAAY,QAAQ,sBAAqB;AAC5D,SAASC,eAAe,QAAQ,gBAAe;AAC/C,SAASC,UAAU,QAAQ,kBAAiB;AAE5C,MAAMC,YAAY;IAChBC,YAAY;QACVC,QAAQ;YACNC,QAAQ1B;YACRC;QACF;QACA0B,KAAK;YACH7B;YACA,oBAAoBI;YACpB,sBAAsBI;YACtBF;YACAC;YACAQ;YACA1B;YACAG;YACAkB,SAASC;YACTmB,UAAUrB;QACZ;QACAsB,OAAO;YACLlB;YACAC;QACF;QACAkB,MAAM;YACJ7C,QAAQiB;YACRH;YACA,oBAAoBG;YACpB,oBAAoBP;YACpB,sBAAsBe;YACtBP;YACA,kBAAkBX;YAClB,mBAAmBN;YACnBE;YACAC;YACA,iBAAiBE;YACjB,kBAAkBE;YAClBC;QACF;IACF;IACAqC,QAAQ;QACNJ,KAAK;YACH,cAAcb;YACd,gBAAgBG;YAChB,sBAAsBD;YACtBD;YACAP,SAASU;QACX;QACAY,MAAM;YACJ,cAAchB;YACd,sBAAsBK;YACtBR,QAAQS;QACV;IACF;IACAY,MAAM;QACJL,KAAK;YACH1C;YACAgD,IAAIZ;QACN;QACAS,MAAM;YACJ,cAAclC;QAChB;IACF;AACF;AAEA,MAAMsC,wBAAwB,OAAO,EACnCX,SAAS,EACTY,UAAU,EACVC,cAAc,EAKf;IACC,IAAIb,aAAaA,UAAUc,MAAM,GAAG,GAAG;QACrC,IAAIC,gBAAgB,CAAC;QACrB,MAAM,EAAEC,QAAQ,EAAE,GAAGH;QAErB;;;;;;KAMC,GACD,IAAII,mBAAmBD;QAEvB,IAAIE,QAAQC,GAAG,CAACC,cAAc,EAAE;YAC9BH,mBAAmBC,QAAQC,GAAG,CAACC,cAAc,GAAGJ;QAClD;QAEA,MAAMK,aACJR,eAAeS,OAAO,CAACC,MAAM,CAACC,MAAM,CAACC,GAAG,GAAIb,CAAAA,aAAa,CAAC,CAAC,EAAEA,WAAW,CAAC,GAAG,EAAC;QAE/E,MAAMc,iBAAiB1B,UAAUnB,IAAI,CAAC,CAAC8C;YACrC,IAAIA,SAASC,MAAM,KAAKf,eAAee,MAAM,CAACC,WAAW,IAAI;gBAC3D,MAAMC,cAAc1E,MAAM,CAAC,EAAEiE,WAAW,EAAEM,SAASI,IAAI,CAAC,CAAC,EAAE;oBACzDC,QAAQC;gBACV;gBAEA,MAAMC,aAAaJ,YAAYb;gBAC/B,IAAIiB,YAAY;oBACdnB,gBAAgBmB,WAAWC,MAAM;oBACjC,OAAO;gBACT;YACF;QACF;QAEA,IAAIT,gBAAgB;YAClBb,eAAeuB,WAAW,GAAG;gBAC3B,GAAGvB,eAAeuB,WAAW;gBAC7B,GAAGrB,aAAa;YAClB;YACA,MAAMsB,MAAM,MAAMX,eAAeY,OAAO,CAACzB;YAEzC,IAAIwB,eAAeE,UAAU;gBAC3B,IAAI1B,eAAe2B,eAAe,EAAE;oBAClC/E,aAAaoD,eAAe2B,eAAe,EAAEH,IAAII,OAAO;gBAC1D;gBAEA,OAAOJ;YACT;QACF;IACF;IAEA,OAAO;AACT;AAEA,MAAMK,wBAAwB,CAAC,EAAEC,IAAI,EAAEC,GAAG,EAA2C,GACnFL,SAASM,IAAI,CACX;QACEC,SAAS,CAAC,kBAAkB,EAAEH,KAAKI,IAAI,CAAC,KAAK,CAAC,CAAC;IACjD,GACA;QACEN,SAASjF,gBAAgB;YACvBiF,SAAS,IAAIO;YACbJ;QACF;QACAK,QAAQ9F,WAAW+F,SAAS;IAC9B;AAGJ,OAAO,MAAMC,UACX,CAAC5B,SAAuD,OAAO6B;QAC7D,IAAIR;QAEJ,IAAI;YACFA,MAAM,MAAMrF,qBAAqB;gBAC/BgE;gBACA6B;YACF;YAEA,OAAOb,SAASM,IAAI,CAClB,CAAC,GACD;gBACEJ,SAASjF,gBAAgB;oBACvBiF,SAAS,IAAIO;oBACbJ;gBACF;gBACAK,QAAQ;YACV;QAEJ,EAAE,OAAOI,OAAO;YACd,OAAOtD,WAAW;gBAChBwB;gBACA+B,KAAKD;gBACLT,KAAKA,OAAOQ;YACd;QACF;IACF,EAAC;AAEH,OAAO,MAAMhD,MACX,CAACmB,SACD,OAAO6B,SAAkB,EAAEjB,QAAQ,EAAEQ,IAAI,EAAE,EAAkC;QAC3E,MAAM,CAACY,OAAOC,OAAOC,OAAOC,MAAM,GAAGf;QACrC,IAAIC;QACJ,IAAIP;QACJ,IAAIpC;QAEJ,IAAI;YACF2C,MAAM,MAAMrF,qBAAqB;gBAC/BgE;gBACA6B;YACF;YAEA,MAAMO,mBAAmBrF,qBAAqB;gBAC5C0B,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCoD;YACF;YAEA,IAAIO,kBAAkB,OAAOA;YAE7B1D,aAAa2C,IAAItB,OAAO,CAACsC,WAAW,EAAE,CAACL,MAAM;YAE7C,IAAItD,YAAY;gBACd2C,IAAIR,WAAW,CAACnC,UAAU,GAAGsD;gBAC7B,MAAMI,mBAAmBrF,qBAAqB;oBAC5C0B,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCoD;gBACF;gBACA,IAAIO,kBAAkB,OAAOA;gBAE7B,MAAME,yBAAyB,MAAMlD,sBAAsB;oBACzDX,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCY,YAAY2C;oBACZ1C,gBAAgB+B;gBAClB;gBAEA,IAAIiB,wBAAwB;oBAC1B,OAAOA;gBACT,OAAO;oBACL,MAAMC,cAAc,MAAMzG,wBAAwB;wBAAE+F,SAASR;oBAAI;oBACjE,MAAM/B,iBAAiBvD,4BAA4B;wBAAE8F,SAASU;oBAAY;oBAE1E,OAAQnB,KAAK7B,MAAM;wBACjB,KAAK;4BACH,eAAe;4BACfuB,MAAM,MAAMrC,UAAUC,UAAU,CAACG,GAAG,CAACvB,IAAI,CAAC;gCAAEoB;gCAAY2C,KAAK/B;4BAAe;4BAC5E;wBACF,KAAK;4BACH,IAAI2C,SAASxD,UAAUC,UAAU,CAACG,GAAG,EAAE;gCACrC,oBAAoB;gCACpB,kBAAkB;gCAClB,wBAAwB;gCACxB,qBAAqB;gCACrBiC,MAAM,MAAM,AAACrC,UAAUC,UAAU,CAACG,GAAG,CAACoD,MAAM,CAA4B;oCACtEvD;oCACA2C,KAAK/B;gCACP;4BACF,OAAO;gCACL,mBAAmB;gCACnBwB,MAAM,MAAMrC,UAAUC,UAAU,CAACG,GAAG,CAACtB,QAAQ,CAAC;oCAC5CiF,IAAIP;oCACJvD;oCACA2C,KAAK/B;gCACP;4BACF;4BACA;wBACF,KAAK;4BACH,IAAI2C,UAAU,QAAQ;gCACpB,8BAA8B;gCAC9BnB,MAAM,MAAMrC,UAAUC,UAAU,CAACG,GAAG,CAACd,OAAO,CAAC;oCAC3CW;oCACA+D,UAAUP;oCACVb,KAAK/B;gCACP;4BACF,OAAO,IAAI4C,SAASzD,UAAUC,UAAU,CAACG,GAAG,EAAE;gCAC5C,2BAA2B;gCAC3BiC,MAAM,MAAM,AAACrC,UAAUC,UAAU,CAACG,GAAG,CAACqD,MAAM,CAAkC;oCAC5EM,IAAIP;oCACJvD;oCACA2C,KAAK/B;gCACP;4BACF,OAAO,IAAI,CAAC,IAAI,EAAE2C,MAAM,MAAM,CAAC,IAAIxD,UAAUC,UAAU,CAACG,GAAG,EAAE;gCAC3D,0BAA0B;gCAC1B,4BAA4B;gCAC5BiC,MAAM,MAAM,AACVrC,UAAUC,UAAU,CAACG,GAAG,CAAC,CAAC,IAAI,EAAEoD,MAAM,MAAM,CAAC,CAAC,CAC9C;oCAAEO,IAAIN;oCAAOxD;oCAAY2C,KAAK/B;gCAAe;4BACjD;4BACA;oBACJ;gBACF;YACF,OAAO,IAAI0C,UAAU,WAAW;gBAC9B,MAAMU,eAAerB,IAAItB,OAAO,CAACC,MAAM,CAAC2C,OAAO,CAACrF,IAAI,CAAC,CAAC2B,SAAWA,OAAOmC,IAAI,KAAKa;gBACjFZ,IAAIR,WAAW,CAAC5B,MAAM,GAAGyD,aAAatB,IAAI;gBAE1C,MAAMgB,mBAAmBrF,qBAAqB;oBAC5C0B,WAAWiE,aAAajE,SAAS;oBACjCoD;gBACF;gBACA,IAAIO,kBAAkB,OAAOA;gBAE7B,MAAME,yBAAyB,MAAMlD,sBAAsB;oBACzDX,WAAWiE,aAAajE,SAAS;oBACjCY,YAAY,CAAC,EAAE2C,MAAM,CAAC,EAAEC,MAAM,CAAC;oBAC/B3C,gBAAgB+B;gBAClB;gBAEA,IAAIiB,wBAAwB;oBAC1B,OAAOA;gBACT,OAAO;oBACL,MAAMC,cAAc,MAAMzG,wBAAwB;wBAAE+F,SAASR;oBAAI;oBACjE,MAAM/B,iBAAiBvD,4BAA4B;wBAAE8F,SAASU;oBAAY;oBAE1E,OAAQnB,KAAK7B,MAAM;wBACjB,KAAK;4BACH,iBAAiB;4BACjBuB,MAAM,MAAMrC,UAAUQ,MAAM,CAACJ,GAAG,CAACZ,OAAO,CAAC;gCAAEyE;gCAAcrB,KAAK/B;4BAAe;4BAC7E;wBACF,KAAK;4BACH,IAAI4C,SAASzD,UAAUQ,MAAM,CAACJ,GAAG,EAAE;gCACjC,yBAAyB;gCACzBiC,MAAM,MAAM,AAACrC,UAAUQ,MAAM,CAACJ,GAAG,CAACqD,MAAM,CAAwB;oCAC9DQ;oCACArB,KAAK/B;gCACP;4BACF,OAAO,IAAI,CAAC,IAAI,EAAE4C,MAAM,CAAC,IAAIzD,UAAUQ,MAAM,CAACJ,GAAG,EAAE;gCACjD,wBAAwB;gCACxB,0BAA0B;gCAC1B,yBAAyB;gCACzBiC,MAAM,MAAM,AAACrC,CAAAA,UAAUQ,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC,IAAI,EAAEqD,MAAM,CAAC,CAAC,AAAD,EAAyB;oCACzEQ;oCACArB,KAAK/B;gCACP;4BACF;4BACA;wBACF,KAAK;4BACH,IAAI,CAAC,IAAI,EAAE4C,MAAM,MAAM,CAAC,IAAIzD,UAAUQ,MAAM,CAACJ,GAAG,EAAE;gCAChD,8BAA8B;gCAC9BiC,MAAM,MAAM,AACVrC,CAAAA,UAAUQ,MAAM,CAACJ,GAAG,EAAE,CAAC,CAAC,IAAI,EAAEqD,MAAM,MAAM,CAAC,CAAC,AAAD,EAC3C;oCACAM,IAAIL;oCACJO;oCACArB,KAAK/B;gCACP;4BACF;4BACA;oBACJ;gBACF;YACF,OAAO,IAAI8B,KAAK7B,MAAM,KAAK,KAAKyC,SAASvD,UAAUS,IAAI,CAACL,GAAG,EAAE;gBAC3D,MAAM0D,cAAc,MAAMzG,wBAAwB;oBAAE+F,SAASR;gBAAI;gBACjE,MAAM/B,iBAAiBvD,4BAA4B;oBAAE8F,SAASU;gBAAY;gBAC1EzB,MAAM,MAAMrC,UAAUS,IAAI,CAACL,GAAG,CAACmD,MAAM,CAAC;oBAAEX,KAAK/B;gBAAe;YAC9D;YAEA,IAAIwB,eAAeE,UAAU;gBAC3B,IAAIK,IAAIJ,eAAe,EAAE;oBACvB/E,aAAamF,IAAIJ,eAAe,EAAEH,IAAII,OAAO;gBAC/C;gBAEA,OAAOJ;YACT;YAEA,cAAc;YACd,MAAMwB,yBAAyB,MAAMlD,sBAAsB;gBACzDX,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCa,gBAAgB+B;YAClB;YAEA,IAAIiB,wBAAwB,OAAOA;YAEnC,OAAOnB,sBAAsB;gBAC3BC;gBACAC;YACF;QACF,EAAE,OAAOS,OAAO;YACd,OAAOtD,WAAW;gBAChBE;gBACAsB;gBACA+B,KAAKD;gBACLT,KAAKA,OAAOQ;YACd;QACF;IACF,EAAC;AAEH,OAAO,MAAM7C,OACX,CAACgB,SACD,OAAO6B,SAAkB,EAAEjB,QAAQ,EAAEQ,IAAI,EAAE,EAAkC;QAC3E,MAAM,CAACY,OAAOC,OAAOC,OAAOC,MAAM,GAAGf;QACrC,IAAIC;QACJ,IAAIP;QACJ,IAAIpC;QAEJ,MAAMkE,qBAAqBf,QAAQX,OAAO,CAAC2B,GAAG,CAAC;QAC/C,IAAID,uBAAuB,OAAO;YAChC,OAAO,MAAM/D,IAAImB,QAAQ6B,SAAS;gBAAEjB,QAAQ;oBAAEQ;gBAAK;YAAE;QACvD;QAEA,IAAI;YACFC,MAAM,MAAMrF,qBAAqB;gBAC/BgE;gBACA6B;YACF;YAEAnD,aAAa2C,IAAItB,OAAO,CAACsC,WAAW,EAAE,CAACL,MAAM;YAE7C,MAAMI,mBAAmBrF,qBAAqB;gBAC5C0B,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCoD;YACF;YAEA,IAAIO,kBAAkB,OAAOA;YAE7B,IAAI1D,YAAY;gBACd2C,IAAIR,WAAW,CAACnC,UAAU,GAAGsD;gBAC7B,MAAMI,mBAAmBrF,qBAAqB;oBAC5C0B,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCoD;gBACF;gBACA,IAAIO,kBAAkB,OAAOA;gBAE7B,MAAME,yBAAyB,MAAMlD,sBAAsB;oBACzDX,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCY,YAAY2C;oBACZ1C,gBAAgB+B;gBAClB;gBAEA,IAAIiB,wBAAwB;oBAC1B,OAAOA;gBACT,OAAO;oBACL,MAAMC,cAAc,MAAMzG,wBAAwB;wBAAE+F,SAASR;oBAAI;oBACjE,MAAM/B,iBAAiBvD,4BAA4B;wBAAE8F,SAASU;oBAAY;oBAE1E,OAAQnB,KAAK7B,MAAM;wBACjB,KAAK;4BACH,eAAe;4BACfuB,MAAM,MAAMrC,UAAUC,UAAU,CAACM,IAAI,CAAC/B,MAAM,CAAC;gCAAEyB;gCAAY2C,KAAK/B;4BAAe;4BAC/E;wBACF,KAAK;4BACH,IAAI2C,SAASxD,UAAUC,UAAU,CAACM,IAAI,EAAE;gCACtC,qBAAqB;gCACrB,sBAAsB;gCACtB,sBAAsB;gCACtB,sBAAsB;gCACtB,8BAA8B;gCAC9B,+BAA+B;gCAC/B,8BAA8B;gCAC9B,6BAA6B;gCAE7B8B,MAAM,MAAM,AAACrC,CAAAA,UAAUC,UAAU,CAACM,IAAI,EAAE,CAACiD,MAAM,AAAD,EAA6B;oCACzEvD;oCACA2C,KAAK/B;gCACP;4BACF;4BACA;wBACF,KAAK;4BACH,IAAI,CAAC,IAAI,EAAE2C,MAAM,MAAM,CAAC,IAAIxD,UAAUC,UAAU,CAACM,IAAI,EAAE;gCACrD,0BAA0B;gCAC1B,4BAA4B;gCAC5B,8EAA8E;gCAC9E8B,MAAM,MAAM,AACVrC,UAAUC,UAAU,CAACM,IAAI,CAAC,CAAC,IAAI,EAAEiD,MAAM,MAAM,CAAC,CAAC,CAC/C;oCAAEO,IAAIN;oCAAOxD;oCAAY2C,KAAK/B;gCAAe;4BACjD,OAAO,IAAI4C,UAAU,eAAexD,WAAWsB,MAAM,CAAC8C,gBAAgB,KAAK,MAAM;gCAC/E,6BAA6B;gCAC7BhC,MAAM,MAAMrC,UAAUC,UAAU,CAACM,IAAI,CAAC3B,SAAS,CAAC;oCAC9CmF,IAAIP;oCACJvD;oCACA2C,KAAK/B;gCACP;4BACF;4BACA;oBACJ;gBACF;YACF,OAAO,IAAI0C,UAAU,aAAaC,OAAO;gBACvC,MAAMS,eAAerB,IAAItB,OAAO,CAACC,MAAM,CAAC2C,OAAO,CAACrF,IAAI,CAAC,CAAC2B,SAAWA,OAAOmC,IAAI,KAAKa;gBACjFZ,IAAIR,WAAW,CAAC5B,MAAM,GAAGyD,aAAatB,IAAI;gBAE1C,MAAMgB,mBAAmBrF,qBAAqB;oBAC5C0B,WAAWiE,aAAajE,SAAS;oBACjCoD;gBACF;gBACA,IAAIO,kBAAkB,OAAOA;gBAE7B,MAAME,yBAAyB,MAAMlD,sBAAsB;oBACzDX,WAAWiE,aAAajE,SAAS;oBACjCY,YAAY,CAAC,EAAE2C,MAAM,CAAC,EAAEC,MAAM,CAAC;oBAC/B3C,gBAAgB+B;gBAClB;gBAEA,IAAIiB,wBAAwB;oBAC1B,OAAOA;gBACT,OAAO;oBACL,MAAMC,cAAc,MAAMzG,wBAAwB;wBAAE+F,SAASR;oBAAI;oBACjE,MAAM/B,iBAAiBvD,4BAA4B;wBAAE8F,SAASU;oBAAY;oBAC1E,OAAQnB,KAAK7B,MAAM;wBACjB,KAAK;4BACH,iBAAiB;4BACjBuB,MAAM,MAAMrC,UAAUQ,MAAM,CAACD,IAAI,CAACnB,MAAM,CAAC;gCAAE6E;gCAAcrB,KAAK/B;4BAAe;4BAC7E;wBACF,KAAK;4BACH,IAAI,CAAC,IAAI,EAAE4C,MAAM,CAAC,IAAIzD,UAAUQ,MAAM,CAACD,IAAI,EAAE;gCAC3C,wBAAwB;gCACxB8B,MAAM,MAAM,AAACrC,CAAAA,UAAUQ,MAAM,CAACD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAEkD,MAAM,CAAC,CAAC,AAAD,EAAyB;oCAC1EQ;oCACArB,KAAK/B;gCACP;4BACF;4BACA;wBACF,KAAK;4BACH,IAAI,CAAC,IAAI,EAAE4C,MAAM,MAAM,CAAC,IAAIzD,UAAUQ,MAAM,CAACD,IAAI,EAAE;gCACjD,8BAA8B;gCAC9B8B,MAAM,MAAM,AACVrC,CAAAA,UAAUQ,MAAM,CAACD,IAAI,EAAE,CAAC,CAAC,IAAI,EAAEkD,MAAM,MAAM,CAAC,CAAC,AAAD,EAC5C;oCACAM,IAAIL;oCACJO;oCACArB,KAAK/B;gCACP;4BACF;4BACA;wBACF;4BACEwB,MAAM,IAAIE,SAAS,mBAAmB;gCAAEU,QAAQ;4BAAI;oBACxD;gBACF;YACF,OAAO,IAAIN,KAAK7B,MAAM,KAAK,KAAKyC,SAASvD,UAAUS,IAAI,CAACF,IAAI,EAAE;gBAC5D,MAAMuD,cAAc,MAAMzG,wBAAwB;oBAAE+F,SAASR;gBAAI;gBACjE,MAAM/B,iBAAiBvD,4BAA4B;oBAAE8F,SAASU;gBAAY;gBAC1EzB,MAAM,MAAMrC,UAAUS,IAAI,CAACF,IAAI,CAACgD,MAAM,CAAC;oBAAEX,KAAK/B;gBAAe;YAC/D;YAEA,IAAIwB,eAAeE,UAAU;gBAC3B,IAAIK,IAAIJ,eAAe,EAAE;oBACvB/E,aAAamF,IAAIJ,eAAe,EAAEH,IAAII,OAAO;gBAC/C;gBAEA,OAAOJ;YACT;YAEA,cAAc;YACd,MAAMwB,yBAAyB,MAAMlD,sBAAsB;gBACzDX,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCa,gBAAgB+B;YAClB;YAEA,IAAIiB,wBAAwB,OAAOA;YAEnC,OAAOnB,sBAAsB;gBAC3BC;gBACAC;YACF;QACF,EAAE,OAAOS,OAAO;YACd,OAAOtD,WAAW;gBAChBE;gBACAsB;gBACA+B,KAAKD;gBACLT,KAAKA,OAAOQ;YACd;QACF;IACF,EAAC;AAEH,OAAO,MAAMlD,SACX,CAACqB,SACD,OAAO6B,SAAkB,EAAEjB,QAAQ,EAAEQ,IAAI,EAAE,EAAkC;QAC3E,MAAM,CAACY,OAAOC,MAAM,GAAGb;QACvB,IAAIC;QACJ,IAAIP;QACJ,IAAIpC;QAEJ,IAAI;YACF2C,MAAM,MAAMrF,qBAAqB;gBAC/BgE;gBACA6B;YACF;YACAnD,aAAa2C,IAAItB,OAAO,CAACsC,WAAW,EAAE,CAACL,MAAM;YAE7C,MAAMI,mBAAmBrF,qBAAqB;gBAC5C0B,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCoD;YACF;YACA,IAAIO,kBAAkB,OAAOA;YAE7B,IAAI1D,YAAY;gBACd2C,IAAIR,WAAW,CAACnC,UAAU,GAAGsD;gBAE7B,MAAMI,mBAAmBrF,qBAAqB;oBAC5C0B,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCoD;gBACF;gBACA,IAAIO,kBAAkB,OAAOA;gBAE7B,MAAME,yBAAyB,MAAMlD,sBAAsB;oBACzDX,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCY,YAAY2C;oBACZ1C,gBAAgB+B;gBAClB;gBACA,IAAIiB,wBAAwB;oBAC1B,OAAOA;gBACT,OAAO;oBACL,MAAMC,cAAc,MAAMzG,wBAAwB;wBAAE+F,SAASR;oBAAI;oBACjE,MAAM/B,iBAAiBvD,4BAA4B;wBAAE8F,SAASU;oBAAY;oBAE1E,OAAQnB,KAAK7B,MAAM;wBACjB,KAAK;4BACH,eAAe;4BACfuB,MAAM,MAAMrC,UAAUC,UAAU,CAACC,MAAM,CAACC,MAAM,CAAC;gCAAEF;gCAAY2C,KAAK/B;4BAAe;4BACjF;wBACF,KAAK;4BACH,mBAAmB;4BACnBwB,MAAM,MAAMrC,UAAUC,UAAU,CAACC,MAAM,CAACxB,UAAU,CAAC;gCACjDqF,IAAIP;gCACJvD;gCACA2C,KAAK/B;4BACP;4BACA;oBACJ;gBACF;YACF;YAEA,IAAIwB,eAAeE,UAAU;gBAC3B,IAAIK,IAAIJ,eAAe,EAAE;oBACvB/E,aAAamF,IAAIJ,eAAe,EAAEH,IAAII,OAAO;gBAC/C;gBAEA,OAAOJ;YACT;YAEA,cAAc;YACd,MAAMwB,yBAAyB,MAAMlD,sBAAsB;gBACzDX,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCa,gBAAgB+B;YAClB;YAEA,IAAIiB,wBAAwB,OAAOA;YAEnC,OAAOnB,sBAAsB;gBAC3BC;gBACAC;YACF;QACF,EAAE,OAAOS,OAAO;YACd,OAAOtD,WAAW;gBAChBE;gBACAsB;gBACA+B,KAAKD;gBACLT,KAAKA,OAAOQ;YACd;QACF;IACF,EAAC;AAEH,OAAO,MAAM9C,QACX,CAACiB,SACD,OAAO6B,SAAkB,EAAEjB,QAAQ,EAAEQ,IAAI,EAAE,EAAkC;QAC3E,MAAM,CAACY,OAAOC,MAAM,GAAGb;QACvB,IAAIC;QACJ,IAAIP;QACJ,IAAIpC;QAEJ,IAAI;YACF2C,MAAM,MAAMrF,qBAAqB;gBAC/BgE;gBACA6B;YACF;YACAnD,aAAa2C,IAAItB,OAAO,CAACsC,WAAW,EAAE,CAACL,MAAM;YAE7C,MAAMI,mBAAmBrF,qBAAqB;gBAC5C0B,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCoD;YACF;YACA,IAAIO,kBAAkB,OAAOA;YAE7B,IAAI1D,YAAY;gBACd2C,IAAIR,WAAW,CAACnC,UAAU,GAAGsD;gBAE7B,MAAMI,mBAAmBrF,qBAAqB;oBAC5C0B,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCoD;gBACF;gBACA,IAAIO,kBAAkB,OAAOA;gBAE7B,MAAME,yBAAyB,MAAMlD,sBAAsB;oBACzDX,WAAWC,WAAWsB,MAAM,CAACvB,SAAS;oBACtCY,YAAY2C;oBACZ1C,gBAAgB+B;gBAClB;gBAEA,IAAIiB,wBAAwB;oBAC1B,OAAOA;gBACT,OAAO;oBACL,MAAMC,cAAc,MAAMzG,wBAAwB;wBAAE+F,SAASR;oBAAI;oBACjE,MAAM/B,iBAAiBvD,4BAA4B;wBAAE8F,SAASU;oBAAY;oBAE1E,OAAQnB,KAAK7B,MAAM;wBACjB,KAAK;4BACH,eAAe;4BACfuB,MAAM,MAAMrC,UAAUC,UAAU,CAACK,KAAK,CAAClB,MAAM,CAAC;gCAAEa;gCAAY2C,KAAK/B;4BAAe;4BAChF;wBACF,KAAK;4BACH,mBAAmB;4BACnBwB,MAAM,MAAMrC,UAAUC,UAAU,CAACK,KAAK,CAACjB,UAAU,CAAC;gCAChD0E,IAAIP;gCACJvD;gCACA2C,KAAK/B;4BACP;4BACA;oBACJ;gBACF;YACF;YAEA,IAAIwB,eAAeE,UAAU;gBAC3B,IAAIK,IAAIJ,eAAe,EAAE;oBACvB/E,aAAamF,IAAIJ,eAAe,EAAEH,IAAII,OAAO;gBAC/C;gBAEA,OAAOJ;YACT;YAEA,cAAc;YACd,MAAMwB,yBAAyB,MAAMlD,sBAAsB;gBACzDX,WAAW4C,IAAItB,OAAO,CAACC,MAAM,CAACvB,SAAS;gBACvCa,gBAAgB+B;YAClB;YAEA,IAAIiB,wBAAwB,OAAOA;YAEnC,OAAOnB,sBAAsB;gBAC3BC;gBACAC;YACF;QACF,EAAE,OAAOS,OAAO;YACd,OAAOtD,WAAW;gBAChBE;gBACAsB;gBACA+B,KAAKD;gBACLT,KAAKA,OAAOQ;YACd;QACF;IACF,EAAC"}
|
|
1
|
+
{"version":3,"sources":["../../../src/routes/rest/index.ts"],"sourcesContent":["import type { Collection, Endpoint, GlobalConfig, PayloadRequest, SanitizedConfig } from 'payload'\n\nimport httpStatus from 'http-status'\nimport { match } from 'path-to-regexp'\n\nimport type {\n CollectionRouteHandler,\n CollectionRouteHandlerWithID,\n GlobalRouteHandler,\n GlobalRouteHandlerWithID,\n} from './types.js'\n\nimport { addDataAndFileToRequest } from '../../utilities/addDataAndFileToRequest.js'\nimport { addLocalesToRequestFromData } from '../../utilities/addLocalesToRequest.js'\nimport { createPayloadRequest } from '../../utilities/createPayloadRequest.js'\nimport { headersWithCors } from '../../utilities/headersWithCors.js'\nimport { mergeHeaders } from '../../utilities/mergeHeaders.js'\nimport { access } from './auth/access.js'\nimport { forgotPassword } from './auth/forgotPassword.js'\nimport { init } from './auth/init.js'\nimport { login } from './auth/login.js'\nimport { logout } from './auth/logout.js'\nimport { me } from './auth/me.js'\nimport { refresh } from './auth/refresh.js'\nimport { registerFirstUser } from './auth/registerFirstUser.js'\nimport { resetPassword } from './auth/resetPassword.js'\nimport { unlock } from './auth/unlock.js'\nimport { verifyEmail } from './auth/verifyEmail.js'\nimport { buildFormState } from './buildFormState.js'\nimport { endpointsAreDisabled } from './checkEndpoints.js'\nimport { count } from './collections/count.js'\nimport { create } from './collections/create.js'\nimport { deleteDoc } from './collections/delete.js'\nimport { deleteByID } from './collections/deleteByID.js'\nimport { docAccess } from './collections/docAccess.js'\nimport { duplicate } from './collections/duplicate.js'\nimport { find } from './collections/find.js'\nimport { findByID } from './collections/findByID.js'\nimport { findVersionByID } from './collections/findVersionByID.js'\nimport { findVersions } from './collections/findVersions.js'\nimport { preview as previewCollection } from './collections/preview.js'\nimport { restoreVersion } from './collections/restoreVersion.js'\nimport { update } from './collections/update.js'\nimport { updateByID } from './collections/updateByID.js'\nimport { getFile } from './files/getFile.js'\nimport { docAccess as docAccessGlobal } from './globals/docAccess.js'\nimport { findOne } from './globals/findOne.js'\nimport { findVersionByID as findVersionByIdGlobal } from './globals/findVersionByID.js'\nimport { findVersions as findVersionsGlobal } from './globals/findVersions.js'\nimport { preview as previewGlobal } from './globals/preview.js'\nimport { restoreVersion as restoreVersionGlobal } from './globals/restoreVersion.js'\nimport { update as updateGlobal } from './globals/update.js'\nimport { generateOGImage } from './og/index.js'\nimport { routeError } from './routeError.js'\n\nconst endpoints = {\n collection: {\n DELETE: {\n delete: deleteDoc,\n deleteByID,\n },\n GET: {\n count,\n 'doc-access-by-id': docAccess,\n 'doc-versions-by-id': findVersionByID,\n find,\n findByID,\n getFile,\n init,\n me,\n preview: previewCollection,\n versions: findVersions,\n },\n PATCH: {\n update,\n updateByID,\n },\n POST: {\n access: docAccess,\n create,\n 'doc-access-by-id': docAccess,\n 'doc-verify-by-id': verifyEmail,\n 'doc-versions-by-id': restoreVersion,\n duplicate,\n 'first-register': registerFirstUser,\n 'forgot-password': forgotPassword,\n login,\n logout,\n 'refresh-token': refresh,\n 'reset-password': resetPassword,\n unlock,\n },\n },\n global: {\n GET: {\n 'doc-access': docAccessGlobal,\n 'doc-versions': findVersionsGlobal,\n 'doc-versions-by-id': findVersionByIdGlobal,\n findOne,\n preview: previewGlobal,\n },\n POST: {\n 'doc-access': docAccessGlobal,\n 'doc-versions-by-id': restoreVersionGlobal,\n update: updateGlobal,\n },\n },\n root: {\n GET: {\n access,\n og: generateOGImage,\n },\n POST: {\n 'form-state': buildFormState,\n },\n },\n}\n\nconst handleCustomEndpoints = async ({\n endpoints,\n entitySlug,\n req,\n}: {\n endpoints: Endpoint[] | GlobalConfig['endpoints']\n entitySlug?: string\n req: PayloadRequest\n}): Promise<Response> => {\n if (endpoints && endpoints.length > 0) {\n let handlerParams = {}\n const { pathname } = req\n\n /*\n * This makes sure the next.js basePath property is supported. If basePath is used, payload config.routes.api should include it. This makes all outgoing frontend request\n * target the correct API endpoint starting with basePath, which is good!\n *\n * The incoming request (here) will not include the basePath though, as it's automatically stripped by Next.js. Since we are adding the basePath to the pathPrefix below though\n * (from req.payload.config.routes.api) we need to add it to pathname, which does not contain the basePath. Otherwise, no endpoint will be matched if basePath is set.\n */\n let adjustedPathname = pathname\n\n if (process.env.NEXT_BASE_PATH) {\n adjustedPathname = process.env.NEXT_BASE_PATH + pathname\n }\n\n const pathPrefix = req.payload.config.routes.api + (entitySlug ? `/${entitySlug}` : '')\n\n const customEndpoint = endpoints.find((endpoint) => {\n if (endpoint.method === req.method.toLowerCase()) {\n const pathMatchFn = match(`${pathPrefix}${endpoint.path}`, {\n decode: decodeURIComponent,\n })\n\n const tempParams = pathMatchFn(adjustedPathname)\n if (tempParams) {\n handlerParams = tempParams.params\n return true\n }\n }\n })\n\n if (customEndpoint) {\n req.routeParams = {\n ...req.routeParams,\n ...handlerParams,\n }\n const res = await customEndpoint.handler(req)\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n }\n }\n\n return null\n}\n\nconst RouteNotFoundResponse = ({ slug, req }: { req: PayloadRequest; slug: string[] }) =>\n Response.json(\n {\n message: `Route Not Found: \"${slug.join('/')}\"`,\n },\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: httpStatus.NOT_FOUND,\n },\n )\n\nexport const OPTIONS =\n (config: Promise<SanitizedConfig> | SanitizedConfig) => async (request: Request) => {\n let req: PayloadRequest\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n return Response.json(\n {},\n {\n headers: headersWithCors({\n headers: new Headers(),\n req,\n }),\n status: 200,\n },\n )\n } catch (error) {\n return routeError({\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const GET =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n collection = req.payload.collections?.[slug1]\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.GET.find({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.GET) {\n // /:collection/init\n // /:collection/me\n // /:collection/versions\n // /:collection/count\n res = await (endpoints.collection.GET[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n } else {\n // /:collection/:id\n res = await endpoints.collection.GET.findByID({\n id: slug2,\n collection,\n req,\n })\n }\n break\n case 3:\n if (slug2 === 'file') {\n // /:collection/file/:filename\n res = await endpoints.collection.GET.getFile({\n collection,\n filename: slug3,\n req,\n })\n } else if (slug3 in endpoints.collection.GET) {\n // /:collection/:id/preview\n res = await (endpoints.collection.GET[slug3] as CollectionRouteHandlerWithID)({\n id: slug2,\n collection,\n req,\n })\n } else if (`doc-${slug2}-by-id` in endpoints.collection.GET) {\n // /:collection/access/:id\n // /:collection/versions/:id\n res = await (\n endpoints.collection.GET[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n }\n break\n }\n }\n } else if (slug1 === 'globals') {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.GET.findOne({ globalConfig, req })\n break\n case 3:\n if (slug3 in endpoints.global.GET) {\n // /globals/:slug/preview\n res = await (endpoints.global.GET[slug3] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n } else if (`doc-${slug3}` in endpoints.global.GET) {\n // /globals/:slug/access\n // /globals/:slug/versions\n // /globals/:slug/preview\n res = await (endpoints.global.GET?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.GET) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.GET?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.GET) {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n res = await endpoints.root.GET[slug1]({ req })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const POST =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2, slug3, slug4] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n const overrideHttpMethod = request.headers.get('X-HTTP-Method-Override')\n if (overrideHttpMethod === 'GET') {\n return await GET(config)(request, { params: { slug } })\n }\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.POST.create({ collection, req })\n break\n case 2:\n if (slug2 in endpoints.collection.POST) {\n // /:collection/login\n // /:collection/logout\n // /:collection/unlock\n // /:collection/access\n // /:collection/first-register\n // /:collection/forgot-password\n // /:collection/reset-password\n // /:collection/refresh-token\n\n res = await (endpoints.collection.POST?.[slug2] as CollectionRouteHandler)({\n collection,\n req,\n })\n }\n break\n case 3:\n if (`doc-${slug2}-by-id` in endpoints.collection.POST) {\n // /:collection/access/:id\n // /:collection/versions/:id\n // /:collection/verify/:token (\"doc-verify-by-id\" uses id as token internally)\n res = await (\n endpoints.collection.POST[`doc-${slug2}-by-id`] as CollectionRouteHandlerWithID\n )({ id: slug3, collection, req })\n } else if (slug3 === 'duplicate' && collection.config.disableDuplicate !== true) {\n // /:collection/:id/duplicate\n res = await endpoints.collection.POST.duplicate({\n id: slug2,\n collection,\n req,\n })\n }\n break\n }\n }\n } else if (slug1 === 'globals' && slug2) {\n const globalConfig = req.payload.config.globals.find((global) => global.slug === slug2)\n req.routeParams.global = globalConfig.slug\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: globalConfig.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: globalConfig.endpoints,\n entitySlug: `${slug1}/${slug2}`,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n switch (slug.length) {\n case 2:\n // /globals/:slug\n res = await endpoints.global.POST.update({ globalConfig, req })\n break\n case 3:\n if (`doc-${slug3}` in endpoints.global.POST) {\n // /globals/:slug/access\n res = await (endpoints.global.POST?.[`doc-${slug3}`] as GlobalRouteHandler)({\n globalConfig,\n req,\n })\n }\n break\n case 4:\n if (`doc-${slug3}-by-id` in endpoints.global.POST) {\n // /globals/:slug/versions/:id\n res = await (\n endpoints.global.POST?.[`doc-${slug3}-by-id`] as GlobalRouteHandlerWithID\n )({\n id: slug4,\n globalConfig,\n req,\n })\n }\n break\n default:\n res = new Response('Route Not Found', { status: 404 })\n }\n }\n } else if (slug.length === 1 && slug1 in endpoints.root.POST) {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n res = await endpoints.root.POST[slug1]({ req })\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const DELETE =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.DELETE.delete({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.DELETE.deleteByID({\n id: slug2,\n collection,\n req,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n\nexport const PATCH =\n (config: Promise<SanitizedConfig> | SanitizedConfig) =>\n async (request: Request, { params: { slug } }: { params: { slug: string[] } }) => {\n const [slug1, slug2] = slug\n let req: PayloadRequest\n let res: Response\n let collection: Collection\n\n try {\n req = await createPayloadRequest({\n config,\n request,\n })\n collection = req.payload.collections?.[slug1]\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: req.payload.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n if (collection) {\n req.routeParams.collection = slug1\n\n const disableEndpoints = endpointsAreDisabled({\n endpoints: collection.config.endpoints,\n request,\n })\n if (disableEndpoints) return disableEndpoints\n\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: collection.config.endpoints,\n entitySlug: slug1,\n req,\n })\n\n if (customEndpointResponse) {\n return customEndpointResponse\n } else {\n await addDataAndFileToRequest(req)\n addLocalesToRequestFromData(req)\n\n switch (slug.length) {\n case 1:\n // /:collection\n res = await endpoints.collection.PATCH.update({ collection, req })\n break\n case 2:\n // /:collection/:id\n res = await endpoints.collection.PATCH.updateByID({\n id: slug2,\n collection,\n req,\n })\n break\n }\n }\n }\n\n if (res instanceof Response) {\n if (req.responseHeaders) {\n mergeHeaders(req.responseHeaders, res.headers)\n }\n\n return res\n }\n\n // root routes\n const customEndpointResponse = await handleCustomEndpoints({\n endpoints: req.payload.config.endpoints,\n req,\n })\n\n if (customEndpointResponse) return customEndpointResponse\n\n return RouteNotFoundResponse({\n slug,\n req,\n })\n } catch (error) {\n return routeError({\n collection,\n config,\n err: error,\n req: req || request,\n })\n }\n }\n"],"names":["httpStatus","match","addDataAndFileToRequest","addLocalesToRequestFromData","createPayloadRequest","headersWithCors","mergeHeaders","access","forgotPassword","init","login","logout","me","refresh","registerFirstUser","resetPassword","unlock","verifyEmail","buildFormState","endpointsAreDisabled","count","create","deleteDoc","deleteByID","docAccess","duplicate","find","findByID","findVersionByID","findVersions","preview","previewCollection","restoreVersion","update","updateByID","getFile","docAccessGlobal","findOne","findVersionByIdGlobal","findVersionsGlobal","previewGlobal","restoreVersionGlobal","updateGlobal","generateOGImage","routeError","endpoints","collection","DELETE","delete","GET","versions","PATCH","POST","global","root","og","handleCustomEndpoints","entitySlug","req","length","handlerParams","pathname","adjustedPathname","process","env","NEXT_BASE_PATH","pathPrefix","payload","config","routes","api","customEndpoint","endpoint","method","toLowerCase","pathMatchFn","path","decode","decodeURIComponent","tempParams","params","routeParams","res","handler","Response","responseHeaders","headers","RouteNotFoundResponse","slug","json","message","join","Headers","status","NOT_FOUND","OPTIONS","request","error","err","slug1","slug2","slug3","slug4","disableEndpoints","collections","customEndpointResponse","id","filename","globalConfig","globals","overrideHttpMethod","get","disableDuplicate"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { PayloadRequest } from 'payload';
|
|
2
2
|
import { ImageResponse } from 'next/og.js';
|
|
3
3
|
import { NextResponse } from 'next/server.js';
|
|
4
4
|
export declare const runtime = "nodejs";
|
|
5
5
|
export declare const contentType = "image/png";
|
|
6
6
|
export declare const generateOGImage: ({ req }: {
|
|
7
|
-
req:
|
|
7
|
+
req: PayloadRequest;
|
|
8
8
|
}) => Promise<NextResponse<{
|
|
9
9
|
error: string;
|
|
10
10
|
}> | ImageResponse>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/og/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/routes/rest/og/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAI7C,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAU7C,eAAO,MAAM,OAAO,WAAW,CAAA;AAE/B,eAAO,MAAM,WAAW,cAAc,CAAA;AAEtC,eAAO,MAAM,eAAe,YAAmB;IAAE,GAAG,EAAE,cAAc,CAAA;CAAE;;mBA6DrE,CAAA"}
|