@trigger.dev/sdk 2.0.0-next.0 → 2.0.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -55,12 +55,12 @@ __export(src_exports, {
55
55
  Job: () => Job,
56
56
  MissingConnectionNotification: () => MissingConnectionNotification,
57
57
  MissingConnectionResolvedNotification: () => MissingConnectionResolvedNotification,
58
- ResumeWithTask: () => ResumeWithTask,
59
58
  TriggerClient: () => TriggerClient,
60
59
  authenticatedTask: () => authenticatedTask,
61
60
  cronTrigger: () => cronTrigger,
62
61
  eventTrigger: () => eventTrigger,
63
62
  intervalTrigger: () => intervalTrigger,
63
+ isTriggerError: () => isTriggerError,
64
64
  missingConnectionNotification: () => missingConnectionNotification,
65
65
  missingConnectionResolvedNotification: () => missingConnectionResolvedNotification,
66
66
  omit: () => omit,
@@ -254,129 +254,96 @@ __name(filterKeys, "filterKeys");
254
254
 
255
255
  // ../internal/src/schemas/api.ts
256
256
  var import_ulid = require("ulid");
257
- var import_zod8 = require("zod");
257
+ var import_zod9 = require("zod");
258
258
 
259
- // ../internal/src/schemas/integrations.ts
259
+ // ../internal/src/schemas/errors.ts
260
260
  var import_zod = require("zod");
261
- var ConnectionAuthSchema = import_zod.z.object({
262
- type: import_zod.z.enum([
261
+ var ErrorWithStackSchema = import_zod.z.object({
262
+ message: import_zod.z.string(),
263
+ name: import_zod.z.string().optional(),
264
+ stack: import_zod.z.string().optional()
265
+ });
266
+
267
+ // ../internal/src/schemas/eventFilter.ts
268
+ var import_zod2 = require("zod");
269
+ var EventMatcherSchema = import_zod2.z.union([
270
+ import_zod2.z.array(import_zod2.z.string()),
271
+ import_zod2.z.array(import_zod2.z.number()),
272
+ import_zod2.z.array(import_zod2.z.boolean())
273
+ ]);
274
+ var EventFilterSchema = import_zod2.z.lazy(() => import_zod2.z.record(import_zod2.z.union([
275
+ EventMatcherSchema,
276
+ EventFilterSchema
277
+ ])));
278
+ var EventRuleSchema = import_zod2.z.object({
279
+ event: import_zod2.z.string(),
280
+ source: import_zod2.z.string(),
281
+ payload: EventFilterSchema.optional(),
282
+ context: EventFilterSchema.optional()
283
+ });
284
+
285
+ // ../internal/src/schemas/integrations.ts
286
+ var import_zod3 = require("zod");
287
+ var ConnectionAuthSchema = import_zod3.z.object({
288
+ type: import_zod3.z.enum([
263
289
  "oauth2"
264
290
  ]),
265
- accessToken: import_zod.z.string(),
266
- scopes: import_zod.z.array(import_zod.z.string()).optional(),
267
- additionalFields: import_zod.z.record(import_zod.z.string()).optional()
291
+ accessToken: import_zod3.z.string(),
292
+ scopes: import_zod3.z.array(import_zod3.z.string()).optional(),
293
+ additionalFields: import_zod3.z.record(import_zod3.z.string()).optional()
268
294
  });
269
- var IntegrationMetadataSchema = import_zod.z.object({
270
- key: import_zod.z.string(),
271
- title: import_zod.z.string(),
272
- icon: import_zod.z.string()
295
+ var IntegrationMetadataSchema = import_zod3.z.object({
296
+ key: import_zod3.z.string(),
297
+ title: import_zod3.z.string(),
298
+ icon: import_zod3.z.string()
273
299
  });
274
- var IntegrationConfigSchema = import_zod.z.object({
275
- id: import_zod.z.string(),
300
+ var IntegrationConfigSchema = import_zod3.z.object({
301
+ id: import_zod3.z.string(),
276
302
  metadata: IntegrationMetadataSchema
277
303
  });
278
304
 
279
- // ../internal/src/schemas/properties.ts
280
- var import_zod2 = require("zod");
281
- var DisplayPropertySchema = import_zod2.z.object({
282
- label: import_zod2.z.string(),
283
- text: import_zod2.z.string(),
284
- url: import_zod2.z.string().optional()
285
- });
286
- var DisplayPropertiesSchema = import_zod2.z.array(DisplayPropertySchema);
287
- var StyleSchema = import_zod2.z.object({
288
- style: import_zod2.z.enum([
289
- "normal",
290
- "minimal"
291
- ]),
292
- variant: import_zod2.z.string().optional()
293
- });
294
-
295
305
  // ../internal/src/schemas/json.ts
296
- var import_zod3 = require("zod");
297
- var LiteralSchema = import_zod3.z.union([
298
- import_zod3.z.string(),
299
- import_zod3.z.number(),
300
- import_zod3.z.boolean(),
301
- import_zod3.z.null()
306
+ var import_zod4 = require("zod");
307
+ var LiteralSchema = import_zod4.z.union([
308
+ import_zod4.z.string(),
309
+ import_zod4.z.number(),
310
+ import_zod4.z.boolean(),
311
+ import_zod4.z.null()
302
312
  ]);
303
- var DeserializedJsonSchema = import_zod3.z.lazy(() => import_zod3.z.union([
313
+ var DeserializedJsonSchema = import_zod4.z.lazy(() => import_zod4.z.union([
304
314
  LiteralSchema,
305
- import_zod3.z.array(DeserializedJsonSchema),
306
- import_zod3.z.record(DeserializedJsonSchema)
315
+ import_zod4.z.array(DeserializedJsonSchema),
316
+ import_zod4.z.record(DeserializedJsonSchema)
307
317
  ]));
308
- var SerializableSchema = import_zod3.z.union([
309
- import_zod3.z.string(),
310
- import_zod3.z.number(),
311
- import_zod3.z.boolean(),
312
- import_zod3.z.null(),
313
- import_zod3.z.date(),
314
- import_zod3.z.undefined(),
315
- import_zod3.z.symbol()
318
+ var SerializableSchema = import_zod4.z.union([
319
+ import_zod4.z.string(),
320
+ import_zod4.z.number(),
321
+ import_zod4.z.boolean(),
322
+ import_zod4.z.null(),
323
+ import_zod4.z.date(),
324
+ import_zod4.z.undefined(),
325
+ import_zod4.z.symbol()
316
326
  ]);
317
- var SerializableJsonSchema = import_zod3.z.lazy(() => import_zod3.z.union([
327
+ var SerializableJsonSchema = import_zod4.z.lazy(() => import_zod4.z.union([
318
328
  SerializableSchema,
319
- import_zod3.z.array(SerializableJsonSchema),
320
- import_zod3.z.record(SerializableJsonSchema)
329
+ import_zod4.z.array(SerializableJsonSchema),
330
+ import_zod4.z.record(SerializableJsonSchema)
321
331
  ]));
322
332
 
323
- // ../internal/src/schemas/tasks.ts
324
- var import_zod4 = require("zod");
325
- var TaskStatusSchema = import_zod4.z.enum([
326
- "PENDING",
327
- "WAITING",
328
- "RUNNING",
329
- "COMPLETED",
330
- "ERRORED"
331
- ]);
332
- var TaskSchema = import_zod4.z.object({
333
- id: import_zod4.z.string(),
334
- name: import_zod4.z.string(),
335
- icon: import_zod4.z.string().optional().nullable(),
336
- noop: import_zod4.z.boolean(),
337
- startedAt: import_zod4.z.coerce.date().optional().nullable(),
338
- completedAt: import_zod4.z.coerce.date().optional().nullable(),
339
- delayUntil: import_zod4.z.coerce.date().optional().nullable(),
340
- status: TaskStatusSchema,
341
- description: import_zod4.z.string().optional().nullable(),
342
- properties: import_zod4.z.array(DisplayPropertySchema).optional().nullable(),
343
- params: DeserializedJsonSchema.optional().nullable(),
344
- output: DeserializedJsonSchema.optional().nullable(),
345
- error: import_zod4.z.string().optional().nullable(),
346
- parentId: import_zod4.z.string().optional().nullable(),
347
- style: StyleSchema.optional().nullable()
348
- });
349
- var ServerTaskSchema = TaskSchema.extend({
350
- idempotencyKey: import_zod4.z.string()
351
- });
352
- var CachedTaskSchema = import_zod4.z.object({
353
- id: import_zod4.z.string(),
354
- idempotencyKey: import_zod4.z.string(),
355
- status: TaskStatusSchema,
356
- noop: import_zod4.z.boolean().default(false),
357
- output: DeserializedJsonSchema.optional().nullable(),
358
- parentId: import_zod4.z.string().optional().nullable()
359
- });
360
-
361
- // ../internal/src/schemas/triggers.ts
362
- var import_zod7 = require("zod");
363
-
364
- // ../internal/src/schemas/eventFilter.ts
333
+ // ../internal/src/schemas/properties.ts
365
334
  var import_zod5 = require("zod");
366
- var EventMatcherSchema = import_zod5.z.union([
367
- import_zod5.z.array(import_zod5.z.string()),
368
- import_zod5.z.array(import_zod5.z.number()),
369
- import_zod5.z.array(import_zod5.z.boolean())
370
- ]);
371
- var EventFilterSchema = import_zod5.z.lazy(() => import_zod5.z.record(import_zod5.z.union([
372
- EventMatcherSchema,
373
- EventFilterSchema
374
- ])));
375
- var EventRuleSchema = import_zod5.z.object({
376
- event: import_zod5.z.string(),
377
- source: import_zod5.z.string(),
378
- payload: EventFilterSchema.optional(),
379
- context: EventFilterSchema.optional()
335
+ var DisplayPropertySchema = import_zod5.z.object({
336
+ label: import_zod5.z.string(),
337
+ text: import_zod5.z.string(),
338
+ url: import_zod5.z.string().optional()
339
+ });
340
+ var DisplayPropertiesSchema = import_zod5.z.array(DisplayPropertySchema);
341
+ var StyleSchema = import_zod5.z.object({
342
+ style: import_zod5.z.enum([
343
+ "normal",
344
+ "minimal"
345
+ ]),
346
+ variant: import_zod5.z.string().optional()
380
347
  });
381
348
 
382
349
  // ../internal/src/schemas/schedules.ts
@@ -413,310 +380,383 @@ var RegisterDynamicSchedulePayloadSchema = import_zod6.z.object({
413
380
  }))
414
381
  });
415
382
 
416
- // ../internal/src/schemas/triggers.ts
417
- var EventSpecificationSchema = import_zod7.z.object({
383
+ // ../internal/src/schemas/tasks.ts
384
+ var import_zod7 = require("zod");
385
+ var TaskStatusSchema = import_zod7.z.enum([
386
+ "PENDING",
387
+ "WAITING",
388
+ "RUNNING",
389
+ "COMPLETED",
390
+ "ERRORED"
391
+ ]);
392
+ var TaskSchema = import_zod7.z.object({
393
+ id: import_zod7.z.string(),
418
394
  name: import_zod7.z.string(),
419
- title: import_zod7.z.string(),
420
- source: import_zod7.z.string(),
421
- icon: import_zod7.z.string(),
395
+ icon: import_zod7.z.string().optional().nullable(),
396
+ noop: import_zod7.z.boolean(),
397
+ startedAt: import_zod7.z.coerce.date().optional().nullable(),
398
+ completedAt: import_zod7.z.coerce.date().optional().nullable(),
399
+ delayUntil: import_zod7.z.coerce.date().optional().nullable(),
400
+ status: TaskStatusSchema,
401
+ description: import_zod7.z.string().optional().nullable(),
402
+ properties: import_zod7.z.array(DisplayPropertySchema).optional().nullable(),
403
+ params: DeserializedJsonSchema.optional().nullable(),
404
+ output: DeserializedJsonSchema.optional().nullable(),
405
+ error: import_zod7.z.string().optional().nullable(),
406
+ parentId: import_zod7.z.string().optional().nullable(),
407
+ style: StyleSchema.optional().nullable()
408
+ });
409
+ var ServerTaskSchema = TaskSchema.extend({
410
+ idempotencyKey: import_zod7.z.string(),
411
+ attempts: import_zod7.z.number()
412
+ });
413
+ var CachedTaskSchema = import_zod7.z.object({
414
+ id: import_zod7.z.string(),
415
+ idempotencyKey: import_zod7.z.string(),
416
+ status: TaskStatusSchema,
417
+ noop: import_zod7.z.boolean().default(false),
418
+ output: DeserializedJsonSchema.optional().nullable(),
419
+ parentId: import_zod7.z.string().optional().nullable()
420
+ });
421
+
422
+ // ../internal/src/schemas/triggers.ts
423
+ var import_zod8 = require("zod");
424
+ var EventExampleSchema = import_zod8.z.object({
425
+ id: import_zod8.z.string(),
426
+ icon: import_zod8.z.string().optional(),
427
+ name: import_zod8.z.string(),
428
+ payload: import_zod8.z.any()
429
+ });
430
+ var EventSpecificationSchema = import_zod8.z.object({
431
+ name: import_zod8.z.string(),
432
+ title: import_zod8.z.string(),
433
+ source: import_zod8.z.string(),
434
+ icon: import_zod8.z.string(),
422
435
  filter: EventFilterSchema.optional(),
423
- properties: import_zod7.z.array(DisplayPropertySchema).optional(),
424
- schema: import_zod7.z.any().optional(),
425
- examples: import_zod7.z.array(import_zod7.z.any()).optional()
426
- });
427
- var DynamicTriggerMetadataSchema = import_zod7.z.object({
428
- type: import_zod7.z.literal("dynamic"),
429
- id: import_zod7.z.string()
430
- });
431
- var StaticTriggerMetadataSchema = import_zod7.z.object({
432
- type: import_zod7.z.literal("static"),
433
- title: import_zod7.z.string(),
434
- properties: import_zod7.z.array(DisplayPropertySchema).optional(),
436
+ properties: import_zod8.z.array(DisplayPropertySchema).optional(),
437
+ schema: import_zod8.z.any().optional(),
438
+ examples: import_zod8.z.array(EventExampleSchema).optional()
439
+ });
440
+ var DynamicTriggerMetadataSchema = import_zod8.z.object({
441
+ type: import_zod8.z.literal("dynamic"),
442
+ id: import_zod8.z.string()
443
+ });
444
+ var StaticTriggerMetadataSchema = import_zod8.z.object({
445
+ type: import_zod8.z.literal("static"),
446
+ title: import_zod8.z.string(),
447
+ properties: import_zod8.z.array(DisplayPropertySchema).optional(),
435
448
  rule: EventRuleSchema
436
449
  });
437
- var ScheduledTriggerMetadataSchema = import_zod7.z.object({
438
- type: import_zod7.z.literal("scheduled"),
450
+ var ScheduledTriggerMetadataSchema = import_zod8.z.object({
451
+ type: import_zod8.z.literal("scheduled"),
439
452
  schedule: ScheduleMetadataSchema
440
453
  });
441
- var TriggerMetadataSchema = import_zod7.z.discriminatedUnion("type", [
454
+ var TriggerMetadataSchema = import_zod8.z.discriminatedUnion("type", [
442
455
  DynamicTriggerMetadataSchema,
443
456
  StaticTriggerMetadataSchema,
444
457
  ScheduledTriggerMetadataSchema
445
458
  ]);
446
459
 
447
460
  // ../internal/src/schemas/api.ts
448
- var UpdateTriggerSourceBodySchema = import_zod8.z.object({
449
- registeredEvents: import_zod8.z.array(import_zod8.z.string()),
450
- secret: import_zod8.z.string().optional(),
461
+ var UpdateTriggerSourceBodySchema = import_zod9.z.object({
462
+ registeredEvents: import_zod9.z.array(import_zod9.z.string()),
463
+ secret: import_zod9.z.string().optional(),
451
464
  data: SerializableJsonSchema.optional()
452
465
  });
453
466
  var HttpEventSourceSchema = UpdateTriggerSourceBodySchema.extend({
454
- id: import_zod8.z.string(),
455
- active: import_zod8.z.boolean(),
456
- url: import_zod8.z.string().url()
467
+ id: import_zod9.z.string(),
468
+ active: import_zod9.z.boolean(),
469
+ url: import_zod9.z.string().url()
457
470
  });
458
- var RegisterHTTPTriggerSourceBodySchema = import_zod8.z.object({
459
- type: import_zod8.z.literal("HTTP"),
460
- url: import_zod8.z.string().url()
471
+ var RegisterHTTPTriggerSourceBodySchema = import_zod9.z.object({
472
+ type: import_zod9.z.literal("HTTP"),
473
+ url: import_zod9.z.string().url()
461
474
  });
462
- var RegisterSMTPTriggerSourceBodySchema = import_zod8.z.object({
463
- type: import_zod8.z.literal("SMTP")
475
+ var RegisterSMTPTriggerSourceBodySchema = import_zod9.z.object({
476
+ type: import_zod9.z.literal("SMTP")
464
477
  });
465
- var RegisterSQSTriggerSourceBodySchema = import_zod8.z.object({
466
- type: import_zod8.z.literal("SQS")
478
+ var RegisterSQSTriggerSourceBodySchema = import_zod9.z.object({
479
+ type: import_zod9.z.literal("SQS")
467
480
  });
468
- var RegisterSourceChannelBodySchema = import_zod8.z.discriminatedUnion("type", [
481
+ var RegisterSourceChannelBodySchema = import_zod9.z.discriminatedUnion("type", [
469
482
  RegisterHTTPTriggerSourceBodySchema,
470
483
  RegisterSMTPTriggerSourceBodySchema,
471
484
  RegisterSQSTriggerSourceBodySchema
472
485
  ]);
473
486
  var REGISTER_SOURCE_EVENT = "dev.trigger.source.register";
474
- var RegisterTriggerSourceSchema = import_zod8.z.object({
475
- key: import_zod8.z.string(),
476
- params: import_zod8.z.any(),
477
- active: import_zod8.z.boolean(),
478
- secret: import_zod8.z.string(),
487
+ var RegisterTriggerSourceSchema = import_zod9.z.object({
488
+ key: import_zod9.z.string(),
489
+ params: import_zod9.z.any(),
490
+ active: import_zod9.z.boolean(),
491
+ secret: import_zod9.z.string(),
479
492
  data: DeserializedJsonSchema.optional(),
480
493
  channel: RegisterSourceChannelBodySchema,
481
- clientId: import_zod8.z.string().optional()
494
+ clientId: import_zod9.z.string().optional()
482
495
  });
483
- var RegisterSourceEventSchema = import_zod8.z.object({
484
- id: import_zod8.z.string(),
496
+ var RegisterSourceEventSchema = import_zod9.z.object({
497
+ id: import_zod9.z.string(),
485
498
  source: RegisterTriggerSourceSchema,
486
- events: import_zod8.z.array(import_zod8.z.string()),
487
- missingEvents: import_zod8.z.array(import_zod8.z.string()),
488
- orphanedEvents: import_zod8.z.array(import_zod8.z.string()),
489
- dynamicTriggerId: import_zod8.z.string().optional()
490
- });
491
- var TriggerSourceSchema = import_zod8.z.object({
492
- id: import_zod8.z.string(),
493
- key: import_zod8.z.string()
494
- });
495
- var HandleTriggerSourceSchema = import_zod8.z.object({
496
- key: import_zod8.z.string(),
497
- secret: import_zod8.z.string(),
498
- data: import_zod8.z.any(),
499
- params: import_zod8.z.any()
500
- });
501
- var HttpSourceRequestSchema = import_zod8.z.object({
502
- url: import_zod8.z.string().url(),
503
- method: import_zod8.z.string(),
504
- headers: import_zod8.z.record(import_zod8.z.string()),
505
- rawBody: import_zod8.z.instanceof(Buffer).optional().nullable()
506
- });
507
- var HttpSourceRequestHeadersSchema = import_zod8.z.object({
508
- "x-ts-key": import_zod8.z.string(),
509
- "x-ts-dynamic-id": import_zod8.z.string().optional(),
510
- "x-ts-secret": import_zod8.z.string(),
511
- "x-ts-data": import_zod8.z.string().transform((s) => JSON.parse(s)),
512
- "x-ts-params": import_zod8.z.string().transform((s) => JSON.parse(s)),
513
- "x-ts-http-url": import_zod8.z.string(),
514
- "x-ts-http-method": import_zod8.z.string(),
515
- "x-ts-http-headers": import_zod8.z.string().transform((s) => import_zod8.z.record(import_zod8.z.string()).parse(JSON.parse(s)))
516
- });
517
- var PongResponseSchema = import_zod8.z.object({
518
- message: import_zod8.z.literal("PONG")
519
- });
520
- var QueueOptionsSchema = import_zod8.z.object({
521
- name: import_zod8.z.string(),
522
- maxConcurrent: import_zod8.z.number().optional()
523
- });
524
- var JobMetadataSchema = import_zod8.z.object({
525
- id: import_zod8.z.string(),
526
- name: import_zod8.z.string(),
527
- version: import_zod8.z.string(),
499
+ events: import_zod9.z.array(import_zod9.z.string()),
500
+ missingEvents: import_zod9.z.array(import_zod9.z.string()),
501
+ orphanedEvents: import_zod9.z.array(import_zod9.z.string()),
502
+ dynamicTriggerId: import_zod9.z.string().optional()
503
+ });
504
+ var TriggerSourceSchema = import_zod9.z.object({
505
+ id: import_zod9.z.string(),
506
+ key: import_zod9.z.string()
507
+ });
508
+ var HandleTriggerSourceSchema = import_zod9.z.object({
509
+ key: import_zod9.z.string(),
510
+ secret: import_zod9.z.string(),
511
+ data: import_zod9.z.any(),
512
+ params: import_zod9.z.any()
513
+ });
514
+ var HttpSourceRequestSchema = import_zod9.z.object({
515
+ url: import_zod9.z.string().url(),
516
+ method: import_zod9.z.string(),
517
+ headers: import_zod9.z.record(import_zod9.z.string()),
518
+ rawBody: import_zod9.z.instanceof(Buffer).optional().nullable()
519
+ });
520
+ var HttpSourceRequestHeadersSchema = import_zod9.z.object({
521
+ "x-ts-key": import_zod9.z.string(),
522
+ "x-ts-dynamic-id": import_zod9.z.string().optional(),
523
+ "x-ts-secret": import_zod9.z.string(),
524
+ "x-ts-data": import_zod9.z.string().transform((s) => JSON.parse(s)),
525
+ "x-ts-params": import_zod9.z.string().transform((s) => JSON.parse(s)),
526
+ "x-ts-http-url": import_zod9.z.string(),
527
+ "x-ts-http-method": import_zod9.z.string(),
528
+ "x-ts-http-headers": import_zod9.z.string().transform((s) => import_zod9.z.record(import_zod9.z.string()).parse(JSON.parse(s)))
529
+ });
530
+ var PongResponseSchema = import_zod9.z.object({
531
+ message: import_zod9.z.literal("PONG")
532
+ });
533
+ var QueueOptionsSchema = import_zod9.z.object({
534
+ name: import_zod9.z.string(),
535
+ maxConcurrent: import_zod9.z.number().optional()
536
+ });
537
+ var JobMetadataSchema = import_zod9.z.object({
538
+ id: import_zod9.z.string(),
539
+ name: import_zod9.z.string(),
540
+ version: import_zod9.z.string(),
528
541
  event: EventSpecificationSchema,
529
542
  trigger: TriggerMetadataSchema,
530
- integrations: import_zod8.z.record(IntegrationConfigSchema),
531
- internal: import_zod8.z.boolean().default(false),
532
- queue: import_zod8.z.union([
543
+ integrations: import_zod9.z.record(IntegrationConfigSchema),
544
+ internal: import_zod9.z.boolean().default(false),
545
+ queue: import_zod9.z.union([
533
546
  QueueOptionsSchema,
534
- import_zod8.z.string()
547
+ import_zod9.z.string()
535
548
  ]).optional(),
536
- startPosition: import_zod8.z.enum([
549
+ startPosition: import_zod9.z.enum([
537
550
  "initial",
538
551
  "latest"
539
552
  ]),
540
- enabled: import_zod8.z.boolean(),
541
- preprocessRuns: import_zod8.z.boolean()
553
+ enabled: import_zod9.z.boolean(),
554
+ preprocessRuns: import_zod9.z.boolean()
542
555
  });
543
- var SourceMetadataSchema = import_zod8.z.object({
544
- channel: import_zod8.z.enum([
556
+ var SourceMetadataSchema = import_zod9.z.object({
557
+ channel: import_zod9.z.enum([
545
558
  "HTTP",
546
559
  "SQS",
547
560
  "SMTP"
548
561
  ]),
549
- key: import_zod8.z.string(),
550
- params: import_zod8.z.any(),
551
- events: import_zod8.z.array(import_zod8.z.string()),
552
- clientId: import_zod8.z.string().optional()
553
- });
554
- var DynamicTriggerEndpointMetadataSchema = import_zod8.z.object({
555
- id: import_zod8.z.string(),
556
- jobs: import_zod8.z.array(JobMetadataSchema.pick({
562
+ key: import_zod9.z.string(),
563
+ params: import_zod9.z.any(),
564
+ events: import_zod9.z.array(import_zod9.z.string()),
565
+ clientId: import_zod9.z.string().optional()
566
+ });
567
+ var DynamicTriggerEndpointMetadataSchema = import_zod9.z.object({
568
+ id: import_zod9.z.string(),
569
+ jobs: import_zod9.z.array(JobMetadataSchema.pick({
557
570
  id: true,
558
571
  version: true
559
572
  }))
560
573
  });
561
- var GetEndpointDataResponseSchema = import_zod8.z.object({
562
- jobs: import_zod8.z.array(JobMetadataSchema),
563
- sources: import_zod8.z.array(SourceMetadataSchema),
564
- dynamicTriggers: import_zod8.z.array(DynamicTriggerEndpointMetadataSchema),
565
- dynamicSchedules: import_zod8.z.array(RegisterDynamicSchedulePayloadSchema)
566
- });
567
- var RawEventSchema = import_zod8.z.object({
568
- id: import_zod8.z.string().default(() => (0, import_ulid.ulid)()),
569
- name: import_zod8.z.string(),
570
- source: import_zod8.z.string().optional(),
571
- payload: import_zod8.z.any(),
572
- context: import_zod8.z.any().optional(),
573
- timestamp: import_zod8.z.string().datetime().optional()
574
- });
575
- var ApiEventLogSchema = import_zod8.z.object({
576
- id: import_zod8.z.string(),
577
- name: import_zod8.z.string(),
574
+ var GetEndpointDataResponseSchema = import_zod9.z.object({
575
+ jobs: import_zod9.z.array(JobMetadataSchema),
576
+ sources: import_zod9.z.array(SourceMetadataSchema),
577
+ dynamicTriggers: import_zod9.z.array(DynamicTriggerEndpointMetadataSchema),
578
+ dynamicSchedules: import_zod9.z.array(RegisterDynamicSchedulePayloadSchema)
579
+ });
580
+ var RawEventSchema = import_zod9.z.object({
581
+ id: import_zod9.z.string().default(() => (0, import_ulid.ulid)()),
582
+ name: import_zod9.z.string(),
583
+ source: import_zod9.z.string().optional(),
584
+ payload: import_zod9.z.any(),
585
+ context: import_zod9.z.any().optional(),
586
+ timestamp: import_zod9.z.string().datetime().optional()
587
+ });
588
+ var ApiEventLogSchema = import_zod9.z.object({
589
+ id: import_zod9.z.string(),
590
+ name: import_zod9.z.string(),
578
591
  payload: DeserializedJsonSchema,
579
592
  context: DeserializedJsonSchema.optional().nullable(),
580
- timestamp: import_zod8.z.coerce.date(),
581
- deliverAt: import_zod8.z.coerce.date().optional().nullable(),
582
- deliveredAt: import_zod8.z.coerce.date().optional().nullable()
593
+ timestamp: import_zod9.z.coerce.date(),
594
+ deliverAt: import_zod9.z.coerce.date().optional().nullable(),
595
+ deliveredAt: import_zod9.z.coerce.date().optional().nullable()
583
596
  });
584
- var SendEventOptionsSchema = import_zod8.z.object({
585
- deliverAt: import_zod8.z.string().datetime().optional(),
586
- deliverAfter: import_zod8.z.number().int().optional(),
587
- accountId: import_zod8.z.string().optional()
597
+ var SendEventOptionsSchema = import_zod9.z.object({
598
+ deliverAt: import_zod9.z.string().datetime().optional(),
599
+ deliverAfter: import_zod9.z.number().int().optional(),
600
+ accountId: import_zod9.z.string().optional()
588
601
  });
589
- var SendEventBodySchema = import_zod8.z.object({
602
+ var SendEventBodySchema = import_zod9.z.object({
590
603
  event: RawEventSchema,
591
604
  options: SendEventOptionsSchema.optional()
592
605
  });
593
- var DeliverEventResponseSchema = import_zod8.z.object({
594
- deliveredAt: import_zod8.z.string().datetime()
606
+ var DeliverEventResponseSchema = import_zod9.z.object({
607
+ deliveredAt: import_zod9.z.string().datetime()
595
608
  });
596
- var RuntimeEnvironmentTypeSchema = import_zod8.z.enum([
609
+ var RuntimeEnvironmentTypeSchema = import_zod9.z.enum([
597
610
  "PRODUCTION",
598
611
  "STAGING",
599
612
  "DEVELOPMENT",
600
613
  "PREVIEW"
601
614
  ]);
602
- var RunJobBodySchema = import_zod8.z.object({
615
+ var RunJobBodySchema = import_zod9.z.object({
603
616
  event: ApiEventLogSchema,
604
- job: import_zod8.z.object({
605
- id: import_zod8.z.string(),
606
- version: import_zod8.z.string()
617
+ job: import_zod9.z.object({
618
+ id: import_zod9.z.string(),
619
+ version: import_zod9.z.string()
607
620
  }),
608
- run: import_zod8.z.object({
609
- id: import_zod8.z.string(),
610
- isTest: import_zod8.z.boolean(),
611
- startedAt: import_zod8.z.coerce.date()
621
+ run: import_zod9.z.object({
622
+ id: import_zod9.z.string(),
623
+ isTest: import_zod9.z.boolean(),
624
+ startedAt: import_zod9.z.coerce.date()
612
625
  }),
613
- environment: import_zod8.z.object({
614
- id: import_zod8.z.string(),
615
- slug: import_zod8.z.string(),
626
+ environment: import_zod9.z.object({
627
+ id: import_zod9.z.string(),
628
+ slug: import_zod9.z.string(),
616
629
  type: RuntimeEnvironmentTypeSchema
617
630
  }),
618
- organization: import_zod8.z.object({
619
- id: import_zod8.z.string(),
620
- title: import_zod8.z.string(),
621
- slug: import_zod8.z.string()
631
+ organization: import_zod9.z.object({
632
+ id: import_zod9.z.string(),
633
+ title: import_zod9.z.string(),
634
+ slug: import_zod9.z.string()
622
635
  }),
623
- account: import_zod8.z.object({
624
- id: import_zod8.z.string(),
625
- metadata: import_zod8.z.any()
636
+ account: import_zod9.z.object({
637
+ id: import_zod9.z.string(),
638
+ metadata: import_zod9.z.any()
626
639
  }).optional(),
627
- tasks: import_zod8.z.array(CachedTaskSchema).optional(),
628
- connections: import_zod8.z.record(ConnectionAuthSchema).optional()
640
+ tasks: import_zod9.z.array(CachedTaskSchema).optional(),
641
+ connections: import_zod9.z.record(ConnectionAuthSchema).optional()
629
642
  });
630
- var RunJobResponseSchema = import_zod8.z.object({
631
- executionId: import_zod8.z.string(),
632
- completed: import_zod8.z.boolean(),
633
- output: DeserializedJsonSchema.optional(),
643
+ var RunJobErrorSchema = import_zod9.z.object({
644
+ status: import_zod9.z.literal("ERROR"),
645
+ error: ErrorWithStackSchema,
634
646
  task: TaskSchema.optional()
635
647
  });
636
- var PreprocessRunBodySchema = import_zod8.z.object({
648
+ var RunJobResumeWithTaskSchema = import_zod9.z.object({
649
+ status: import_zod9.z.literal("RESUME_WITH_TASK"),
650
+ task: TaskSchema
651
+ });
652
+ var RunJobRetryWithTaskSchema = import_zod9.z.object({
653
+ status: import_zod9.z.literal("RETRY_WITH_TASK"),
654
+ task: TaskSchema,
655
+ error: ErrorWithStackSchema,
656
+ retryAt: import_zod9.z.coerce.date()
657
+ });
658
+ var RunJobSuccessSchema = import_zod9.z.object({
659
+ status: import_zod9.z.literal("SUCCESS"),
660
+ output: DeserializedJsonSchema.optional()
661
+ });
662
+ var RunJobResponseSchema = import_zod9.z.discriminatedUnion("status", [
663
+ RunJobErrorSchema,
664
+ RunJobResumeWithTaskSchema,
665
+ RunJobRetryWithTaskSchema,
666
+ RunJobSuccessSchema
667
+ ]);
668
+ var PreprocessRunBodySchema = import_zod9.z.object({
637
669
  event: ApiEventLogSchema,
638
- job: import_zod8.z.object({
639
- id: import_zod8.z.string(),
640
- version: import_zod8.z.string()
670
+ job: import_zod9.z.object({
671
+ id: import_zod9.z.string(),
672
+ version: import_zod9.z.string()
641
673
  }),
642
- run: import_zod8.z.object({
643
- id: import_zod8.z.string(),
644
- isTest: import_zod8.z.boolean()
674
+ run: import_zod9.z.object({
675
+ id: import_zod9.z.string(),
676
+ isTest: import_zod9.z.boolean()
645
677
  }),
646
- environment: import_zod8.z.object({
647
- id: import_zod8.z.string(),
648
- slug: import_zod8.z.string(),
678
+ environment: import_zod9.z.object({
679
+ id: import_zod9.z.string(),
680
+ slug: import_zod9.z.string(),
649
681
  type: RuntimeEnvironmentTypeSchema
650
682
  }),
651
- organization: import_zod8.z.object({
652
- id: import_zod8.z.string(),
653
- title: import_zod8.z.string(),
654
- slug: import_zod8.z.string()
683
+ organization: import_zod9.z.object({
684
+ id: import_zod9.z.string(),
685
+ title: import_zod9.z.string(),
686
+ slug: import_zod9.z.string()
655
687
  }),
656
- account: import_zod8.z.object({
657
- id: import_zod8.z.string(),
658
- metadata: import_zod8.z.any()
688
+ account: import_zod9.z.object({
689
+ id: import_zod9.z.string(),
690
+ metadata: import_zod9.z.any()
659
691
  }).optional()
660
692
  });
661
- var PreprocessRunResponseSchema = import_zod8.z.object({
662
- abort: import_zod8.z.boolean(),
663
- properties: import_zod8.z.array(DisplayPropertySchema).optional()
693
+ var PreprocessRunResponseSchema = import_zod9.z.object({
694
+ abort: import_zod9.z.boolean(),
695
+ properties: import_zod9.z.array(DisplayPropertySchema).optional()
664
696
  });
665
- var CreateRunBodySchema = import_zod8.z.object({
666
- client: import_zod8.z.string(),
697
+ var CreateRunBodySchema = import_zod9.z.object({
698
+ client: import_zod9.z.string(),
667
699
  job: JobMetadataSchema,
668
700
  event: ApiEventLogSchema,
669
- properties: import_zod8.z.array(DisplayPropertySchema).optional()
701
+ properties: import_zod9.z.array(DisplayPropertySchema).optional()
670
702
  });
671
- var CreateRunResponseOkSchema = import_zod8.z.object({
672
- ok: import_zod8.z.literal(true),
673
- data: import_zod8.z.object({
674
- id: import_zod8.z.string()
703
+ var CreateRunResponseOkSchema = import_zod9.z.object({
704
+ ok: import_zod9.z.literal(true),
705
+ data: import_zod9.z.object({
706
+ id: import_zod9.z.string()
675
707
  })
676
708
  });
677
- var CreateRunResponseErrorSchema = import_zod8.z.object({
678
- ok: import_zod8.z.literal(false),
679
- error: import_zod8.z.string()
709
+ var CreateRunResponseErrorSchema = import_zod9.z.object({
710
+ ok: import_zod9.z.literal(false),
711
+ error: import_zod9.z.string()
680
712
  });
681
- var CreateRunResponseBodySchema = import_zod8.z.discriminatedUnion("ok", [
713
+ var CreateRunResponseBodySchema = import_zod9.z.discriminatedUnion("ok", [
682
714
  CreateRunResponseOkSchema,
683
715
  CreateRunResponseErrorSchema
684
716
  ]);
685
- var SecureStringSchema = import_zod8.z.object({
686
- __secureString: import_zod8.z.literal(true),
687
- strings: import_zod8.z.array(import_zod8.z.string()),
688
- interpolations: import_zod8.z.array(import_zod8.z.string())
717
+ var SecureStringSchema = import_zod9.z.object({
718
+ __secureString: import_zod9.z.literal(true),
719
+ strings: import_zod9.z.array(import_zod9.z.string()),
720
+ interpolations: import_zod9.z.array(import_zod9.z.string())
689
721
  });
690
- var LogMessageSchema = import_zod8.z.object({
691
- level: import_zod8.z.enum([
722
+ var LogMessageSchema = import_zod9.z.object({
723
+ level: import_zod9.z.enum([
692
724
  "DEBUG",
693
725
  "INFO",
694
726
  "WARN",
695
727
  "ERROR"
696
728
  ]),
697
- message: import_zod8.z.string(),
729
+ message: import_zod9.z.string(),
698
730
  data: SerializableJsonSchema.optional()
699
731
  });
700
- var RedactSchema = import_zod8.z.object({
701
- paths: import_zod8.z.array(import_zod8.z.string())
702
- });
703
- var RunTaskOptionsSchema = import_zod8.z.object({
704
- name: import_zod8.z.string(),
705
- icon: import_zod8.z.string().optional(),
706
- displayKey: import_zod8.z.string().optional(),
707
- noop: import_zod8.z.boolean().default(false),
708
- delayUntil: import_zod8.z.coerce.date().optional(),
709
- description: import_zod8.z.string().optional(),
710
- properties: import_zod8.z.array(DisplayPropertySchema).optional(),
732
+ var RedactSchema = import_zod9.z.object({
733
+ paths: import_zod9.z.array(import_zod9.z.string())
734
+ });
735
+ var RetryOptionsSchema = import_zod9.z.object({
736
+ limit: import_zod9.z.number().optional(),
737
+ factor: import_zod9.z.number().optional(),
738
+ minTimeoutInMs: import_zod9.z.number().optional(),
739
+ maxTimeoutInMs: import_zod9.z.number().optional(),
740
+ randomize: import_zod9.z.boolean().optional()
741
+ });
742
+ var RunTaskOptionsSchema = import_zod9.z.object({
743
+ name: import_zod9.z.string(),
744
+ icon: import_zod9.z.string().optional(),
745
+ displayKey: import_zod9.z.string().optional(),
746
+ noop: import_zod9.z.boolean().default(false),
747
+ delayUntil: import_zod9.z.coerce.date().optional(),
748
+ description: import_zod9.z.string().optional(),
749
+ properties: import_zod9.z.array(DisplayPropertySchema).optional(),
711
750
  params: SerializableJsonSchema.optional(),
712
751
  trigger: TriggerMetadataSchema.optional(),
713
752
  redact: RedactSchema.optional(),
714
- connectionKey: import_zod8.z.string().optional(),
715
- style: StyleSchema.optional()
753
+ connectionKey: import_zod9.z.string().optional(),
754
+ style: StyleSchema.optional(),
755
+ retry: RetryOptionsSchema.optional()
716
756
  });
717
757
  var RunTaskBodyInputSchema = RunTaskOptionsSchema.extend({
718
- idempotencyKey: import_zod8.z.string(),
719
- parentId: import_zod8.z.string().optional()
758
+ idempotencyKey: import_zod9.z.string(),
759
+ parentId: import_zod9.z.string().optional()
720
760
  });
721
761
  var RunTaskBodyOutputSchema = RunTaskBodyInputSchema.extend({
722
762
  params: DeserializedJsonSchema.optional().nullable()
@@ -728,64 +768,58 @@ var CompleteTaskBodyInputSchema = RunTaskBodyInputSchema.pick({
728
768
  }).extend({
729
769
  output: SerializableJsonSchema.optional().transform((v) => v ? DeserializedJsonSchema.parse(JSON.parse(JSON.stringify(v))) : {})
730
770
  });
731
- var NormalizedRequestSchema = import_zod8.z.object({
732
- headers: import_zod8.z.record(import_zod8.z.string()),
733
- method: import_zod8.z.string(),
734
- query: import_zod8.z.record(import_zod8.z.string()),
735
- url: import_zod8.z.string(),
736
- body: import_zod8.z.any()
771
+ var FailTaskBodyInputSchema = import_zod9.z.object({
772
+ error: ErrorWithStackSchema
773
+ });
774
+ var NormalizedRequestSchema = import_zod9.z.object({
775
+ headers: import_zod9.z.record(import_zod9.z.string()),
776
+ method: import_zod9.z.string(),
777
+ query: import_zod9.z.record(import_zod9.z.string()),
778
+ url: import_zod9.z.string(),
779
+ body: import_zod9.z.any()
737
780
  });
738
- var NormalizedResponseSchema = import_zod8.z.object({
739
- status: import_zod8.z.number(),
740
- body: import_zod8.z.any(),
741
- headers: import_zod8.z.record(import_zod8.z.string()).optional()
781
+ var NormalizedResponseSchema = import_zod9.z.object({
782
+ status: import_zod9.z.number(),
783
+ body: import_zod9.z.any(),
784
+ headers: import_zod9.z.record(import_zod9.z.string()).optional()
742
785
  });
743
- var HttpSourceResponseSchema = import_zod8.z.object({
786
+ var HttpSourceResponseSchema = import_zod9.z.object({
744
787
  response: NormalizedResponseSchema,
745
- events: import_zod8.z.array(RawEventSchema)
788
+ events: import_zod9.z.array(RawEventSchema)
746
789
  });
747
- var RegisterTriggerBodySchema = import_zod8.z.object({
790
+ var RegisterTriggerBodySchema = import_zod9.z.object({
748
791
  rule: EventRuleSchema,
749
792
  source: SourceMetadataSchema
750
793
  });
751
- var InitializeTriggerBodySchema = import_zod8.z.object({
752
- id: import_zod8.z.string(),
753
- params: import_zod8.z.any(),
754
- accountId: import_zod8.z.string().optional()
794
+ var InitializeTriggerBodySchema = import_zod9.z.object({
795
+ id: import_zod9.z.string(),
796
+ params: import_zod9.z.any(),
797
+ accountId: import_zod9.z.string().optional()
755
798
  });
756
- var RegisterCommonScheduleBodySchema = import_zod8.z.object({
757
- id: import_zod8.z.string(),
758
- metadata: import_zod8.z.any(),
759
- accountId: import_zod8.z.string().optional()
799
+ var RegisterCommonScheduleBodySchema = import_zod9.z.object({
800
+ id: import_zod9.z.string(),
801
+ metadata: import_zod9.z.any(),
802
+ accountId: import_zod9.z.string().optional()
760
803
  });
761
804
  var RegisterIntervalScheduleBodySchema = RegisterCommonScheduleBodySchema.merge(IntervalMetadataSchema);
762
805
  var InitializeCronScheduleBodySchema = RegisterCommonScheduleBodySchema.merge(CronMetadataSchema);
763
- var RegisterScheduleBodySchema = import_zod8.z.discriminatedUnion("type", [
806
+ var RegisterScheduleBodySchema = import_zod9.z.discriminatedUnion("type", [
764
807
  RegisterIntervalScheduleBodySchema,
765
808
  InitializeCronScheduleBodySchema
766
809
  ]);
767
- var RegisterScheduleResponseBodySchema = import_zod8.z.object({
768
- id: import_zod8.z.string(),
810
+ var RegisterScheduleResponseBodySchema = import_zod9.z.object({
811
+ id: import_zod9.z.string(),
769
812
  schedule: ScheduleMetadataSchema,
770
- metadata: import_zod8.z.any(),
771
- active: import_zod8.z.boolean()
813
+ metadata: import_zod9.z.any(),
814
+ active: import_zod9.z.boolean()
772
815
  });
773
- var CreateExternalConnectionBodySchema = import_zod8.z.object({
774
- accessToken: import_zod8.z.string(),
775
- type: import_zod8.z.enum([
816
+ var CreateExternalConnectionBodySchema = import_zod9.z.object({
817
+ accessToken: import_zod9.z.string(),
818
+ type: import_zod9.z.enum([
776
819
  "oauth2"
777
820
  ]),
778
- scopes: import_zod8.z.array(import_zod8.z.string()).optional(),
779
- metadata: import_zod8.z.any()
780
- });
781
-
782
- // ../internal/src/schemas/errors.ts
783
- var import_zod9 = require("zod");
784
- var ErrorWithMessage = import_zod9.z.object({
785
- message: import_zod9.z.string()
786
- });
787
- var ErrorWithStackSchema = ErrorWithMessage.extend({
788
- stack: import_zod9.z.string().optional()
821
+ scopes: import_zod9.z.array(import_zod9.z.string()).optional(),
822
+ metadata: import_zod9.z.any()
789
823
  });
790
824
 
791
825
  // ../internal/src/schemas/notifications.ts
@@ -955,6 +989,22 @@ var ApiClient = class {
955
989
  body: JSON.stringify(task)
956
990
  });
957
991
  }
992
+ async failTask(runId, id, body) {
993
+ const apiKey = await __privateMethod(this, _apiKey, apiKey_fn).call(this);
994
+ __privateGet(this, _logger).debug("Fail Task", {
995
+ id,
996
+ runId,
997
+ body
998
+ });
999
+ return await zodfetch(ServerTaskSchema, `${__privateGet(this, _apiUrl)}/api/v1/runs/${runId}/tasks/${id}/fail`, {
1000
+ method: "POST",
1001
+ headers: {
1002
+ "Content-Type": "application/json",
1003
+ Authorization: `Bearer ${apiKey}`
1004
+ },
1005
+ body: JSON.stringify(body)
1006
+ });
1007
+ }
958
1008
  async sendEvent(event, options = {}) {
959
1009
  const apiKey = await __privateMethod(this, _apiKey, apiKey_fn).call(this);
960
1010
  __privateGet(this, _logger).debug("Sending event", {
@@ -1106,6 +1156,26 @@ async function zodfetch(schema, url, requestInit, options) {
1106
1156
  }
1107
1157
  __name(zodfetch, "zodfetch");
1108
1158
 
1159
+ // src/errors.ts
1160
+ var ResumeWithTaskError = class {
1161
+ constructor(task) {
1162
+ this.task = task;
1163
+ }
1164
+ };
1165
+ __name(ResumeWithTaskError, "ResumeWithTaskError");
1166
+ var RetryWithTaskError = class {
1167
+ constructor(cause, task, retryAt) {
1168
+ this.cause = cause;
1169
+ this.task = task;
1170
+ this.retryAt = retryAt;
1171
+ }
1172
+ };
1173
+ __name(RetryWithTaskError, "RetryWithTaskError");
1174
+ function isTriggerError(err) {
1175
+ return err instanceof ResumeWithTaskError || err instanceof RetryWithTaskError;
1176
+ }
1177
+ __name(isTriggerError, "isTriggerError");
1178
+
1109
1179
  // src/io.ts
1110
1180
  var import_node_async_hooks = require("async_hooks");
1111
1181
  var import_node_crypto = require("crypto");
@@ -1133,7 +1203,7 @@ function createIOWithIntegrations(io, auths, integrations) {
1133
1203
  options.connectionKey = connectionKey;
1134
1204
  return await io.runTask(key, options, async (ioTask) => {
1135
1205
  return authenticatedTask2.run(params, client, ioTask, io);
1136
- });
1206
+ }, authenticatedTask2.onError);
1137
1207
  };
1138
1208
  });
1139
1209
  }
@@ -1155,13 +1225,31 @@ function createIOWithIntegrations(io, auths, integrations) {
1155
1225
  }
1156
1226
  __name(createIOWithIntegrations, "createIOWithIntegrations");
1157
1227
 
1158
- // src/io.ts
1159
- var ResumeWithTask = class {
1160
- constructor(task) {
1161
- this.task = task;
1162
- }
1228
+ // src/retry.ts
1229
+ var DEFAULT_RETRY_OPTIONS = {
1230
+ limit: 5,
1231
+ factor: 1.8,
1232
+ minTimeoutInMs: 1e3,
1233
+ maxTimeoutInMs: 6e4,
1234
+ randomize: true
1163
1235
  };
1164
- __name(ResumeWithTask, "ResumeWithTask");
1236
+ function calculateRetryAt(retryOptions, attempts) {
1237
+ const options = {
1238
+ ...DEFAULT_RETRY_OPTIONS,
1239
+ ...retryOptions
1240
+ };
1241
+ const retryCount = attempts + 1;
1242
+ if (retryCount > options.limit) {
1243
+ return;
1244
+ }
1245
+ const random = options.randomize ? Math.random() + 1 : 1;
1246
+ let timeoutInMs = Math.round(random * Math.max(options.minTimeoutInMs, 1) * Math.pow(options.factor, Math.max(attempts - 1, 0)));
1247
+ timeoutInMs = Math.min(timeoutInMs, options.maxTimeoutInMs);
1248
+ return new Date(Date.now() + timeoutInMs);
1249
+ }
1250
+ __name(calculateRetryAt, "calculateRetryAt");
1251
+
1252
+ // src/io.ts
1165
1253
  var _addToCachedTasks, addToCachedTasks_fn;
1166
1254
  var IO = class {
1167
1255
  constructor(options) {
@@ -1401,7 +1489,7 @@ var IO = class {
1401
1489
  return await this._triggerClient.getAuth(clientId);
1402
1490
  });
1403
1491
  }
1404
- async runTask(key, options, callback) {
1492
+ async runTask(key, options, callback, onError) {
1405
1493
  const parentId = this._taskStorage.getStore()?.taskId;
1406
1494
  if (parentId) {
1407
1495
  this._logger.debug("Using parent task", {
@@ -1450,7 +1538,7 @@ var IO = class {
1450
1538
  idempotencyKey,
1451
1539
  task
1452
1540
  });
1453
- throw new ResumeWithTask(task);
1541
+ throw new ResumeWithTaskError(task);
1454
1542
  }
1455
1543
  const executeTask = /* @__PURE__ */ __name(async () => {
1456
1544
  try {
@@ -1464,6 +1552,36 @@ var IO = class {
1464
1552
  });
1465
1553
  return result;
1466
1554
  } catch (error) {
1555
+ if (onError) {
1556
+ const onErrorResult = onError(error, task, this);
1557
+ if (onErrorResult) {
1558
+ const parsedError2 = ErrorWithStackSchema.safeParse(onErrorResult.error);
1559
+ throw new RetryWithTaskError(parsedError2.success ? parsedError2.data : {
1560
+ message: "Unknown error"
1561
+ }, task, onErrorResult.retryAt);
1562
+ }
1563
+ }
1564
+ const parsedError = ErrorWithStackSchema.safeParse(error);
1565
+ if (options.retry) {
1566
+ const retryAt = calculateRetryAt(options.retry, task.attempts);
1567
+ if (retryAt) {
1568
+ throw new RetryWithTaskError(parsedError.success ? parsedError.data : {
1569
+ message: "Unknown error"
1570
+ }, task, retryAt);
1571
+ }
1572
+ }
1573
+ if (parsedError.success) {
1574
+ await this._apiClient.failTask(this._id, task.id, {
1575
+ error: parsedError.data
1576
+ });
1577
+ } else {
1578
+ await this._apiClient.failTask(this._id, task.id, {
1579
+ error: {
1580
+ message: JSON.stringify(error),
1581
+ name: "Unknown Error"
1582
+ }
1583
+ });
1584
+ }
1467
1585
  throw error;
1468
1586
  }
1469
1587
  }, "executeTask");
@@ -1471,6 +1589,16 @@ var IO = class {
1471
1589
  taskId: task.id
1472
1590
  }, executeTask);
1473
1591
  }
1592
+ async try(tryCallback, catchCallback) {
1593
+ try {
1594
+ return await tryCallback();
1595
+ } catch (error) {
1596
+ if (isTriggerError(error)) {
1597
+ throw error;
1598
+ }
1599
+ return await catchCallback(error);
1600
+ }
1601
+ }
1474
1602
  };
1475
1603
  __name(IO, "IO");
1476
1604
  _addToCachedTasks = new WeakSet();
@@ -1559,7 +1687,7 @@ __name(EventTrigger, "EventTrigger");
1559
1687
  _options2 = new WeakMap();
1560
1688
  function eventTrigger(options) {
1561
1689
  return new EventTrigger({
1562
- name: "Event Trigger",
1690
+ name: options.name,
1563
1691
  filter: options.filter,
1564
1692
  event: {
1565
1693
  name: options.name,
@@ -1741,20 +1869,9 @@ var TriggerClient = class {
1741
1869
  };
1742
1870
  }
1743
1871
  const results = await __privateMethod(this, _executeJob, executeJob_fn).call(this, execution.data, job);
1744
- if (results.error) {
1745
- return {
1746
- status: 500,
1747
- body: results.error
1748
- };
1749
- }
1750
1872
  return {
1751
1873
  status: 200,
1752
- body: {
1753
- completed: results.completed,
1754
- output: results.output,
1755
- executionId: execution.data.run.id,
1756
- task: results.task
1757
- }
1874
+ body: results
1758
1875
  };
1759
1876
  }
1760
1877
  case "PREPROCESS_RUN": {
@@ -2008,32 +2125,50 @@ executeJob_fn = /* @__PURE__ */ __name(async function(body1, job1) {
2008
2125
  try {
2009
2126
  const output = await job1.options.run(job1.trigger.event.parsePayload(body1.event.payload ?? {}), ioWithConnections, context);
2010
2127
  return {
2011
- completed: true,
2128
+ status: "SUCCESS",
2012
2129
  output
2013
2130
  };
2014
2131
  } catch (error) {
2015
- if (error instanceof ResumeWithTask) {
2132
+ if (error instanceof ResumeWithTaskError) {
2016
2133
  return {
2017
- completed: false,
2134
+ status: "RESUME_WITH_TASK",
2018
2135
  task: error.task
2019
2136
  };
2020
2137
  }
2021
- const errorWithStack = ErrorWithStackSchema.safeParse(error);
2022
- if (errorWithStack.success) {
2138
+ if (error instanceof RetryWithTaskError) {
2023
2139
  return {
2024
- completed: true,
2025
- error: errorWithStack.data
2140
+ status: "RETRY_WITH_TASK",
2141
+ task: error.task,
2142
+ error: error.cause,
2143
+ retryAt: error.retryAt
2026
2144
  };
2027
2145
  }
2028
- const errorWithMessage = ErrorWithMessage.safeParse(error);
2029
- if (errorWithMessage.success) {
2146
+ if (error instanceof RetryWithTaskError) {
2147
+ const errorWithStack2 = ErrorWithStackSchema.safeParse(error.cause);
2148
+ if (errorWithStack2.success) {
2149
+ return {
2150
+ status: "ERROR",
2151
+ error: errorWithStack2.data,
2152
+ task: error.task
2153
+ };
2154
+ }
2030
2155
  return {
2031
- completed: true,
2032
- error: errorWithMessage.data
2156
+ status: "ERROR",
2157
+ error: {
2158
+ message: "Unknown error"
2159
+ },
2160
+ task: error.task
2161
+ };
2162
+ }
2163
+ const errorWithStack = ErrorWithStackSchema.safeParse(error);
2164
+ if (errorWithStack.success) {
2165
+ return {
2166
+ status: "ERROR",
2167
+ error: errorWithStack.data
2033
2168
  };
2034
2169
  }
2035
2170
  return {
2036
- completed: true,
2171
+ status: "ERROR",
2037
2172
  error: {
2038
2173
  message: "Unknown error"
2039
2174
  }
@@ -2577,12 +2712,12 @@ __name(secureString, "secureString");
2577
2712
  Job,
2578
2713
  MissingConnectionNotification,
2579
2714
  MissingConnectionResolvedNotification,
2580
- ResumeWithTask,
2581
2715
  TriggerClient,
2582
2716
  authenticatedTask,
2583
2717
  cronTrigger,
2584
2718
  eventTrigger,
2585
2719
  intervalTrigger,
2720
+ isTriggerError,
2586
2721
  missingConnectionNotification,
2587
2722
  missingConnectionResolvedNotification,
2588
2723
  omit,