@blokjs/helper 0.2.1 → 0.6.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/components/AddElse.d.ts +15 -0
- package/dist/components/AddIf.d.ts +15 -0
- package/dist/components/StepNode.d.ts +6 -0
- package/dist/components/StepNode.js +8 -0
- package/dist/components/StepNode.js.map +1 -1
- package/dist/components/Trigger.d.ts +10 -2
- package/dist/components/Trigger.js +16 -5
- package/dist/components/Trigger.js.map +1 -1
- package/dist/components/branch.d.ts +44 -0
- package/dist/components/branch.js +57 -0
- package/dist/components/branch.js.map +1 -0
- package/dist/components/forEach.d.ts +53 -0
- package/dist/components/forEach.js +64 -0
- package/dist/components/forEach.js.map +1 -0
- package/dist/components/loop.d.ts +52 -0
- package/dist/components/loop.js +54 -0
- package/dist/components/loop.js.map +1 -0
- package/dist/components/switchOn.d.ts +68 -0
- package/dist/components/switchOn.js +76 -0
- package/dist/components/switchOn.js.map +1 -0
- package/dist/components/tryCatch.d.ts +63 -0
- package/dist/components/tryCatch.js +68 -0
- package/dist/components/tryCatch.js.map +1 -0
- package/dist/components/workflowV2.d.ts +83 -0
- package/dist/components/workflowV2.js +84 -0
- package/dist/components/workflowV2.js.map +1 -0
- package/dist/index.d.ts +12 -3
- package/dist/index.js +25 -4
- package/dist/index.js.map +1 -1
- package/dist/proxy/$.d.ts +102 -0
- package/dist/proxy/$.js +130 -0
- package/dist/proxy/$.js.map +1 -0
- package/dist/types/StepOpts.d.ts +723 -3
- package/dist/types/StepOpts.js +702 -3
- package/dist/types/StepOpts.js.map +1 -1
- package/dist/types/TriggerOpts.d.ts +1600 -35
- package/dist/types/TriggerOpts.js +601 -29
- package/dist/types/TriggerOpts.js.map +1 -1
- package/dist/types/WorkflowOpts.d.ts +478 -28
- package/dist/types/WorkflowOpts.js +66 -3
- package/dist/types/WorkflowOpts.js.map +1 -1
- package/dist/utils/parseDuration.d.ts +33 -0
- package/dist/utils/parseDuration.js +78 -0
- package/dist/utils/parseDuration.js.map +1 -0
- package/dist/workflow.schema.json +662 -0
- package/package.json +6 -6
|
@@ -1,41 +1,678 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Reusable Zod field bag for per-key concurrency gating.
|
|
4
|
+
*
|
|
5
|
+
* Spread into a trigger's `z.object({...})` and pair with the
|
|
6
|
+
* {@link concurrencyRefinement} cross-field check to add concurrency-key
|
|
7
|
+
* support to a trigger schema.
|
|
8
|
+
*
|
|
9
|
+
* Authors set `concurrencyKey` (literal or `$`-proxy expression) plus an
|
|
10
|
+
* optional `concurrencyLimit` (defaults to 1, matching Trigger.dev's
|
|
11
|
+
* "named mutex per key" pattern). When omitted, the trigger has no
|
|
12
|
+
* concurrency gate (zero-overhead default).
|
|
13
|
+
*/
|
|
14
|
+
export declare const ConcurrencyOptsFields: {
|
|
15
|
+
readonly concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
16
|
+
readonly concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
17
|
+
readonly concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
18
|
+
readonly onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
19
|
+
readonly concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
20
|
+
readonly concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
21
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
22
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
23
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
24
|
+
}, "strip", z.ZodTypeAny, {
|
|
25
|
+
minBackoffMs?: number | undefined;
|
|
26
|
+
maxBackoffMs?: number | undefined;
|
|
27
|
+
factor?: number | undefined;
|
|
28
|
+
}, {
|
|
29
|
+
minBackoffMs?: number | undefined;
|
|
30
|
+
maxBackoffMs?: number | undefined;
|
|
31
|
+
factor?: number | undefined;
|
|
32
|
+
}>>;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Cross-field refinement: `concurrencyLimit` / `concurrencyLeaseMs` / `onLimit`
|
|
36
|
+
* set without `concurrencyKey` are meaningless and rejected at validation time.
|
|
37
|
+
*/
|
|
38
|
+
export declare const concurrencyRefinement: (val: {
|
|
39
|
+
concurrencyKey?: string;
|
|
40
|
+
concurrencyLimit?: number;
|
|
41
|
+
concurrencyLeaseMs?: number;
|
|
42
|
+
onLimit?: "throw" | "queue";
|
|
43
|
+
concurrencyQueueTimeoutMs?: number;
|
|
44
|
+
concurrencyQueueRetry?: {
|
|
45
|
+
minBackoffMs?: number;
|
|
46
|
+
maxBackoffMs?: number;
|
|
47
|
+
factor?: number;
|
|
48
|
+
};
|
|
49
|
+
}, ctx: z.RefinementCtx) => void;
|
|
50
|
+
/**
|
|
51
|
+
* Standalone schema exposing just the concurrency fields. Useful for tests
|
|
52
|
+
* and tools that want to validate concurrency config in isolation. Real
|
|
53
|
+
* triggers spread {@link ConcurrencyOptsFields} into their own `z.object`
|
|
54
|
+
* and apply {@link concurrencyRefinement}.
|
|
55
|
+
*/
|
|
56
|
+
export declare const ConcurrencyOptsSchema: z.ZodEffects<z.ZodObject<{
|
|
57
|
+
readonly concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
58
|
+
readonly concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
59
|
+
readonly concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
60
|
+
readonly onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
61
|
+
readonly concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
readonly concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
63
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
64
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
65
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
66
|
+
}, "strip", z.ZodTypeAny, {
|
|
67
|
+
minBackoffMs?: number | undefined;
|
|
68
|
+
maxBackoffMs?: number | undefined;
|
|
69
|
+
factor?: number | undefined;
|
|
70
|
+
}, {
|
|
71
|
+
minBackoffMs?: number | undefined;
|
|
72
|
+
maxBackoffMs?: number | undefined;
|
|
73
|
+
factor?: number | undefined;
|
|
74
|
+
}>>;
|
|
75
|
+
}, "strip", z.ZodTypeAny, {
|
|
76
|
+
concurrencyKey?: string | undefined;
|
|
77
|
+
concurrencyLimit?: number | undefined;
|
|
78
|
+
concurrencyLeaseMs?: number | undefined;
|
|
79
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
80
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
81
|
+
concurrencyQueueRetry?: {
|
|
82
|
+
minBackoffMs?: number | undefined;
|
|
83
|
+
maxBackoffMs?: number | undefined;
|
|
84
|
+
factor?: number | undefined;
|
|
85
|
+
} | undefined;
|
|
86
|
+
}, {
|
|
87
|
+
concurrencyKey?: string | undefined;
|
|
88
|
+
concurrencyLimit?: number | undefined;
|
|
89
|
+
concurrencyLeaseMs?: number | undefined;
|
|
90
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
91
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
92
|
+
concurrencyQueueRetry?: {
|
|
93
|
+
minBackoffMs?: number | undefined;
|
|
94
|
+
maxBackoffMs?: number | undefined;
|
|
95
|
+
factor?: number | undefined;
|
|
96
|
+
} | undefined;
|
|
97
|
+
}>, {
|
|
98
|
+
concurrencyKey?: string | undefined;
|
|
99
|
+
concurrencyLimit?: number | undefined;
|
|
100
|
+
concurrencyLeaseMs?: number | undefined;
|
|
101
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
102
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
103
|
+
concurrencyQueueRetry?: {
|
|
104
|
+
minBackoffMs?: number | undefined;
|
|
105
|
+
maxBackoffMs?: number | undefined;
|
|
106
|
+
factor?: number | undefined;
|
|
107
|
+
} | undefined;
|
|
108
|
+
}, {
|
|
109
|
+
concurrencyKey?: string | undefined;
|
|
110
|
+
concurrencyLimit?: number | undefined;
|
|
111
|
+
concurrencyLeaseMs?: number | undefined;
|
|
112
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
113
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
114
|
+
concurrencyQueueRetry?: {
|
|
115
|
+
minBackoffMs?: number | undefined;
|
|
116
|
+
maxBackoffMs?: number | undefined;
|
|
117
|
+
factor?: number | undefined;
|
|
118
|
+
} | undefined;
|
|
119
|
+
}>;
|
|
120
|
+
/** Inferred shape of the concurrency-options field bag. */
|
|
121
|
+
export type ConcurrencyOpts = z.input<typeof ConcurrencyOptsSchema>;
|
|
122
|
+
/**
|
|
123
|
+
* Duration value: a non-negative integer (interpreted as milliseconds) or a
|
|
124
|
+
* single-unit string (`"500ms"`, `"30s"`, `"5m"`, `"2h"`, `"1d"`). Validated
|
|
125
|
+
* at trigger-config parse time; converted to milliseconds at run-entry time
|
|
126
|
+
* by `parseDuration` (`@blokjs/helper`).
|
|
127
|
+
*/
|
|
128
|
+
/**
|
|
129
|
+
* Duration value: a non-negative integer (ms) or a single-unit string
|
|
130
|
+
* (`"500ms"`, `"30s"`, `"5m"`, `"2h"`, `"1d"`). Reused by Tier 2 #5+#7
|
|
131
|
+
* scheduling fields and the Tier 2 quick-wins `maxDuration` step field.
|
|
132
|
+
*/
|
|
133
|
+
export declare const DurationSchema: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
134
|
+
/**
|
|
135
|
+
* Per-key debounce configuration. When set, repeated triggers sharing the
|
|
136
|
+
* resolved `key` collapse into one delayed run. Modes:
|
|
137
|
+
*
|
|
138
|
+
* - `"trailing"` (default): each ping resets a `delay` ms timer; the run
|
|
139
|
+
* fires after `delay` ms of silence. `maxDelay` (when set) bounds the
|
|
140
|
+
* tail latency — even with continuous pings, the run fires after
|
|
141
|
+
* `maxDelay` ms.
|
|
142
|
+
* - `"leading"`: the first ping in a window fires immediately; subsequent
|
|
143
|
+
* pings within `delay` ms are dropped with status `"debounced"`. Window
|
|
144
|
+
* resets when `delay` ms of silence pass.
|
|
145
|
+
*
|
|
146
|
+
* `key` is a literal string OR a `js/...` expression that evaluates to a
|
|
147
|
+
* string at run-entry time (typically derived from the request payload via
|
|
148
|
+
* a `$`-proxy expression like `$.req.body.userId`).
|
|
149
|
+
*/
|
|
150
|
+
export declare const DebounceOptsSchema: z.ZodEffects<z.ZodObject<{
|
|
151
|
+
key: z.ZodString;
|
|
152
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
153
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
154
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
155
|
+
}, "strip", z.ZodTypeAny, {
|
|
156
|
+
key: string;
|
|
157
|
+
mode: "leading" | "trailing";
|
|
158
|
+
delay: string | number;
|
|
159
|
+
maxDelay?: string | number | undefined;
|
|
160
|
+
}, {
|
|
161
|
+
key: string;
|
|
162
|
+
delay: string | number;
|
|
163
|
+
mode?: "leading" | "trailing" | undefined;
|
|
164
|
+
maxDelay?: string | number | undefined;
|
|
165
|
+
}>, {
|
|
166
|
+
key: string;
|
|
167
|
+
mode: "leading" | "trailing";
|
|
168
|
+
delay: string | number;
|
|
169
|
+
maxDelay?: string | number | undefined;
|
|
170
|
+
}, {
|
|
171
|
+
key: string;
|
|
172
|
+
delay: string | number;
|
|
173
|
+
mode?: "leading" | "trailing" | undefined;
|
|
174
|
+
maxDelay?: string | number | undefined;
|
|
175
|
+
}>;
|
|
176
|
+
/** Inferred type of the {@link DebounceOptsSchema}. */
|
|
177
|
+
export type DebounceOpts = z.input<typeof DebounceOptsSchema>;
|
|
178
|
+
/**
|
|
179
|
+
* Reusable Zod field bag for run-scheduling primitives. Spread into a
|
|
180
|
+
* trigger's `z.object({...})` and pair with {@link schedulingRefinement}
|
|
181
|
+
* for cross-field validation.
|
|
182
|
+
*
|
|
183
|
+
* - `delay`: defer the run by N (number = ms, or string = `"1h"`).
|
|
184
|
+
* - `ttl`: expire if not started within N. Auto-cancels with status
|
|
185
|
+
* `"expired"`.
|
|
186
|
+
* - `debounce`: coalesce rapid same-key triggers into one delayed run.
|
|
187
|
+
*
|
|
188
|
+
* Zero-overhead default: when none of these fields are set, the trigger
|
|
189
|
+
* behaves exactly as before.
|
|
190
|
+
*/
|
|
191
|
+
export declare const SchedulingOptsFields: {
|
|
192
|
+
readonly delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
193
|
+
readonly ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
194
|
+
readonly debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
195
|
+
key: z.ZodString;
|
|
196
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
197
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
198
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
199
|
+
}, "strip", z.ZodTypeAny, {
|
|
200
|
+
key: string;
|
|
201
|
+
mode: "leading" | "trailing";
|
|
202
|
+
delay: string | number;
|
|
203
|
+
maxDelay?: string | number | undefined;
|
|
204
|
+
}, {
|
|
205
|
+
key: string;
|
|
206
|
+
delay: string | number;
|
|
207
|
+
mode?: "leading" | "trailing" | undefined;
|
|
208
|
+
maxDelay?: string | number | undefined;
|
|
209
|
+
}>, {
|
|
210
|
+
key: string;
|
|
211
|
+
mode: "leading" | "trailing";
|
|
212
|
+
delay: string | number;
|
|
213
|
+
maxDelay?: string | number | undefined;
|
|
214
|
+
}, {
|
|
215
|
+
key: string;
|
|
216
|
+
delay: string | number;
|
|
217
|
+
mode?: "leading" | "trailing" | undefined;
|
|
218
|
+
maxDelay?: string | number | undefined;
|
|
219
|
+
}>>;
|
|
220
|
+
};
|
|
221
|
+
/**
|
|
222
|
+
* Cross-field refinement for scheduling fields. Per-trigger callers pass
|
|
223
|
+
* the trigger kind so HTTP and Worker can have different rules for
|
|
224
|
+
* `ttl`-without-`delay`.
|
|
225
|
+
*/
|
|
226
|
+
export declare function makeSchedulingRefinement(triggerKind: "http" | "worker"): (val: {
|
|
227
|
+
delay?: number | string;
|
|
228
|
+
ttl?: number | string;
|
|
229
|
+
debounce?: DebounceOpts;
|
|
230
|
+
}, ctx: z.RefinementCtx) => void;
|
|
231
|
+
/**
|
|
232
|
+
* Standalone schema exposing just the scheduling fields. Useful for tests
|
|
233
|
+
* and tools. Real triggers spread {@link SchedulingOptsFields} into their
|
|
234
|
+
* own `z.object` and apply {@link makeSchedulingRefinement}.
|
|
235
|
+
*/
|
|
236
|
+
export declare const SchedulingOptsSchema: z.ZodObject<{
|
|
237
|
+
readonly delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
238
|
+
readonly ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
239
|
+
readonly debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
240
|
+
key: z.ZodString;
|
|
241
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
242
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
243
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
244
|
+
}, "strip", z.ZodTypeAny, {
|
|
245
|
+
key: string;
|
|
246
|
+
mode: "leading" | "trailing";
|
|
247
|
+
delay: string | number;
|
|
248
|
+
maxDelay?: string | number | undefined;
|
|
249
|
+
}, {
|
|
250
|
+
key: string;
|
|
251
|
+
delay: string | number;
|
|
252
|
+
mode?: "leading" | "trailing" | undefined;
|
|
253
|
+
maxDelay?: string | number | undefined;
|
|
254
|
+
}>, {
|
|
255
|
+
key: string;
|
|
256
|
+
mode: "leading" | "trailing";
|
|
257
|
+
delay: string | number;
|
|
258
|
+
maxDelay?: string | number | undefined;
|
|
259
|
+
}, {
|
|
260
|
+
key: string;
|
|
261
|
+
delay: string | number;
|
|
262
|
+
mode?: "leading" | "trailing" | undefined;
|
|
263
|
+
maxDelay?: string | number | undefined;
|
|
264
|
+
}>>;
|
|
265
|
+
}, "strip", z.ZodTypeAny, {
|
|
266
|
+
delay?: string | number | undefined;
|
|
267
|
+
ttl?: string | number | undefined;
|
|
268
|
+
debounce?: {
|
|
269
|
+
key: string;
|
|
270
|
+
mode: "leading" | "trailing";
|
|
271
|
+
delay: string | number;
|
|
272
|
+
maxDelay?: string | number | undefined;
|
|
273
|
+
} | undefined;
|
|
274
|
+
}, {
|
|
275
|
+
delay?: string | number | undefined;
|
|
276
|
+
ttl?: string | number | undefined;
|
|
277
|
+
debounce?: {
|
|
278
|
+
key: string;
|
|
279
|
+
delay: string | number;
|
|
280
|
+
mode?: "leading" | "trailing" | undefined;
|
|
281
|
+
maxDelay?: string | number | undefined;
|
|
282
|
+
} | undefined;
|
|
283
|
+
}>;
|
|
284
|
+
/** Inferred shape of the scheduling-options field bag. */
|
|
285
|
+
export type SchedulingOpts = z.input<typeof SchedulingOptsSchema>;
|
|
286
|
+
/**
|
|
287
|
+
* Canonical HTTP method names.
|
|
288
|
+
*
|
|
289
|
+
* `"ANY"` is the wildcard. Legacy `"*"` (used by old JSON workflows) is
|
|
290
|
+
* accepted via {@link HttpMethodSchema} preprocessing and normalized to
|
|
291
|
+
* `"ANY"` with a one-time deprecation warning.
|
|
292
|
+
*/
|
|
293
|
+
export declare const HTTP_METHODS: readonly ["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "ANY"];
|
|
294
|
+
/**
|
|
295
|
+
* HTTP method schema — accepts the canonical names plus the legacy `"*"`
|
|
296
|
+
* (which is preprocessed to `"ANY"` with a one-time warning).
|
|
297
|
+
*/
|
|
298
|
+
export declare const HttpMethodSchema: z.ZodEffects<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "ANY"]>, "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY", unknown>;
|
|
299
|
+
export type HttpMethod = z.infer<typeof HttpMethodSchema>;
|
|
300
|
+
/** Validation schema for the HTTP trigger configuration. */
|
|
301
|
+
export declare const HttpTriggerOptsSchema: z.ZodEffects<z.ZodObject<{
|
|
302
|
+
delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
303
|
+
ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
304
|
+
debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
305
|
+
key: z.ZodString;
|
|
306
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
307
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
308
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
309
|
+
}, "strip", z.ZodTypeAny, {
|
|
310
|
+
key: string;
|
|
311
|
+
mode: "leading" | "trailing";
|
|
312
|
+
delay: string | number;
|
|
313
|
+
maxDelay?: string | number | undefined;
|
|
314
|
+
}, {
|
|
315
|
+
key: string;
|
|
316
|
+
delay: string | number;
|
|
317
|
+
mode?: "leading" | "trailing" | undefined;
|
|
318
|
+
maxDelay?: string | number | undefined;
|
|
319
|
+
}>, {
|
|
320
|
+
key: string;
|
|
321
|
+
mode: "leading" | "trailing";
|
|
322
|
+
delay: string | number;
|
|
323
|
+
maxDelay?: string | number | undefined;
|
|
324
|
+
}, {
|
|
325
|
+
key: string;
|
|
326
|
+
delay: string | number;
|
|
327
|
+
mode?: "leading" | "trailing" | undefined;
|
|
328
|
+
maxDelay?: string | number | undefined;
|
|
329
|
+
}>>;
|
|
330
|
+
concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
331
|
+
concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
332
|
+
concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
333
|
+
onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
334
|
+
concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
335
|
+
concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
336
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
337
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
338
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
339
|
+
}, "strip", z.ZodTypeAny, {
|
|
340
|
+
minBackoffMs?: number | undefined;
|
|
341
|
+
maxBackoffMs?: number | undefined;
|
|
342
|
+
factor?: number | undefined;
|
|
343
|
+
}, {
|
|
344
|
+
minBackoffMs?: number | undefined;
|
|
345
|
+
maxBackoffMs?: number | undefined;
|
|
346
|
+
factor?: number | undefined;
|
|
347
|
+
}>>;
|
|
348
|
+
method: z.ZodEffects<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "ANY"]>, "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY", unknown>;
|
|
4
349
|
path: z.ZodOptional<z.ZodString>;
|
|
5
350
|
accept: z.ZodDefault<z.ZodString>;
|
|
6
351
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
352
|
+
legacyKeyPrefix: z.ZodOptional<z.ZodBoolean>;
|
|
353
|
+
middleware: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
354
|
+
examples: z.ZodOptional<z.ZodObject<{
|
|
355
|
+
body: z.ZodOptional<z.ZodUnknown>;
|
|
356
|
+
}, "strip", z.ZodTypeAny, {
|
|
357
|
+
body?: unknown;
|
|
358
|
+
}, {
|
|
359
|
+
body?: unknown;
|
|
360
|
+
}>>;
|
|
361
|
+
recordSample: z.ZodOptional<z.ZodBoolean>;
|
|
7
362
|
}, "strip", z.ZodTypeAny, {
|
|
8
|
-
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "ANY";
|
|
363
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY";
|
|
9
364
|
accept: string;
|
|
10
365
|
path?: string | undefined;
|
|
366
|
+
concurrencyKey?: string | undefined;
|
|
367
|
+
concurrencyLimit?: number | undefined;
|
|
368
|
+
concurrencyLeaseMs?: number | undefined;
|
|
369
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
370
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
371
|
+
concurrencyQueueRetry?: {
|
|
372
|
+
minBackoffMs?: number | undefined;
|
|
373
|
+
maxBackoffMs?: number | undefined;
|
|
374
|
+
factor?: number | undefined;
|
|
375
|
+
} | undefined;
|
|
376
|
+
delay?: string | number | undefined;
|
|
377
|
+
ttl?: string | number | undefined;
|
|
378
|
+
debounce?: {
|
|
379
|
+
key: string;
|
|
380
|
+
mode: "leading" | "trailing";
|
|
381
|
+
delay: string | number;
|
|
382
|
+
maxDelay?: string | number | undefined;
|
|
383
|
+
} | undefined;
|
|
11
384
|
headers?: Record<string, any> | undefined;
|
|
385
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
386
|
+
middleware?: string[] | undefined;
|
|
387
|
+
examples?: {
|
|
388
|
+
body?: unknown;
|
|
389
|
+
} | undefined;
|
|
390
|
+
recordSample?: boolean | undefined;
|
|
12
391
|
}, {
|
|
13
|
-
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "ANY";
|
|
14
392
|
path?: string | undefined;
|
|
393
|
+
concurrencyKey?: string | undefined;
|
|
394
|
+
concurrencyLimit?: number | undefined;
|
|
395
|
+
concurrencyLeaseMs?: number | undefined;
|
|
396
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
397
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
398
|
+
concurrencyQueueRetry?: {
|
|
399
|
+
minBackoffMs?: number | undefined;
|
|
400
|
+
maxBackoffMs?: number | undefined;
|
|
401
|
+
factor?: number | undefined;
|
|
402
|
+
} | undefined;
|
|
403
|
+
delay?: string | number | undefined;
|
|
404
|
+
ttl?: string | number | undefined;
|
|
405
|
+
debounce?: {
|
|
406
|
+
key: string;
|
|
407
|
+
delay: string | number;
|
|
408
|
+
mode?: "leading" | "trailing" | undefined;
|
|
409
|
+
maxDelay?: string | number | undefined;
|
|
410
|
+
} | undefined;
|
|
411
|
+
method?: unknown;
|
|
15
412
|
accept?: string | undefined;
|
|
16
413
|
headers?: Record<string, any> | undefined;
|
|
414
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
415
|
+
middleware?: string[] | undefined;
|
|
416
|
+
examples?: {
|
|
417
|
+
body?: unknown;
|
|
418
|
+
} | undefined;
|
|
419
|
+
recordSample?: boolean | undefined;
|
|
420
|
+
}>, {
|
|
421
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY";
|
|
422
|
+
accept: string;
|
|
423
|
+
path?: string | undefined;
|
|
424
|
+
concurrencyKey?: string | undefined;
|
|
425
|
+
concurrencyLimit?: number | undefined;
|
|
426
|
+
concurrencyLeaseMs?: number | undefined;
|
|
427
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
428
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
429
|
+
concurrencyQueueRetry?: {
|
|
430
|
+
minBackoffMs?: number | undefined;
|
|
431
|
+
maxBackoffMs?: number | undefined;
|
|
432
|
+
factor?: number | undefined;
|
|
433
|
+
} | undefined;
|
|
434
|
+
delay?: string | number | undefined;
|
|
435
|
+
ttl?: string | number | undefined;
|
|
436
|
+
debounce?: {
|
|
437
|
+
key: string;
|
|
438
|
+
mode: "leading" | "trailing";
|
|
439
|
+
delay: string | number;
|
|
440
|
+
maxDelay?: string | number | undefined;
|
|
441
|
+
} | undefined;
|
|
442
|
+
headers?: Record<string, any> | undefined;
|
|
443
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
444
|
+
middleware?: string[] | undefined;
|
|
445
|
+
examples?: {
|
|
446
|
+
body?: unknown;
|
|
447
|
+
} | undefined;
|
|
448
|
+
recordSample?: boolean | undefined;
|
|
449
|
+
}, {
|
|
450
|
+
path?: string | undefined;
|
|
451
|
+
concurrencyKey?: string | undefined;
|
|
452
|
+
concurrencyLimit?: number | undefined;
|
|
453
|
+
concurrencyLeaseMs?: number | undefined;
|
|
454
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
455
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
456
|
+
concurrencyQueueRetry?: {
|
|
457
|
+
minBackoffMs?: number | undefined;
|
|
458
|
+
maxBackoffMs?: number | undefined;
|
|
459
|
+
factor?: number | undefined;
|
|
460
|
+
} | undefined;
|
|
461
|
+
delay?: string | number | undefined;
|
|
462
|
+
ttl?: string | number | undefined;
|
|
463
|
+
debounce?: {
|
|
464
|
+
key: string;
|
|
465
|
+
delay: string | number;
|
|
466
|
+
mode?: "leading" | "trailing" | undefined;
|
|
467
|
+
maxDelay?: string | number | undefined;
|
|
468
|
+
} | undefined;
|
|
469
|
+
method?: unknown;
|
|
470
|
+
accept?: string | undefined;
|
|
471
|
+
headers?: Record<string, any> | undefined;
|
|
472
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
473
|
+
middleware?: string[] | undefined;
|
|
474
|
+
examples?: {
|
|
475
|
+
body?: unknown;
|
|
476
|
+
} | undefined;
|
|
477
|
+
recordSample?: boolean | undefined;
|
|
17
478
|
}>;
|
|
18
|
-
|
|
19
|
-
|
|
479
|
+
/** Configuration for an HTTP trigger. Use with `addTrigger("http", ...)`. */
|
|
480
|
+
export type HttpTriggerOpts = z.input<typeof HttpTriggerOptsSchema>;
|
|
481
|
+
/**
|
|
482
|
+
* Legacy alias for {@link HttpTriggerOptsSchema}. Prefer the explicit name.
|
|
483
|
+
*
|
|
484
|
+
* @deprecated Use {@link HttpTriggerOptsSchema} directly. Will be removed in
|
|
485
|
+
* the next minor version.
|
|
486
|
+
*/
|
|
487
|
+
export declare const TriggerOptsSchema: z.ZodEffects<z.ZodObject<{
|
|
488
|
+
delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
489
|
+
ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
490
|
+
debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
491
|
+
key: z.ZodString;
|
|
492
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
493
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
494
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
495
|
+
}, "strip", z.ZodTypeAny, {
|
|
496
|
+
key: string;
|
|
497
|
+
mode: "leading" | "trailing";
|
|
498
|
+
delay: string | number;
|
|
499
|
+
maxDelay?: string | number | undefined;
|
|
500
|
+
}, {
|
|
501
|
+
key: string;
|
|
502
|
+
delay: string | number;
|
|
503
|
+
mode?: "leading" | "trailing" | undefined;
|
|
504
|
+
maxDelay?: string | number | undefined;
|
|
505
|
+
}>, {
|
|
506
|
+
key: string;
|
|
507
|
+
mode: "leading" | "trailing";
|
|
508
|
+
delay: string | number;
|
|
509
|
+
maxDelay?: string | number | undefined;
|
|
510
|
+
}, {
|
|
511
|
+
key: string;
|
|
512
|
+
delay: string | number;
|
|
513
|
+
mode?: "leading" | "trailing" | undefined;
|
|
514
|
+
maxDelay?: string | number | undefined;
|
|
515
|
+
}>>;
|
|
516
|
+
concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
517
|
+
concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
518
|
+
concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
519
|
+
onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
520
|
+
concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
521
|
+
concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
522
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
523
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
524
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
525
|
+
}, "strip", z.ZodTypeAny, {
|
|
526
|
+
minBackoffMs?: number | undefined;
|
|
527
|
+
maxBackoffMs?: number | undefined;
|
|
528
|
+
factor?: number | undefined;
|
|
529
|
+
}, {
|
|
530
|
+
minBackoffMs?: number | undefined;
|
|
531
|
+
maxBackoffMs?: number | undefined;
|
|
532
|
+
factor?: number | undefined;
|
|
533
|
+
}>>;
|
|
534
|
+
method: z.ZodEffects<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "ANY"]>, "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY", unknown>;
|
|
20
535
|
path: z.ZodOptional<z.ZodString>;
|
|
21
536
|
accept: z.ZodDefault<z.ZodString>;
|
|
22
537
|
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
538
|
+
legacyKeyPrefix: z.ZodOptional<z.ZodBoolean>;
|
|
539
|
+
middleware: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
540
|
+
examples: z.ZodOptional<z.ZodObject<{
|
|
541
|
+
body: z.ZodOptional<z.ZodUnknown>;
|
|
542
|
+
}, "strip", z.ZodTypeAny, {
|
|
543
|
+
body?: unknown;
|
|
544
|
+
}, {
|
|
545
|
+
body?: unknown;
|
|
546
|
+
}>>;
|
|
547
|
+
recordSample: z.ZodOptional<z.ZodBoolean>;
|
|
23
548
|
}, "strip", z.ZodTypeAny, {
|
|
24
|
-
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "ANY";
|
|
549
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY";
|
|
550
|
+
accept: string;
|
|
551
|
+
path?: string | undefined;
|
|
552
|
+
concurrencyKey?: string | undefined;
|
|
553
|
+
concurrencyLimit?: number | undefined;
|
|
554
|
+
concurrencyLeaseMs?: number | undefined;
|
|
555
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
556
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
557
|
+
concurrencyQueueRetry?: {
|
|
558
|
+
minBackoffMs?: number | undefined;
|
|
559
|
+
maxBackoffMs?: number | undefined;
|
|
560
|
+
factor?: number | undefined;
|
|
561
|
+
} | undefined;
|
|
562
|
+
delay?: string | number | undefined;
|
|
563
|
+
ttl?: string | number | undefined;
|
|
564
|
+
debounce?: {
|
|
565
|
+
key: string;
|
|
566
|
+
mode: "leading" | "trailing";
|
|
567
|
+
delay: string | number;
|
|
568
|
+
maxDelay?: string | number | undefined;
|
|
569
|
+
} | undefined;
|
|
570
|
+
headers?: Record<string, any> | undefined;
|
|
571
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
572
|
+
middleware?: string[] | undefined;
|
|
573
|
+
examples?: {
|
|
574
|
+
body?: unknown;
|
|
575
|
+
} | undefined;
|
|
576
|
+
recordSample?: boolean | undefined;
|
|
577
|
+
}, {
|
|
578
|
+
path?: string | undefined;
|
|
579
|
+
concurrencyKey?: string | undefined;
|
|
580
|
+
concurrencyLimit?: number | undefined;
|
|
581
|
+
concurrencyLeaseMs?: number | undefined;
|
|
582
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
583
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
584
|
+
concurrencyQueueRetry?: {
|
|
585
|
+
minBackoffMs?: number | undefined;
|
|
586
|
+
maxBackoffMs?: number | undefined;
|
|
587
|
+
factor?: number | undefined;
|
|
588
|
+
} | undefined;
|
|
589
|
+
delay?: string | number | undefined;
|
|
590
|
+
ttl?: string | number | undefined;
|
|
591
|
+
debounce?: {
|
|
592
|
+
key: string;
|
|
593
|
+
delay: string | number;
|
|
594
|
+
mode?: "leading" | "trailing" | undefined;
|
|
595
|
+
maxDelay?: string | number | undefined;
|
|
596
|
+
} | undefined;
|
|
597
|
+
method?: unknown;
|
|
598
|
+
accept?: string | undefined;
|
|
599
|
+
headers?: Record<string, any> | undefined;
|
|
600
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
601
|
+
middleware?: string[] | undefined;
|
|
602
|
+
examples?: {
|
|
603
|
+
body?: unknown;
|
|
604
|
+
} | undefined;
|
|
605
|
+
recordSample?: boolean | undefined;
|
|
606
|
+
}>, {
|
|
607
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY";
|
|
25
608
|
accept: string;
|
|
26
609
|
path?: string | undefined;
|
|
610
|
+
concurrencyKey?: string | undefined;
|
|
611
|
+
concurrencyLimit?: number | undefined;
|
|
612
|
+
concurrencyLeaseMs?: number | undefined;
|
|
613
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
614
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
615
|
+
concurrencyQueueRetry?: {
|
|
616
|
+
minBackoffMs?: number | undefined;
|
|
617
|
+
maxBackoffMs?: number | undefined;
|
|
618
|
+
factor?: number | undefined;
|
|
619
|
+
} | undefined;
|
|
620
|
+
delay?: string | number | undefined;
|
|
621
|
+
ttl?: string | number | undefined;
|
|
622
|
+
debounce?: {
|
|
623
|
+
key: string;
|
|
624
|
+
mode: "leading" | "trailing";
|
|
625
|
+
delay: string | number;
|
|
626
|
+
maxDelay?: string | number | undefined;
|
|
627
|
+
} | undefined;
|
|
27
628
|
headers?: Record<string, any> | undefined;
|
|
629
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
630
|
+
middleware?: string[] | undefined;
|
|
631
|
+
examples?: {
|
|
632
|
+
body?: unknown;
|
|
633
|
+
} | undefined;
|
|
634
|
+
recordSample?: boolean | undefined;
|
|
28
635
|
}, {
|
|
29
|
-
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "ANY";
|
|
30
636
|
path?: string | undefined;
|
|
637
|
+
concurrencyKey?: string | undefined;
|
|
638
|
+
concurrencyLimit?: number | undefined;
|
|
639
|
+
concurrencyLeaseMs?: number | undefined;
|
|
640
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
641
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
642
|
+
concurrencyQueueRetry?: {
|
|
643
|
+
minBackoffMs?: number | undefined;
|
|
644
|
+
maxBackoffMs?: number | undefined;
|
|
645
|
+
factor?: number | undefined;
|
|
646
|
+
} | undefined;
|
|
647
|
+
delay?: string | number | undefined;
|
|
648
|
+
ttl?: string | number | undefined;
|
|
649
|
+
debounce?: {
|
|
650
|
+
key: string;
|
|
651
|
+
delay: string | number;
|
|
652
|
+
mode?: "leading" | "trailing" | undefined;
|
|
653
|
+
maxDelay?: string | number | undefined;
|
|
654
|
+
} | undefined;
|
|
655
|
+
method?: unknown;
|
|
31
656
|
accept?: string | undefined;
|
|
32
657
|
headers?: Record<string, any> | undefined;
|
|
658
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
659
|
+
middleware?: string[] | undefined;
|
|
660
|
+
examples?: {
|
|
661
|
+
body?: unknown;
|
|
662
|
+
} | undefined;
|
|
663
|
+
recordSample?: boolean | undefined;
|
|
33
664
|
}>;
|
|
34
|
-
|
|
35
|
-
|
|
665
|
+
/**
|
|
666
|
+
* Legacy alias for {@link HttpTriggerOpts}. Prefer the explicit name.
|
|
667
|
+
*
|
|
668
|
+
* @deprecated Use {@link HttpTriggerOpts} directly. Will be removed in the
|
|
669
|
+
* next minor version.
|
|
670
|
+
*/
|
|
671
|
+
export type TriggerOpts = HttpTriggerOpts;
|
|
672
|
+
export declare const QueueProviderSchema: z.ZodEnum<["kafka", "rabbitmq", "sqs", "redis", "beanstalk", "nats"]>;
|
|
36
673
|
export type QueueProvider = z.infer<typeof QueueProviderSchema>;
|
|
37
674
|
export declare const QueueTriggerOptsSchema: z.ZodObject<{
|
|
38
|
-
provider: z.ZodEnum<["kafka", "rabbitmq", "sqs", "redis", "beanstalk"]>;
|
|
675
|
+
provider: z.ZodEnum<["kafka", "rabbitmq", "sqs", "redis", "beanstalk", "nats"]>;
|
|
39
676
|
topic: z.ZodString;
|
|
40
677
|
subscription: z.ZodOptional<z.ZodString>;
|
|
41
678
|
consumerGroup: z.ZodOptional<z.ZodString>;
|
|
@@ -46,7 +683,7 @@ export declare const QueueTriggerOptsSchema: z.ZodObject<{
|
|
|
46
683
|
batchSize: z.ZodDefault<z.ZodNumber>;
|
|
47
684
|
concurrency: z.ZodDefault<z.ZodNumber>;
|
|
48
685
|
}, "strip", z.ZodTypeAny, {
|
|
49
|
-
provider: "kafka" | "rabbitmq" | "sqs" | "redis" | "beanstalk";
|
|
686
|
+
provider: "kafka" | "rabbitmq" | "sqs" | "redis" | "beanstalk" | "nats";
|
|
50
687
|
topic: string;
|
|
51
688
|
ack: boolean;
|
|
52
689
|
maxRetries: number;
|
|
@@ -57,7 +694,7 @@ export declare const QueueTriggerOptsSchema: z.ZodObject<{
|
|
|
57
694
|
consumerGroup?: string | undefined;
|
|
58
695
|
deadLetterQueue?: string | undefined;
|
|
59
696
|
}, {
|
|
60
|
-
provider: "kafka" | "rabbitmq" | "sqs" | "redis" | "beanstalk";
|
|
697
|
+
provider: "kafka" | "rabbitmq" | "sqs" | "redis" | "beanstalk" | "nats";
|
|
61
698
|
topic: string;
|
|
62
699
|
subscription?: string | undefined;
|
|
63
700
|
consumerGroup?: string | undefined;
|
|
@@ -69,58 +706,268 @@ export declare const QueueTriggerOptsSchema: z.ZodObject<{
|
|
|
69
706
|
concurrency?: number | undefined;
|
|
70
707
|
}>;
|
|
71
708
|
export type QueueTriggerOpts = z.input<typeof QueueTriggerOptsSchema>;
|
|
72
|
-
|
|
709
|
+
/**
|
|
710
|
+
* v0.7 PR 6 — supported pub/sub adapter providers.
|
|
711
|
+
*
|
|
712
|
+
* Pub/Sub is distinct from Worker: pub/sub is **1:N fan-out by default**
|
|
713
|
+
* (every subscriber sees every message). When `consumerGroup` is set,
|
|
714
|
+
* semantics shift to **competing-consumer** (1 of N within group). This
|
|
715
|
+
* single field disambiguates the two semantics — matching NestJS's
|
|
716
|
+
* `@MessagePattern` vs `@EventPattern` distinction.
|
|
717
|
+
*
|
|
718
|
+
* `nats` and `redis-streams` and `kafka` appear in both Worker and
|
|
719
|
+
* Pub/Sub provider lists because the underlying brokers support both
|
|
720
|
+
* semantics — the same broker connection serves both adapter kinds
|
|
721
|
+
* via different code paths.
|
|
722
|
+
*
|
|
723
|
+
* `BLOK_PUBSUB_ADAPTER` env var sets the default when `provider` is
|
|
724
|
+
* omitted on the workflow.
|
|
725
|
+
*/
|
|
726
|
+
export declare const PubSubProviderSchema: z.ZodEnum<["nats", "redis-streams", "kafka", "gcp", "aws", "azure"]>;
|
|
73
727
|
export type PubSubProvider = z.infer<typeof PubSubProviderSchema>;
|
|
74
728
|
export declare const PubSubTriggerOptsSchema: z.ZodObject<{
|
|
75
|
-
provider: z.ZodEnum<["gcp", "aws", "azure"]
|
|
729
|
+
provider: z.ZodOptional<z.ZodEnum<["nats", "redis-streams", "kafka", "gcp", "aws", "azure"]>>;
|
|
76
730
|
topic: z.ZodString;
|
|
77
|
-
subscription: z.ZodString
|
|
731
|
+
subscription: z.ZodOptional<z.ZodString>;
|
|
732
|
+
consumerGroup: z.ZodOptional<z.ZodString>;
|
|
733
|
+
durable: z.ZodOptional<z.ZodBoolean>;
|
|
734
|
+
startFrom: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"earliest">, z.ZodLiteral<"latest">, z.ZodObject<{
|
|
735
|
+
seq: z.ZodNumber;
|
|
736
|
+
}, "strip", z.ZodTypeAny, {
|
|
737
|
+
seq: number;
|
|
738
|
+
}, {
|
|
739
|
+
seq: number;
|
|
740
|
+
}>, z.ZodObject<{
|
|
741
|
+
timestamp: z.ZodNumber;
|
|
742
|
+
}, "strip", z.ZodTypeAny, {
|
|
743
|
+
timestamp: number;
|
|
744
|
+
}, {
|
|
745
|
+
timestamp: number;
|
|
746
|
+
}>]>>;
|
|
78
747
|
ack: z.ZodDefault<z.ZodBoolean>;
|
|
79
748
|
maxMessages: z.ZodDefault<z.ZodNumber>;
|
|
80
749
|
ackDeadline: z.ZodDefault<z.ZodNumber>;
|
|
81
750
|
deadLetterTopic: z.ZodOptional<z.ZodString>;
|
|
82
751
|
filter: z.ZodOptional<z.ZodString>;
|
|
83
752
|
}, "strip", z.ZodTypeAny, {
|
|
84
|
-
provider: "gcp" | "aws" | "azure";
|
|
85
753
|
topic: string;
|
|
86
|
-
subscription: string;
|
|
87
754
|
ack: boolean;
|
|
88
755
|
maxMessages: number;
|
|
89
756
|
ackDeadline: number;
|
|
90
757
|
filter?: string | undefined;
|
|
758
|
+
provider?: "kafka" | "nats" | "redis-streams" | "gcp" | "aws" | "azure" | undefined;
|
|
759
|
+
subscription?: string | undefined;
|
|
760
|
+
consumerGroup?: string | undefined;
|
|
761
|
+
durable?: boolean | undefined;
|
|
762
|
+
startFrom?: "earliest" | "latest" | {
|
|
763
|
+
seq: number;
|
|
764
|
+
} | {
|
|
765
|
+
timestamp: number;
|
|
766
|
+
} | undefined;
|
|
91
767
|
deadLetterTopic?: string | undefined;
|
|
92
768
|
}, {
|
|
93
|
-
provider: "gcp" | "aws" | "azure";
|
|
94
769
|
topic: string;
|
|
95
|
-
subscription: string;
|
|
96
770
|
filter?: string | undefined;
|
|
771
|
+
provider?: "kafka" | "nats" | "redis-streams" | "gcp" | "aws" | "azure" | undefined;
|
|
772
|
+
subscription?: string | undefined;
|
|
773
|
+
consumerGroup?: string | undefined;
|
|
97
774
|
ack?: boolean | undefined;
|
|
775
|
+
durable?: boolean | undefined;
|
|
776
|
+
startFrom?: "earliest" | "latest" | {
|
|
777
|
+
seq: number;
|
|
778
|
+
} | {
|
|
779
|
+
timestamp: number;
|
|
780
|
+
} | undefined;
|
|
98
781
|
maxMessages?: number | undefined;
|
|
99
782
|
ackDeadline?: number | undefined;
|
|
100
783
|
deadLetterTopic?: string | undefined;
|
|
101
784
|
}>;
|
|
102
785
|
export type PubSubTriggerOpts = z.input<typeof PubSubTriggerOptsSchema>;
|
|
103
|
-
|
|
786
|
+
/**
|
|
787
|
+
* v0.7 — supported worker adapter providers. `BLOK_WORKER_ADAPTER`
|
|
788
|
+
* env var sets the default when `provider` is omitted on the workflow
|
|
789
|
+
* (per Q7 resolution). `in-memory` is the dev/test fallback.
|
|
790
|
+
*
|
|
791
|
+
* `nats` and `bullmq` shipped pre-v0.7. The other five (kafka,
|
|
792
|
+
* rabbitmq, sqs, redis, pg-boss) are new in PR 5 — each ships behind a
|
|
793
|
+
* peer-dependency so workflows that don't use that provider don't
|
|
794
|
+
* pay the install cost.
|
|
795
|
+
*/
|
|
796
|
+
export declare const WorkerProviderSchema: z.ZodEnum<["in-memory", "nats", "bullmq", "kafka", "rabbitmq", "sqs", "redis", "pg-boss"]>;
|
|
797
|
+
export type WorkerProvider = z.infer<typeof WorkerProviderSchema>;
|
|
798
|
+
export declare const WorkerTriggerOptsSchema: z.ZodEffects<z.ZodObject<{
|
|
799
|
+
delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
800
|
+
ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
801
|
+
debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
802
|
+
key: z.ZodString;
|
|
803
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
804
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
805
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
806
|
+
}, "strip", z.ZodTypeAny, {
|
|
807
|
+
key: string;
|
|
808
|
+
mode: "leading" | "trailing";
|
|
809
|
+
delay: string | number;
|
|
810
|
+
maxDelay?: string | number | undefined;
|
|
811
|
+
}, {
|
|
812
|
+
key: string;
|
|
813
|
+
delay: string | number;
|
|
814
|
+
mode?: "leading" | "trailing" | undefined;
|
|
815
|
+
maxDelay?: string | number | undefined;
|
|
816
|
+
}>, {
|
|
817
|
+
key: string;
|
|
818
|
+
mode: "leading" | "trailing";
|
|
819
|
+
delay: string | number;
|
|
820
|
+
maxDelay?: string | number | undefined;
|
|
821
|
+
}, {
|
|
822
|
+
key: string;
|
|
823
|
+
delay: string | number;
|
|
824
|
+
mode?: "leading" | "trailing" | undefined;
|
|
825
|
+
maxDelay?: string | number | undefined;
|
|
826
|
+
}>>;
|
|
827
|
+
concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
828
|
+
concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
829
|
+
concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
830
|
+
onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
831
|
+
concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
832
|
+
concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
833
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
834
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
835
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
836
|
+
}, "strip", z.ZodTypeAny, {
|
|
837
|
+
minBackoffMs?: number | undefined;
|
|
838
|
+
maxBackoffMs?: number | undefined;
|
|
839
|
+
factor?: number | undefined;
|
|
840
|
+
}, {
|
|
841
|
+
minBackoffMs?: number | undefined;
|
|
842
|
+
maxBackoffMs?: number | undefined;
|
|
843
|
+
factor?: number | undefined;
|
|
844
|
+
}>>;
|
|
104
845
|
queue: z.ZodString;
|
|
846
|
+
provider: z.ZodOptional<z.ZodEnum<["in-memory", "nats", "bullmq", "kafka", "rabbitmq", "sqs", "redis", "pg-boss"]>>;
|
|
105
847
|
concurrency: z.ZodDefault<z.ZodNumber>;
|
|
106
848
|
timeout: z.ZodOptional<z.ZodNumber>;
|
|
107
849
|
retries: z.ZodDefault<z.ZodNumber>;
|
|
108
850
|
priority: z.ZodDefault<z.ZodNumber>;
|
|
109
|
-
|
|
851
|
+
consumerGroup: z.ZodOptional<z.ZodString>;
|
|
852
|
+
ack: z.ZodOptional<z.ZodBoolean>;
|
|
853
|
+
deadLetterQueue: z.ZodOptional<z.ZodString>;
|
|
854
|
+
fromBeginning: z.ZodOptional<z.ZodBoolean>;
|
|
110
855
|
}, "strip", z.ZodTypeAny, {
|
|
856
|
+
queue: string;
|
|
111
857
|
concurrency: number;
|
|
858
|
+
retries: number;
|
|
859
|
+
priority: number;
|
|
860
|
+
concurrencyKey?: string | undefined;
|
|
861
|
+
concurrencyLimit?: number | undefined;
|
|
862
|
+
concurrencyLeaseMs?: number | undefined;
|
|
863
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
864
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
865
|
+
concurrencyQueueRetry?: {
|
|
866
|
+
minBackoffMs?: number | undefined;
|
|
867
|
+
maxBackoffMs?: number | undefined;
|
|
868
|
+
factor?: number | undefined;
|
|
869
|
+
} | undefined;
|
|
870
|
+
delay?: string | number | undefined;
|
|
871
|
+
ttl?: string | number | undefined;
|
|
872
|
+
debounce?: {
|
|
873
|
+
key: string;
|
|
874
|
+
mode: "leading" | "trailing";
|
|
875
|
+
delay: string | number;
|
|
876
|
+
maxDelay?: string | number | undefined;
|
|
877
|
+
} | undefined;
|
|
878
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
879
|
+
consumerGroup?: string | undefined;
|
|
880
|
+
ack?: boolean | undefined;
|
|
881
|
+
deadLetterQueue?: string | undefined;
|
|
882
|
+
timeout?: number | undefined;
|
|
883
|
+
fromBeginning?: boolean | undefined;
|
|
884
|
+
}, {
|
|
112
885
|
queue: string;
|
|
886
|
+
concurrencyKey?: string | undefined;
|
|
887
|
+
concurrencyLimit?: number | undefined;
|
|
888
|
+
concurrencyLeaseMs?: number | undefined;
|
|
889
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
890
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
891
|
+
concurrencyQueueRetry?: {
|
|
892
|
+
minBackoffMs?: number | undefined;
|
|
893
|
+
maxBackoffMs?: number | undefined;
|
|
894
|
+
factor?: number | undefined;
|
|
895
|
+
} | undefined;
|
|
896
|
+
delay?: string | number | undefined;
|
|
897
|
+
ttl?: string | number | undefined;
|
|
898
|
+
debounce?: {
|
|
899
|
+
key: string;
|
|
900
|
+
delay: string | number;
|
|
901
|
+
mode?: "leading" | "trailing" | undefined;
|
|
902
|
+
maxDelay?: string | number | undefined;
|
|
903
|
+
} | undefined;
|
|
904
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
905
|
+
consumerGroup?: string | undefined;
|
|
906
|
+
ack?: boolean | undefined;
|
|
907
|
+
deadLetterQueue?: string | undefined;
|
|
908
|
+
concurrency?: number | undefined;
|
|
909
|
+
timeout?: number | undefined;
|
|
910
|
+
retries?: number | undefined;
|
|
911
|
+
priority?: number | undefined;
|
|
912
|
+
fromBeginning?: boolean | undefined;
|
|
913
|
+
}>, {
|
|
914
|
+
queue: string;
|
|
915
|
+
concurrency: number;
|
|
113
916
|
retries: number;
|
|
114
917
|
priority: number;
|
|
918
|
+
concurrencyKey?: string | undefined;
|
|
919
|
+
concurrencyLimit?: number | undefined;
|
|
920
|
+
concurrencyLeaseMs?: number | undefined;
|
|
921
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
922
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
923
|
+
concurrencyQueueRetry?: {
|
|
924
|
+
minBackoffMs?: number | undefined;
|
|
925
|
+
maxBackoffMs?: number | undefined;
|
|
926
|
+
factor?: number | undefined;
|
|
927
|
+
} | undefined;
|
|
928
|
+
delay?: string | number | undefined;
|
|
929
|
+
ttl?: string | number | undefined;
|
|
930
|
+
debounce?: {
|
|
931
|
+
key: string;
|
|
932
|
+
mode: "leading" | "trailing";
|
|
933
|
+
delay: string | number;
|
|
934
|
+
maxDelay?: string | number | undefined;
|
|
935
|
+
} | undefined;
|
|
936
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
937
|
+
consumerGroup?: string | undefined;
|
|
938
|
+
ack?: boolean | undefined;
|
|
939
|
+
deadLetterQueue?: string | undefined;
|
|
115
940
|
timeout?: number | undefined;
|
|
116
|
-
|
|
941
|
+
fromBeginning?: boolean | undefined;
|
|
117
942
|
}, {
|
|
118
943
|
queue: string;
|
|
944
|
+
concurrencyKey?: string | undefined;
|
|
945
|
+
concurrencyLimit?: number | undefined;
|
|
946
|
+
concurrencyLeaseMs?: number | undefined;
|
|
947
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
948
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
949
|
+
concurrencyQueueRetry?: {
|
|
950
|
+
minBackoffMs?: number | undefined;
|
|
951
|
+
maxBackoffMs?: number | undefined;
|
|
952
|
+
factor?: number | undefined;
|
|
953
|
+
} | undefined;
|
|
954
|
+
delay?: string | number | undefined;
|
|
955
|
+
ttl?: string | number | undefined;
|
|
956
|
+
debounce?: {
|
|
957
|
+
key: string;
|
|
958
|
+
delay: string | number;
|
|
959
|
+
mode?: "leading" | "trailing" | undefined;
|
|
960
|
+
maxDelay?: string | number | undefined;
|
|
961
|
+
} | undefined;
|
|
962
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
963
|
+
consumerGroup?: string | undefined;
|
|
964
|
+
ack?: boolean | undefined;
|
|
965
|
+
deadLetterQueue?: string | undefined;
|
|
119
966
|
concurrency?: number | undefined;
|
|
120
967
|
timeout?: number | undefined;
|
|
121
968
|
retries?: number | undefined;
|
|
122
969
|
priority?: number | undefined;
|
|
123
|
-
|
|
970
|
+
fromBeginning?: boolean | undefined;
|
|
124
971
|
}>;
|
|
125
972
|
export type WorkerTriggerOpts = z.input<typeof WorkerTriggerOptsSchema>;
|
|
126
973
|
export declare const CronTriggerOptsSchema: z.ZodObject<{
|
|
@@ -137,21 +984,135 @@ export declare const CronTriggerOptsSchema: z.ZodObject<{
|
|
|
137
984
|
overlap?: boolean | undefined;
|
|
138
985
|
}>;
|
|
139
986
|
export type CronTriggerOpts = z.input<typeof CronTriggerOptsSchema>;
|
|
987
|
+
/**
|
|
988
|
+
* v0.7 — custom signature scheme for unknown webhook providers.
|
|
989
|
+
*
|
|
990
|
+
* Authors who use a webhook source NOT in the built-in `provider`
|
|
991
|
+
* allowlist (github / stripe / slack / shopify / svix) supply this
|
|
992
|
+
* config; the trigger does HMAC verification using these fields.
|
|
993
|
+
*
|
|
994
|
+
* The `format` template names the layout of the signature payload —
|
|
995
|
+
* `{hex}` is substituted with the hex digest at verify time. Supports
|
|
996
|
+
* common shapes:
|
|
997
|
+
* - GitHub-style: `sha256={hex}`
|
|
998
|
+
* - Plain hex: `{hex}`
|
|
999
|
+
* - Base64: `{base64}` (encoded variant)
|
|
1000
|
+
*
|
|
1001
|
+
* When `timestampHeader` is set, the verifier mixes the header value
|
|
1002
|
+
* into the signed string as `{timestamp}.{rawBody}` (Stripe pattern)
|
|
1003
|
+
* and rejects deliveries whose timestamp drifted by more than
|
|
1004
|
+
* `tolerance` seconds (default 300s / 5min).
|
|
1005
|
+
*/
|
|
1006
|
+
export declare const WebhookCustomSignatureSchema: z.ZodObject<{
|
|
1007
|
+
scheme: z.ZodDefault<z.ZodEnum<["hmac-sha256", "hmac-sha1", "hmac-sha512"]>>;
|
|
1008
|
+
header: z.ZodString;
|
|
1009
|
+
format: z.ZodDefault<z.ZodString>;
|
|
1010
|
+
secretEnv: z.ZodString;
|
|
1011
|
+
tolerance: z.ZodDefault<z.ZodNumber>;
|
|
1012
|
+
timestampHeader: z.ZodOptional<z.ZodString>;
|
|
1013
|
+
}, "strip", z.ZodTypeAny, {
|
|
1014
|
+
scheme: "hmac-sha256" | "hmac-sha1" | "hmac-sha512";
|
|
1015
|
+
header: string;
|
|
1016
|
+
format: string;
|
|
1017
|
+
secretEnv: string;
|
|
1018
|
+
tolerance: number;
|
|
1019
|
+
timestampHeader?: string | undefined;
|
|
1020
|
+
}, {
|
|
1021
|
+
header: string;
|
|
1022
|
+
secretEnv: string;
|
|
1023
|
+
scheme?: "hmac-sha256" | "hmac-sha1" | "hmac-sha512" | undefined;
|
|
1024
|
+
format?: string | undefined;
|
|
1025
|
+
tolerance?: number | undefined;
|
|
1026
|
+
timestampHeader?: string | undefined;
|
|
1027
|
+
}>;
|
|
1028
|
+
export type WebhookCustomSignature = z.input<typeof WebhookCustomSignatureSchema>;
|
|
1029
|
+
/**
|
|
1030
|
+
* v0.7 webhook trigger config. See the v0.7 additional-triggers plan
|
|
1031
|
+
* for the full design.
|
|
1032
|
+
*
|
|
1033
|
+
* **`provider`** selects a built-in verifier (GitHub, Stripe, Slack,
|
|
1034
|
+
* Shopify, Standard Webhooks via Svix). For unknown providers, omit
|
|
1035
|
+
* `provider` and supply `signature` instead.
|
|
1036
|
+
*
|
|
1037
|
+
* **`namespace`** (combined with a polymorphic `subworkflow` step in
|
|
1038
|
+
* the workflow body) lets one trigger workflow dispatch to many
|
|
1039
|
+
* per-event handler workflows by name. Example: webhook fires with
|
|
1040
|
+
* `body.type === "invoice.paid"` and namespace `"stripe"` resolves
|
|
1041
|
+
* to sub-workflow `"stripe.invoice.paid"`.
|
|
1042
|
+
*
|
|
1043
|
+
* **`secretEnv`** is the env var name to read the shared secret from
|
|
1044
|
+
* — the verifier never sees the secret value at config time, and
|
|
1045
|
+
* workflow JSON files never contain it.
|
|
1046
|
+
*
|
|
1047
|
+
* **`events`** (allowlist) skips verifier-validated deliveries that
|
|
1048
|
+
* are NOT in the list — returns 200 with `{status: "ignored"}` so
|
|
1049
|
+
* the sender doesn't retry. Absent allowlist = accept all events.
|
|
1050
|
+
*/
|
|
140
1051
|
export declare const WebhookTriggerOptsSchema: z.ZodObject<{
|
|
141
|
-
|
|
142
|
-
events: z.ZodArray<z.ZodString, "many">;
|
|
143
|
-
secret: z.ZodOptional<z.ZodString>;
|
|
1052
|
+
provider: z.ZodOptional<z.ZodEnum<["github", "stripe", "slack", "shopify", "svix"]>>;
|
|
144
1053
|
path: z.ZodOptional<z.ZodString>;
|
|
1054
|
+
events: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1055
|
+
secretEnv: z.ZodOptional<z.ZodString>;
|
|
1056
|
+
signature: z.ZodOptional<z.ZodObject<{
|
|
1057
|
+
scheme: z.ZodDefault<z.ZodEnum<["hmac-sha256", "hmac-sha1", "hmac-sha512"]>>;
|
|
1058
|
+
header: z.ZodString;
|
|
1059
|
+
format: z.ZodDefault<z.ZodString>;
|
|
1060
|
+
secretEnv: z.ZodString;
|
|
1061
|
+
tolerance: z.ZodDefault<z.ZodNumber>;
|
|
1062
|
+
timestampHeader: z.ZodOptional<z.ZodString>;
|
|
1063
|
+
}, "strip", z.ZodTypeAny, {
|
|
1064
|
+
scheme: "hmac-sha256" | "hmac-sha1" | "hmac-sha512";
|
|
1065
|
+
header: string;
|
|
1066
|
+
format: string;
|
|
1067
|
+
secretEnv: string;
|
|
1068
|
+
tolerance: number;
|
|
1069
|
+
timestampHeader?: string | undefined;
|
|
1070
|
+
}, {
|
|
1071
|
+
header: string;
|
|
1072
|
+
secretEnv: string;
|
|
1073
|
+
scheme?: "hmac-sha256" | "hmac-sha1" | "hmac-sha512" | undefined;
|
|
1074
|
+
format?: string | undefined;
|
|
1075
|
+
tolerance?: number | undefined;
|
|
1076
|
+
timestampHeader?: string | undefined;
|
|
1077
|
+
}>>;
|
|
1078
|
+
tolerance: z.ZodOptional<z.ZodNumber>;
|
|
1079
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
1080
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
1081
|
+
middleware: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
145
1082
|
}, "strip", z.ZodTypeAny, {
|
|
146
|
-
source: string;
|
|
147
|
-
events: string[];
|
|
148
1083
|
path?: string | undefined;
|
|
149
|
-
|
|
1084
|
+
middleware?: string[] | undefined;
|
|
1085
|
+
provider?: "github" | "stripe" | "slack" | "shopify" | "svix" | undefined;
|
|
1086
|
+
secretEnv?: string | undefined;
|
|
1087
|
+
tolerance?: number | undefined;
|
|
1088
|
+
events?: string[] | undefined;
|
|
1089
|
+
signature?: {
|
|
1090
|
+
scheme: "hmac-sha256" | "hmac-sha1" | "hmac-sha512";
|
|
1091
|
+
header: string;
|
|
1092
|
+
format: string;
|
|
1093
|
+
secretEnv: string;
|
|
1094
|
+
tolerance: number;
|
|
1095
|
+
timestampHeader?: string | undefined;
|
|
1096
|
+
} | undefined;
|
|
1097
|
+
idempotencyKey?: string | undefined;
|
|
1098
|
+
namespace?: string | undefined;
|
|
150
1099
|
}, {
|
|
151
|
-
source: string;
|
|
152
|
-
events: string[];
|
|
153
1100
|
path?: string | undefined;
|
|
154
|
-
|
|
1101
|
+
middleware?: string[] | undefined;
|
|
1102
|
+
provider?: "github" | "stripe" | "slack" | "shopify" | "svix" | undefined;
|
|
1103
|
+
secretEnv?: string | undefined;
|
|
1104
|
+
tolerance?: number | undefined;
|
|
1105
|
+
events?: string[] | undefined;
|
|
1106
|
+
signature?: {
|
|
1107
|
+
header: string;
|
|
1108
|
+
secretEnv: string;
|
|
1109
|
+
scheme?: "hmac-sha256" | "hmac-sha1" | "hmac-sha512" | undefined;
|
|
1110
|
+
format?: string | undefined;
|
|
1111
|
+
tolerance?: number | undefined;
|
|
1112
|
+
timestampHeader?: string | undefined;
|
|
1113
|
+
} | undefined;
|
|
1114
|
+
idempotencyKey?: string | undefined;
|
|
1115
|
+
namespace?: string | undefined;
|
|
155
1116
|
}>;
|
|
156
1117
|
export type WebhookTriggerOpts = z.input<typeof WebhookTriggerOptsSchema>;
|
|
157
1118
|
export declare const WebSocketTriggerOptsSchema: z.ZodObject<{
|
|
@@ -200,10 +1161,17 @@ export declare const SSETriggerOptsSchema: z.ZodObject<{
|
|
|
200
1161
|
retryInterval?: number | undefined;
|
|
201
1162
|
}>;
|
|
202
1163
|
export type SSETriggerOpts = z.input<typeof SSETriggerOptsSchema>;
|
|
1164
|
+
/** All trigger names supported by Blok. */
|
|
203
1165
|
export declare const TriggersSchema: z.ZodEnum<["http", "grpc", "manual", "cron", "queue", "pubsub", "worker", "webhook", "sse", "websocket"]>;
|
|
204
1166
|
export type TriggersEnum = z.infer<typeof TriggersSchema>;
|
|
1167
|
+
/**
|
|
1168
|
+
* Map of trigger name → its config type.
|
|
1169
|
+
*
|
|
1170
|
+
* Used by {@link Trigger.addTrigger} overloads to constrain the `config`
|
|
1171
|
+
* argument's shape for each trigger kind.
|
|
1172
|
+
*/
|
|
205
1173
|
export type TriggerConfigMap = {
|
|
206
|
-
http:
|
|
1174
|
+
http: HttpTriggerOpts;
|
|
207
1175
|
grpc: Record<string, unknown>;
|
|
208
1176
|
manual: Record<string, unknown>;
|
|
209
1177
|
cron: CronTriggerOpts;
|
|
@@ -214,4 +1182,601 @@ export type TriggerConfigMap = {
|
|
|
214
1182
|
sse: SSETriggerOpts;
|
|
215
1183
|
websocket: WebSocketTriggerOpts;
|
|
216
1184
|
};
|
|
217
|
-
|
|
1185
|
+
/**
|
|
1186
|
+
* Map of trigger name → validation schema. `null` means the trigger does not
|
|
1187
|
+
* have a required configuration shape (currently `grpc` and `manual`).
|
|
1188
|
+
*
|
|
1189
|
+
* Single source of truth for runtime trigger-config validation. Used by
|
|
1190
|
+
* {@link validateTriggerConfig}.
|
|
1191
|
+
*/
|
|
1192
|
+
export declare const TRIGGER_SCHEMAS: {
|
|
1193
|
+
readonly http: z.ZodEffects<z.ZodObject<{
|
|
1194
|
+
delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
1195
|
+
ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
1196
|
+
debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
1197
|
+
key: z.ZodString;
|
|
1198
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
1199
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
1200
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
1201
|
+
}, "strip", z.ZodTypeAny, {
|
|
1202
|
+
key: string;
|
|
1203
|
+
mode: "leading" | "trailing";
|
|
1204
|
+
delay: string | number;
|
|
1205
|
+
maxDelay?: string | number | undefined;
|
|
1206
|
+
}, {
|
|
1207
|
+
key: string;
|
|
1208
|
+
delay: string | number;
|
|
1209
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1210
|
+
maxDelay?: string | number | undefined;
|
|
1211
|
+
}>, {
|
|
1212
|
+
key: string;
|
|
1213
|
+
mode: "leading" | "trailing";
|
|
1214
|
+
delay: string | number;
|
|
1215
|
+
maxDelay?: string | number | undefined;
|
|
1216
|
+
}, {
|
|
1217
|
+
key: string;
|
|
1218
|
+
delay: string | number;
|
|
1219
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1220
|
+
maxDelay?: string | number | undefined;
|
|
1221
|
+
}>>;
|
|
1222
|
+
concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
1223
|
+
concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
1224
|
+
concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
1225
|
+
onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
1226
|
+
concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
1227
|
+
concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
1228
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
1229
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
1230
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
1231
|
+
}, "strip", z.ZodTypeAny, {
|
|
1232
|
+
minBackoffMs?: number | undefined;
|
|
1233
|
+
maxBackoffMs?: number | undefined;
|
|
1234
|
+
factor?: number | undefined;
|
|
1235
|
+
}, {
|
|
1236
|
+
minBackoffMs?: number | undefined;
|
|
1237
|
+
maxBackoffMs?: number | undefined;
|
|
1238
|
+
factor?: number | undefined;
|
|
1239
|
+
}>>;
|
|
1240
|
+
method: z.ZodEffects<z.ZodEnum<["GET", "POST", "PUT", "DELETE", "PATCH", "HEAD", "OPTIONS", "ANY"]>, "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY", unknown>;
|
|
1241
|
+
path: z.ZodOptional<z.ZodString>;
|
|
1242
|
+
accept: z.ZodDefault<z.ZodString>;
|
|
1243
|
+
headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
1244
|
+
legacyKeyPrefix: z.ZodOptional<z.ZodBoolean>;
|
|
1245
|
+
middleware: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1246
|
+
examples: z.ZodOptional<z.ZodObject<{
|
|
1247
|
+
body: z.ZodOptional<z.ZodUnknown>;
|
|
1248
|
+
}, "strip", z.ZodTypeAny, {
|
|
1249
|
+
body?: unknown;
|
|
1250
|
+
}, {
|
|
1251
|
+
body?: unknown;
|
|
1252
|
+
}>>;
|
|
1253
|
+
recordSample: z.ZodOptional<z.ZodBoolean>;
|
|
1254
|
+
}, "strip", z.ZodTypeAny, {
|
|
1255
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY";
|
|
1256
|
+
accept: string;
|
|
1257
|
+
path?: string | undefined;
|
|
1258
|
+
concurrencyKey?: string | undefined;
|
|
1259
|
+
concurrencyLimit?: number | undefined;
|
|
1260
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1261
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1262
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1263
|
+
concurrencyQueueRetry?: {
|
|
1264
|
+
minBackoffMs?: number | undefined;
|
|
1265
|
+
maxBackoffMs?: number | undefined;
|
|
1266
|
+
factor?: number | undefined;
|
|
1267
|
+
} | undefined;
|
|
1268
|
+
delay?: string | number | undefined;
|
|
1269
|
+
ttl?: string | number | undefined;
|
|
1270
|
+
debounce?: {
|
|
1271
|
+
key: string;
|
|
1272
|
+
mode: "leading" | "trailing";
|
|
1273
|
+
delay: string | number;
|
|
1274
|
+
maxDelay?: string | number | undefined;
|
|
1275
|
+
} | undefined;
|
|
1276
|
+
headers?: Record<string, any> | undefined;
|
|
1277
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
1278
|
+
middleware?: string[] | undefined;
|
|
1279
|
+
examples?: {
|
|
1280
|
+
body?: unknown;
|
|
1281
|
+
} | undefined;
|
|
1282
|
+
recordSample?: boolean | undefined;
|
|
1283
|
+
}, {
|
|
1284
|
+
path?: string | undefined;
|
|
1285
|
+
concurrencyKey?: string | undefined;
|
|
1286
|
+
concurrencyLimit?: number | undefined;
|
|
1287
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1288
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1289
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1290
|
+
concurrencyQueueRetry?: {
|
|
1291
|
+
minBackoffMs?: number | undefined;
|
|
1292
|
+
maxBackoffMs?: number | undefined;
|
|
1293
|
+
factor?: number | undefined;
|
|
1294
|
+
} | undefined;
|
|
1295
|
+
delay?: string | number | undefined;
|
|
1296
|
+
ttl?: string | number | undefined;
|
|
1297
|
+
debounce?: {
|
|
1298
|
+
key: string;
|
|
1299
|
+
delay: string | number;
|
|
1300
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1301
|
+
maxDelay?: string | number | undefined;
|
|
1302
|
+
} | undefined;
|
|
1303
|
+
method?: unknown;
|
|
1304
|
+
accept?: string | undefined;
|
|
1305
|
+
headers?: Record<string, any> | undefined;
|
|
1306
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
1307
|
+
middleware?: string[] | undefined;
|
|
1308
|
+
examples?: {
|
|
1309
|
+
body?: unknown;
|
|
1310
|
+
} | undefined;
|
|
1311
|
+
recordSample?: boolean | undefined;
|
|
1312
|
+
}>, {
|
|
1313
|
+
method: "GET" | "POST" | "PUT" | "DELETE" | "PATCH" | "HEAD" | "OPTIONS" | "ANY";
|
|
1314
|
+
accept: string;
|
|
1315
|
+
path?: string | undefined;
|
|
1316
|
+
concurrencyKey?: string | undefined;
|
|
1317
|
+
concurrencyLimit?: number | undefined;
|
|
1318
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1319
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1320
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1321
|
+
concurrencyQueueRetry?: {
|
|
1322
|
+
minBackoffMs?: number | undefined;
|
|
1323
|
+
maxBackoffMs?: number | undefined;
|
|
1324
|
+
factor?: number | undefined;
|
|
1325
|
+
} | undefined;
|
|
1326
|
+
delay?: string | number | undefined;
|
|
1327
|
+
ttl?: string | number | undefined;
|
|
1328
|
+
debounce?: {
|
|
1329
|
+
key: string;
|
|
1330
|
+
mode: "leading" | "trailing";
|
|
1331
|
+
delay: string | number;
|
|
1332
|
+
maxDelay?: string | number | undefined;
|
|
1333
|
+
} | undefined;
|
|
1334
|
+
headers?: Record<string, any> | undefined;
|
|
1335
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
1336
|
+
middleware?: string[] | undefined;
|
|
1337
|
+
examples?: {
|
|
1338
|
+
body?: unknown;
|
|
1339
|
+
} | undefined;
|
|
1340
|
+
recordSample?: boolean | undefined;
|
|
1341
|
+
}, {
|
|
1342
|
+
path?: string | undefined;
|
|
1343
|
+
concurrencyKey?: string | undefined;
|
|
1344
|
+
concurrencyLimit?: number | undefined;
|
|
1345
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1346
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1347
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1348
|
+
concurrencyQueueRetry?: {
|
|
1349
|
+
minBackoffMs?: number | undefined;
|
|
1350
|
+
maxBackoffMs?: number | undefined;
|
|
1351
|
+
factor?: number | undefined;
|
|
1352
|
+
} | undefined;
|
|
1353
|
+
delay?: string | number | undefined;
|
|
1354
|
+
ttl?: string | number | undefined;
|
|
1355
|
+
debounce?: {
|
|
1356
|
+
key: string;
|
|
1357
|
+
delay: string | number;
|
|
1358
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1359
|
+
maxDelay?: string | number | undefined;
|
|
1360
|
+
} | undefined;
|
|
1361
|
+
method?: unknown;
|
|
1362
|
+
accept?: string | undefined;
|
|
1363
|
+
headers?: Record<string, any> | undefined;
|
|
1364
|
+
legacyKeyPrefix?: boolean | undefined;
|
|
1365
|
+
middleware?: string[] | undefined;
|
|
1366
|
+
examples?: {
|
|
1367
|
+
body?: unknown;
|
|
1368
|
+
} | undefined;
|
|
1369
|
+
recordSample?: boolean | undefined;
|
|
1370
|
+
}>;
|
|
1371
|
+
readonly queue: z.ZodObject<{
|
|
1372
|
+
provider: z.ZodEnum<["kafka", "rabbitmq", "sqs", "redis", "beanstalk", "nats"]>;
|
|
1373
|
+
topic: z.ZodString;
|
|
1374
|
+
subscription: z.ZodOptional<z.ZodString>;
|
|
1375
|
+
consumerGroup: z.ZodOptional<z.ZodString>;
|
|
1376
|
+
ack: z.ZodDefault<z.ZodBoolean>;
|
|
1377
|
+
deadLetterQueue: z.ZodOptional<z.ZodString>;
|
|
1378
|
+
maxRetries: z.ZodDefault<z.ZodNumber>;
|
|
1379
|
+
retryDelay: z.ZodDefault<z.ZodNumber>;
|
|
1380
|
+
batchSize: z.ZodDefault<z.ZodNumber>;
|
|
1381
|
+
concurrency: z.ZodDefault<z.ZodNumber>;
|
|
1382
|
+
}, "strip", z.ZodTypeAny, {
|
|
1383
|
+
provider: "kafka" | "rabbitmq" | "sqs" | "redis" | "beanstalk" | "nats";
|
|
1384
|
+
topic: string;
|
|
1385
|
+
ack: boolean;
|
|
1386
|
+
maxRetries: number;
|
|
1387
|
+
retryDelay: number;
|
|
1388
|
+
batchSize: number;
|
|
1389
|
+
concurrency: number;
|
|
1390
|
+
subscription?: string | undefined;
|
|
1391
|
+
consumerGroup?: string | undefined;
|
|
1392
|
+
deadLetterQueue?: string | undefined;
|
|
1393
|
+
}, {
|
|
1394
|
+
provider: "kafka" | "rabbitmq" | "sqs" | "redis" | "beanstalk" | "nats";
|
|
1395
|
+
topic: string;
|
|
1396
|
+
subscription?: string | undefined;
|
|
1397
|
+
consumerGroup?: string | undefined;
|
|
1398
|
+
ack?: boolean | undefined;
|
|
1399
|
+
deadLetterQueue?: string | undefined;
|
|
1400
|
+
maxRetries?: number | undefined;
|
|
1401
|
+
retryDelay?: number | undefined;
|
|
1402
|
+
batchSize?: number | undefined;
|
|
1403
|
+
concurrency?: number | undefined;
|
|
1404
|
+
}>;
|
|
1405
|
+
readonly pubsub: z.ZodObject<{
|
|
1406
|
+
provider: z.ZodOptional<z.ZodEnum<["nats", "redis-streams", "kafka", "gcp", "aws", "azure"]>>;
|
|
1407
|
+
topic: z.ZodString;
|
|
1408
|
+
subscription: z.ZodOptional<z.ZodString>;
|
|
1409
|
+
consumerGroup: z.ZodOptional<z.ZodString>;
|
|
1410
|
+
durable: z.ZodOptional<z.ZodBoolean>;
|
|
1411
|
+
startFrom: z.ZodOptional<z.ZodUnion<[z.ZodLiteral<"earliest">, z.ZodLiteral<"latest">, z.ZodObject<{
|
|
1412
|
+
seq: z.ZodNumber;
|
|
1413
|
+
}, "strip", z.ZodTypeAny, {
|
|
1414
|
+
seq: number;
|
|
1415
|
+
}, {
|
|
1416
|
+
seq: number;
|
|
1417
|
+
}>, z.ZodObject<{
|
|
1418
|
+
timestamp: z.ZodNumber;
|
|
1419
|
+
}, "strip", z.ZodTypeAny, {
|
|
1420
|
+
timestamp: number;
|
|
1421
|
+
}, {
|
|
1422
|
+
timestamp: number;
|
|
1423
|
+
}>]>>;
|
|
1424
|
+
ack: z.ZodDefault<z.ZodBoolean>;
|
|
1425
|
+
maxMessages: z.ZodDefault<z.ZodNumber>;
|
|
1426
|
+
ackDeadline: z.ZodDefault<z.ZodNumber>;
|
|
1427
|
+
deadLetterTopic: z.ZodOptional<z.ZodString>;
|
|
1428
|
+
filter: z.ZodOptional<z.ZodString>;
|
|
1429
|
+
}, "strip", z.ZodTypeAny, {
|
|
1430
|
+
topic: string;
|
|
1431
|
+
ack: boolean;
|
|
1432
|
+
maxMessages: number;
|
|
1433
|
+
ackDeadline: number;
|
|
1434
|
+
filter?: string | undefined;
|
|
1435
|
+
provider?: "kafka" | "nats" | "redis-streams" | "gcp" | "aws" | "azure" | undefined;
|
|
1436
|
+
subscription?: string | undefined;
|
|
1437
|
+
consumerGroup?: string | undefined;
|
|
1438
|
+
durable?: boolean | undefined;
|
|
1439
|
+
startFrom?: "earliest" | "latest" | {
|
|
1440
|
+
seq: number;
|
|
1441
|
+
} | {
|
|
1442
|
+
timestamp: number;
|
|
1443
|
+
} | undefined;
|
|
1444
|
+
deadLetterTopic?: string | undefined;
|
|
1445
|
+
}, {
|
|
1446
|
+
topic: string;
|
|
1447
|
+
filter?: string | undefined;
|
|
1448
|
+
provider?: "kafka" | "nats" | "redis-streams" | "gcp" | "aws" | "azure" | undefined;
|
|
1449
|
+
subscription?: string | undefined;
|
|
1450
|
+
consumerGroup?: string | undefined;
|
|
1451
|
+
ack?: boolean | undefined;
|
|
1452
|
+
durable?: boolean | undefined;
|
|
1453
|
+
startFrom?: "earliest" | "latest" | {
|
|
1454
|
+
seq: number;
|
|
1455
|
+
} | {
|
|
1456
|
+
timestamp: number;
|
|
1457
|
+
} | undefined;
|
|
1458
|
+
maxMessages?: number | undefined;
|
|
1459
|
+
ackDeadline?: number | undefined;
|
|
1460
|
+
deadLetterTopic?: string | undefined;
|
|
1461
|
+
}>;
|
|
1462
|
+
readonly worker: z.ZodEffects<z.ZodObject<{
|
|
1463
|
+
delay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
1464
|
+
ttl: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
1465
|
+
debounce: z.ZodOptional<z.ZodEffects<z.ZodObject<{
|
|
1466
|
+
key: z.ZodString;
|
|
1467
|
+
mode: z.ZodDefault<z.ZodEnum<["leading", "trailing"]>>;
|
|
1468
|
+
delay: z.ZodUnion<[z.ZodNumber, z.ZodString]>;
|
|
1469
|
+
maxDelay: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodString]>>;
|
|
1470
|
+
}, "strip", z.ZodTypeAny, {
|
|
1471
|
+
key: string;
|
|
1472
|
+
mode: "leading" | "trailing";
|
|
1473
|
+
delay: string | number;
|
|
1474
|
+
maxDelay?: string | number | undefined;
|
|
1475
|
+
}, {
|
|
1476
|
+
key: string;
|
|
1477
|
+
delay: string | number;
|
|
1478
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1479
|
+
maxDelay?: string | number | undefined;
|
|
1480
|
+
}>, {
|
|
1481
|
+
key: string;
|
|
1482
|
+
mode: "leading" | "trailing";
|
|
1483
|
+
delay: string | number;
|
|
1484
|
+
maxDelay?: string | number | undefined;
|
|
1485
|
+
}, {
|
|
1486
|
+
key: string;
|
|
1487
|
+
delay: string | number;
|
|
1488
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1489
|
+
maxDelay?: string | number | undefined;
|
|
1490
|
+
}>>;
|
|
1491
|
+
concurrencyKey: z.ZodOptional<z.ZodString>;
|
|
1492
|
+
concurrencyLimit: z.ZodOptional<z.ZodNumber>;
|
|
1493
|
+
concurrencyLeaseMs: z.ZodOptional<z.ZodNumber>;
|
|
1494
|
+
onLimit: z.ZodOptional<z.ZodEnum<["throw", "queue"]>>;
|
|
1495
|
+
concurrencyQueueTimeoutMs: z.ZodOptional<z.ZodNumber>;
|
|
1496
|
+
concurrencyQueueRetry: z.ZodOptional<z.ZodObject<{
|
|
1497
|
+
minBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
1498
|
+
maxBackoffMs: z.ZodOptional<z.ZodNumber>;
|
|
1499
|
+
factor: z.ZodOptional<z.ZodNumber>;
|
|
1500
|
+
}, "strip", z.ZodTypeAny, {
|
|
1501
|
+
minBackoffMs?: number | undefined;
|
|
1502
|
+
maxBackoffMs?: number | undefined;
|
|
1503
|
+
factor?: number | undefined;
|
|
1504
|
+
}, {
|
|
1505
|
+
minBackoffMs?: number | undefined;
|
|
1506
|
+
maxBackoffMs?: number | undefined;
|
|
1507
|
+
factor?: number | undefined;
|
|
1508
|
+
}>>;
|
|
1509
|
+
queue: z.ZodString;
|
|
1510
|
+
provider: z.ZodOptional<z.ZodEnum<["in-memory", "nats", "bullmq", "kafka", "rabbitmq", "sqs", "redis", "pg-boss"]>>;
|
|
1511
|
+
concurrency: z.ZodDefault<z.ZodNumber>;
|
|
1512
|
+
timeout: z.ZodOptional<z.ZodNumber>;
|
|
1513
|
+
retries: z.ZodDefault<z.ZodNumber>;
|
|
1514
|
+
priority: z.ZodDefault<z.ZodNumber>;
|
|
1515
|
+
consumerGroup: z.ZodOptional<z.ZodString>;
|
|
1516
|
+
ack: z.ZodOptional<z.ZodBoolean>;
|
|
1517
|
+
deadLetterQueue: z.ZodOptional<z.ZodString>;
|
|
1518
|
+
fromBeginning: z.ZodOptional<z.ZodBoolean>;
|
|
1519
|
+
}, "strip", z.ZodTypeAny, {
|
|
1520
|
+
queue: string;
|
|
1521
|
+
concurrency: number;
|
|
1522
|
+
retries: number;
|
|
1523
|
+
priority: number;
|
|
1524
|
+
concurrencyKey?: string | undefined;
|
|
1525
|
+
concurrencyLimit?: number | undefined;
|
|
1526
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1527
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1528
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1529
|
+
concurrencyQueueRetry?: {
|
|
1530
|
+
minBackoffMs?: number | undefined;
|
|
1531
|
+
maxBackoffMs?: number | undefined;
|
|
1532
|
+
factor?: number | undefined;
|
|
1533
|
+
} | undefined;
|
|
1534
|
+
delay?: string | number | undefined;
|
|
1535
|
+
ttl?: string | number | undefined;
|
|
1536
|
+
debounce?: {
|
|
1537
|
+
key: string;
|
|
1538
|
+
mode: "leading" | "trailing";
|
|
1539
|
+
delay: string | number;
|
|
1540
|
+
maxDelay?: string | number | undefined;
|
|
1541
|
+
} | undefined;
|
|
1542
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
1543
|
+
consumerGroup?: string | undefined;
|
|
1544
|
+
ack?: boolean | undefined;
|
|
1545
|
+
deadLetterQueue?: string | undefined;
|
|
1546
|
+
timeout?: number | undefined;
|
|
1547
|
+
fromBeginning?: boolean | undefined;
|
|
1548
|
+
}, {
|
|
1549
|
+
queue: string;
|
|
1550
|
+
concurrencyKey?: string | undefined;
|
|
1551
|
+
concurrencyLimit?: number | undefined;
|
|
1552
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1553
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1554
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1555
|
+
concurrencyQueueRetry?: {
|
|
1556
|
+
minBackoffMs?: number | undefined;
|
|
1557
|
+
maxBackoffMs?: number | undefined;
|
|
1558
|
+
factor?: number | undefined;
|
|
1559
|
+
} | undefined;
|
|
1560
|
+
delay?: string | number | undefined;
|
|
1561
|
+
ttl?: string | number | undefined;
|
|
1562
|
+
debounce?: {
|
|
1563
|
+
key: string;
|
|
1564
|
+
delay: string | number;
|
|
1565
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1566
|
+
maxDelay?: string | number | undefined;
|
|
1567
|
+
} | undefined;
|
|
1568
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
1569
|
+
consumerGroup?: string | undefined;
|
|
1570
|
+
ack?: boolean | undefined;
|
|
1571
|
+
deadLetterQueue?: string | undefined;
|
|
1572
|
+
concurrency?: number | undefined;
|
|
1573
|
+
timeout?: number | undefined;
|
|
1574
|
+
retries?: number | undefined;
|
|
1575
|
+
priority?: number | undefined;
|
|
1576
|
+
fromBeginning?: boolean | undefined;
|
|
1577
|
+
}>, {
|
|
1578
|
+
queue: string;
|
|
1579
|
+
concurrency: number;
|
|
1580
|
+
retries: number;
|
|
1581
|
+
priority: number;
|
|
1582
|
+
concurrencyKey?: string | undefined;
|
|
1583
|
+
concurrencyLimit?: number | undefined;
|
|
1584
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1585
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1586
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1587
|
+
concurrencyQueueRetry?: {
|
|
1588
|
+
minBackoffMs?: number | undefined;
|
|
1589
|
+
maxBackoffMs?: number | undefined;
|
|
1590
|
+
factor?: number | undefined;
|
|
1591
|
+
} | undefined;
|
|
1592
|
+
delay?: string | number | undefined;
|
|
1593
|
+
ttl?: string | number | undefined;
|
|
1594
|
+
debounce?: {
|
|
1595
|
+
key: string;
|
|
1596
|
+
mode: "leading" | "trailing";
|
|
1597
|
+
delay: string | number;
|
|
1598
|
+
maxDelay?: string | number | undefined;
|
|
1599
|
+
} | undefined;
|
|
1600
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
1601
|
+
consumerGroup?: string | undefined;
|
|
1602
|
+
ack?: boolean | undefined;
|
|
1603
|
+
deadLetterQueue?: string | undefined;
|
|
1604
|
+
timeout?: number | undefined;
|
|
1605
|
+
fromBeginning?: boolean | undefined;
|
|
1606
|
+
}, {
|
|
1607
|
+
queue: string;
|
|
1608
|
+
concurrencyKey?: string | undefined;
|
|
1609
|
+
concurrencyLimit?: number | undefined;
|
|
1610
|
+
concurrencyLeaseMs?: number | undefined;
|
|
1611
|
+
onLimit?: "throw" | "queue" | undefined;
|
|
1612
|
+
concurrencyQueueTimeoutMs?: number | undefined;
|
|
1613
|
+
concurrencyQueueRetry?: {
|
|
1614
|
+
minBackoffMs?: number | undefined;
|
|
1615
|
+
maxBackoffMs?: number | undefined;
|
|
1616
|
+
factor?: number | undefined;
|
|
1617
|
+
} | undefined;
|
|
1618
|
+
delay?: string | number | undefined;
|
|
1619
|
+
ttl?: string | number | undefined;
|
|
1620
|
+
debounce?: {
|
|
1621
|
+
key: string;
|
|
1622
|
+
delay: string | number;
|
|
1623
|
+
mode?: "leading" | "trailing" | undefined;
|
|
1624
|
+
maxDelay?: string | number | undefined;
|
|
1625
|
+
} | undefined;
|
|
1626
|
+
provider?: "kafka" | "rabbitmq" | "sqs" | "redis" | "nats" | "in-memory" | "bullmq" | "pg-boss" | undefined;
|
|
1627
|
+
consumerGroup?: string | undefined;
|
|
1628
|
+
ack?: boolean | undefined;
|
|
1629
|
+
deadLetterQueue?: string | undefined;
|
|
1630
|
+
concurrency?: number | undefined;
|
|
1631
|
+
timeout?: number | undefined;
|
|
1632
|
+
retries?: number | undefined;
|
|
1633
|
+
priority?: number | undefined;
|
|
1634
|
+
fromBeginning?: boolean | undefined;
|
|
1635
|
+
}>;
|
|
1636
|
+
readonly cron: z.ZodObject<{
|
|
1637
|
+
schedule: z.ZodString;
|
|
1638
|
+
timezone: z.ZodDefault<z.ZodString>;
|
|
1639
|
+
overlap: z.ZodDefault<z.ZodBoolean>;
|
|
1640
|
+
}, "strip", z.ZodTypeAny, {
|
|
1641
|
+
schedule: string;
|
|
1642
|
+
timezone: string;
|
|
1643
|
+
overlap: boolean;
|
|
1644
|
+
}, {
|
|
1645
|
+
schedule: string;
|
|
1646
|
+
timezone?: string | undefined;
|
|
1647
|
+
overlap?: boolean | undefined;
|
|
1648
|
+
}>;
|
|
1649
|
+
readonly webhook: z.ZodObject<{
|
|
1650
|
+
provider: z.ZodOptional<z.ZodEnum<["github", "stripe", "slack", "shopify", "svix"]>>;
|
|
1651
|
+
path: z.ZodOptional<z.ZodString>;
|
|
1652
|
+
events: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1653
|
+
secretEnv: z.ZodOptional<z.ZodString>;
|
|
1654
|
+
signature: z.ZodOptional<z.ZodObject<{
|
|
1655
|
+
scheme: z.ZodDefault<z.ZodEnum<["hmac-sha256", "hmac-sha1", "hmac-sha512"]>>;
|
|
1656
|
+
header: z.ZodString;
|
|
1657
|
+
format: z.ZodDefault<z.ZodString>;
|
|
1658
|
+
secretEnv: z.ZodString;
|
|
1659
|
+
tolerance: z.ZodDefault<z.ZodNumber>;
|
|
1660
|
+
timestampHeader: z.ZodOptional<z.ZodString>;
|
|
1661
|
+
}, "strip", z.ZodTypeAny, {
|
|
1662
|
+
scheme: "hmac-sha256" | "hmac-sha1" | "hmac-sha512";
|
|
1663
|
+
header: string;
|
|
1664
|
+
format: string;
|
|
1665
|
+
secretEnv: string;
|
|
1666
|
+
tolerance: number;
|
|
1667
|
+
timestampHeader?: string | undefined;
|
|
1668
|
+
}, {
|
|
1669
|
+
header: string;
|
|
1670
|
+
secretEnv: string;
|
|
1671
|
+
scheme?: "hmac-sha256" | "hmac-sha1" | "hmac-sha512" | undefined;
|
|
1672
|
+
format?: string | undefined;
|
|
1673
|
+
tolerance?: number | undefined;
|
|
1674
|
+
timestampHeader?: string | undefined;
|
|
1675
|
+
}>>;
|
|
1676
|
+
tolerance: z.ZodOptional<z.ZodNumber>;
|
|
1677
|
+
idempotencyKey: z.ZodOptional<z.ZodString>;
|
|
1678
|
+
namespace: z.ZodOptional<z.ZodString>;
|
|
1679
|
+
middleware: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1680
|
+
}, "strip", z.ZodTypeAny, {
|
|
1681
|
+
path?: string | undefined;
|
|
1682
|
+
middleware?: string[] | undefined;
|
|
1683
|
+
provider?: "github" | "stripe" | "slack" | "shopify" | "svix" | undefined;
|
|
1684
|
+
secretEnv?: string | undefined;
|
|
1685
|
+
tolerance?: number | undefined;
|
|
1686
|
+
events?: string[] | undefined;
|
|
1687
|
+
signature?: {
|
|
1688
|
+
scheme: "hmac-sha256" | "hmac-sha1" | "hmac-sha512";
|
|
1689
|
+
header: string;
|
|
1690
|
+
format: string;
|
|
1691
|
+
secretEnv: string;
|
|
1692
|
+
tolerance: number;
|
|
1693
|
+
timestampHeader?: string | undefined;
|
|
1694
|
+
} | undefined;
|
|
1695
|
+
idempotencyKey?: string | undefined;
|
|
1696
|
+
namespace?: string | undefined;
|
|
1697
|
+
}, {
|
|
1698
|
+
path?: string | undefined;
|
|
1699
|
+
middleware?: string[] | undefined;
|
|
1700
|
+
provider?: "github" | "stripe" | "slack" | "shopify" | "svix" | undefined;
|
|
1701
|
+
secretEnv?: string | undefined;
|
|
1702
|
+
tolerance?: number | undefined;
|
|
1703
|
+
events?: string[] | undefined;
|
|
1704
|
+
signature?: {
|
|
1705
|
+
header: string;
|
|
1706
|
+
secretEnv: string;
|
|
1707
|
+
scheme?: "hmac-sha256" | "hmac-sha1" | "hmac-sha512" | undefined;
|
|
1708
|
+
format?: string | undefined;
|
|
1709
|
+
tolerance?: number | undefined;
|
|
1710
|
+
timestampHeader?: string | undefined;
|
|
1711
|
+
} | undefined;
|
|
1712
|
+
idempotencyKey?: string | undefined;
|
|
1713
|
+
namespace?: string | undefined;
|
|
1714
|
+
}>;
|
|
1715
|
+
readonly sse: z.ZodObject<{
|
|
1716
|
+
events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1717
|
+
channels: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1718
|
+
path: z.ZodOptional<z.ZodString>;
|
|
1719
|
+
maxConnections: z.ZodDefault<z.ZodNumber>;
|
|
1720
|
+
heartbeatInterval: z.ZodDefault<z.ZodNumber>;
|
|
1721
|
+
retryInterval: z.ZodDefault<z.ZodNumber>;
|
|
1722
|
+
}, "strip", z.ZodTypeAny, {
|
|
1723
|
+
events: string[];
|
|
1724
|
+
maxConnections: number;
|
|
1725
|
+
heartbeatInterval: number;
|
|
1726
|
+
retryInterval: number;
|
|
1727
|
+
path?: string | undefined;
|
|
1728
|
+
channels?: string[] | undefined;
|
|
1729
|
+
}, {
|
|
1730
|
+
path?: string | undefined;
|
|
1731
|
+
events?: string[] | undefined;
|
|
1732
|
+
maxConnections?: number | undefined;
|
|
1733
|
+
heartbeatInterval?: number | undefined;
|
|
1734
|
+
channels?: string[] | undefined;
|
|
1735
|
+
retryInterval?: number | undefined;
|
|
1736
|
+
}>;
|
|
1737
|
+
readonly websocket: z.ZodObject<{
|
|
1738
|
+
events: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
|
|
1739
|
+
rooms: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
|
|
1740
|
+
path: z.ZodOptional<z.ZodString>;
|
|
1741
|
+
maxConnections: z.ZodDefault<z.ZodNumber>;
|
|
1742
|
+
heartbeatInterval: z.ZodDefault<z.ZodNumber>;
|
|
1743
|
+
messageRateLimit: z.ZodDefault<z.ZodNumber>;
|
|
1744
|
+
}, "strip", z.ZodTypeAny, {
|
|
1745
|
+
events: string[];
|
|
1746
|
+
maxConnections: number;
|
|
1747
|
+
heartbeatInterval: number;
|
|
1748
|
+
messageRateLimit: number;
|
|
1749
|
+
path?: string | undefined;
|
|
1750
|
+
rooms?: string[] | undefined;
|
|
1751
|
+
}, {
|
|
1752
|
+
path?: string | undefined;
|
|
1753
|
+
events?: string[] | undefined;
|
|
1754
|
+
rooms?: string[] | undefined;
|
|
1755
|
+
maxConnections?: number | undefined;
|
|
1756
|
+
heartbeatInterval?: number | undefined;
|
|
1757
|
+
messageRateLimit?: number | undefined;
|
|
1758
|
+
}>;
|
|
1759
|
+
readonly grpc: null;
|
|
1760
|
+
readonly manual: null;
|
|
1761
|
+
};
|
|
1762
|
+
/** Union of every valid trigger configuration (typed). */
|
|
1763
|
+
export type AnyTriggerOpts = HttpTriggerOpts | QueueTriggerOpts | PubSubTriggerOpts | WorkerTriggerOpts | CronTriggerOpts | WebhookTriggerOpts | WebSocketTriggerOpts | SSETriggerOpts | Record<string, unknown>;
|
|
1764
|
+
/**
|
|
1765
|
+
* Validate a trigger configuration against the schema for the given trigger
|
|
1766
|
+
* kind. When the trigger has a schema, returns the parsed config (with
|
|
1767
|
+
* defaults applied). When the trigger has no schema (`grpc`, `manual`),
|
|
1768
|
+
* returns the input config (or an empty object when `undefined`).
|
|
1769
|
+
*
|
|
1770
|
+
* Throws when the trigger requires a schema and the config is missing or
|
|
1771
|
+
* invalid. The thrown error is either a `ZodError` (for shape violations) or
|
|
1772
|
+
* a regular `Error` (when config is missing entirely).
|
|
1773
|
+
*
|
|
1774
|
+
* @example
|
|
1775
|
+
* const cfg = validateTriggerConfig("cron", { schedule: "0 * * * *" });
|
|
1776
|
+
* // cfg.timezone === "UTC" (default applied)
|
|
1777
|
+
*
|
|
1778
|
+
* @example
|
|
1779
|
+
* validateTriggerConfig("cron", undefined);
|
|
1780
|
+
* // throws: 'Trigger "cron" requires a configuration object.'
|
|
1781
|
+
*/
|
|
1782
|
+
export declare function validateTriggerConfig(name: TriggersEnum, config: unknown): unknown;
|