@trigger.dev/sdk 0.2.15 → 0.2.16-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.d.ts +2 -2
- package/dist/index.js +243 -176
- package/dist/index.js.map +1 -1
- package/package.json +2 -1
package/dist/index.d.ts
CHANGED
|
@@ -438,14 +438,14 @@ type TriggerEvent<TSchema extends z.ZodTypeAny> = {
|
|
|
438
438
|
};
|
|
439
439
|
type TriggerCustomEventOptions<TSchema extends z.ZodTypeAny> = {
|
|
440
440
|
name: string;
|
|
441
|
-
schema
|
|
441
|
+
schema?: TSchema;
|
|
442
442
|
filter?: EventFilter;
|
|
443
443
|
};
|
|
444
444
|
declare function customEvent<TSchema extends z.ZodTypeAny>(options: TriggerCustomEventOptions<TSchema>): TriggerEvent<TSchema>;
|
|
445
445
|
type TriggerScheduleOptions = z.infer<typeof ScheduleSourceSchema>;
|
|
446
446
|
declare function scheduleEvent(options: TriggerScheduleOptions): TriggerEvent<typeof ScheduledEventPayloadSchema>;
|
|
447
447
|
type TriggerWebhookEventOptions<TSchema extends z.ZodTypeAny> = {
|
|
448
|
-
schema
|
|
448
|
+
schema?: TSchema;
|
|
449
449
|
service: string;
|
|
450
450
|
eventName: string;
|
|
451
451
|
filter?: EventFilter;
|
package/dist/index.js
CHANGED
|
@@ -348,9 +348,11 @@ var ResolveRunOnceOuputSchema = import_zod8.z.object({
|
|
|
348
348
|
});
|
|
349
349
|
|
|
350
350
|
// src/events.ts
|
|
351
|
+
var import_zod9 = require("zod");
|
|
351
352
|
var import_slug = __toESM(require("slug"));
|
|
352
353
|
var import_zod_to_json_schema = __toESM(require("zod-to-json-schema"));
|
|
353
354
|
function customEvent(options) {
|
|
355
|
+
const schema = options.schema ?? import_zod9.z.any();
|
|
354
356
|
return {
|
|
355
357
|
metadata: {
|
|
356
358
|
type: "CUSTOM_EVENT",
|
|
@@ -362,9 +364,9 @@ function customEvent(options) {
|
|
|
362
364
|
],
|
|
363
365
|
payload: options.filter ?? {}
|
|
364
366
|
},
|
|
365
|
-
schema: (0, import_zod_to_json_schema.default)(
|
|
367
|
+
schema: (0, import_zod_to_json_schema.default)(schema)
|
|
366
368
|
},
|
|
367
|
-
schema
|
|
369
|
+
schema
|
|
368
370
|
};
|
|
369
371
|
}
|
|
370
372
|
__name(customEvent, "customEvent");
|
|
@@ -381,6 +383,7 @@ function scheduleEvent(options) {
|
|
|
381
383
|
}
|
|
382
384
|
__name(scheduleEvent, "scheduleEvent");
|
|
383
385
|
function webhookEvent(options) {
|
|
386
|
+
const schema = options.schema ?? import_zod9.z.any();
|
|
384
387
|
return {
|
|
385
388
|
metadata: {
|
|
386
389
|
type: "WEBHOOK",
|
|
@@ -402,7 +405,7 @@ function webhookEvent(options) {
|
|
|
402
405
|
event: options.eventName
|
|
403
406
|
},
|
|
404
407
|
manualRegistration: true,
|
|
405
|
-
schema: (0, import_zod_to_json_schema.default)(
|
|
408
|
+
schema: (0, import_zod_to_json_schema.default)(schema)
|
|
406
409
|
},
|
|
407
410
|
schema: options.schema
|
|
408
411
|
};
|
|
@@ -410,263 +413,300 @@ function webhookEvent(options) {
|
|
|
410
413
|
__name(webhookEvent, "webhookEvent");
|
|
411
414
|
|
|
412
415
|
// ../internal-bridge/src/schemas/host.ts
|
|
413
|
-
var
|
|
416
|
+
var import_zod10 = require("zod");
|
|
414
417
|
var HostRPCSchema = {
|
|
415
418
|
TRIGGER_WORKFLOW: {
|
|
416
|
-
request:
|
|
417
|
-
id:
|
|
418
|
-
trigger:
|
|
419
|
+
request: import_zod10.z.object({
|
|
420
|
+
id: import_zod10.z.string(),
|
|
421
|
+
trigger: import_zod10.z.object({
|
|
419
422
|
input: JsonSchema.default({}),
|
|
420
423
|
context: JsonSchema.default({})
|
|
421
424
|
}),
|
|
422
|
-
meta:
|
|
423
|
-
environment:
|
|
424
|
-
workflowId:
|
|
425
|
-
organizationId:
|
|
426
|
-
apiKey:
|
|
427
|
-
isTest:
|
|
428
|
-
appOrigin:
|
|
425
|
+
meta: import_zod10.z.object({
|
|
426
|
+
environment: import_zod10.z.string(),
|
|
427
|
+
workflowId: import_zod10.z.string(),
|
|
428
|
+
organizationId: import_zod10.z.string(),
|
|
429
|
+
apiKey: import_zod10.z.string(),
|
|
430
|
+
isTest: import_zod10.z.boolean().default(false),
|
|
431
|
+
appOrigin: import_zod10.z.string(),
|
|
432
|
+
attempt: import_zod10.z.number().optional()
|
|
429
433
|
})
|
|
430
434
|
}),
|
|
431
|
-
response:
|
|
435
|
+
response: import_zod10.z.boolean()
|
|
432
436
|
},
|
|
433
437
|
RESOLVE_REQUEST: {
|
|
434
|
-
request:
|
|
435
|
-
id:
|
|
436
|
-
key:
|
|
438
|
+
request: import_zod10.z.object({
|
|
439
|
+
id: import_zod10.z.string(),
|
|
440
|
+
key: import_zod10.z.string(),
|
|
437
441
|
output: JsonSchema.default({}),
|
|
438
|
-
meta:
|
|
439
|
-
environment:
|
|
440
|
-
workflowId:
|
|
441
|
-
organizationId:
|
|
442
|
-
apiKey:
|
|
443
|
-
runId:
|
|
442
|
+
meta: import_zod10.z.object({
|
|
443
|
+
environment: import_zod10.z.string(),
|
|
444
|
+
workflowId: import_zod10.z.string(),
|
|
445
|
+
organizationId: import_zod10.z.string(),
|
|
446
|
+
apiKey: import_zod10.z.string(),
|
|
447
|
+
runId: import_zod10.z.string()
|
|
444
448
|
})
|
|
445
449
|
}),
|
|
446
|
-
response:
|
|
450
|
+
response: import_zod10.z.boolean()
|
|
447
451
|
},
|
|
448
452
|
RESOLVE_DELAY: {
|
|
449
|
-
request:
|
|
450
|
-
id:
|
|
451
|
-
key:
|
|
452
|
-
meta:
|
|
453
|
-
environment:
|
|
454
|
-
workflowId:
|
|
455
|
-
organizationId:
|
|
456
|
-
apiKey:
|
|
457
|
-
runId:
|
|
453
|
+
request: import_zod10.z.object({
|
|
454
|
+
id: import_zod10.z.string(),
|
|
455
|
+
key: import_zod10.z.string(),
|
|
456
|
+
meta: import_zod10.z.object({
|
|
457
|
+
environment: import_zod10.z.string(),
|
|
458
|
+
workflowId: import_zod10.z.string(),
|
|
459
|
+
organizationId: import_zod10.z.string(),
|
|
460
|
+
apiKey: import_zod10.z.string(),
|
|
461
|
+
runId: import_zod10.z.string()
|
|
458
462
|
})
|
|
459
463
|
}),
|
|
460
|
-
response:
|
|
464
|
+
response: import_zod10.z.boolean()
|
|
461
465
|
},
|
|
462
466
|
REJECT_REQUEST: {
|
|
463
|
-
request:
|
|
464
|
-
id:
|
|
465
|
-
key:
|
|
467
|
+
request: import_zod10.z.object({
|
|
468
|
+
id: import_zod10.z.string(),
|
|
469
|
+
key: import_zod10.z.string(),
|
|
466
470
|
error: JsonSchema.default({}),
|
|
467
|
-
meta:
|
|
468
|
-
environment:
|
|
469
|
-
workflowId:
|
|
470
|
-
organizationId:
|
|
471
|
-
apiKey:
|
|
472
|
-
runId:
|
|
471
|
+
meta: import_zod10.z.object({
|
|
472
|
+
environment: import_zod10.z.string(),
|
|
473
|
+
workflowId: import_zod10.z.string(),
|
|
474
|
+
organizationId: import_zod10.z.string(),
|
|
475
|
+
apiKey: import_zod10.z.string(),
|
|
476
|
+
runId: import_zod10.z.string()
|
|
473
477
|
})
|
|
474
478
|
}),
|
|
475
|
-
response:
|
|
479
|
+
response: import_zod10.z.boolean()
|
|
476
480
|
},
|
|
477
481
|
RESOLVE_FETCH_REQUEST: {
|
|
478
|
-
request:
|
|
479
|
-
id:
|
|
480
|
-
key:
|
|
482
|
+
request: import_zod10.z.object({
|
|
483
|
+
id: import_zod10.z.string(),
|
|
484
|
+
key: import_zod10.z.string(),
|
|
481
485
|
output: FetchOutputSchema,
|
|
482
|
-
meta:
|
|
483
|
-
environment:
|
|
484
|
-
workflowId:
|
|
485
|
-
organizationId:
|
|
486
|
-
apiKey:
|
|
487
|
-
runId:
|
|
486
|
+
meta: import_zod10.z.object({
|
|
487
|
+
environment: import_zod10.z.string(),
|
|
488
|
+
workflowId: import_zod10.z.string(),
|
|
489
|
+
organizationId: import_zod10.z.string(),
|
|
490
|
+
apiKey: import_zod10.z.string(),
|
|
491
|
+
runId: import_zod10.z.string()
|
|
488
492
|
})
|
|
489
493
|
}),
|
|
490
|
-
response:
|
|
494
|
+
response: import_zod10.z.boolean()
|
|
491
495
|
},
|
|
492
496
|
REJECT_FETCH_REQUEST: {
|
|
493
|
-
request:
|
|
494
|
-
id:
|
|
495
|
-
key:
|
|
497
|
+
request: import_zod10.z.object({
|
|
498
|
+
id: import_zod10.z.string(),
|
|
499
|
+
key: import_zod10.z.string(),
|
|
496
500
|
error: JsonSchema.default({}),
|
|
497
|
-
meta:
|
|
498
|
-
environment:
|
|
499
|
-
workflowId:
|
|
500
|
-
organizationId:
|
|
501
|
-
apiKey:
|
|
502
|
-
runId:
|
|
501
|
+
meta: import_zod10.z.object({
|
|
502
|
+
environment: import_zod10.z.string(),
|
|
503
|
+
workflowId: import_zod10.z.string(),
|
|
504
|
+
organizationId: import_zod10.z.string(),
|
|
505
|
+
apiKey: import_zod10.z.string(),
|
|
506
|
+
runId: import_zod10.z.string()
|
|
503
507
|
})
|
|
504
508
|
}),
|
|
505
|
-
response:
|
|
509
|
+
response: import_zod10.z.boolean()
|
|
506
510
|
},
|
|
507
511
|
RESOLVE_RUN_ONCE: {
|
|
508
|
-
request:
|
|
509
|
-
id:
|
|
510
|
-
key:
|
|
512
|
+
request: import_zod10.z.object({
|
|
513
|
+
id: import_zod10.z.string(),
|
|
514
|
+
key: import_zod10.z.string(),
|
|
511
515
|
output: ResolveRunOnceOuputSchema,
|
|
512
|
-
meta:
|
|
513
|
-
environment:
|
|
514
|
-
workflowId:
|
|
515
|
-
organizationId:
|
|
516
|
-
apiKey:
|
|
517
|
-
runId:
|
|
516
|
+
meta: import_zod10.z.object({
|
|
517
|
+
environment: import_zod10.z.string(),
|
|
518
|
+
workflowId: import_zod10.z.string(),
|
|
519
|
+
organizationId: import_zod10.z.string(),
|
|
520
|
+
apiKey: import_zod10.z.string(),
|
|
521
|
+
runId: import_zod10.z.string()
|
|
518
522
|
})
|
|
519
523
|
}),
|
|
520
|
-
response:
|
|
524
|
+
response: import_zod10.z.boolean()
|
|
521
525
|
}
|
|
522
526
|
};
|
|
523
527
|
|
|
524
528
|
// ../internal-bridge/src/schemas/server.ts
|
|
525
|
-
var
|
|
529
|
+
var import_zod11 = require("zod");
|
|
526
530
|
var ServerRPCSchema = {
|
|
527
531
|
INITIALIZE_DELAY: {
|
|
528
|
-
request:
|
|
529
|
-
runId:
|
|
530
|
-
key:
|
|
532
|
+
request: import_zod11.z.object({
|
|
533
|
+
runId: import_zod11.z.string(),
|
|
534
|
+
key: import_zod11.z.string(),
|
|
531
535
|
wait: WaitSchema,
|
|
532
|
-
timestamp:
|
|
536
|
+
timestamp: import_zod11.z.string()
|
|
533
537
|
}),
|
|
534
|
-
response:
|
|
538
|
+
response: import_zod11.z.boolean()
|
|
535
539
|
},
|
|
536
540
|
SEND_REQUEST: {
|
|
537
|
-
request:
|
|
538
|
-
runId:
|
|
539
|
-
key:
|
|
540
|
-
request:
|
|
541
|
-
service:
|
|
542
|
-
endpoint:
|
|
543
|
-
params:
|
|
544
|
-
version:
|
|
541
|
+
request: import_zod11.z.object({
|
|
542
|
+
runId: import_zod11.z.string(),
|
|
543
|
+
key: import_zod11.z.string(),
|
|
544
|
+
request: import_zod11.z.object({
|
|
545
|
+
service: import_zod11.z.string(),
|
|
546
|
+
endpoint: import_zod11.z.string(),
|
|
547
|
+
params: import_zod11.z.any(),
|
|
548
|
+
version: import_zod11.z.string().optional()
|
|
545
549
|
}),
|
|
546
|
-
timestamp:
|
|
550
|
+
timestamp: import_zod11.z.string()
|
|
547
551
|
}),
|
|
548
|
-
response:
|
|
552
|
+
response: import_zod11.z.boolean()
|
|
549
553
|
},
|
|
550
554
|
SEND_FETCH: {
|
|
551
|
-
request:
|
|
552
|
-
runId:
|
|
553
|
-
key:
|
|
555
|
+
request: import_zod11.z.object({
|
|
556
|
+
runId: import_zod11.z.string(),
|
|
557
|
+
key: import_zod11.z.string(),
|
|
554
558
|
fetch: FetchRequestSchema,
|
|
555
|
-
timestamp:
|
|
559
|
+
timestamp: import_zod11.z.string()
|
|
556
560
|
}),
|
|
557
|
-
response:
|
|
561
|
+
response: import_zod11.z.boolean()
|
|
558
562
|
},
|
|
559
563
|
SEND_LOG: {
|
|
560
|
-
request:
|
|
561
|
-
runId:
|
|
562
|
-
key:
|
|
563
|
-
log:
|
|
564
|
-
message:
|
|
565
|
-
level:
|
|
564
|
+
request: import_zod11.z.object({
|
|
565
|
+
runId: import_zod11.z.string(),
|
|
566
|
+
key: import_zod11.z.string(),
|
|
567
|
+
log: import_zod11.z.object({
|
|
568
|
+
message: import_zod11.z.string(),
|
|
569
|
+
level: import_zod11.z.enum([
|
|
566
570
|
"DEBUG",
|
|
567
571
|
"INFO",
|
|
568
572
|
"WARN",
|
|
569
573
|
"ERROR"
|
|
570
574
|
]),
|
|
571
|
-
properties:
|
|
575
|
+
properties: import_zod11.z.string().optional()
|
|
572
576
|
}),
|
|
573
|
-
timestamp:
|
|
577
|
+
timestamp: import_zod11.z.string()
|
|
574
578
|
}),
|
|
575
|
-
response:
|
|
579
|
+
response: import_zod11.z.boolean()
|
|
576
580
|
},
|
|
577
581
|
SEND_EVENT: {
|
|
578
|
-
request:
|
|
579
|
-
runId:
|
|
580
|
-
key:
|
|
582
|
+
request: import_zod11.z.object({
|
|
583
|
+
runId: import_zod11.z.string(),
|
|
584
|
+
key: import_zod11.z.string(),
|
|
581
585
|
event: CustomEventSchema,
|
|
582
|
-
timestamp:
|
|
586
|
+
timestamp: import_zod11.z.string()
|
|
583
587
|
}),
|
|
584
|
-
response:
|
|
588
|
+
response: import_zod11.z.boolean()
|
|
585
589
|
},
|
|
586
590
|
INITIALIZE_HOST: {
|
|
587
|
-
request:
|
|
588
|
-
apiKey:
|
|
589
|
-
workflowId:
|
|
590
|
-
workflowName:
|
|
591
|
+
request: import_zod11.z.object({
|
|
592
|
+
apiKey: import_zod11.z.string(),
|
|
593
|
+
workflowId: import_zod11.z.string(),
|
|
594
|
+
workflowName: import_zod11.z.string(),
|
|
595
|
+
trigger: TriggerMetadataSchema,
|
|
596
|
+
packageVersion: import_zod11.z.string(),
|
|
597
|
+
packageName: import_zod11.z.string(),
|
|
598
|
+
triggerTTL: import_zod11.z.number().optional()
|
|
599
|
+
}),
|
|
600
|
+
response: import_zod11.z.discriminatedUnion("type", [
|
|
601
|
+
import_zod11.z.object({
|
|
602
|
+
type: import_zod11.z.literal("success")
|
|
603
|
+
}),
|
|
604
|
+
import_zod11.z.object({
|
|
605
|
+
type: import_zod11.z.literal("error"),
|
|
606
|
+
message: import_zod11.z.string()
|
|
607
|
+
})
|
|
608
|
+
]).nullable()
|
|
609
|
+
},
|
|
610
|
+
INITIALIZE_HOST_V2: {
|
|
611
|
+
request: import_zod11.z.object({
|
|
612
|
+
apiKey: import_zod11.z.string(),
|
|
613
|
+
workflowId: import_zod11.z.string(),
|
|
614
|
+
workflowName: import_zod11.z.string(),
|
|
591
615
|
trigger: TriggerMetadataSchema,
|
|
592
|
-
packageVersion:
|
|
593
|
-
packageName:
|
|
594
|
-
triggerTTL:
|
|
616
|
+
packageVersion: import_zod11.z.string(),
|
|
617
|
+
packageName: import_zod11.z.string(),
|
|
618
|
+
triggerTTL: import_zod11.z.number().optional()
|
|
595
619
|
}),
|
|
596
|
-
response:
|
|
597
|
-
|
|
598
|
-
type:
|
|
620
|
+
response: import_zod11.z.discriminatedUnion("type", [
|
|
621
|
+
import_zod11.z.object({
|
|
622
|
+
type: import_zod11.z.literal("success"),
|
|
623
|
+
data: import_zod11.z.object({
|
|
624
|
+
workflow: import_zod11.z.object({
|
|
625
|
+
id: import_zod11.z.string(),
|
|
626
|
+
slug: import_zod11.z.string()
|
|
627
|
+
}),
|
|
628
|
+
environment: import_zod11.z.object({
|
|
629
|
+
id: import_zod11.z.string(),
|
|
630
|
+
slug: import_zod11.z.string()
|
|
631
|
+
}),
|
|
632
|
+
organization: import_zod11.z.object({
|
|
633
|
+
id: import_zod11.z.string(),
|
|
634
|
+
slug: import_zod11.z.string()
|
|
635
|
+
}),
|
|
636
|
+
isNew: import_zod11.z.boolean(),
|
|
637
|
+
url: import_zod11.z.string()
|
|
638
|
+
})
|
|
599
639
|
}),
|
|
600
|
-
|
|
601
|
-
type:
|
|
602
|
-
message:
|
|
640
|
+
import_zod11.z.object({
|
|
641
|
+
type: import_zod11.z.literal("error"),
|
|
642
|
+
message: import_zod11.z.string()
|
|
603
643
|
})
|
|
604
644
|
]).nullable()
|
|
605
645
|
},
|
|
606
646
|
START_WORKFLOW_RUN: {
|
|
607
|
-
request:
|
|
608
|
-
runId:
|
|
609
|
-
timestamp:
|
|
647
|
+
request: import_zod11.z.object({
|
|
648
|
+
runId: import_zod11.z.string(),
|
|
649
|
+
timestamp: import_zod11.z.string()
|
|
610
650
|
}),
|
|
611
|
-
response:
|
|
651
|
+
response: import_zod11.z.boolean()
|
|
612
652
|
},
|
|
613
653
|
COMPLETE_WORKFLOW_RUN: {
|
|
614
|
-
request:
|
|
615
|
-
runId:
|
|
616
|
-
output:
|
|
617
|
-
timestamp:
|
|
654
|
+
request: import_zod11.z.object({
|
|
655
|
+
runId: import_zod11.z.string(),
|
|
656
|
+
output: import_zod11.z.string().optional(),
|
|
657
|
+
timestamp: import_zod11.z.string()
|
|
618
658
|
}),
|
|
619
|
-
response:
|
|
659
|
+
response: import_zod11.z.boolean()
|
|
620
660
|
},
|
|
621
661
|
SEND_WORKFLOW_ERROR: {
|
|
622
|
-
request:
|
|
623
|
-
runId:
|
|
624
|
-
error:
|
|
625
|
-
name:
|
|
626
|
-
message:
|
|
627
|
-
stackTrace:
|
|
662
|
+
request: import_zod11.z.object({
|
|
663
|
+
runId: import_zod11.z.string(),
|
|
664
|
+
error: import_zod11.z.object({
|
|
665
|
+
name: import_zod11.z.string(),
|
|
666
|
+
message: import_zod11.z.string(),
|
|
667
|
+
stackTrace: import_zod11.z.string().optional()
|
|
628
668
|
}),
|
|
629
|
-
timestamp:
|
|
669
|
+
timestamp: import_zod11.z.string()
|
|
630
670
|
}),
|
|
631
|
-
response:
|
|
671
|
+
response: import_zod11.z.boolean()
|
|
632
672
|
},
|
|
633
673
|
INITIALIZE_RUN_ONCE: {
|
|
634
|
-
request:
|
|
635
|
-
runId:
|
|
636
|
-
key:
|
|
637
|
-
timestamp:
|
|
674
|
+
request: import_zod11.z.object({
|
|
675
|
+
runId: import_zod11.z.string(),
|
|
676
|
+
key: import_zod11.z.string(),
|
|
677
|
+
timestamp: import_zod11.z.string(),
|
|
638
678
|
runOnce: InitializeRunOnceSchema
|
|
639
679
|
}),
|
|
640
|
-
response:
|
|
680
|
+
response: import_zod11.z.boolean()
|
|
641
681
|
},
|
|
642
682
|
COMPLETE_RUN_ONCE: {
|
|
643
|
-
request:
|
|
644
|
-
runId:
|
|
645
|
-
key:
|
|
646
|
-
timestamp:
|
|
683
|
+
request: import_zod11.z.object({
|
|
684
|
+
runId: import_zod11.z.string(),
|
|
685
|
+
key: import_zod11.z.string(),
|
|
686
|
+
timestamp: import_zod11.z.string(),
|
|
647
687
|
runOnce: CompleteRunOnceSchema
|
|
648
688
|
}),
|
|
649
|
-
response:
|
|
689
|
+
response: import_zod11.z.boolean()
|
|
650
690
|
}
|
|
651
691
|
};
|
|
652
692
|
|
|
653
693
|
// ../internal-bridge/src/schemas/common.ts
|
|
654
|
-
var
|
|
655
|
-
var MESSAGE_META =
|
|
656
|
-
data:
|
|
657
|
-
id:
|
|
658
|
-
type:
|
|
659
|
-
|
|
660
|
-
|
|
694
|
+
var import_zod12 = require("zod");
|
|
695
|
+
var MESSAGE_META = import_zod12.z.object({
|
|
696
|
+
data: import_zod12.z.any(),
|
|
697
|
+
id: import_zod12.z.string(),
|
|
698
|
+
type: import_zod12.z.union([
|
|
699
|
+
import_zod12.z.literal("ACK"),
|
|
700
|
+
import_zod12.z.literal("MESSAGE")
|
|
661
701
|
])
|
|
662
702
|
});
|
|
663
|
-
var TriggerEnvironmentSchema =
|
|
703
|
+
var TriggerEnvironmentSchema = import_zod12.z.enum([
|
|
664
704
|
"live",
|
|
665
705
|
"development"
|
|
666
706
|
]);
|
|
667
707
|
|
|
668
708
|
// ../internal-bridge/src/zodRPC.ts
|
|
669
|
-
var
|
|
709
|
+
var import_zod13 = require("zod");
|
|
670
710
|
var import_node_crypto = require("crypto");
|
|
671
711
|
|
|
672
712
|
// ../internal-bridge/src/logger.ts
|
|
@@ -704,6 +744,11 @@ var Logger = class {
|
|
|
704
744
|
...__privateMethod(this, _formatTags, formatTags_fn).call(this)
|
|
705
745
|
]);
|
|
706
746
|
}
|
|
747
|
+
logClean(...args) {
|
|
748
|
+
if (__privateGet(this, _level) < 1)
|
|
749
|
+
return;
|
|
750
|
+
console.log(`${__privateMethod(this, _formatName, formatName_fn).call(this)} `, ...args);
|
|
751
|
+
}
|
|
707
752
|
error(...args) {
|
|
708
753
|
if (__privateGet(this, _level) < 2)
|
|
709
754
|
return;
|
|
@@ -767,11 +812,11 @@ function formattedDateTime() {
|
|
|
767
812
|
__name(formattedDateTime, "formattedDateTime");
|
|
768
813
|
|
|
769
814
|
// ../internal-bridge/src/zodRPC.ts
|
|
770
|
-
var RPCMessageSchema =
|
|
771
|
-
id:
|
|
772
|
-
methodName:
|
|
773
|
-
data:
|
|
774
|
-
kind:
|
|
815
|
+
var RPCMessageSchema = import_zod13.z.object({
|
|
816
|
+
id: import_zod13.z.string(),
|
|
817
|
+
methodName: import_zod13.z.string(),
|
|
818
|
+
data: import_zod13.z.any(),
|
|
819
|
+
kind: import_zod13.z.enum([
|
|
775
820
|
"CALL",
|
|
776
821
|
"RESPONSE"
|
|
777
822
|
])
|
|
@@ -851,7 +896,7 @@ onCall_fn = /* @__PURE__ */ __name(async function(message) {
|
|
|
851
896
|
try {
|
|
852
897
|
await __privateMethod(this, _handleCall, handleCall_fn).call(this, message);
|
|
853
898
|
} catch (callError) {
|
|
854
|
-
if (callError instanceof
|
|
899
|
+
if (callError instanceof import_zod13.ZodError) {
|
|
855
900
|
__privateGet(this, _logger).error(`[ZodRPC] Received invalid call:
|
|
856
901
|
${JSON.stringify(message)}: `, callError.errors);
|
|
857
902
|
} else {
|
|
@@ -865,7 +910,7 @@ onResponse_fn = /* @__PURE__ */ __name(async function(message1) {
|
|
|
865
910
|
try {
|
|
866
911
|
await __privateMethod(this, _handleResponse, handleResponse_fn).call(this, message1);
|
|
867
912
|
} catch (callError) {
|
|
868
|
-
if (callError instanceof
|
|
913
|
+
if (callError instanceof import_zod13.ZodError) {
|
|
869
914
|
__privateGet(this, _logger).error(`[ZodRPC] Received invalid response
|
|
870
915
|
|
|
871
916
|
${JSON.stringify(message1)}: `, callError.flatten());
|
|
@@ -941,11 +986,11 @@ __name(packageResponse, "packageResponse");
|
|
|
941
986
|
// src/client.ts
|
|
942
987
|
var import_uuid2 = require("uuid");
|
|
943
988
|
var import_ws = require("ws");
|
|
944
|
-
var
|
|
989
|
+
var import_zod14 = require("zod");
|
|
945
990
|
|
|
946
991
|
// package.json
|
|
947
992
|
var name = "@trigger.dev/sdk";
|
|
948
|
-
var version = "0.2.
|
|
993
|
+
var version = "0.2.16-next.1";
|
|
949
994
|
|
|
950
995
|
// src/connection.ts
|
|
951
996
|
var import_uuid = require("uuid");
|
|
@@ -1198,12 +1243,13 @@ __name(ContextLogger, "ContextLogger");
|
|
|
1198
1243
|
|
|
1199
1244
|
// src/client.ts
|
|
1200
1245
|
var import_zod_error = require("zod-error");
|
|
1246
|
+
var import_terminal_link = __toESM(require("terminal-link"));
|
|
1201
1247
|
var zodErrorMessageOptions = {
|
|
1202
1248
|
delimiter: {
|
|
1203
1249
|
error: " \u{1F525} "
|
|
1204
1250
|
}
|
|
1205
1251
|
};
|
|
1206
|
-
var _trigger, _options, _connection2, _serverRPC, _apiKey, _endpoint, _isConnected, _retryIntervalMs, _logger3, _closedByUser, _responseCompleteCallbacks, _waitForCallbacks, _fetchCallbacks, _runOnceCallbacks, _initializeConnection, initializeConnection_fn, _initializeRPC, initializeRPC_fn, _initializeHost, initializeHost_fn, _send, send_fn;
|
|
1252
|
+
var _trigger, _options, _connection2, _serverRPC, _apiKey, _endpoint, _isConnected, _retryIntervalMs, _logger3, _closedByUser, _registerResponse, _responseCompleteCallbacks, _waitForCallbacks, _fetchCallbacks, _runOnceCallbacks, _initializeConnection, initializeConnection_fn, _initializeRPC, initializeRPC_fn, _initializeHost, initializeHost_fn, _send, send_fn;
|
|
1207
1253
|
var TriggerClient = class {
|
|
1208
1254
|
constructor(trigger, options) {
|
|
1209
1255
|
__privateAdd(this, _initializeConnection);
|
|
@@ -1220,6 +1266,7 @@ var TriggerClient = class {
|
|
|
1220
1266
|
__privateAdd(this, _retryIntervalMs, 3e3);
|
|
1221
1267
|
__privateAdd(this, _logger3, void 0);
|
|
1222
1268
|
__privateAdd(this, _closedByUser, false);
|
|
1269
|
+
__privateAdd(this, _registerResponse, void 0);
|
|
1223
1270
|
__privateAdd(this, _responseCompleteCallbacks, /* @__PURE__ */ new Map());
|
|
1224
1271
|
__privateAdd(this, _waitForCallbacks, /* @__PURE__ */ new Map());
|
|
1225
1272
|
__privateAdd(this, _fetchCallbacks, /* @__PURE__ */ new Map());
|
|
@@ -1242,7 +1289,15 @@ var TriggerClient = class {
|
|
|
1242
1289
|
await __privateMethod(this, _initializeConnection, initializeConnection_fn).call(this, instanceId);
|
|
1243
1290
|
__privateMethod(this, _initializeRPC, initializeRPC_fn).call(this);
|
|
1244
1291
|
await __privateMethod(this, _initializeHost, initializeHost_fn).call(this);
|
|
1245
|
-
__privateGet(this,
|
|
1292
|
+
if (__privateGet(this, _registerResponse)?.isNew) {
|
|
1293
|
+
__privateGet(this, _logger3).logClean(`\u{1F389} Successfully registered "${__privateGet(this, _trigger).name}" to trigger.dev \u{1F449} ${(0, import_terminal_link.default)("View on dashboard", __privateGet(this, _registerResponse).url, {
|
|
1294
|
+
fallback: (text, url) => `${text}: (${url})`
|
|
1295
|
+
})}. Listening for events...`);
|
|
1296
|
+
} else {
|
|
1297
|
+
__privateGet(this, _logger3).log(`\u2728 Connected and listening for events \u{1F449} ${(0, import_terminal_link.default)("View on dashboard", __privateGet(this, _registerResponse).url, {
|
|
1298
|
+
fallback: (text, url) => `${text}: (${url})`
|
|
1299
|
+
})}`);
|
|
1300
|
+
}
|
|
1246
1301
|
} catch (error) {
|
|
1247
1302
|
__privateGet(this, _logger3).log(`\u{1F6A9} Could not connect to trigger.dev`);
|
|
1248
1303
|
this.close();
|
|
@@ -1268,6 +1323,7 @@ _isConnected = new WeakMap();
|
|
|
1268
1323
|
_retryIntervalMs = new WeakMap();
|
|
1269
1324
|
_logger3 = new WeakMap();
|
|
1270
1325
|
_closedByUser = new WeakMap();
|
|
1326
|
+
_registerResponse = new WeakMap();
|
|
1271
1327
|
_responseCompleteCallbacks = new WeakMap();
|
|
1272
1328
|
_waitForCallbacks = new WeakMap();
|
|
1273
1329
|
_fetchCallbacks = new WeakMap();
|
|
@@ -1434,7 +1490,7 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
|
|
|
1434
1490
|
status: response.status,
|
|
1435
1491
|
ok: response.ok,
|
|
1436
1492
|
headers: response.headers,
|
|
1437
|
-
body: response.body ? (options.responseSchema ??
|
|
1493
|
+
body: response.body ? (options.responseSchema ?? import_zod14.z.any()).parse(response.body) : void 0
|
|
1438
1494
|
};
|
|
1439
1495
|
}, "fetchFunction");
|
|
1440
1496
|
const ctx = {
|
|
@@ -1597,12 +1653,19 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
|
|
|
1597
1653
|
id: data.id
|
|
1598
1654
|
}, () => {
|
|
1599
1655
|
__privateGet(this, _logger3).debug("Running trigger...");
|
|
1656
|
+
if (typeof data.meta.attempt === "number" && data.meta.attempt === 0) {
|
|
1657
|
+
__privateGet(this, _logger3).log(`Run ${data.id} started \u{1F449} ${(0, import_terminal_link.default)("View on dashboard", `${__privateGet(this, _registerResponse).url}/runs/${data.id}`, {
|
|
1658
|
+
fallback: (text, url) => `${text}: (${url})`
|
|
1659
|
+
})}`);
|
|
1660
|
+
}
|
|
1600
1661
|
serverRPC.send("START_WORKFLOW_RUN", {
|
|
1601
1662
|
runId: data.id,
|
|
1602
1663
|
timestamp: String(highPrecisionTimestamp())
|
|
1603
1664
|
}).then(() => {
|
|
1604
1665
|
return __privateGet(this, _trigger).options.run(eventData, ctx).then((output) => {
|
|
1605
|
-
__privateGet(this, _logger3).log(`Run ${data.id} complete \u{
|
|
1666
|
+
__privateGet(this, _logger3).log(`Run ${data.id} complete \u{1F449} ${(0, import_terminal_link.default)("View on dashboard", `${__privateGet(this, _registerResponse).url}/runs/${data.id}`, {
|
|
1667
|
+
fallback: (text, url) => `${text}: (${url})`
|
|
1668
|
+
})}`);
|
|
1606
1669
|
return serverRPC.send("COMPLETE_WORKFLOW_RUN", {
|
|
1607
1670
|
runId: data.id,
|
|
1608
1671
|
output: JSON.stringify(output),
|
|
@@ -1617,9 +1680,9 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
|
|
|
1617
1680
|
stackTrace: error2.stack
|
|
1618
1681
|
};
|
|
1619
1682
|
}
|
|
1620
|
-
const parsedError =
|
|
1621
|
-
name:
|
|
1622
|
-
message:
|
|
1683
|
+
const parsedError = import_zod14.z.object({
|
|
1684
|
+
name: import_zod14.z.string(),
|
|
1685
|
+
message: import_zod14.z.string()
|
|
1623
1686
|
}).passthrough().safeParse(error2);
|
|
1624
1687
|
if (parsedError.success) {
|
|
1625
1688
|
return parsedError.data;
|
|
@@ -1659,7 +1722,7 @@ initializeHost_fn = /* @__PURE__ */ __name(async function() {
|
|
|
1659
1722
|
if (!__privateGet(this, _serverRPC)) {
|
|
1660
1723
|
throw new Error("Cannot initialize host without an RPC connection");
|
|
1661
1724
|
}
|
|
1662
|
-
const response = await __privateMethod(this, _send, send_fn).call(this, "
|
|
1725
|
+
const response = await __privateMethod(this, _send, send_fn).call(this, "INITIALIZE_HOST_V2", {
|
|
1663
1726
|
apiKey: __privateGet(this, _apiKey),
|
|
1664
1727
|
workflowId: __privateGet(this, _trigger).id,
|
|
1665
1728
|
workflowName: __privateGet(this, _trigger).name,
|
|
@@ -1668,9 +1731,13 @@ initializeHost_fn = /* @__PURE__ */ __name(async function() {
|
|
|
1668
1731
|
packageName: name,
|
|
1669
1732
|
triggerTTL: __privateGet(this, _options).triggerTTL
|
|
1670
1733
|
});
|
|
1734
|
+
if (!response) {
|
|
1735
|
+
throw new Error("Could not initialize workflow with server");
|
|
1736
|
+
}
|
|
1671
1737
|
if (response?.type === "error") {
|
|
1672
1738
|
throw new Error(response.message);
|
|
1673
1739
|
}
|
|
1740
|
+
__privateSet(this, _registerResponse, response.data);
|
|
1674
1741
|
__privateGet(this, _logger3).debug("Successfully initialized workflow with server");
|
|
1675
1742
|
}, "#initializeHost");
|
|
1676
1743
|
_send = new WeakSet();
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../../common-schemas/src/json.ts","../../common-schemas/src/error.ts","../../common-schemas/src/logs.ts","../../common-schemas/src/waits.ts","../../common-schemas/src/events.ts","../../common-schemas/src/triggers.ts","../../common-schemas/src/fetch.ts","../../common-schemas/src/runOnce.ts","../src/events.ts","../../internal-bridge/src/schemas/host.ts","../../internal-bridge/src/schemas/server.ts","../../internal-bridge/src/schemas/common.ts","../../internal-bridge/src/zodRPC.ts","../../internal-bridge/src/logger.ts","../src/client.ts","../src/connection.ts","../src/localStorage.ts","../src/logger.ts","../src/trigger/index.ts","../src/customEvents.ts","../src/fetch.ts"],"sourcesContent":["export * from \"./events\";\nexport * from \"./trigger\";\nexport * from \"./customEvents\";\nexport * from \"./fetch\";\n\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { SecureString } from \"./types\";\n\nexport function getTriggerRun() {\n return triggerRunLocalStorage.getStore();\n}\n\n/*\n * This function is used to create a secure string that can be used in the headers of a fetch request.\n * It is used to prevent the string from being logged in trigger.dev.\n * You can use it like this:\n *\n * await ctx.fetch(\"https://example.com\", {\n * headers: {\n * Authorization: secureString`Bearer ${ACCESS_TOKEN}`,\n * },\n * })\n */\nexport function secureString(\n strings: TemplateStringsArray,\n ...interpolations: string[]\n): SecureString {\n return {\n __secureString: true,\n strings: strings.raw as string[],\n interpolations,\n };\n}\n","import { z } from \"zod\";\n\nconst LiteralSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);\ntype Literal = z.infer<typeof LiteralSchema>;\n\ntype Json = Literal | { [key: string]: Json } | Json[];\n\nexport const JsonSchema: z.ZodType<Json> = z.lazy(() =>\n z.union([LiteralSchema, z.array(JsonSchema), z.record(JsonSchema)])\n);\n\nconst SerializableSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.date(),\n]);\ntype Serializable = z.infer<typeof SerializableSchema>;\n\ntype SerializableJson =\n | Serializable\n | { [key: string]: SerializableJson }\n | SerializableJson[];\n\nexport const SerializableJsonSchema: z.ZodType<SerializableJson> = z.lazy(() =>\n z.union([\n SerializableSchema,\n z.array(SerializableJsonSchema),\n z.record(SerializableJsonSchema),\n ])\n);\n","import { z } from \"zod\";\n\nexport const ErrorSchema = z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n});\n","import { z } from \"zod\";\nimport { JsonSchema } from \"./json\";\n\nexport const LogMessageSchema = z.object({\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: z.string(),\n properties: JsonSchema.default({}),\n});\n","import { z } from \"zod\";\n\nexport const DelaySchema = z.object({\n type: z.literal(\"DELAY\"),\n seconds: z.number().optional(),\n minutes: z.number().optional(),\n hours: z.number().optional(),\n days: z.number().optional(),\n});\n\nexport type Delay = z.infer<typeof DelaySchema>;\n\nexport const ScheduledForSchema = z.object({\n type: z.literal(\"SCHEDULE_FOR\"),\n scheduledFor: z.string().datetime(),\n});\n\nexport type Scheduled = z.infer<typeof ScheduledForSchema>;\n\nexport const WaitSchema = z.discriminatedUnion(\"type\", [\n DelaySchema,\n ScheduledForSchema,\n]);\n","import { z } from \"zod\";\nimport { JsonSchema, SerializableJsonSchema } from \"./json\";\n\nexport const CustomEventSchema = z.object({\n name: z.string(),\n payload: JsonSchema,\n context: JsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.string().datetime() }),\n ])\n .optional(),\n});\n\nexport const SerializableCustomEventSchema = z.object({\n name: z.string(),\n payload: SerializableJsonSchema,\n context: SerializableJsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.date() }),\n ])\n .optional(),\n});\n\nconst EventMatcherSchema = z.union([\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]);\ntype EventMatcher = z.infer<typeof EventMatcherSchema>;\n\nexport type EventFilter = { [key: string]: EventMatcher | EventFilter };\n\nexport const EventFilterSchema: z.ZodType<EventFilter> = z.lazy(() =>\n z.record(z.union([EventMatcherSchema, EventFilterSchema]))\n);\n\nexport const ScheduledEventPayloadSchema = z.object({\n lastRunAt: z.coerce.date().optional(),\n scheduledTime: z.coerce.date(),\n});\n\nexport type ScheduledEventPayload = z.infer<typeof ScheduledEventPayloadSchema>;\n\nexport const ScheduleSourceRateSchema = z.object({\n rateOf: z.union([\n z.object({\n minutes: z.number().min(1).max(1440).int(),\n }),\n z.object({\n hours: z.number().min(1).max(720).int(),\n }),\n z.object({\n days: z.number().min(1).max(365).int(),\n }),\n ]),\n});\n\nexport type ScheduleSourceRate = z.infer<typeof ScheduleSourceRateSchema>;\n\nexport const ScheduleSourceCronSchema = z.object({\n cron: z.string(),\n});\n\nexport type ScheduleSourceCron = z.infer<typeof ScheduleSourceCronSchema>;\n\nexport const ScheduleSourceSchema = z.union([\n ScheduleSourceRateSchema,\n ScheduleSourceCronSchema,\n]);\n\nexport type ScheduleSource = z.infer<typeof ScheduleSourceSchema>;\n\nexport const ManualWebhookSourceSchema = z.object({\n verifyPayload: z.object({\n enabled: z.boolean(),\n header: z.string().optional(),\n }),\n event: z.string(),\n});\n\nexport const SlackBlockInteractionSourceSchema = z.object({\n type: z.literal(\"block_action\"),\n blockId: z.string(),\n actionIds: z.array(z.string()),\n});\n\nexport const SlackViewSubmissionInteractionSourceSchema = z.object({\n type: z.literal(\"view_submission\"),\n callbackIds: z.array(z.string()),\n});\n\nexport const SlackInteractionSourceSchema = z.discriminatedUnion(\"type\", [\n SlackBlockInteractionSourceSchema,\n SlackViewSubmissionInteractionSourceSchema,\n]);\n\nexport type SlackInteractionSource = z.infer<\n typeof SlackInteractionSourceSchema\n>;\n","import { z } from \"zod\";\nimport {\n EventFilterSchema,\n ScheduleSourceSchema,\n SlackInteractionSourceSchema,\n} from \"./events\";\nimport { JsonSchema } from \"./json\";\n\nexport const CustomEventTriggerSchema = z.object({\n type: z.literal(\"CUSTOM_EVENT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n schema: JsonSchema.optional(),\n});\nexport type CustomEventTrigger = z.infer<typeof CustomEventTriggerSchema>;\n\nexport const WebhookEventTriggerSchema = z.object({\n type: z.literal(\"WEBHOOK\"),\n service: z.string(),\n name: z.string(),\n filter: EventFilterSchema,\n source: JsonSchema.optional(),\n manualRegistration: z.boolean().default(false),\n schema: JsonSchema.optional(),\n});\nexport type WebhookEventTrigger = z.infer<typeof WebhookEventTriggerSchema>;\n\nexport const HttpEventTriggerSchema = z.object({\n type: z.literal(\"HTTP_ENDPOINT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n});\nexport type HttpEventTrigger = z.infer<typeof HttpEventTriggerSchema>;\n\nexport const ScheduledEventTriggerSchema = z.object({\n type: z.literal(\"SCHEDULE\"),\n service: z.literal(\"scheduler\"),\n name: z.string(),\n source: ScheduleSourceSchema,\n});\nexport type ScheduledEventTrigger = z.infer<typeof ScheduledEventTriggerSchema>;\n\nexport const SlackInteractionTriggerSchema = z.object({\n type: z.literal(\"SLACK_INTERACTION\"),\n service: z.literal(\"slack\"),\n name: z.string(),\n filter: EventFilterSchema,\n source: SlackInteractionSourceSchema,\n});\nexport type SlackInteractionEventTrigger = z.infer<\n typeof SlackInteractionTriggerSchema\n>;\n\nexport const TriggerMetadataSchema = z.discriminatedUnion(\"type\", [\n CustomEventTriggerSchema,\n WebhookEventTriggerSchema,\n HttpEventTriggerSchema,\n ScheduledEventTriggerSchema,\n SlackInteractionTriggerSchema,\n]);\n\nexport type TriggerMetadata = z.infer<typeof TriggerMetadataSchema>;\n","import { z } from \"zod\";\n\nexport const SecureStringSchema = z.object({\n __secureString: z.literal(true),\n strings: z.array(z.string()),\n interpolations: z.array(z.string()),\n});\n\nexport type SecureString = z.infer<typeof SecureStringSchema>;\n\nexport const RetrySchema = z.object({\n enabled: z.boolean().default(true),\n factor: z.number().default(1.8),\n maxTimeout: z.number().default(60000),\n minTimeout: z.number().default(1000),\n maxAttempts: z.number().default(10),\n statusCodes: z.array(z.number()).default([408, 429, 500, 502, 503, 504]),\n});\n\nexport const FetchRequestSchema = z.object({\n url: z.string(),\n headers: z.record(z.union([z.string(), SecureStringSchema])).optional(),\n method: z.enum([\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\",\n \"HEAD\",\n \"OPTIONS\",\n \"TRACE\",\n ]),\n body: z.any(),\n retry: RetrySchema.optional(),\n});\n\nexport const FetchOutputSchema = z.object({\n status: z.number(),\n ok: z.boolean(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n\nexport type FetchRequest = z.infer<typeof FetchRequestSchema>;\nexport type FetchOutput = z.infer<typeof FetchOutputSchema>;\n\nexport const FetchResponseSchema = z.object({\n status: z.number(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n","import { z } from \"zod\";\nimport { SerializableJsonSchema } from \"./json\";\n\nexport const InitializeRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n});\n\nexport const CompleteRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n idempotencyKey: z.string(),\n output: z.string().optional(),\n});\n\nexport const ResolveRunOnceOuputSchema = z.object({\n idempotencyKey: z.string(),\n hasRun: z.boolean(),\n output: SerializableJsonSchema.optional(),\n});\n","import {\n EventFilterSchema,\n TriggerMetadataSchema,\n ScheduleSourceSchema,\n ScheduledEventPayloadSchema,\n} from \"@trigger.dev/common-schemas\";\nimport type {\n CustomEventTrigger,\n EventFilter,\n WebhookEventTrigger,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\nimport slugify from \"slug\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\n\nexport type EventRule = z.infer<typeof EventFilterSchema>;\n\nexport type TriggerEvent<TSchema extends z.ZodTypeAny> = {\n metadata: z.infer<typeof TriggerMetadataSchema>;\n schema: TSchema;\n};\n\nexport type TriggerCustomEventOptions<TSchema extends z.ZodTypeAny> = {\n name: string;\n schema: TSchema;\n filter?: EventFilter;\n};\n\nexport function customEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerCustomEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n return {\n metadata: {\n type: \"CUSTOM_EVENT\",\n service: \"trigger\",\n name: options.name,\n filter: { event: [options.name], payload: options.filter ?? {} },\n schema: zodToJsonSchema(options.schema) as CustomEventTrigger[\"schema\"],\n },\n schema: options.schema,\n };\n}\n\nexport type TriggerScheduleOptions = z.infer<typeof ScheduleSourceSchema>;\n\nexport function scheduleEvent(\n options: TriggerScheduleOptions\n): TriggerEvent<typeof ScheduledEventPayloadSchema> {\n return {\n metadata: {\n type: \"SCHEDULE\",\n service: \"scheduler\",\n name: \"scheduled-event\",\n source: options,\n },\n schema: ScheduledEventPayloadSchema,\n };\n}\n\nexport type TriggerWebhookEventOptions<TSchema extends z.ZodTypeAny> = {\n schema: TSchema;\n service: string;\n eventName: string;\n filter?: EventFilter;\n verifyPayload?: {\n enabled: boolean;\n header: string;\n };\n};\n\nexport function webhookEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerWebhookEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n return {\n metadata: {\n type: \"WEBHOOK\",\n service: slugify(options.service),\n name: options.eventName,\n filter: {\n service: [slugify(options.service)],\n payload: options.filter ?? {},\n event: [options.eventName],\n },\n source: {\n verifyPayload: options.verifyPayload ?? { enabled: false },\n event: options.eventName,\n },\n manualRegistration: true,\n schema: zodToJsonSchema(options.schema) as WebhookEventTrigger[\"schema\"],\n },\n schema: options.schema,\n };\n}\n","import { z } from \"zod\";\nimport {\n FetchOutputSchema,\n JsonSchema,\n ResolveRunOnceOuputSchema,\n} from \"@trigger.dev/common-schemas\";\n\nexport const HostRPCSchema = {\n TRIGGER_WORKFLOW: {\n request: z.object({\n id: z.string(),\n trigger: z.object({\n input: JsonSchema.default({}),\n context: JsonSchema.default({}),\n }),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n isTest: z.boolean().default(false),\n appOrigin: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_DELAY: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: FetchOutputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_RUN_ONCE: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: ResolveRunOnceOuputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n};\n\nexport type HostRPC = typeof HostRPCSchema;\n","import {\n CompleteRunOnceSchema,\n CustomEventSchema,\n FetchRequestSchema,\n InitializeRunOnceSchema,\n RetrySchema,\n TriggerMetadataSchema,\n WaitSchema,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\n\nexport const ServerRPCSchema = {\n INITIALIZE_DELAY: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n wait: WaitSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_REQUEST: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n request: z.object({\n service: z.string(),\n endpoint: z.string(),\n params: z.any(),\n version: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_FETCH: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n fetch: FetchRequestSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_LOG: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n log: z.object({\n message: z.string(),\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n properties: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_EVENT: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n event: CustomEventSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_HOST: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n START_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n COMPLETE_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n output: z.string().optional(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_WORKFLOW_ERROR: {\n request: z.object({\n runId: z.string(),\n error: z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: InitializeRunOnceSchema,\n }),\n response: z.boolean(),\n },\n COMPLETE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: CompleteRunOnceSchema,\n }),\n response: z.boolean(),\n },\n};\n\nexport type ServerRPC = typeof ServerRPCSchema;\n","import { z } from \"zod\";\n\nexport const MESSAGE_META = z.object({\n data: z.any(),\n id: z.string(),\n type: z.union([z.literal(\"ACK\"), z.literal(\"MESSAGE\")]),\n});\n\nexport const TriggerEnvironmentSchema = z.enum([\"live\", \"development\"]);\nexport type TriggerEnvironment = z.infer<typeof TriggerEnvironmentSchema>;\n","import { z, ZodError } from \"zod\";\nimport { createHash } from \"node:crypto\";\nimport { IConnection } from \"./types\";\nimport { Logger } from \"./logger\";\n\nexport const RPCMessageSchema = z.object({\n id: z.string(),\n methodName: z.string(),\n data: z.any(),\n kind: z.enum([\"CALL\", \"RESPONSE\"]),\n});\n\nexport type RPCMessage = z.infer<typeof RPCMessageSchema>;\n\ninterface TransmitterSchema {\n [key: string]: {\n request: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n response: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n };\n}\n\nexport type ZodRPCHandlers<ReceiverSchema extends TransmitterSchema> = {\n [K in keyof ReceiverSchema]: (\n data: z.infer<ReceiverSchema[K][\"request\"]>\n ) => Promise<z.infer<ReceiverSchema[K][\"response\"]>>;\n};\n\ntype ZodRPCOptions<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> = {\n connection: IConnection;\n sender: SenderSchema;\n receiver: ReceiverSchema;\n handlers: ZodRPCHandlers<ReceiverSchema>;\n};\n\ntype onResponseCallback = (data: any) => void;\n\nexport class ZodRPC<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> {\n #connection: IConnection;\n #sender: SenderSchema;\n #receiver: ReceiverSchema;\n #handlers: ZodRPCHandlers<ReceiverSchema>;\n #pendingCalls = new Map<string, onResponseCallback>();\n #logger: Logger = new Logger(\"ZodRPC\");\n\n constructor(options: ZodRPCOptions<SenderSchema, ReceiverSchema>) {\n this.#connection = options.connection;\n this.#sender = options.sender;\n this.#receiver = options.receiver;\n this.#handlers = options.handlers;\n\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n public resetConnection(connection: IConnection) {\n this.#connection.onMessage.detach();\n this.#connection = connection;\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n async #onMessage(rawData: unknown) {\n try {\n const data = RPCMessageSchema.parse(JSON.parse(rawData as string));\n\n if (data.kind === \"CALL\") {\n await this.#onCall(data);\n }\n\n if (data.kind === \"RESPONSE\") {\n await this.#onResponse(data);\n }\n } catch (err) {\n this.#logger.error(err);\n }\n }\n\n async #onCall(message: RPCMessage) {\n try {\n await this.#handleCall(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid call:\\n${JSON.stringify(message)}: `,\n callError.errors\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling call:\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n async #onResponse(message: RPCMessage) {\n try {\n await this.#handleResponse(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid response\\n\\n${JSON.stringify(message)}: `,\n callError.flatten()\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling response\\n\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n public send<K extends keyof SenderSchema>(\n key: K,\n data: z.input<SenderSchema[K][\"request\"]>\n ) {\n this.#logger.debug(\"Sending call\", { key, data });\n\n const id = generateStableId(this.#connection.id, key as string, data);\n\n const message = packageMessage({ id, methodName: key as string, data });\n\n return new Promise<z.infer<SenderSchema[K][\"response\"]>>(\n (resolve, reject) => {\n this.#pendingCalls.set(id, (rawResponseText: string) => {\n try {\n const parsed = this.#sender[key][\"response\"].parse(rawResponseText);\n\n return resolve(parsed);\n } catch (err) {\n reject(err);\n }\n });\n\n this.#connection.send(message).catch((err) => reject(err));\n }\n );\n }\n\n async #handleCall(message: RPCMessage) {\n const receiver = this.#receiver;\n type MethodKeys = keyof typeof receiver;\n\n const methodName = message.methodName as MethodKeys;\n\n const method: ReceiverSchema[MethodKeys] | undefined =\n this.#receiver[methodName];\n\n if (!method) {\n throw new Error(`There is no method for ${message.methodName}`);\n }\n\n this.#logger.debug(\"Received call\", { message });\n\n // struggling to get real inference here\n const inputs = method.request.parse(message.data);\n\n const handler = this.#handlers[methodName];\n\n const returnValue = await handler(inputs);\n\n const preparedResponseText = packageResponse({\n id: message.id,\n methodName: methodName as string, //??\n data: returnValue,\n });\n\n try {\n await this.#connection.send(preparedResponseText);\n } catch (err) {\n this.#logger.error(\"Failed sending response\", preparedResponseText, err);\n }\n\n return;\n }\n\n async #handleResponse(message: RPCMessage) {\n const responseCallback = this.#pendingCalls.get(message.id);\n if (!responseCallback) return;\n\n responseCallback(message.data);\n\n this.#pendingCalls.delete(message.id);\n }\n}\n\n// Generates a stableId for a given request, based on:\n// - The connection id\n// - The request key\n// - The request data (serialized)\n// Returns a hash of the above\nfunction generateStableId(\n connId: string,\n reqKey: string,\n reqData: any\n): string {\n // Serialize the request data\n const serializedData = JSON.stringify(reqData);\n\n // Concatenate the connection id, request key, and serialized data\n const inputString = connId + reqKey + serializedData;\n\n // Generate a hash of the input string using the SHA-256 algorithm\n const hash = createHash(\"sha256\").update(inputString).digest(\"hex\");\n\n // Return the hash\n return hash;\n}\n\nfunction packageMessage({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const callerData: RPCMessage = {\n id,\n kind: \"CALL\",\n data,\n methodName,\n };\n\n return JSON.stringify(callerData);\n}\n\nfunction packageResponse({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const preparedResponseText: RPCMessage = {\n id: id,\n kind: \"RESPONSE\",\n methodName: methodName,\n data,\n };\n return JSON.stringify(preparedResponseText);\n}\n","// Create a logger class that uses the debug package internally\n\nconst logLevels = [\n \"disabled\",\n \"log\",\n \"error\",\n \"warn\",\n \"info\",\n \"debug\",\n] as const;\n\nexport type LogLevel = (typeof logLevels)[number];\n\nexport class Logger {\n #name: string;\n #tags: string[];\n readonly #level: number;\n\n constructor(name: string | string[], level: LogLevel = \"log\") {\n if (typeof name === \"string\") {\n this.#name = name;\n this.#tags = [];\n } else {\n const [n, ...tags] = name;\n\n this.#name = n;\n this.#tags = tags;\n }\n\n this.#level = logLevels.indexOf(\n (process.env.TRIGGER_LOG_LEVEL ?? level) as LogLevel\n );\n }\n\n log(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...[...args, ...this.#formatTags()]);\n }\n\n error(...args: any[]) {\n if (this.#level < 2) return;\n\n console.error(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n warn(...args: any[]) {\n if (this.#level < 3) return;\n\n console.warn(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n info(...args: any[]) {\n if (this.#level < 4) return;\n\n console.info(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n debug(...args: any[]) {\n if (this.#level < 5) return;\n\n console.debug(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n #formatName() {\n if (Array.isArray(this.#name)) {\n return this.#name.map((name) => `[${name}]`).join(\"\");\n }\n\n return `[${this.#name}]`;\n }\n\n #formatTags() {\n return this.#tags.map((tag) => `[${tag}]`);\n }\n}\n\nfunction formattedDateTime() {\n const date = new Date();\n\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n\n // Make sure the time is always 2 digits\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;\n const formattedMilliseconds =\n milliseconds < 10\n ? `00${milliseconds}`\n : milliseconds < 100\n ? `0${milliseconds}`\n : milliseconds;\n\n return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;\n}\n","import { FetchOutput } from \"@trigger.dev/common-schemas\";\nimport {\n HostRPCSchema,\n Logger,\n ServerRPCSchema,\n ZodRPC,\n} from \"internal-bridge\";\nimport { v4 } from \"uuid\";\nimport { WebSocket } from \"ws\";\nimport { z } from \"zod\";\nimport * as pkg from \"../package.json\";\nimport { HostConnection, TimeoutError } from \"./connection\";\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { ContextLogger } from \"./logger\";\nimport { Trigger, TriggerOptions } from \"./trigger\";\nimport { TriggerContext, TriggerFetch } from \"./types\";\nimport { generateErrorMessage, ErrorMessageOptions } from \"zod-error\";\n\nconst zodErrorMessageOptions: ErrorMessageOptions = {\n delimiter: {\n error: \" 🔥 \",\n },\n};\n\ntype RunOnceOutput = { idempotencyKey: string; hasRun: boolean; output?: any };\n\nexport class TriggerClient<TSchema extends z.ZodTypeAny> {\n #trigger: Trigger<TSchema>;\n #options: TriggerOptions<TSchema>;\n\n #connection?: HostConnection;\n #serverRPC?: ZodRPC<typeof ServerRPCSchema, typeof HostRPCSchema>;\n\n #apiKey: string;\n #endpoint: string;\n\n #isConnected = false;\n #retryIntervalMs: number = 3_000;\n #logger: Logger;\n #closedByUser = false;\n\n #responseCompleteCallbacks = new Map<\n string,\n {\n resolve: (output: any) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #waitForCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n #fetchCallbacks = new Map<\n string,\n {\n resolve: (output: FetchOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #runOnceCallbacks = new Map<\n string,\n {\n resolve: (output: RunOnceOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n constructor(trigger: Trigger<TSchema>, options: TriggerOptions<TSchema>) {\n this.#trigger = trigger;\n this.#options = options;\n\n const apiKey = this.#options.apiKey ?? process.env.TRIGGER_API_KEY;\n\n if (!apiKey) {\n throw new Error(\n \"Cannot connect to Trigger because of invalid API Key: Please include an API Key in the `apiKey` option or in the `TRIGGER_API_KEY` environment variable.\"\n );\n }\n\n this.#apiKey = apiKey;\n this.#endpoint =\n this.#options.endpoint ??\n process.env.TRIGGER_WSS_URL ??\n \"wss://wss.trigger.dev/ws\";\n this.#logger = new Logger(\n [\"trigger.dev\", this.#options.id],\n this.#options.logLevel\n );\n }\n\n async listen(instanceId?: string) {\n try {\n await this.#initializeConnection(instanceId);\n this.#initializeRPC();\n await this.#initializeHost();\n\n this.#logger.log(`✨ Connected and listening for events`);\n } catch (error) {\n this.#logger.log(`🚩 Could not connect to trigger.dev`);\n\n this.close();\n }\n }\n\n close() {\n this.#closedByUser = true;\n\n if (this.#serverRPC) {\n this.#serverRPC = undefined;\n }\n\n this.#connection?.close();\n this.#isConnected = false;\n }\n\n async #initializeConnection(instanceId?: string) {\n const id = instanceId ?? v4();\n\n this.#logger.debug(\"Initializing connection\", {\n id,\n endpoint: this.#endpoint,\n });\n\n const headers = { Authorization: `Bearer ${this.#apiKey}` };\n\n const connection = new HostConnection(\n new WebSocket(this.#endpoint, {\n headers,\n followRedirects: true,\n }),\n { id }\n );\n\n connection.onClose.attach(async ([code, reason]) => {\n if (this.#closedByUser) {\n this.#logger.debug(\"Connection closed by user, so we won't reconnect\");\n this.#closedByUser = false;\n return;\n }\n\n this.#logger.error(`🚩 Could not connect to trigger.dev (code ${code})`);\n\n if (reason) {\n this.#logger.error(\"Reason:\", reason);\n }\n\n // If #isConnected is already false, that means we are already trying to reconnect\n if (!this.#isConnected) return;\n\n this.#logger.log(\"🔌 Reconnecting to trigger.dev...\");\n\n this.#isConnected = false;\n\n while (!this.#isConnected) {\n this.#initializeConnection(id)\n .then(() => {\n this.#logger.log(\"⚡ Reconnection successful\");\n })\n .catch(() => {});\n\n this.#logger.debug(\n `Reconnection failed, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )} seconds`,\n id\n );\n\n await new Promise((resolve) =>\n setTimeout(resolve, this.#retryIntervalMs)\n );\n }\n });\n\n await connection.connect();\n\n this.#logger.debug(\"Connection initialized\", id);\n\n this.#connection = connection;\n this.#isConnected = true;\n\n if (this.#serverRPC) {\n this.#serverRPC.resetConnection(connection);\n await this.#initializeHost();\n }\n }\n\n async #initializeRPC() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize RPC without a connection\");\n }\n\n const serverRPC = new ZodRPC({\n connection: this.#connection,\n sender: ServerRPCSchema,\n receiver: HostRPCSchema,\n handlers: {\n RESOLVE_DELAY: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_DELAY\", data);\n\n const waitCallbacks = this.#waitForCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!waitCallbacks) {\n this.#logger.debug(\n `Could not find wait callbacks for wait ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = waitCallbacks;\n\n resolve();\n\n return true;\n },\n RESOLVE_RUN_ONCE: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_RUN_ONCE\", data);\n\n const runOnceCallbacks = this.#runOnceCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!runOnceCallbacks) {\n this.#logger.debug(\n `Could not find runOnce callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = runOnceCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n RESOLVE_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = requestCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = requestCallbacks;\n\n reject(data.error);\n\n return true;\n },\n RESOLVE_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = fetchCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = fetchCallbacks;\n\n reject(data.error);\n\n return true;\n },\n TRIGGER_WORKFLOW: async (data) => {\n this.#logger.debug(\"Handling TRIGGER_WORKFLOW\", data);\n\n const parsedEventData = this.#options.on.schema.safeParse(\n data.trigger.input\n );\n\n if (!parsedEventData.success) {\n await serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n error: {\n name: \"Event validation error\",\n message: generateErrorMessage(\n parsedEventData.error.issues,\n zodErrorMessageOptions\n ),\n },\n });\n\n return true;\n }\n\n const fetchFunction: TriggerFetch = async (key, url, options) => {\n const result = new Promise<FetchOutput>((resolve, reject) => {\n this.#fetchCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_FETCH\", {\n runId: data.id,\n key,\n fetch: {\n url: url.toString(),\n method: options.method ?? \"GET\",\n headers: options.headers,\n body: options.body,\n retry: options.retry,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const response = await result;\n\n return {\n status: response.status,\n ok: response.ok,\n headers: response.headers,\n body: response.body\n ? (options.responseSchema ?? z.any()).parse(response.body)\n : undefined,\n };\n };\n\n const ctx: TriggerContext = {\n id: data.id,\n environment: data.meta.environment,\n apiKey: data.meta.apiKey,\n organizationId: data.meta.organizationId,\n isTest: data.meta.isTest,\n logger: new ContextLogger(async (level, message, properties) => {\n await serverRPC.send(\"SEND_LOG\", {\n runId: data.id,\n key: message,\n log: {\n level,\n message,\n properties: JSON.stringify(properties ?? {}),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n }),\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n waitFor: async (key, options) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"DELAY\",\n seconds: options.seconds,\n minutes: options.minutes,\n hours: options.hours,\n days: options.days,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n waitUntil: async (key, date: Date) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"SCHEDULE_FOR\",\n scheduledFor: date.toISOString(),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n runOnce: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey, hasRun, output } = await result;\n\n if (hasRun) {\n return output;\n }\n\n const callbackResult = await callback(idempotencyKey);\n\n await serverRPC.send(\"COMPLETE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n idempotencyKey,\n output: callbackResult\n ? JSON.stringify(callbackResult)\n : undefined,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n return callbackResult;\n },\n runOnceLocalOnly: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"LOCAL_ONLY\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey } = await result;\n\n return callback(idempotencyKey);\n },\n fetch: fetchFunction,\n };\n\n const eventData = parsedEventData.data;\n\n this.#logger.debug(\"Parsed event data\", eventData);\n\n triggerRunLocalStorage.run(\n {\n performRequest: async (key, options) => {\n const result = new Promise((resolve, reject) => {\n this.#responseCompleteCallbacks.set(\n messageKey(data.id, key),\n {\n resolve,\n reject,\n }\n );\n });\n\n await serverRPC.send(\"SEND_REQUEST\", {\n runId: data.id,\n key,\n request: {\n service: options.service,\n endpoint: options.endpoint,\n params: options.params,\n version: options.version,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\n\n if (!options.response?.schema) {\n return output;\n }\n\n return options.response.schema.parse(output);\n },\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n fetch: fetchFunction,\n workflowId: data.meta.workflowId,\n appOrigin: data.meta.appOrigin,\n id: data.id,\n },\n () => {\n this.#logger.debug(\"Running trigger...\");\n\n serverRPC\n .send(\"START_WORKFLOW_RUN\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n })\n .then(() => {\n return this.#trigger.options\n .run(eventData, ctx)\n .then((output) => {\n this.#logger.log(`Run ${data.id} complete 🏃`);\n\n return serverRPC.send(\"COMPLETE_WORKFLOW_RUN\", {\n runId: data.id,\n output: JSON.stringify(output),\n timestamp: String(highPrecisionTimestamp()),\n });\n })\n .catch((anyError) => {\n const parseAnyError = (\n error: any\n ): {\n name: string;\n message: string;\n stackTrace?: string;\n } => {\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stack,\n };\n }\n\n const parsedError = z\n .object({ name: z.string(), message: z.string() })\n .passthrough()\n .safeParse(error);\n\n if (parsedError.success) {\n return parsedError.data;\n }\n\n return {\n name: \"UnknownError\",\n message: \"An unknown error occurred\",\n };\n };\n\n const error = parseAnyError(anyError);\n\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n })\n .catch((anyError) => {\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error: anyError,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n }\n );\n\n return true;\n },\n },\n });\n\n this.#logger.debug(\"Successfully initialized RPC with server\");\n\n this.#serverRPC = serverRPC;\n }\n\n async #initializeHost() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize host without a connection\");\n }\n\n if (!this.#serverRPC) {\n throw new Error(\"Cannot initialize host without an RPC connection\");\n }\n\n const response = await this.#send(\"INITIALIZE_HOST\", {\n apiKey: this.#apiKey,\n workflowId: this.#trigger.id,\n workflowName: this.#trigger.name,\n trigger: this.#trigger.on.metadata,\n packageVersion: pkg.version,\n packageName: pkg.name,\n triggerTTL: this.#options.triggerTTL,\n });\n\n if (response?.type === \"error\") {\n throw new Error(response.message);\n }\n\n this.#logger.debug(\"Successfully initialized workflow with server\");\n }\n\n async #send<MethodName extends keyof typeof ServerRPCSchema>(\n methodName: MethodName,\n request: z.input<(typeof ServerRPCSchema)[MethodName][\"request\"]>\n ) {\n if (!this.#serverRPC) throw new Error(\"serverRPC not initialized\");\n\n while (true) {\n try {\n this.#logger.debug(\n `Sending RPC request to server: ${methodName}`,\n request\n );\n\n return await this.#serverRPC.send(methodName, request);\n } catch (err) {\n if (err instanceof TimeoutError) {\n this.#logger.log(\n `RPC call timed out, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )}s...`\n );\n\n this.#logger.error(err);\n\n await sleep(this.#retryIntervalMs);\n } else {\n throw err;\n }\n }\n }\n }\n}\n\nexport const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nconst messageKey = (runId: string, key: string) => `${runId}:${key}`;\n\nfunction highPrecisionTimestamp() {\n const [seconds, nanoseconds] = process.hrtime();\n\n return seconds * 1e9 + nanoseconds;\n}\n","import type { WebSocket as NodeWebSocket } from \"ws\";\nimport { v4 } from \"uuid\";\nimport { Evt } from \"evt\";\nimport { IConnection, Logger, MESSAGE_META } from \"internal-bridge\";\n\nexport class TimeoutError extends Error {}\nexport class NotConnectedError extends Error {}\n\ntype PendingMessage = {\n data: string;\n onAckReceived: () => void;\n};\n\nexport type ConnectionOptions = {\n connectTimeout?: number;\n sendTimeout?: number;\n pingTimeout?: number;\n id?: string;\n};\n\nexport class HostConnection implements IConnection {\n id: string;\n onMessage: Evt<string>;\n onAuthenticated: Evt<void>;\n onClose: Evt<[number, string]>;\n onOpen: Evt<void>;\n onError: Evt<Error>;\n\n #socket: WebSocket | NodeWebSocket;\n\n #connectTimeout: number;\n #sendTimeout: number;\n #pingTimeout: number;\n #isAuthenticated: boolean = false;\n #timeouts: Set<NodeJS.Timeout>;\n #isClosed: boolean = false;\n #pendingMessages = new Map<string, PendingMessage>();\n #logger: Logger;\n\n #pingIntervalHandle: NodeJS.Timeout | undefined;\n #pingIntervalMs: number = 30_000; // 30 seconds\n #closeUnresponsiveConnectionTimeoutMs: number = 3 * 60 * 1000; // 3 minutes\n\n constructor(socket: WebSocket | NodeWebSocket, options?: ConnectionOptions) {\n this.#socket = socket;\n this.id = options?.id ?? v4();\n\n this.onMessage = new Evt();\n this.onAuthenticated = new Evt<void>();\n this.onClose = new Evt<[number, string]>();\n this.onOpen = new Evt();\n this.onError = new Evt<Error>();\n\n this.#connectTimeout = options?.connectTimeout ?? 5000;\n this.#sendTimeout = options?.sendTimeout ?? 5000;\n this.#pingTimeout = options?.pingTimeout ?? 5000;\n\n this.#timeouts = new Set();\n\n this.#logger = new Logger(\"trigger.dev connection\");\n\n this.onClose.attach(() => {\n this.#isClosed = true;\n\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n for (const timeout of this.#timeouts) {\n clearTimeout(timeout);\n }\n\n this.#timeouts.clear();\n });\n\n this.#socket.onopen = () => {\n this.#isClosed = false;\n this.onOpen.post();\n\n this.#startPingInterval();\n };\n\n this.#socket.onclose = (ev: CloseEvent) => {\n this.onClose.post([ev.code, ev.reason]);\n };\n\n this.#socket.onerror = (ev: ErrorEvent | Event) => {\n const message = \"message\" in ev ? ev.message : \"Unknown error\";\n\n this.onError.post(new Error(message));\n };\n\n this.#socket.onmessage = (event: MessageEvent) => {\n if (this.#isClosed) return;\n\n const data = JSON.parse(event.data.toString());\n const metadata = MESSAGE_META.parse(data);\n\n if (metadata.type === \"ACK\") {\n const pendingMessage = this.#pendingMessages.get(metadata.id);\n\n if (pendingMessage) {\n pendingMessage.onAckReceived();\n this.#pendingMessages.delete(metadata.id);\n }\n }\n\n if (metadata.type === \"MESSAGE\") {\n socket.send(JSON.stringify({ type: \"ACK\", id: metadata.id }));\n\n if (metadata.data === \"AUTHENTICATED\") {\n this.#isAuthenticated = true;\n this.onAuthenticated.post();\n return;\n }\n\n this.onMessage.post(metadata.data);\n }\n };\n\n if (\"pong\" in socket) {\n socket.on(\"pong\", (buf) => {\n const id = buf.toString();\n const pendingMessage = this.#pendingMessages.get(id);\n\n if (pendingMessage?.data === \"ping\") {\n pendingMessage.onAckReceived();\n }\n });\n }\n }\n\n async connect() {\n this.#logger.debug(\"[connect] Attempting to connect\");\n\n return new Promise<void>((resolve, reject) => {\n if (\n this.#socket.readyState === this.#socket.OPEN &&\n this.#isAuthenticated\n ) {\n this.#logger.debug(\"[connect] Already connected, resolving\");\n\n return resolve();\n }\n\n const failTimeout = setTimeout(() => {\n this.#logger.debug(\"[connect] Connection timed out, rejecting\");\n\n reject(new TimeoutError());\n }, this.#connectTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.onAuthenticated.attach(() => {\n clearTimeout(failTimeout);\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(\"[connect] Connected, resolving\");\n\n resolve();\n });\n });\n }\n\n async send(data: string) {\n if (this.#isClosed) throw new NotConnectedError();\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError());\n }, this.#sendTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data,\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n resolve();\n },\n });\n\n this.#socket.send(JSON.stringify({ id, data, type: \"MESSAGE\" }));\n });\n }\n\n close(code?: number, reason?: string) {\n this.#isClosed = true;\n this.onMessage.detach();\n return this.#socket.close(code, reason);\n }\n\n #startPingInterval() {\n // Do the ping stuff here\n let lastSuccessfulPing = new Date();\n this.#pingIntervalHandle = setInterval(async () => {\n if (!this.#socket.OPEN) {\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n return;\n }\n\n try {\n await this.#ping();\n lastSuccessfulPing = new Date();\n } catch (err) {\n this.#logger.warn(\"Pong not received in time\");\n if (!(err instanceof TimeoutError)) {\n this.#logger.error(err);\n }\n\n if (\n lastSuccessfulPing.getTime() <\n new Date().getTime() - this.#closeUnresponsiveConnectionTimeoutMs\n ) {\n this.#logger.error(\n \"No pong received in last three minutes, closing connection to Interval and retrying...\"\n );\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n this.#socket.close();\n }\n }\n }, this.#pingIntervalMs);\n }\n\n async #ping() {\n if (!this.#socket.OPEN) {\n throw new NotConnectedError();\n }\n\n if (!(\"ping\" in this.#socket)) {\n // Not supported in web client WebSocket\n throw new Error(\n \"ping not supported in this underlying websocket connection\"\n );\n }\n\n const socket = this.#socket;\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError(\"Pong not received in time\"));\n }, this.#pingTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data: \"ping\",\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(`Resolving ping`);\n\n resolve();\n },\n });\n\n this.#logger.debug(`Sending ping ${id} to ${socket.url}`);\n\n socket.ping(id, undefined, (err) => {\n if (err) {\n reject(err);\n }\n });\n });\n }\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { z } from \"zod\";\nimport { TriggerCustomEvent, TriggerFetch } from \"./types\";\n\ntype PerformRequestOptions<TSchema extends z.ZodTypeAny> = {\n version?: string;\n service: string;\n params: unknown;\n endpoint: string;\n response?: {\n schema: TSchema;\n };\n};\n\ntype TriggerRunLocalStorage = {\n performRequest: <TSchema extends z.ZodTypeAny>(\n key: string,\n options: PerformRequestOptions<TSchema>\n ) => Promise<z.infer<TSchema>>;\n sendEvent: (key: string, event: TriggerCustomEvent) => Promise<void>;\n fetch: TriggerFetch;\n workflowId: string;\n appOrigin: string;\n id: string;\n};\n\nexport const triggerRunLocalStorage =\n new AsyncLocalStorage<TriggerRunLocalStorage>();\n","import { TriggerLogger } from \"./types\";\n\ntype CallbackFunction = (\n level: \"DEBUG\" | \"INFO\" | \"WARN\" | \"ERROR\",\n message: string,\n properties?: Record<string, any>\n) => Promise<void>;\n\nexport class ContextLogger implements TriggerLogger {\n constructor(private callback: CallbackFunction) {}\n\n debug(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"DEBUG\", message, properties);\n }\n info(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"INFO\", message, properties);\n }\n warn(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"WARN\", message, properties);\n }\n error(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"ERROR\", message, properties);\n }\n}\n","import { TriggerClient } from \"../client\";\nimport { LogLevel } from \"internal-bridge\";\nimport { TriggerEvent } from \"../events\";\n\nimport type { TriggerContext } from \"../types\";\nimport { z } from \"zod\";\n\nexport type TriggerOptions<TSchema extends z.ZodTypeAny> = {\n id: string;\n name: string;\n on: TriggerEvent<TSchema>;\n apiKey?: string;\n endpoint?: string;\n logLevel?: LogLevel;\n\n /**\n * The TTL for the trigger in seconds. If the trigger is not run within this time, it will be aborted. Defaults to 3600 seconds (1 hour).\n * @type {number}\n */\n triggerTTL?: number;\n\n run: (event: z.infer<TSchema>, ctx: TriggerContext) => Promise<any>;\n};\n\nexport class Trigger<TSchema extends z.ZodTypeAny> {\n options: TriggerOptions<TSchema>;\n #client: TriggerClient<TSchema> | undefined;\n\n constructor(options: TriggerOptions<TSchema>) {\n this.options = options;\n }\n\n async listen() {\n if (!this.#client) {\n this.#client = new TriggerClient(this, this.options);\n }\n\n return this.#client.listen();\n }\n\n get id() {\n return this.options.id;\n }\n\n get name() {\n return this.options.name;\n }\n\n get endpoint() {\n return this.options.endpoint;\n }\n\n get on() {\n return this.options.on;\n }\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport type { TriggerCustomEvent } from \"./types\";\nimport fetch from \"node-fetch\";\n\nexport function sendEvent(\n idOrKey: string,\n event: TriggerCustomEvent\n): Promise<void> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n // Do it through the API\n return sendEventFetch(idOrKey, event);\n }\n\n return triggerRun.sendEvent(idOrKey, event);\n}\n\nasync function sendEventFetch(\n id: string,\n event: TriggerCustomEvent\n): Promise<void> {\n if (!process.env.TRIGGER_API_KEY) {\n throw new Error(\n `There was a problem sending a custom event: the TRIGGER_API_KEY environment variable is not set`\n );\n }\n\n const baseUrl = process.env.TRIGGER_API_URL || \"https://app.trigger.dev\";\n const url = `${baseUrl}/api/v1/events`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.TRIGGER_API_KEY}`,\n },\n body: JSON.stringify({\n id,\n event,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `There was a problem sending a custom event: ${response.statusText}`\n );\n }\n\n return;\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport { z } from \"zod\";\nimport { FetchOptions, FetchResponse } from \"./types\";\n\nexport function fetch<TBodySchema extends z.ZodTypeAny = z.ZodTypeAny>(\n key: string,\n url: string | URL,\n options: FetchOptions<TBodySchema>\n): Promise<FetchResponse<TBodySchema>> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n throw new Error(\"Cannot call fetch outside of a trigger run\");\n }\n\n return triggerRun.fetch(key, url, options);\n}\n"],"mappings":"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","names":["fetch","LiteralSchema","z","union","string","number","boolean","null","JsonSchema","lazy","array","record","SerializableSchema","date","SerializableJsonSchema","import_zod","ErrorSchema","z","object","name","string","message","stackTrace","optional","import_zod","LogMessageSchema","z","object","level","enum","message","string","properties","JsonSchema","default","import_zod","DelaySchema","z","object","type","literal","seconds","number","optional","minutes","hours","days","ScheduledForSchema","scheduledFor","string","datetime","WaitSchema","discriminatedUnion","import_zod","CustomEventSchema","z","object","name","string","payload","JsonSchema","context","optional","timestamp","datetime","delay","union","seconds","number","int","minutes","hours","days","until","SerializableCustomEventSchema","SerializableJsonSchema","date","EventMatcherSchema","array","boolean","EventFilterSchema","lazy","record","ScheduledEventPayloadSchema","lastRunAt","coerce","scheduledTime","ScheduleSourceRateSchema","rateOf","min","max","ScheduleSourceCronSchema","cron","ScheduleSourceSchema","ManualWebhookSourceSchema","verifyPayload","enabled","header","event","SlackBlockInteractionSourceSchema","type","literal","blockId","actionIds","SlackViewSubmissionInteractionSourceSchema","callbackIds","SlackInteractionSourceSchema","discriminatedUnion","import_zod","CustomEventTriggerSchema","z","object","type","literal","service","name","string","filter","EventFilterSchema","schema","JsonSchema","optional","WebhookEventTriggerSchema","source","manualRegistration","boolean","default","HttpEventTriggerSchema","ScheduledEventTriggerSchema","ScheduleSourceSchema","SlackInteractionTriggerSchema","SlackInteractionSourceSchema","TriggerMetadataSchema","discriminatedUnion","import_zod","SecureStringSchema","z","object","__secureString","literal","strings","array","string","interpolations","RetrySchema","enabled","boolean","default","factor","number","maxTimeout","minTimeout","maxAttempts","statusCodes","FetchRequestSchema","url","headers","record","union","optional","method","enum","body","any","retry","FetchOutputSchema","status","ok","FetchResponseSchema","import_zod","InitializeRunOnceSchema","z","object","type","enum","CompleteRunOnceSchema","idempotencyKey","string","output","optional","ResolveRunOnceOuputSchema","hasRun","boolean","SerializableJsonSchema","customEvent","options","metadata","type","service","name","filter","event","payload","schema","zodToJsonSchema","scheduleEvent","source","ScheduledEventPayloadSchema","webhookEvent","slugify","eventName","verifyPayload","enabled","manualRegistration","import_zod","HostRPCSchema","TRIGGER_WORKFLOW","request","z","object","id","string","trigger","input","JsonSchema","default","context","meta","environment","workflowId","organizationId","apiKey","isTest","boolean","appOrigin","response","RESOLVE_REQUEST","key","output","runId","RESOLVE_DELAY","REJECT_REQUEST","error","RESOLVE_FETCH_REQUEST","FetchOutputSchema","REJECT_FETCH_REQUEST","RESOLVE_RUN_ONCE","ResolveRunOnceOuputSchema","import_zod","ServerRPCSchema","INITIALIZE_DELAY","request","z","object","runId","string","key","wait","WaitSchema","timestamp","response","boolean","SEND_REQUEST","service","endpoint","params","any","version","optional","SEND_FETCH","fetch","FetchRequestSchema","SEND_LOG","log","message","level","enum","properties","SEND_EVENT","event","CustomEventSchema","INITIALIZE_HOST","apiKey","workflowId","workflowName","trigger","TriggerMetadataSchema","packageVersion","packageName","triggerTTL","number","discriminatedUnion","type","literal","nullable","START_WORKFLOW_RUN","COMPLETE_WORKFLOW_RUN","output","SEND_WORKFLOW_ERROR","error","name","stackTrace","INITIALIZE_RUN_ONCE","runOnce","InitializeRunOnceSchema","COMPLETE_RUN_ONCE","CompleteRunOnceSchema","import_zod","MESSAGE_META","z","object","data","any","id","string","type","union","literal","TriggerEnvironmentSchema","enum","import_zod","logLevels","Logger","constructor","name","level","n","tags","indexOf","process","env","TRIGGER_LOG_LEVEL","log","args","console","error","formattedDateTime","warn","info","debug","Array","isArray","map","join","tag","date","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","formattedHours","formattedMinutes","formattedSeconds","formattedMilliseconds","RPCMessageSchema","z","object","id","string","methodName","data","any","kind","enum","ZodRPC","constructor","options","Map","Logger","connection","sender","receiver","handlers","onMessage","attach","bind","resetConnection","detach","send","key","debug","generateStableId","message","packageMessage","Promise","resolve","reject","set","rawResponseText","parsed","parse","err","catch","rawData","JSON","error","callError","ZodError","stringify","errors","flatten","method","Error","inputs","request","handler","returnValue","preparedResponseText","packageResponse","responseCallback","get","delete","connId","reqKey","reqData","serializedData","inputString","hash","createHash","update","digest","callerData","import_uuid","import_zod","TimeoutError","Error","NotConnectedError","_logger","HostConnection","constructor","socket","options","Map","id","v4","onMessage","Evt","onAuthenticated","onClose","onOpen","onError","connectTimeout","sendTimeout","pingTimeout","Set","Logger","attach","clearInterval","undefined","timeout","clearTimeout","clear","onopen","post","onclose","ev","code","reason","onerror","message","onmessage","event","data","JSON","parse","toString","metadata","MESSAGE_META","type","pendingMessage","get","onAckReceived","delete","send","stringify","on","buf","connect","debug","Promise","resolve","reject","readyState","OPEN","failTimeout","setTimeout","add","set","close","detach","lastSuccessfulPing","Date","setInterval","err","warn","error","getTime","url","ping","triggerRunLocalStorage","AsyncLocalStorage","ContextLogger","constructor","callback","debug","message","properties","info","warn","error","zodErrorMessageOptions","delimiter","error","_connection","_logger","TriggerClient","constructor","trigger","options","Map","apiKey","process","env","TRIGGER_API_KEY","Error","endpoint","TRIGGER_WSS_URL","Logger","id","logLevel","listen","instanceId","log","close","undefined","v4","debug","headers","Authorization","connection","HostConnection","WebSocket","followRedirects","onClose","attach","code","reason","then","catch","Math","round","Promise","resolve","setTimeout","connect","resetConnection","serverRPC","ZodRPC","sender","ServerRPCSchema","receiver","HostRPCSchema","handlers","RESOLVE_DELAY","data","waitCallbacks","get","messageKey","meta","runId","key","RESOLVE_RUN_ONCE","runOnceCallbacks","output","RESOLVE_REQUEST","requestCallbacks","REJECT_REQUEST","reject","RESOLVE_FETCH_REQUEST","fetchCallbacks","REJECT_FETCH_REQUEST","TRIGGER_WORKFLOW","parsedEventData","on","schema","safeParse","input","success","send","timestamp","String","highPrecisionTimestamp","name","message","generateErrorMessage","issues","fetchFunction","url","result","set","fetch","toString","method","body","retry","response","status","ok","responseSchema","z","any","parse","ctx","environment","organizationId","isTest","logger","ContextLogger","level","properties","JSON","stringify","sendEvent","event","waitFor","wait","type","seconds","minutes","hours","days","waitUntil","date","scheduledFor","toISOString","runOnce","callback","idempotencyKey","hasRun","callbackResult","runOnceLocalOnly","eventData","triggerRunLocalStorage","run","performRequest","request","service","params","version","workflowId","appOrigin","anyError","parseAnyError","stackTrace","stack","parsedError","object","string","passthrough","workflowName","metadata","packageVersion","packageName","triggerTTL","methodName","err","TimeoutError","sleep","ms","nanoseconds","hrtime","Trigger","constructor","options","listen","TriggerClient","id","name","endpoint","on","sendEvent","idOrKey","event","triggerRun","triggerRunLocalStorage","getStore","sendEventFetch","id","process","env","TRIGGER_API_KEY","Error","baseUrl","TRIGGER_API_URL","url","response","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","fetch","key","url","options","triggerRun","triggerRunLocalStorage","getStore","Error","getTriggerRun","triggerRunLocalStorage","getStore","secureString","strings","interpolations","__secureString","raw"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../../common-schemas/src/json.ts","../../common-schemas/src/error.ts","../../common-schemas/src/logs.ts","../../common-schemas/src/waits.ts","../../common-schemas/src/events.ts","../../common-schemas/src/triggers.ts","../../common-schemas/src/fetch.ts","../../common-schemas/src/runOnce.ts","../src/events.ts","../../internal-bridge/src/schemas/host.ts","../../internal-bridge/src/schemas/server.ts","../../internal-bridge/src/schemas/common.ts","../../internal-bridge/src/zodRPC.ts","../../internal-bridge/src/logger.ts","../src/client.ts","../src/connection.ts","../src/localStorage.ts","../src/logger.ts","../src/trigger/index.ts","../src/customEvents.ts","../src/fetch.ts"],"sourcesContent":["export * from \"./events\";\nexport * from \"./trigger\";\nexport * from \"./customEvents\";\nexport * from \"./fetch\";\n\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { SecureString } from \"./types\";\n\nexport function getTriggerRun() {\n return triggerRunLocalStorage.getStore();\n}\n\n/*\n * This function is used to create a secure string that can be used in the headers of a fetch request.\n * It is used to prevent the string from being logged in trigger.dev.\n * You can use it like this:\n *\n * await ctx.fetch(\"https://example.com\", {\n * headers: {\n * Authorization: secureString`Bearer ${ACCESS_TOKEN}`,\n * },\n * })\n */\nexport function secureString(\n strings: TemplateStringsArray,\n ...interpolations: string[]\n): SecureString {\n return {\n __secureString: true,\n strings: strings.raw as string[],\n interpolations,\n };\n}\n","import { z } from \"zod\";\n\nconst LiteralSchema = z.union([z.string(), z.number(), z.boolean(), z.null()]);\ntype Literal = z.infer<typeof LiteralSchema>;\n\ntype Json = Literal | { [key: string]: Json } | Json[];\n\nexport const JsonSchema: z.ZodType<Json> = z.lazy(() =>\n z.union([LiteralSchema, z.array(JsonSchema), z.record(JsonSchema)])\n);\n\nconst SerializableSchema = z.union([\n z.string(),\n z.number(),\n z.boolean(),\n z.null(),\n z.date(),\n]);\ntype Serializable = z.infer<typeof SerializableSchema>;\n\ntype SerializableJson =\n | Serializable\n | { [key: string]: SerializableJson }\n | SerializableJson[];\n\nexport const SerializableJsonSchema: z.ZodType<SerializableJson> = z.lazy(() =>\n z.union([\n SerializableSchema,\n z.array(SerializableJsonSchema),\n z.record(SerializableJsonSchema),\n ])\n);\n","import { z } from \"zod\";\n\nexport const ErrorSchema = z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n});\n","import { z } from \"zod\";\nimport { JsonSchema } from \"./json\";\n\nexport const LogMessageSchema = z.object({\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n message: z.string(),\n properties: JsonSchema.default({}),\n});\n","import { z } from \"zod\";\n\nexport const DelaySchema = z.object({\n type: z.literal(\"DELAY\"),\n seconds: z.number().optional(),\n minutes: z.number().optional(),\n hours: z.number().optional(),\n days: z.number().optional(),\n});\n\nexport type Delay = z.infer<typeof DelaySchema>;\n\nexport const ScheduledForSchema = z.object({\n type: z.literal(\"SCHEDULE_FOR\"),\n scheduledFor: z.string().datetime(),\n});\n\nexport type Scheduled = z.infer<typeof ScheduledForSchema>;\n\nexport const WaitSchema = z.discriminatedUnion(\"type\", [\n DelaySchema,\n ScheduledForSchema,\n]);\n","import { z } from \"zod\";\nimport { JsonSchema, SerializableJsonSchema } from \"./json\";\n\nexport const CustomEventSchema = z.object({\n name: z.string(),\n payload: JsonSchema,\n context: JsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.string().datetime() }),\n ])\n .optional(),\n});\n\nexport const SerializableCustomEventSchema = z.object({\n name: z.string(),\n payload: SerializableJsonSchema,\n context: SerializableJsonSchema.optional(),\n timestamp: z.string().datetime().optional(),\n delay: z\n .union([\n z.object({ seconds: z.number().int() }),\n z.object({ minutes: z.number().int() }),\n z.object({ hours: z.number().int() }),\n z.object({ days: z.number().int() }),\n z.object({ until: z.date() }),\n ])\n .optional(),\n});\n\nconst EventMatcherSchema = z.union([\n z.array(z.string()),\n z.array(z.number()),\n z.array(z.boolean()),\n]);\ntype EventMatcher = z.infer<typeof EventMatcherSchema>;\n\nexport type EventFilter = { [key: string]: EventMatcher | EventFilter };\n\nexport const EventFilterSchema: z.ZodType<EventFilter> = z.lazy(() =>\n z.record(z.union([EventMatcherSchema, EventFilterSchema]))\n);\n\nexport const ScheduledEventPayloadSchema = z.object({\n lastRunAt: z.coerce.date().optional(),\n scheduledTime: z.coerce.date(),\n});\n\nexport type ScheduledEventPayload = z.infer<typeof ScheduledEventPayloadSchema>;\n\nexport const ScheduleSourceRateSchema = z.object({\n rateOf: z.union([\n z.object({\n minutes: z.number().min(1).max(1440).int(),\n }),\n z.object({\n hours: z.number().min(1).max(720).int(),\n }),\n z.object({\n days: z.number().min(1).max(365).int(),\n }),\n ]),\n});\n\nexport type ScheduleSourceRate = z.infer<typeof ScheduleSourceRateSchema>;\n\nexport const ScheduleSourceCronSchema = z.object({\n cron: z.string(),\n});\n\nexport type ScheduleSourceCron = z.infer<typeof ScheduleSourceCronSchema>;\n\nexport const ScheduleSourceSchema = z.union([\n ScheduleSourceRateSchema,\n ScheduleSourceCronSchema,\n]);\n\nexport type ScheduleSource = z.infer<typeof ScheduleSourceSchema>;\n\nexport const ManualWebhookSourceSchema = z.object({\n verifyPayload: z.object({\n enabled: z.boolean(),\n header: z.string().optional(),\n }),\n event: z.string(),\n});\n\nexport const SlackBlockInteractionSourceSchema = z.object({\n type: z.literal(\"block_action\"),\n blockId: z.string(),\n actionIds: z.array(z.string()),\n});\n\nexport const SlackViewSubmissionInteractionSourceSchema = z.object({\n type: z.literal(\"view_submission\"),\n callbackIds: z.array(z.string()),\n});\n\nexport const SlackInteractionSourceSchema = z.discriminatedUnion(\"type\", [\n SlackBlockInteractionSourceSchema,\n SlackViewSubmissionInteractionSourceSchema,\n]);\n\nexport type SlackInteractionSource = z.infer<\n typeof SlackInteractionSourceSchema\n>;\n","import { z } from \"zod\";\nimport {\n EventFilterSchema,\n ScheduleSourceSchema,\n SlackInteractionSourceSchema,\n} from \"./events\";\nimport { JsonSchema } from \"./json\";\n\nexport const CustomEventTriggerSchema = z.object({\n type: z.literal(\"CUSTOM_EVENT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n schema: JsonSchema.optional(),\n});\nexport type CustomEventTrigger = z.infer<typeof CustomEventTriggerSchema>;\n\nexport const WebhookEventTriggerSchema = z.object({\n type: z.literal(\"WEBHOOK\"),\n service: z.string(),\n name: z.string(),\n filter: EventFilterSchema,\n source: JsonSchema.optional(),\n manualRegistration: z.boolean().default(false),\n schema: JsonSchema.optional(),\n});\nexport type WebhookEventTrigger = z.infer<typeof WebhookEventTriggerSchema>;\n\nexport const HttpEventTriggerSchema = z.object({\n type: z.literal(\"HTTP_ENDPOINT\"),\n service: z.literal(\"trigger\"),\n name: z.string(),\n filter: EventFilterSchema,\n});\nexport type HttpEventTrigger = z.infer<typeof HttpEventTriggerSchema>;\n\nexport const ScheduledEventTriggerSchema = z.object({\n type: z.literal(\"SCHEDULE\"),\n service: z.literal(\"scheduler\"),\n name: z.string(),\n source: ScheduleSourceSchema,\n});\nexport type ScheduledEventTrigger = z.infer<typeof ScheduledEventTriggerSchema>;\n\nexport const SlackInteractionTriggerSchema = z.object({\n type: z.literal(\"SLACK_INTERACTION\"),\n service: z.literal(\"slack\"),\n name: z.string(),\n filter: EventFilterSchema,\n source: SlackInteractionSourceSchema,\n});\nexport type SlackInteractionEventTrigger = z.infer<\n typeof SlackInteractionTriggerSchema\n>;\n\nexport const TriggerMetadataSchema = z.discriminatedUnion(\"type\", [\n CustomEventTriggerSchema,\n WebhookEventTriggerSchema,\n HttpEventTriggerSchema,\n ScheduledEventTriggerSchema,\n SlackInteractionTriggerSchema,\n]);\n\nexport type TriggerMetadata = z.infer<typeof TriggerMetadataSchema>;\n","import { z } from \"zod\";\n\nexport const SecureStringSchema = z.object({\n __secureString: z.literal(true),\n strings: z.array(z.string()),\n interpolations: z.array(z.string()),\n});\n\nexport type SecureString = z.infer<typeof SecureStringSchema>;\n\nexport const RetrySchema = z.object({\n enabled: z.boolean().default(true),\n factor: z.number().default(1.8),\n maxTimeout: z.number().default(60000),\n minTimeout: z.number().default(1000),\n maxAttempts: z.number().default(10),\n statusCodes: z.array(z.number()).default([408, 429, 500, 502, 503, 504]),\n});\n\nexport const FetchRequestSchema = z.object({\n url: z.string(),\n headers: z.record(z.union([z.string(), SecureStringSchema])).optional(),\n method: z.enum([\n \"GET\",\n \"POST\",\n \"PUT\",\n \"DELETE\",\n \"PATCH\",\n \"HEAD\",\n \"OPTIONS\",\n \"TRACE\",\n ]),\n body: z.any(),\n retry: RetrySchema.optional(),\n});\n\nexport const FetchOutputSchema = z.object({\n status: z.number(),\n ok: z.boolean(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n\nexport type FetchRequest = z.infer<typeof FetchRequestSchema>;\nexport type FetchOutput = z.infer<typeof FetchOutputSchema>;\n\nexport const FetchResponseSchema = z.object({\n status: z.number(),\n headers: z.record(z.string()),\n body: z.any().optional(),\n});\n","import { z } from \"zod\";\nimport { SerializableJsonSchema } from \"./json\";\n\nexport const InitializeRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n});\n\nexport const CompleteRunOnceSchema = z.object({\n type: z.enum([\"REMOTE\", \"LOCAL_ONLY\"]),\n idempotencyKey: z.string(),\n output: z.string().optional(),\n});\n\nexport const ResolveRunOnceOuputSchema = z.object({\n idempotencyKey: z.string(),\n hasRun: z.boolean(),\n output: SerializableJsonSchema.optional(),\n});\n","import {\n EventFilterSchema,\n TriggerMetadataSchema,\n ScheduleSourceSchema,\n ScheduledEventPayloadSchema,\n} from \"@trigger.dev/common-schemas\";\nimport type {\n CustomEventTrigger,\n EventFilter,\n WebhookEventTrigger,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\nimport slugify from \"slug\";\nimport zodToJsonSchema from \"zod-to-json-schema\";\n\nexport type EventRule = z.infer<typeof EventFilterSchema>;\n\nexport type TriggerEvent<TSchema extends z.ZodTypeAny> = {\n metadata: z.infer<typeof TriggerMetadataSchema>;\n schema: TSchema;\n};\n\nexport type TriggerCustomEventOptions<TSchema extends z.ZodTypeAny> = {\n name: string;\n schema?: TSchema;\n filter?: EventFilter;\n};\n\nexport function customEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerCustomEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n const schema = options.schema ?? z.any();\n\n return {\n metadata: {\n type: \"CUSTOM_EVENT\",\n service: \"trigger\",\n name: options.name,\n filter: { event: [options.name], payload: options.filter ?? {} },\n schema: zodToJsonSchema(schema) as CustomEventTrigger[\"schema\"],\n },\n // @ts-ignore\n schema,\n };\n}\n\nexport type TriggerScheduleOptions = z.infer<typeof ScheduleSourceSchema>;\n\nexport function scheduleEvent(\n options: TriggerScheduleOptions\n): TriggerEvent<typeof ScheduledEventPayloadSchema> {\n return {\n metadata: {\n type: \"SCHEDULE\",\n service: \"scheduler\",\n name: \"scheduled-event\",\n source: options,\n },\n schema: ScheduledEventPayloadSchema,\n };\n}\n\nexport type TriggerWebhookEventOptions<TSchema extends z.ZodTypeAny> = {\n schema?: TSchema;\n service: string;\n eventName: string;\n filter?: EventFilter;\n verifyPayload?: {\n enabled: boolean;\n header: string;\n };\n};\n\nexport function webhookEvent<TSchema extends z.ZodTypeAny>(\n options: TriggerWebhookEventOptions<TSchema>\n): TriggerEvent<TSchema> {\n const schema = options.schema ?? z.any();\n\n return {\n metadata: {\n type: \"WEBHOOK\",\n service: slugify(options.service),\n name: options.eventName,\n filter: {\n service: [slugify(options.service)],\n payload: options.filter ?? {},\n event: [options.eventName],\n },\n source: {\n verifyPayload: options.verifyPayload ?? { enabled: false },\n event: options.eventName,\n },\n manualRegistration: true,\n schema: zodToJsonSchema(schema) as WebhookEventTrigger[\"schema\"],\n },\n // @ts-ignore\n schema: options.schema,\n };\n}\n","import { z } from \"zod\";\nimport {\n FetchOutputSchema,\n JsonSchema,\n ResolveRunOnceOuputSchema,\n} from \"@trigger.dev/common-schemas\";\n\nexport const HostRPCSchema = {\n TRIGGER_WORKFLOW: {\n request: z.object({\n id: z.string(),\n trigger: z.object({\n input: JsonSchema.default({}),\n context: JsonSchema.default({}),\n }),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n isTest: z.boolean().default(false),\n appOrigin: z.string(),\n attempt: z.number().optional(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_DELAY: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: FetchOutputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n REJECT_FETCH_REQUEST: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n error: JsonSchema.default({}),\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n RESOLVE_RUN_ONCE: {\n request: z.object({\n id: z.string(),\n key: z.string(),\n output: ResolveRunOnceOuputSchema,\n meta: z.object({\n environment: z.string(),\n workflowId: z.string(),\n organizationId: z.string(),\n apiKey: z.string(),\n runId: z.string(),\n }),\n }),\n response: z.boolean(),\n },\n};\n\nexport type HostRPC = typeof HostRPCSchema;\n","import {\n CompleteRunOnceSchema,\n CustomEventSchema,\n FetchRequestSchema,\n InitializeRunOnceSchema,\n RetrySchema,\n TriggerMetadataSchema,\n WaitSchema,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\n\nexport const ServerRPCSchema = {\n INITIALIZE_DELAY: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n wait: WaitSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_REQUEST: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n request: z.object({\n service: z.string(),\n endpoint: z.string(),\n params: z.any(),\n version: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_FETCH: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n fetch: FetchRequestSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_LOG: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n log: z.object({\n message: z.string(),\n level: z.enum([\"DEBUG\", \"INFO\", \"WARN\", \"ERROR\"]),\n properties: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_EVENT: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n event: CustomEventSchema,\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_HOST: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n INITIALIZE_HOST_V2: {\n request: z.object({\n apiKey: z.string(),\n workflowId: z.string(),\n workflowName: z.string(),\n trigger: TriggerMetadataSchema,\n packageVersion: z.string(),\n packageName: z.string(),\n triggerTTL: z.number().optional(),\n }),\n response: z\n .discriminatedUnion(\"type\", [\n z.object({\n type: z.literal(\"success\"),\n data: z.object({\n workflow: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n environment: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n organization: z.object({\n id: z.string(),\n slug: z.string(),\n }),\n isNew: z.boolean(),\n url: z.string(),\n }),\n }),\n z.object({\n type: z.literal(\"error\"),\n message: z.string(),\n }),\n ])\n .nullable(),\n },\n START_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n COMPLETE_WORKFLOW_RUN: {\n request: z.object({\n runId: z.string(),\n output: z.string().optional(),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n SEND_WORKFLOW_ERROR: {\n request: z.object({\n runId: z.string(),\n error: z.object({\n name: z.string(),\n message: z.string(),\n stackTrace: z.string().optional(),\n }),\n timestamp: z.string(),\n }),\n response: z.boolean(),\n },\n INITIALIZE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: InitializeRunOnceSchema,\n }),\n response: z.boolean(),\n },\n COMPLETE_RUN_ONCE: {\n request: z.object({\n runId: z.string(),\n key: z.string(),\n timestamp: z.string(),\n runOnce: CompleteRunOnceSchema,\n }),\n response: z.boolean(),\n },\n};\n\nexport type ServerRPC = typeof ServerRPCSchema;\n","import { z } from \"zod\";\n\nexport const MESSAGE_META = z.object({\n data: z.any(),\n id: z.string(),\n type: z.union([z.literal(\"ACK\"), z.literal(\"MESSAGE\")]),\n});\n\nexport const TriggerEnvironmentSchema = z.enum([\"live\", \"development\"]);\nexport type TriggerEnvironment = z.infer<typeof TriggerEnvironmentSchema>;\n","import { z, ZodError } from \"zod\";\nimport { createHash } from \"node:crypto\";\nimport { IConnection } from \"./types\";\nimport { Logger } from \"./logger\";\n\nexport const RPCMessageSchema = z.object({\n id: z.string(),\n methodName: z.string(),\n data: z.any(),\n kind: z.enum([\"CALL\", \"RESPONSE\"]),\n});\n\nexport type RPCMessage = z.infer<typeof RPCMessageSchema>;\n\ninterface TransmitterSchema {\n [key: string]: {\n request: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n response: z.ZodFirstPartySchemaTypes | z.ZodDiscriminatedUnion<any, any>;\n };\n}\n\nexport type ZodRPCHandlers<ReceiverSchema extends TransmitterSchema> = {\n [K in keyof ReceiverSchema]: (\n data: z.infer<ReceiverSchema[K][\"request\"]>\n ) => Promise<z.infer<ReceiverSchema[K][\"response\"]>>;\n};\n\ntype ZodRPCOptions<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> = {\n connection: IConnection;\n sender: SenderSchema;\n receiver: ReceiverSchema;\n handlers: ZodRPCHandlers<ReceiverSchema>;\n};\n\ntype onResponseCallback = (data: any) => void;\n\nexport class ZodRPC<\n SenderSchema extends TransmitterSchema,\n ReceiverSchema extends TransmitterSchema\n> {\n #connection: IConnection;\n #sender: SenderSchema;\n #receiver: ReceiverSchema;\n #handlers: ZodRPCHandlers<ReceiverSchema>;\n #pendingCalls = new Map<string, onResponseCallback>();\n #logger: Logger = new Logger(\"ZodRPC\");\n\n constructor(options: ZodRPCOptions<SenderSchema, ReceiverSchema>) {\n this.#connection = options.connection;\n this.#sender = options.sender;\n this.#receiver = options.receiver;\n this.#handlers = options.handlers;\n\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n public resetConnection(connection: IConnection) {\n this.#connection.onMessage.detach();\n this.#connection = connection;\n this.#connection.onMessage.attach(this.#onMessage.bind(this));\n }\n\n async #onMessage(rawData: unknown) {\n try {\n const data = RPCMessageSchema.parse(JSON.parse(rawData as string));\n\n if (data.kind === \"CALL\") {\n await this.#onCall(data);\n }\n\n if (data.kind === \"RESPONSE\") {\n await this.#onResponse(data);\n }\n } catch (err) {\n this.#logger.error(err);\n }\n }\n\n async #onCall(message: RPCMessage) {\n try {\n await this.#handleCall(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid call:\\n${JSON.stringify(message)}: `,\n callError.errors\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling call:\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n async #onResponse(message: RPCMessage) {\n try {\n await this.#handleResponse(message);\n } catch (callError) {\n if (callError instanceof ZodError) {\n this.#logger.error(\n `[ZodRPC] Received invalid response\\n\\n${JSON.stringify(message)}: `,\n callError.flatten()\n );\n } else {\n this.#logger.error(\n `[ZodRPC] Error handling response\\n\\n${JSON.stringify(message)}: `,\n callError\n );\n }\n }\n }\n\n public send<K extends keyof SenderSchema>(\n key: K,\n data: z.input<SenderSchema[K][\"request\"]>\n ) {\n this.#logger.debug(\"Sending call\", { key, data });\n\n const id = generateStableId(this.#connection.id, key as string, data);\n\n const message = packageMessage({ id, methodName: key as string, data });\n\n return new Promise<z.infer<SenderSchema[K][\"response\"]>>(\n (resolve, reject) => {\n this.#pendingCalls.set(id, (rawResponseText: string) => {\n try {\n const parsed = this.#sender[key][\"response\"].parse(rawResponseText);\n\n return resolve(parsed);\n } catch (err) {\n reject(err);\n }\n });\n\n this.#connection.send(message).catch((err) => reject(err));\n }\n );\n }\n\n async #handleCall(message: RPCMessage) {\n const receiver = this.#receiver;\n type MethodKeys = keyof typeof receiver;\n\n const methodName = message.methodName as MethodKeys;\n\n const method: ReceiverSchema[MethodKeys] | undefined =\n this.#receiver[methodName];\n\n if (!method) {\n throw new Error(`There is no method for ${message.methodName}`);\n }\n\n this.#logger.debug(\"Received call\", { message });\n\n // struggling to get real inference here\n const inputs = method.request.parse(message.data);\n\n const handler = this.#handlers[methodName];\n\n const returnValue = await handler(inputs);\n\n const preparedResponseText = packageResponse({\n id: message.id,\n methodName: methodName as string, //??\n data: returnValue,\n });\n\n try {\n await this.#connection.send(preparedResponseText);\n } catch (err) {\n this.#logger.error(\"Failed sending response\", preparedResponseText, err);\n }\n\n return;\n }\n\n async #handleResponse(message: RPCMessage) {\n const responseCallback = this.#pendingCalls.get(message.id);\n if (!responseCallback) return;\n\n responseCallback(message.data);\n\n this.#pendingCalls.delete(message.id);\n }\n}\n\n// Generates a stableId for a given request, based on:\n// - The connection id\n// - The request key\n// - The request data (serialized)\n// Returns a hash of the above\nfunction generateStableId(\n connId: string,\n reqKey: string,\n reqData: any\n): string {\n // Serialize the request data\n const serializedData = JSON.stringify(reqData);\n\n // Concatenate the connection id, request key, and serialized data\n const inputString = connId + reqKey + serializedData;\n\n // Generate a hash of the input string using the SHA-256 algorithm\n const hash = createHash(\"sha256\").update(inputString).digest(\"hex\");\n\n // Return the hash\n return hash;\n}\n\nfunction packageMessage({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const callerData: RPCMessage = {\n id,\n kind: \"CALL\",\n data,\n methodName,\n };\n\n return JSON.stringify(callerData);\n}\n\nfunction packageResponse({ id, methodName, data }: Omit<RPCMessage, \"kind\">) {\n const preparedResponseText: RPCMessage = {\n id: id,\n kind: \"RESPONSE\",\n methodName: methodName,\n data,\n };\n return JSON.stringify(preparedResponseText);\n}\n","// Create a logger class that uses the debug package internally\n\nconst logLevels = [\n \"disabled\",\n \"log\",\n \"error\",\n \"warn\",\n \"info\",\n \"debug\",\n] as const;\n\nexport type LogLevel = (typeof logLevels)[number];\n\nexport class Logger {\n #name: string;\n #tags: string[];\n readonly #level: number;\n\n constructor(name: string | string[], level: LogLevel = \"log\") {\n if (typeof name === \"string\") {\n this.#name = name;\n this.#tags = [];\n } else {\n const [n, ...tags] = name;\n\n this.#name = n;\n this.#tags = tags;\n }\n\n this.#level = logLevels.indexOf(\n (process.env.TRIGGER_LOG_LEVEL ?? level) as LogLevel\n );\n }\n\n log(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...[...args, ...this.#formatTags()]);\n }\n\n logClean(...args: any[]) {\n if (this.#level < 1) return;\n\n console.log(`${this.#formatName()} `, ...args);\n }\n\n error(...args: any[]) {\n if (this.#level < 2) return;\n\n console.error(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n warn(...args: any[]) {\n if (this.#level < 3) return;\n\n console.warn(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n info(...args: any[]) {\n if (this.#level < 4) return;\n\n console.info(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n debug(...args: any[]) {\n if (this.#level < 5) return;\n\n console.debug(\n `[${formattedDateTime()}] ${this.#formatName()} `,\n ...[...args, ...this.#formatTags()]\n );\n }\n\n #formatName() {\n if (Array.isArray(this.#name)) {\n return this.#name.map((name) => `[${name}]`).join(\"\");\n }\n\n return `[${this.#name}]`;\n }\n\n #formatTags() {\n return this.#tags.map((tag) => `[${tag}]`);\n }\n}\n\nfunction formattedDateTime() {\n const date = new Date();\n\n const hours = date.getHours();\n const minutes = date.getMinutes();\n const seconds = date.getSeconds();\n const milliseconds = date.getMilliseconds();\n\n // Make sure the time is always 2 digits\n const formattedHours = hours < 10 ? `0${hours}` : hours;\n const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;\n const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;\n const formattedMilliseconds =\n milliseconds < 10\n ? `00${milliseconds}`\n : milliseconds < 100\n ? `0${milliseconds}`\n : milliseconds;\n\n return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;\n}\n","import { FetchOutput } from \"@trigger.dev/common-schemas\";\nimport {\n HostRPCSchema,\n Logger,\n ServerRPCSchema,\n ZodRPC,\n} from \"internal-bridge\";\nimport { v4 } from \"uuid\";\nimport { WebSocket } from \"ws\";\nimport { z } from \"zod\";\nimport * as pkg from \"../package.json\";\nimport { HostConnection, TimeoutError } from \"./connection\";\nimport { triggerRunLocalStorage } from \"./localStorage\";\nimport { ContextLogger } from \"./logger\";\nimport { Trigger, TriggerOptions } from \"./trigger\";\nimport { TriggerContext, TriggerFetch } from \"./types\";\nimport { generateErrorMessage, ErrorMessageOptions } from \"zod-error\";\nimport terminalLink from \"terminal-link\";\n\nconst zodErrorMessageOptions: ErrorMessageOptions = {\n delimiter: {\n error: \" 🔥 \",\n },\n};\n\ntype RunOnceOutput = { idempotencyKey: string; hasRun: boolean; output?: any };\n\nexport class TriggerClient<TSchema extends z.ZodTypeAny> {\n #trigger: Trigger<TSchema>;\n #options: TriggerOptions<TSchema>;\n\n #connection?: HostConnection;\n #serverRPC?: ZodRPC<typeof ServerRPCSchema, typeof HostRPCSchema>;\n\n #apiKey: string;\n #endpoint: string;\n\n #isConnected = false;\n #retryIntervalMs: number = 3_000;\n #logger: Logger;\n #closedByUser = false;\n\n #registerResponse?: {\n workflow: {\n id: string;\n slug: string;\n };\n environment: {\n id: string;\n slug: string;\n };\n organization: {\n id: string;\n slug: string;\n };\n isNew: boolean;\n url: string;\n };\n\n #responseCompleteCallbacks = new Map<\n string,\n {\n resolve: (output: any) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #waitForCallbacks = new Map<\n string,\n {\n resolve: () => void;\n reject: (err?: any) => void;\n }\n >();\n\n #fetchCallbacks = new Map<\n string,\n {\n resolve: (output: FetchOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n #runOnceCallbacks = new Map<\n string,\n {\n resolve: (output: RunOnceOutput) => void;\n reject: (err?: any) => void;\n }\n >();\n\n constructor(trigger: Trigger<TSchema>, options: TriggerOptions<TSchema>) {\n this.#trigger = trigger;\n this.#options = options;\n\n const apiKey = this.#options.apiKey ?? process.env.TRIGGER_API_KEY;\n\n if (!apiKey) {\n throw new Error(\n \"Cannot connect to Trigger because of invalid API Key: Please include an API Key in the `apiKey` option or in the `TRIGGER_API_KEY` environment variable.\"\n );\n }\n\n this.#apiKey = apiKey;\n this.#endpoint =\n this.#options.endpoint ??\n process.env.TRIGGER_WSS_URL ??\n \"wss://wss.trigger.dev/ws\";\n this.#logger = new Logger(\n [\"trigger.dev\", this.#options.id],\n this.#options.logLevel\n );\n }\n\n async listen(instanceId?: string) {\n try {\n await this.#initializeConnection(instanceId);\n this.#initializeRPC();\n await this.#initializeHost();\n\n if (this.#registerResponse?.isNew) {\n this.#logger.logClean(\n `🎉 Successfully registered \"${\n this.#trigger.name\n }\" to trigger.dev 👉 ${terminalLink(\n \"View on dashboard\",\n this.#registerResponse.url,\n { fallback: (text, url) => `${text}: (${url})` }\n )}. Listening for events...`\n );\n } else {\n this.#logger.log(\n `✨ Connected and listening for events 👉 ${terminalLink(\n \"View on dashboard\",\n this.#registerResponse!.url,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n }\n } catch (error) {\n this.#logger.log(`🚩 Could not connect to trigger.dev`);\n\n this.close();\n }\n }\n\n close() {\n this.#closedByUser = true;\n\n if (this.#serverRPC) {\n this.#serverRPC = undefined;\n }\n\n this.#connection?.close();\n this.#isConnected = false;\n }\n\n async #initializeConnection(instanceId?: string) {\n const id = instanceId ?? v4();\n\n this.#logger.debug(\"Initializing connection\", {\n id,\n endpoint: this.#endpoint,\n });\n\n const headers = { Authorization: `Bearer ${this.#apiKey}` };\n\n const connection = new HostConnection(\n new WebSocket(this.#endpoint, {\n headers,\n followRedirects: true,\n }),\n { id }\n );\n\n connection.onClose.attach(async ([code, reason]) => {\n if (this.#closedByUser) {\n this.#logger.debug(\"Connection closed by user, so we won't reconnect\");\n this.#closedByUser = false;\n return;\n }\n\n this.#logger.error(`🚩 Could not connect to trigger.dev (code ${code})`);\n\n if (reason) {\n this.#logger.error(\"Reason:\", reason);\n }\n\n // If #isConnected is already false, that means we are already trying to reconnect\n if (!this.#isConnected) return;\n\n this.#logger.log(\"🔌 Reconnecting to trigger.dev...\");\n\n this.#isConnected = false;\n\n while (!this.#isConnected) {\n this.#initializeConnection(id)\n .then(() => {\n this.#logger.log(\"⚡ Reconnection successful\");\n })\n .catch(() => {});\n\n this.#logger.debug(\n `Reconnection failed, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )} seconds`,\n id\n );\n\n await new Promise((resolve) =>\n setTimeout(resolve, this.#retryIntervalMs)\n );\n }\n });\n\n await connection.connect();\n\n this.#logger.debug(\"Connection initialized\", id);\n\n this.#connection = connection;\n this.#isConnected = true;\n\n if (this.#serverRPC) {\n this.#serverRPC.resetConnection(connection);\n await this.#initializeHost();\n }\n }\n\n async #initializeRPC() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize RPC without a connection\");\n }\n\n const serverRPC = new ZodRPC({\n connection: this.#connection,\n sender: ServerRPCSchema,\n receiver: HostRPCSchema,\n handlers: {\n RESOLVE_DELAY: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_DELAY\", data);\n\n const waitCallbacks = this.#waitForCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!waitCallbacks) {\n this.#logger.debug(\n `Could not find wait callbacks for wait ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = waitCallbacks;\n\n resolve();\n\n return true;\n },\n RESOLVE_RUN_ONCE: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_RUN_ONCE\", data);\n\n const runOnceCallbacks = this.#runOnceCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!runOnceCallbacks) {\n this.#logger.debug(\n `Could not find runOnce callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = runOnceCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n RESOLVE_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = requestCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_REQUEST\", data);\n\n const requestCallbacks = this.#responseCompleteCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!requestCallbacks) {\n this.#logger.debug(\n `Could not find request callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = requestCallbacks;\n\n reject(data.error);\n\n return true;\n },\n RESOLVE_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling RESOLVE_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { resolve } = fetchCallbacks;\n\n resolve(data.output);\n\n return true;\n },\n REJECT_FETCH_REQUEST: async (data) => {\n this.#logger.debug(\"Handling REJECT_FETCH_REQUEST\", data);\n\n const fetchCallbacks = this.#fetchCallbacks.get(\n messageKey(data.meta.runId, data.key)\n );\n\n if (!fetchCallbacks) {\n this.#logger.debug(\n `Could not find fetch callbacks for request ID ${messageKey(\n data.meta.runId,\n data.key\n )}. This can happen when a workflow run is resumed`\n );\n\n return true;\n }\n\n const { reject } = fetchCallbacks;\n\n reject(data.error);\n\n return true;\n },\n TRIGGER_WORKFLOW: async (data) => {\n this.#logger.debug(\"Handling TRIGGER_WORKFLOW\", data);\n\n const parsedEventData = this.#options.on.schema.safeParse(\n data.trigger.input\n );\n\n if (!parsedEventData.success) {\n await serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n error: {\n name: \"Event validation error\",\n message: generateErrorMessage(\n parsedEventData.error.issues,\n zodErrorMessageOptions\n ),\n },\n });\n\n return true;\n }\n\n const fetchFunction: TriggerFetch = async (key, url, options) => {\n const result = new Promise<FetchOutput>((resolve, reject) => {\n this.#fetchCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"SEND_FETCH\", {\n runId: data.id,\n key,\n fetch: {\n url: url.toString(),\n method: options.method ?? \"GET\",\n headers: options.headers,\n body: options.body,\n retry: options.retry,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const response = await result;\n\n return {\n status: response.status,\n ok: response.ok,\n headers: response.headers,\n body: response.body\n ? (options.responseSchema ?? z.any()).parse(response.body)\n : undefined,\n };\n };\n\n const ctx: TriggerContext = {\n id: data.id,\n environment: data.meta.environment,\n apiKey: data.meta.apiKey,\n organizationId: data.meta.organizationId,\n isTest: data.meta.isTest,\n logger: new ContextLogger(async (level, message, properties) => {\n await serverRPC.send(\"SEND_LOG\", {\n runId: data.id,\n key: message,\n log: {\n level,\n message,\n properties: JSON.stringify(properties ?? {}),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n }),\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n waitFor: async (key, options) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"DELAY\",\n seconds: options.seconds,\n minutes: options.minutes,\n hours: options.hours,\n days: options.days,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n waitUntil: async (key, date: Date) => {\n const result = new Promise<void>((resolve, reject) => {\n this.#waitForCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_DELAY\", {\n runId: data.id,\n key,\n wait: {\n type: \"SCHEDULE_FOR\",\n scheduledFor: date.toISOString(),\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n await result;\n\n return;\n },\n runOnce: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey, hasRun, output } = await result;\n\n if (hasRun) {\n return output;\n }\n\n const callbackResult = await callback(idempotencyKey);\n\n await serverRPC.send(\"COMPLETE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"REMOTE\",\n idempotencyKey,\n output: callbackResult\n ? JSON.stringify(callbackResult)\n : undefined,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n return callbackResult;\n },\n runOnceLocalOnly: async (key, callback) => {\n const result = new Promise<RunOnceOutput>((resolve, reject) => {\n this.#runOnceCallbacks.set(messageKey(data.id, key), {\n resolve,\n reject,\n });\n });\n\n await serverRPC.send(\"INITIALIZE_RUN_ONCE\", {\n runId: data.id,\n key,\n runOnce: {\n type: \"LOCAL_ONLY\",\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const { idempotencyKey } = await result;\n\n return callback(idempotencyKey);\n },\n fetch: fetchFunction,\n };\n\n const eventData = parsedEventData.data;\n\n this.#logger.debug(\"Parsed event data\", eventData);\n\n triggerRunLocalStorage.run(\n {\n performRequest: async (key, options) => {\n const result = new Promise((resolve, reject) => {\n this.#responseCompleteCallbacks.set(\n messageKey(data.id, key),\n {\n resolve,\n reject,\n }\n );\n });\n\n await serverRPC.send(\"SEND_REQUEST\", {\n runId: data.id,\n key,\n request: {\n service: options.service,\n endpoint: options.endpoint,\n params: options.params,\n version: options.version,\n },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\n\n if (!options.response?.schema) {\n return output;\n }\n\n return options.response.schema.parse(output);\n },\n sendEvent: async (key, event) => {\n await serverRPC.send(\"SEND_EVENT\", {\n runId: data.id,\n key,\n event: JSON.parse(JSON.stringify(event)),\n timestamp: String(highPrecisionTimestamp()),\n });\n },\n fetch: fetchFunction,\n workflowId: data.meta.workflowId,\n appOrigin: data.meta.appOrigin,\n id: data.id,\n },\n () => {\n this.#logger.debug(\"Running trigger...\");\n\n if (\n typeof data.meta.attempt === \"number\" &&\n data.meta.attempt === 0\n ) {\n this.#logger.log(\n `Run ${data.id} started 👉 ${terminalLink(\n \"View on dashboard\",\n `${this.#registerResponse!.url}/runs/${data.id}`,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n }\n\n serverRPC\n .send(\"START_WORKFLOW_RUN\", {\n runId: data.id,\n timestamp: String(highPrecisionTimestamp()),\n })\n .then(() => {\n return this.#trigger.options\n .run(eventData, ctx)\n .then((output) => {\n this.#logger.log(\n `Run ${data.id} complete 👉 ${terminalLink(\n \"View on dashboard\",\n `${this.#registerResponse!.url}/runs/${data.id}`,\n { fallback: (text, url) => `${text}: (${url})` }\n )}`\n );\n\n return serverRPC.send(\"COMPLETE_WORKFLOW_RUN\", {\n runId: data.id,\n output: JSON.stringify(output),\n timestamp: String(highPrecisionTimestamp()),\n });\n })\n .catch((anyError) => {\n const parseAnyError = (\n error: any\n ): {\n name: string;\n message: string;\n stackTrace?: string;\n } => {\n if (error instanceof Error) {\n return {\n name: error.name,\n message: error.message,\n stackTrace: error.stack,\n };\n }\n\n const parsedError = z\n .object({ name: z.string(), message: z.string() })\n .passthrough()\n .safeParse(error);\n\n if (parsedError.success) {\n return parsedError.data;\n }\n\n return {\n name: \"UnknownError\",\n message: \"An unknown error occurred\",\n };\n };\n\n const error = parseAnyError(anyError);\n\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n })\n .catch((anyError) => {\n return serverRPC.send(\"SEND_WORKFLOW_ERROR\", {\n runId: data.id,\n error: anyError,\n timestamp: String(highPrecisionTimestamp()),\n });\n });\n }\n );\n\n return true;\n },\n },\n });\n\n this.#logger.debug(\"Successfully initialized RPC with server\");\n\n this.#serverRPC = serverRPC;\n }\n\n async #initializeHost() {\n if (!this.#connection) {\n throw new Error(\"Cannot initialize host without a connection\");\n }\n\n if (!this.#serverRPC) {\n throw new Error(\"Cannot initialize host without an RPC connection\");\n }\n\n const response = await this.#send(\"INITIALIZE_HOST_V2\", {\n apiKey: this.#apiKey,\n workflowId: this.#trigger.id,\n workflowName: this.#trigger.name,\n trigger: this.#trigger.on.metadata,\n packageVersion: pkg.version,\n packageName: pkg.name,\n triggerTTL: this.#options.triggerTTL,\n });\n\n if (!response) {\n throw new Error(\"Could not initialize workflow with server\");\n }\n\n if (response?.type === \"error\") {\n throw new Error(response.message);\n }\n\n this.#registerResponse = response.data;\n\n this.#logger.debug(\"Successfully initialized workflow with server\");\n }\n\n async #send<MethodName extends keyof typeof ServerRPCSchema>(\n methodName: MethodName,\n request: z.input<(typeof ServerRPCSchema)[MethodName][\"request\"]>\n ) {\n if (!this.#serverRPC) throw new Error(\"serverRPC not initialized\");\n\n while (true) {\n try {\n this.#logger.debug(\n `Sending RPC request to server: ${methodName}`,\n request\n );\n\n return await this.#serverRPC.send(methodName, request);\n } catch (err) {\n if (err instanceof TimeoutError) {\n this.#logger.log(\n `RPC call timed out, retrying in ${Math.round(\n this.#retryIntervalMs / 1000\n )}s...`\n );\n\n this.#logger.error(err);\n\n await sleep(this.#retryIntervalMs);\n } else {\n throw err;\n }\n }\n }\n }\n}\n\nexport const sleep = (ms: number) =>\n new Promise((resolve) => setTimeout(resolve, ms));\n\nconst messageKey = (runId: string, key: string) => `${runId}:${key}`;\n\nfunction highPrecisionTimestamp() {\n const [seconds, nanoseconds] = process.hrtime();\n\n return seconds * 1e9 + nanoseconds;\n}\n","import type { WebSocket as NodeWebSocket } from \"ws\";\nimport { v4 } from \"uuid\";\nimport { Evt } from \"evt\";\nimport { IConnection, Logger, MESSAGE_META } from \"internal-bridge\";\n\nexport class TimeoutError extends Error {}\nexport class NotConnectedError extends Error {}\n\ntype PendingMessage = {\n data: string;\n onAckReceived: () => void;\n};\n\nexport type ConnectionOptions = {\n connectTimeout?: number;\n sendTimeout?: number;\n pingTimeout?: number;\n id?: string;\n};\n\nexport class HostConnection implements IConnection {\n id: string;\n onMessage: Evt<string>;\n onAuthenticated: Evt<void>;\n onClose: Evt<[number, string]>;\n onOpen: Evt<void>;\n onError: Evt<Error>;\n\n #socket: WebSocket | NodeWebSocket;\n\n #connectTimeout: number;\n #sendTimeout: number;\n #pingTimeout: number;\n #isAuthenticated: boolean = false;\n #timeouts: Set<NodeJS.Timeout>;\n #isClosed: boolean = false;\n #pendingMessages = new Map<string, PendingMessage>();\n #logger: Logger;\n\n #pingIntervalHandle: NodeJS.Timeout | undefined;\n #pingIntervalMs: number = 30_000; // 30 seconds\n #closeUnresponsiveConnectionTimeoutMs: number = 3 * 60 * 1000; // 3 minutes\n\n constructor(socket: WebSocket | NodeWebSocket, options?: ConnectionOptions) {\n this.#socket = socket;\n this.id = options?.id ?? v4();\n\n this.onMessage = new Evt();\n this.onAuthenticated = new Evt<void>();\n this.onClose = new Evt<[number, string]>();\n this.onOpen = new Evt();\n this.onError = new Evt<Error>();\n\n this.#connectTimeout = options?.connectTimeout ?? 5000;\n this.#sendTimeout = options?.sendTimeout ?? 5000;\n this.#pingTimeout = options?.pingTimeout ?? 5000;\n\n this.#timeouts = new Set();\n\n this.#logger = new Logger(\"trigger.dev connection\");\n\n this.onClose.attach(() => {\n this.#isClosed = true;\n\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n for (const timeout of this.#timeouts) {\n clearTimeout(timeout);\n }\n\n this.#timeouts.clear();\n });\n\n this.#socket.onopen = () => {\n this.#isClosed = false;\n this.onOpen.post();\n\n this.#startPingInterval();\n };\n\n this.#socket.onclose = (ev: CloseEvent) => {\n this.onClose.post([ev.code, ev.reason]);\n };\n\n this.#socket.onerror = (ev: ErrorEvent | Event) => {\n const message = \"message\" in ev ? ev.message : \"Unknown error\";\n\n this.onError.post(new Error(message));\n };\n\n this.#socket.onmessage = (event: MessageEvent) => {\n if (this.#isClosed) return;\n\n const data = JSON.parse(event.data.toString());\n const metadata = MESSAGE_META.parse(data);\n\n if (metadata.type === \"ACK\") {\n const pendingMessage = this.#pendingMessages.get(metadata.id);\n\n if (pendingMessage) {\n pendingMessage.onAckReceived();\n this.#pendingMessages.delete(metadata.id);\n }\n }\n\n if (metadata.type === \"MESSAGE\") {\n socket.send(JSON.stringify({ type: \"ACK\", id: metadata.id }));\n\n if (metadata.data === \"AUTHENTICATED\") {\n this.#isAuthenticated = true;\n this.onAuthenticated.post();\n return;\n }\n\n this.onMessage.post(metadata.data);\n }\n };\n\n if (\"pong\" in socket) {\n socket.on(\"pong\", (buf) => {\n const id = buf.toString();\n const pendingMessage = this.#pendingMessages.get(id);\n\n if (pendingMessage?.data === \"ping\") {\n pendingMessage.onAckReceived();\n }\n });\n }\n }\n\n async connect() {\n this.#logger.debug(\"[connect] Attempting to connect\");\n\n return new Promise<void>((resolve, reject) => {\n if (\n this.#socket.readyState === this.#socket.OPEN &&\n this.#isAuthenticated\n ) {\n this.#logger.debug(\"[connect] Already connected, resolving\");\n\n return resolve();\n }\n\n const failTimeout = setTimeout(() => {\n this.#logger.debug(\"[connect] Connection timed out, rejecting\");\n\n reject(new TimeoutError());\n }, this.#connectTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.onAuthenticated.attach(() => {\n clearTimeout(failTimeout);\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(\"[connect] Connected, resolving\");\n\n resolve();\n });\n });\n }\n\n async send(data: string) {\n if (this.#isClosed) throw new NotConnectedError();\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError());\n }, this.#sendTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data,\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n resolve();\n },\n });\n\n this.#socket.send(JSON.stringify({ id, data, type: \"MESSAGE\" }));\n });\n }\n\n close(code?: number, reason?: string) {\n this.#isClosed = true;\n this.onMessage.detach();\n return this.#socket.close(code, reason);\n }\n\n #startPingInterval() {\n // Do the ping stuff here\n let lastSuccessfulPing = new Date();\n this.#pingIntervalHandle = setInterval(async () => {\n if (!this.#socket.OPEN) {\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n\n return;\n }\n\n try {\n await this.#ping();\n lastSuccessfulPing = new Date();\n } catch (err) {\n this.#logger.warn(\"Pong not received in time\");\n if (!(err instanceof TimeoutError)) {\n this.#logger.error(err);\n }\n\n if (\n lastSuccessfulPing.getTime() <\n new Date().getTime() - this.#closeUnresponsiveConnectionTimeoutMs\n ) {\n this.#logger.error(\n \"No pong received in last three minutes, closing connection to Interval and retrying...\"\n );\n if (this.#pingIntervalHandle) {\n clearInterval(this.#pingIntervalHandle);\n this.#pingIntervalHandle = undefined;\n }\n this.#socket.close();\n }\n }\n }, this.#pingIntervalMs);\n }\n\n async #ping() {\n if (!this.#socket.OPEN) {\n throw new NotConnectedError();\n }\n\n if (!(\"ping\" in this.#socket)) {\n // Not supported in web client WebSocket\n throw new Error(\n \"ping not supported in this underlying websocket connection\"\n );\n }\n\n const socket = this.#socket;\n\n return new Promise<void>((resolve, reject) => {\n const id = v4();\n\n const failTimeout = setTimeout(() => {\n reject(new TimeoutError(\"Pong not received in time\"));\n }, this.#pingTimeout);\n\n this.#timeouts.add(failTimeout);\n\n this.#pendingMessages.set(id, {\n data: \"ping\",\n onAckReceived: () => {\n clearTimeout(failTimeout);\n\n this.#timeouts.delete(failTimeout);\n\n this.#logger.debug(`Resolving ping`);\n\n resolve();\n },\n });\n\n this.#logger.debug(`Sending ping ${id} to ${socket.url}`);\n\n socket.ping(id, undefined, (err) => {\n if (err) {\n reject(err);\n }\n });\n });\n }\n}\n","import { AsyncLocalStorage } from \"node:async_hooks\";\nimport { z } from \"zod\";\nimport { TriggerCustomEvent, TriggerFetch } from \"./types\";\n\ntype PerformRequestOptions<TSchema extends z.ZodTypeAny> = {\n version?: string;\n service: string;\n params: unknown;\n endpoint: string;\n response?: {\n schema: TSchema;\n };\n};\n\ntype TriggerRunLocalStorage = {\n performRequest: <TSchema extends z.ZodTypeAny>(\n key: string,\n options: PerformRequestOptions<TSchema>\n ) => Promise<z.infer<TSchema>>;\n sendEvent: (key: string, event: TriggerCustomEvent) => Promise<void>;\n fetch: TriggerFetch;\n workflowId: string;\n appOrigin: string;\n id: string;\n};\n\nexport const triggerRunLocalStorage =\n new AsyncLocalStorage<TriggerRunLocalStorage>();\n","import { TriggerLogger } from \"./types\";\n\ntype CallbackFunction = (\n level: \"DEBUG\" | \"INFO\" | \"WARN\" | \"ERROR\",\n message: string,\n properties?: Record<string, any>\n) => Promise<void>;\n\nexport class ContextLogger implements TriggerLogger {\n constructor(private callback: CallbackFunction) {}\n\n debug(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"DEBUG\", message, properties);\n }\n info(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"INFO\", message, properties);\n }\n warn(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"WARN\", message, properties);\n }\n error(message: string, properties?: Record<string, any>): Promise<void> {\n return this.callback(\"ERROR\", message, properties);\n }\n}\n","import { TriggerClient } from \"../client\";\nimport { LogLevel } from \"internal-bridge\";\nimport { TriggerEvent } from \"../events\";\n\nimport type { TriggerContext } from \"../types\";\nimport { z } from \"zod\";\n\nexport type TriggerOptions<TSchema extends z.ZodTypeAny> = {\n id: string;\n name: string;\n on: TriggerEvent<TSchema>;\n apiKey?: string;\n endpoint?: string;\n logLevel?: LogLevel;\n\n /**\n * The TTL for the trigger in seconds. If the trigger is not run within this time, it will be aborted. Defaults to 3600 seconds (1 hour).\n * @type {number}\n */\n triggerTTL?: number;\n\n run: (event: z.infer<TSchema>, ctx: TriggerContext) => Promise<any>;\n};\n\nexport class Trigger<TSchema extends z.ZodTypeAny> {\n options: TriggerOptions<TSchema>;\n #client: TriggerClient<TSchema> | undefined;\n\n constructor(options: TriggerOptions<TSchema>) {\n this.options = options;\n }\n\n async listen() {\n if (!this.#client) {\n this.#client = new TriggerClient(this, this.options);\n }\n\n return this.#client.listen();\n }\n\n get id() {\n return this.options.id;\n }\n\n get name() {\n return this.options.name;\n }\n\n get endpoint() {\n return this.options.endpoint;\n }\n\n get on() {\n return this.options.on;\n }\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport type { TriggerCustomEvent } from \"./types\";\nimport fetch from \"node-fetch\";\n\nexport function sendEvent(\n idOrKey: string,\n event: TriggerCustomEvent\n): Promise<void> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n // Do it through the API\n return sendEventFetch(idOrKey, event);\n }\n\n return triggerRun.sendEvent(idOrKey, event);\n}\n\nasync function sendEventFetch(\n id: string,\n event: TriggerCustomEvent\n): Promise<void> {\n if (!process.env.TRIGGER_API_KEY) {\n throw new Error(\n `There was a problem sending a custom event: the TRIGGER_API_KEY environment variable is not set`\n );\n }\n\n const baseUrl = process.env.TRIGGER_API_URL || \"https://app.trigger.dev\";\n const url = `${baseUrl}/api/v1/events`;\n\n const response = await fetch(url, {\n method: \"POST\",\n headers: {\n \"Content-Type\": \"application/json\",\n Authorization: `Bearer ${process.env.TRIGGER_API_KEY}`,\n },\n body: JSON.stringify({\n id,\n event,\n }),\n });\n\n if (!response.ok) {\n throw new Error(\n `There was a problem sending a custom event: ${response.statusText}`\n );\n }\n\n return;\n}\n","import { triggerRunLocalStorage } from \"./localStorage\";\nimport { z } from \"zod\";\nimport { FetchOptions, FetchResponse } from \"./types\";\n\nexport function fetch<TBodySchema extends z.ZodTypeAny = z.ZodTypeAny>(\n key: string,\n url: string | URL,\n options: FetchOptions<TBodySchema>\n): Promise<FetchResponse<TBodySchema>> {\n const triggerRun = triggerRunLocalStorage.getStore();\n\n if (!triggerRun) {\n throw new Error(\"Cannot call fetch outside of a trigger run\");\n }\n\n return triggerRun.fetch(key, url, options);\n}\n"],"mappings":"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","names":["fetch","LiteralSchema","z","union","string","number","boolean","null","JsonSchema","lazy","array","record","SerializableSchema","date","SerializableJsonSchema","import_zod","ErrorSchema","z","object","name","string","message","stackTrace","optional","import_zod","LogMessageSchema","z","object","level","enum","message","string","properties","JsonSchema","default","import_zod","DelaySchema","z","object","type","literal","seconds","number","optional","minutes","hours","days","ScheduledForSchema","scheduledFor","string","datetime","WaitSchema","discriminatedUnion","import_zod","CustomEventSchema","z","object","name","string","payload","JsonSchema","context","optional","timestamp","datetime","delay","union","seconds","number","int","minutes","hours","days","until","SerializableCustomEventSchema","SerializableJsonSchema","date","EventMatcherSchema","array","boolean","EventFilterSchema","lazy","record","ScheduledEventPayloadSchema","lastRunAt","coerce","scheduledTime","ScheduleSourceRateSchema","rateOf","min","max","ScheduleSourceCronSchema","cron","ScheduleSourceSchema","ManualWebhookSourceSchema","verifyPayload","enabled","header","event","SlackBlockInteractionSourceSchema","type","literal","blockId","actionIds","SlackViewSubmissionInteractionSourceSchema","callbackIds","SlackInteractionSourceSchema","discriminatedUnion","import_zod","CustomEventTriggerSchema","z","object","type","literal","service","name","string","filter","EventFilterSchema","schema","JsonSchema","optional","WebhookEventTriggerSchema","source","manualRegistration","boolean","default","HttpEventTriggerSchema","ScheduledEventTriggerSchema","ScheduleSourceSchema","SlackInteractionTriggerSchema","SlackInteractionSourceSchema","TriggerMetadataSchema","discriminatedUnion","import_zod","SecureStringSchema","z","object","__secureString","literal","strings","array","string","interpolations","RetrySchema","enabled","boolean","default","factor","number","maxTimeout","minTimeout","maxAttempts","statusCodes","FetchRequestSchema","url","headers","record","union","optional","method","enum","body","any","retry","FetchOutputSchema","status","ok","FetchResponseSchema","import_zod","InitializeRunOnceSchema","z","object","type","enum","CompleteRunOnceSchema","idempotencyKey","string","output","optional","ResolveRunOnceOuputSchema","hasRun","boolean","SerializableJsonSchema","import_zod","customEvent","options","schema","z","any","metadata","type","service","name","filter","event","payload","zodToJsonSchema","scheduleEvent","source","ScheduledEventPayloadSchema","webhookEvent","slugify","eventName","verifyPayload","enabled","manualRegistration","import_zod","HostRPCSchema","TRIGGER_WORKFLOW","request","z","object","id","string","trigger","input","JsonSchema","default","context","meta","environment","workflowId","organizationId","apiKey","isTest","boolean","appOrigin","attempt","number","optional","response","RESOLVE_REQUEST","key","output","runId","RESOLVE_DELAY","REJECT_REQUEST","error","RESOLVE_FETCH_REQUEST","FetchOutputSchema","REJECT_FETCH_REQUEST","RESOLVE_RUN_ONCE","ResolveRunOnceOuputSchema","import_zod","ServerRPCSchema","INITIALIZE_DELAY","request","z","object","runId","string","key","wait","WaitSchema","timestamp","response","boolean","SEND_REQUEST","service","endpoint","params","any","version","optional","SEND_FETCH","fetch","FetchRequestSchema","SEND_LOG","log","message","level","enum","properties","SEND_EVENT","event","CustomEventSchema","INITIALIZE_HOST","apiKey","workflowId","workflowName","trigger","TriggerMetadataSchema","packageVersion","packageName","triggerTTL","number","discriminatedUnion","type","literal","nullable","INITIALIZE_HOST_V2","data","workflow","id","slug","environment","organization","isNew","url","START_WORKFLOW_RUN","COMPLETE_WORKFLOW_RUN","output","SEND_WORKFLOW_ERROR","error","name","stackTrace","INITIALIZE_RUN_ONCE","runOnce","InitializeRunOnceSchema","COMPLETE_RUN_ONCE","CompleteRunOnceSchema","import_zod","MESSAGE_META","z","object","data","any","id","string","type","union","literal","TriggerEnvironmentSchema","enum","import_zod","logLevels","Logger","constructor","name","level","n","tags","indexOf","process","env","TRIGGER_LOG_LEVEL","log","args","console","logClean","error","formattedDateTime","warn","info","debug","Array","isArray","map","join","tag","date","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","formattedHours","formattedMinutes","formattedSeconds","formattedMilliseconds","RPCMessageSchema","z","object","id","string","methodName","data","any","kind","enum","ZodRPC","constructor","options","Map","Logger","connection","sender","receiver","handlers","onMessage","attach","bind","resetConnection","detach","send","key","debug","generateStableId","message","packageMessage","Promise","resolve","reject","set","rawResponseText","parsed","parse","err","catch","rawData","JSON","error","callError","ZodError","stringify","errors","flatten","method","Error","inputs","request","handler","returnValue","preparedResponseText","packageResponse","responseCallback","get","delete","connId","reqKey","reqData","serializedData","inputString","hash","createHash","update","digest","callerData","import_uuid","import_zod","TimeoutError","Error","NotConnectedError","_logger","HostConnection","constructor","socket","options","Map","id","v4","onMessage","Evt","onAuthenticated","onClose","onOpen","onError","connectTimeout","sendTimeout","pingTimeout","Set","Logger","attach","clearInterval","undefined","timeout","clearTimeout","clear","onopen","post","onclose","ev","code","reason","onerror","message","onmessage","event","data","JSON","parse","toString","metadata","MESSAGE_META","type","pendingMessage","get","onAckReceived","delete","send","stringify","on","buf","connect","debug","Promise","resolve","reject","readyState","OPEN","failTimeout","setTimeout","add","set","close","detach","lastSuccessfulPing","Date","setInterval","err","warn","error","getTime","url","ping","triggerRunLocalStorage","AsyncLocalStorage","ContextLogger","constructor","callback","debug","message","properties","info","warn","error","zodErrorMessageOptions","delimiter","error","_connection","_logger","TriggerClient","constructor","trigger","options","Map","apiKey","process","env","TRIGGER_API_KEY","Error","endpoint","TRIGGER_WSS_URL","Logger","id","logLevel","listen","instanceId","isNew","logClean","name","terminalLink","url","fallback","text","log","close","undefined","v4","debug","headers","Authorization","connection","HostConnection","WebSocket","followRedirects","onClose","attach","code","reason","then","catch","Math","round","Promise","resolve","setTimeout","connect","resetConnection","serverRPC","ZodRPC","sender","ServerRPCSchema","receiver","HostRPCSchema","handlers","RESOLVE_DELAY","data","waitCallbacks","get","messageKey","meta","runId","key","RESOLVE_RUN_ONCE","runOnceCallbacks","output","RESOLVE_REQUEST","requestCallbacks","REJECT_REQUEST","reject","RESOLVE_FETCH_REQUEST","fetchCallbacks","REJECT_FETCH_REQUEST","TRIGGER_WORKFLOW","parsedEventData","on","schema","safeParse","input","success","send","timestamp","String","highPrecisionTimestamp","message","generateErrorMessage","issues","fetchFunction","result","set","fetch","toString","method","body","retry","response","status","ok","responseSchema","z","any","parse","ctx","environment","organizationId","isTest","logger","ContextLogger","level","properties","JSON","stringify","sendEvent","event","waitFor","wait","type","seconds","minutes","hours","days","waitUntil","date","scheduledFor","toISOString","runOnce","callback","idempotencyKey","hasRun","callbackResult","runOnceLocalOnly","eventData","triggerRunLocalStorage","run","performRequest","request","service","params","version","workflowId","appOrigin","attempt","anyError","parseAnyError","stackTrace","stack","parsedError","object","string","passthrough","workflowName","metadata","packageVersion","packageName","triggerTTL","methodName","err","TimeoutError","sleep","ms","nanoseconds","hrtime","Trigger","constructor","options","listen","TriggerClient","id","name","endpoint","on","sendEvent","idOrKey","event","triggerRun","triggerRunLocalStorage","getStore","sendEventFetch","id","process","env","TRIGGER_API_KEY","Error","baseUrl","TRIGGER_API_URL","url","response","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","fetch","key","url","options","triggerRun","triggerRunLocalStorage","getStore","Error","getTriggerRun","triggerRunLocalStorage","getStore","secureString","strings","interpolations","__secureString","raw"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trigger.dev/sdk",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.16-next.1",
|
|
4
4
|
"description": "trigger.dev Node.JS SDK",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
"evt": "^2.4.13",
|
|
37
37
|
"node-fetch": "2.6.x",
|
|
38
38
|
"slug": "^6.0.0",
|
|
39
|
+
"terminal-link": "^3.0.0",
|
|
39
40
|
"ulid": "^2.3.0",
|
|
40
41
|
"uuid": "^9.0.0",
|
|
41
42
|
"ws": "^8.11.0",
|