@usethrottle/webhook-types 0.2.0 → 1.0.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/dist/index.d.ts +396 -104
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +90 -9
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -2,17 +2,100 @@
|
|
|
2
2
|
* @usethrottle/webhook-types
|
|
3
3
|
*
|
|
4
4
|
* TypeScript discriminated unions for every Throttle outbound webhook event.
|
|
5
|
-
* Keyed by `event.type
|
|
6
|
-
*
|
|
5
|
+
* Keyed by `event.type` (legacy) or top-level `type` (ThrottleEventEnvelope),
|
|
6
|
+
* this lets your handler narrow the payload without casts.
|
|
7
7
|
*
|
|
8
|
-
* Coverage: all
|
|
9
|
-
*
|
|
10
|
-
* payment, fulfillment, subscription core lifecycle)
|
|
11
|
-
*
|
|
8
|
+
* Coverage: all 68 outbound event types emitted by the Throttle outbound bus
|
|
9
|
+
* are enumerated in `WebhookEventType`. The most-integrated events (cart,
|
|
10
|
+
* checkout, order, payment, fulfillment, subscription, customer core lifecycle)
|
|
11
|
+
* get typed `data` shapes. The remaining events resolve to
|
|
12
|
+
* `data: Record<string, unknown>`.
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
-
* event
|
|
14
|
+
* Source of truth: `packages/platform-webhooks/src/outbound/events.ts` in the
|
|
15
|
+
* Throttle monorepo. The event registry there is the only place event names
|
|
16
|
+
* are allowed to be added; this package mirrors that file.
|
|
17
|
+
*
|
|
18
|
+
* Includes a Stripe-compatible signature verification helper.
|
|
19
|
+
*
|
|
20
|
+
* ## Wire format (ThrottleEventEnvelope)
|
|
21
|
+
*
|
|
22
|
+
* The outbound worker (`packages/platform-webhooks/src/outbound/dispatcher.ts`)
|
|
23
|
+
* delivers the following flat JSON body to your endpoint:
|
|
24
|
+
*
|
|
25
|
+
* ```json
|
|
26
|
+
* {
|
|
27
|
+
* "id": "<uuid-v7>",
|
|
28
|
+
* "type": "<event-type>",
|
|
29
|
+
* "version": "1",
|
|
30
|
+
* "createdAt": "<ISO-8601>",
|
|
31
|
+
* "environmentId": "<workspace-environment-uuid>",
|
|
32
|
+
* "workspaceId": "<ws_...>",
|
|
33
|
+
* "data": { ... }
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* `version` is `'1'` for all currently-defined events; Throttle will increment
|
|
38
|
+
* it on breaking payload changes. `environmentId` identifies the workspace
|
|
39
|
+
* environment that emitted the event, so production and every non-production
|
|
40
|
+
* environment route independently. `applicationId` is not exposed at the
|
|
41
|
+
* envelope level.
|
|
42
|
+
*
|
|
43
|
+
* **Existing `WebhookEnvelope` consumers are unaffected** — the `event:
|
|
44
|
+
* { type, data }` nesting in that type is an in-memory representation only.
|
|
45
|
+
* The wire format flattens `type` and `data` to the top level of the envelope.
|
|
46
|
+
*
|
|
47
|
+
* The legacy `WebhookEnvelope` type (with its `event: { type, data }` nesting)
|
|
48
|
+
* is retained for back-compat and describes the in-memory representation used
|
|
49
|
+
* by internal consumers; external integrations should use `ThrottleEventEnvelope`.
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* Versioned event envelope for webhook consumers and extension handlers.
|
|
53
|
+
* The `type` field is the discriminant key — cast to `ThrottleEvent` to
|
|
54
|
+
* narrow `data` without specifying the generic parameters:
|
|
55
|
+
*
|
|
56
|
+
* ```ts
|
|
57
|
+
* import type { ThrottleEvent, ThrottleEventOfType } from '@usethrottle/webhook-types';
|
|
58
|
+
*
|
|
59
|
+
* app.post('/webhook', (req, res) => {
|
|
60
|
+
* const event = req.body as ThrottleEvent;
|
|
61
|
+
* switch (event.type) {
|
|
62
|
+
* case 'order.created':
|
|
63
|
+
* console.log(event.data.order); // typed as OrderCreatedData['order']
|
|
64
|
+
* break;
|
|
65
|
+
* case 'payment.captured':
|
|
66
|
+
* console.log(event.data.paymentId, event.data.amount);
|
|
67
|
+
* break;
|
|
68
|
+
* }
|
|
69
|
+
* });
|
|
70
|
+
*
|
|
71
|
+
* // Or for a single-event handler:
|
|
72
|
+
* function onOrderCreated(ev: ThrottleEventOfType<'order.created'>) {
|
|
73
|
+
* console.log(ev.data.order);
|
|
74
|
+
* }
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @typeParam TType - The event type string literal, e.g. `'order.created'`
|
|
78
|
+
* @typeParam TData - The typed `data` payload for this event type
|
|
15
79
|
*/
|
|
80
|
+
export interface ThrottleEventEnvelope<TType extends string = string, TData = unknown> {
|
|
81
|
+
/** Stable event identifier (UUID v7). */
|
|
82
|
+
id: string;
|
|
83
|
+
/** Event type string — use this to narrow the `data` payload. */
|
|
84
|
+
type: TType;
|
|
85
|
+
/**
|
|
86
|
+
* Payload schema version. Currently `'1'` for all events.
|
|
87
|
+
* Throttle will increment this when a breaking field change lands.
|
|
88
|
+
*/
|
|
89
|
+
version: string;
|
|
90
|
+
/** ISO 8601 UTC timestamp the event was emitted. */
|
|
91
|
+
createdAt: string;
|
|
92
|
+
/** Workspace environment that owns the event source. */
|
|
93
|
+
environmentId: string;
|
|
94
|
+
/** Workspace that owns the event source (e.g. `"ws_..."`). */
|
|
95
|
+
workspaceId: string;
|
|
96
|
+
/** Typed event payload — shape depends on `type`. */
|
|
97
|
+
data: TData;
|
|
98
|
+
}
|
|
16
99
|
export interface WebhookEnvelope<T extends WebhookEvent = WebhookEvent> {
|
|
17
100
|
/** Stable event identifier (UUID v7). */
|
|
18
101
|
id: string;
|
|
@@ -20,34 +103,32 @@ export interface WebhookEnvelope<T extends WebhookEvent = WebhookEvent> {
|
|
|
20
103
|
workspaceId: string;
|
|
21
104
|
/** Application (store) the event was emitted from. */
|
|
22
105
|
applicationId: string;
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
* registered with `isTest=true` only receive `isTest:true` events.
|
|
26
|
-
*/
|
|
27
|
-
isTest: boolean;
|
|
106
|
+
/** Workspace environment that owns the event source. */
|
|
107
|
+
environmentId: string;
|
|
28
108
|
/** ISO 8601 timestamp the event was emitted at. */
|
|
29
109
|
createdAt: string;
|
|
30
110
|
/** Discriminated union — narrow by `event.type`. */
|
|
31
111
|
event: T;
|
|
32
112
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
113
|
+
type CartId = string;
|
|
114
|
+
type OrderId = string;
|
|
115
|
+
type PaymentId = string;
|
|
116
|
+
type SubscriptionId = string;
|
|
117
|
+
type CustomerId = string;
|
|
37
118
|
export interface CartCreatedData {
|
|
38
|
-
cartId:
|
|
119
|
+
cartId: CartId;
|
|
39
120
|
sequence: number;
|
|
40
121
|
applicationId: string;
|
|
41
122
|
customerId: string | null;
|
|
42
123
|
currency: string;
|
|
43
124
|
}
|
|
44
125
|
export interface CartUpdatedData {
|
|
45
|
-
cartId:
|
|
126
|
+
cartId: CartId;
|
|
46
127
|
sequence: number;
|
|
47
128
|
changedFields: string[];
|
|
48
129
|
}
|
|
49
130
|
export interface CartItemAddedData {
|
|
50
|
-
cartId:
|
|
131
|
+
cartId: CartId;
|
|
51
132
|
sequence: number;
|
|
52
133
|
itemId: string;
|
|
53
134
|
name: string;
|
|
@@ -55,146 +136,357 @@ export interface CartItemAddedData {
|
|
|
55
136
|
unitPrice: number;
|
|
56
137
|
}
|
|
57
138
|
export interface CartItemUpdatedData {
|
|
58
|
-
cartId:
|
|
139
|
+
cartId: CartId;
|
|
59
140
|
sequence: number;
|
|
60
141
|
itemId: string;
|
|
61
142
|
quantity: number;
|
|
62
143
|
unitPrice: number;
|
|
63
144
|
}
|
|
64
145
|
export interface CartItemRemovedData {
|
|
65
|
-
cartId:
|
|
146
|
+
cartId: CartId;
|
|
66
147
|
sequence: number;
|
|
67
148
|
itemId: string;
|
|
68
149
|
}
|
|
69
150
|
export interface CartShippingSelectedData {
|
|
70
|
-
cartId:
|
|
151
|
+
cartId: CartId;
|
|
71
152
|
sequence: number;
|
|
72
153
|
methodId: string;
|
|
73
154
|
displayName: string;
|
|
74
155
|
rateAmount: number;
|
|
75
156
|
currency: string;
|
|
76
157
|
}
|
|
158
|
+
export interface CartShippingClearedData {
|
|
159
|
+
cartId: CartId;
|
|
160
|
+
sequence: number;
|
|
161
|
+
}
|
|
77
162
|
export interface CartDiscountAppliedData {
|
|
78
|
-
cartId:
|
|
163
|
+
cartId: CartId;
|
|
79
164
|
sequence: number;
|
|
80
165
|
code: string;
|
|
81
166
|
amount: number;
|
|
82
167
|
type: 'percentage' | 'fixed_amount';
|
|
83
168
|
discountTotal: number;
|
|
84
169
|
}
|
|
170
|
+
export interface CartDiscountRemovedData {
|
|
171
|
+
cartId: CartId;
|
|
172
|
+
sequence: number;
|
|
173
|
+
}
|
|
174
|
+
export interface CartTaxRecomputedData {
|
|
175
|
+
cartId: CartId;
|
|
176
|
+
sequence: number;
|
|
177
|
+
lineCount: number;
|
|
178
|
+
}
|
|
179
|
+
export interface CartCheckoutStartedData {
|
|
180
|
+
cartId: CartId;
|
|
181
|
+
sequence: number;
|
|
182
|
+
}
|
|
183
|
+
export interface CartConvertedData {
|
|
184
|
+
cartId: CartId;
|
|
185
|
+
sequence: number;
|
|
186
|
+
}
|
|
187
|
+
export interface CartAbandonedData {
|
|
188
|
+
cartId: CartId;
|
|
189
|
+
sequence: number;
|
|
190
|
+
}
|
|
191
|
+
export interface CartExpiredData {
|
|
192
|
+
cartId: CartId;
|
|
193
|
+
sequence: number;
|
|
194
|
+
}
|
|
195
|
+
export interface CartMergedData {
|
|
196
|
+
cartId: CartId;
|
|
197
|
+
sequence: number;
|
|
198
|
+
fromCartId: CartId;
|
|
199
|
+
toCustomerId: CustomerId;
|
|
200
|
+
}
|
|
201
|
+
export interface CheckoutSessionCreatedData {
|
|
202
|
+
checkoutSessionId: string;
|
|
203
|
+
cartId?: CartId | null;
|
|
204
|
+
applicationId: string;
|
|
205
|
+
customerId?: CustomerId | null;
|
|
206
|
+
}
|
|
207
|
+
export interface CheckoutSessionCompletedData {
|
|
208
|
+
checkoutSessionId: string;
|
|
209
|
+
orderId?: OrderId | null;
|
|
210
|
+
customerId?: CustomerId | null;
|
|
211
|
+
}
|
|
212
|
+
type OrderRow = Record<string, unknown>;
|
|
85
213
|
export interface OrderCreatedData {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
status: 'draft' | 'pending' | 'paid' | 'cancelled' | 'refunded';
|
|
214
|
+
order: OrderRow;
|
|
215
|
+
fromCart?: {
|
|
216
|
+
id: CartId;
|
|
217
|
+
};
|
|
218
|
+
sessionId?: string;
|
|
92
219
|
}
|
|
93
|
-
export interface
|
|
94
|
-
|
|
95
|
-
|
|
220
|
+
export interface OrderStatusTransitionData {
|
|
221
|
+
order: OrderRow;
|
|
222
|
+
status: string;
|
|
223
|
+
previousStatus: string;
|
|
224
|
+
action: string;
|
|
225
|
+
reason?: string | null;
|
|
96
226
|
}
|
|
97
|
-
export interface
|
|
98
|
-
|
|
99
|
-
|
|
227
|
+
export interface OrderSyncFailedData {
|
|
228
|
+
mappingId: string;
|
|
229
|
+
connectionId: string;
|
|
230
|
+
externalId: string;
|
|
231
|
+
attempts: number;
|
|
232
|
+
error: string;
|
|
100
233
|
}
|
|
101
|
-
export interface
|
|
102
|
-
|
|
103
|
-
|
|
234
|
+
export interface OrderSyncConflictData {
|
|
235
|
+
externalStatus: string;
|
|
236
|
+
throttleStatus: string;
|
|
237
|
+
dimension: string;
|
|
104
238
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
239
|
+
type PaymentRow = Record<string, unknown>;
|
|
240
|
+
/** payment.pending / payment.authorized / payment.voided — embed the full payment row. */
|
|
241
|
+
export interface PaymentEnvelopeData {
|
|
242
|
+
payment: PaymentRow;
|
|
243
|
+
}
|
|
244
|
+
export interface PaymentAuthorizationFailedData {
|
|
245
|
+
payment: PaymentRow;
|
|
246
|
+
errorCode: string;
|
|
247
|
+
errorMessage: string;
|
|
248
|
+
}
|
|
249
|
+
/** payment.captured — flat payload with monetary fields. */
|
|
250
|
+
export interface PaymentCapturedData {
|
|
251
|
+
paymentId: PaymentId;
|
|
252
|
+
orderId: OrderId | null;
|
|
108
253
|
amount: number;
|
|
109
254
|
currency: string;
|
|
110
|
-
|
|
255
|
+
processor?: string | null;
|
|
256
|
+
processorTransactionId?: string | null;
|
|
257
|
+
gr4vyTransactionId?: string | null;
|
|
258
|
+
metadata?: Record<string, unknown> | null;
|
|
111
259
|
}
|
|
112
|
-
export interface
|
|
113
|
-
paymentId:
|
|
114
|
-
orderId:
|
|
260
|
+
export interface PaymentCaptureFailedData {
|
|
261
|
+
paymentId: PaymentId;
|
|
262
|
+
orderId: OrderId | null;
|
|
115
263
|
amount: number;
|
|
116
264
|
currency: string;
|
|
265
|
+
errorCode: string;
|
|
266
|
+
errorMessage: string;
|
|
117
267
|
}
|
|
268
|
+
/** payment.failed — terminal failure/decline from the processor. */
|
|
118
269
|
export interface PaymentFailedData {
|
|
119
|
-
paymentId:
|
|
120
|
-
orderId:
|
|
121
|
-
|
|
122
|
-
|
|
270
|
+
paymentId: PaymentId;
|
|
271
|
+
orderId: OrderId | null;
|
|
272
|
+
amount?: number | null;
|
|
273
|
+
currency?: string | null;
|
|
274
|
+
code?: string | null;
|
|
275
|
+
message?: string | null;
|
|
276
|
+
errorCode?: string | null;
|
|
277
|
+
errorMessage?: string | null;
|
|
123
278
|
}
|
|
279
|
+
export interface PaymentVoidFailedData {
|
|
280
|
+
payment: PaymentRow;
|
|
281
|
+
errorCode: string;
|
|
282
|
+
errorMessage: string;
|
|
283
|
+
}
|
|
284
|
+
/** payment.refunded / payment.partially_refunded — flat refund payload. */
|
|
124
285
|
export interface PaymentRefundedData {
|
|
125
|
-
paymentId:
|
|
126
|
-
|
|
286
|
+
paymentId: PaymentId;
|
|
287
|
+
orderId: OrderId | null;
|
|
288
|
+
refundedAmount: number;
|
|
289
|
+
paymentAmount: number;
|
|
290
|
+
currency: string;
|
|
291
|
+
status?: string | null;
|
|
292
|
+
processor?: string | null;
|
|
293
|
+
gr4vyRefundId?: string | null;
|
|
294
|
+
}
|
|
295
|
+
/** payment.refund_failed */
|
|
296
|
+
export interface PaymentRefundFailedData {
|
|
297
|
+
paymentId: PaymentId;
|
|
298
|
+
orderId: OrderId | null;
|
|
127
299
|
amount: number;
|
|
128
300
|
currency: string;
|
|
301
|
+
gr4vyRefundId?: string | null;
|
|
302
|
+
errorCode?: string | null;
|
|
303
|
+
errorMessage?: string | null;
|
|
129
304
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
305
|
+
/** payment.vaulted — a reusable payment method was stored at checkout. */
|
|
306
|
+
export interface PaymentVaultedData {
|
|
307
|
+
customerId: CustomerId;
|
|
308
|
+
paymentMethodId: string;
|
|
309
|
+
gr4vyBuyerId: string;
|
|
310
|
+
processor: string;
|
|
311
|
+
checkoutSessionId: string;
|
|
312
|
+
recurring?: boolean | null;
|
|
135
313
|
}
|
|
136
|
-
export interface
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
carrier: string | null;
|
|
314
|
+
export interface PaymentDisputedData {
|
|
315
|
+
paymentId: PaymentId;
|
|
316
|
+
reason: string;
|
|
317
|
+
openedAt: string;
|
|
141
318
|
}
|
|
142
|
-
export interface
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
319
|
+
export interface PaymentDisputeClearedData {
|
|
320
|
+
paymentId: PaymentId;
|
|
321
|
+
}
|
|
322
|
+
type FulfillmentRow = Record<string, unknown>;
|
|
323
|
+
type ShipmentRow = Record<string, unknown>;
|
|
324
|
+
export interface FulfillmentEnvelopeData {
|
|
325
|
+
fulfillment: FulfillmentRow;
|
|
326
|
+
order: {
|
|
327
|
+
id: OrderId;
|
|
328
|
+
};
|
|
329
|
+
}
|
|
330
|
+
export interface FulfillmentShipmentShippedData {
|
|
331
|
+
fulfillment: FulfillmentRow;
|
|
332
|
+
shipment: ShipmentRow;
|
|
333
|
+
order: {
|
|
334
|
+
id: OrderId;
|
|
335
|
+
};
|
|
146
336
|
}
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
337
|
+
/** fulfillment.digital.delivered — digital asset was delivered to the customer. */
|
|
338
|
+
export interface FulfillmentDigitalDeliveredData {
|
|
339
|
+
fulfillment: FulfillmentRow;
|
|
340
|
+
order: {
|
|
341
|
+
id: OrderId;
|
|
342
|
+
};
|
|
343
|
+
}
|
|
344
|
+
type SubscriptionRow = Record<string, unknown>;
|
|
345
|
+
type PaymentMethodRow = Record<string, unknown>;
|
|
346
|
+
type WorkspaceRow = Record<string, unknown>;
|
|
347
|
+
type ChargeRow = Record<string, unknown>;
|
|
348
|
+
type InvoiceRow = Record<string, unknown>;
|
|
349
|
+
export interface SubscriptionEnvelopeData {
|
|
350
|
+
subscription: SubscriptionRow;
|
|
154
351
|
}
|
|
155
352
|
export interface SubscriptionUpdatedData {
|
|
156
|
-
|
|
157
|
-
|
|
353
|
+
subscription: SubscriptionRow;
|
|
354
|
+
cancelAtPeriodEnd?: boolean;
|
|
158
355
|
}
|
|
159
356
|
export interface SubscriptionCancelledData {
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
357
|
+
subscription: SubscriptionRow;
|
|
358
|
+
reason?: string | null;
|
|
359
|
+
atPeriodEnd?: boolean;
|
|
360
|
+
lastError?: string | null;
|
|
163
361
|
}
|
|
164
362
|
export interface SubscriptionRenewedData {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
363
|
+
subscription: SubscriptionRow;
|
|
364
|
+
payment?: PaymentRow;
|
|
365
|
+
order?: OrderRow;
|
|
366
|
+
freeRenewal?: boolean;
|
|
168
367
|
}
|
|
169
|
-
export interface
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
368
|
+
export interface SubscriptionPaymentFailedData {
|
|
369
|
+
subscription: SubscriptionRow;
|
|
370
|
+
attempt: number;
|
|
371
|
+
nextRetryAt: string | null;
|
|
372
|
+
lastError: string;
|
|
173
373
|
}
|
|
174
|
-
export interface
|
|
175
|
-
|
|
176
|
-
|
|
374
|
+
export interface SubscriptionTrialBlockedData {
|
|
375
|
+
subscriptionId: SubscriptionId;
|
|
376
|
+
customerId: CustomerId;
|
|
377
|
+
paymentMethodId: string;
|
|
378
|
+
reason: string;
|
|
379
|
+
requestedTrialDays: number;
|
|
380
|
+
}
|
|
381
|
+
type CustomerRow = Record<string, unknown>;
|
|
382
|
+
type CartRow = Record<string, unknown>;
|
|
383
|
+
export interface DiscountAppliedData {
|
|
384
|
+
cart: CartRow;
|
|
385
|
+
code: string;
|
|
386
|
+
cartId: CartId;
|
|
387
|
+
}
|
|
388
|
+
export interface DiscountRemovedData {
|
|
389
|
+
cart: CartRow;
|
|
390
|
+
cartId: CartId;
|
|
391
|
+
}
|
|
392
|
+
export interface CustomerEnvelopeData {
|
|
393
|
+
customer: CustomerRow;
|
|
394
|
+
}
|
|
395
|
+
export interface CustomerPaymentMethodData {
|
|
396
|
+
paymentMethod: PaymentMethodRow;
|
|
397
|
+
}
|
|
398
|
+
export interface ShippingTaxProviderUnhealthyData {
|
|
399
|
+
connection_id: string;
|
|
400
|
+
axis: 'shipping' | 'tax';
|
|
401
|
+
provider: string;
|
|
402
|
+
environment: string;
|
|
403
|
+
application_id: string;
|
|
404
|
+
workspace_id: string;
|
|
405
|
+
consecutive_failures: number;
|
|
406
|
+
last_error_reason: string | null;
|
|
407
|
+
last_error_detail: string | null;
|
|
408
|
+
last_error_at: string;
|
|
409
|
+
fallback_policy: string;
|
|
410
|
+
}
|
|
411
|
+
export interface WorkspacePaymentMethodData {
|
|
412
|
+
workspace: WorkspaceRow;
|
|
413
|
+
paymentMethod: PaymentMethodRow;
|
|
414
|
+
}
|
|
415
|
+
export interface WorkspaceDefaultPaymentMethodChangedData {
|
|
416
|
+
workspace: WorkspaceRow;
|
|
417
|
+
paymentMethod: PaymentMethodRow;
|
|
418
|
+
previousPaymentMethod?: PaymentMethodRow | null;
|
|
419
|
+
}
|
|
420
|
+
export interface WorkspaceBackupPmUsedData {
|
|
421
|
+
workspace: WorkspaceRow;
|
|
422
|
+
primaryPaymentMethod: PaymentMethodRow;
|
|
423
|
+
backupPaymentMethod: PaymentMethodRow;
|
|
424
|
+
charge: ChargeRow;
|
|
425
|
+
}
|
|
426
|
+
export interface WorkspacePlatformChargeSucceededData {
|
|
427
|
+
workspace: WorkspaceRow;
|
|
428
|
+
invoice: InvoiceRow;
|
|
429
|
+
charge: ChargeRow;
|
|
430
|
+
}
|
|
431
|
+
export interface WorkspacePlatformChargeFailedData {
|
|
432
|
+
workspace: WorkspaceRow;
|
|
433
|
+
charge: ChargeRow;
|
|
434
|
+
error: string;
|
|
435
|
+
}
|
|
436
|
+
export interface WorkspaceTrialExpiredData {
|
|
437
|
+
workspace: WorkspaceRow;
|
|
438
|
+
expiredAt: string;
|
|
439
|
+
}
|
|
440
|
+
export interface InvoicePastDueData {
|
|
441
|
+
paymentId: string;
|
|
442
|
+
orderId: string;
|
|
443
|
+
invoiceNumber?: string | null;
|
|
444
|
+
daysPastDue: number;
|
|
445
|
+
tickFired: string;
|
|
446
|
+
dueDate: string;
|
|
447
|
+
totalAmount: number;
|
|
448
|
+
currency: string;
|
|
177
449
|
}
|
|
178
450
|
type Event<T extends string, D> = {
|
|
179
451
|
type: T;
|
|
180
452
|
data: D;
|
|
181
453
|
};
|
|
182
|
-
export type WebhookEvent = Event<'cart.created', CartCreatedData> | Event<'cart.updated', CartUpdatedData> | Event<'cart.item_added', CartItemAddedData> | Event<'cart.item_updated', CartItemUpdatedData> | Event<'cart.item_removed', CartItemRemovedData> | Event<'cart.shipping_selected', CartShippingSelectedData> | Event<'cart.shipping_cleared',
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
export type
|
|
454
|
+
export type WebhookEvent = Event<'cart.created', CartCreatedData> | Event<'cart.updated', CartUpdatedData> | Event<'cart.item_added', CartItemAddedData> | Event<'cart.item_updated', CartItemUpdatedData> | Event<'cart.item_removed', CartItemRemovedData> | Event<'cart.shipping_selected', CartShippingSelectedData> | Event<'cart.shipping_cleared', CartShippingClearedData> | Event<'cart.discount_applied', CartDiscountAppliedData> | Event<'cart.discount_removed', CartDiscountRemovedData> | Event<'cart.tax_recomputed', CartTaxRecomputedData> | Event<'cart.checkout_started', CartCheckoutStartedData> | Event<'cart.converted', CartConvertedData> | Event<'cart.abandoned', CartAbandonedData> | Event<'cart.expired', CartExpiredData> | Event<'cart.merged', CartMergedData> | Event<'checkout.session.created', CheckoutSessionCreatedData> | Event<'checkout.session.completed', CheckoutSessionCompletedData> | Event<'order.created', OrderCreatedData> | Event<'order.updated', OrderStatusTransitionData> | Event<'order.completed', OrderStatusTransitionData> | Event<'order.cancelled', OrderStatusTransitionData> | Event<'order.closed', OrderStatusTransitionData> | Event<'order.sync_failed', OrderSyncFailedData> | Event<'order.sync_conflict', OrderSyncConflictData> | Event<'payment.pending', PaymentEnvelopeData> | Event<'payment.authorized', PaymentEnvelopeData> | Event<'payment.authorization_failed', PaymentAuthorizationFailedData> | Event<'payment.captured', PaymentCapturedData> | Event<'payment.capture_failed', PaymentCaptureFailedData> | Event<'payment.failed', PaymentFailedData> | Event<'payment.voided', PaymentEnvelopeData> | Event<'payment.void_failed', PaymentVoidFailedData> | Event<'payment.refunded', PaymentRefundedData> | Event<'payment.partially_refunded', PaymentRefundedData> | Event<'payment.refund_failed', PaymentRefundFailedData> | Event<'payment.vaulted', PaymentVaultedData> | Event<'payment.disputed', PaymentDisputedData> | Event<'payment.dispute_cleared', PaymentDisputeClearedData> | Event<'fulfillment.created', FulfillmentEnvelopeData> | Event<'fulfillment.completed', FulfillmentEnvelopeData> | Event<'fulfillment.cancelled', FulfillmentEnvelopeData> | Event<'fulfillment.shipment.shipped', FulfillmentShipmentShippedData> | Event<'fulfillment.shipment.delivered', FulfillmentEnvelopeData> | Event<'fulfillment.digital.delivered', FulfillmentDigitalDeliveredData> | Event<'subscription.created', SubscriptionEnvelopeData> | Event<'subscription.activated', SubscriptionEnvelopeData> | Event<'subscription.updated', SubscriptionUpdatedData> | Event<'subscription.paused', SubscriptionEnvelopeData> | Event<'subscription.resumed', SubscriptionEnvelopeData> | Event<'subscription.cancelled', SubscriptionCancelledData> | Event<'subscription.renewed', SubscriptionRenewedData> | Event<'subscription.past_due', SubscriptionEnvelopeData> | Event<'subscription.payment_failed', SubscriptionPaymentFailedData> | Event<'subscription.create_failed', SubscriptionEnvelopeData> | Event<'subscription.trial_blocked', SubscriptionTrialBlockedData> | Event<'discount.applied', DiscountAppliedData> | Event<'discount.removed', DiscountRemovedData> | Event<'customer.created', CustomerEnvelopeData> | Event<'customer.updated', CustomerEnvelopeData> | Event<'customer.deleted', CustomerEnvelopeData> | Event<'customer.payment_method_added', CustomerPaymentMethodData> | Event<'customer.payment_method_removed', CustomerPaymentMethodData> | Event<'invoice.past_due', InvoicePastDueData> | Event<'shipping_tax.provider_connection.unhealthy', ShippingTaxProviderUnhealthyData> | Event<'workspace.payment_method.added', WorkspacePaymentMethodData> | Event<'workspace.payment_method.removed', WorkspacePaymentMethodData> | Event<'workspace.payment_method.default_changed', WorkspaceDefaultPaymentMethodChangedData> | Event<'workspace.payment_method.backup_set', WorkspacePaymentMethodData> | Event<'workspace.payment_method.backup_used', WorkspaceBackupPmUsedData> | Event<'workspace.platform_charge.succeeded', WorkspacePlatformChargeSucceededData> | Event<'workspace.platform_charge.failed', WorkspacePlatformChargeFailedData> | Event<'workspace.trial_expired', WorkspaceTrialExpiredData>;
|
|
455
|
+
/** Union of every event type string emitted by the Throttle outbound bus. */
|
|
456
|
+
export type WebhookEventType = WebhookEvent['type'];
|
|
457
|
+
/**
|
|
458
|
+
* A `ThrottleEventEnvelope` over the full `WebhookEvent` discriminated union.
|
|
459
|
+
* Cast incoming webhook bodies to this type and switch on `event.type` to
|
|
460
|
+
* get fully-narrowed `event.data` access with no explicit casts.
|
|
461
|
+
*
|
|
462
|
+
* ```ts
|
|
463
|
+
* const event = req.body as ThrottleEvent;
|
|
464
|
+
* if (event.type === 'order.created') {
|
|
465
|
+
* // event.data is OrderCreatedData here
|
|
466
|
+
* }
|
|
467
|
+
* ```
|
|
468
|
+
*/
|
|
469
|
+
export type ThrottleEvent = {
|
|
470
|
+
[E in WebhookEvent as E['type']]: ThrottleEventEnvelope<E['type'], E['data']>;
|
|
471
|
+
}[WebhookEvent['type']];
|
|
472
|
+
/**
|
|
473
|
+
* Narrows a `ThrottleEvent` to a specific event type.
|
|
474
|
+
* Useful for single-event handler signatures:
|
|
475
|
+
*
|
|
476
|
+
* ```ts
|
|
477
|
+
* function onPaymentCaptured(ev: ThrottleEventOfType<'payment.captured'>) {
|
|
478
|
+
* console.log(ev.data.paymentId, ev.data.amount);
|
|
479
|
+
* }
|
|
480
|
+
* ```
|
|
481
|
+
*/
|
|
482
|
+
export type ThrottleEventOfType<T extends WebhookEventType> = Extract<ThrottleEvent, {
|
|
483
|
+
type: T;
|
|
484
|
+
}>;
|
|
485
|
+
/** Runtime mirror of the WebhookEvent union — keep in lockstep with it.
|
|
486
|
+
* The `satisfies` clause makes tsc fail if a string is not a real union member.
|
|
487
|
+
* The parity test (event-parity.test.ts) makes it fail if any entry is missing
|
|
488
|
+
* from the @core/scopes canonical registry. */
|
|
489
|
+
export declare const WEBHOOK_EVENT_TYPES: readonly ["cart.created", "cart.updated", "cart.item_added", "cart.item_updated", "cart.item_removed", "cart.shipping_selected", "cart.shipping_cleared", "cart.discount_applied", "cart.discount_removed", "cart.tax_recomputed", "cart.checkout_started", "cart.converted", "cart.abandoned", "cart.expired", "cart.merged", "checkout.session.created", "checkout.session.completed", "order.created", "order.updated", "order.completed", "order.cancelled", "order.closed", "order.sync_failed", "order.sync_conflict", "payment.pending", "payment.authorized", "payment.authorization_failed", "payment.captured", "payment.capture_failed", "payment.failed", "payment.voided", "payment.void_failed", "payment.refunded", "payment.partially_refunded", "payment.refund_failed", "payment.vaulted", "payment.disputed", "payment.dispute_cleared", "fulfillment.created", "fulfillment.completed", "fulfillment.cancelled", "fulfillment.shipment.shipped", "fulfillment.shipment.delivered", "fulfillment.digital.delivered", "subscription.created", "subscription.activated", "subscription.updated", "subscription.paused", "subscription.resumed", "subscription.cancelled", "subscription.renewed", "subscription.past_due", "subscription.payment_failed", "subscription.create_failed", "subscription.trial_blocked", "discount.applied", "discount.removed", "customer.created", "customer.updated", "customer.deleted", "customer.payment_method_added", "customer.payment_method_removed", "invoice.past_due", "shipping_tax.provider_connection.unhealthy", "workspace.payment_method.added", "workspace.payment_method.removed", "workspace.payment_method.default_changed", "workspace.payment_method.backup_set", "workspace.payment_method.backup_used", "workspace.platform_charge.succeeded", "workspace.platform_charge.failed", "workspace.trial_expired"];
|
|
198
490
|
/**
|
|
199
491
|
* Verifies the `Throttle-Signature` header against the raw request body.
|
|
200
492
|
* Use this from your webhook handler BEFORE parsing the JSON.
|
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
|
@@ -2,21 +2,102 @@
|
|
|
2
2
|
* @usethrottle/webhook-types
|
|
3
3
|
*
|
|
4
4
|
* TypeScript discriminated unions for every Throttle outbound webhook event.
|
|
5
|
-
* Keyed by `event.type
|
|
6
|
-
*
|
|
5
|
+
* Keyed by `event.type` (legacy) or top-level `type` (ThrottleEventEnvelope),
|
|
6
|
+
* this lets your handler narrow the payload without casts.
|
|
7
7
|
*
|
|
8
|
-
* Coverage: all
|
|
9
|
-
*
|
|
10
|
-
* payment, fulfillment, subscription core lifecycle)
|
|
11
|
-
*
|
|
8
|
+
* Coverage: all 68 outbound event types emitted by the Throttle outbound bus
|
|
9
|
+
* are enumerated in `WebhookEventType`. The most-integrated events (cart,
|
|
10
|
+
* checkout, order, payment, fulfillment, subscription, customer core lifecycle)
|
|
11
|
+
* get typed `data` shapes. The remaining events resolve to
|
|
12
|
+
* `data: Record<string, unknown>`.
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
-
* event
|
|
14
|
+
* Source of truth: `packages/platform-webhooks/src/outbound/events.ts` in the
|
|
15
|
+
* Throttle monorepo. The event registry there is the only place event names
|
|
16
|
+
* are allowed to be added; this package mirrors that file.
|
|
17
|
+
*
|
|
18
|
+
* Includes a Stripe-compatible signature verification helper.
|
|
19
|
+
*
|
|
20
|
+
* ## Wire format (ThrottleEventEnvelope)
|
|
21
|
+
*
|
|
22
|
+
* The outbound worker (`packages/platform-webhooks/src/outbound/dispatcher.ts`)
|
|
23
|
+
* delivers the following flat JSON body to your endpoint:
|
|
24
|
+
*
|
|
25
|
+
* ```json
|
|
26
|
+
* {
|
|
27
|
+
* "id": "<uuid-v7>",
|
|
28
|
+
* "type": "<event-type>",
|
|
29
|
+
* "version": "1",
|
|
30
|
+
* "createdAt": "<ISO-8601>",
|
|
31
|
+
* "environmentId": "<workspace-environment-uuid>",
|
|
32
|
+
* "workspaceId": "<ws_...>",
|
|
33
|
+
* "data": { ... }
|
|
34
|
+
* }
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* `version` is `'1'` for all currently-defined events; Throttle will increment
|
|
38
|
+
* it on breaking payload changes. `environmentId` identifies the workspace
|
|
39
|
+
* environment that emitted the event, so production and every non-production
|
|
40
|
+
* environment route independently. `applicationId` is not exposed at the
|
|
41
|
+
* envelope level.
|
|
42
|
+
*
|
|
43
|
+
* **Existing `WebhookEnvelope` consumers are unaffected** — the `event:
|
|
44
|
+
* { type, data }` nesting in that type is an in-memory representation only.
|
|
45
|
+
* The wire format flattens `type` and `data` to the top level of the envelope.
|
|
46
|
+
*
|
|
47
|
+
* The legacy `WebhookEnvelope` type (with its `event: { type, data }` nesting)
|
|
48
|
+
* is retained for back-compat and describes the in-memory representation used
|
|
49
|
+
* by internal consumers; external integrations should use `ThrottleEventEnvelope`.
|
|
15
50
|
*/
|
|
51
|
+
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
52
|
+
/** Runtime mirror of the WebhookEvent union — keep in lockstep with it.
|
|
53
|
+
* The `satisfies` clause makes tsc fail if a string is not a real union member.
|
|
54
|
+
* The parity test (event-parity.test.ts) makes it fail if any entry is missing
|
|
55
|
+
* from the @core/scopes canonical registry. */
|
|
56
|
+
export const WEBHOOK_EVENT_TYPES = [
|
|
57
|
+
// Cart
|
|
58
|
+
'cart.created', 'cart.updated', 'cart.item_added', 'cart.item_updated', 'cart.item_removed',
|
|
59
|
+
'cart.shipping_selected', 'cart.shipping_cleared', 'cart.discount_applied', 'cart.discount_removed',
|
|
60
|
+
'cart.tax_recomputed', 'cart.checkout_started', 'cart.converted', 'cart.abandoned', 'cart.expired', 'cart.merged',
|
|
61
|
+
// Checkout session
|
|
62
|
+
'checkout.session.created', 'checkout.session.completed',
|
|
63
|
+
// Order
|
|
64
|
+
'order.created', 'order.updated', 'order.completed', 'order.cancelled', 'order.closed',
|
|
65
|
+
'order.sync_failed', 'order.sync_conflict',
|
|
66
|
+
// Payment
|
|
67
|
+
'payment.pending', 'payment.authorized', 'payment.authorization_failed', 'payment.captured',
|
|
68
|
+
'payment.capture_failed', 'payment.failed', 'payment.voided', 'payment.void_failed',
|
|
69
|
+
'payment.refunded', 'payment.partially_refunded', 'payment.refund_failed', 'payment.vaulted',
|
|
70
|
+
'payment.disputed', 'payment.dispute_cleared',
|
|
71
|
+
// Fulfillment
|
|
72
|
+
'fulfillment.created', 'fulfillment.completed', 'fulfillment.cancelled',
|
|
73
|
+
'fulfillment.shipment.shipped', 'fulfillment.shipment.delivered',
|
|
74
|
+
'fulfillment.digital.delivered',
|
|
75
|
+
// Subscription
|
|
76
|
+
'subscription.created', 'subscription.activated', 'subscription.updated', 'subscription.paused',
|
|
77
|
+
'subscription.resumed', 'subscription.cancelled', 'subscription.renewed', 'subscription.past_due',
|
|
78
|
+
'subscription.payment_failed', 'subscription.create_failed', 'subscription.trial_blocked',
|
|
79
|
+
// Discount
|
|
80
|
+
'discount.applied', 'discount.removed',
|
|
81
|
+
// Customer
|
|
82
|
+
'customer.created', 'customer.updated', 'customer.deleted',
|
|
83
|
+
'customer.payment_method_added', 'customer.payment_method_removed',
|
|
84
|
+
// AR / Net30 invoice
|
|
85
|
+
'invoice.past_due',
|
|
86
|
+
// Shipping & tax provider health
|
|
87
|
+
'shipping_tax.provider_connection.unhealthy',
|
|
88
|
+
// Workspace payment methods (platform-billing)
|
|
89
|
+
'workspace.payment_method.added', 'workspace.payment_method.removed',
|
|
90
|
+
'workspace.payment_method.default_changed', 'workspace.payment_method.backup_set',
|
|
91
|
+
'workspace.payment_method.backup_used',
|
|
92
|
+
// Platform billing charges
|
|
93
|
+
'workspace.platform_charge.succeeded', 'workspace.platform_charge.failed',
|
|
94
|
+
// Workspace lifecycle
|
|
95
|
+
'workspace.trial_expired',
|
|
96
|
+
];
|
|
97
|
+
const _assertAllEventsListed = true;
|
|
16
98
|
// ----------------------------------------------------------------------------
|
|
17
99
|
// Signature verification (Stripe-compatible scheme)
|
|
18
100
|
// ----------------------------------------------------------------------------
|
|
19
|
-
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
20
101
|
/**
|
|
21
102
|
* Verifies the `Throttle-Signature` header against the raw request body.
|
|
22
103
|
* Use this from your webhook handler BEFORE parsing the JSON.
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
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": "@usethrottle/webhook-types",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.0",
|
|
4
4
|
"description": "TypeScript discriminated unions for every Throttle outbound webhook event.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"test": "tsc --noEmit && vitest run --passWithNoTests"
|
|
17
17
|
},
|
|
18
18
|
"devDependencies": {
|
|
19
|
+
"@core/scopes": "workspace:*",
|
|
19
20
|
"@types/node": "^20.0.0",
|
|
20
21
|
"typescript": "^5.7.0",
|
|
21
22
|
"vitest": "^2.1.9"
|