@beignet/next 0.0.51 → 0.0.52
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 +19 -0
- package/README.md +40 -20
- package/dist/index.d.ts +25 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +194 -64
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/skills/routes-server/SKILL.md +8 -0
- package/src/index.ts +284 -94
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @beignet/next
|
|
2
2
|
|
|
3
|
+
## 0.0.52
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- b39bb6e: Clarify that Beignet applications require Node.js 22.12 or newer and can use
|
|
8
|
+
npm, pnpm, Yarn, or Bun for package management and framework commands.
|
|
9
|
+
- 9d52cb7: Generate apps with patched integration dependencies and require maintained
|
|
10
|
+
Next.js, Inngest, and Vercel Blob peer versions.
|
|
11
|
+
- 64dca8d: Bound webhook bodies, keep fallback errors private outside development and
|
|
12
|
+
tests, serialize snapshot-safe local storage operations, preserve ambient audit
|
|
13
|
+
correlation, surface provider shutdown failures, validate timer ranges, and
|
|
14
|
+
omit raw search and database queries from instrumentation. Release unread
|
|
15
|
+
storage bodies explicitly and bound provider-owned Redis shutdown.
|
|
16
|
+
- a50ef66: Send the parsed response-schema output from framework-neutral route handlers,
|
|
17
|
+
including transformed catalog error details.
|
|
18
|
+
- Updated dependencies [b39bb6e]
|
|
19
|
+
- Updated dependencies [a50ef66]
|
|
20
|
+
- @beignet/web@0.0.52
|
|
21
|
+
|
|
3
22
|
## 0.0.51
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
# @beignet/next
|
|
2
2
|
|
|
3
|
-
> **Runtime:** Beignet requires Node.js 22.12 or newer. Bun
|
|
4
|
-
> supported for Beignet commands.
|
|
3
|
+
> **Runtime:** Beignet requires Node.js 22.12 or newer. Bun is optional.
|
|
5
4
|
|
|
6
5
|
> [!CAUTION]
|
|
7
6
|
> Beignet is experimental alpha software. The `0.0.x` package line is for early
|
|
@@ -26,6 +25,10 @@ request/response conversion.
|
|
|
26
25
|
npm install @beignet/next @beignet/core next
|
|
27
26
|
```
|
|
28
27
|
|
|
28
|
+
Beignet supports the maintained Next.js release lines: Next.js 15.5.21 or
|
|
29
|
+
newer within v15, and Next.js 16.2.11 or newer within v16. These floors follow
|
|
30
|
+
Next.js security releases; generated apps currently use Next.js 16.3.
|
|
31
|
+
|
|
29
32
|
### Optional add-ons
|
|
30
33
|
|
|
31
34
|
- `@beignet/core/openapi` for OpenAPI documentation
|
|
@@ -262,11 +265,12 @@ export async function POST(req: Request) {
|
|
|
262
265
|
```
|
|
263
266
|
|
|
264
267
|
Native `Response` instances intentionally bypass JSON serialization and
|
|
265
|
-
response schema
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
268
|
+
response schema parsing. Use `{ status, body }` when you want Beignet to parse
|
|
269
|
+
and shape a JSON response through the contract schema; the schema's parsed
|
|
270
|
+
output becomes the wire body. Use `Response` when you want full transport
|
|
271
|
+
control. Because the Next adapter uses `@beignet/web` response conversion, an
|
|
272
|
+
explicit `ReadableStream` in a plain Beignet response remains a stream for
|
|
273
|
+
every media type, including `application/json` and structured `+json` types.
|
|
270
274
|
|
|
271
275
|
For Server-Sent Events, return
|
|
272
276
|
`createServerSentEventResponse(...)` from `@beignet/core/server`. Pass
|
|
@@ -694,14 +698,22 @@ The `server` option accepts any object exposing `createRequestContext` — a
|
|
|
694
698
|
`NextServer`, a core `ServerInstance`, or a test fake — so
|
|
695
699
|
`server: getServer` keeps working unchanged.
|
|
696
700
|
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
701
|
+
Full servers and minimal test fakes share one preflight boundary: generic
|
|
702
|
+
webhooks read the bounded raw body first, payment webhooks require the signature
|
|
703
|
+
header first, and neither resolves the server, runs hooks, or builds app context
|
|
704
|
+
before those controls. When the server exposes `rawRoute(...)` — real Beignet
|
|
705
|
+
servers do — requests that pass preflight then run inside the full hooks
|
|
706
|
+
pipeline. Rate limiting, CORS, logging, error reporting, and instrumentation
|
|
707
|
+
apply, the request appears in devtools, and the `pipeline` option supplies the
|
|
708
|
+
route identity and metadata for metadata-driven hooks. The pipeline receives a
|
|
709
|
+
rehydrated request while verification keeps the preflight raw-body text.
|
|
710
|
+
|
|
711
|
+
Both webhook helpers reject signed or generic raw bodies above 1 MiB with a 413
|
|
712
|
+
before server resolution, hooks, context creation, verification, or
|
|
713
|
+
fulfillment. Payment webhooks check for the configured signature header first:
|
|
714
|
+
an unsigned request returns 400 and its unread body is cancelled without being
|
|
715
|
+
parsed. Set `maxBodyBytes` when the provider's documented payload limit requires
|
|
716
|
+
a different bound.
|
|
705
717
|
|
|
706
718
|
```typescript
|
|
707
719
|
// app/api/webhooks/github/route.ts
|
|
@@ -732,7 +744,9 @@ export const { POST } = createWebhookRoute({
|
|
|
732
744
|
});
|
|
733
745
|
```
|
|
734
746
|
|
|
735
|
-
|
|
747
|
+
Oversized generic and signed payment bodies return 413. An unsigned payment
|
|
748
|
+
request returns 400 and its unread body is cancelled. Other body read failures
|
|
749
|
+
return 400 before context creation runs. Verification
|
|
736
750
|
failures return 400 so providers do not treat an invalid signature as a
|
|
737
751
|
fulfilled event. Context creation failures return 500. Handler failures return
|
|
738
752
|
500 so at-least-once webhook providers can retry.
|
|
@@ -1306,7 +1320,9 @@ app context from the real request with `server.createRequestContext(...)`,
|
|
|
1306
1320
|
verifies the event through a webhook definition or context-aware verifier,
|
|
1307
1321
|
validates the matching event payload schema, and delegates the event to your
|
|
1308
1322
|
app-owned handler. Verified event types outside the webhook catalog fail with a
|
|
1309
|
-
400 unless `allowUnknownEvents: true` is set.
|
|
1323
|
+
400 unless `allowUnknownEvents: true` is set. `maxBodyBytes` defaults to 1 MiB;
|
|
1324
|
+
larger bodies return 413 before server resolution, hooks, context creation, the
|
|
1325
|
+
verifier, or the handler.
|
|
1310
1326
|
|
|
1311
1327
|
### `createPaymentWebhookRoute(options): { POST }`
|
|
1312
1328
|
|
|
@@ -1315,14 +1331,18 @@ app context from the real request with `server.createRequestContext(...)`,
|
|
|
1315
1331
|
verifies the provider signature through
|
|
1316
1332
|
`ctx.ports.payments.verifyWebhook(...)`, and delegates the normalized event to
|
|
1317
1333
|
your app-owned handler. Prefer `createWebhookRoute(...)` for new non-payment
|
|
1318
|
-
webhook integrations.
|
|
1334
|
+
webhook integrations. `maxBodyBytes` defaults to 1 MiB; larger bodies return
|
|
1335
|
+
413 before server resolution, hooks, context creation, provider verification,
|
|
1336
|
+
or fulfillment when the configured signature header is present. Missing
|
|
1337
|
+
signatures take precedence, return 400, and cancel the unread body.
|
|
1319
1338
|
|
|
1320
1339
|
Operational helper error codes include `UPLOAD_NOT_FOUND`,
|
|
1321
1340
|
`INVALID_UPLOAD_ACTION`, `CRON_SECRET_NOT_CONFIGURED`, `UNAUTHORIZED`,
|
|
1322
|
-
`OUTBOX_DRAIN_FAILED`, `WEBHOOK_BODY_READ_FAILED`,
|
|
1341
|
+
`OUTBOX_DRAIN_FAILED`, `WEBHOOK_BODY_READ_FAILED`, `WEBHOOK_BODY_TOO_LARGE`,
|
|
1323
1342
|
`WEBHOOK_CONTEXT_FAILED`, `WEBHOOK_VERIFICATION_FAILED`,
|
|
1324
1343
|
`WEBHOOK_HANDLER_FAILED`, `PAYMENT_WEBHOOK_SIGNATURE_MISSING`,
|
|
1325
|
-
`PAYMENT_WEBHOOK_BODY_READ_FAILED`, `
|
|
1344
|
+
`PAYMENT_WEBHOOK_BODY_READ_FAILED`, `PAYMENT_WEBHOOK_BODY_TOO_LARGE`,
|
|
1345
|
+
`PAYMENT_WEBHOOK_CONTEXT_FAILED`,
|
|
1326
1346
|
`PAYMENT_WEBHOOK_VERIFICATION_FAILED`, `PAYMENT_WEBHOOK_HANDLER_FAILED`, and
|
|
1327
1347
|
`SCHEDULE_FAILED`.
|
|
1328
1348
|
|
package/dist/index.d.ts
CHANGED
|
@@ -394,6 +394,15 @@ export type CreateWebhookRouteOptions<Ctx extends WebhookRouteContext, Webhook e
|
|
|
394
394
|
* @default false
|
|
395
395
|
*/
|
|
396
396
|
allowUnknownEvents?: AllowUnknownEvents;
|
|
397
|
+
/**
|
|
398
|
+
* Maximum raw webhook body size in bytes.
|
|
399
|
+
*
|
|
400
|
+
* Bodies above this limit are rejected before server resolution, hooks,
|
|
401
|
+
* context creation, verification, or fulfillment.
|
|
402
|
+
*
|
|
403
|
+
* @default 1048576
|
|
404
|
+
*/
|
|
405
|
+
maxBodyBytes?: number;
|
|
397
406
|
/**
|
|
398
407
|
* App-owned fulfillment handler. The webhook is verified before this runs.
|
|
399
408
|
*
|
|
@@ -483,6 +492,16 @@ export type CreatePaymentWebhookRouteOptions<Ctx extends PaymentWebhookRouteCont
|
|
|
483
492
|
* @default "stripe-signature"
|
|
484
493
|
*/
|
|
485
494
|
signatureHeader?: string;
|
|
495
|
+
/**
|
|
496
|
+
* Maximum raw webhook body size in bytes.
|
|
497
|
+
*
|
|
498
|
+
* Signed bodies above this limit are rejected before provider verification
|
|
499
|
+
* or fulfillment, and before server resolution, hooks, or context creation.
|
|
500
|
+
* A missing signature takes precedence and cancels the unread body.
|
|
501
|
+
*
|
|
502
|
+
* @default 1048576
|
|
503
|
+
*/
|
|
504
|
+
maxBodyBytes?: number;
|
|
486
505
|
/**
|
|
487
506
|
* App-owned fulfillment handler. The webhook is verified before this runs.
|
|
488
507
|
*
|
|
@@ -685,8 +704,9 @@ export declare function createOutboxDrainRoute<Ctx extends OutboxDrainContext>(o
|
|
|
685
704
|
/**
|
|
686
705
|
* Create a Next.js POST handler for generic verified inbound webhooks.
|
|
687
706
|
*
|
|
688
|
-
* The route reads the raw request body
|
|
689
|
-
* builds app context from
|
|
707
|
+
* The route bounds and reads the raw request body before resolving the server,
|
|
708
|
+
* then normalizes request headers and builds app context from a rehydrated
|
|
709
|
+
* request through
|
|
690
710
|
* `server.createRequestContext(...)`, verifies the event through the webhook
|
|
691
711
|
* definition or a context-aware verifier, validates the matching event
|
|
692
712
|
* payload schema, and delegates fulfillment to app code.
|
|
@@ -697,8 +717,9 @@ export declare function createWebhookRoute<Ctx extends WebhookRouteContext, Webh
|
|
|
697
717
|
/**
|
|
698
718
|
* Create a Next.js POST handler for provider-verified payment webhooks.
|
|
699
719
|
*
|
|
700
|
-
* The route
|
|
701
|
-
* body
|
|
720
|
+
* The route checks the provider signature header and bounds the raw request
|
|
721
|
+
* body before resolving the server, then builds app context from a rehydrated
|
|
722
|
+
* request through
|
|
702
723
|
* `server.createRequestContext(...)`, verifies the event through
|
|
703
724
|
* `ctx.ports.payments`, and then delegates fulfillment to app code. This is the canonical helper for Beignet
|
|
704
725
|
* billing flows backed by `PaymentsPort`. Keep this route on the Node.js
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -241,31 +241,51 @@ async function storageResponse(storage, req, basePath, options, includeBody) {
|
|
|
241
241
|
if (!key)
|
|
242
242
|
return storageNotFoundResponse();
|
|
243
243
|
const object = await storage.get(key);
|
|
244
|
-
if (object
|
|
244
|
+
if (!object) {
|
|
245
245
|
return storageNotFoundResponse();
|
|
246
246
|
}
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
if (!headers.has("x-content-type-options")) {
|
|
251
|
-
headers.set("x-content-type-options", "nosniff");
|
|
252
|
-
}
|
|
253
|
-
if (object.contentType && !headers.has("content-type")) {
|
|
254
|
-
headers.set("content-type", object.contentType);
|
|
247
|
+
if (object.visibility !== "public") {
|
|
248
|
+
await object.cancel().catch(() => undefined);
|
|
249
|
+
return storageNotFoundResponse();
|
|
255
250
|
}
|
|
256
|
-
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
251
|
+
try {
|
|
252
|
+
const headers = new Headers(resolveHeaders(options.headers, req));
|
|
253
|
+
headers.set("content-length", String(object.size));
|
|
254
|
+
headers.set("last-modified", object.lastModified.toUTCString());
|
|
255
|
+
if (!headers.has("x-content-type-options")) {
|
|
256
|
+
headers.set("x-content-type-options", "nosniff");
|
|
257
|
+
}
|
|
258
|
+
if (object.contentType && !headers.has("content-type")) {
|
|
259
|
+
headers.set("content-type", object.contentType);
|
|
260
|
+
}
|
|
261
|
+
if (!headers.has("content-disposition")) {
|
|
262
|
+
const contentDisposition = resolveStorageContentDisposition(options, req, object);
|
|
263
|
+
if (contentDisposition) {
|
|
264
|
+
headers.set("content-disposition", contentDisposition);
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
if (object.cacheControl && !headers.has("cache-control")) {
|
|
268
|
+
headers.set("cache-control", object.cacheControl);
|
|
269
|
+
}
|
|
270
|
+
if (!includeBody) {
|
|
271
|
+
await object.cancel();
|
|
272
|
+
return new Response(null, { status: 200, headers });
|
|
273
|
+
}
|
|
274
|
+
const body = object.stream();
|
|
275
|
+
try {
|
|
276
|
+
return new Response(body, { status: 200, headers });
|
|
277
|
+
}
|
|
278
|
+
catch (error) {
|
|
279
|
+
await body.cancel(error).catch(() => undefined);
|
|
280
|
+
throw error;
|
|
260
281
|
}
|
|
261
282
|
}
|
|
262
|
-
|
|
263
|
-
|
|
283
|
+
catch (error) {
|
|
284
|
+
if (!object.bodyUsed) {
|
|
285
|
+
await object.cancel(error).catch(() => undefined);
|
|
286
|
+
}
|
|
287
|
+
throw error;
|
|
264
288
|
}
|
|
265
|
-
return new Response(includeBody ? object.stream() : null, {
|
|
266
|
-
status: 200,
|
|
267
|
-
headers,
|
|
268
|
-
});
|
|
269
289
|
}
|
|
270
290
|
function currentRequestServer(req) {
|
|
271
291
|
const url = new URL(req.url);
|
|
@@ -466,12 +486,84 @@ function toHttpResponseHeaders(headers) {
|
|
|
466
486
|
* creation then receives a rehydrated request carrying the same method, URL,
|
|
467
487
|
* headers, and raw body.
|
|
468
488
|
*/
|
|
469
|
-
function
|
|
470
|
-
return
|
|
489
|
+
function rehydrateWebhookRequest(req, rawBody) {
|
|
490
|
+
return new Request(req.url, {
|
|
471
491
|
method: req.method,
|
|
472
492
|
headers: req.headers,
|
|
473
493
|
body: rawBody,
|
|
474
|
-
|
|
494
|
+
signal: req.signal,
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
const DEFAULT_WEBHOOK_BODY_MAX_BYTES = 1024 * 1024;
|
|
498
|
+
class WebhookBodyTooLargeError extends Error {
|
|
499
|
+
maxBytes;
|
|
500
|
+
constructor(maxBytes) {
|
|
501
|
+
super("Webhook body exceeds the configured size limit.");
|
|
502
|
+
this.maxBytes = maxBytes;
|
|
503
|
+
this.name = "WebhookBodyTooLargeError";
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
function webhookBodyLimit(maxBytes) {
|
|
507
|
+
const resolved = maxBytes ?? DEFAULT_WEBHOOK_BODY_MAX_BYTES;
|
|
508
|
+
if (!Number.isFinite(resolved) || resolved <= 0) {
|
|
509
|
+
throw new Error("Webhook maxBodyBytes must be a positive number.");
|
|
510
|
+
}
|
|
511
|
+
return resolved;
|
|
512
|
+
}
|
|
513
|
+
function cancelWebhookBody(source, reason) {
|
|
514
|
+
try {
|
|
515
|
+
void source.cancel(reason).catch(() => { });
|
|
516
|
+
}
|
|
517
|
+
catch {
|
|
518
|
+
// Cancellation is best-effort and must not replace the selected response.
|
|
519
|
+
}
|
|
520
|
+
}
|
|
521
|
+
function cancelWebhookRequestBody(req, reason) {
|
|
522
|
+
const body = req.raw?.body ?? nativeRequestOf(req).body;
|
|
523
|
+
if (body)
|
|
524
|
+
cancelWebhookBody(body, reason);
|
|
525
|
+
}
|
|
526
|
+
async function readWebhookBody(req, maxBytes) {
|
|
527
|
+
const body = req.raw?.body ?? nativeRequestOf(req).body;
|
|
528
|
+
const contentLength = req.headers.get("content-length");
|
|
529
|
+
if (contentLength !== null) {
|
|
530
|
+
const declaredBytes = Number(contentLength);
|
|
531
|
+
if (Number.isFinite(declaredBytes) && declaredBytes > maxBytes) {
|
|
532
|
+
const error = new WebhookBodyTooLargeError(maxBytes);
|
|
533
|
+
if (body)
|
|
534
|
+
cancelWebhookBody(body, error);
|
|
535
|
+
throw error;
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
if (!body) {
|
|
539
|
+
const text = await req.text();
|
|
540
|
+
if (new TextEncoder().encode(text).byteLength > maxBytes) {
|
|
541
|
+
throw new WebhookBodyTooLargeError(maxBytes);
|
|
542
|
+
}
|
|
543
|
+
return text;
|
|
544
|
+
}
|
|
545
|
+
const reader = body.getReader();
|
|
546
|
+
const decoder = new TextDecoder();
|
|
547
|
+
let receivedBytes = 0;
|
|
548
|
+
let text = "";
|
|
549
|
+
try {
|
|
550
|
+
while (true) {
|
|
551
|
+
const result = await reader.read();
|
|
552
|
+
if (result.done)
|
|
553
|
+
break;
|
|
554
|
+
receivedBytes += result.value.byteLength;
|
|
555
|
+
if (receivedBytes > maxBytes) {
|
|
556
|
+
const error = new WebhookBodyTooLargeError(maxBytes);
|
|
557
|
+
cancelWebhookBody(reader, error);
|
|
558
|
+
throw error;
|
|
559
|
+
}
|
|
560
|
+
text += decoder.decode(result.value, { stream: true });
|
|
561
|
+
}
|
|
562
|
+
return text + decoder.decode();
|
|
563
|
+
}
|
|
564
|
+
finally {
|
|
565
|
+
reader.releaseLock();
|
|
566
|
+
}
|
|
475
567
|
}
|
|
476
568
|
function headersToRecord(headers) {
|
|
477
569
|
const result = {};
|
|
@@ -863,23 +955,31 @@ export function createOutboxDrainRoute(options) {
|
|
|
863
955
|
/**
|
|
864
956
|
* Create a Next.js POST handler for generic verified inbound webhooks.
|
|
865
957
|
*
|
|
866
|
-
* The route reads the raw request body
|
|
867
|
-
* builds app context from
|
|
958
|
+
* The route bounds and reads the raw request body before resolving the server,
|
|
959
|
+
* then normalizes request headers and builds app context from a rehydrated
|
|
960
|
+
* request through
|
|
868
961
|
* `server.createRequestContext(...)`, verifies the event through the webhook
|
|
869
962
|
* definition or a context-aware verifier, validates the matching event
|
|
870
963
|
* payload schema, and delegates fulfillment to app code.
|
|
871
964
|
*/
|
|
872
965
|
export function createWebhookRoute(options) {
|
|
873
|
-
const
|
|
966
|
+
const maxBodyBytes = webhookBodyLimit(options.maxBodyBytes);
|
|
967
|
+
const preflightBodies = new WeakMap();
|
|
968
|
+
const handleWebhookRequest = async ({ req, ctx, rawBody: providedRawBody, }) => {
|
|
874
969
|
const nativeReq = nativeRequestOf(req);
|
|
875
970
|
const headers = resolveHeaders(options.headers, nativeReq);
|
|
876
971
|
const requestHeaders = headersToRecord(new Headers(req.headers));
|
|
877
|
-
let rawBody;
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
972
|
+
let rawBody = providedRawBody ?? preflightBodies.get(nativeReq);
|
|
973
|
+
preflightBodies.delete(nativeReq);
|
|
974
|
+
if (rawBody === undefined) {
|
|
975
|
+
try {
|
|
976
|
+
rawBody = await readWebhookBody(req, maxBodyBytes);
|
|
977
|
+
}
|
|
978
|
+
catch (error) {
|
|
979
|
+
return error instanceof WebhookBodyTooLargeError
|
|
980
|
+
? operationalErrorJson("WEBHOOK_BODY_TOO_LARGE", "Webhook body exceeds the configured size limit.", 413, headers)
|
|
981
|
+
: operationalErrorJson("WEBHOOK_BODY_READ_FAILED", "Webhook body read failed.", 400, headers);
|
|
982
|
+
}
|
|
883
983
|
}
|
|
884
984
|
let event;
|
|
885
985
|
try {
|
|
@@ -965,37 +1065,47 @@ export function createWebhookRoute(options) {
|
|
|
965
1065
|
}, handleWebhookRequest);
|
|
966
1066
|
return {
|
|
967
1067
|
POST: async (req) => {
|
|
968
|
-
const server = await resolveServerSource(options.server);
|
|
969
|
-
const pipelined = runPipeline(server);
|
|
970
|
-
if (pipelined)
|
|
971
|
-
return pipelined(req);
|
|
972
|
-
// Minimal servers without rawRoute(...) — usually test fakes — build
|
|
973
|
-
// context directly and run the same handler outside the hooks pipeline.
|
|
974
1068
|
const headers = resolveHeaders(options.headers, req);
|
|
975
1069
|
let rawBody;
|
|
976
1070
|
try {
|
|
977
|
-
rawBody = await req
|
|
1071
|
+
rawBody = await readWebhookBody(toRequestLike(req), maxBodyBytes);
|
|
978
1072
|
}
|
|
979
|
-
catch {
|
|
980
|
-
return
|
|
1073
|
+
catch (error) {
|
|
1074
|
+
return error instanceof WebhookBodyTooLargeError
|
|
1075
|
+
? operationalErrorJson("WEBHOOK_BODY_TOO_LARGE", "Webhook body exceeds the configured size limit.", 413, headers)
|
|
1076
|
+
: operationalErrorJson("WEBHOOK_BODY_READ_FAILED", "Webhook body read failed.", 400, headers);
|
|
981
1077
|
}
|
|
982
|
-
const contextRequest =
|
|
1078
|
+
const contextRequest = rehydrateWebhookRequest(req, rawBody);
|
|
1079
|
+
const server = await resolveServerSource(options.server);
|
|
1080
|
+
const pipelined = runPipeline(server);
|
|
1081
|
+
if (pipelined) {
|
|
1082
|
+
preflightBodies.set(contextRequest, rawBody);
|
|
1083
|
+
return pipelined(contextRequest);
|
|
1084
|
+
}
|
|
1085
|
+
// Minimal servers without rawRoute(...) — usually test fakes — build
|
|
1086
|
+
// context directly and run the same handler outside the hooks pipeline.
|
|
1087
|
+
const requestLike = toRequestLike(contextRequest);
|
|
983
1088
|
let ctx;
|
|
984
1089
|
try {
|
|
985
|
-
ctx = await server.createRequestContext(
|
|
1090
|
+
ctx = await server.createRequestContext(requestLike);
|
|
986
1091
|
}
|
|
987
1092
|
catch {
|
|
988
1093
|
return operationalErrorJson("WEBHOOK_CONTEXT_FAILED", "Webhook context failed.", 500, headers);
|
|
989
1094
|
}
|
|
990
|
-
return handleWebhookRequest({
|
|
1095
|
+
return handleWebhookRequest({
|
|
1096
|
+
req: requestLike,
|
|
1097
|
+
ctx,
|
|
1098
|
+
rawBody,
|
|
1099
|
+
});
|
|
991
1100
|
},
|
|
992
1101
|
};
|
|
993
1102
|
}
|
|
994
1103
|
/**
|
|
995
1104
|
* Create a Next.js POST handler for provider-verified payment webhooks.
|
|
996
1105
|
*
|
|
997
|
-
* The route
|
|
998
|
-
* body
|
|
1106
|
+
* The route checks the provider signature header and bounds the raw request
|
|
1107
|
+
* body before resolving the server, then builds app context from a rehydrated
|
|
1108
|
+
* request through
|
|
999
1109
|
* `server.createRequestContext(...)`, verifies the event through
|
|
1000
1110
|
* `ctx.ports.payments`, and then delegates fulfillment to app code. This is the canonical helper for Beignet
|
|
1001
1111
|
* billing flows backed by `PaymentsPort`. Keep this route on the Node.js
|
|
@@ -1003,19 +1113,27 @@ export function createWebhookRoute(options) {
|
|
|
1003
1113
|
*/
|
|
1004
1114
|
export function createPaymentWebhookRoute(options) {
|
|
1005
1115
|
const signatureHeader = options.signatureHeader ?? "stripe-signature";
|
|
1006
|
-
const
|
|
1116
|
+
const maxBodyBytes = webhookBodyLimit(options.maxBodyBytes);
|
|
1117
|
+
const preflightBodies = new WeakMap();
|
|
1118
|
+
const handlePaymentWebhook = async ({ req, ctx, rawBody: providedRawBody, }) => {
|
|
1007
1119
|
const nativeReq = nativeRequestOf(req);
|
|
1008
1120
|
const headers = resolveHeaders(options.headers, nativeReq);
|
|
1009
1121
|
const signature = new Headers(req.headers).get(signatureHeader);
|
|
1010
1122
|
if (!signature) {
|
|
1123
|
+
cancelWebhookRequestBody(req, new Error(`Missing ${signatureHeader} header.`));
|
|
1011
1124
|
return operationalErrorJson("PAYMENT_WEBHOOK_SIGNATURE_MISSING", `Missing ${signatureHeader} header.`, 400, headers);
|
|
1012
1125
|
}
|
|
1013
|
-
let rawBody;
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1126
|
+
let rawBody = providedRawBody ?? preflightBodies.get(nativeReq);
|
|
1127
|
+
preflightBodies.delete(nativeReq);
|
|
1128
|
+
if (rawBody === undefined) {
|
|
1129
|
+
try {
|
|
1130
|
+
rawBody = await readWebhookBody(req, maxBodyBytes);
|
|
1131
|
+
}
|
|
1132
|
+
catch (error) {
|
|
1133
|
+
return error instanceof WebhookBodyTooLargeError
|
|
1134
|
+
? operationalErrorJson("PAYMENT_WEBHOOK_BODY_TOO_LARGE", "Payment webhook body exceeds the configured size limit.", 413, headers)
|
|
1135
|
+
: operationalErrorJson("PAYMENT_WEBHOOK_BODY_READ_FAILED", "Payment webhook body read failed.", 400, headers);
|
|
1136
|
+
}
|
|
1019
1137
|
}
|
|
1020
1138
|
let event;
|
|
1021
1139
|
try {
|
|
@@ -1078,32 +1196,44 @@ export function createPaymentWebhookRoute(options) {
|
|
|
1078
1196
|
}, handlePaymentWebhook);
|
|
1079
1197
|
return {
|
|
1080
1198
|
POST: async (req) => {
|
|
1081
|
-
const server = await resolveServerSource(options.server);
|
|
1082
|
-
const pipelined = runPipeline(server);
|
|
1083
|
-
if (pipelined)
|
|
1084
|
-
return pipelined(req);
|
|
1085
|
-
// Minimal servers without rawRoute(...) — usually test fakes — build
|
|
1086
|
-
// context directly and run the same handler outside the hooks pipeline.
|
|
1087
|
-
// The signature gate runs first so no context is created without one.
|
|
1088
1199
|
const headers = resolveHeaders(options.headers, req);
|
|
1089
1200
|
if (!req.headers.get(signatureHeader)) {
|
|
1201
|
+
if (req.body) {
|
|
1202
|
+
cancelWebhookBody(req.body, new Error(`Missing ${signatureHeader} header.`));
|
|
1203
|
+
}
|
|
1090
1204
|
return operationalErrorJson("PAYMENT_WEBHOOK_SIGNATURE_MISSING", `Missing ${signatureHeader} header.`, 400, headers);
|
|
1091
1205
|
}
|
|
1092
1206
|
let rawBody;
|
|
1093
1207
|
try {
|
|
1094
|
-
rawBody = await req
|
|
1208
|
+
rawBody = await readWebhookBody(toRequestLike(req), maxBodyBytes);
|
|
1095
1209
|
}
|
|
1096
|
-
catch {
|
|
1097
|
-
return
|
|
1210
|
+
catch (error) {
|
|
1211
|
+
return error instanceof WebhookBodyTooLargeError
|
|
1212
|
+
? operationalErrorJson("PAYMENT_WEBHOOK_BODY_TOO_LARGE", "Payment webhook body exceeds the configured size limit.", 413, headers)
|
|
1213
|
+
: operationalErrorJson("PAYMENT_WEBHOOK_BODY_READ_FAILED", "Payment webhook body read failed.", 400, headers);
|
|
1214
|
+
}
|
|
1215
|
+
const contextRequest = rehydrateWebhookRequest(req, rawBody);
|
|
1216
|
+
const server = await resolveServerSource(options.server);
|
|
1217
|
+
const pipelined = runPipeline(server);
|
|
1218
|
+
if (pipelined) {
|
|
1219
|
+
preflightBodies.set(contextRequest, rawBody);
|
|
1220
|
+
return pipelined(contextRequest);
|
|
1098
1221
|
}
|
|
1222
|
+
// Minimal servers without rawRoute(...) — usually test fakes — build
|
|
1223
|
+
// context directly and run the same handler outside the hooks pipeline.
|
|
1224
|
+
const requestLike = toRequestLike(contextRequest);
|
|
1099
1225
|
let ctx;
|
|
1100
1226
|
try {
|
|
1101
|
-
ctx = await server.createRequestContext(
|
|
1227
|
+
ctx = await server.createRequestContext(requestLike);
|
|
1102
1228
|
}
|
|
1103
1229
|
catch {
|
|
1104
1230
|
return operationalErrorJson("PAYMENT_WEBHOOK_CONTEXT_FAILED", "Payment webhook context failed.", 500, headers);
|
|
1105
1231
|
}
|
|
1106
|
-
return handlePaymentWebhook({
|
|
1232
|
+
return handlePaymentWebhook({
|
|
1233
|
+
req: requestLike,
|
|
1234
|
+
ctx,
|
|
1235
|
+
rawBody,
|
|
1236
|
+
});
|
|
1107
1237
|
},
|
|
1108
1238
|
};
|
|
1109
1239
|
}
|