terse-types 0.1.5 → 0.1.6

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.
@@ -0,0 +1,18 @@
1
+ import type * as z from "zod";
2
+ export declare const triggerPayloadProjections: Readonly<Record<string, TriggerPayloadProjection>>;
3
+ export declare function isProjectedTriggerName(name: string): boolean;
4
+ export type TriggerPayloadSchemaProjection = {
5
+ kind: "schema";
6
+ schema: z.ZodType;
7
+ /** Printed verbatim after the payload interface name, e.g. "<TBody = unknown>". */
8
+ typeParams?: string;
9
+ /** Dot-path within the payload -> TypeScript type expression printed instead of the schema field. */
10
+ fieldOverrides?: Record<string, string>;
11
+ /** Extra terse-sdk type imports the overrides reference. */
12
+ sdkImports?: string[];
13
+ };
14
+ export type TriggerPayloadUnionProjection = {
15
+ kind: "union";
16
+ members: string[];
17
+ };
18
+ export type TriggerPayloadProjection = TriggerPayloadSchemaProjection | TriggerPayloadUnionProjection;
@@ -0,0 +1,167 @@
1
+ import { GithubIssueCommentCreatedTriggerSchema, GithubPRClosedTriggerSchema, GithubPRMergedTriggerSchema, GithubPROpenedTriggerSchema, GithubPRSynchronizedTriggerSchema, GithubPushTriggerSchema, attioCallRecordingCreatedTriggerSchema, attioCommentCreatedTriggerSchema, attioCommentDeletedTriggerSchema, attioCommentResolvedTriggerSchema, attioCommentUnresolvedTriggerSchema, attioListAttributeCreatedTriggerSchema, attioListAttributeUpdatedTriggerSchema, attioListCreatedTriggerSchema, attioListDeletedTriggerSchema, attioListEntryCreatedTriggerSchema, attioListEntryDeletedTriggerSchema, attioListEntryUpdatedTriggerSchema, attioListUpdatedTriggerSchema, attioNoteContentUpdatedTriggerSchema, attioNoteCreatedTriggerSchema, attioNoteDeletedTriggerSchema, attioNoteUpdatedTriggerSchema, attioObjectAttributeCreatedTriggerSchema, attioObjectAttributeUpdatedTriggerSchema, attioRecordCreatedTriggerSchema, attioRecordDeletedTriggerSchema, attioRecordMergedTriggerSchema, attioRecordUpdatedTriggerSchema, attioTaskCreatedTriggerSchema, attioTaskDeletedTriggerSchema, attioTaskUpdatedTriggerSchema, attioWorkspaceMemberCreatedTriggerSchema, cronTriggerSchema, gmailTriggerSchema, heyReachCampaignCompletedTriggerSchema, heyReachConnectionRequestAcceptedTriggerSchema, heyReachConnectionRequestSentTriggerSchema, heyReachFollowSentTriggerSchema, heyReachInmailReplyReceivedTriggerSchema, heyReachInmailSentTriggerSchema, heyReachLeadTagUpdatedTriggerSchema, heyReachLikedPostTriggerSchema, heyReachMessageReplyReceivedTriggerSchema, heyReachMessageSentTriggerSchema, heyReachViewedProfileTriggerSchema, linearCommentCreatedTriggerSchema, linearIssueCreatedTriggerSchema, linearIssueUpdatedTriggerSchema, slackAppMentionTriggerSchema, slackMessageTriggerSchema, slackReactionAddedTriggerSchema, webMonitorTriggerSchema, webhookTriggerSchema, workOSInvitationAcceptedTriggerSchema, workOSInvitationCreatedTriggerSchema, workOSInvitationResentTriggerSchema, workOSInvitationRevokedTriggerSchema, workOSOrganizationMembershipCreatedTriggerSchema, workOSOrganizationMembershipDeletedTriggerSchema, workOSOrganizationMembershipUpdatedTriggerSchema, workOSOrganizationTriggerSchema, workOSUserCreatedTriggerSchema, workOSUserDeletedTriggerSchema, workOSUserUpdatedTriggerSchema } from "./Triggers.js";
2
+ // The hand-written SlackMessageTrigger et al. widen these schema fields (z.array(z.unknown()))
3
+ // to the structured Slack types, so projections must print the widened form.
4
+ const slackWidenedFields = {
5
+ blocks: "SlackBlocks | null",
6
+ attachments: "SlackAttachments | null",
7
+ files: "SlackFiles | null"
8
+ };
9
+ const slackSdkImports = ["SlackAttachments", "SlackBlocks", "SlackFiles"];
10
+ const attioRecordProjection = (schema) => ({
11
+ kind: "schema",
12
+ schema,
13
+ typeParams: "<TValues = Record<string, unknown>>",
14
+ // The registered attio event transform flattens record.values before handlers run,
15
+ // matching the SDK-level generic, not the raw wire shape.
16
+ fieldOverrides: { "record.values": "TValues" }
17
+ });
18
+ export const triggerPayloadProjections = {
19
+ SlackMessageTrigger: { kind: "schema", schema: slackMessageTriggerSchema, fieldOverrides: slackWidenedFields, sdkImports: slackSdkImports },
20
+ SlackAppMentionTrigger: { kind: "schema", schema: slackAppMentionTriggerSchema, fieldOverrides: slackWidenedFields, sdkImports: slackSdkImports },
21
+ SlackReactionAddedTrigger: { kind: "schema", schema: slackReactionAddedTriggerSchema, fieldOverrides: slackWidenedFields, sdkImports: slackSdkImports },
22
+ SlackTrigger: { kind: "union", members: ["SlackMessageTrigger", "SlackAppMentionTrigger", "SlackReactionAddedTrigger"] },
23
+ GithubPushTrigger: { kind: "schema", schema: GithubPushTriggerSchema },
24
+ GithubPROpenedTrigger: { kind: "schema", schema: GithubPROpenedTriggerSchema },
25
+ GithubPRSynchronizedTrigger: { kind: "schema", schema: GithubPRSynchronizedTriggerSchema },
26
+ GithubPRClosedTrigger: { kind: "schema", schema: GithubPRClosedTriggerSchema },
27
+ GithubPRMergedTrigger: { kind: "schema", schema: GithubPRMergedTriggerSchema },
28
+ GithubIssueCommentCreatedTrigger: { kind: "schema", schema: GithubIssueCommentCreatedTriggerSchema },
29
+ GithubPRTrigger: { kind: "union", members: ["GithubPROpenedTrigger", "GithubPRSynchronizedTrigger", "GithubPRClosedTrigger", "GithubPRMergedTrigger"] },
30
+ GithubTrigger: {
31
+ kind: "union",
32
+ members: ["GithubPushTrigger", "GithubPROpenedTrigger", "GithubPRSynchronizedTrigger", "GithubPRClosedTrigger", "GithubPRMergedTrigger", "GithubIssueCommentCreatedTrigger"]
33
+ },
34
+ GmailTrigger: { kind: "schema", schema: gmailTriggerSchema },
35
+ LinearIssueCreatedTrigger: { kind: "schema", schema: linearIssueCreatedTriggerSchema },
36
+ LinearIssueUpdatedTrigger: { kind: "schema", schema: linearIssueUpdatedTriggerSchema },
37
+ LinearCommentCreatedTrigger: { kind: "schema", schema: linearCommentCreatedTriggerSchema },
38
+ LinearTrigger: { kind: "union", members: ["LinearIssueCreatedTrigger", "LinearIssueUpdatedTrigger", "LinearCommentCreatedTrigger"] },
39
+ WorkOSUserCreatedTrigger: { kind: "schema", schema: workOSUserCreatedTriggerSchema },
40
+ WorkOSUserUpdatedTrigger: { kind: "schema", schema: workOSUserUpdatedTriggerSchema },
41
+ WorkOSUserDeletedTrigger: { kind: "schema", schema: workOSUserDeletedTriggerSchema },
42
+ WorkOSUserTrigger: { kind: "union", members: ["WorkOSUserCreatedTrigger", "WorkOSUserUpdatedTrigger", "WorkOSUserDeletedTrigger"] },
43
+ WorkOSOrganizationMembershipCreatedTrigger: { kind: "schema", schema: workOSOrganizationMembershipCreatedTriggerSchema },
44
+ WorkOSOrganizationMembershipUpdatedTrigger: { kind: "schema", schema: workOSOrganizationMembershipUpdatedTriggerSchema },
45
+ WorkOSOrganizationMembershipDeletedTrigger: { kind: "schema", schema: workOSOrganizationMembershipDeletedTriggerSchema },
46
+ WorkOSMembershipTrigger: {
47
+ kind: "union",
48
+ members: ["WorkOSOrganizationMembershipCreatedTrigger", "WorkOSOrganizationMembershipUpdatedTrigger", "WorkOSOrganizationMembershipDeletedTrigger"]
49
+ },
50
+ WorkOSInvitationCreatedTrigger: { kind: "schema", schema: workOSInvitationCreatedTriggerSchema },
51
+ WorkOSInvitationAcceptedTrigger: { kind: "schema", schema: workOSInvitationAcceptedTriggerSchema },
52
+ WorkOSInvitationResentTrigger: { kind: "schema", schema: workOSInvitationResentTriggerSchema },
53
+ WorkOSInvitationRevokedTrigger: { kind: "schema", schema: workOSInvitationRevokedTriggerSchema },
54
+ WorkOSInvitationTrigger: {
55
+ kind: "union",
56
+ members: ["WorkOSInvitationCreatedTrigger", "WorkOSInvitationAcceptedTrigger", "WorkOSInvitationResentTrigger", "WorkOSInvitationRevokedTrigger"]
57
+ },
58
+ WorkOSOrganizationTrigger: { kind: "schema", schema: workOSOrganizationTriggerSchema },
59
+ WorkOSTrigger: {
60
+ kind: "union",
61
+ members: [
62
+ "WorkOSUserCreatedTrigger",
63
+ "WorkOSUserUpdatedTrigger",
64
+ "WorkOSUserDeletedTrigger",
65
+ "WorkOSOrganizationMembershipCreatedTrigger",
66
+ "WorkOSOrganizationMembershipUpdatedTrigger",
67
+ "WorkOSOrganizationMembershipDeletedTrigger",
68
+ "WorkOSInvitationCreatedTrigger",
69
+ "WorkOSInvitationAcceptedTrigger",
70
+ "WorkOSInvitationResentTrigger",
71
+ "WorkOSInvitationRevokedTrigger",
72
+ "WorkOSOrganizationTrigger"
73
+ ]
74
+ },
75
+ HeyReachConnectionRequestSentTrigger: { kind: "schema", schema: heyReachConnectionRequestSentTriggerSchema },
76
+ HeyReachConnectionRequestAcceptedTrigger: { kind: "schema", schema: heyReachConnectionRequestAcceptedTriggerSchema },
77
+ HeyReachMessageSentTrigger: { kind: "schema", schema: heyReachMessageSentTriggerSchema },
78
+ HeyReachMessageReplyReceivedTrigger: { kind: "schema", schema: heyReachMessageReplyReceivedTriggerSchema },
79
+ HeyReachInmailSentTrigger: { kind: "schema", schema: heyReachInmailSentTriggerSchema },
80
+ HeyReachInmailReplyReceivedTrigger: { kind: "schema", schema: heyReachInmailReplyReceivedTriggerSchema },
81
+ HeyReachFollowSentTrigger: { kind: "schema", schema: heyReachFollowSentTriggerSchema },
82
+ HeyReachLikedPostTrigger: { kind: "schema", schema: heyReachLikedPostTriggerSchema },
83
+ HeyReachViewedProfileTrigger: { kind: "schema", schema: heyReachViewedProfileTriggerSchema },
84
+ HeyReachCampaignCompletedTrigger: { kind: "schema", schema: heyReachCampaignCompletedTriggerSchema },
85
+ HeyReachLeadTagUpdatedTrigger: { kind: "schema", schema: heyReachLeadTagUpdatedTriggerSchema },
86
+ HeyReachTrigger: {
87
+ kind: "union",
88
+ members: [
89
+ "HeyReachConnectionRequestSentTrigger",
90
+ "HeyReachConnectionRequestAcceptedTrigger",
91
+ "HeyReachMessageSentTrigger",
92
+ "HeyReachMessageReplyReceivedTrigger",
93
+ "HeyReachInmailSentTrigger",
94
+ "HeyReachInmailReplyReceivedTrigger",
95
+ "HeyReachFollowSentTrigger",
96
+ "HeyReachLikedPostTrigger",
97
+ "HeyReachViewedProfileTrigger",
98
+ "HeyReachCampaignCompletedTrigger",
99
+ "HeyReachLeadTagUpdatedTrigger"
100
+ ]
101
+ },
102
+ AttioCallRecordingCreatedTrigger: { kind: "schema", schema: attioCallRecordingCreatedTriggerSchema },
103
+ AttioCommentCreatedTrigger: { kind: "schema", schema: attioCommentCreatedTriggerSchema },
104
+ AttioCommentResolvedTrigger: { kind: "schema", schema: attioCommentResolvedTriggerSchema },
105
+ AttioCommentUnresolvedTrigger: { kind: "schema", schema: attioCommentUnresolvedTriggerSchema },
106
+ AttioCommentDeletedTrigger: { kind: "schema", schema: attioCommentDeletedTriggerSchema },
107
+ AttioListCreatedTrigger: { kind: "schema", schema: attioListCreatedTriggerSchema },
108
+ AttioListUpdatedTrigger: { kind: "schema", schema: attioListUpdatedTriggerSchema },
109
+ AttioListDeletedTrigger: { kind: "schema", schema: attioListDeletedTriggerSchema },
110
+ AttioListAttributeCreatedTrigger: { kind: "schema", schema: attioListAttributeCreatedTriggerSchema },
111
+ AttioListAttributeUpdatedTrigger: { kind: "schema", schema: attioListAttributeUpdatedTriggerSchema },
112
+ AttioListEntryCreatedTrigger: { kind: "schema", schema: attioListEntryCreatedTriggerSchema },
113
+ AttioListEntryUpdatedTrigger: { kind: "schema", schema: attioListEntryUpdatedTriggerSchema },
114
+ AttioListEntryDeletedTrigger: { kind: "schema", schema: attioListEntryDeletedTriggerSchema },
115
+ AttioObjectAttributeCreatedTrigger: { kind: "schema", schema: attioObjectAttributeCreatedTriggerSchema },
116
+ AttioObjectAttributeUpdatedTrigger: { kind: "schema", schema: attioObjectAttributeUpdatedTriggerSchema },
117
+ AttioNoteCreatedTrigger: { kind: "schema", schema: attioNoteCreatedTriggerSchema },
118
+ AttioNoteContentUpdatedTrigger: { kind: "schema", schema: attioNoteContentUpdatedTriggerSchema },
119
+ AttioNoteUpdatedTrigger: { kind: "schema", schema: attioNoteUpdatedTriggerSchema },
120
+ AttioNoteDeletedTrigger: { kind: "schema", schema: attioNoteDeletedTriggerSchema },
121
+ AttioRecordCreatedTrigger: attioRecordProjection(attioRecordCreatedTriggerSchema),
122
+ AttioRecordMergedTrigger: attioRecordProjection(attioRecordMergedTriggerSchema),
123
+ AttioRecordUpdatedTrigger: attioRecordProjection(attioRecordUpdatedTriggerSchema),
124
+ AttioRecordDeletedTrigger: { kind: "schema", schema: attioRecordDeletedTriggerSchema },
125
+ AttioTaskCreatedTrigger: { kind: "schema", schema: attioTaskCreatedTriggerSchema },
126
+ AttioTaskUpdatedTrigger: { kind: "schema", schema: attioTaskUpdatedTriggerSchema },
127
+ AttioTaskDeletedTrigger: { kind: "schema", schema: attioTaskDeletedTriggerSchema },
128
+ AttioWorkspaceMemberCreatedTrigger: { kind: "schema", schema: attioWorkspaceMemberCreatedTriggerSchema },
129
+ AttioTrigger: {
130
+ kind: "union",
131
+ members: [
132
+ "AttioCallRecordingCreatedTrigger",
133
+ "AttioCommentCreatedTrigger",
134
+ "AttioCommentResolvedTrigger",
135
+ "AttioCommentUnresolvedTrigger",
136
+ "AttioCommentDeletedTrigger",
137
+ "AttioListCreatedTrigger",
138
+ "AttioListUpdatedTrigger",
139
+ "AttioListDeletedTrigger",
140
+ "AttioListAttributeCreatedTrigger",
141
+ "AttioListAttributeUpdatedTrigger",
142
+ "AttioListEntryCreatedTrigger",
143
+ "AttioListEntryUpdatedTrigger",
144
+ "AttioListEntryDeletedTrigger",
145
+ "AttioObjectAttributeCreatedTrigger",
146
+ "AttioObjectAttributeUpdatedTrigger",
147
+ "AttioNoteCreatedTrigger",
148
+ "AttioNoteContentUpdatedTrigger",
149
+ "AttioNoteUpdatedTrigger",
150
+ "AttioNoteDeletedTrigger",
151
+ "AttioRecordCreatedTrigger",
152
+ "AttioRecordMergedTrigger",
153
+ "AttioRecordUpdatedTrigger",
154
+ "AttioRecordDeletedTrigger",
155
+ "AttioTaskCreatedTrigger",
156
+ "AttioTaskUpdatedTrigger",
157
+ "AttioTaskDeletedTrigger",
158
+ "AttioWorkspaceMemberCreatedTrigger"
159
+ ]
160
+ },
161
+ CronTrigger: { kind: "schema", schema: cronTriggerSchema },
162
+ WebhookTrigger: { kind: "schema", schema: webhookTriggerSchema, typeParams: "<TBody = unknown>", fieldOverrides: { body: "TBody" } },
163
+ WebMonitorTrigger: { kind: "schema", schema: webMonitorTriggerSchema, typeParams: "<TPayload = unknown>", fieldOverrides: { payload: "TPayload" } }
164
+ };
165
+ export function isProjectedTriggerName(name) {
166
+ return name in triggerPayloadProjections;
167
+ }
@@ -9407,6 +9407,7 @@ export declare const serializedEventSchema: z.ZodObject<{
9407
9407
  }>, z.ZodLiteral<"webhook">, z.ZodLiteral<"cron">, z.ZodLiteral<"webmonitor">, z.ZodLiteral<"manual_sample">]>;
9408
9408
  formattedContent: z.ZodString;
9409
9409
  debugLog: z.ZodString;
9410
+ triggeredAt: z.ZodDefault<z.ZodISODateTime>;
9410
9411
  display: z.ZodOptional<z.ZodObject<{
9411
9412
  title: z.ZodString;
9412
9413
  subtitle: z.ZodString;
@@ -11415,6 +11416,7 @@ export type SerializedEvent = z.infer<typeof serializedEventSchema>;
11415
11416
  export declare const eventFixtureOverridesSchema: z.ZodObject<{
11416
11417
  formattedContent: z.ZodOptional<z.ZodString>;
11417
11418
  debugLog: z.ZodOptional<z.ZodString>;
11419
+ triggeredAt: z.ZodOptional<z.ZodISODateTime>;
11418
11420
  }, z.core.$strip>;
11419
11421
  export declare const eventFixtureSchema: z.ZodIntersection<z.ZodUnion<readonly [z.ZodDiscriminatedUnion<[z.ZodObject<{
11420
11422
  integrationType: z.ZodLiteral<IntegrationType.SLACK>;
@@ -13417,6 +13419,7 @@ export declare const eventFixtureSchema: z.ZodIntersection<z.ZodUnion<readonly [
13417
13419
  }, z.core.$strip>]>, z.ZodObject<{
13418
13420
  formattedContent: z.ZodOptional<z.ZodString>;
13419
13421
  debugLog: z.ZodOptional<z.ZodString>;
13422
+ triggeredAt: z.ZodOptional<z.ZodISODateTime>;
13420
13423
  }, z.core.$strip>>;
13421
13424
  export type EventFixture = z.infer<typeof eventFixtureSchema>;
13422
13425
  export declare function hydrateSerializedEvent(fixture: EventFixture): SerializedEvent;
package/dist/Triggers.js CHANGED
@@ -743,12 +743,14 @@ export const serializedEventSchema = z.object({
743
743
  eventType: TriggerTypeSchema,
744
744
  formattedContent: z.string(),
745
745
  debugLog: z.string(),
746
+ triggeredAt: z.iso.datetime({ offset: true }).default(() => new Date().toISOString()),
746
747
  display: serializedEventDisplaySchema.optional(),
747
748
  data: TriggerSchema
748
749
  });
749
750
  export const eventFixtureOverridesSchema = z.object({
750
751
  formattedContent: z.string().optional(),
751
- debugLog: z.string().optional()
752
+ debugLog: z.string().optional(),
753
+ triggeredAt: z.iso.datetime({ offset: true }).optional()
752
754
  });
753
755
  export const eventFixtureSchema = z.intersection(TriggerSchema, eventFixtureOverridesSchema);
754
756
  export function hydrateSerializedEvent(fixture) {
@@ -759,6 +761,7 @@ export function hydrateSerializedEvent(fixture) {
759
761
  eventType: trigger.eventType,
760
762
  formattedContent: fixture.formattedContent ?? formatTriggerForAgent(trigger),
761
763
  debugLog: fixture.debugLog ?? debugTrigger(trigger),
764
+ triggeredAt: fixture.triggeredAt ?? new Date().toISOString(),
762
765
  display: displayTrigger(trigger),
763
766
  data: trigger
764
767
  };
@@ -767,7 +770,8 @@ export function toEventFixture(event) {
767
770
  return {
768
771
  ...event.data,
769
772
  formattedContent: event.formattedContent,
770
- debugLog: event.debugLog
773
+ debugLog: event.debugLog,
774
+ triggeredAt: event.triggeredAt
771
775
  };
772
776
  }
773
777
  const slackPresenter = {