@trigger.dev/core 4.7.3 → 4.8.0-webhooks.20261015065339

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.
Files changed (131) hide show
  1. package/dist/commonjs/logger.js +1 -0
  2. package/dist/commonjs/logger.js.map +1 -1
  3. package/dist/commonjs/v3/apiClient/errors.d.ts +3 -1
  4. package/dist/commonjs/v3/apiClient/errors.js +17 -13
  5. package/dist/commonjs/v3/apiClient/errors.js.map +1 -1
  6. package/dist/commonjs/v3/apiClient/index.d.ts +86 -5
  7. package/dist/commonjs/v3/apiClient/index.js +76 -2
  8. package/dist/commonjs/v3/apiClient/index.js.map +1 -1
  9. package/dist/commonjs/v3/apiClient/runTracePages.d.ts +14 -0
  10. package/dist/commonjs/v3/apiClient/runTracePages.js +120 -0
  11. package/dist/commonjs/v3/apiClient/runTracePages.js.map +1 -0
  12. package/dist/commonjs/v3/errors.d.ts +25 -2
  13. package/dist/commonjs/v3/errors.js +51 -12
  14. package/dist/commonjs/v3/errors.js.map +1 -1
  15. package/dist/commonjs/v3/index.d.ts +1 -0
  16. package/dist/commonjs/v3/index.js +1 -0
  17. package/dist/commonjs/v3/index.js.map +1 -1
  18. package/dist/commonjs/v3/isomorphic/friendlyId.d.ts +14 -3
  19. package/dist/commonjs/v3/isomorphic/friendlyId.js +45 -16
  20. package/dist/commonjs/v3/isomorphic/friendlyId.js.map +1 -1
  21. package/dist/commonjs/v3/isomorphic/index.d.ts +1 -0
  22. package/dist/commonjs/v3/isomorphic/index.js +1 -0
  23. package/dist/commonjs/v3/isomorphic/index.js.map +1 -1
  24. package/dist/commonjs/v3/isomorphic/webhookDeliveryRetention.d.ts +19 -0
  25. package/dist/commonjs/v3/isomorphic/webhookDeliveryRetention.js +27 -0
  26. package/dist/commonjs/v3/isomorphic/webhookDeliveryRetention.js.map +1 -0
  27. package/dist/commonjs/v3/runEngineWorker/supervisor/http.d.ts +2 -5
  28. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.d.ts +4 -41
  29. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js +4 -20
  30. package/dist/commonjs/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
  31. package/dist/commonjs/v3/runEngineWorker/supervisor/session.d.ts +2 -0
  32. package/dist/commonjs/v3/runEngineWorker/supervisor/session.js +1 -0
  33. package/dist/commonjs/v3/runEngineWorker/supervisor/session.js.map +1 -1
  34. package/dist/commonjs/v3/runEngineWorker/workload/http.d.ts +1 -2
  35. package/dist/commonjs/v3/runEngineWorker/workload/http.js +2 -5
  36. package/dist/commonjs/v3/runEngineWorker/workload/http.js.map +1 -1
  37. package/dist/commonjs/v3/runEngineWorker/workload/schemas.d.ts +2 -22
  38. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js +1 -2
  39. package/dist/commonjs/v3/runEngineWorker/workload/schemas.js.map +1 -1
  40. package/dist/commonjs/v3/schemas/api.d.ts +100 -9
  41. package/dist/commonjs/v3/schemas/api.js +76 -3
  42. package/dist/commonjs/v3/schemas/api.js.map +1 -1
  43. package/dist/commonjs/v3/schemas/build.d.ts +4 -0
  44. package/dist/commonjs/v3/schemas/build.js +2 -0
  45. package/dist/commonjs/v3/schemas/build.js.map +1 -1
  46. package/dist/commonjs/v3/schemas/checkpoints.d.ts +2 -9
  47. package/dist/commonjs/v3/schemas/messages.d.ts +1 -0
  48. package/dist/commonjs/v3/schemas/messages.js +2 -0
  49. package/dist/commonjs/v3/schemas/messages.js.map +1 -1
  50. package/dist/commonjs/v3/schemas/queues.d.ts +77 -3
  51. package/dist/commonjs/v3/schemas/queues.js +101 -6
  52. package/dist/commonjs/v3/schemas/queues.js.map +1 -1
  53. package/dist/commonjs/v3/schemas/runEngine.d.ts +11 -11
  54. package/dist/commonjs/v3/schemas/runEngine.js +10 -5
  55. package/dist/commonjs/v3/schemas/runEngine.js.map +1 -1
  56. package/dist/commonjs/v3/schemas/webhookFilter.d.ts +65 -13
  57. package/dist/commonjs/v3/types/chatEvents.d.ts +26 -4
  58. package/dist/commonjs/v3/types/webhooks.d.ts +27 -0
  59. package/dist/commonjs/v3/webhooks/index.d.ts +4 -4
  60. package/dist/commonjs/v3/webhooks/index.js +22 -3
  61. package/dist/commonjs/v3/webhooks/index.js.map +1 -1
  62. package/dist/commonjs/version.js +1 -1
  63. package/dist/esm/logger.js +1 -0
  64. package/dist/esm/logger.js.map +1 -1
  65. package/dist/esm/v3/apiClient/errors.d.ts +3 -1
  66. package/dist/esm/v3/apiClient/errors.js +17 -13
  67. package/dist/esm/v3/apiClient/errors.js.map +1 -1
  68. package/dist/esm/v3/apiClient/index.d.ts +86 -5
  69. package/dist/esm/v3/apiClient/index.js +74 -3
  70. package/dist/esm/v3/apiClient/index.js.map +1 -1
  71. package/dist/esm/v3/apiClient/runTracePages.d.ts +14 -0
  72. package/dist/esm/v3/apiClient/runTracePages.js +117 -0
  73. package/dist/esm/v3/apiClient/runTracePages.js.map +1 -0
  74. package/dist/esm/v3/errors.d.ts +25 -2
  75. package/dist/esm/v3/errors.js +45 -10
  76. package/dist/esm/v3/errors.js.map +1 -1
  77. package/dist/esm/v3/index.d.ts +1 -0
  78. package/dist/esm/v3/index.js +1 -0
  79. package/dist/esm/v3/index.js.map +1 -1
  80. package/dist/esm/v3/isomorphic/friendlyId.d.ts +14 -3
  81. package/dist/esm/v3/isomorphic/friendlyId.js +45 -16
  82. package/dist/esm/v3/isomorphic/friendlyId.js.map +1 -1
  83. package/dist/esm/v3/isomorphic/index.d.ts +1 -0
  84. package/dist/esm/v3/isomorphic/index.js +1 -0
  85. package/dist/esm/v3/isomorphic/index.js.map +1 -1
  86. package/dist/esm/v3/isomorphic/webhookDeliveryRetention.d.ts +19 -0
  87. package/dist/esm/v3/isomorphic/webhookDeliveryRetention.js +21 -0
  88. package/dist/esm/v3/isomorphic/webhookDeliveryRetention.js.map +1 -0
  89. package/dist/esm/v3/runEngineWorker/supervisor/http.d.ts +2 -5
  90. package/dist/esm/v3/runEngineWorker/supervisor/schemas.d.ts +4 -41
  91. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js +3 -19
  92. package/dist/esm/v3/runEngineWorker/supervisor/schemas.js.map +1 -1
  93. package/dist/esm/v3/runEngineWorker/supervisor/session.d.ts +2 -0
  94. package/dist/esm/v3/runEngineWorker/supervisor/session.js +1 -0
  95. package/dist/esm/v3/runEngineWorker/supervisor/session.js.map +1 -1
  96. package/dist/esm/v3/runEngineWorker/workload/http.d.ts +1 -2
  97. package/dist/esm/v3/runEngineWorker/workload/http.js +2 -5
  98. package/dist/esm/v3/runEngineWorker/workload/http.js.map +1 -1
  99. package/dist/esm/v3/runEngineWorker/workload/schemas.d.ts +2 -22
  100. package/dist/esm/v3/runEngineWorker/workload/schemas.js +1 -2
  101. package/dist/esm/v3/runEngineWorker/workload/schemas.js.map +1 -1
  102. package/dist/esm/v3/schemas/api.d.ts +100 -9
  103. package/dist/esm/v3/schemas/api.js +73 -0
  104. package/dist/esm/v3/schemas/api.js.map +1 -1
  105. package/dist/esm/v3/schemas/build.d.ts +4 -0
  106. package/dist/esm/v3/schemas/build.js +2 -0
  107. package/dist/esm/v3/schemas/build.js.map +1 -1
  108. package/dist/esm/v3/schemas/checkpoints.d.ts +2 -9
  109. package/dist/esm/v3/schemas/messages.d.ts +1 -0
  110. package/dist/esm/v3/schemas/messages.js +2 -0
  111. package/dist/esm/v3/schemas/messages.js.map +1 -1
  112. package/dist/esm/v3/schemas/queues.d.ts +77 -3
  113. package/dist/esm/v3/schemas/queues.js +100 -5
  114. package/dist/esm/v3/schemas/queues.js.map +1 -1
  115. package/dist/esm/v3/schemas/runEngine.d.ts +11 -11
  116. package/dist/esm/v3/schemas/runEngine.js +8 -7
  117. package/dist/esm/v3/schemas/runEngine.js.map +1 -1
  118. package/dist/esm/v3/schemas/webhookFilter.d.ts +65 -13
  119. package/dist/esm/v3/types/chatEvents.d.ts +26 -4
  120. package/dist/esm/v3/types/webhooks.d.ts +27 -0
  121. package/dist/esm/v3/webhooks/index.d.ts +4 -4
  122. package/dist/esm/v3/webhooks/index.js +22 -3
  123. package/dist/esm/v3/webhooks/index.js.map +1 -1
  124. package/dist/esm/version.js +1 -1
  125. package/package.json +1 -1
  126. package/dist/commonjs/v3/schemas/snapshotRoute.d.ts +0 -33
  127. package/dist/commonjs/v3/schemas/snapshotRoute.js +0 -33
  128. package/dist/commonjs/v3/schemas/snapshotRoute.js.map +0 -1
  129. package/dist/esm/v3/schemas/snapshotRoute.d.ts +0 -33
  130. package/dist/esm/v3/schemas/snapshotRoute.js +0 -30
  131. package/dist/esm/v3/schemas/snapshotRoute.js.map +0 -1
@@ -137,14 +137,109 @@ export const ListConcurrencyLimitOptions = z.object({
137
137
  page: z.number().optional(),
138
138
  perPage: z.number().optional(),
139
139
  });
140
- /** Changes only the given bounds. Zero blocks every run holding the limit, which
141
- * is how a limit is paused; `reset` restores the declared values. */
142
- export const OverrideConcurrencyLimitRequestBody = z
140
+ /** A concurrency-key value as callers write it: numbers are accepted and stored as strings,
141
+ * matching how a trigger's `concurrencyKey` is coerced. */
142
+ const OverrideConcurrencyKeySchema = z
143
+ .union([z.string(), z.number()])
144
+ .transform((value) => String(value))
145
+ .pipe(z.string().min(1).max(128));
146
+ const ConcurrencyBoundSchema = z.number().int().min(0).max(100000);
147
+ const OverrideTtlSchema = z.string().or(z.number().int().positive());
148
+ /** Changes only the given bounds of the limit itself. Zero blocks every run holding
149
+ * the limit, which is how a limit is paused; `reset` restores the declared values. */
150
+ export const OverrideConcurrencyLimitBoundsBody = z
143
151
  .object({
144
- perKey: z.number().int().min(0).max(100000).optional(),
145
- total: z.number().int().min(0).max(100000).optional(),
152
+ perKey: ConcurrencyBoundSchema.optional(),
153
+ total: ConcurrencyBoundSchema.optional(),
154
+ concurrencyKey: z.never().optional(),
155
+ ttl: z.never().optional(),
146
156
  })
147
157
  .refine((body) => body.perKey !== undefined || body.total !== undefined, {
148
158
  message: "Provide at least one of `perKey` or `total`",
149
159
  });
160
+ /** A temporary per-key cap on this limit's `perKey` for one concurrencyKey: `0`
161
+ * blocks the key, and the override expires after `ttl` (a duration such as `"7d"`
162
+ * or a number of seconds; default 7 days, at most 30 days). `total` is not per key,
163
+ * so it cannot be given here. `reset` with the same `concurrencyKey` clears it. */
164
+ export const OverrideConcurrencyLimitKeyBody = z.object({
165
+ concurrencyKey: OverrideConcurrencyKeySchema,
166
+ perKey: ConcurrencyBoundSchema,
167
+ ttl: OverrideTtlSchema.optional(),
168
+ total: z.never().optional(),
169
+ });
170
+ /** Either the limit's own bounds or a per-key cap, told apart by `concurrencyKey`.
171
+ * The output type is the union of the two shapes above, so `total` with a key, a key
172
+ * without `perKey`, and `ttl` without a key are type errors for SDK callers. Parsing
173
+ * goes through one flat object with cross-field checks rather than a `z.union`, so an
174
+ * HTTP caller gets a single message naming the field at fault instead of the failures
175
+ * of both branches. */
176
+ export const OverrideConcurrencyLimitRequestBody = z
177
+ .object({
178
+ perKey: ConcurrencyBoundSchema.optional(),
179
+ total: ConcurrencyBoundSchema.optional(),
180
+ concurrencyKey: OverrideConcurrencyKeySchema.optional(),
181
+ ttl: OverrideTtlSchema.optional(),
182
+ })
183
+ .superRefine((body, ctx) => {
184
+ if (body.concurrencyKey !== undefined) {
185
+ if (body.perKey === undefined) {
186
+ ctx.addIssue({
187
+ code: "custom",
188
+ path: ["perKey"],
189
+ message: "A per-key override needs `perKey`",
190
+ });
191
+ }
192
+ if (body.total !== undefined) {
193
+ ctx.addIssue({
194
+ code: "custom",
195
+ path: ["total"],
196
+ message: "`total` is not per key; omit it when overriding one concurrencyKey",
197
+ });
198
+ }
199
+ return;
200
+ }
201
+ if (body.ttl !== undefined) {
202
+ ctx.addIssue({
203
+ code: "custom",
204
+ path: ["ttl"],
205
+ message: "`ttl` only applies to a per-key override; pass `concurrencyKey` with it",
206
+ });
207
+ }
208
+ if (body.perKey === undefined && body.total === undefined) {
209
+ ctx.addIssue({
210
+ code: "custom",
211
+ message: "Provide at least one of `perKey` or `total`",
212
+ });
213
+ }
214
+ })
215
+ .transform((body) => body);
216
+ /** `reset` with a `concurrencyKey` clears that key's override and leaves the limit
217
+ * itself alone; without one it resets the limit's own override. */
218
+ export const ResetConcurrencyLimitRequestBody = z.object({
219
+ concurrencyKey: OverrideConcurrencyKeySchema.optional(),
220
+ });
221
+ export const RetrieveConcurrencyLimitOptions = z.object({
222
+ /** Return the view of this limit for one concurrencyKey instead of the limit itself. */
223
+ concurrencyKey: OverrideConcurrencyKeySchema.optional(),
224
+ });
225
+ /** The per-key bound of a limit for one concurrencyKey: `base` is the limit's own
226
+ * `perKey` as enforced, `override` the key's temporary cap, `current` whichever
227
+ * applies right now (env-clamped). A paused limit still reports its bounds. */
228
+ export const ConcurrencyLimitKeyBound = z.object({
229
+ current: z.number().nullable(),
230
+ base: z.number().nullable(),
231
+ override: z.number().nullable(),
232
+ /** When the key's override lapses; null when there is none. */
233
+ expiresAt: z.coerce.date().nullable(),
234
+ });
235
+ export const ConcurrencyLimitKeyItem = z.object({
236
+ /** The limit's name. */
237
+ name: z.string(),
238
+ concurrencyKey: z.string(),
239
+ perKey: ConcurrencyLimitKeyBound,
240
+ /** Runs executing for this key that hold this limit. */
241
+ running: z.number(),
242
+ /** Whether the limit is paused. A paused limit admits no runs, override or not. */
243
+ paused: z.boolean(),
244
+ });
150
245
  //# sourceMappingURL=queues.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queues.js","sourceRoot":"","sources":["../../../../src/v3/schemas/queues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"queues.js","sourceRoot":"","sources":["../../../../src/v3/schemas/queues.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { z } from "zod/v4";
2
2
  import type { RuntimeEnvironmentType } from "./common.js";
3
- import { SnapshotRouteWire } from "./snapshotRoute.js";
4
3
  export declare const TriggerSource: z.ZodUnion<[z.ZodEnum<{
5
4
  api: "api";
6
5
  cli: "cli";
@@ -53,8 +52,16 @@ export declare const RunAnnotations: z.ZodObject<{
53
52
  externalDeploymentId: z.ZodOptional<z.ZodString>;
54
53
  webhookDeliveryId: z.ZodOptional<z.ZodString>;
55
54
  webhookEndpointId: z.ZodOptional<z.ZodString>;
55
+ workerCell: z.ZodCatch<z.ZodOptional<z.ZodString>>;
56
+ workerLane: z.ZodCatch<z.ZodOptional<z.ZodString>>;
56
57
  }, z.core.$strip>;
57
58
  export type RunAnnotations = z.infer<typeof RunAnnotations>;
59
+ /** Lenient read of the worker stamp: works on blobs that predate or fail RunAnnotations. */
60
+ export declare const WorkerStampAnnotations: z.ZodObject<{
61
+ workerCell: z.ZodCatch<z.ZodOptional<z.ZodString>>;
62
+ workerLane: z.ZodCatch<z.ZodOptional<z.ZodString>>;
63
+ }, z.core.$strip>;
64
+ export type WorkerStampAnnotations = z.infer<typeof WorkerStampAnnotations>;
58
65
  export declare const TaskRunExecutionStatus: {
59
66
  RUN_CREATED: "RUN_CREATED";
60
67
  QUEUED: "QUEUED";
@@ -645,7 +652,6 @@ export declare const PlacementTag: z.ZodObject<{
645
652
  }, z.core.$strip>;
646
653
  export type PlacementTag = z.infer<typeof PlacementTag>;
647
654
  /** This is sent to a Worker when a run is dequeued (a new run or continuing run) */
648
- export { SnapshotRouteWire };
649
655
  export declare const DequeuedMessage: z.ZodObject<{
650
656
  version: z.ZodLiteral<"1">;
651
657
  snapshot: z.ZodObject<{
@@ -666,15 +672,6 @@ export declare const DequeuedMessage: z.ZodObject<{
666
672
  description: z.ZodString;
667
673
  createdAt: z.ZodCoercedDate<unknown>;
668
674
  }, z.core.$strip>;
669
- snapshotRoute: z.ZodOptional<z.ZodObject<{
670
- version: z.ZodLiteral<1>;
671
- residency: z.ZodEnum<{
672
- mirrored: "mirrored";
673
- postgres: "postgres";
674
- "redis-primary": "redis-primary";
675
- }>;
676
- organizationId: z.ZodString;
677
- }, z.core.$strip>>;
678
675
  dequeuedAt: z.ZodCoercedDate<unknown>;
679
676
  workerQueueLength: z.ZodOptional<z.ZodNumber>;
680
677
  image: z.ZodOptional<z.ZodString>;
@@ -782,6 +779,8 @@ export declare const DequeuedMessage: z.ZodObject<{
782
779
  externalDeploymentId: z.ZodOptional<z.ZodString>;
783
780
  webhookDeliveryId: z.ZodOptional<z.ZodString>;
784
781
  webhookEndpointId: z.ZodOptional<z.ZodString>;
782
+ workerCell: z.ZodCatch<z.ZodOptional<z.ZodString>>;
783
+ workerLane: z.ZodCatch<z.ZodOptional<z.ZodString>>;
785
784
  }, z.core.$strip>>;
786
785
  }, z.core.$strip>;
787
786
  environment: z.ZodObject<{
@@ -806,3 +805,4 @@ export declare const DequeuedMessage: z.ZodObject<{
806
805
  }, z.core.$strip>>>;
807
806
  }, z.core.$strip>;
808
807
  export type DequeuedMessage = z.infer<typeof DequeuedMessage>;
808
+ export {};
@@ -2,7 +2,6 @@ import { z } from "zod/v4";
2
2
  import { discriminatedUnion } from "../utils/zod.js";
3
3
  import { MachinePreset, TaskRunExecution } from "./common.js";
4
4
  import { EnvironmentType } from "./schemas.js";
5
- import { SnapshotRouteWire } from "./snapshotRoute.js";
6
5
  const anyString = z.custom((v) => typeof v === "string");
7
6
  export const TriggerSource = z
8
7
  .enum(["sdk", "api", "dashboard", "cli", "mcp", "schedule"])
@@ -20,6 +19,14 @@ export const RunAnnotations = z.object({
20
19
  webhookDeliveryId: z.string().optional(),
21
20
  /** The endpoint (friendly id) that delivery arrived on. */
22
21
  webhookEndpointId: z.string().optional(),
22
+ /** Where the most recently stamped attempt executed. Set by the supervisor at attempt start. */
23
+ workerCell: z.string().optional().catch(undefined),
24
+ workerLane: z.string().optional().catch(undefined),
25
+ });
26
+ /** Lenient read of the worker stamp: works on blobs that predate or fail RunAnnotations. */
27
+ export const WorkerStampAnnotations = z.object({
28
+ workerCell: z.string().optional().catch(undefined),
29
+ workerLane: z.string().optional().catch(undefined),
23
30
  });
24
31
  export const TaskRunExecutionStatus = {
25
32
  RUN_CREATED: "RUN_CREATED",
@@ -189,15 +196,9 @@ export const PlacementTag = z.object({
189
196
  values: z.array(z.string()).optional(),
190
197
  });
191
198
  /** This is sent to a Worker when a run is dequeued (a new run or continuing run) */
192
- // Defined in the ./snapshotRoute.js leaf and re-exported here (its historical public location) to avoid
193
- // a module-init cycle with supervisor/schemas.ts. See that file for the rationale. The local import lets
194
- // this module still use it as a value below (e.g. DequeuedMessage); the export carries both value + type.
195
- export { SnapshotRouteWire };
196
199
  export const DequeuedMessage = z.object({
197
200
  version: z.literal("1"),
198
201
  snapshot: ExecutionSnapshot,
199
- // Absent for a never-enrolled (postgres) run and for messages produced before this field existed.
200
- snapshotRoute: SnapshotRouteWire.optional(),
201
202
  dequeuedAt: z.coerce.date(),
202
203
  workerQueueLength: z.number().optional(),
203
204
  image: z.string().optional(),
@@ -1 +1 @@
1
- {"version":3,"file":"runEngine.js","sourceRoot":"","sources":["../../../../src/v3/schemas/runEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runEngine.js","sourceRoot":"","sources":["../../../../src/v3/schemas/runEngine.ts"],"names":[],"mappings":"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"}
@@ -52,24 +52,63 @@ type FilterError<M extends string> = `✖ ${M}`;
52
52
  type Invalid = {
53
53
  readonly "~webhookFilterInvalid": true;
54
54
  };
55
- type PathValue<T, P extends string> = P extends `${infer H}.${infer R}` ? H extends keyof T ? PathValue<NonNullable<T[H]>, R> : Invalid : P extends keyof T ? NonNullable<T[P]> : Invalid;
56
- type ResolveFilterPath<TEvent, P extends string> = P extends `event.${infer R}` ? PathValue<TEvent, R> : P extends `header.${string}` ? string : P extends `webhook.${infer R}` ? PathValue<WebhookFilterMeta, R> : Invalid;
55
+ type IsValidFilterPath<P extends string> = P extends "" | `.${string}` | `${string}.` | `${string}..${string}` ? false : true;
56
+ type KnownValue<T> = unknown extends T ? unknown : NonNullable<T>;
57
+ /** Resolves per union member, so a path only some members have still resolves. */
58
+ type MemberPathValue<T, P extends string> = unknown extends T ? unknown : NonNullable<T> extends infer M ? M extends unknown ? P extends `${infer H}.${infer R}` ? H extends keyof M ? MemberPathValue<M[H], R> : Invalid : P extends keyof M ? KnownValue<M[P]> : Invalid : never : never;
59
+ type PathValue<T, P extends string> = IsValidFilterPath<P> extends false ? Invalid : [Exclude<MemberPathValue<T, P>, Invalid>] extends [never] ? Invalid : Exclude<MemberPathValue<T, P>, Invalid>;
60
+ type ResolveFilterPath<TEvent, P extends string> = IsValidFilterPath<P> extends false ? Invalid : P extends `event.${infer R}` ? PathValue<TEvent, R> : P extends `header.${string}` ? string : P extends `webhook.${infer R}` ? PathValue<WebhookFilterMeta, R> : Invalid;
57
61
  type FilterLiteralType<Lit extends string> = Lit extends `'${infer S}'` ? S : Lit extends `${infer N extends number}` ? N : Lit extends "true" ? true : Lit extends "false" ? false : Lit extends "null" ? null : Invalid;
58
62
  type CheckValue<F, Lit extends string, P extends string> = [FilterLiteralType<Lit>] extends [
59
63
  Invalid
60
64
  ] ? FilterError<`cannot parse value: ${Lit}`> : [FilterLiteralType<Lit>] extends [F] ? true : FilterError<`value ${Lit} is not valid for ${P}`>;
61
- type CheckNum<F, Lit extends string, P extends string> = [F] extends [number] ? Lit extends `${number}` ? true : FilterError<`${P} needs a number`> : FilterError<`${P} is not numeric`>;
62
- type CheckStr<F, Lit extends string, P extends string> = [F] extends [string] ? Lit extends `'${string}'` ? true : FilterError<`${P} op needs a string literal`> : FilterError<`${P} is not a string`>;
63
- type CheckInItems<F, Items extends string, P extends string> = Items extends `${infer Head},${infer Tail}` ? CheckValue<F, Head, P> extends true ? CheckInItems<F, Tail, P> : CheckValue<F, Head, P> : CheckValue<F, Items, P>;
65
+ type CheckNum<F, Lit extends string, P extends string> = [
66
+ Extract<unknown extends F ? number : F, number>
67
+ ] extends [never] ? FilterError<`${P} is not numeric`> : Lit extends `${number}` ? true : FilterError<`${P} needs a number`>;
68
+ type CheckStr<F, Lit extends string, P extends string> = [
69
+ Extract<unknown extends F ? string : F, string>
70
+ ] extends [never] ? FilterError<`${P} is not a string`> : Lit extends `'${string}'` ? true : FilterError<`${P} op needs a string literal`>;
71
+ type TrimItem<S extends string> = S extends ` ${infer R}` ? TrimItem<R> : S extends `${infer L} ` ? TrimItem<L> : S;
72
+ type CheckInItems<F, Items extends string, P extends string> = Items extends `${infer Head},${infer Tail}` ? CheckValue<F, TrimItem<Head>, P> extends true ? CheckInItems<F, Tail, P> : CheckValue<F, TrimItem<Head>, P> : CheckValue<F, TrimItem<Items>, P>;
64
73
  type CheckIn<F, Lit extends string, P extends string> = Lit extends `[${infer Items}]` ? CheckInItems<F, Items, P> : FilterError<`${P} "in" expects a [list]`>;
65
74
  type CheckOp<F, Op extends string, Lit extends string, P extends string> = Op extends "==" | "!=" ? CheckValue<F, Lit, P> : Op extends ">" | "<" | ">=" | "<=" ? CheckNum<F, Lit, P> : Op extends "startsWith" | "endsWith" | "contains" ? CheckStr<F, Lit, P> : Op extends "in" ? CheckIn<F, Lit, P> : FilterError<`unknown operator: ${Op}`>;
66
75
  type IsFilterPath<S extends string> = S extends `event.${string}` | `header.${string}` | `webhook.${string}` ? true : false;
67
76
  type CheckFieldToField<TEvent, F, Op extends string, Rhs extends string, P extends string> = Op extends "==" | "!=" | ">" | "<" | ">=" | "<=" ? ResolveFilterPath<TEvent, Rhs> extends infer RF ? [RF] extends [Invalid] ? FilterError<`unknown field: ${Rhs}`> : [RF] extends [F] ? true : [F] extends [RF] ? true : FilterError<`${P} and ${Rhs} are not comparable`> : never : FilterError<`operator "${Op}" does not support a field reference`>;
68
77
  type LeafCheck<TEvent, P extends string, Op extends string, Lit extends string> = ResolveFilterPath<TEvent, P> extends infer F ? [F] extends [Invalid] ? FilterError<`unknown field: ${P}`> : IsFilterPath<Lit> extends true ? CheckFieldToField<TEvent, F, Op, Lit, P> : CheckOp<F, Op, Lit, P> : never;
69
- type ElementOf<T> = T extends readonly (infer E)[] ? E : never;
78
+ type ElementOf<T> = unknown extends T ? unknown : T extends readonly (infer E)[] ? E : never;
70
79
  type CheckQuantifier<TEvent, ArrP extends string, SubP extends string, Op extends string, Lit extends string> = ResolveFilterPath<TEvent, ArrP> extends infer Arr ? [Arr] extends [Invalid] ? FilterError<`unknown field: ${ArrP}`> : [ElementOf<Arr>] extends [never] ? FilterError<`${ArrP} is not an array`> : PathValue<ElementOf<Arr>, SubP> extends infer SF ? [SF] extends [Invalid] ? FilterError<`unknown field: ${SubP} (in ${ArrP})`> : CheckOp<SF, Op, Lit, SubP> : never : never;
71
- type Tokenize<S extends string, Acc extends string[] = []> = S extends `${infer H} ${infer R}` ? Tokenize<R, [...Acc, H]> : [...Acc, S];
72
- type Scan<TEvent, Tk extends string[], Depth extends 1[], Expect extends "operand" | "operator"> = Expect extends "operand" ? Tk extends ["(", ...infer Rest extends string[]] ? Scan<TEvent, Rest, [1, ...Depth], "operand"> : Tk extends [")" | "&&" | "||", ...string[]] ? FilterError<`unexpected "${Tk[0] & string}"`> : Tk extends [
80
+ type OddQuotes<S extends string, Odd extends boolean = false> = S extends `${string}'${infer R}` ? OddQuotes<R, Odd extends true ? false : true> : Odd;
81
+ type Unclosed<S extends string> = OddQuotes<S> extends true ? true : S extends `${string}[${infer After}` ? After extends `${string}]${string}` ? false : true : false;
82
+ /** Splits on spaces, keeping a quoted string or a `[list]` that contains spaces as one token. */
83
+ type SplitOnSpaces<S extends string, Acc extends string[] = []> = S extends `${infer H} ${infer R}` ? Unclosed<H> extends true ? TokenizeJoin<R, H, Acc> : SplitOnSpaces<R, [...Acc, H]> : [...Acc, S];
84
+ type TokenizeJoin<S extends string, Cur extends string, Acc extends string[]> = S extends `${infer H} ${infer R}` ? Unclosed<`${Cur} ${H}`> extends true ? TokenizeJoin<R, `${Cur} ${H}`, Acc> : SplitOnSpaces<R, [...Acc, `${Cur} ${H}`]> : [...Acc, `${Cur} ${S}`];
85
+ type SplitClose<S extends string, Post extends string[] = []> = S extends `${infer L})` ? SplitClose<L, [")", ...Post]> : S extends "" ? Post : [S, ...Post];
86
+ type SplitOpen<S extends string, Pre extends string[] = []> = S extends `(${infer R}` ? SplitOpen<R, [...Pre, "("]> : [...Pre, ...SplitClose<S>];
87
+ type SplitParens<Tk extends string[], Acc extends string[] = []> = Tk extends [
88
+ infer H extends string,
89
+ ...infer R extends string[]
90
+ ] ? SplitParens<R, [...Acc, ...(H extends `'${string}'` ? [H] : SplitOpen<H>)]> : Acc;
91
+ type Tokenize<S extends string> = SplitParens<SplitOnSpaces<S>>;
92
+ type InItemTypes<Items extends string, Acc = never> = Items extends `${infer Head},${infer Tail}` ? InItemTypes<Tail, Acc | FilterLiteralType<TrimItem<Head>>> : Acc | FilterLiteralType<TrimItem<Items>>;
93
+ type LooseEqKind<V> = V extends string ? string : V extends number ? number : unknown;
94
+ /**
95
+ * Drops a member only when its field can never equal `V` under the server's coercing `==`: the field
96
+ * is missing, or holds only values of `V`'s own primitive kind that differ from it.
97
+ */
98
+ type NarrowTo<T, P extends string, V> = V extends unknown ? T extends unknown ? Exclude<MemberPathValue<T, P>, Invalid> extends infer F ? [V] extends [F] ? T : [F] extends [LooseEqKind<V>] ? never : T : never : never : never;
99
+ /**
100
+ * The server's `==` also matches a null field for `null`, `'null'` and `0`, so those never narrow,
101
+ * nor does a number literal TypeScript can't type exactly (`0.0`, `-0`), which reads as `number`.
102
+ */
103
+ type NarrowEq<T, P extends string, V> = unknown extends T ? T : number extends V ? T : [Extract<V, null | "null" | 0>] extends [never] ? NarrowTo<T, P, V> : T;
104
+ type NarrowLeaf<T, P extends string, Op extends string, Lit extends string> = P extends `event.${infer R}` ? Op extends "==" ? IsFilterPath<Lit> extends true ? T : NarrowEq<T, R, FilterLiteralType<Lit>> : Op extends "in" ? Lit extends `[${infer Items}]` ? NarrowEq<T, R, InItemTypes<Items>> : T : T : T;
105
+ type Frame = [unknown, unknown];
106
+ /**
107
+ * `Cur` is the event the current `&&` chain has narrowed to. Each paren group (and the whole filter)
108
+ * is a frame of [the type the group started from, the union of its finished `||` branches]. A valid
109
+ * filter scans to `[narrowed event]`, an invalid one to its error.
110
+ */
111
+ type Scan<Cur, Tk extends string[], Frames extends Frame[], Expect extends "operand" | "operator"> = Expect extends "operand" ? Tk extends ["(", ...infer Rest extends string[]] ? Scan<Cur, Rest, [[Cur, never], ...Frames], "operand"> : Tk extends [")" | "&&" | "||", ...string[]] ? FilterError<`unexpected "${Tk[0] & string}"`> : Tk extends [
73
112
  infer ArrP extends string,
74
113
  "any" | "all",
75
114
  "(",
@@ -78,18 +117,31 @@ type Scan<TEvent, Tk extends string[], Depth extends 1[], Expect extends "operan
78
117
  infer SubLit extends string,
79
118
  ")",
80
119
  ...infer Rest extends string[]
81
- ] ? CheckQuantifier<TEvent, ArrP, SubP, SubOp, SubLit> extends infer R ? R extends true ? Scan<TEvent, Rest, Depth, "operator"> : R : never : Tk extends [
120
+ ] ? CheckQuantifier<Cur, ArrP, SubP, SubOp, SubLit> extends infer R ? R extends true ? Scan<Cur, Rest, Frames, "operator"> : R : never : Tk extends [
82
121
  infer P extends string,
83
122
  "not",
84
123
  "in",
85
124
  infer Lit extends string,
86
125
  ...infer Rest extends string[]
87
- ] ? ResolveFilterPath<TEvent, P> extends infer F ? [F] extends [Invalid] ? FilterError<`unknown field: ${P}`> : CheckIn<F, Lit, P> extends infer R ? R extends true ? Scan<TEvent, Rest, Depth, "operator"> : R : never : never : Tk extends [
126
+ ] ? ResolveFilterPath<Cur, P> extends infer F ? [F] extends [Invalid] ? FilterError<`unknown field: ${P}`> : CheckIn<F, Lit, P> extends infer R ? R extends true ? Scan<Cur, Rest, Frames, "operator"> : R : never : never : Tk extends [
88
127
  infer P extends string,
89
128
  infer Op extends string,
90
129
  infer Lit extends string,
91
130
  ...infer Rest extends string[]
92
- ] ? LeafCheck<TEvent, P, Op, Lit> extends infer R ? R extends true ? Scan<TEvent, Rest, Depth, "operator"> : R : never : FilterError<`incomplete clause`> : Tk extends [] ? Depth extends [] ? true : FilterError<`unbalanced parens (missing ")")`> : Tk extends ["&&" | "||", ...infer Rest extends string[]] ? Scan<TEvent, Rest, Depth, "operand"> : Tk extends [")", ...infer Rest extends string[]] ? Depth extends [1, ...infer D extends 1[]] ? Scan<TEvent, Rest, D, "operator"> : FilterError<`unmatched ")"`> : FilterError<`expected && or ||, got "${Tk[0] & string}"`>;
93
- type ScanFilter<TEvent, S extends string> = Scan<TEvent, Tokenize<S>, [], "operand">;
94
- export type ValidateWebhookFilter<TEvent, S extends string> = ScanFilter<TEvent, S> extends true ? S : ScanFilter<TEvent, S>;
131
+ ] ? LeafCheck<Cur, P, Op, Lit> extends infer R ? R extends true ? Scan<NarrowLeaf<Cur, P, Op, Lit>, Rest, Frames, "operator"> : R : never : FilterError<`incomplete clause`> : Tk extends [] ? Frames extends [[unknown, infer Done]] ? [Done | Cur] : FilterError<`unbalanced parens (missing ")")`> : Tk extends ["&&", ...infer Rest extends string[]] ? Scan<Cur, Rest, Frames, "operand"> : Tk extends ["||", ...infer Rest extends string[]] ? Frames extends [[infer Base, infer Done], ...infer Outer extends Frame[]] ? Scan<Base, Rest, [[Base, Done | Cur], ...Outer], "operand"> : never : Tk extends [")", ...infer Rest extends string[]] ? Frames extends [
132
+ [
133
+ unknown,
134
+ infer Done
135
+ ],
136
+ infer Next extends Frame,
137
+ ...infer Outer extends Frame[]
138
+ ] ? Scan<Done | Cur, Rest, [Next, ...Outer], "operator"> : FilterError<`unmatched ")"`> : FilterError<`expected && or ||, got "${Tk[0] & string}"`>;
139
+ type ScanFilter<TEvent, S extends string> = Scan<TEvent, Tokenize<S>, [[TEvent, never]], "operand">;
140
+ export type ValidateWebhookFilter<TEvent, S extends string> = string extends S ? S : ScanFilter<TEvent, S> extends [unknown] ? S : ScanFilter<TEvent, S>;
141
+ /**
142
+ * The event a handler sees once the filter `S` has passed: the members of a union event that the
143
+ * filter's `event.<path> == <literal>` (or `in [...]`) clauses select, or `TEvent` when the filter
144
+ * doesn't narrow it (or isn't a literal).
145
+ */
146
+ export type NarrowWebhookEvent<TEvent, S extends string> = string extends S ? TEvent : ScanFilter<TEvent, S> extends [infer Narrowed] ? Narrowed : TEvent;
95
147
  export {};
@@ -1,4 +1,4 @@
1
- import type { WebhookSecretProvisioning, WebhookVerifierArtifact } from "../schemas/webhookConfig.js";
1
+ import type { WebhookEndpointContext } from "./webhooks.js";
2
2
  export type WebhookKeyScalar = string | number | boolean | bigint;
3
3
  export interface WebhookKeyMeta {
4
4
  externalRef: string;
@@ -14,18 +14,32 @@ type Invalid = {
14
14
  type PathValue<T, P extends string> = P extends `${infer Head}.${infer Rest}` ? Head extends keyof T ? PathValue<NonNullable<T[Head]>, Rest> : Invalid : P extends keyof T ? NonNullable<T[P]> : Invalid;
15
15
  export type WebhookKeyError<M extends string> = `✖ ${M}`;
16
16
  type TrimSpace<S extends string> = S extends ` ${infer R}` ? TrimSpace<R> : S extends `${infer L} ` ? TrimSpace<L> : S;
17
- type CheckKeyPathSingle<TEvent, Path extends string> = Path extends `webhook.${infer Rest}` ? PathValue<WebhookKeyMeta, Rest> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar webhook meta path: ${Rest}`> : Path extends `header.${infer Name}` ? Name extends "" ? WebhookKeyError<`empty header name`> : true : Path extends `body.${infer Rest}` ? PathValue<TEvent, Rest> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar event path: ${Rest}`> : PathValue<TEvent, Path> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar event path: ${Path}`>;
18
17
  type CheckKeyPath<TEvent, Path extends string> = Path extends `${infer L}||${infer R}` ? CheckKeyPathSingle<TEvent, TrimSpace<L>> extends true ? CheckKeyPath<TEvent, TrimSpace<R>> : CheckKeyPathSingle<TEvent, TrimSpace<L>> : CheckKeyPathSingle<TEvent, TrimSpace<Path>>;
19
18
  type CheckKeyTemplate<TEvent, S extends string> = S extends `${infer _Pre}{${infer Path}}${infer Rest}` ? CheckKeyPath<TEvent, Path> extends true ? CheckKeyTemplate<TEvent, Rest> : CheckKeyPath<TEvent, Path> : true;
20
19
  export type ValidatedWebhookKey<TEvent, S extends string> = CheckKeyTemplate<TEvent, S> extends true ? S : CheckKeyTemplate<TEvent, S>;
20
+ type MatchNext<X> = unknown extends X ? unknown : NonNullable<X>;
21
+ type MatchPathValue<T, P extends string> = unknown extends T ? unknown : P extends `${infer Head}.${infer Rest}` ? Head extends keyof T ? MatchPathValue<MatchNext<T[Head]>, Rest> : string extends keyof T ? unknown : Invalid : P extends keyof T ? MatchNext<T[P]> : string extends keyof T ? unknown : Invalid;
22
+ type CheckEventPath<TEvent, Path extends string> = Path extends "" | `.${string}` | `${string}.` | `${string}..${string}` ? WebhookKeyError<`empty path segment: ${Path}`> : MatchPathValue<TEvent, Path> extends Invalid ? WebhookKeyError<`unknown event path: ${Path}`> : unknown extends MatchPathValue<TEvent, Path> ? true : MatchPathValue<TEvent, Path> extends WebhookKeyScalar ? true : WebhookKeyError<`non-scalar event path: ${Path}`>;
23
+ type CheckMetaPath<Path extends string> = Path extends `header.${infer Name}` ? Name extends "" ? WebhookKeyError<`empty header name`> : true : Path extends `webhook.${infer Rest}` ? PathValue<WebhookKeyMeta, Rest> extends WebhookKeyScalar ? true : WebhookKeyError<`unknown or non-scalar webhook meta path: ${Rest}`> : false;
24
+ type CheckNamespacedPath<TEvent, Path extends string, What extends string> = Path extends `event.${infer Rest}` ? CheckEventPath<TEvent, Rest> : CheckMetaPath<Path> extends false ? WebhookKeyError<`${What} paths start with event., header. or webhook.: ${Path}`> : CheckMetaPath<Path>;
25
+ type CheckMatchPath<TEvent, Path extends string> = CheckNamespacedPath<TEvent, Path, "match">;
26
+ type CheckKeyPathSingle<TEvent, Path extends string> = CheckNamespacedPath<TEvent, Path, "key">;
27
+ /**
28
+ * A webhook waiter's `match`: each key a path (`event.*` reads the event, `header.*` a header and
29
+ * `webhook.*` the endpoint), each value the scalar it must equal. A bad path turns that key's value
30
+ * type into an error naming it.
31
+ */
32
+ export type ValidatedWebhookMatch<TEvent, M> = {
33
+ [K in keyof M]: K extends string ? CheckMatchPath<TEvent, K> extends true ? M[K] : CheckMatchPath<TEvent, K> : never;
34
+ };
21
35
  declare const dEvt: unique symbol;
22
36
  export interface ChatEvent<TType extends string, TEvent> {
23
37
  id: string;
24
38
  type: TType;
25
39
  key: string;
40
+ /** The endpoint this event subscribes to (`webhooks.endpoint.define` id). */
41
+ endpointId: string;
26
42
  source: string;
27
- verifierArtifact: WebhookVerifierArtifact;
28
- secretProvisioning?: WebhookSecretProvisioning;
29
43
  filter?: string;
30
44
  readonly [dEvt]?: TEvent;
31
45
  }
@@ -35,7 +49,15 @@ export type ChatEventAction<W> = W extends ChatEvent<infer TType, infer TEvent>
35
49
  event: TEvent;
36
50
  source: string;
37
51
  headers: Record<string, string>;
52
+ /** The delivery's id (`whd_...`), as in the dashboard and the deliveries API. A replay gets a new one. */
38
53
  deliveryId: string;
54
+ /**
55
+ * The provider's id for the delivery (e.g. Stripe's `evt_...`), the same across replays.
56
+ * Absent on an action delivered by an older server.
57
+ */
58
+ externalDeliveryId?: string;
59
+ /** The endpoint the delivery arrived on. */
60
+ endpoint?: WebhookEndpointContext;
39
61
  } : never;
40
62
  export type ChatEventActions<TW extends readonly AnyChatEvent[]> = ChatEventAction<TW[number]>;
41
63
  export {};
@@ -16,6 +16,33 @@ export type WebhookSource<TEvent = unknown> = {
16
16
  [__webhookEvent]?: TEvent;
17
17
  };
18
18
  export type AnyWebhookSource = WebhookSource<any>;
19
+ declare const __endpointEvent: unique symbol;
20
+ /**
21
+ * A declared webhook endpoint (`webhooks.endpoint.define`): one provider URL that subscribers
22
+ * (`webhook()`, `chat.event`, channel connectors) and waiters attach to. The event type comes from
23
+ * the endpoint's source.
24
+ */
25
+ export type WebhookEndpoint<TEvent = unknown> = {
26
+ /** The declared endpoint id. */
27
+ id: string;
28
+ /** The source's provider tag, e.g. "stripe". */
29
+ source: string;
30
+ /** phantom, type-level only; never present at runtime */
31
+ [__endpointEvent]?: TEvent;
32
+ };
33
+ export type AnyWebhookEndpoint = WebhookEndpoint<any>;
34
+ /** What a webhook waiter resumes its run with. */
35
+ export type WebhookWaiterOutput<TEvent = unknown> = {
36
+ /** The verified event body. */
37
+ event: TEvent;
38
+ /** The inbound headers, curated as for `webhook()` (credentials dropped). */
39
+ headers: Record<string, string>;
40
+ /** The delivery's id (`whd_...`). */
41
+ deliveryId: string;
42
+ /** The endpoint the delivery arrived on. */
43
+ endpoint: WebhookEndpointContext;
44
+ };
45
+ export type InferWebhookEndpointEvent<E> = E extends WebhookEndpoint<infer TEvent> ? TEvent : unknown;
19
46
  export type InferWebhookEvent<S> = S extends WebhookSource<infer TEvent> ? TEvent : unknown;
20
47
  /**
21
48
  * The endpoint a delivery arrived on. `id` is the endpoint instance (`wh_...`); `declaredId` is the
@@ -1229,7 +1229,7 @@ export declare const webhookProviderConfigs: {
1229
1229
  };
1230
1230
  };
1231
1231
  shopify: {
1232
- secretProvisioning: "integrator";
1232
+ secretProvisioning: "provider";
1233
1233
  config: () => {
1234
1234
  scheme: "hmac";
1235
1235
  algorithm: "sha1" | "sha256";
@@ -1294,8 +1294,8 @@ export declare const webhookProviderConfigs: {
1294
1294
  };
1295
1295
  export type WebhookProviderId = keyof typeof webhookProviderConfigs;
1296
1296
  /**
1297
- * Setup instructions for an AI agent, per preset. SDK producers attach these as the source's
1298
- * `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
1297
+ * Setup instructions for an AI agent, per preset or provider. SDK producers attach these as the
1298
+ * source's `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
1299
1299
  */
1300
- export declare const webhookSetupPrompts: Partial<Record<WebhookPresetId, string>>;
1300
+ export declare const webhookSetupPrompts: Partial<Record<WebhookPresetId | WebhookProviderId, string>>;
1301
1301
  export * from "../schemas/webhookConfig.js";
@@ -136,6 +136,8 @@ function hmacVerifierConfig(opts) {
136
136
  }
137
137
  if (opts.idempotencyField)
138
138
  config.idempotencyField = opts.idempotencyField;
139
+ if (opts.formPayload)
140
+ config.formPayload = opts.formPayload;
139
141
  return config;
140
142
  }
141
143
  /**
@@ -154,6 +156,8 @@ export const webhookProviderConfigs = {
154
156
  signingTemplate: "v0:{timestamp}:{body}",
155
157
  timestamp: { from: "header", name: "x-slack-request-timestamp" },
156
158
  toleranceSeconds: 300,
159
+ idempotencyField: { from: "body", name: "event_id" },
160
+ formPayload: { field: "payload" },
157
161
  }),
158
162
  },
159
163
  zoom: {
@@ -199,6 +203,7 @@ export const webhookProviderConfigs = {
199
203
  header: "linear-signature",
200
204
  timestamp: { from: "body", path: "webhookTimestamp", unit: "milliseconds" },
201
205
  toleranceSeconds: 60,
206
+ idempotencyField: { from: "header", name: "linear-delivery" },
202
207
  }),
203
208
  },
204
209
  notion: {
@@ -268,10 +273,11 @@ export const webhookProviderConfigs = {
268
273
  field: "d",
269
274
  signingTemplate: "{body}{timestamp}",
270
275
  timestamp: { from: "signatureField", field: "v", unit: "milliseconds" },
276
+ toleranceSeconds: 300,
271
277
  }),
272
278
  },
273
279
  shopify: {
274
- secretProvisioning: "integrator",
280
+ secretProvisioning: "provider",
275
281
  config: () => hmacVerifierConfig({ header: "x-shopify-hmac-sha256", encoding: "base64" }),
276
282
  },
277
283
  };
@@ -280,8 +286,8 @@ const svixFamilySetupPrompt = [
280
286
  "Add the webhook URL as an endpoint in the provider's webhook settings or through its API, subscribe it to the event types the subscribers' filters need, then read the endpoint's signing secret and store it on Trigger.dev.",
281
287
  ].join("\n");
282
288
  /**
283
- * Setup instructions for an AI agent, per preset. SDK producers attach these as the source's
284
- * `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
289
+ * Setup instructions for an AI agent, per preset or provider. SDK producers attach these as the
290
+ * source's `setupPrompt`; the platform wraps them with the endpoint URL, subscribers and secret steps.
285
291
  */
286
292
  export const webhookSetupPrompts = {
287
293
  stripe: [
@@ -302,6 +308,19 @@ export const webhookSetupPrompts = {
302
308
  ].join("\n"),
303
309
  svix: svixFamilySetupPrompt,
304
310
  "standard-webhooks": svixFamilySetupPrompt,
311
+ discord: [
312
+ "These settings are in the Discord Developer Portal (https://discord.com/developers/applications); tell the user each step.",
313
+ "1. Open the application, then its Webhooks page. Set the Endpoint URL to the webhook URL, turn Events on and select the event types the subscribers need. Discord sends a PING that the endpoint answers once it is deployed.",
314
+ "2. The public key is on the application's General Information page, under Public Key.",
315
+ ].join("\n"),
316
+ shopify: [
317
+ "Shopify signs webhooks with the app's client secret, or for webhooks created in the store admin, with the key shown on that page.",
318
+ "For an app, add a subscription to shopify.app.toml and run `shopify app deploy`:",
319
+ ' [[webhooks.subscriptions]]\n topics = ["orders/create"]\n uri = "<webhook URL>"',
320
+ "or create it with the Admin API's webhookSubscriptionCreate mutation. The client secret is in the app's settings in the Shopify Dev Dashboard.",
321
+ "For a store without an app, add the webhook under Settings > Notifications > Webhooks in the store admin; the signing key is shown on that page.",
322
+ "Choose topics from the subscribers' filters, which compare `header.x-shopify-topic`, and use the JSON format.",
323
+ ].join("\n"),
305
324
  };
306
325
  export * from "../schemas/webhookConfig.js";
307
326
  //# sourceMappingURL=index.js.map