terse-types 0.0.77 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Triggers.js CHANGED
@@ -2,7 +2,8 @@ import { z } from "zod";
2
2
  import { AttioEventType, GitHubEventType, HeyReachEventType, WorkOSEventType, attioEventTypeSchema, frequencyUnitSchema, gitHubEventTypeSchema, gmailEventTypeSchema, heyReachEventTypeSchema, linearEventTypeSchema, slackEventTypeSchema, workOSEventTypeSchema } from "./Configs.js";
3
3
  import { IntegrationType, integrationTypeEnum } from "./Integrations.js";
4
4
  import { SlackChannelType } from "./SlackTypes.js";
5
- import { debugTrigger as debugTriggerWithPresenter, displayTrigger as displayTriggerWithPresenter, formatTriggerForAgent as formatTriggerForAgentWithPresenter } from "./TriggerPresenters.js";
5
+ import { defineTrigger, defineTriggerUnion } from "./TriggerDefinition.js";
6
+ import { debugAttioTrigger, debugCronTrigger, debugGithubTrigger, debugGmailTrigger, debugHeyReachTrigger, debugLinearTrigger, debugManualSampleTrigger, debugSlackTrigger, debugWebMonitorTrigger, debugWebhookTrigger, debugWorkOSTrigger, displayManualSampleTrigger, formatAttioDisplay, formatAttioTrigger, formatCronDisplay, formatCronTrigger, formatGithubDisplay, formatGithubTrigger, formatGmailDisplay, formatGmailTrigger, formatHeyReachDisplay, formatHeyReachTrigger, formatLinearDisplay, formatLinearTrigger, formatManualSampleTrigger, formatSlackDisplay, formatSlackTrigger, formatWebMonitorDisplay, formatWebMonitorTrigger, formatWebhookDisplay, formatWebhookTrigger, formatWorkOSDisplay, formatWorkOSTrigger } from "./TriggerPresenters.js";
6
7
  const providerTriggerTypeSchema = z.union([
7
8
  slackEventTypeSchema,
8
9
  gitHubEventTypeSchema,
@@ -149,14 +150,7 @@ export const GithubIssueCommentCreatedTriggerSchema = GithubTriggerBaseSchema.ex
149
150
  comment: issueCommentSchema
150
151
  });
151
152
  export const GithubPRTriggerSchema = z.discriminatedUnion("eventType", [GithubPROpenedTriggerSchema, GithubPRSynchronizedTriggerSchema, GithubPRClosedTriggerSchema, GithubPRMergedTriggerSchema]);
152
- export const GithubTriggerSchema = z.discriminatedUnion("eventType", [
153
- GithubPushTriggerSchema,
154
- GithubPROpenedTriggerSchema,
155
- GithubPRSynchronizedTriggerSchema,
156
- GithubPRClosedTriggerSchema,
157
- GithubPRMergedTriggerSchema,
158
- GithubIssueCommentCreatedTriggerSchema
159
- ]);
153
+ export const GithubTriggerSchema = z.discriminatedUnion("eventType", [GithubPushTriggerSchema, GithubPRTriggerSchema, GithubIssueCommentCreatedTriggerSchema]);
160
154
  export const GmailParsedAttachmentSchema = z.object({
161
155
  attachmentId: z.string(),
162
156
  filename: z.string(),
@@ -411,19 +405,7 @@ export const workOSOrganizationTriggerSchema = workOSTriggerBaseSchema.extend({
411
405
  eventType: z.literal(WorkOSEventType.ORGANIZATION_CREATED),
412
406
  organization: workOSTriggerOrganizationSchema
413
407
  });
414
- export const workOSTriggerSchema = z.discriminatedUnion("eventType", [
415
- workOSUserCreatedTriggerSchema,
416
- workOSUserUpdatedTriggerSchema,
417
- workOSUserDeletedTriggerSchema,
418
- workOSOrganizationMembershipCreatedTriggerSchema,
419
- workOSOrganizationMembershipUpdatedTriggerSchema,
420
- workOSOrganizationMembershipDeletedTriggerSchema,
421
- workOSInvitationCreatedTriggerSchema,
422
- workOSInvitationAcceptedTriggerSchema,
423
- workOSInvitationResentTriggerSchema,
424
- workOSInvitationRevokedTriggerSchema,
425
- workOSOrganizationTriggerSchema
426
- ]);
408
+ export const workOSTriggerSchema = z.discriminatedUnion("eventType", [workOSUserTriggerSchema, workOSMembershipTriggerSchema, workOSInvitationTriggerSchema, workOSOrganizationTriggerSchema]);
427
409
  // MARK: HeyReach Triggers
428
410
  export const heyReachLeadSchema = z.object({
429
411
  id: z.union([z.string(), z.number()]).optional(),
@@ -728,13 +710,22 @@ export function createManualTrigger(params = {}) {
728
710
  });
729
711
  }
730
712
  export function formatTriggerForAgent(event) {
731
- return formatTriggerForAgentWithPresenter(event);
713
+ if (event.eventType === "manual_sample") {
714
+ return formatManualSampleTrigger(event);
715
+ }
716
+ return resolveTriggerPresenter(event).formatForAgent(event);
732
717
  }
733
718
  export function debugTrigger(event) {
734
- return debugTriggerWithPresenter(event);
719
+ if (event.eventType === "manual_sample") {
720
+ return debugManualSampleTrigger(event);
721
+ }
722
+ return resolveTriggerPresenter(event).debug(event);
735
723
  }
736
724
  export function displayTrigger(event) {
737
- return displayTriggerWithPresenter(event);
725
+ if (event.eventType === "manual_sample") {
726
+ return displayManualSampleTrigger(event);
727
+ }
728
+ return resolveTriggerPresenter(event).display(event);
738
729
  }
739
730
  export const TriggerArraySchema = z.array(TriggerSchema);
740
731
  export const serializedEventDisplaySchema = z.object({
@@ -773,3 +764,620 @@ export function toEventFixture(event) {
773
764
  debugLog: event.debugLog
774
765
  };
775
766
  }
767
+ const slackPresenter = {
768
+ formatForAgent: formatSlackTrigger,
769
+ debug: debugSlackTrigger,
770
+ display: formatSlackDisplay
771
+ };
772
+ const githubPresenter = {
773
+ formatForAgent: formatGithubTrigger,
774
+ debug: debugGithubTrigger,
775
+ display: formatGithubDisplay
776
+ };
777
+ const gmailPresenter = {
778
+ formatForAgent: formatGmailTrigger,
779
+ debug: debugGmailTrigger,
780
+ display: formatGmailDisplay
781
+ };
782
+ const linearPresenter = {
783
+ formatForAgent: formatLinearTrigger,
784
+ debug: debugLinearTrigger,
785
+ display: formatLinearDisplay
786
+ };
787
+ const workOSPresenter = {
788
+ formatForAgent: formatWorkOSTrigger,
789
+ debug: debugWorkOSTrigger,
790
+ display: formatWorkOSDisplay
791
+ };
792
+ const heyReachPresenter = {
793
+ formatForAgent: formatHeyReachTrigger,
794
+ debug: debugHeyReachTrigger,
795
+ display: formatHeyReachDisplay
796
+ };
797
+ const attioPresenter = {
798
+ formatForAgent: formatAttioTrigger,
799
+ debug: debugAttioTrigger,
800
+ display: formatAttioDisplay
801
+ };
802
+ const webhookPresenter = {
803
+ formatForAgent: formatWebhookTrigger,
804
+ debug: debugWebhookTrigger,
805
+ display: formatWebhookDisplay
806
+ };
807
+ const cronPresenter = {
808
+ formatForAgent: formatCronTrigger,
809
+ debug: debugCronTrigger,
810
+ display: formatCronDisplay
811
+ };
812
+ const webMonitorPresenter = {
813
+ formatForAgent: formatWebMonitorTrigger,
814
+ debug: debugWebMonitorTrigger,
815
+ display: formatWebMonitorDisplay
816
+ };
817
+ const slackMessagePrintHints = {
818
+ fieldOverrides: {
819
+ blocks: "SlackBlocks | null",
820
+ attachments: "SlackAttachments | null",
821
+ files: "SlackFiles | null"
822
+ },
823
+ imports: ["SlackBlocks", "SlackAttachments", "SlackFiles"]
824
+ };
825
+ const attioRecordPrintHints = {
826
+ typeParams: "<TValues = Record<string, unknown>>",
827
+ aliasArgs: "<TValues>",
828
+ fieldOverrides: { "record.values": "TValues" }
829
+ };
830
+ // The public trigger type surface: map key is the exported type name.
831
+ // Union definitions whose members are all registered here print as unions of those names.
832
+ export const TriggerDefinitions = {
833
+ SlackMessageTrigger: defineTrigger({
834
+ integration: IntegrationType.SLACK,
835
+ schema: slackMessageTriggerSchema,
836
+ eventTypes: ["message"],
837
+ printHints: slackMessagePrintHints,
838
+ presenter: slackPresenter
839
+ }),
840
+ SlackAppMentionTrigger: defineTrigger({
841
+ integration: IntegrationType.SLACK,
842
+ schema: slackAppMentionTriggerSchema,
843
+ eventTypes: ["app_mention"],
844
+ printHints: slackMessagePrintHints,
845
+ presenter: slackPresenter
846
+ }),
847
+ SlackReactionAddedTrigger: defineTrigger({
848
+ integration: IntegrationType.SLACK,
849
+ schema: slackReactionAddedTriggerSchema,
850
+ eventTypes: ["reaction_added"],
851
+ printHints: slackMessagePrintHints,
852
+ presenter: slackPresenter
853
+ }),
854
+ SlackTrigger: defineTriggerUnion({
855
+ integration: IntegrationType.SLACK,
856
+ members: ["SlackMessageTrigger", "SlackAppMentionTrigger", "SlackReactionAddedTrigger"],
857
+ presenter: slackPresenter
858
+ }),
859
+ GithubPushTrigger: defineTrigger({
860
+ integration: IntegrationType.GITHUB,
861
+ schema: GithubPushTriggerSchema,
862
+ eventTypes: [GitHubEventType.PUSH],
863
+ presenter: githubPresenter
864
+ }),
865
+ GithubPROpenedTrigger: defineTrigger({
866
+ integration: IntegrationType.GITHUB,
867
+ schema: GithubPROpenedTriggerSchema,
868
+ eventTypes: [GitHubEventType.PR_OPENED],
869
+ presenter: githubPresenter
870
+ }),
871
+ GithubPRSynchronizedTrigger: defineTrigger({
872
+ integration: IntegrationType.GITHUB,
873
+ schema: GithubPRSynchronizedTriggerSchema,
874
+ eventTypes: [GitHubEventType.PR_SYNCHRONIZE],
875
+ presenter: githubPresenter
876
+ }),
877
+ GithubPRClosedTrigger: defineTrigger({
878
+ integration: IntegrationType.GITHUB,
879
+ schema: GithubPRClosedTriggerSchema,
880
+ eventTypes: [GitHubEventType.PR_CLOSED],
881
+ presenter: githubPresenter
882
+ }),
883
+ GithubPRMergedTrigger: defineTrigger({
884
+ integration: IntegrationType.GITHUB,
885
+ schema: GithubPRMergedTriggerSchema,
886
+ eventTypes: [GitHubEventType.PR_MERGED],
887
+ presenter: githubPresenter
888
+ }),
889
+ GithubIssueCommentCreatedTrigger: defineTrigger({
890
+ integration: IntegrationType.GITHUB,
891
+ schema: GithubIssueCommentCreatedTriggerSchema,
892
+ eventTypes: [GitHubEventType.ISSUE_COMMENT_CREATED],
893
+ presenter: githubPresenter
894
+ }),
895
+ GithubPRTrigger: defineTriggerUnion({
896
+ integration: IntegrationType.GITHUB,
897
+ members: ["GithubPROpenedTrigger", "GithubPRSynchronizedTrigger", "GithubPRClosedTrigger", "GithubPRMergedTrigger"]
898
+ }),
899
+ GithubTrigger: defineTriggerUnion({
900
+ integration: IntegrationType.GITHUB,
901
+ members: ["GithubPushTrigger", "GithubPRTrigger", "GithubIssueCommentCreatedTrigger"],
902
+ presenter: githubPresenter
903
+ }),
904
+ GmailTrigger: defineTrigger({
905
+ integration: IntegrationType.GMAIL,
906
+ schema: gmailTriggerSchema,
907
+ eventTypes: ["email.received"],
908
+ presenter: gmailPresenter
909
+ }),
910
+ LinearIssueCreatedTrigger: defineTrigger({
911
+ integration: IntegrationType.LINEAR,
912
+ schema: linearIssueCreatedTriggerSchema,
913
+ eventTypes: ["issue.created"],
914
+ presenter: linearPresenter
915
+ }),
916
+ LinearIssueUpdatedTrigger: defineTrigger({
917
+ integration: IntegrationType.LINEAR,
918
+ schema: linearIssueUpdatedTriggerSchema,
919
+ eventTypes: ["issue.updated"],
920
+ presenter: linearPresenter
921
+ }),
922
+ LinearCommentCreatedTrigger: defineTrigger({
923
+ integration: IntegrationType.LINEAR,
924
+ schema: linearCommentCreatedTriggerSchema,
925
+ eventTypes: ["comment.created"],
926
+ presenter: linearPresenter
927
+ }),
928
+ LinearTrigger: defineTriggerUnion({
929
+ integration: IntegrationType.LINEAR,
930
+ members: ["LinearIssueCreatedTrigger", "LinearIssueUpdatedTrigger", "LinearCommentCreatedTrigger"],
931
+ presenter: linearPresenter
932
+ }),
933
+ WorkOSUserCreatedTrigger: defineTrigger({
934
+ integration: IntegrationType.WORKOS,
935
+ schema: workOSUserCreatedTriggerSchema,
936
+ eventTypes: [WorkOSEventType.USER_CREATED],
937
+ presenter: workOSPresenter
938
+ }),
939
+ WorkOSUserUpdatedTrigger: defineTrigger({
940
+ integration: IntegrationType.WORKOS,
941
+ schema: workOSUserUpdatedTriggerSchema,
942
+ eventTypes: [WorkOSEventType.USER_UPDATED],
943
+ presenter: workOSPresenter
944
+ }),
945
+ WorkOSUserDeletedTrigger: defineTrigger({
946
+ integration: IntegrationType.WORKOS,
947
+ schema: workOSUserDeletedTriggerSchema,
948
+ eventTypes: [WorkOSEventType.USER_DELETED],
949
+ presenter: workOSPresenter
950
+ }),
951
+ WorkOSUserTrigger: defineTriggerUnion({
952
+ integration: IntegrationType.WORKOS,
953
+ members: ["WorkOSUserCreatedTrigger", "WorkOSUserUpdatedTrigger", "WorkOSUserDeletedTrigger"]
954
+ }),
955
+ WorkOSOrganizationMembershipCreatedTrigger: defineTrigger({
956
+ integration: IntegrationType.WORKOS,
957
+ schema: workOSOrganizationMembershipCreatedTriggerSchema,
958
+ eventTypes: [WorkOSEventType.ORGANIZATION_MEMBERSHIP_CREATED],
959
+ presenter: workOSPresenter
960
+ }),
961
+ WorkOSOrganizationMembershipUpdatedTrigger: defineTrigger({
962
+ integration: IntegrationType.WORKOS,
963
+ schema: workOSOrganizationMembershipUpdatedTriggerSchema,
964
+ eventTypes: [WorkOSEventType.ORGANIZATION_MEMBERSHIP_UPDATED],
965
+ presenter: workOSPresenter
966
+ }),
967
+ WorkOSOrganizationMembershipDeletedTrigger: defineTrigger({
968
+ integration: IntegrationType.WORKOS,
969
+ schema: workOSOrganizationMembershipDeletedTriggerSchema,
970
+ eventTypes: [WorkOSEventType.ORGANIZATION_MEMBERSHIP_DELETED],
971
+ presenter: workOSPresenter
972
+ }),
973
+ WorkOSMembershipTrigger: defineTriggerUnion({
974
+ integration: IntegrationType.WORKOS,
975
+ members: ["WorkOSOrganizationMembershipCreatedTrigger", "WorkOSOrganizationMembershipUpdatedTrigger", "WorkOSOrganizationMembershipDeletedTrigger"]
976
+ }),
977
+ WorkOSInvitationCreatedTrigger: defineTrigger({
978
+ integration: IntegrationType.WORKOS,
979
+ schema: workOSInvitationCreatedTriggerSchema,
980
+ eventTypes: [WorkOSEventType.INVITATION_CREATED],
981
+ presenter: workOSPresenter
982
+ }),
983
+ WorkOSInvitationAcceptedTrigger: defineTrigger({
984
+ integration: IntegrationType.WORKOS,
985
+ schema: workOSInvitationAcceptedTriggerSchema,
986
+ eventTypes: [WorkOSEventType.INVITATION_ACCEPTED],
987
+ presenter: workOSPresenter
988
+ }),
989
+ WorkOSInvitationResentTrigger: defineTrigger({
990
+ integration: IntegrationType.WORKOS,
991
+ schema: workOSInvitationResentTriggerSchema,
992
+ eventTypes: [WorkOSEventType.INVITATION_RESENT],
993
+ presenter: workOSPresenter
994
+ }),
995
+ WorkOSInvitationRevokedTrigger: defineTrigger({
996
+ integration: IntegrationType.WORKOS,
997
+ schema: workOSInvitationRevokedTriggerSchema,
998
+ eventTypes: [WorkOSEventType.INVITATION_REVOKED],
999
+ presenter: workOSPresenter
1000
+ }),
1001
+ WorkOSInvitationTrigger: defineTriggerUnion({
1002
+ integration: IntegrationType.WORKOS,
1003
+ members: ["WorkOSInvitationCreatedTrigger", "WorkOSInvitationAcceptedTrigger", "WorkOSInvitationResentTrigger", "WorkOSInvitationRevokedTrigger"]
1004
+ }),
1005
+ WorkOSOrganizationTrigger: defineTrigger({
1006
+ integration: IntegrationType.WORKOS,
1007
+ schema: workOSOrganizationTriggerSchema,
1008
+ eventTypes: [WorkOSEventType.ORGANIZATION_CREATED],
1009
+ presenter: workOSPresenter
1010
+ }),
1011
+ WorkOSTrigger: defineTriggerUnion({
1012
+ integration: IntegrationType.WORKOS,
1013
+ members: ["WorkOSUserTrigger", "WorkOSMembershipTrigger", "WorkOSInvitationTrigger", "WorkOSOrganizationTrigger"],
1014
+ presenter: workOSPresenter
1015
+ }),
1016
+ HeyReachConnectionRequestSentTrigger: defineTrigger({
1017
+ integration: IntegrationType.HEY_REACH,
1018
+ schema: heyReachConnectionRequestSentTriggerSchema,
1019
+ eventTypes: [HeyReachEventType.CONNECTION_REQUEST_SENT],
1020
+ presenter: heyReachPresenter
1021
+ }),
1022
+ HeyReachConnectionRequestAcceptedTrigger: defineTrigger({
1023
+ integration: IntegrationType.HEY_REACH,
1024
+ schema: heyReachConnectionRequestAcceptedTriggerSchema,
1025
+ eventTypes: [HeyReachEventType.CONNECTION_REQUEST_ACCEPTED],
1026
+ presenter: heyReachPresenter
1027
+ }),
1028
+ HeyReachMessageSentTrigger: defineTrigger({
1029
+ integration: IntegrationType.HEY_REACH,
1030
+ schema: heyReachMessageSentTriggerSchema,
1031
+ eventTypes: [HeyReachEventType.MESSAGE_SENT],
1032
+ presenter: heyReachPresenter
1033
+ }),
1034
+ HeyReachMessageReplyReceivedTrigger: defineTrigger({
1035
+ integration: IntegrationType.HEY_REACH,
1036
+ schema: heyReachMessageReplyReceivedTriggerSchema,
1037
+ eventTypes: [HeyReachEventType.MESSAGE_REPLY_RECEIVED],
1038
+ presenter: heyReachPresenter
1039
+ }),
1040
+ HeyReachInmailSentTrigger: defineTrigger({
1041
+ integration: IntegrationType.HEY_REACH,
1042
+ schema: heyReachInmailSentTriggerSchema,
1043
+ eventTypes: [HeyReachEventType.INMAIL_SENT],
1044
+ presenter: heyReachPresenter
1045
+ }),
1046
+ HeyReachInmailReplyReceivedTrigger: defineTrigger({
1047
+ integration: IntegrationType.HEY_REACH,
1048
+ schema: heyReachInmailReplyReceivedTriggerSchema,
1049
+ eventTypes: [HeyReachEventType.INMAIL_REPLY_RECEIVED],
1050
+ presenter: heyReachPresenter
1051
+ }),
1052
+ HeyReachFollowSentTrigger: defineTrigger({
1053
+ integration: IntegrationType.HEY_REACH,
1054
+ schema: heyReachFollowSentTriggerSchema,
1055
+ eventTypes: [HeyReachEventType.FOLLOW_SENT],
1056
+ presenter: heyReachPresenter
1057
+ }),
1058
+ HeyReachLikedPostTrigger: defineTrigger({
1059
+ integration: IntegrationType.HEY_REACH,
1060
+ schema: heyReachLikedPostTriggerSchema,
1061
+ eventTypes: [HeyReachEventType.LIKED_POST],
1062
+ presenter: heyReachPresenter
1063
+ }),
1064
+ HeyReachViewedProfileTrigger: defineTrigger({
1065
+ integration: IntegrationType.HEY_REACH,
1066
+ schema: heyReachViewedProfileTriggerSchema,
1067
+ eventTypes: [HeyReachEventType.VIEWED_PROFILE],
1068
+ presenter: heyReachPresenter
1069
+ }),
1070
+ HeyReachCampaignCompletedTrigger: defineTrigger({
1071
+ integration: IntegrationType.HEY_REACH,
1072
+ schema: heyReachCampaignCompletedTriggerSchema,
1073
+ eventTypes: [HeyReachEventType.CAMPAIGN_COMPLETED],
1074
+ presenter: heyReachPresenter
1075
+ }),
1076
+ HeyReachLeadTagUpdatedTrigger: defineTrigger({
1077
+ integration: IntegrationType.HEY_REACH,
1078
+ schema: heyReachLeadTagUpdatedTriggerSchema,
1079
+ eventTypes: [HeyReachEventType.LEAD_TAG_UPDATED],
1080
+ presenter: heyReachPresenter
1081
+ }),
1082
+ HeyReachTrigger: defineTriggerUnion({
1083
+ integration: IntegrationType.HEY_REACH,
1084
+ members: [
1085
+ "HeyReachConnectionRequestSentTrigger",
1086
+ "HeyReachConnectionRequestAcceptedTrigger",
1087
+ "HeyReachMessageSentTrigger",
1088
+ "HeyReachMessageReplyReceivedTrigger",
1089
+ "HeyReachInmailSentTrigger",
1090
+ "HeyReachInmailReplyReceivedTrigger",
1091
+ "HeyReachFollowSentTrigger",
1092
+ "HeyReachLikedPostTrigger",
1093
+ "HeyReachViewedProfileTrigger",
1094
+ "HeyReachCampaignCompletedTrigger",
1095
+ "HeyReachLeadTagUpdatedTrigger"
1096
+ ],
1097
+ presenter: heyReachPresenter
1098
+ }),
1099
+ AttioCallRecordingCreatedTrigger: defineTrigger({
1100
+ integration: IntegrationType.ATTIO,
1101
+ schema: attioCallRecordingCreatedTriggerSchema,
1102
+ eventTypes: [AttioEventType.CALL_RECORDING_CREATED],
1103
+ presenter: attioPresenter
1104
+ }),
1105
+ AttioCommentCreatedTrigger: defineTrigger({
1106
+ integration: IntegrationType.ATTIO,
1107
+ schema: attioCommentCreatedTriggerSchema,
1108
+ eventTypes: [AttioEventType.COMMENT_CREATED],
1109
+ presenter: attioPresenter
1110
+ }),
1111
+ AttioCommentResolvedTrigger: defineTrigger({
1112
+ integration: IntegrationType.ATTIO,
1113
+ schema: attioCommentResolvedTriggerSchema,
1114
+ eventTypes: [AttioEventType.COMMENT_RESOLVED],
1115
+ presenter: attioPresenter
1116
+ }),
1117
+ AttioCommentUnresolvedTrigger: defineTrigger({
1118
+ integration: IntegrationType.ATTIO,
1119
+ schema: attioCommentUnresolvedTriggerSchema,
1120
+ eventTypes: [AttioEventType.COMMENT_UNRESOLVED],
1121
+ presenter: attioPresenter
1122
+ }),
1123
+ AttioCommentDeletedTrigger: defineTrigger({
1124
+ integration: IntegrationType.ATTIO,
1125
+ schema: attioCommentDeletedTriggerSchema,
1126
+ eventTypes: [AttioEventType.COMMENT_DELETED],
1127
+ presenter: attioPresenter
1128
+ }),
1129
+ AttioListCreatedTrigger: defineTrigger({
1130
+ integration: IntegrationType.ATTIO,
1131
+ schema: attioListCreatedTriggerSchema,
1132
+ eventTypes: [AttioEventType.LIST_CREATED],
1133
+ presenter: attioPresenter
1134
+ }),
1135
+ AttioListUpdatedTrigger: defineTrigger({
1136
+ integration: IntegrationType.ATTIO,
1137
+ schema: attioListUpdatedTriggerSchema,
1138
+ eventTypes: [AttioEventType.LIST_UPDATED],
1139
+ presenter: attioPresenter
1140
+ }),
1141
+ AttioListDeletedTrigger: defineTrigger({
1142
+ integration: IntegrationType.ATTIO,
1143
+ schema: attioListDeletedTriggerSchema,
1144
+ eventTypes: [AttioEventType.LIST_DELETED],
1145
+ presenter: attioPresenter
1146
+ }),
1147
+ AttioListAttributeCreatedTrigger: defineTrigger({
1148
+ integration: IntegrationType.ATTIO,
1149
+ schema: attioListAttributeCreatedTriggerSchema,
1150
+ eventTypes: [AttioEventType.LIST_ATTRIBUTE_CREATED],
1151
+ presenter: attioPresenter
1152
+ }),
1153
+ AttioListAttributeUpdatedTrigger: defineTrigger({
1154
+ integration: IntegrationType.ATTIO,
1155
+ schema: attioListAttributeUpdatedTriggerSchema,
1156
+ eventTypes: [AttioEventType.LIST_ATTRIBUTE_UPDATED],
1157
+ presenter: attioPresenter
1158
+ }),
1159
+ AttioListEntryCreatedTrigger: defineTrigger({
1160
+ integration: IntegrationType.ATTIO,
1161
+ schema: attioListEntryCreatedTriggerSchema,
1162
+ eventTypes: [AttioEventType.LIST_ENTRY_CREATED],
1163
+ presenter: attioPresenter
1164
+ }),
1165
+ AttioListEntryUpdatedTrigger: defineTrigger({
1166
+ integration: IntegrationType.ATTIO,
1167
+ schema: attioListEntryUpdatedTriggerSchema,
1168
+ eventTypes: [AttioEventType.LIST_ENTRY_UPDATED],
1169
+ presenter: attioPresenter
1170
+ }),
1171
+ AttioListEntryDeletedTrigger: defineTrigger({
1172
+ integration: IntegrationType.ATTIO,
1173
+ schema: attioListEntryDeletedTriggerSchema,
1174
+ eventTypes: [AttioEventType.LIST_ENTRY_DELETED],
1175
+ presenter: attioPresenter
1176
+ }),
1177
+ AttioObjectAttributeCreatedTrigger: defineTrigger({
1178
+ integration: IntegrationType.ATTIO,
1179
+ schema: attioObjectAttributeCreatedTriggerSchema,
1180
+ eventTypes: [AttioEventType.OBJECT_ATTRIBUTE_CREATED],
1181
+ presenter: attioPresenter
1182
+ }),
1183
+ AttioObjectAttributeUpdatedTrigger: defineTrigger({
1184
+ integration: IntegrationType.ATTIO,
1185
+ schema: attioObjectAttributeUpdatedTriggerSchema,
1186
+ eventTypes: [AttioEventType.OBJECT_ATTRIBUTE_UPDATED],
1187
+ presenter: attioPresenter
1188
+ }),
1189
+ AttioNoteCreatedTrigger: defineTrigger({
1190
+ integration: IntegrationType.ATTIO,
1191
+ schema: attioNoteCreatedTriggerSchema,
1192
+ eventTypes: [AttioEventType.NOTE_CREATED],
1193
+ presenter: attioPresenter
1194
+ }),
1195
+ AttioNoteContentUpdatedTrigger: defineTrigger({
1196
+ integration: IntegrationType.ATTIO,
1197
+ schema: attioNoteContentUpdatedTriggerSchema,
1198
+ eventTypes: [AttioEventType.NOTE_CONTENT_UPDATED],
1199
+ presenter: attioPresenter
1200
+ }),
1201
+ AttioNoteUpdatedTrigger: defineTrigger({
1202
+ integration: IntegrationType.ATTIO,
1203
+ schema: attioNoteUpdatedTriggerSchema,
1204
+ eventTypes: [AttioEventType.NOTE_UPDATED],
1205
+ presenter: attioPresenter
1206
+ }),
1207
+ AttioNoteDeletedTrigger: defineTrigger({
1208
+ integration: IntegrationType.ATTIO,
1209
+ schema: attioNoteDeletedTriggerSchema,
1210
+ eventTypes: [AttioEventType.NOTE_DELETED],
1211
+ presenter: attioPresenter
1212
+ }),
1213
+ AttioRecordCreatedTrigger: defineTrigger({
1214
+ integration: IntegrationType.ATTIO,
1215
+ schema: attioRecordCreatedTriggerSchema,
1216
+ eventTypes: [AttioEventType.RECORD_CREATED],
1217
+ printHints: attioRecordPrintHints,
1218
+ presenter: attioPresenter
1219
+ }),
1220
+ AttioRecordMergedTrigger: defineTrigger({
1221
+ integration: IntegrationType.ATTIO,
1222
+ schema: attioRecordMergedTriggerSchema,
1223
+ eventTypes: [AttioEventType.RECORD_MERGED],
1224
+ printHints: attioRecordPrintHints,
1225
+ presenter: attioPresenter
1226
+ }),
1227
+ AttioRecordUpdatedTrigger: defineTrigger({
1228
+ integration: IntegrationType.ATTIO,
1229
+ schema: attioRecordUpdatedTriggerSchema,
1230
+ eventTypes: [AttioEventType.RECORD_UPDATED],
1231
+ printHints: attioRecordPrintHints,
1232
+ presenter: attioPresenter
1233
+ }),
1234
+ AttioRecordDeletedTrigger: defineTrigger({
1235
+ integration: IntegrationType.ATTIO,
1236
+ schema: attioRecordDeletedTriggerSchema,
1237
+ eventTypes: [AttioEventType.RECORD_DELETED],
1238
+ presenter: attioPresenter
1239
+ }),
1240
+ AttioTaskCreatedTrigger: defineTrigger({
1241
+ integration: IntegrationType.ATTIO,
1242
+ schema: attioTaskCreatedTriggerSchema,
1243
+ eventTypes: [AttioEventType.TASK_CREATED],
1244
+ presenter: attioPresenter
1245
+ }),
1246
+ AttioTaskUpdatedTrigger: defineTrigger({
1247
+ integration: IntegrationType.ATTIO,
1248
+ schema: attioTaskUpdatedTriggerSchema,
1249
+ eventTypes: [AttioEventType.TASK_UPDATED],
1250
+ presenter: attioPresenter
1251
+ }),
1252
+ AttioTaskDeletedTrigger: defineTrigger({
1253
+ integration: IntegrationType.ATTIO,
1254
+ schema: attioTaskDeletedTriggerSchema,
1255
+ eventTypes: [AttioEventType.TASK_DELETED],
1256
+ presenter: attioPresenter
1257
+ }),
1258
+ AttioWorkspaceMemberCreatedTrigger: defineTrigger({
1259
+ integration: IntegrationType.ATTIO,
1260
+ schema: attioWorkspaceMemberCreatedTriggerSchema,
1261
+ eventTypes: [AttioEventType.WORKSPACE_MEMBER_CREATED],
1262
+ presenter: attioPresenter
1263
+ }),
1264
+ AttioTrigger: defineTriggerUnion({
1265
+ integration: IntegrationType.ATTIO,
1266
+ members: [
1267
+ "AttioCallRecordingCreatedTrigger",
1268
+ "AttioCommentCreatedTrigger",
1269
+ "AttioCommentResolvedTrigger",
1270
+ "AttioCommentUnresolvedTrigger",
1271
+ "AttioCommentDeletedTrigger",
1272
+ "AttioListCreatedTrigger",
1273
+ "AttioListUpdatedTrigger",
1274
+ "AttioListDeletedTrigger",
1275
+ "AttioListAttributeCreatedTrigger",
1276
+ "AttioListAttributeUpdatedTrigger",
1277
+ "AttioListEntryCreatedTrigger",
1278
+ "AttioListEntryUpdatedTrigger",
1279
+ "AttioListEntryDeletedTrigger",
1280
+ "AttioObjectAttributeCreatedTrigger",
1281
+ "AttioObjectAttributeUpdatedTrigger",
1282
+ "AttioNoteCreatedTrigger",
1283
+ "AttioNoteContentUpdatedTrigger",
1284
+ "AttioNoteUpdatedTrigger",
1285
+ "AttioNoteDeletedTrigger",
1286
+ "AttioRecordCreatedTrigger",
1287
+ "AttioRecordMergedTrigger",
1288
+ "AttioRecordUpdatedTrigger",
1289
+ "AttioRecordDeletedTrigger",
1290
+ "AttioTaskCreatedTrigger",
1291
+ "AttioTaskUpdatedTrigger",
1292
+ "AttioTaskDeletedTrigger",
1293
+ "AttioWorkspaceMemberCreatedTrigger"
1294
+ ],
1295
+ presenter: attioPresenter
1296
+ }),
1297
+ CronTrigger: defineTrigger({
1298
+ integration: IntegrationType.CRON_JOB,
1299
+ schema: cronTriggerSchema,
1300
+ eventTypes: ["cron"],
1301
+ presenter: cronPresenter
1302
+ }),
1303
+ WebhookTrigger: defineTrigger({
1304
+ integration: IntegrationType.WEBHOOK,
1305
+ schema: webhookTriggerSchema,
1306
+ eventTypes: ["webhook"],
1307
+ printHints: {
1308
+ typeParams: "<TBody = unknown>",
1309
+ aliasArgs: "<TBody>",
1310
+ fieldOverrides: { body: "TBody" }
1311
+ },
1312
+ presenter: webhookPresenter
1313
+ }),
1314
+ WebMonitorTrigger: defineTrigger({
1315
+ integration: IntegrationType.WEBMONITOR,
1316
+ schema: webMonitorTriggerSchema,
1317
+ eventTypes: ["webmonitor"],
1318
+ printHints: {
1319
+ typeParams: "<TStructured = unknown>",
1320
+ aliasArgs: "<TStructured>",
1321
+ fieldOverrides: { payload: "TStructured" }
1322
+ },
1323
+ presenter: webMonitorPresenter
1324
+ })
1325
+ };
1326
+ export function isTriggerDefinitionName(name) {
1327
+ return name in TriggerDefinitions;
1328
+ }
1329
+ const concreteTriggerDefinitionsByEvent = collectConcreteTriggerDefinitions();
1330
+ const fallbackTriggerPresentersByIntegration = collectFallbackTriggerPresenters();
1331
+ function collectConcreteTriggerDefinitions() {
1332
+ const definitionsByEvent = new Map();
1333
+ Object.values(TriggerDefinitions).forEach(definition => {
1334
+ if (definition.kind !== "concrete")
1335
+ return;
1336
+ definition.eventTypes.forEach(eventType => {
1337
+ const key = triggerEventKey(definition.integration, eventType);
1338
+ if (definitionsByEvent.has(key)) {
1339
+ throw new DuplicateTriggerDefinitionError(key);
1340
+ }
1341
+ definitionsByEvent.set(key, definition);
1342
+ });
1343
+ });
1344
+ return definitionsByEvent;
1345
+ }
1346
+ function collectFallbackTriggerPresenters() {
1347
+ const presentersByIntegration = new Map();
1348
+ Object.values(TriggerDefinitions).forEach(definition => {
1349
+ if (definition.kind !== "union" || !definition.presenter)
1350
+ return;
1351
+ if (presentersByIntegration.has(definition.integration)) {
1352
+ throw new DuplicateTriggerDefinitionError(`fallback presenter for ${definition.integration}`);
1353
+ }
1354
+ presentersByIntegration.set(definition.integration, definition.presenter);
1355
+ });
1356
+ return presentersByIntegration;
1357
+ }
1358
+ function resolveTriggerPresenter(event) {
1359
+ const definition = concreteTriggerDefinitionsByEvent.get(triggerEventKey(event.integrationType, event.eventType));
1360
+ if (definition?.presenter) {
1361
+ return definition.presenter;
1362
+ }
1363
+ const fallback = fallbackTriggerPresentersByIntegration.get(event.integrationType);
1364
+ if (fallback) {
1365
+ return fallback;
1366
+ }
1367
+ throw new TriggerPresenterNotFoundError(event.integrationType, event.eventType);
1368
+ }
1369
+ function triggerEventKey(integration, eventType) {
1370
+ return `${integration}:${eventType}`;
1371
+ }
1372
+ export class DuplicateTriggerDefinitionError extends Error {
1373
+ constructor(key) {
1374
+ super(`Duplicate trigger definition: ${key}`);
1375
+ this.name = "DuplicateTriggerDefinitionError";
1376
+ }
1377
+ }
1378
+ export class TriggerPresenterNotFoundError extends Error {
1379
+ constructor(integrationType, eventType) {
1380
+ super(`No trigger presenter registered for ${integrationType}:${eventType}`);
1381
+ this.name = "TriggerPresenterNotFoundError";
1382
+ }
1383
+ }