@critical-path/server 0.13.5 → 0.14.0
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/CHANGELOG.md +39 -0
- package/README.md +37 -0
- package/dist/adapters/next.d.ts +18 -8
- package/dist/adapters/next.d.ts.map +1 -1
- package/dist/adapters/next.js +11 -4
- package/dist/adapters/next.js.map +1 -1
- package/dist/adapters/sveltekit.d.ts +2 -2
- package/dist/adapters/sveltekit.d.ts.map +1 -1
- package/dist/adapters/sveltekit.js +2 -2
- package/dist/adapters/sveltekit.js.map +1 -1
- package/dist/index.test.js +163 -0
- package/dist/index.test.js.map +1 -1
- package/dist/router.d.ts +18 -1
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +132 -52
- package/dist/router.js.map +1 -1
- package/package.json +2 -2
- package/src/adapters/next.ts +27 -6
- package/src/adapters/sveltekit.ts +6 -3
- package/src/index.test.ts +199 -0
- package/src/router.ts +141 -52
package/dist/router.js
CHANGED
|
@@ -1,13 +1,31 @@
|
|
|
1
1
|
import { CriticalPathEngine } from '@critical-path/core';
|
|
2
|
+
const CORS_HEADERS = {
|
|
3
|
+
'Access-Control-Allow-Origin': '*',
|
|
4
|
+
'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH, DELETE, OPTIONS',
|
|
5
|
+
'Access-Control-Allow-Headers': 'Content-Type, Authorization'
|
|
6
|
+
};
|
|
7
|
+
class BadRequestError extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.name = 'BadRequestError';
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
function isDevelopment() {
|
|
14
|
+
return globalThis.process?.env?.NODE_ENV === 'development';
|
|
15
|
+
}
|
|
2
16
|
export class CriticalPathRouter {
|
|
3
17
|
engine;
|
|
4
|
-
|
|
18
|
+
onError;
|
|
19
|
+
exposeErrors;
|
|
20
|
+
constructor(configOrEngine, options = {}) {
|
|
5
21
|
if (configOrEngine instanceof CriticalPathEngine) {
|
|
6
22
|
this.engine = configOrEngine;
|
|
7
23
|
}
|
|
8
24
|
else {
|
|
9
25
|
this.engine = new CriticalPathEngine(configOrEngine);
|
|
10
26
|
}
|
|
27
|
+
this.onError = options.onError;
|
|
28
|
+
this.exposeErrors = options.exposeErrors ?? isDevelopment();
|
|
11
29
|
}
|
|
12
30
|
async handleRequest(request) {
|
|
13
31
|
const url = new URL(request.url);
|
|
@@ -16,6 +34,10 @@ export class CriticalPathRouter {
|
|
|
16
34
|
// Extract subpath after /critical-path/ or /api/critical-path/
|
|
17
35
|
const subpath = pathname.replace(/^.*?\/critical-path\/?/, '').replace(/^\/+/, '');
|
|
18
36
|
const segments = subpath.split('/').filter(Boolean);
|
|
37
|
+
// CORS preflight
|
|
38
|
+
if (method === 'OPTIONS') {
|
|
39
|
+
return new Response(null, { status: 204, headers: CORS_HEADERS });
|
|
40
|
+
}
|
|
19
41
|
try {
|
|
20
42
|
// Workflows API
|
|
21
43
|
if (segments[0] === 'workflows') {
|
|
@@ -26,7 +48,7 @@ export class CriticalPathRouter {
|
|
|
26
48
|
return this.jsonResponse({ workflows });
|
|
27
49
|
}
|
|
28
50
|
if (method === 'POST') {
|
|
29
|
-
const body = await
|
|
51
|
+
const body = await this.readJson(request);
|
|
30
52
|
const workflow = await this.engine.createWorkflow(body);
|
|
31
53
|
return this.jsonResponse({ workflow }, 201);
|
|
32
54
|
}
|
|
@@ -39,7 +61,7 @@ export class CriticalPathRouter {
|
|
|
39
61
|
return this.jsonResponse({ workflow });
|
|
40
62
|
}
|
|
41
63
|
if (method === 'PATCH' || method === 'PUT') {
|
|
42
|
-
const body = await
|
|
64
|
+
const body = await this.readJson(request);
|
|
43
65
|
const updated = await this.engine.updateWorkflow(workflowId, body);
|
|
44
66
|
if (!updated)
|
|
45
67
|
return this.jsonResponse({ error: 'Workflow not found' }, 404);
|
|
@@ -47,7 +69,9 @@ export class CriticalPathRouter {
|
|
|
47
69
|
}
|
|
48
70
|
if (method === 'DELETE') {
|
|
49
71
|
const deleted = await this.engine.deleteWorkflow(workflowId);
|
|
50
|
-
|
|
72
|
+
if (!deleted)
|
|
73
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
74
|
+
return this.jsonResponse({ success: true });
|
|
51
75
|
}
|
|
52
76
|
}
|
|
53
77
|
}
|
|
@@ -61,7 +85,7 @@ export class CriticalPathRouter {
|
|
|
61
85
|
return this.jsonResponse({ projects });
|
|
62
86
|
}
|
|
63
87
|
if (method === 'POST') {
|
|
64
|
-
const body = await
|
|
88
|
+
const body = await this.readJson(request);
|
|
65
89
|
const project = await this.engine.createProject(body);
|
|
66
90
|
return this.jsonResponse({ project }, 201);
|
|
67
91
|
}
|
|
@@ -109,9 +133,18 @@ export class CriticalPathRouter {
|
|
|
109
133
|
return this.jsonResponse({ error: 'Project not found' }, 404);
|
|
110
134
|
return this.jsonResponse({ project });
|
|
111
135
|
}
|
|
136
|
+
if (method === 'PATCH' || method === 'PUT') {
|
|
137
|
+
const { id: _id, createdAt: _createdAt, updatedAt: _updatedAt, ...updates } = await this.readJson(request);
|
|
138
|
+
const project = await this.engine.updateProject(projectId, updates);
|
|
139
|
+
if (!project)
|
|
140
|
+
return this.jsonResponse({ error: 'Project not found' }, 404);
|
|
141
|
+
return this.jsonResponse({ project });
|
|
142
|
+
}
|
|
112
143
|
if (method === 'DELETE') {
|
|
113
|
-
const deleted = await this.engine.
|
|
114
|
-
|
|
144
|
+
const deleted = await this.engine.deleteProject(projectId);
|
|
145
|
+
if (!deleted)
|
|
146
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
147
|
+
return this.jsonResponse({ success: true });
|
|
115
148
|
}
|
|
116
149
|
}
|
|
117
150
|
}
|
|
@@ -126,7 +159,7 @@ export class CriticalPathRouter {
|
|
|
126
159
|
return this.jsonResponse({ tasks });
|
|
127
160
|
}
|
|
128
161
|
if (method === 'POST') {
|
|
129
|
-
const body = await
|
|
162
|
+
const body = await this.readJson(request);
|
|
130
163
|
const task = await this.engine.createTask(body);
|
|
131
164
|
return this.jsonResponse({ task }, 201);
|
|
132
165
|
}
|
|
@@ -137,7 +170,7 @@ export class CriticalPathRouter {
|
|
|
137
170
|
return this.jsonResponse({ comments });
|
|
138
171
|
}
|
|
139
172
|
if (method === 'POST') {
|
|
140
|
-
const body = await
|
|
173
|
+
const body = await this.readJson(request);
|
|
141
174
|
const comment = await this.engine.addComment({ ...body, taskId });
|
|
142
175
|
return this.jsonResponse({ comment }, 201);
|
|
143
176
|
}
|
|
@@ -148,7 +181,7 @@ export class CriticalPathRouter {
|
|
|
148
181
|
return this.jsonResponse({ attachments });
|
|
149
182
|
}
|
|
150
183
|
if (method === 'POST') {
|
|
151
|
-
const body = await
|
|
184
|
+
const body = await this.readJson(request);
|
|
152
185
|
const attachment = await this.engine.createAttachment({ ...body, taskId });
|
|
153
186
|
return this.jsonResponse({ attachment }, 201);
|
|
154
187
|
}
|
|
@@ -159,8 +192,11 @@ export class CriticalPathRouter {
|
|
|
159
192
|
return this.jsonResponse({ graph });
|
|
160
193
|
}
|
|
161
194
|
if (method === 'POST') {
|
|
162
|
-
const body = await
|
|
163
|
-
|
|
195
|
+
const body = await this.readJson(request);
|
|
196
|
+
if (typeof body.dependsOnTaskId !== 'string' || !body.dependsOnTaskId) {
|
|
197
|
+
return this.jsonResponse({ error: 'dependsOnTaskId is required' }, 400);
|
|
198
|
+
}
|
|
199
|
+
const dep = await this.engine.addDependency({
|
|
164
200
|
taskId,
|
|
165
201
|
dependsOnTaskId: body.dependsOnTaskId,
|
|
166
202
|
type: body.type || 'blocking'
|
|
@@ -215,7 +251,7 @@ export class CriticalPathRouter {
|
|
|
215
251
|
return this.jsonResponse({ task });
|
|
216
252
|
}
|
|
217
253
|
if (method === 'PATCH' || method === 'PUT') {
|
|
218
|
-
const body = await
|
|
254
|
+
const body = await this.readJson(request);
|
|
219
255
|
const updated = await this.engine.updateTask(taskId, body);
|
|
220
256
|
if (!updated)
|
|
221
257
|
return this.jsonResponse({ error: 'Task not found' }, 404);
|
|
@@ -223,7 +259,9 @@ export class CriticalPathRouter {
|
|
|
223
259
|
}
|
|
224
260
|
if (method === 'DELETE') {
|
|
225
261
|
const deleted = await this.engine.deleteTask(taskId);
|
|
226
|
-
|
|
262
|
+
if (!deleted)
|
|
263
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
264
|
+
return this.jsonResponse({ success: true });
|
|
227
265
|
}
|
|
228
266
|
}
|
|
229
267
|
}
|
|
@@ -236,7 +274,7 @@ export class CriticalPathRouter {
|
|
|
236
274
|
return this.jsonResponse({ teams });
|
|
237
275
|
}
|
|
238
276
|
if (method === 'POST') {
|
|
239
|
-
const body = await
|
|
277
|
+
const body = await this.readJson(request);
|
|
240
278
|
const team = await this.engine.createTeam(body);
|
|
241
279
|
return this.jsonResponse({ team }, 201);
|
|
242
280
|
}
|
|
@@ -249,7 +287,7 @@ export class CriticalPathRouter {
|
|
|
249
287
|
return this.jsonResponse({ team });
|
|
250
288
|
}
|
|
251
289
|
if (method === 'PATCH' || method === 'PUT') {
|
|
252
|
-
const body = await
|
|
290
|
+
const body = await this.readJson(request);
|
|
253
291
|
const updated = await this.engine.updateTeam(teamId, body);
|
|
254
292
|
if (!updated)
|
|
255
293
|
return this.jsonResponse({ error: 'Team not found' }, 404);
|
|
@@ -257,7 +295,9 @@ export class CriticalPathRouter {
|
|
|
257
295
|
}
|
|
258
296
|
if (method === 'DELETE') {
|
|
259
297
|
const deleted = await this.engine.deleteTeam(teamId);
|
|
260
|
-
|
|
298
|
+
if (!deleted)
|
|
299
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
300
|
+
return this.jsonResponse({ success: true });
|
|
261
301
|
}
|
|
262
302
|
}
|
|
263
303
|
}
|
|
@@ -273,7 +313,7 @@ export class CriticalPathRouter {
|
|
|
273
313
|
return this.jsonResponse({ containers });
|
|
274
314
|
}
|
|
275
315
|
if (method === 'POST') {
|
|
276
|
-
const body = await
|
|
316
|
+
const body = await this.readJson(request);
|
|
277
317
|
const container = await this.engine.createContainer(body);
|
|
278
318
|
return this.jsonResponse({ container }, 201);
|
|
279
319
|
}
|
|
@@ -286,7 +326,7 @@ export class CriticalPathRouter {
|
|
|
286
326
|
return this.jsonResponse({ container });
|
|
287
327
|
}
|
|
288
328
|
if (method === 'PATCH' || method === 'PUT') {
|
|
289
|
-
const body = await
|
|
329
|
+
const body = await this.readJson(request);
|
|
290
330
|
const updated = await this.engine.updateContainer(containerId, body);
|
|
291
331
|
if (!updated)
|
|
292
332
|
return this.jsonResponse({ error: 'Container not found' }, 404);
|
|
@@ -294,7 +334,9 @@ export class CriticalPathRouter {
|
|
|
294
334
|
}
|
|
295
335
|
if (method === 'DELETE') {
|
|
296
336
|
const deleted = await this.engine.deleteContainer(containerId);
|
|
297
|
-
|
|
337
|
+
if (!deleted)
|
|
338
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
339
|
+
return this.jsonResponse({ success: true });
|
|
298
340
|
}
|
|
299
341
|
}
|
|
300
342
|
}
|
|
@@ -310,7 +352,7 @@ export class CriticalPathRouter {
|
|
|
310
352
|
return this.jsonResponse({ deliverables });
|
|
311
353
|
}
|
|
312
354
|
if (method === 'POST') {
|
|
313
|
-
const body = await
|
|
355
|
+
const body = await this.readJson(request);
|
|
314
356
|
const deliverable = await this.engine.createDeliverable(body);
|
|
315
357
|
return this.jsonResponse({ deliverable }, 201);
|
|
316
358
|
}
|
|
@@ -331,7 +373,7 @@ export class CriticalPathRouter {
|
|
|
331
373
|
return this.jsonResponse({ deliverable });
|
|
332
374
|
}
|
|
333
375
|
if (method === 'PATCH' || method === 'PUT') {
|
|
334
|
-
const body = await
|
|
376
|
+
const body = await this.readJson(request);
|
|
335
377
|
const updated = await this.engine.updateDeliverable(deliverableId, body);
|
|
336
378
|
if (!updated)
|
|
337
379
|
return this.jsonResponse({ error: 'Deliverable not found' }, 404);
|
|
@@ -339,7 +381,9 @@ export class CriticalPathRouter {
|
|
|
339
381
|
}
|
|
340
382
|
if (method === 'DELETE') {
|
|
341
383
|
const deleted = await this.engine.deleteDeliverable(deliverableId);
|
|
342
|
-
|
|
384
|
+
if (!deleted)
|
|
385
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
386
|
+
return this.jsonResponse({ success: true });
|
|
343
387
|
}
|
|
344
388
|
}
|
|
345
389
|
}
|
|
@@ -355,7 +399,7 @@ export class CriticalPathRouter {
|
|
|
355
399
|
return this.jsonResponse({ iterations });
|
|
356
400
|
}
|
|
357
401
|
if (method === 'POST') {
|
|
358
|
-
const body = await
|
|
402
|
+
const body = await this.readJson(request);
|
|
359
403
|
const iteration = await this.engine.createIteration(body);
|
|
360
404
|
return this.jsonResponse({ iteration }, 201);
|
|
361
405
|
}
|
|
@@ -368,7 +412,7 @@ export class CriticalPathRouter {
|
|
|
368
412
|
return this.jsonResponse({ iteration });
|
|
369
413
|
}
|
|
370
414
|
if (method === 'PATCH' || method === 'PUT') {
|
|
371
|
-
const body = await
|
|
415
|
+
const body = await this.readJson(request);
|
|
372
416
|
const updated = await this.engine.updateIteration(iterationId, body);
|
|
373
417
|
if (!updated)
|
|
374
418
|
return this.jsonResponse({ error: 'Iteration not found' }, 404);
|
|
@@ -376,7 +420,9 @@ export class CriticalPathRouter {
|
|
|
376
420
|
}
|
|
377
421
|
if (method === 'DELETE') {
|
|
378
422
|
const deleted = await this.engine.deleteIteration(iterationId);
|
|
379
|
-
|
|
423
|
+
if (!deleted)
|
|
424
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
425
|
+
return this.jsonResponse({ success: true });
|
|
380
426
|
}
|
|
381
427
|
}
|
|
382
428
|
}
|
|
@@ -395,7 +441,7 @@ export class CriticalPathRouter {
|
|
|
395
441
|
const subResource = segments[2];
|
|
396
442
|
if (commentId && subResource === 'reactions') {
|
|
397
443
|
if (method === 'POST') {
|
|
398
|
-
const body = await
|
|
444
|
+
const body = await this.readJson(request);
|
|
399
445
|
if (!body.emoji || !body.userId) {
|
|
400
446
|
return this.jsonResponse({ error: 'emoji and userId are required' }, 400);
|
|
401
447
|
}
|
|
@@ -407,7 +453,7 @@ export class CriticalPathRouter {
|
|
|
407
453
|
if (method === 'DELETE') {
|
|
408
454
|
let body = {};
|
|
409
455
|
try {
|
|
410
|
-
body = await
|
|
456
|
+
body = await this.readJson(request);
|
|
411
457
|
}
|
|
412
458
|
catch {
|
|
413
459
|
// Body may be empty on DELETE, fallback to searchParams
|
|
@@ -432,7 +478,7 @@ export class CriticalPathRouter {
|
|
|
432
478
|
return this.jsonResponse({ comments });
|
|
433
479
|
}
|
|
434
480
|
if (method === 'POST') {
|
|
435
|
-
const body = await
|
|
481
|
+
const body = await this.readJson(request);
|
|
436
482
|
const comment = await this.engine.addComment(body);
|
|
437
483
|
return this.jsonResponse({ comment }, 201);
|
|
438
484
|
}
|
|
@@ -445,7 +491,7 @@ export class CriticalPathRouter {
|
|
|
445
491
|
return this.jsonResponse({ comment });
|
|
446
492
|
}
|
|
447
493
|
if (method === 'PATCH' || method === 'PUT') {
|
|
448
|
-
const body = await
|
|
494
|
+
const body = await this.readJson(request);
|
|
449
495
|
const updated = await this.engine.updateComment(commentId, body);
|
|
450
496
|
if (!updated)
|
|
451
497
|
return this.jsonResponse({ error: 'Comment not found' }, 404);
|
|
@@ -453,7 +499,9 @@ export class CriticalPathRouter {
|
|
|
453
499
|
}
|
|
454
500
|
if (method === 'DELETE') {
|
|
455
501
|
const deleted = await this.engine.deleteComment(commentId);
|
|
456
|
-
|
|
502
|
+
if (!deleted)
|
|
503
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
504
|
+
return this.jsonResponse({ success: true });
|
|
457
505
|
}
|
|
458
506
|
}
|
|
459
507
|
}
|
|
@@ -462,14 +510,14 @@ export class CriticalPathRouter {
|
|
|
462
510
|
const attachmentId = segments[1];
|
|
463
511
|
if (attachmentId === 'presign') {
|
|
464
512
|
if (method === 'POST') {
|
|
465
|
-
const body = await
|
|
513
|
+
const body = await this.readJson(request);
|
|
466
514
|
const presigned = await this.engine.getPresignedAttachmentUploadUrl(body);
|
|
467
515
|
return this.jsonResponse({ presigned });
|
|
468
516
|
}
|
|
469
517
|
}
|
|
470
518
|
else if (attachmentId === 'upload') {
|
|
471
519
|
if (method === 'POST') {
|
|
472
|
-
const body = await
|
|
520
|
+
const body = await this.readJson(request);
|
|
473
521
|
const attachment = await this.engine.uploadAttachmentFile(body);
|
|
474
522
|
return this.jsonResponse({ attachment }, 201);
|
|
475
523
|
}
|
|
@@ -483,7 +531,7 @@ export class CriticalPathRouter {
|
|
|
483
531
|
return this.jsonResponse({ attachments });
|
|
484
532
|
}
|
|
485
533
|
if (method === 'POST') {
|
|
486
|
-
const body = await
|
|
534
|
+
const body = await this.readJson(request);
|
|
487
535
|
const attachment = await this.engine.createAttachment(body);
|
|
488
536
|
return this.jsonResponse({ attachment }, 201);
|
|
489
537
|
}
|
|
@@ -497,7 +545,9 @@ export class CriticalPathRouter {
|
|
|
497
545
|
}
|
|
498
546
|
if (method === 'DELETE') {
|
|
499
547
|
const deleted = await this.engine.deleteAttachment(attachmentId);
|
|
500
|
-
|
|
548
|
+
if (!deleted)
|
|
549
|
+
return this.jsonResponse({ error: 'Not found' }, 404);
|
|
550
|
+
return this.jsonResponse({ success: true });
|
|
501
551
|
}
|
|
502
552
|
}
|
|
503
553
|
}
|
|
@@ -511,8 +561,8 @@ export class CriticalPathRouter {
|
|
|
511
561
|
return this.jsonResponse({ timeEntries: entries });
|
|
512
562
|
}
|
|
513
563
|
if (method === 'POST') {
|
|
514
|
-
const body = await
|
|
515
|
-
const entry = await this.engine.
|
|
564
|
+
const body = await this.readJson(request);
|
|
565
|
+
const entry = await this.engine.logTime(body);
|
|
516
566
|
return this.jsonResponse({ timeEntry: entry }, 201);
|
|
517
567
|
}
|
|
518
568
|
}
|
|
@@ -542,7 +592,7 @@ export class CriticalPathRouter {
|
|
|
542
592
|
// Agent Status / Telemetry API
|
|
543
593
|
if (segments[0] === 'status') {
|
|
544
594
|
if (method === 'POST') {
|
|
545
|
-
const body = await
|
|
595
|
+
const body = await this.readJson(request);
|
|
546
596
|
const status = typeof body.status === 'string' ? body.status : 'active';
|
|
547
597
|
if (this.engine.events) {
|
|
548
598
|
this.engine.events.publish({
|
|
@@ -568,28 +618,58 @@ export class CriticalPathRouter {
|
|
|
568
618
|
return this.jsonResponse({ error: `Route not found: ${method} ${pathname}` }, 404);
|
|
569
619
|
}
|
|
570
620
|
catch (err) {
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
621
|
+
return this.errorResponse(err, request);
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
async readJson(request) {
|
|
625
|
+
try {
|
|
626
|
+
return await request.json();
|
|
627
|
+
}
|
|
628
|
+
catch {
|
|
629
|
+
throw new BadRequestError('Request body must be valid JSON.');
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
async errorResponse(err, request) {
|
|
633
|
+
const name = err && typeof err === 'object' && 'name' in err ? err.name : undefined;
|
|
634
|
+
const e = err;
|
|
635
|
+
switch (name) {
|
|
636
|
+
case 'BadRequestError':
|
|
637
|
+
case 'ValidationError':
|
|
638
|
+
case 'AttachmentValidationError':
|
|
639
|
+
return this.jsonResponse({ error: e.message }, 400);
|
|
640
|
+
case 'WorkflowValidationError':
|
|
641
|
+
return this.jsonResponse({ error: e.message, fromStatus: e.fromStatus, toStatus: e.toStatus }, 400);
|
|
642
|
+
case 'CustomFieldValidationError':
|
|
643
|
+
return this.jsonResponse({ error: e.message, fieldKey: e.fieldKey }, 400);
|
|
644
|
+
case 'CircularDependencyError':
|
|
645
|
+
return this.jsonResponse({ error: e.message, cyclePath: e.cyclePath }, 409);
|
|
646
|
+
case 'NotFoundError':
|
|
647
|
+
return this.jsonResponse({ error: e.message }, 404);
|
|
648
|
+
}
|
|
649
|
+
// Unexpected errors may carry internals (SQL, URLs, config details), so they are only
|
|
650
|
+
// exposed to callers when explicitly enabled.
|
|
651
|
+
if (this.onError) {
|
|
652
|
+
try {
|
|
653
|
+
const custom = await this.onError(err, request);
|
|
654
|
+
if (custom instanceof Response)
|
|
655
|
+
return custom;
|
|
656
|
+
}
|
|
657
|
+
catch (hookErr) {
|
|
658
|
+
console.error('[CriticalPathRouter] onError hook threw:', hookErr);
|
|
580
659
|
}
|
|
581
|
-
const message = err instanceof Error ? err.message : 'Internal Server Error';
|
|
582
|
-
return this.jsonResponse({ error: message }, 500);
|
|
583
660
|
}
|
|
661
|
+
else {
|
|
662
|
+
console.error('[CriticalPathRouter] Unhandled error:', err);
|
|
663
|
+
}
|
|
664
|
+
const message = this.exposeErrors && err instanceof Error ? err.message : 'Internal Server Error';
|
|
665
|
+
return this.jsonResponse({ error: message }, 500);
|
|
584
666
|
}
|
|
585
667
|
jsonResponse(data, status = 200) {
|
|
586
668
|
return new Response(JSON.stringify(data), {
|
|
587
669
|
status,
|
|
588
670
|
headers: {
|
|
589
671
|
'Content-Type': 'application/json',
|
|
590
|
-
|
|
591
|
-
'Access-Control-Allow-Methods': 'GET, POST, PUT, PATCH, DELETE, OPTIONS',
|
|
592
|
-
'Access-Control-Allow-Headers': 'Content-Type, Authorization'
|
|
672
|
+
...CORS_HEADERS
|
|
593
673
|
}
|
|
594
674
|
});
|
|
595
675
|
}
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@critical-path/server",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.14.0",
|
|
4
4
|
"description": "Web Fetch API compatible server router and adapters for Next.js App Router, SvelteKit, and Express",
|
|
5
5
|
"author": "Jack James",
|
|
6
6
|
"license": "MIT",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@critical-path/core": "0.
|
|
29
|
+
"@critical-path/core": "0.22.0"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"@types/node": "^24.0.0",
|
package/src/adapters/next.ts
CHANGED
|
@@ -1,21 +1,42 @@
|
|
|
1
|
-
import { CriticalPathRouter } from '../router.js';
|
|
1
|
+
import { CriticalPathRouter, type CriticalPathRouterOptions } from '../router.js';
|
|
2
2
|
import type { CriticalPathConfig } from '@critical-path/core';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
type NextRouteHandler = (request: Request) => Promise<Response>;
|
|
5
|
+
|
|
6
|
+
export type CriticalPathNextHandler = NextRouteHandler & {
|
|
7
|
+
GET: NextRouteHandler;
|
|
8
|
+
POST: NextRouteHandler;
|
|
9
|
+
PUT: NextRouteHandler;
|
|
10
|
+
PATCH: NextRouteHandler;
|
|
11
|
+
DELETE: NextRouteHandler;
|
|
12
|
+
OPTIONS: NextRouteHandler;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Creates a Next.js App Router route handler. The result is callable and also exposes one
|
|
17
|
+
* property per HTTP method, so both export styles work:
|
|
18
|
+
*
|
|
19
|
+
* export const { GET, POST, PUT, PATCH, DELETE, OPTIONS } = createNextHandler(config);
|
|
20
|
+
* export { handler as GET, handler as POST, ... };
|
|
21
|
+
*/
|
|
22
|
+
export function createNextHandler(
|
|
23
|
+
configOrRouter: CriticalPathConfig | CriticalPathRouter,
|
|
24
|
+
options?: CriticalPathRouterOptions
|
|
25
|
+
): CriticalPathNextHandler {
|
|
5
26
|
const router = configOrRouter instanceof CriticalPathRouter
|
|
6
27
|
? configOrRouter
|
|
7
|
-
: new CriticalPathRouter(configOrRouter);
|
|
28
|
+
: new CriticalPathRouter(configOrRouter, options);
|
|
8
29
|
|
|
9
|
-
const handler = async (request: Request) => {
|
|
30
|
+
const handler: NextRouteHandler = async (request: Request) => {
|
|
10
31
|
return router.handleRequest(request);
|
|
11
32
|
};
|
|
12
33
|
|
|
13
|
-
return {
|
|
34
|
+
return Object.assign(handler, {
|
|
14
35
|
GET: handler,
|
|
15
36
|
POST: handler,
|
|
16
37
|
PUT: handler,
|
|
17
38
|
PATCH: handler,
|
|
18
39
|
DELETE: handler,
|
|
19
40
|
OPTIONS: handler
|
|
20
|
-
};
|
|
41
|
+
});
|
|
21
42
|
}
|