@beignet/next 0.0.13 → 0.0.15
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 +131 -28
- package/dist/index.d.ts +135 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +231 -0
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +471 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# @beignet/next
|
|
2
2
|
|
|
3
|
+
## 0.0.15
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 73a682a: Make the type-preserving curried route-group form the canonical Beignet route
|
|
8
|
+
API across generated apps, docs, READMEs, and examples. `beignet doctor` now
|
|
9
|
+
warns when feature route groups use the direct generic form, and the direct
|
|
10
|
+
overload is deprecated because TypeScript erases per-route contract output
|
|
11
|
+
checks there.
|
|
12
|
+
- 7d3c980: Add provider-neutral inbound webhook definitions, verifiers, HMAC verification, memory test verifier, and a generic Next.js webhook route adapter.
|
|
13
|
+
- @beignet/web@0.0.15
|
|
14
|
+
|
|
15
|
+
## 0.0.14
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- d51a35f: Add the provider-neutral payments port, memory payments adapter, Stripe payments provider, Next.js payment webhook route helper, `beignet make payments`, and first-class payments devtools view.
|
|
20
|
+
- @beignet/web@0.0.14
|
|
21
|
+
|
|
3
22
|
## 0.0.13
|
|
4
23
|
|
|
5
24
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -7,8 +7,8 @@
|
|
|
7
7
|
Next.js adapter for the framework-agnostic `@beignet/core/server` runtime. It
|
|
8
8
|
builds on `@beignet/web` for standard `Request`/`Response` handling and adds
|
|
9
9
|
Next-specific helpers for App Router handlers, Server Component context,
|
|
10
|
-
OpenAPI routes, Swagger UI, uploads, outbox drains, storage
|
|
11
|
-
base URLs.
|
|
10
|
+
OpenAPI routes, Swagger UI, uploads, payment webhooks, outbox drains, storage
|
|
11
|
+
routes, and client base URLs.
|
|
12
12
|
|
|
13
13
|
Use `@beignet/next` for Next.js applications. Use `@beignet/web` directly when
|
|
14
14
|
the runtime already accepts standard Web Fetch `Request`/`Response` objects and
|
|
@@ -76,7 +76,7 @@ import { defineRouteGroup } from "@beignet/next";
|
|
|
76
76
|
import type { AppContext } from "@/app-context";
|
|
77
77
|
import { getTodo } from "@/features/todos/contracts";
|
|
78
78
|
|
|
79
|
-
export const todoRoutes = defineRouteGroup<AppContext>({
|
|
79
|
+
export const todoRoutes = defineRouteGroup<AppContext>()({
|
|
80
80
|
name: "todos",
|
|
81
81
|
routes: [
|
|
82
82
|
{
|
|
@@ -164,41 +164,67 @@ such as `/files/[...path]`.
|
|
|
164
164
|
|
|
165
165
|
#### Focused per-file routes
|
|
166
166
|
|
|
167
|
-
Use per-file `server.route(contract).handle(...)` handlers
|
|
168
|
-
intentionally sit outside the central route registry, such
|
|
169
|
-
redirects, downloads, or adapter-specific glue:
|
|
167
|
+
Use focused helpers or per-file `server.route(contract).handle(...)` handlers
|
|
168
|
+
for endpoints that intentionally sit outside the central route registry, such
|
|
169
|
+
as webhooks, redirects, downloads, or adapter-specific glue:
|
|
170
170
|
|
|
171
171
|
```typescript
|
|
172
|
-
// app/api/webhooks/
|
|
172
|
+
// app/api/webhooks/payments/route.ts
|
|
173
|
+
import { handlePaymentWebhookUseCase } from "@/features/billing/use-cases";
|
|
174
|
+
import { paymentWebhook } from "@/features/billing/webhooks";
|
|
175
|
+
import { env } from "@/lib/env";
|
|
173
176
|
import { server } from "@/server";
|
|
174
|
-
import {
|
|
177
|
+
import { createWebhookRoute } from "@beignet/next";
|
|
178
|
+
import { createStripeWebhookVerifier } from "@beignet/provider-webhooks-stripe";
|
|
175
179
|
|
|
176
|
-
export const
|
|
177
|
-
.route(stripeWebhook)
|
|
178
|
-
.handle(async ({ req }) => {
|
|
179
|
-
const rawBody = await req.text();
|
|
180
|
-
const signature = req.headers.get("stripe-signature");
|
|
180
|
+
export const runtime = "nodejs";
|
|
181
181
|
|
|
182
|
-
|
|
182
|
+
const stripeWebhookVerifier = createStripeWebhookVerifier({
|
|
183
|
+
secret: () => env.STRIPE_WEBHOOK_SECRET,
|
|
184
|
+
});
|
|
183
185
|
|
|
186
|
+
export const { POST } = createWebhookRoute({
|
|
187
|
+
server,
|
|
188
|
+
webhook: paymentWebhook,
|
|
189
|
+
allowUnknownEvents: false,
|
|
190
|
+
verify: ({ input }) => stripeWebhookVerifier.verify(input),
|
|
191
|
+
handle: async ({ ctx, event }) => {
|
|
192
|
+
await handlePaymentWebhookUseCase.run({
|
|
193
|
+
ctx,
|
|
194
|
+
input: {
|
|
195
|
+
id: event.id,
|
|
196
|
+
type: event.type,
|
|
197
|
+
provider: event.provider ?? "stripe",
|
|
198
|
+
createdAt: event.createdAt,
|
|
199
|
+
livemode:
|
|
200
|
+
typeof event.metadata?.livemode === "boolean"
|
|
201
|
+
? event.metadata.livemode
|
|
202
|
+
: undefined,
|
|
203
|
+
data: event.payload,
|
|
204
|
+
raw: event.raw,
|
|
205
|
+
},
|
|
206
|
+
});
|
|
184
207
|
return { status: 200, body: { received: true } };
|
|
185
|
-
}
|
|
208
|
+
},
|
|
209
|
+
});
|
|
186
210
|
```
|
|
187
211
|
|
|
188
212
|
### Raw requests and non-JSON responses
|
|
189
213
|
|
|
190
214
|
`@beignet/next` exposes the underlying web `Request` through
|
|
191
|
-
`HttpRequestLike`.
|
|
192
|
-
the
|
|
215
|
+
`HttpRequestLike`. Use `createWebhookRoute(...)` for provider webhooks because
|
|
216
|
+
it reads the raw request body, passes normalized headers into your verifier, and
|
|
217
|
+
validates the typed event catalog before your app handles the event.
|
|
193
218
|
|
|
194
219
|
```typescript
|
|
195
|
-
export const
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
220
|
+
export const { POST } = createWebhookRoute({
|
|
221
|
+
server,
|
|
222
|
+
webhook: providerWebhook,
|
|
223
|
+
allowUnknownEvents: false,
|
|
224
|
+
handle: async ({ ctx, event }) => {
|
|
225
|
+
await handleProviderEventUseCase.run({ ctx, input: event.payload });
|
|
226
|
+
return { status: 200, body: { received: true } };
|
|
227
|
+
},
|
|
202
228
|
});
|
|
203
229
|
```
|
|
204
230
|
|
|
@@ -281,9 +307,9 @@ the same `server.api` handler to every verb your API should accept.
|
|
|
281
307
|
|
|
282
308
|
Returns a route builder for focused per-file handlers such as webhooks,
|
|
283
309
|
redirects, downloads, or other adapter-owned endpoints. Use
|
|
284
|
-
`defineRouteGroup(...)` plus `defineRoutes(...)` for
|
|
285
|
-
routes; `server.route(contract).handle(...)` route files
|
|
286
|
-
the central `server.api` handler.
|
|
310
|
+
`defineRouteGroup<AppContext>()({ ... })` plus `defineRoutes(...)` for
|
|
311
|
+
ordinary application routes; `server.route(contract).handle(...)` route files
|
|
312
|
+
are not imported by the central `server.api` handler.
|
|
287
313
|
|
|
288
314
|
**Returns:** Route builder with:
|
|
289
315
|
- `handle(fn)`: Create a custom handler function
|
|
@@ -514,6 +540,69 @@ export const { POST } = createUploadRoute(uploadRouter);
|
|
|
514
540
|
|
|
515
541
|
The `action` segment must be `prepare`, `upload`, or `complete`.
|
|
516
542
|
|
|
543
|
+
## Webhook routes
|
|
544
|
+
|
|
545
|
+
Use `createWebhookRoute` to expose verified provider webhooks without
|
|
546
|
+
hand-writing raw-body parsing in every app. The helper reads the raw request
|
|
547
|
+
body as text, passes normalized request headers into the verifier, validates the
|
|
548
|
+
typed event catalog from `@beignet/core/webhooks`, and passes the event to your
|
|
549
|
+
fulfillment handler.
|
|
550
|
+
|
|
551
|
+
```typescript
|
|
552
|
+
// app/api/webhooks/payments/route.ts
|
|
553
|
+
import { handlePaymentWebhookUseCase } from "@/features/billing/use-cases";
|
|
554
|
+
import { paymentWebhook } from "@/features/billing/webhooks";
|
|
555
|
+
import { env } from "@/lib/env";
|
|
556
|
+
import { server } from "@/server";
|
|
557
|
+
import { createWebhookRoute } from "@beignet/next";
|
|
558
|
+
import { createStripeWebhookVerifier } from "@beignet/provider-webhooks-stripe";
|
|
559
|
+
|
|
560
|
+
export const runtime = "nodejs";
|
|
561
|
+
|
|
562
|
+
const stripeWebhookVerifier = createStripeWebhookVerifier({
|
|
563
|
+
secret: () => env.STRIPE_WEBHOOK_SECRET,
|
|
564
|
+
});
|
|
565
|
+
|
|
566
|
+
export const { POST } = createWebhookRoute({
|
|
567
|
+
server,
|
|
568
|
+
webhook: paymentWebhook,
|
|
569
|
+
allowUnknownEvents: false,
|
|
570
|
+
verify: ({ input }) => stripeWebhookVerifier.verify(input),
|
|
571
|
+
handle: async ({ ctx, event }) => {
|
|
572
|
+
await handlePaymentWebhookUseCase.run({
|
|
573
|
+
ctx,
|
|
574
|
+
input: {
|
|
575
|
+
id: event.id,
|
|
576
|
+
type: event.type,
|
|
577
|
+
provider: event.provider ?? "stripe",
|
|
578
|
+
createdAt: event.createdAt,
|
|
579
|
+
livemode:
|
|
580
|
+
typeof event.metadata?.livemode === "boolean"
|
|
581
|
+
? event.metadata.livemode
|
|
582
|
+
: undefined,
|
|
583
|
+
data: event.payload,
|
|
584
|
+
raw: event.raw,
|
|
585
|
+
},
|
|
586
|
+
});
|
|
587
|
+
return {
|
|
588
|
+
status: 200,
|
|
589
|
+
body: { received: true },
|
|
590
|
+
};
|
|
591
|
+
},
|
|
592
|
+
});
|
|
593
|
+
```
|
|
594
|
+
|
|
595
|
+
Verification failures return 400 so providers do not treat an invalid signature
|
|
596
|
+
as a fulfilled event. Handler failures return 500 so at-least-once webhook
|
|
597
|
+
providers can retry.
|
|
598
|
+
|
|
599
|
+
Use provider verifiers such as `createStripeWebhookVerifier(...)` from
|
|
600
|
+
`@beignet/provider-webhooks-stripe` in the route or server layer. Use the
|
|
601
|
+
context-aware `verify` option when verification depends on app ports.
|
|
602
|
+
|
|
603
|
+
`createPaymentWebhookRoute(...)` remains available for payment-only apps that
|
|
604
|
+
want a shortcut around `ctx.ports.payments.verifyWebhook(...)`.
|
|
605
|
+
|
|
517
606
|
## Outbox drain routes
|
|
518
607
|
|
|
519
608
|
Use `createOutboxDrainRoute` to expose durable outbox delivery from a cron or
|
|
@@ -808,6 +897,20 @@ used by the runtime.
|
|
|
808
897
|
|
|
809
898
|
Creates a Next.js route handler that serves Swagger UI for an OpenAPI endpoint.
|
|
810
899
|
|
|
900
|
+
### `createWebhookRoute(options): { POST }`
|
|
901
|
+
|
|
902
|
+
Creates a generic Next.js webhook route. The route reads the raw body, verifies
|
|
903
|
+
the event through a webhook definition or context-aware verifier, validates the
|
|
904
|
+
matching event payload schema, and delegates the event to your app-owned
|
|
905
|
+
handler.
|
|
906
|
+
|
|
907
|
+
### `createPaymentWebhookRoute(options): { POST }`
|
|
908
|
+
|
|
909
|
+
Creates a Next.js payment webhook route. The route reads the raw body, verifies
|
|
910
|
+
the provider signature through `ctx.ports.payments.verifyWebhook(...)`, and
|
|
911
|
+
delegates the normalized event to your app-owned handler. Prefer
|
|
912
|
+
`createWebhookRoute(...)` for new non-payment webhook integrations.
|
|
913
|
+
|
|
811
914
|
### `toRequestLike(req: Request): HttpRequestLike`
|
|
812
915
|
|
|
813
916
|
Re-export from `@beignet/web`. Converts a standard `Request` to the
|
|
@@ -882,7 +985,7 @@ import { defineRouteGroup } from "@beignet/next";
|
|
|
882
985
|
import type { AppContext } from "@/app-context";
|
|
883
986
|
import * as todosContracts from "@/features/todos/contracts";
|
|
884
987
|
|
|
885
|
-
export const todoRoutes = defineRouteGroup<AppContext>({
|
|
988
|
+
export const todoRoutes = defineRouteGroup<AppContext>()({
|
|
886
989
|
name: "todos",
|
|
887
990
|
routes: [
|
|
888
991
|
{ contract: todosContracts.listTodos, handle: async () => ({ status: 200, body: [] }) },
|
package/dist/index.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import type { ClientConfig } from "@beignet/core/client";
|
|
2
2
|
import { type DrainOutboxOptions, type OutboxRegistry } from "@beignet/core/outbox";
|
|
3
|
+
import type { PaymentsPort, PaymentWebhookEvent } from "@beignet/core/payments";
|
|
3
4
|
import type { AnyPorts, StoragePort } from "@beignet/core/ports";
|
|
4
5
|
import type { InferProviderPorts, ServiceProvider } from "@beignet/core/providers";
|
|
5
6
|
import { type ScheduleDef, type ScheduleInstrumentation, type StandardSchema } from "@beignet/core/schedules";
|
|
6
7
|
import type { ContractLike, CreateServerOptions, Handler, ResolveContract, RouteDef, ServerInstance, StandardSchemaV1 } from "@beignet/core/server";
|
|
7
8
|
import type { UploadRouter } from "@beignet/core/uploads";
|
|
9
|
+
import { type InferWebhookEvent, type VerifyWebhookInput, type WebhookDef, type WebhookEvent, type WebhookEventSchemas } from "@beignet/core/webhooks";
|
|
8
10
|
import { toWebResponse } from "@beignet/web";
|
|
9
11
|
/**
|
|
10
12
|
* Server types re-exported for Next.js apps.
|
|
@@ -225,6 +227,92 @@ type ScheduleRouteContext = {
|
|
|
225
227
|
traceId?: string;
|
|
226
228
|
ports: ScheduleRoutePorts;
|
|
227
229
|
};
|
|
230
|
+
type PaymentWebhookLogger = {
|
|
231
|
+
error(message: string, metadata?: Record<string, unknown>): void;
|
|
232
|
+
};
|
|
233
|
+
type PaymentWebhookRoutePorts = {
|
|
234
|
+
payments: PaymentsPort;
|
|
235
|
+
logger?: PaymentWebhookLogger;
|
|
236
|
+
};
|
|
237
|
+
type PaymentWebhookRouteContext = {
|
|
238
|
+
requestId?: string;
|
|
239
|
+
traceId?: string;
|
|
240
|
+
ports: PaymentWebhookRoutePorts;
|
|
241
|
+
};
|
|
242
|
+
export type PaymentWebhookRouteHandlerResult = Response | {
|
|
243
|
+
status?: number;
|
|
244
|
+
headers?: HeadersInit;
|
|
245
|
+
body?: unknown;
|
|
246
|
+
} | undefined;
|
|
247
|
+
export type PaymentWebhookRouteHandlerArgs<Ctx extends PaymentWebhookRouteContext> = {
|
|
248
|
+
req: Request;
|
|
249
|
+
ctx: Ctx;
|
|
250
|
+
rawBody: string;
|
|
251
|
+
signature: string;
|
|
252
|
+
event: PaymentWebhookEvent;
|
|
253
|
+
};
|
|
254
|
+
type WebhookRouteLogger = {
|
|
255
|
+
error(message: string, metadata?: Record<string, unknown>): void;
|
|
256
|
+
};
|
|
257
|
+
type WebhookRouteContext = {
|
|
258
|
+
requestId?: string;
|
|
259
|
+
traceId?: string;
|
|
260
|
+
ports: {
|
|
261
|
+
logger?: WebhookRouteLogger;
|
|
262
|
+
};
|
|
263
|
+
};
|
|
264
|
+
export type WebhookRouteHandlerResult = Response | {
|
|
265
|
+
status?: number;
|
|
266
|
+
headers?: HeadersInit;
|
|
267
|
+
body?: unknown;
|
|
268
|
+
} | undefined;
|
|
269
|
+
export type WebhookRouteVerifyArgs<Ctx extends WebhookRouteContext> = {
|
|
270
|
+
req: Request;
|
|
271
|
+
ctx: Ctx;
|
|
272
|
+
rawBody: string;
|
|
273
|
+
headers: Record<string, string>;
|
|
274
|
+
input: VerifyWebhookInput;
|
|
275
|
+
};
|
|
276
|
+
export type WebhookRouteHandlerArgs<Ctx extends WebhookRouteContext, Webhook extends WebhookDef<string, WebhookEventSchemas>, AllowUnknownEvents extends boolean> = {
|
|
277
|
+
req: Request;
|
|
278
|
+
ctx: Ctx;
|
|
279
|
+
rawBody: string;
|
|
280
|
+
event: AllowUnknownEvents extends false ? InferWebhookEvent<Webhook> : InferWebhookEvent<Webhook> | WebhookEvent;
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* Options for creating a generic inbound webhook route.
|
|
284
|
+
*/
|
|
285
|
+
export type CreateWebhookRouteOptions<Ctx extends WebhookRouteContext, Webhook extends WebhookDef<string, WebhookEventSchemas>, AllowUnknownEvents extends boolean = true> = {
|
|
286
|
+
/**
|
|
287
|
+
* Beignet Next server that owns app context and ports.
|
|
288
|
+
*/
|
|
289
|
+
server: Pick<NextServer<Ctx, Ctx["ports"]>, "createContextFromNext">;
|
|
290
|
+
/**
|
|
291
|
+
* Inbound webhook definition.
|
|
292
|
+
*/
|
|
293
|
+
webhook: Webhook;
|
|
294
|
+
/**
|
|
295
|
+
* Optional context-aware verifier. Use this when verification depends on app
|
|
296
|
+
* ports, such as `ctx.ports.payments.verifyWebhook(...)`.
|
|
297
|
+
*/
|
|
298
|
+
verify?: (args: WebhookRouteVerifyArgs<Ctx>) => Promise<WebhookEvent> | WebhookEvent;
|
|
299
|
+
/**
|
|
300
|
+
* Whether unknown event types should pass through without payload parsing.
|
|
301
|
+
*
|
|
302
|
+
* @default true
|
|
303
|
+
*/
|
|
304
|
+
allowUnknownEvents?: AllowUnknownEvents;
|
|
305
|
+
/**
|
|
306
|
+
* App-owned fulfillment handler. The webhook is verified before this runs.
|
|
307
|
+
*
|
|
308
|
+
* Omit to acknowledge verified events with `{ ok: true }`.
|
|
309
|
+
*/
|
|
310
|
+
handle?: (args: WebhookRouteHandlerArgs<Ctx, Webhook, AllowUnknownEvents>) => Promise<WebhookRouteHandlerResult> | WebhookRouteHandlerResult;
|
|
311
|
+
/**
|
|
312
|
+
* Additional response headers.
|
|
313
|
+
*/
|
|
314
|
+
headers?: HeadersInit | ((req: Request) => HeadersInit | undefined);
|
|
315
|
+
};
|
|
228
316
|
/**
|
|
229
317
|
* Options for creating a serverless-safe schedule trigger route.
|
|
230
318
|
*/
|
|
@@ -261,6 +349,31 @@ export type CreateScheduleRouteOptions<Ctx extends ScheduleRouteContext> = {
|
|
|
261
349
|
*/
|
|
262
350
|
headers?: HeadersInit | ((req: Request) => HeadersInit | undefined);
|
|
263
351
|
};
|
|
352
|
+
/**
|
|
353
|
+
* Options for creating a payment webhook route.
|
|
354
|
+
*/
|
|
355
|
+
export type CreatePaymentWebhookRouteOptions<Ctx extends PaymentWebhookRouteContext> = {
|
|
356
|
+
/**
|
|
357
|
+
* Beignet Next server that owns app context and ports.
|
|
358
|
+
*/
|
|
359
|
+
server: Pick<NextServer<Ctx, Ctx["ports"]>, "createContextFromNext">;
|
|
360
|
+
/**
|
|
361
|
+
* Provider signature header. Stripe uses `stripe-signature`.
|
|
362
|
+
*
|
|
363
|
+
* @default "stripe-signature"
|
|
364
|
+
*/
|
|
365
|
+
signatureHeader?: string;
|
|
366
|
+
/**
|
|
367
|
+
* App-owned fulfillment handler. The webhook is verified before this runs.
|
|
368
|
+
*
|
|
369
|
+
* Omit to acknowledge verified events with `{ ok: true }`.
|
|
370
|
+
*/
|
|
371
|
+
handle?: (args: PaymentWebhookRouteHandlerArgs<Ctx>) => Promise<PaymentWebhookRouteHandlerResult> | PaymentWebhookRouteHandlerResult;
|
|
372
|
+
/**
|
|
373
|
+
* Additional response headers.
|
|
374
|
+
*/
|
|
375
|
+
headers?: HeadersInit | ((req: Request) => HeadersInit | undefined);
|
|
376
|
+
};
|
|
264
377
|
type UploadRouteContext = {
|
|
265
378
|
params?: Promise<Record<string, string | string[] | undefined>> | Record<string, string | string[] | undefined>;
|
|
266
379
|
};
|
|
@@ -365,6 +478,28 @@ export declare function createOutboxDrainRoute<Ctx extends OutboxDrainContext>(o
|
|
|
365
478
|
GET: (req: Request) => Promise<Response>;
|
|
366
479
|
POST: (req: Request) => Promise<Response>;
|
|
367
480
|
};
|
|
481
|
+
/**
|
|
482
|
+
* Create a Next.js POST handler for verified inbound webhooks.
|
|
483
|
+
*
|
|
484
|
+
* The route reads the raw request body as text, normalizes request headers,
|
|
485
|
+
* verifies the event through the webhook definition or a context-aware
|
|
486
|
+
* verifier, validates the matching event payload schema, and delegates
|
|
487
|
+
* fulfillment to app code.
|
|
488
|
+
*/
|
|
489
|
+
export declare function createWebhookRoute<Ctx extends WebhookRouteContext, Webhook extends WebhookDef<string, WebhookEventSchemas>, AllowUnknownEvents extends boolean = true>(options: CreateWebhookRouteOptions<Ctx, Webhook, AllowUnknownEvents>): {
|
|
490
|
+
POST: (req: Request) => Promise<Response>;
|
|
491
|
+
};
|
|
492
|
+
/**
|
|
493
|
+
* Create a Next.js POST handler for provider-verified payment webhooks.
|
|
494
|
+
*
|
|
495
|
+
* The route reads the raw request body as text, extracts the provider
|
|
496
|
+
* signature header, verifies the event through `ctx.ports.payments`, and then
|
|
497
|
+
* delegates fulfillment to app code. Keep this route on the Node.js runtime
|
|
498
|
+
* when your provider SDK requires Node APIs.
|
|
499
|
+
*/
|
|
500
|
+
export declare function createPaymentWebhookRoute<Ctx extends PaymentWebhookRouteContext>(options: CreatePaymentWebhookRouteOptions<Ctx>): {
|
|
501
|
+
POST: (req: Request) => Promise<Response>;
|
|
502
|
+
};
|
|
368
503
|
/**
|
|
369
504
|
* Create Next.js route handlers that trigger one registered schedule.
|
|
370
505
|
*
|
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
|
@@ -3,6 +3,7 @@ import { drainOutbox, } from "@beignet/core/outbox";
|
|
|
3
3
|
import { resolveProviderInstrumentationPort } from "@beignet/core/providers";
|
|
4
4
|
import { createInlineScheduleRunner, } from "@beignet/core/schedules";
|
|
5
5
|
import { createServer } from "@beignet/core/server";
|
|
6
|
+
import { verifyWebhook, } from "@beignet/core/webhooks";
|
|
6
7
|
import { createFetchHandler, toWebResponse } from "@beignet/web";
|
|
7
8
|
/**
|
|
8
9
|
* Server helpers re-exported for Next.js apps.
|
|
@@ -294,6 +295,34 @@ function cronRouteJson(body, status, headers) {
|
|
|
294
295
|
headers,
|
|
295
296
|
});
|
|
296
297
|
}
|
|
298
|
+
function paymentWebhookJson(body, status, headers) {
|
|
299
|
+
return Response.json(body, {
|
|
300
|
+
status,
|
|
301
|
+
headers,
|
|
302
|
+
});
|
|
303
|
+
}
|
|
304
|
+
function webhookRouteJson(body, status, headers) {
|
|
305
|
+
return Response.json(body, {
|
|
306
|
+
status,
|
|
307
|
+
headers,
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
function toHttpResponseHeaders(headers) {
|
|
311
|
+
if (!headers)
|
|
312
|
+
return undefined;
|
|
313
|
+
const result = {};
|
|
314
|
+
new Headers(headers).forEach((value, key) => {
|
|
315
|
+
result[key] = value;
|
|
316
|
+
});
|
|
317
|
+
return result;
|
|
318
|
+
}
|
|
319
|
+
function headersToRecord(headers) {
|
|
320
|
+
const result = {};
|
|
321
|
+
headers.forEach((value, key) => {
|
|
322
|
+
result[key.toLowerCase()] = value;
|
|
323
|
+
});
|
|
324
|
+
return result;
|
|
325
|
+
}
|
|
297
326
|
/**
|
|
298
327
|
* Compare two strings without leaking length or prefix timing.
|
|
299
328
|
*
|
|
@@ -399,6 +428,208 @@ export function createOutboxDrainRoute(options) {
|
|
|
399
428
|
POST: drainPendingOutbox,
|
|
400
429
|
};
|
|
401
430
|
}
|
|
431
|
+
/**
|
|
432
|
+
* Create a Next.js POST handler for verified inbound webhooks.
|
|
433
|
+
*
|
|
434
|
+
* The route reads the raw request body as text, normalizes request headers,
|
|
435
|
+
* verifies the event through the webhook definition or a context-aware
|
|
436
|
+
* verifier, validates the matching event payload schema, and delegates
|
|
437
|
+
* fulfillment to app code.
|
|
438
|
+
*/
|
|
439
|
+
export function createWebhookRoute(options) {
|
|
440
|
+
return {
|
|
441
|
+
POST: async (req) => {
|
|
442
|
+
const headers = resolveHeaders(options.headers, req);
|
|
443
|
+
const requestHeaders = headersToRecord(req.headers);
|
|
444
|
+
let ctx;
|
|
445
|
+
try {
|
|
446
|
+
ctx = await options.server.createContextFromNext();
|
|
447
|
+
}
|
|
448
|
+
catch {
|
|
449
|
+
return webhookRouteJson({
|
|
450
|
+
ok: false,
|
|
451
|
+
error: "Webhook context failed.",
|
|
452
|
+
}, 500, headers);
|
|
453
|
+
}
|
|
454
|
+
let rawBody;
|
|
455
|
+
let event;
|
|
456
|
+
try {
|
|
457
|
+
rawBody = await req.text();
|
|
458
|
+
const input = {
|
|
459
|
+
rawBody,
|
|
460
|
+
headers: requestHeaders,
|
|
461
|
+
receivedAt: new Date(),
|
|
462
|
+
};
|
|
463
|
+
const routeVerifier = options.verify;
|
|
464
|
+
const verifier = routeVerifier
|
|
465
|
+
? {
|
|
466
|
+
async verify() {
|
|
467
|
+
return routeVerifier({
|
|
468
|
+
req,
|
|
469
|
+
ctx,
|
|
470
|
+
rawBody,
|
|
471
|
+
headers: requestHeaders,
|
|
472
|
+
input,
|
|
473
|
+
});
|
|
474
|
+
},
|
|
475
|
+
}
|
|
476
|
+
: undefined;
|
|
477
|
+
event = (await verifyWebhook(options.webhook, input, {
|
|
478
|
+
verifier,
|
|
479
|
+
allowUnknownEvents: options.allowUnknownEvents,
|
|
480
|
+
}));
|
|
481
|
+
}
|
|
482
|
+
catch (error) {
|
|
483
|
+
ctx.ports.logger?.error("Webhook verification failed", {
|
|
484
|
+
error,
|
|
485
|
+
webhookName: options.webhook.name,
|
|
486
|
+
provider: options.webhook.provider,
|
|
487
|
+
requestId: ctx.requestId,
|
|
488
|
+
traceId: ctx.traceId,
|
|
489
|
+
});
|
|
490
|
+
return webhookRouteJson({
|
|
491
|
+
ok: false,
|
|
492
|
+
error: "Webhook verification failed.",
|
|
493
|
+
}, 400, headers);
|
|
494
|
+
}
|
|
495
|
+
try {
|
|
496
|
+
const result = await options.handle?.({
|
|
497
|
+
req,
|
|
498
|
+
ctx,
|
|
499
|
+
rawBody,
|
|
500
|
+
event,
|
|
501
|
+
});
|
|
502
|
+
if (result instanceof Response)
|
|
503
|
+
return result;
|
|
504
|
+
if (result) {
|
|
505
|
+
return toWebResponse({
|
|
506
|
+
status: result.status ?? 200,
|
|
507
|
+
headers: toHttpResponseHeaders(result.headers ?? headers),
|
|
508
|
+
body: result.body,
|
|
509
|
+
});
|
|
510
|
+
}
|
|
511
|
+
return toWebResponse({
|
|
512
|
+
status: 200,
|
|
513
|
+
headers: toHttpResponseHeaders(headers),
|
|
514
|
+
body: {
|
|
515
|
+
ok: true,
|
|
516
|
+
webhookName: options.webhook.name,
|
|
517
|
+
eventId: event.id,
|
|
518
|
+
eventType: event.type,
|
|
519
|
+
},
|
|
520
|
+
});
|
|
521
|
+
}
|
|
522
|
+
catch (error) {
|
|
523
|
+
ctx.ports.logger?.error("Webhook handler failed", {
|
|
524
|
+
error,
|
|
525
|
+
webhookName: options.webhook.name,
|
|
526
|
+
provider: options.webhook.provider,
|
|
527
|
+
requestId: ctx.requestId,
|
|
528
|
+
traceId: ctx.traceId,
|
|
529
|
+
eventId: event.id,
|
|
530
|
+
eventType: event.type,
|
|
531
|
+
});
|
|
532
|
+
return webhookRouteJson({
|
|
533
|
+
ok: false,
|
|
534
|
+
error: "Webhook handler failed.",
|
|
535
|
+
}, 500, headers);
|
|
536
|
+
}
|
|
537
|
+
},
|
|
538
|
+
};
|
|
539
|
+
}
|
|
540
|
+
/**
|
|
541
|
+
* Create a Next.js POST handler for provider-verified payment webhooks.
|
|
542
|
+
*
|
|
543
|
+
* The route reads the raw request body as text, extracts the provider
|
|
544
|
+
* signature header, verifies the event through `ctx.ports.payments`, and then
|
|
545
|
+
* delegates fulfillment to app code. Keep this route on the Node.js runtime
|
|
546
|
+
* when your provider SDK requires Node APIs.
|
|
547
|
+
*/
|
|
548
|
+
export function createPaymentWebhookRoute(options) {
|
|
549
|
+
const signatureHeader = options.signatureHeader ?? "stripe-signature";
|
|
550
|
+
return {
|
|
551
|
+
POST: async (req) => {
|
|
552
|
+
const headers = resolveHeaders(options.headers, req);
|
|
553
|
+
const signature = req.headers.get(signatureHeader);
|
|
554
|
+
if (!signature) {
|
|
555
|
+
return paymentWebhookJson({
|
|
556
|
+
ok: false,
|
|
557
|
+
error: `Missing ${signatureHeader} header.`,
|
|
558
|
+
}, 400, headers);
|
|
559
|
+
}
|
|
560
|
+
let ctx;
|
|
561
|
+
try {
|
|
562
|
+
ctx = await options.server.createContextFromNext();
|
|
563
|
+
}
|
|
564
|
+
catch {
|
|
565
|
+
return paymentWebhookJson({
|
|
566
|
+
ok: false,
|
|
567
|
+
error: "Payment webhook context failed.",
|
|
568
|
+
}, 500, headers);
|
|
569
|
+
}
|
|
570
|
+
let rawBody;
|
|
571
|
+
let event;
|
|
572
|
+
try {
|
|
573
|
+
rawBody = await req.text();
|
|
574
|
+
event = await ctx.ports.payments.verifyWebhook({
|
|
575
|
+
rawBody,
|
|
576
|
+
signature,
|
|
577
|
+
});
|
|
578
|
+
}
|
|
579
|
+
catch (error) {
|
|
580
|
+
ctx.ports.logger?.error("Payment webhook verification failed", {
|
|
581
|
+
error,
|
|
582
|
+
requestId: ctx.requestId,
|
|
583
|
+
traceId: ctx.traceId,
|
|
584
|
+
});
|
|
585
|
+
return paymentWebhookJson({
|
|
586
|
+
ok: false,
|
|
587
|
+
error: "Payment webhook verification failed.",
|
|
588
|
+
}, 400, headers);
|
|
589
|
+
}
|
|
590
|
+
try {
|
|
591
|
+
const result = await options.handle?.({
|
|
592
|
+
req,
|
|
593
|
+
ctx,
|
|
594
|
+
rawBody,
|
|
595
|
+
signature,
|
|
596
|
+
event,
|
|
597
|
+
});
|
|
598
|
+
if (result instanceof Response)
|
|
599
|
+
return result;
|
|
600
|
+
if (result) {
|
|
601
|
+
return toWebResponse({
|
|
602
|
+
status: result.status ?? 200,
|
|
603
|
+
headers: toHttpResponseHeaders(result.headers ?? headers),
|
|
604
|
+
body: result.body,
|
|
605
|
+
});
|
|
606
|
+
}
|
|
607
|
+
return toWebResponse({
|
|
608
|
+
status: 200,
|
|
609
|
+
headers: toHttpResponseHeaders(headers),
|
|
610
|
+
body: {
|
|
611
|
+
ok: true,
|
|
612
|
+
eventId: event.id,
|
|
613
|
+
eventType: event.type,
|
|
614
|
+
},
|
|
615
|
+
});
|
|
616
|
+
}
|
|
617
|
+
catch (error) {
|
|
618
|
+
ctx.ports.logger?.error("Payment webhook handler failed", {
|
|
619
|
+
error,
|
|
620
|
+
requestId: ctx.requestId,
|
|
621
|
+
traceId: ctx.traceId,
|
|
622
|
+
eventId: event.id,
|
|
623
|
+
eventType: event.type,
|
|
624
|
+
});
|
|
625
|
+
return paymentWebhookJson({
|
|
626
|
+
ok: false,
|
|
627
|
+
error: "Payment webhook handler failed.",
|
|
628
|
+
}, 500, headers);
|
|
629
|
+
}
|
|
630
|
+
},
|
|
631
|
+
};
|
|
632
|
+
}
|
|
402
633
|
/**
|
|
403
634
|
* Create Next.js route handlers that trigger one registered schedule.
|
|
404
635
|
*
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@beignet/next",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.15",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Next.js server-side handlers for Beignet",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -57,7 +57,7 @@
|
|
|
57
57
|
"next": "^14.0.0 || ^15.0.0 || ^16.0.0"
|
|
58
58
|
},
|
|
59
59
|
"dependencies": {
|
|
60
|
-
"@beignet/web": "^0.0.
|
|
60
|
+
"@beignet/web": "^0.0.15",
|
|
61
61
|
"@standard-schema/spec": "^1.0.0"
|
|
62
62
|
},
|
|
63
63
|
"devDependencies": {
|
package/src/index.ts
CHANGED
|
@@ -5,6 +5,7 @@ import {
|
|
|
5
5
|
drainOutbox,
|
|
6
6
|
type OutboxRegistry,
|
|
7
7
|
} from "@beignet/core/outbox";
|
|
8
|
+
import type { PaymentsPort, PaymentWebhookEvent } from "@beignet/core/payments";
|
|
8
9
|
import type { AnyPorts, StoragePort } from "@beignet/core/ports";
|
|
9
10
|
import type {
|
|
10
11
|
InferProviderPorts,
|
|
@@ -29,6 +30,14 @@ import type {
|
|
|
29
30
|
} from "@beignet/core/server";
|
|
30
31
|
import { createServer } from "@beignet/core/server";
|
|
31
32
|
import type { UploadRouter } from "@beignet/core/uploads";
|
|
33
|
+
import {
|
|
34
|
+
type InferWebhookEvent,
|
|
35
|
+
type VerifyWebhookInput,
|
|
36
|
+
verifyWebhook,
|
|
37
|
+
type WebhookDef,
|
|
38
|
+
type WebhookEvent,
|
|
39
|
+
type WebhookEventSchemas,
|
|
40
|
+
} from "@beignet/core/webhooks";
|
|
32
41
|
import { createFetchHandler, toWebResponse } from "@beignet/web";
|
|
33
42
|
|
|
34
43
|
/**
|
|
@@ -298,6 +307,125 @@ type ScheduleRouteContext = {
|
|
|
298
307
|
ports: ScheduleRoutePorts;
|
|
299
308
|
};
|
|
300
309
|
|
|
310
|
+
type PaymentWebhookLogger = {
|
|
311
|
+
error(message: string, metadata?: Record<string, unknown>): void;
|
|
312
|
+
};
|
|
313
|
+
|
|
314
|
+
type PaymentWebhookRoutePorts = {
|
|
315
|
+
payments: PaymentsPort;
|
|
316
|
+
logger?: PaymentWebhookLogger;
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
type PaymentWebhookRouteContext = {
|
|
320
|
+
requestId?: string;
|
|
321
|
+
traceId?: string;
|
|
322
|
+
ports: PaymentWebhookRoutePorts;
|
|
323
|
+
};
|
|
324
|
+
|
|
325
|
+
export type PaymentWebhookRouteHandlerResult =
|
|
326
|
+
| Response
|
|
327
|
+
| {
|
|
328
|
+
status?: number;
|
|
329
|
+
headers?: HeadersInit;
|
|
330
|
+
body?: unknown;
|
|
331
|
+
}
|
|
332
|
+
| undefined;
|
|
333
|
+
|
|
334
|
+
export type PaymentWebhookRouteHandlerArgs<
|
|
335
|
+
Ctx extends PaymentWebhookRouteContext,
|
|
336
|
+
> = {
|
|
337
|
+
req: Request;
|
|
338
|
+
ctx: Ctx;
|
|
339
|
+
rawBody: string;
|
|
340
|
+
signature: string;
|
|
341
|
+
event: PaymentWebhookEvent;
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
type WebhookRouteLogger = {
|
|
345
|
+
error(message: string, metadata?: Record<string, unknown>): void;
|
|
346
|
+
};
|
|
347
|
+
|
|
348
|
+
type WebhookRouteContext = {
|
|
349
|
+
requestId?: string;
|
|
350
|
+
traceId?: string;
|
|
351
|
+
ports: {
|
|
352
|
+
logger?: WebhookRouteLogger;
|
|
353
|
+
};
|
|
354
|
+
};
|
|
355
|
+
|
|
356
|
+
export type WebhookRouteHandlerResult =
|
|
357
|
+
| Response
|
|
358
|
+
| {
|
|
359
|
+
status?: number;
|
|
360
|
+
headers?: HeadersInit;
|
|
361
|
+
body?: unknown;
|
|
362
|
+
}
|
|
363
|
+
| undefined;
|
|
364
|
+
|
|
365
|
+
export type WebhookRouteVerifyArgs<Ctx extends WebhookRouteContext> = {
|
|
366
|
+
req: Request;
|
|
367
|
+
ctx: Ctx;
|
|
368
|
+
rawBody: string;
|
|
369
|
+
headers: Record<string, string>;
|
|
370
|
+
input: VerifyWebhookInput;
|
|
371
|
+
};
|
|
372
|
+
|
|
373
|
+
export type WebhookRouteHandlerArgs<
|
|
374
|
+
Ctx extends WebhookRouteContext,
|
|
375
|
+
Webhook extends WebhookDef<string, WebhookEventSchemas>,
|
|
376
|
+
AllowUnknownEvents extends boolean,
|
|
377
|
+
> = {
|
|
378
|
+
req: Request;
|
|
379
|
+
ctx: Ctx;
|
|
380
|
+
rawBody: string;
|
|
381
|
+
event: AllowUnknownEvents extends false
|
|
382
|
+
? InferWebhookEvent<Webhook>
|
|
383
|
+
: InferWebhookEvent<Webhook> | WebhookEvent;
|
|
384
|
+
};
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Options for creating a generic inbound webhook route.
|
|
388
|
+
*/
|
|
389
|
+
export type CreateWebhookRouteOptions<
|
|
390
|
+
Ctx extends WebhookRouteContext,
|
|
391
|
+
Webhook extends WebhookDef<string, WebhookEventSchemas>,
|
|
392
|
+
AllowUnknownEvents extends boolean = true,
|
|
393
|
+
> = {
|
|
394
|
+
/**
|
|
395
|
+
* Beignet Next server that owns app context and ports.
|
|
396
|
+
*/
|
|
397
|
+
server: Pick<NextServer<Ctx, Ctx["ports"]>, "createContextFromNext">;
|
|
398
|
+
/**
|
|
399
|
+
* Inbound webhook definition.
|
|
400
|
+
*/
|
|
401
|
+
webhook: Webhook;
|
|
402
|
+
/**
|
|
403
|
+
* Optional context-aware verifier. Use this when verification depends on app
|
|
404
|
+
* ports, such as `ctx.ports.payments.verifyWebhook(...)`.
|
|
405
|
+
*/
|
|
406
|
+
verify?: (
|
|
407
|
+
args: WebhookRouteVerifyArgs<Ctx>,
|
|
408
|
+
) => Promise<WebhookEvent> | WebhookEvent;
|
|
409
|
+
/**
|
|
410
|
+
* Whether unknown event types should pass through without payload parsing.
|
|
411
|
+
*
|
|
412
|
+
* @default true
|
|
413
|
+
*/
|
|
414
|
+
allowUnknownEvents?: AllowUnknownEvents;
|
|
415
|
+
/**
|
|
416
|
+
* App-owned fulfillment handler. The webhook is verified before this runs.
|
|
417
|
+
*
|
|
418
|
+
* Omit to acknowledge verified events with `{ ok: true }`.
|
|
419
|
+
*/
|
|
420
|
+
handle?: (
|
|
421
|
+
args: WebhookRouteHandlerArgs<Ctx, Webhook, AllowUnknownEvents>,
|
|
422
|
+
) => Promise<WebhookRouteHandlerResult> | WebhookRouteHandlerResult;
|
|
423
|
+
/**
|
|
424
|
+
* Additional response headers.
|
|
425
|
+
*/
|
|
426
|
+
headers?: HeadersInit | ((req: Request) => HeadersInit | undefined);
|
|
427
|
+
};
|
|
428
|
+
|
|
301
429
|
/**
|
|
302
430
|
* Options for creating a serverless-safe schedule trigger route.
|
|
303
431
|
*/
|
|
@@ -335,6 +463,38 @@ export type CreateScheduleRouteOptions<Ctx extends ScheduleRouteContext> = {
|
|
|
335
463
|
headers?: HeadersInit | ((req: Request) => HeadersInit | undefined);
|
|
336
464
|
};
|
|
337
465
|
|
|
466
|
+
/**
|
|
467
|
+
* Options for creating a payment webhook route.
|
|
468
|
+
*/
|
|
469
|
+
export type CreatePaymentWebhookRouteOptions<
|
|
470
|
+
Ctx extends PaymentWebhookRouteContext,
|
|
471
|
+
> = {
|
|
472
|
+
/**
|
|
473
|
+
* Beignet Next server that owns app context and ports.
|
|
474
|
+
*/
|
|
475
|
+
server: Pick<NextServer<Ctx, Ctx["ports"]>, "createContextFromNext">;
|
|
476
|
+
/**
|
|
477
|
+
* Provider signature header. Stripe uses `stripe-signature`.
|
|
478
|
+
*
|
|
479
|
+
* @default "stripe-signature"
|
|
480
|
+
*/
|
|
481
|
+
signatureHeader?: string;
|
|
482
|
+
/**
|
|
483
|
+
* App-owned fulfillment handler. The webhook is verified before this runs.
|
|
484
|
+
*
|
|
485
|
+
* Omit to acknowledge verified events with `{ ok: true }`.
|
|
486
|
+
*/
|
|
487
|
+
handle?: (
|
|
488
|
+
args: PaymentWebhookRouteHandlerArgs<Ctx>,
|
|
489
|
+
) =>
|
|
490
|
+
| Promise<PaymentWebhookRouteHandlerResult>
|
|
491
|
+
| PaymentWebhookRouteHandlerResult;
|
|
492
|
+
/**
|
|
493
|
+
* Additional response headers.
|
|
494
|
+
*/
|
|
495
|
+
headers?: HeadersInit | ((req: Request) => HeadersInit | undefined);
|
|
496
|
+
};
|
|
497
|
+
|
|
338
498
|
type UploadRouteContext = {
|
|
339
499
|
params?:
|
|
340
500
|
| Promise<Record<string, string | string[] | undefined>>
|
|
@@ -786,6 +946,48 @@ function cronRouteJson(
|
|
|
786
946
|
});
|
|
787
947
|
}
|
|
788
948
|
|
|
949
|
+
function paymentWebhookJson(
|
|
950
|
+
body: unknown,
|
|
951
|
+
status: number,
|
|
952
|
+
headers: HeadersInit | undefined,
|
|
953
|
+
): Response {
|
|
954
|
+
return Response.json(body, {
|
|
955
|
+
status,
|
|
956
|
+
headers,
|
|
957
|
+
});
|
|
958
|
+
}
|
|
959
|
+
|
|
960
|
+
function webhookRouteJson(
|
|
961
|
+
body: unknown,
|
|
962
|
+
status: number,
|
|
963
|
+
headers: HeadersInit | undefined,
|
|
964
|
+
): Response {
|
|
965
|
+
return Response.json(body, {
|
|
966
|
+
status,
|
|
967
|
+
headers,
|
|
968
|
+
});
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
function toHttpResponseHeaders(
|
|
972
|
+
headers: HeadersInit | undefined,
|
|
973
|
+
): Record<string, string> | undefined {
|
|
974
|
+
if (!headers) return undefined;
|
|
975
|
+
|
|
976
|
+
const result: Record<string, string> = {};
|
|
977
|
+
new Headers(headers).forEach((value, key) => {
|
|
978
|
+
result[key] = value;
|
|
979
|
+
});
|
|
980
|
+
return result;
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
function headersToRecord(headers: Headers): Record<string, string> {
|
|
984
|
+
const result: Record<string, string> = {};
|
|
985
|
+
headers.forEach((value, key) => {
|
|
986
|
+
result[key.toLowerCase()] = value;
|
|
987
|
+
});
|
|
988
|
+
return result;
|
|
989
|
+
}
|
|
990
|
+
|
|
789
991
|
/**
|
|
790
992
|
* Compare two strings without leaking length or prefix timing.
|
|
791
993
|
*
|
|
@@ -928,6 +1130,275 @@ export function createOutboxDrainRoute<Ctx extends OutboxDrainContext>(
|
|
|
928
1130
|
};
|
|
929
1131
|
}
|
|
930
1132
|
|
|
1133
|
+
/**
|
|
1134
|
+
* Create a Next.js POST handler for verified inbound webhooks.
|
|
1135
|
+
*
|
|
1136
|
+
* The route reads the raw request body as text, normalizes request headers,
|
|
1137
|
+
* verifies the event through the webhook definition or a context-aware
|
|
1138
|
+
* verifier, validates the matching event payload schema, and delegates
|
|
1139
|
+
* fulfillment to app code.
|
|
1140
|
+
*/
|
|
1141
|
+
export function createWebhookRoute<
|
|
1142
|
+
Ctx extends WebhookRouteContext,
|
|
1143
|
+
Webhook extends WebhookDef<string, WebhookEventSchemas>,
|
|
1144
|
+
AllowUnknownEvents extends boolean = true,
|
|
1145
|
+
>(
|
|
1146
|
+
options: CreateWebhookRouteOptions<Ctx, Webhook, AllowUnknownEvents>,
|
|
1147
|
+
): {
|
|
1148
|
+
POST: (req: Request) => Promise<Response>;
|
|
1149
|
+
} {
|
|
1150
|
+
return {
|
|
1151
|
+
POST: async (req) => {
|
|
1152
|
+
const headers = resolveHeaders(options.headers, req);
|
|
1153
|
+
const requestHeaders = headersToRecord(req.headers);
|
|
1154
|
+
|
|
1155
|
+
let ctx: Ctx;
|
|
1156
|
+
|
|
1157
|
+
try {
|
|
1158
|
+
ctx = await options.server.createContextFromNext();
|
|
1159
|
+
} catch {
|
|
1160
|
+
return webhookRouteJson(
|
|
1161
|
+
{
|
|
1162
|
+
ok: false,
|
|
1163
|
+
error: "Webhook context failed.",
|
|
1164
|
+
},
|
|
1165
|
+
500,
|
|
1166
|
+
headers,
|
|
1167
|
+
);
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
let rawBody: string;
|
|
1171
|
+
let event: WebhookRouteHandlerArgs<
|
|
1172
|
+
Ctx,
|
|
1173
|
+
Webhook,
|
|
1174
|
+
AllowUnknownEvents
|
|
1175
|
+
>["event"];
|
|
1176
|
+
|
|
1177
|
+
try {
|
|
1178
|
+
rawBody = await req.text();
|
|
1179
|
+
const input: VerifyWebhookInput = {
|
|
1180
|
+
rawBody,
|
|
1181
|
+
headers: requestHeaders,
|
|
1182
|
+
receivedAt: new Date(),
|
|
1183
|
+
};
|
|
1184
|
+
const routeVerifier = options.verify;
|
|
1185
|
+
const verifier = routeVerifier
|
|
1186
|
+
? {
|
|
1187
|
+
async verify() {
|
|
1188
|
+
return routeVerifier({
|
|
1189
|
+
req,
|
|
1190
|
+
ctx,
|
|
1191
|
+
rawBody,
|
|
1192
|
+
headers: requestHeaders,
|
|
1193
|
+
input,
|
|
1194
|
+
});
|
|
1195
|
+
},
|
|
1196
|
+
}
|
|
1197
|
+
: undefined;
|
|
1198
|
+
|
|
1199
|
+
event = (await verifyWebhook(options.webhook, input, {
|
|
1200
|
+
verifier,
|
|
1201
|
+
allowUnknownEvents: options.allowUnknownEvents,
|
|
1202
|
+
})) as WebhookRouteHandlerArgs<
|
|
1203
|
+
Ctx,
|
|
1204
|
+
Webhook,
|
|
1205
|
+
AllowUnknownEvents
|
|
1206
|
+
>["event"];
|
|
1207
|
+
} catch (error) {
|
|
1208
|
+
ctx.ports.logger?.error("Webhook verification failed", {
|
|
1209
|
+
error,
|
|
1210
|
+
webhookName: options.webhook.name,
|
|
1211
|
+
provider: options.webhook.provider,
|
|
1212
|
+
requestId: ctx.requestId,
|
|
1213
|
+
traceId: ctx.traceId,
|
|
1214
|
+
});
|
|
1215
|
+
|
|
1216
|
+
return webhookRouteJson(
|
|
1217
|
+
{
|
|
1218
|
+
ok: false,
|
|
1219
|
+
error: "Webhook verification failed.",
|
|
1220
|
+
},
|
|
1221
|
+
400,
|
|
1222
|
+
headers,
|
|
1223
|
+
);
|
|
1224
|
+
}
|
|
1225
|
+
|
|
1226
|
+
try {
|
|
1227
|
+
const result = await options.handle?.({
|
|
1228
|
+
req,
|
|
1229
|
+
ctx,
|
|
1230
|
+
rawBody,
|
|
1231
|
+
event,
|
|
1232
|
+
});
|
|
1233
|
+
|
|
1234
|
+
if (result instanceof Response) return result;
|
|
1235
|
+
|
|
1236
|
+
if (result) {
|
|
1237
|
+
return toWebResponse({
|
|
1238
|
+
status: result.status ?? 200,
|
|
1239
|
+
headers: toHttpResponseHeaders(result.headers ?? headers),
|
|
1240
|
+
body: result.body,
|
|
1241
|
+
});
|
|
1242
|
+
}
|
|
1243
|
+
|
|
1244
|
+
return toWebResponse({
|
|
1245
|
+
status: 200,
|
|
1246
|
+
headers: toHttpResponseHeaders(headers),
|
|
1247
|
+
body: {
|
|
1248
|
+
ok: true,
|
|
1249
|
+
webhookName: options.webhook.name,
|
|
1250
|
+
eventId: event.id,
|
|
1251
|
+
eventType: event.type,
|
|
1252
|
+
},
|
|
1253
|
+
});
|
|
1254
|
+
} catch (error) {
|
|
1255
|
+
ctx.ports.logger?.error("Webhook handler failed", {
|
|
1256
|
+
error,
|
|
1257
|
+
webhookName: options.webhook.name,
|
|
1258
|
+
provider: options.webhook.provider,
|
|
1259
|
+
requestId: ctx.requestId,
|
|
1260
|
+
traceId: ctx.traceId,
|
|
1261
|
+
eventId: event.id,
|
|
1262
|
+
eventType: event.type,
|
|
1263
|
+
});
|
|
1264
|
+
|
|
1265
|
+
return webhookRouteJson(
|
|
1266
|
+
{
|
|
1267
|
+
ok: false,
|
|
1268
|
+
error: "Webhook handler failed.",
|
|
1269
|
+
},
|
|
1270
|
+
500,
|
|
1271
|
+
headers,
|
|
1272
|
+
);
|
|
1273
|
+
}
|
|
1274
|
+
},
|
|
1275
|
+
};
|
|
1276
|
+
}
|
|
1277
|
+
|
|
1278
|
+
/**
|
|
1279
|
+
* Create a Next.js POST handler for provider-verified payment webhooks.
|
|
1280
|
+
*
|
|
1281
|
+
* The route reads the raw request body as text, extracts the provider
|
|
1282
|
+
* signature header, verifies the event through `ctx.ports.payments`, and then
|
|
1283
|
+
* delegates fulfillment to app code. Keep this route on the Node.js runtime
|
|
1284
|
+
* when your provider SDK requires Node APIs.
|
|
1285
|
+
*/
|
|
1286
|
+
export function createPaymentWebhookRoute<
|
|
1287
|
+
Ctx extends PaymentWebhookRouteContext,
|
|
1288
|
+
>(
|
|
1289
|
+
options: CreatePaymentWebhookRouteOptions<Ctx>,
|
|
1290
|
+
): {
|
|
1291
|
+
POST: (req: Request) => Promise<Response>;
|
|
1292
|
+
} {
|
|
1293
|
+
const signatureHeader = options.signatureHeader ?? "stripe-signature";
|
|
1294
|
+
|
|
1295
|
+
return {
|
|
1296
|
+
POST: async (req) => {
|
|
1297
|
+
const headers = resolveHeaders(options.headers, req);
|
|
1298
|
+
const signature = req.headers.get(signatureHeader);
|
|
1299
|
+
|
|
1300
|
+
if (!signature) {
|
|
1301
|
+
return paymentWebhookJson(
|
|
1302
|
+
{
|
|
1303
|
+
ok: false,
|
|
1304
|
+
error: `Missing ${signatureHeader} header.`,
|
|
1305
|
+
},
|
|
1306
|
+
400,
|
|
1307
|
+
headers,
|
|
1308
|
+
);
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
let ctx: Ctx;
|
|
1312
|
+
|
|
1313
|
+
try {
|
|
1314
|
+
ctx = await options.server.createContextFromNext();
|
|
1315
|
+
} catch {
|
|
1316
|
+
return paymentWebhookJson(
|
|
1317
|
+
{
|
|
1318
|
+
ok: false,
|
|
1319
|
+
error: "Payment webhook context failed.",
|
|
1320
|
+
},
|
|
1321
|
+
500,
|
|
1322
|
+
headers,
|
|
1323
|
+
);
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
let rawBody: string;
|
|
1327
|
+
let event: PaymentWebhookEvent;
|
|
1328
|
+
|
|
1329
|
+
try {
|
|
1330
|
+
rawBody = await req.text();
|
|
1331
|
+
event = await ctx.ports.payments.verifyWebhook({
|
|
1332
|
+
rawBody,
|
|
1333
|
+
signature,
|
|
1334
|
+
});
|
|
1335
|
+
} catch (error) {
|
|
1336
|
+
ctx.ports.logger?.error("Payment webhook verification failed", {
|
|
1337
|
+
error,
|
|
1338
|
+
requestId: ctx.requestId,
|
|
1339
|
+
traceId: ctx.traceId,
|
|
1340
|
+
});
|
|
1341
|
+
|
|
1342
|
+
return paymentWebhookJson(
|
|
1343
|
+
{
|
|
1344
|
+
ok: false,
|
|
1345
|
+
error: "Payment webhook verification failed.",
|
|
1346
|
+
},
|
|
1347
|
+
400,
|
|
1348
|
+
headers,
|
|
1349
|
+
);
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
try {
|
|
1353
|
+
const result = await options.handle?.({
|
|
1354
|
+
req,
|
|
1355
|
+
ctx,
|
|
1356
|
+
rawBody,
|
|
1357
|
+
signature,
|
|
1358
|
+
event,
|
|
1359
|
+
});
|
|
1360
|
+
|
|
1361
|
+
if (result instanceof Response) return result;
|
|
1362
|
+
|
|
1363
|
+
if (result) {
|
|
1364
|
+
return toWebResponse({
|
|
1365
|
+
status: result.status ?? 200,
|
|
1366
|
+
headers: toHttpResponseHeaders(result.headers ?? headers),
|
|
1367
|
+
body: result.body,
|
|
1368
|
+
});
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
return toWebResponse({
|
|
1372
|
+
status: 200,
|
|
1373
|
+
headers: toHttpResponseHeaders(headers),
|
|
1374
|
+
body: {
|
|
1375
|
+
ok: true,
|
|
1376
|
+
eventId: event.id,
|
|
1377
|
+
eventType: event.type,
|
|
1378
|
+
},
|
|
1379
|
+
});
|
|
1380
|
+
} catch (error) {
|
|
1381
|
+
ctx.ports.logger?.error("Payment webhook handler failed", {
|
|
1382
|
+
error,
|
|
1383
|
+
requestId: ctx.requestId,
|
|
1384
|
+
traceId: ctx.traceId,
|
|
1385
|
+
eventId: event.id,
|
|
1386
|
+
eventType: event.type,
|
|
1387
|
+
});
|
|
1388
|
+
|
|
1389
|
+
return paymentWebhookJson(
|
|
1390
|
+
{
|
|
1391
|
+
ok: false,
|
|
1392
|
+
error: "Payment webhook handler failed.",
|
|
1393
|
+
},
|
|
1394
|
+
500,
|
|
1395
|
+
headers,
|
|
1396
|
+
);
|
|
1397
|
+
}
|
|
1398
|
+
},
|
|
1399
|
+
};
|
|
1400
|
+
}
|
|
1401
|
+
|
|
931
1402
|
/**
|
|
932
1403
|
* Create Next.js route handlers that trigger one registered schedule.
|
|
933
1404
|
*
|