@trigger.dev/sdk 0.2.1 → 0.2.3

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 CHANGED
@@ -15,7 +15,8 @@ declare function customEvent<TSchema extends z.ZodTypeAny>(options: TriggerCusto
15
15
  type TriggerScheduleOptions = z.infer<typeof ScheduleSourceSchema>;
16
16
  declare function scheduleEvent(options: TriggerScheduleOptions): TriggerEvent<typeof ScheduledEventPayloadSchema>;
17
17
 
18
- type LogLevel = "log" | "error" | "warn" | "info" | "debug";
18
+ declare const logLevels: readonly ["disabled", "log", "error", "warn", "info", "debug"];
19
+ type LogLevel = (typeof logLevels)[number];
19
20
 
20
21
  type TriggerCustomEvent = z.infer<typeof SerializableCustomEventSchema>;
21
22
  type WaitForOptions = {
@@ -48,6 +49,11 @@ type TriggerOptions<TSchema extends z.ZodTypeAny> = {
48
49
  apiKey?: string;
49
50
  endpoint?: string;
50
51
  logLevel?: LogLevel;
52
+ /**
53
+ * 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).
54
+ * @type {number}
55
+ */
56
+ triggerTTL?: number;
51
57
  run: (event: z.infer<TSchema>, ctx: TriggerContext) => Promise<any>;
52
58
  };
53
59
  declare class Trigger<TSchema extends z.ZodTypeAny> {
package/dist/index.js CHANGED
@@ -194,7 +194,7 @@ var ScheduledEventTriggerSchema = import_zod6.z.object({
194
194
  type: import_zod6.z.literal("SCHEDULE"),
195
195
  service: import_zod6.z.literal("scheduler"),
196
196
  name: import_zod6.z.string(),
197
- source: JsonSchema
197
+ source: ScheduleSourceSchema
198
198
  });
199
199
  var TriggerMetadataSchema = import_zod6.z.discriminatedUnion("type", [
200
200
  CustomEventTriggerSchema,
@@ -357,7 +357,8 @@ var ServerRPCSchema = {
357
357
  workflowName: import_zod8.z.string(),
358
358
  trigger: TriggerMetadataSchema,
359
359
  packageVersion: import_zod8.z.string(),
360
- packageName: import_zod8.z.string()
360
+ packageName: import_zod8.z.string(),
361
+ triggerTTL: import_zod8.z.number().optional()
361
362
  }),
362
363
  response: import_zod8.z.discriminatedUnion("type", [
363
364
  import_zod8.z.object({
@@ -379,7 +380,7 @@ var ServerRPCSchema = {
379
380
  COMPLETE_WORKFLOW_RUN: {
380
381
  request: import_zod8.z.object({
381
382
  runId: import_zod8.z.string(),
382
- output: import_zod8.z.string(),
383
+ output: import_zod8.z.string().optional(),
383
384
  timestamp: import_zod8.z.string()
384
385
  }),
385
386
  response: import_zod8.z.boolean()
@@ -416,6 +417,68 @@ var TriggerEnvironmentSchema = import_zod9.z.enum([
416
417
  // ../internal-bridge/src/zodRPC.ts
417
418
  var import_zod10 = require("zod");
418
419
  var import_node_crypto = require("crypto");
420
+
421
+ // ../internal-bridge/src/logger.ts
422
+ var logLevels = [
423
+ "disabled",
424
+ "log",
425
+ "error",
426
+ "warn",
427
+ "info",
428
+ "debug"
429
+ ];
430
+ var _name, _level;
431
+ var Logger = class {
432
+ constructor(name2, level = "disabled") {
433
+ __privateAdd(this, _name, void 0);
434
+ __privateAdd(this, _level, void 0);
435
+ __privateSet(this, _name, name2);
436
+ __privateSet(this, _level, logLevels.indexOf(process.env.TRIGGER_LOG_LEVEL ?? level));
437
+ }
438
+ log(...args) {
439
+ if (__privateGet(this, _level) < 1)
440
+ return;
441
+ console.log(`[${__privateGet(this, _name)}] `, ...args);
442
+ }
443
+ error(...args) {
444
+ if (__privateGet(this, _level) < 2)
445
+ return;
446
+ console.error(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
447
+ }
448
+ warn(...args) {
449
+ if (__privateGet(this, _level) < 3)
450
+ return;
451
+ console.warn(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
452
+ }
453
+ info(...args) {
454
+ if (__privateGet(this, _level) < 4)
455
+ return;
456
+ console.info(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
457
+ }
458
+ debug(...args) {
459
+ if (__privateGet(this, _level) < 5)
460
+ return;
461
+ console.debug(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
462
+ }
463
+ };
464
+ __name(Logger, "Logger");
465
+ _name = new WeakMap();
466
+ _level = new WeakMap();
467
+ function formattedDateTime() {
468
+ const date = new Date();
469
+ const hours = date.getHours();
470
+ const minutes = date.getMinutes();
471
+ const seconds = date.getSeconds();
472
+ const milliseconds = date.getMilliseconds();
473
+ const formattedHours = hours < 10 ? `0${hours}` : hours;
474
+ const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;
475
+ const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;
476
+ const formattedMilliseconds = milliseconds < 10 ? `00${milliseconds}` : milliseconds < 100 ? `0${milliseconds}` : milliseconds;
477
+ return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;
478
+ }
479
+ __name(formattedDateTime, "formattedDateTime");
480
+
481
+ // ../internal-bridge/src/zodRPC.ts
419
482
  var RPCMessageSchema = import_zod10.z.object({
420
483
  id: import_zod10.z.string(),
421
484
  methodName: import_zod10.z.string(),
@@ -425,7 +488,7 @@ var RPCMessageSchema = import_zod10.z.object({
425
488
  "RESPONSE"
426
489
  ])
427
490
  });
428
- var _connection, _sender, _receiver, _handlers, _pendingCalls, _onMessage, onMessage_fn, _onCall, onCall_fn, _onResponse, onResponse_fn, _handleCall, handleCall_fn, _handleResponse, handleResponse_fn;
491
+ var _connection, _sender, _receiver, _handlers, _pendingCalls, _logger, _onMessage, onMessage_fn, _onCall, onCall_fn, _onResponse, onResponse_fn, _handleCall, handleCall_fn, _handleResponse, handleResponse_fn;
429
492
  var ZodRPC = class {
430
493
  constructor(options) {
431
494
  __privateAdd(this, _onMessage);
@@ -438,6 +501,7 @@ var ZodRPC = class {
438
501
  __privateAdd(this, _receiver, void 0);
439
502
  __privateAdd(this, _handlers, void 0);
440
503
  __privateAdd(this, _pendingCalls, /* @__PURE__ */ new Map());
504
+ __privateAdd(this, _logger, new Logger("ZodRPC"));
441
505
  __privateSet(this, _connection, options.connection);
442
506
  __privateSet(this, _sender, options.sender);
443
507
  __privateSet(this, _receiver, options.receiver);
@@ -475,6 +539,7 @@ _sender = new WeakMap();
475
539
  _receiver = new WeakMap();
476
540
  _handlers = new WeakMap();
477
541
  _pendingCalls = new WeakMap();
542
+ _logger = new WeakMap();
478
543
  _onMessage = new WeakSet();
479
544
  onMessage_fn = /* @__PURE__ */ __name(async function(rawData) {
480
545
  try {
@@ -486,7 +551,7 @@ onMessage_fn = /* @__PURE__ */ __name(async function(rawData) {
486
551
  await __privateMethod(this, _onResponse, onResponse_fn).call(this, data);
487
552
  }
488
553
  } catch (err) {
489
- console.error(err);
554
+ __privateGet(this, _logger).error(err);
490
555
  }
491
556
  }, "#onMessage");
492
557
  _onCall = new WeakSet();
@@ -495,10 +560,10 @@ onCall_fn = /* @__PURE__ */ __name(async function(message) {
495
560
  await __privateMethod(this, _handleCall, handleCall_fn).call(this, message);
496
561
  } catch (callError) {
497
562
  if (callError instanceof import_zod10.ZodError) {
498
- console.error(`[ZodRPC][foobar] Received invalid call:
563
+ __privateGet(this, _logger).error(`[ZodRPC] Received invalid call:
499
564
  ${JSON.stringify(message)}: `, callError.errors);
500
565
  } else {
501
- console.error(`[ZodRPC] Error handling call:
566
+ __privateGet(this, _logger).error(`[ZodRPC] Error handling call:
502
567
  ${JSON.stringify(message)}: `, callError);
503
568
  }
504
569
  }
@@ -509,11 +574,11 @@ onResponse_fn = /* @__PURE__ */ __name(async function(message1) {
509
574
  await __privateMethod(this, _handleResponse, handleResponse_fn).call(this, message1);
510
575
  } catch (callError) {
511
576
  if (callError instanceof import_zod10.ZodError) {
512
- console.error(`[ZodRPC] Received invalid response
577
+ __privateGet(this, _logger).error(`[ZodRPC] Received invalid response
513
578
 
514
579
  ${JSON.stringify(message1)}: `, callError.flatten());
515
580
  } else {
516
- console.error(`[ZodRPC] Error handling response
581
+ __privateGet(this, _logger).error(`[ZodRPC] Error handling response
517
582
 
518
583
  ${JSON.stringify(message1)}: `, callError);
519
584
  }
@@ -527,6 +592,9 @@ handleCall_fn = /* @__PURE__ */ __name(async function(message2) {
527
592
  if (!method) {
528
593
  throw new Error(`There is no method for ${message2.methodName}`);
529
594
  }
595
+ __privateGet(this, _logger).debug("Received call", {
596
+ message: message2
597
+ });
530
598
  const inputs = method.request.parse(message2.data);
531
599
  const handler = __privateGet(this, _handlers)[methodName];
532
600
  const returnValue = await handler(inputs);
@@ -538,7 +606,7 @@ handleCall_fn = /* @__PURE__ */ __name(async function(message2) {
538
606
  try {
539
607
  await __privateGet(this, _connection).send(preparedResponseText);
540
608
  } catch (err) {
541
- console.error("Failed sending response", preparedResponseText, err);
609
+ __privateGet(this, _logger).error("Failed sending response", preparedResponseText, err);
542
610
  }
543
611
  return;
544
612
  }, "#handleCall");
@@ -578,72 +646,13 @@ function packageResponse({ id, methodName, data }) {
578
646
  }
579
647
  __name(packageResponse, "packageResponse");
580
648
 
581
- // ../internal-bridge/src/logger.ts
582
- var logLevels = [
583
- "log",
584
- "error",
585
- "warn",
586
- "info",
587
- "debug"
588
- ];
589
- var _name, _level;
590
- var Logger = class {
591
- constructor(name2, level = "info") {
592
- __privateAdd(this, _name, void 0);
593
- __privateAdd(this, _level, void 0);
594
- __privateSet(this, _name, name2);
595
- __privateSet(this, _level, logLevels.indexOf(process.env.TRIGGER_LOG_LEVEL ?? level));
596
- }
597
- log(...args) {
598
- if (__privateGet(this, _level) < 0)
599
- return;
600
- console.log(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
601
- }
602
- error(...args) {
603
- if (__privateGet(this, _level) < 1)
604
- return;
605
- console.error(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
606
- }
607
- warn(...args) {
608
- if (__privateGet(this, _level) < 2)
609
- return;
610
- console.warn(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
611
- }
612
- info(...args) {
613
- if (__privateGet(this, _level) < 3)
614
- return;
615
- console.info(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
616
- }
617
- debug(...args) {
618
- if (__privateGet(this, _level) < 4)
619
- return;
620
- console.debug(`[${formattedDateTime()}] [${__privateGet(this, _name)}] `, ...args);
621
- }
622
- };
623
- __name(Logger, "Logger");
624
- _name = new WeakMap();
625
- _level = new WeakMap();
626
- function formattedDateTime() {
627
- const date = new Date();
628
- const hours = date.getHours();
629
- const minutes = date.getMinutes();
630
- const seconds = date.getSeconds();
631
- const milliseconds = date.getMilliseconds();
632
- const formattedHours = hours < 10 ? `0${hours}` : hours;
633
- const formattedMinutes = minutes < 10 ? `0${minutes}` : minutes;
634
- const formattedSeconds = seconds < 10 ? `0${seconds}` : seconds;
635
- const formattedMilliseconds = milliseconds < 10 ? `00${milliseconds}` : milliseconds < 100 ? `0${milliseconds}` : milliseconds;
636
- return `${formattedHours}:${formattedMinutes}:${formattedSeconds}.${formattedMilliseconds}`;
637
- }
638
- __name(formattedDateTime, "formattedDateTime");
639
-
640
649
  // src/client.ts
641
650
  var import_uuid2 = require("uuid");
642
651
  var import_ws = require("ws");
643
652
 
644
653
  // package.json
645
654
  var name = "@trigger.dev/sdk";
646
- var version = "0.2.1";
655
+ var version = "0.2.3";
647
656
 
648
657
  // src/connection.ts
649
658
  var import_uuid = require("uuid");
@@ -654,7 +663,7 @@ __name(TimeoutError, "TimeoutError");
654
663
  var NotConnectedError = class extends Error {
655
664
  };
656
665
  __name(NotConnectedError, "NotConnectedError");
657
- var _socket, _connectTimeout, _sendTimeout, _pingTimeout, _isAuthenticated, _timeouts, _isClosed, _pendingMessages, _logger, _pingIntervalHandle, _pingIntervalMs, _closeUnresponsiveConnectionTimeoutMs, _startPingInterval, startPingInterval_fn, _ping, ping_fn;
666
+ var _socket, _connectTimeout, _sendTimeout, _pingTimeout, _isAuthenticated, _timeouts, _isClosed, _pendingMessages, _logger2, _pingIntervalHandle, _pingIntervalMs, _closeUnresponsiveConnectionTimeoutMs, _startPingInterval, startPingInterval_fn, _ping, ping_fn;
658
667
  var HostConnection = class {
659
668
  constructor(socket, options) {
660
669
  __privateAdd(this, _startPingInterval);
@@ -667,7 +676,7 @@ var HostConnection = class {
667
676
  __privateAdd(this, _timeouts, void 0);
668
677
  __privateAdd(this, _isClosed, false);
669
678
  __privateAdd(this, _pendingMessages, /* @__PURE__ */ new Map());
670
- __privateAdd(this, _logger, void 0);
679
+ __privateAdd(this, _logger2, void 0);
671
680
  __privateAdd(this, _pingIntervalHandle, void 0);
672
681
  __privateAdd(this, _pingIntervalMs, 3e4);
673
682
  __privateAdd(this, _closeUnresponsiveConnectionTimeoutMs, 3 * 60 * 1e3);
@@ -682,7 +691,7 @@ var HostConnection = class {
682
691
  __privateSet(this, _sendTimeout, options?.sendTimeout ?? 5e3);
683
692
  __privateSet(this, _pingTimeout, options?.pingTimeout ?? 5e3);
684
693
  __privateSet(this, _timeouts, /* @__PURE__ */ new Set());
685
- __privateSet(this, _logger, new Logger("trigger.dev connection"));
694
+ __privateSet(this, _logger2, new Logger("trigger.dev connection"));
686
695
  this.onClose.attach(() => {
687
696
  __privateSet(this, _isClosed, true);
688
697
  if (__privateGet(this, _pingIntervalHandle)) {
@@ -745,21 +754,21 @@ var HostConnection = class {
745
754
  }
746
755
  }
747
756
  async connect() {
748
- __privateGet(this, _logger).debug("[connect] Attempting to connect");
757
+ __privateGet(this, _logger2).debug("[connect] Attempting to connect");
749
758
  return new Promise((resolve, reject) => {
750
759
  if (__privateGet(this, _socket).readyState === __privateGet(this, _socket).OPEN && __privateGet(this, _isAuthenticated)) {
751
- __privateGet(this, _logger).debug("[connect] Already connected, resolving");
760
+ __privateGet(this, _logger2).debug("[connect] Already connected, resolving");
752
761
  return resolve();
753
762
  }
754
763
  const failTimeout = setTimeout(() => {
755
- __privateGet(this, _logger).debug("[connect] Connection timed out, rejecting");
764
+ __privateGet(this, _logger2).debug("[connect] Connection timed out, rejecting");
756
765
  reject(new TimeoutError());
757
766
  }, __privateGet(this, _connectTimeout));
758
767
  __privateGet(this, _timeouts).add(failTimeout);
759
768
  this.onAuthenticated.attach(() => {
760
769
  clearTimeout(failTimeout);
761
770
  __privateGet(this, _timeouts).delete(failTimeout);
762
- __privateGet(this, _logger).debug("[connect] Connected, resolving");
771
+ __privateGet(this, _logger2).debug("[connect] Connected, resolving");
763
772
  resolve();
764
773
  });
765
774
  });
@@ -803,7 +812,7 @@ _isAuthenticated = new WeakMap();
803
812
  _timeouts = new WeakMap();
804
813
  _isClosed = new WeakMap();
805
814
  _pendingMessages = new WeakMap();
806
- _logger = new WeakMap();
815
+ _logger2 = new WeakMap();
807
816
  _pingIntervalHandle = new WeakMap();
808
817
  _pingIntervalMs = new WeakMap();
809
818
  _closeUnresponsiveConnectionTimeoutMs = new WeakMap();
@@ -822,12 +831,12 @@ startPingInterval_fn = /* @__PURE__ */ __name(function() {
822
831
  await __privateMethod(this, _ping, ping_fn).call(this);
823
832
  lastSuccessfulPing = new Date();
824
833
  } catch (err) {
825
- __privateGet(this, _logger).warn("Pong not received in time");
834
+ __privateGet(this, _logger2).warn("Pong not received in time");
826
835
  if (!(err instanceof TimeoutError)) {
827
- __privateGet(this, _logger).error(err);
836
+ __privateGet(this, _logger2).error(err);
828
837
  }
829
838
  if (lastSuccessfulPing.getTime() < new Date().getTime() - __privateGet(this, _closeUnresponsiveConnectionTimeoutMs)) {
830
- __privateGet(this, _logger).error("No pong received in last three minutes, closing connection to Interval and retrying...");
839
+ __privateGet(this, _logger2).error("No pong received in last three minutes, closing connection to Interval and retrying...");
831
840
  if (__privateGet(this, _pingIntervalHandle)) {
832
841
  clearInterval(__privateGet(this, _pingIntervalHandle));
833
842
  __privateSet(this, _pingIntervalHandle, void 0);
@@ -857,11 +866,11 @@ ping_fn = /* @__PURE__ */ __name(async function() {
857
866
  onAckReceived: () => {
858
867
  clearTimeout(failTimeout);
859
868
  __privateGet(this, _timeouts).delete(failTimeout);
860
- __privateGet(this, _logger).debug(`Resolving ping`);
869
+ __privateGet(this, _logger2).debug(`Resolving ping`);
861
870
  resolve();
862
871
  }
863
872
  });
864
- __privateGet(this, _logger).debug(`Sending ping ${id} to ${socket.url}`);
873
+ __privateGet(this, _logger2).debug(`Sending ping ${id} to ${socket.url}`);
865
874
  socket.ping(id, void 0, (err) => {
866
875
  if (err) {
867
876
  reject(err);
@@ -895,7 +904,7 @@ var ContextLogger = class {
895
904
  __name(ContextLogger, "ContextLogger");
896
905
 
897
906
  // src/client.ts
898
- var _trigger, _options, _connection2, _serverRPC, _apiKey, _endpoint, _isConnected, _retryIntervalMs, _logger2, _closedByUser, _responseCompleteCallbacks, _waitForCallbacks, _initializeConnection, initializeConnection_fn, _initializeRPC, initializeRPC_fn, _initializeHost, initializeHost_fn, _send, send_fn;
907
+ var _trigger, _options, _connection2, _serverRPC, _apiKey, _endpoint, _isConnected, _retryIntervalMs, _logger3, _closedByUser, _responseCompleteCallbacks, _waitForCallbacks, _initializeConnection, initializeConnection_fn, _initializeRPC, initializeRPC_fn, _initializeHost, initializeHost_fn, _send, send_fn;
899
908
  var TriggerClient = class {
900
909
  constructor(trigger, options) {
901
910
  __privateAdd(this, _initializeConnection);
@@ -910,7 +919,7 @@ var TriggerClient = class {
910
919
  __privateAdd(this, _endpoint, void 0);
911
920
  __privateAdd(this, _isConnected, false);
912
921
  __privateAdd(this, _retryIntervalMs, 3e3);
913
- __privateAdd(this, _logger2, void 0);
922
+ __privateAdd(this, _logger3, void 0);
914
923
  __privateAdd(this, _closedByUser, false);
915
924
  __privateAdd(this, _responseCompleteCallbacks, /* @__PURE__ */ new Map());
916
925
  __privateAdd(this, _waitForCallbacks, /* @__PURE__ */ new Map());
@@ -922,7 +931,7 @@ var TriggerClient = class {
922
931
  }
923
932
  __privateSet(this, _apiKey, apiKey);
924
933
  __privateSet(this, _endpoint, __privateGet(this, _options).endpoint ?? "wss://wss.trigger.dev/ws");
925
- __privateSet(this, _logger2, new Logger("trigger.dev", __privateGet(this, _options).logLevel));
934
+ __privateSet(this, _logger3, new Logger("trigger.dev", __privateGet(this, _options).logLevel));
926
935
  }
927
936
  async listen(instanceId) {
928
937
  await __privateMethod(this, _initializeConnection, initializeConnection_fn).call(this, instanceId);
@@ -947,14 +956,14 @@ _apiKey = new WeakMap();
947
956
  _endpoint = new WeakMap();
948
957
  _isConnected = new WeakMap();
949
958
  _retryIntervalMs = new WeakMap();
950
- _logger2 = new WeakMap();
959
+ _logger3 = new WeakMap();
951
960
  _closedByUser = new WeakMap();
952
961
  _responseCompleteCallbacks = new WeakMap();
953
962
  _waitForCallbacks = new WeakMap();
954
963
  _initializeConnection = new WeakSet();
955
964
  initializeConnection_fn = /* @__PURE__ */ __name(async function(instanceId) {
956
965
  const id = instanceId ?? (0, import_uuid2.v4)();
957
- __privateGet(this, _logger2).debug("Initializing connection", {
966
+ __privateGet(this, _logger3).debug("Initializing connection", {
958
967
  id,
959
968
  endpoint: __privateGet(this, _endpoint)
960
969
  });
@@ -969,29 +978,29 @@ initializeConnection_fn = /* @__PURE__ */ __name(async function(instanceId) {
969
978
  });
970
979
  connection.onClose.attach(async ([code, reason]) => {
971
980
  if (__privateGet(this, _closedByUser)) {
972
- __privateGet(this, _logger2).debug("Connection closed by user, so we won't reconnect");
981
+ __privateGet(this, _logger3).debug("Connection closed by user, so we won't reconnect");
973
982
  __privateSet(this, _closedByUser, false);
974
983
  return;
975
984
  }
976
- __privateGet(this, _logger2).error(`\u{1F6A9} Could not connect to trigger.dev (code ${code})`);
985
+ __privateGet(this, _logger3).error(`\u{1F6A9} Could not connect to trigger.dev (code ${code})`);
977
986
  if (reason) {
978
- __privateGet(this, _logger2).error("Reason:", reason);
987
+ __privateGet(this, _logger3).error("Reason:", reason);
979
988
  }
980
989
  if (!__privateGet(this, _isConnected))
981
990
  return;
982
- __privateGet(this, _logger2).log("\u{1F50C} Reconnecting to trigger.dev...");
991
+ __privateGet(this, _logger3).log("\u{1F50C} Reconnecting to trigger.dev...");
983
992
  __privateSet(this, _isConnected, false);
984
993
  while (!__privateGet(this, _isConnected)) {
985
994
  __privateMethod(this, _initializeConnection, initializeConnection_fn).call(this, id).then(() => {
986
- __privateGet(this, _logger2).log("\u26A1 Reconnection successful");
995
+ __privateGet(this, _logger3).log("\u26A1 Reconnection successful");
987
996
  }).catch(() => {
988
997
  });
989
- __privateGet(this, _logger2).debug(`Reconnection failed, retrying in ${Math.round(__privateGet(this, _retryIntervalMs) / 1e3)} seconds`, id);
998
+ __privateGet(this, _logger3).debug(`Reconnection failed, retrying in ${Math.round(__privateGet(this, _retryIntervalMs) / 1e3)} seconds`, id);
990
999
  await new Promise((resolve) => setTimeout(resolve, __privateGet(this, _retryIntervalMs)));
991
1000
  }
992
1001
  });
993
1002
  await connection.connect();
994
- __privateGet(this, _logger2).debug("Connection initialized", id);
1003
+ __privateGet(this, _logger3).debug("Connection initialized", id);
995
1004
  __privateSet(this, _connection2, connection);
996
1005
  __privateSet(this, _isConnected, true);
997
1006
  if (__privateGet(this, _serverRPC)) {
@@ -1010,10 +1019,10 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1010
1019
  receiver: HostRPCSchema,
1011
1020
  handlers: {
1012
1021
  RESOLVE_DELAY: async (data) => {
1013
- __privateGet(this, _logger2).debug("Handling RESOLVE_DELAY", data);
1022
+ __privateGet(this, _logger3).debug("Handling RESOLVE_DELAY", data);
1014
1023
  const waitCallbacks = __privateGet(this, _waitForCallbacks).get(messageKey(data.meta.runId, data.key));
1015
1024
  if (!waitCallbacks) {
1016
- __privateGet(this, _logger2).debug(`Could not find wait callbacks for wait ID ${messageKey(data.meta.runId, data.key)}. This can happen when a workflow run is resumed`);
1025
+ __privateGet(this, _logger3).debug(`Could not find wait callbacks for wait ID ${messageKey(data.meta.runId, data.key)}. This can happen when a workflow run is resumed`);
1017
1026
  return true;
1018
1027
  }
1019
1028
  const { resolve } = waitCallbacks;
@@ -1021,10 +1030,10 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1021
1030
  return true;
1022
1031
  },
1023
1032
  RESOLVE_REQUEST: async (data) => {
1024
- __privateGet(this, _logger2).debug("Handling RESOLVE_REQUEST", data);
1033
+ __privateGet(this, _logger3).debug("Handling RESOLVE_REQUEST", data);
1025
1034
  const requestCallbacks = __privateGet(this, _responseCompleteCallbacks).get(messageKey(data.meta.runId, data.key));
1026
1035
  if (!requestCallbacks) {
1027
- __privateGet(this, _logger2).debug(`Could not find request callbacks for request ID ${messageKey(data.meta.runId, data.key)}. This can happen when a workflow run is resumed`);
1036
+ __privateGet(this, _logger3).debug(`Could not find request callbacks for request ID ${messageKey(data.meta.runId, data.key)}. This can happen when a workflow run is resumed`);
1028
1037
  return true;
1029
1038
  }
1030
1039
  const { resolve } = requestCallbacks;
@@ -1032,10 +1041,10 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1032
1041
  return true;
1033
1042
  },
1034
1043
  REJECT_REQUEST: async (data) => {
1035
- __privateGet(this, _logger2).debug("Handling REJECT_REQUEST", data);
1044
+ __privateGet(this, _logger3).debug("Handling REJECT_REQUEST", data);
1036
1045
  const requestCallbacks = __privateGet(this, _responseCompleteCallbacks).get(messageKey(data.meta.runId, data.key));
1037
1046
  if (!requestCallbacks) {
1038
- __privateGet(this, _logger2).debug(`Could not find request callbacks for request ID ${messageKey(data.meta.runId, data.key)}. This can happen when a workflow run is resumed`);
1047
+ __privateGet(this, _logger3).debug(`Could not find request callbacks for request ID ${messageKey(data.meta.runId, data.key)}. This can happen when a workflow run is resumed`);
1039
1048
  return true;
1040
1049
  }
1041
1050
  const { reject } = requestCallbacks;
@@ -1043,7 +1052,7 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1043
1052
  return true;
1044
1053
  },
1045
1054
  TRIGGER_WORKFLOW: async (data) => {
1046
- __privateGet(this, _logger2).debug("Handling TRIGGER_WORKFLOW", data);
1055
+ __privateGet(this, _logger3).debug("Handling TRIGGER_WORKFLOW", data);
1047
1056
  const ctx = {
1048
1057
  id: data.id,
1049
1058
  environment: data.meta.environment,
@@ -1112,7 +1121,7 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1112
1121
  }
1113
1122
  };
1114
1123
  const eventData = __privateGet(this, _options).on.schema.parse(data.trigger.input);
1115
- __privateGet(this, _logger2).debug("Parsed event data", eventData);
1124
+ __privateGet(this, _logger3).debug("Parsed event data", eventData);
1116
1125
  triggerRunLocalStorage.run({
1117
1126
  performRequest: async (key, options) => {
1118
1127
  const result = new Promise((resolve, reject) => {
@@ -1143,12 +1152,13 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1143
1152
  });
1144
1153
  }
1145
1154
  }, () => {
1146
- __privateGet(this, _logger2).debug("Running trigger...");
1155
+ __privateGet(this, _logger3).debug("Running trigger...");
1147
1156
  serverRPC.send("START_WORKFLOW_RUN", {
1148
1157
  runId: data.id,
1149
1158
  timestamp: String(highPrecisionTimestamp())
1150
1159
  }).then(() => {
1151
1160
  return __privateGet(this, _trigger).options.run(eventData, ctx).then((output) => {
1161
+ __privateGet(this, _logger3).log(`Completed workflow '${__privateGet(this, _options).name}', run ${data.id} \u{1F3C3}`);
1152
1162
  return serverRPC.send("COMPLETE_WORKFLOW_RUN", {
1153
1163
  runId: data.id,
1154
1164
  output: JSON.stringify(output),
@@ -1188,7 +1198,7 @@ initializeRPC_fn = /* @__PURE__ */ __name(async function() {
1188
1198
  }
1189
1199
  }
1190
1200
  });
1191
- __privateGet(this, _logger2).debug("Successfully initialized RPC with server");
1201
+ __privateGet(this, _logger3).debug("Successfully initialized RPC with server");
1192
1202
  __privateSet(this, _serverRPC, serverRPC);
1193
1203
  }, "#initializeRPC");
1194
1204
  _initializeHost = new WeakSet();
@@ -1205,12 +1215,13 @@ initializeHost_fn = /* @__PURE__ */ __name(async function() {
1205
1215
  workflowName: __privateGet(this, _trigger).name,
1206
1216
  trigger: __privateGet(this, _trigger).on.metadata,
1207
1217
  packageVersion: version,
1208
- packageName: name
1218
+ packageName: name,
1219
+ triggerTTL: __privateGet(this, _options).triggerTTL
1209
1220
  });
1210
1221
  if (response?.type === "error") {
1211
1222
  throw new Error(response.message);
1212
1223
  }
1213
- __privateGet(this, _logger2).debug("Successfully initialized workflow with server");
1224
+ __privateGet(this, _logger3).debug("Successfully initialized workflow with server");
1214
1225
  }, "#initializeHost");
1215
1226
  _send = new WeakSet();
1216
1227
  send_fn = /* @__PURE__ */ __name(async function(methodName, request) {
@@ -1218,12 +1229,12 @@ send_fn = /* @__PURE__ */ __name(async function(methodName, request) {
1218
1229
  throw new Error("serverRPC not initialized");
1219
1230
  while (true) {
1220
1231
  try {
1221
- __privateGet(this, _logger2).debug(`Sending RPC request to server: ${methodName}`, request);
1232
+ __privateGet(this, _logger3).debug(`Sending RPC request to server: ${methodName}`, request);
1222
1233
  return await __privateGet(this, _serverRPC).send(methodName, request);
1223
1234
  } catch (err) {
1224
1235
  if (err instanceof TimeoutError) {
1225
- __privateGet(this, _logger2).log(`RPC call timed out, retrying in ${Math.round(__privateGet(this, _retryIntervalMs) / 1e3)}s...`);
1226
- __privateGet(this, _logger2).error(err);
1236
+ __privateGet(this, _logger3).log(`RPC call timed out, retrying in ${Math.round(__privateGet(this, _retryIntervalMs) / 1e3)}s...`);
1237
+ __privateGet(this, _logger3).error(err);
1227
1238
  await sleep(__privateGet(this, _retryIntervalMs));
1228
1239
  } else {
1229
1240
  throw err;
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","../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"],"sourcesContent":["export * from \"./events\";\nexport * from \"./trigger\";\nexport * from \"./customEvents\";\n\nimport { triggerRunLocalStorage } from \"./localStorage\";\n\nexport function getTriggerRun() {\n return triggerRunLocalStorage.getStore();\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});\n\nexport const SerializableCustomEventSchema = z.object({\n name: z.string(),\n payload: SerializableJsonSchema,\n context: SerializableJsonSchema.optional(),\n timestamp: z.string().datetime().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 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","import { z } from \"zod\";\nimport { EventFilterSchema } 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});\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,\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: JsonSchema,\n});\nexport type ScheduledEventTrigger = z.infer<typeof ScheduledEventTriggerSchema>;\n\nexport const TriggerMetadataSchema = z.discriminatedUnion(\"type\", [\n CustomEventTriggerSchema,\n WebhookEventTriggerSchema,\n HttpEventTriggerSchema,\n ScheduledEventTriggerSchema,\n]);\n\nexport type TriggerMetadata = z.infer<typeof TriggerMetadataSchema>;\n","import {\n EventFilterSchema,\n TriggerMetadataSchema,\n ScheduleSourceSchema,\n ScheduledEventPayloadSchema,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\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};\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] },\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","import { z } from \"zod\";\nimport { JsonSchema } 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 }),\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};\n\nexport type HostRPC = typeof HostRPCSchema;\n","import {\n CustomEventSchema,\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 }),\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 }),\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(),\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};\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\";\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\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 console.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 console.error(\n `[ZodRPC][foobar] Received invalid call:\\n${JSON.stringify(\n message\n )}: `,\n callError.errors\n );\n } else {\n console.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 console.error(\n `[ZodRPC] Received invalid response\\n\\n${JSON.stringify(message)}: `,\n callError.flatten()\n );\n } else {\n console.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.infer<SenderSchema[K][\"request\"]>\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 // 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 console.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\nexport type LogLevel = \"log\" | \"error\" | \"warn\" | \"info\" | \"debug\";\n\nconst logLevels: Array<LogLevel> = [\"log\", \"error\", \"warn\", \"info\", \"debug\"];\n\nexport class Logger {\n #name: string;\n readonly #level: number;\n\n constructor(name: string, level: LogLevel = \"info\") {\n this.#name = name;\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 < 0) return;\n\n console.log(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n error(...args: any[]) {\n if (this.#level < 1) return;\n\n console.error(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n warn(...args: any[]) {\n if (this.#level < 2) return;\n\n console.warn(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n info(...args: any[]) {\n if (this.#level < 3) return;\n\n console.info(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n debug(...args: any[]) {\n if (this.#level < 4) return;\n\n console.debug(`[${formattedDateTime()}] [${this.#name}] `, ...args);\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 {\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 } from \"./types\";\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 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 = this.#options.endpoint ?? \"wss://wss.trigger.dev/ws\";\n this.#logger = new Logger(\"trigger.dev\", this.#options.logLevel);\n }\n\n async listen(instanceId?: string) {\n await this.#initializeConnection(instanceId);\n this.#initializeRPC();\n this.#initializeHost();\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_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 TRIGGER_WORKFLOW: async (data) => {\n this.#logger.debug(\"Handling TRIGGER_WORKFLOW\", data);\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 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 };\n\n const eventData = this.#options.on.schema.parse(data.trigger.input);\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 },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\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 },\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 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 console.error(anyError);\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 });\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 } from \"./types\";\n\ntype PerformRequestOptions<TSchema extends z.ZodTypeAny> = {\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};\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 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\";\nimport { ulid } from \"ulid\";\n\nexport function sendEvent(\n id: 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(event);\n }\n\n return triggerRun.sendEvent(id, event);\n}\n\nasync function sendEventFetch(event: TriggerCustomEvent): 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 id = ulid();\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"],"mappings":"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","names":["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","SerializableCustomEventSchema","SerializableJsonSchema","EventMatcherSchema","union","array","number","boolean","EventFilterSchema","lazy","record","ScheduledEventPayloadSchema","scheduledTime","coerce","date","ScheduleSourceRateSchema","rateOf","minutes","min","max","int","hours","days","ScheduleSourceCronSchema","cron","ScheduleSourceSchema","import_zod","CustomEventTriggerSchema","z","object","type","literal","service","name","string","filter","EventFilterSchema","WebhookEventTriggerSchema","source","JsonSchema","HttpEventTriggerSchema","ScheduledEventTriggerSchema","TriggerMetadataSchema","discriminatedUnion","customEvent","options","metadata","type","service","name","filter","event","schema","scheduleEvent","source","ScheduledEventPayloadSchema","import_zod","HostRPCSchema","TRIGGER_WORKFLOW","request","z","object","id","string","trigger","input","JsonSchema","default","context","meta","environment","workflowId","organizationId","apiKey","response","boolean","RESOLVE_REQUEST","key","output","runId","RESOLVE_DELAY","REJECT_REQUEST","error","import_zod","ServerRPCSchema","INITIALIZE_DELAY","request","z","object","runId","string","key","wait","WaitSchema","timestamp","response","boolean","SEND_REQUEST","service","endpoint","params","any","SEND_LOG","log","message","level","enum","properties","optional","SEND_EVENT","event","CustomEventSchema","INITIALIZE_HOST","apiKey","workflowId","workflowName","trigger","TriggerMetadataSchema","packageVersion","packageName","discriminatedUnion","type","literal","nullable","START_WORKFLOW_RUN","COMPLETE_WORKFLOW_RUN","output","SEND_WORKFLOW_ERROR","error","name","stackTrace","import_zod","MESSAGE_META","z","object","data","any","id","string","type","union","literal","TriggerEnvironmentSchema","enum","import_zod","RPCMessageSchema","z","object","id","string","methodName","data","any","kind","enum","ZodRPC","constructor","options","Map","connection","sender","receiver","handlers","onMessage","attach","bind","resetConnection","detach","send","key","generateStableId","message","packageMessage","Promise","resolve","reject","set","rawResponseText","parsed","parse","err","catch","rawData","JSON","console","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","logLevels","Logger","constructor","name","level","indexOf","process","env","TRIGGER_LOG_LEVEL","log","args","console","formattedDateTime","error","warn","info","debug","date","Date","hours","getHours","minutes","getMinutes","seconds","getSeconds","milliseconds","getMilliseconds","formattedHours","formattedMinutes","formattedSeconds","formattedMilliseconds","import_uuid","TimeoutError","Error","NotConnectedError","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","_connection","_logger","TriggerClient","constructor","trigger","options","Map","apiKey","process","env","TRIGGER_API_KEY","Error","endpoint","Logger","logLevel","listen","instanceId","close","undefined","id","v4","debug","headers","Authorization","connection","HostConnection","WebSocket","followRedirects","onClose","attach","code","reason","error","log","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_REQUEST","requestCallbacks","output","REJECT_REQUEST","reject","TRIGGER_WORKFLOW","ctx","environment","organizationId","logger","ContextLogger","level","message","properties","send","JSON","stringify","timestamp","String","highPrecisionTimestamp","sendEvent","event","parse","waitFor","result","set","wait","type","seconds","minutes","hours","days","waitUntil","date","scheduledFor","toISOString","eventData","on","schema","input","triggerRunLocalStorage","run","performRequest","request","service","params","response","anyError","parseAnyError","name","stackTrace","stack","console","workflowId","workflowName","metadata","packageVersion","version","packageName","methodName","err","TimeoutError","sleep","ms","nanoseconds","hrtime","Trigger","constructor","options","listen","TriggerClient","id","name","endpoint","on","sendEvent","id","event","triggerRun","triggerRunLocalStorage","getStore","sendEventFetch","process","env","TRIGGER_API_KEY","Error","ulid","baseUrl","TRIGGER_API_URL","url","response","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","getTriggerRun","triggerRunLocalStorage","getStore"]}
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","../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"],"sourcesContent":["export * from \"./events\";\nexport * from \"./trigger\";\nexport * from \"./customEvents\";\n\nimport { triggerRunLocalStorage } from \"./localStorage\";\n\nexport function getTriggerRun() {\n return triggerRunLocalStorage.getStore();\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});\n\nexport const SerializableCustomEventSchema = z.object({\n name: z.string(),\n payload: SerializableJsonSchema,\n context: SerializableJsonSchema.optional(),\n timestamp: z.string().datetime().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 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","import { z } from \"zod\";\nimport { EventFilterSchema, ScheduleSourceSchema } 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});\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,\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 TriggerMetadataSchema = z.discriminatedUnion(\"type\", [\n CustomEventTriggerSchema,\n WebhookEventTriggerSchema,\n HttpEventTriggerSchema,\n ScheduledEventTriggerSchema,\n]);\n\nexport type TriggerMetadata = z.infer<typeof TriggerMetadataSchema>;\n","import {\n EventFilterSchema,\n TriggerMetadataSchema,\n ScheduleSourceSchema,\n ScheduledEventPayloadSchema,\n} from \"@trigger.dev/common-schemas\";\nimport { z } from \"zod\";\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};\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] },\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","import { z } from \"zod\";\nimport { JsonSchema } 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 }),\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};\n\nexport type HostRPC = typeof HostRPCSchema;\n","import {\n CustomEventSchema,\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 }),\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};\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.infer<SenderSchema[K][\"request\"]>\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 readonly #level: number;\n\n constructor(name: string, level: LogLevel = \"disabled\") {\n this.#name = name;\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.#name}] `, ...args);\n }\n\n error(...args: any[]) {\n if (this.#level < 2) return;\n\n console.error(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n warn(...args: any[]) {\n if (this.#level < 3) return;\n\n console.warn(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n info(...args: any[]) {\n if (this.#level < 4) return;\n\n console.info(`[${formattedDateTime()}] [${this.#name}] `, ...args);\n }\n\n debug(...args: any[]) {\n if (this.#level < 5) return;\n\n console.debug(`[${formattedDateTime()}] [${this.#name}] `, ...args);\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 {\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 } from \"./types\";\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 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 = this.#options.endpoint ?? \"wss://wss.trigger.dev/ws\";\n this.#logger = new Logger(\"trigger.dev\", this.#options.logLevel);\n }\n\n async listen(instanceId?: string) {\n await this.#initializeConnection(instanceId);\n this.#initializeRPC();\n this.#initializeHost();\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_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 TRIGGER_WORKFLOW: async (data) => {\n this.#logger.debug(\"Handling TRIGGER_WORKFLOW\", data);\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 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 };\n\n const eventData = this.#options.on.schema.parse(data.trigger.input);\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 },\n timestamp: String(highPrecisionTimestamp()),\n });\n\n const output = await result;\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 },\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(\n `Completed workflow '${this.#options.name}', run ${\n data.id\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 console.error(anyError);\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 } from \"./types\";\n\ntype PerformRequestOptions<TSchema extends z.ZodTypeAny> = {\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};\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\";\nimport { ulid } from \"ulid\";\n\nexport function sendEvent(\n id: 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(event);\n }\n\n return triggerRun.sendEvent(id, event);\n}\n\nasync function sendEventFetch(event: TriggerCustomEvent): 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 id = ulid();\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"],"mappings":"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","names":["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","SerializableCustomEventSchema","SerializableJsonSchema","EventMatcherSchema","union","array","number","boolean","EventFilterSchema","lazy","record","ScheduledEventPayloadSchema","scheduledTime","coerce","date","ScheduleSourceRateSchema","rateOf","minutes","min","max","int","hours","days","ScheduleSourceCronSchema","cron","ScheduleSourceSchema","import_zod","CustomEventTriggerSchema","z","object","type","literal","service","name","string","filter","EventFilterSchema","WebhookEventTriggerSchema","source","JsonSchema","HttpEventTriggerSchema","ScheduledEventTriggerSchema","ScheduleSourceSchema","TriggerMetadataSchema","discriminatedUnion","customEvent","options","metadata","type","service","name","filter","event","schema","scheduleEvent","source","ScheduledEventPayloadSchema","import_zod","HostRPCSchema","TRIGGER_WORKFLOW","request","z","object","id","string","trigger","input","JsonSchema","default","context","meta","environment","workflowId","organizationId","apiKey","response","boolean","RESOLVE_REQUEST","key","output","runId","RESOLVE_DELAY","REJECT_REQUEST","error","import_zod","ServerRPCSchema","INITIALIZE_DELAY","request","z","object","runId","string","key","wait","WaitSchema","timestamp","response","boolean","SEND_REQUEST","service","endpoint","params","any","SEND_LOG","log","message","level","enum","properties","optional","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","import_zod","MESSAGE_META","z","object","data","any","id","string","type","union","literal","TriggerEnvironmentSchema","enum","import_zod","logLevels","Logger","constructor","name","level","indexOf","process","env","TRIGGER_LOG_LEVEL","log","args","console","error","formattedDateTime","warn","info","debug","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","generateStableId","message","packageMessage","Promise","resolve","reject","set","rawResponseText","parsed","parse","err","catch","rawData","JSON","error","callError","ZodError","stringify","errors","flatten","method","Error","debug","inputs","request","handler","returnValue","preparedResponseText","packageResponse","responseCallback","get","delete","connId","reqKey","reqData","serializedData","inputString","hash","createHash","update","digest","callerData","import_uuid","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","_connection","_logger","TriggerClient","constructor","trigger","options","Map","apiKey","process","env","TRIGGER_API_KEY","Error","endpoint","Logger","logLevel","listen","instanceId","close","undefined","id","v4","debug","headers","Authorization","connection","HostConnection","WebSocket","followRedirects","onClose","attach","code","reason","error","log","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_REQUEST","requestCallbacks","output","REJECT_REQUEST","reject","TRIGGER_WORKFLOW","ctx","environment","organizationId","logger","ContextLogger","level","message","properties","send","JSON","stringify","timestamp","String","highPrecisionTimestamp","sendEvent","event","parse","waitFor","result","set","wait","type","seconds","minutes","hours","days","waitUntil","date","scheduledFor","toISOString","eventData","on","schema","input","triggerRunLocalStorage","run","performRequest","request","service","params","response","name","anyError","parseAnyError","stackTrace","stack","console","workflowId","workflowName","metadata","packageVersion","version","packageName","triggerTTL","methodName","err","TimeoutError","sleep","ms","nanoseconds","hrtime","Trigger","constructor","options","listen","TriggerClient","id","name","endpoint","on","sendEvent","id","event","triggerRun","triggerRunLocalStorage","getStore","sendEventFetch","process","env","TRIGGER_API_KEY","Error","ulid","baseUrl","TRIGGER_API_URL","url","response","fetch","method","headers","Authorization","body","JSON","stringify","ok","statusText","getTriggerRun","triggerRunLocalStorage","getStore"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trigger.dev/sdk",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "trigger.dev Node.JS SDK",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",