@automate.ax/integration-contracts 0.55.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.
Files changed (136) hide show
  1. package/dist/airtable/api.d.ts +19 -0
  2. package/dist/airtable/api.js +44 -0
  3. package/dist/airtable/index.d.ts +353 -0
  4. package/dist/airtable/index.js +32 -0
  5. package/dist/airtable/schemas.d.ts +716 -0
  6. package/dist/airtable/schemas.js +184 -0
  7. package/dist/asana/api.d.ts +70 -0
  8. package/dist/asana/api.js +119 -0
  9. package/dist/asana/index.d.ts +384 -0
  10. package/dist/asana/index.js +38 -0
  11. package/dist/asana/schemas.d.ts +1060 -0
  12. package/dist/asana/schemas.js +512 -0
  13. package/dist/brevo/api.d.ts +31 -0
  14. package/dist/brevo/api.js +64 -0
  15. package/dist/brevo/index.d.ts +822 -0
  16. package/dist/brevo/index.js +51 -0
  17. package/dist/brevo/schemas.d.ts +1217 -0
  18. package/dist/brevo/schemas.js +332 -0
  19. package/dist/github/index.d.ts +37 -0
  20. package/dist/github/index.js +106 -0
  21. package/dist/github/schemas.d.ts +8014 -0
  22. package/dist/github/schemas.js +113 -0
  23. package/dist/gmail/gmail.d.ts +172 -0
  24. package/dist/gmail/gmail.js +405 -0
  25. package/dist/gmail/index.d.ts +262 -0
  26. package/dist/gmail/index.js +23 -0
  27. package/dist/gmail/schemas.d.ts +444 -0
  28. package/dist/gmail/schemas.js +242 -0
  29. package/dist/google-calendar/event-schemas.d.ts +117 -0
  30. package/dist/google-calendar/event-schemas.js +13 -0
  31. package/dist/google-calendar/google-calendar.d.ts +147 -0
  32. package/dist/google-calendar/google-calendar.js +583 -0
  33. package/dist/google-calendar/index.d.ts +365 -0
  34. package/dist/google-calendar/index.js +24 -0
  35. package/dist/google-calendar/schemas.d.ts +592 -0
  36. package/dist/google-calendar/schemas.js +379 -0
  37. package/dist/google-forms/event-schemas.d.ts +105 -0
  38. package/dist/google-forms/event-schemas.js +20 -0
  39. package/dist/google-forms/google-forms.d.ts +243 -0
  40. package/dist/google-forms/google-forms.js +581 -0
  41. package/dist/google-forms/index.d.ts +141 -0
  42. package/dist/google-forms/index.js +20 -0
  43. package/dist/google-forms/schemas.d.ts +618 -0
  44. package/dist/google-forms/schemas.js +383 -0
  45. package/dist/linear/api.d.ts +63 -0
  46. package/dist/linear/api.js +88 -0
  47. package/dist/linear/index.d.ts +1338 -0
  48. package/dist/linear/index.js +55 -0
  49. package/dist/linear/schemas.d.ts +1795 -0
  50. package/dist/linear/schemas.js +760 -0
  51. package/dist/outlook/graph.d.ts +34 -0
  52. package/dist/outlook/graph.js +98 -0
  53. package/dist/outlook/index.d.ts +115 -0
  54. package/dist/outlook/index.js +11 -0
  55. package/dist/outlook/schemas.d.ts +529 -0
  56. package/dist/outlook/schemas.js +312 -0
  57. package/dist/resend/index.d.ts +707 -0
  58. package/dist/resend/index.js +54 -0
  59. package/dist/resend/schemas.d.ts +1033 -0
  60. package/dist/resend/schemas.js +377 -0
  61. package/dist/slack/index.d.ts +151 -0
  62. package/dist/slack/index.js +22 -0
  63. package/dist/slack/schemas.d.ts +641 -0
  64. package/dist/slack/schemas.js +581 -0
  65. package/dist/teams/graph.d.ts +33 -0
  66. package/dist/teams/graph.js +95 -0
  67. package/dist/teams/index.d.ts +164 -0
  68. package/dist/teams/index.js +21 -0
  69. package/dist/teams/schemas.d.ts +675 -0
  70. package/dist/teams/schemas.js +365 -0
  71. package/dist/trello/api.d.ts +69 -0
  72. package/dist/trello/api.js +140 -0
  73. package/dist/trello/event-schemas.d.ts +1101 -0
  74. package/dist/trello/event-schemas.js +233 -0
  75. package/dist/trello/index.d.ts +721 -0
  76. package/dist/trello/index.js +35 -0
  77. package/dist/trello/schemas.d.ts +283 -0
  78. package/dist/trello/schemas.js +401 -0
  79. package/dist/triggers.d.ts +26 -0
  80. package/dist/triggers.js +33 -0
  81. package/dist/vercel/index.d.ts +1065 -0
  82. package/dist/vercel/index.js +114 -0
  83. package/dist/vercel/schemas.d.ts +1518 -0
  84. package/dist/vercel/schemas.js +335 -0
  85. package/dist/whatsapp/api.d.ts +62 -0
  86. package/dist/whatsapp/api.js +121 -0
  87. package/dist/whatsapp/index.d.ts +614 -0
  88. package/dist/whatsapp/index.js +35 -0
  89. package/dist/whatsapp/schemas.d.ts +926 -0
  90. package/dist/whatsapp/schemas.js +326 -0
  91. package/package.json +169 -0
  92. package/src/airtable/api.ts +66 -0
  93. package/src/airtable/index.ts +41 -0
  94. package/src/airtable/schemas.ts +231 -0
  95. package/src/asana/api.ts +171 -0
  96. package/src/asana/index.ts +49 -0
  97. package/src/asana/schemas.ts +655 -0
  98. package/src/brevo/api.ts +89 -0
  99. package/src/brevo/index.ts +66 -0
  100. package/src/brevo/schemas.ts +449 -0
  101. package/src/github/index.ts +217 -0
  102. package/src/github/schemas.ts +435 -0
  103. package/src/gmail/gmail.ts +577 -0
  104. package/src/gmail/index.ts +26 -0
  105. package/src/gmail/schemas.ts +327 -0
  106. package/src/google-calendar/event-schemas.ts +16 -0
  107. package/src/google-calendar/google-calendar.ts +727 -0
  108. package/src/google-calendar/index.ts +27 -0
  109. package/src/google-calendar/schemas.ts +529 -0
  110. package/src/google-forms/event-schemas.ts +26 -0
  111. package/src/google-forms/google-forms.ts +683 -0
  112. package/src/google-forms/index.ts +23 -0
  113. package/src/google-forms/schemas.ts +499 -0
  114. package/src/linear/api.ts +141 -0
  115. package/src/linear/index.ts +71 -0
  116. package/src/linear/schemas.ts +1060 -0
  117. package/src/outlook/graph.ts +132 -0
  118. package/src/outlook/index.ts +14 -0
  119. package/src/outlook/schemas.ts +388 -0
  120. package/src/resend/index.ts +70 -0
  121. package/src/resend/schemas.ts +462 -0
  122. package/src/slack/index.ts +29 -0
  123. package/src/slack/schemas.ts +737 -0
  124. package/src/teams/graph.ts +130 -0
  125. package/src/teams/index.ts +27 -0
  126. package/src/teams/schemas.ts +463 -0
  127. package/src/trello/api.ts +190 -0
  128. package/src/trello/event-schemas.ts +290 -0
  129. package/src/trello/index.ts +45 -0
  130. package/src/trello/schemas.ts +507 -0
  131. package/src/triggers.ts +68 -0
  132. package/src/vercel/index.ts +147 -0
  133. package/src/vercel/schemas.ts +594 -0
  134. package/src/whatsapp/api.ts +171 -0
  135. package/src/whatsapp/index.ts +46 -0
  136. package/src/whatsapp/schemas.ts +341 -0
@@ -0,0 +1,233 @@
1
+ import { z } from "zod";
2
+ const TRELLO_JSON_OBJECT_SCHEMA = z.record(z.string(), z.json());
3
+ const TRELLO_RESOURCE_SCHEMA = z
4
+ .looseObject({
5
+ id: z.string(),
6
+ name: z.string().optional(),
7
+ })
8
+ .catchall(z.json());
9
+ const TRELLO_BOARD_SCHEMA = TRELLO_RESOURCE_SCHEMA.extend({
10
+ closed: z.boolean().optional(),
11
+ url: z.string().optional(),
12
+ });
13
+ const TRELLO_CARD_SCHEMA = TRELLO_RESOURCE_SCHEMA.extend({
14
+ closed: z.boolean().optional(),
15
+ idShort: z.number().int().optional(),
16
+ shortLink: z.string().optional(),
17
+ });
18
+ const TRELLO_LIST_SCHEMA = TRELLO_RESOURCE_SCHEMA;
19
+ const TRELLO_MEMBER_SCHEMA = TRELLO_RESOURCE_SCHEMA.extend({
20
+ fullName: z.string().optional(),
21
+ username: z.string().optional(),
22
+ });
23
+ const TRELLO_ACTION_DATA_SCHEMA = z
24
+ .looseObject({
25
+ /** Attachment affected by the action, when applicable. */
26
+ attachment: TRELLO_RESOURCE_SCHEMA.extend({
27
+ url: z.string().optional(),
28
+ }).optional(),
29
+ /** Board affected by the action. */
30
+ board: TRELLO_BOARD_SCHEMA.optional(),
31
+ /** Card affected by the action, when applicable. */
32
+ card: TRELLO_CARD_SCHEMA.optional(),
33
+ /** Checklist affected by the action, when applicable. */
34
+ checklist: TRELLO_RESOURCE_SCHEMA.optional(),
35
+ /** Checklist item affected by the action, when applicable. */
36
+ checkItem: TRELLO_RESOURCE_SCHEMA.optional(),
37
+ /** List associated with the action. */
38
+ list: TRELLO_LIST_SCHEMA.optional(),
39
+ /** Destination list for a move action. */
40
+ listAfter: TRELLO_LIST_SCHEMA.optional(),
41
+ /** Source list for a move action. */
42
+ listBefore: TRELLO_LIST_SCHEMA.optional(),
43
+ /** Member affected by the action, when applicable. */
44
+ member: TRELLO_MEMBER_SCHEMA.optional(),
45
+ /** Previous field values supplied for an update action. */
46
+ old: TRELLO_JSON_OBJECT_SCHEMA.optional(),
47
+ /** Organization affected by the action, when applicable. */
48
+ organization: TRELLO_RESOURCE_SCHEMA.optional(),
49
+ /** Comment or other action text. */
50
+ text: z.string().optional(),
51
+ })
52
+ .catchall(z.json());
53
+ const TRELLO_CARD_ACTION_DATA_SCHEMA = TRELLO_ACTION_DATA_SCHEMA.extend({
54
+ old: z
55
+ .looseObject({ closed: z.boolean().optional() })
56
+ .catchall(z.json())
57
+ .optional(),
58
+ });
59
+ const TRELLO_WEBHOOK_EVENT_SCHEMA = z.object({
60
+ action: z
61
+ .looseObject({
62
+ data: TRELLO_ACTION_DATA_SCHEMA,
63
+ date: z.iso.datetime({ offset: true }),
64
+ id: z.string(),
65
+ memberCreator: TRELLO_MEMBER_SCHEMA.optional(),
66
+ type: z.string(),
67
+ })
68
+ .catchall(z.json()),
69
+ model: TRELLO_BOARD_SCHEMA,
70
+ webhook: z.looseObject({ id: z.string() }).catchall(z.json()),
71
+ });
72
+ const TRELLO_CARD_CREATED_ACTION_SCHEMA = z.enum([
73
+ "copyCard",
74
+ "convertToCardFromCheckItem",
75
+ "createCard",
76
+ "emailCard",
77
+ ]);
78
+ const TRELLO_CARD_UPDATED_ACTION_SCHEMA = z.literal("updateCard");
79
+ const TRELLO_CARD_COMMENTED_ACTION_SCHEMA = z.literal("commentCard");
80
+ export const TRELLO_CARD_EVENT_KINDS = [
81
+ "created",
82
+ "moved",
83
+ "updated",
84
+ "archived",
85
+ "commented",
86
+ ];
87
+ export const TRELLO_BOARD_EVENT_SCHEMA = TRELLO_ACTION_DATA_SCHEMA.extend({
88
+ /** Stable ID of the Trello action that caused this event. */
89
+ actionId: z.string(),
90
+ /** Trello action category, such as `createCard` or `updateCard`. */
91
+ actionType: z.string(),
92
+ /** Board affected by the action, falling back to the watched board. */
93
+ board: TRELLO_BOARD_SCHEMA,
94
+ /** Complete provider webhook envelope. */
95
+ event: TRELLO_WEBHOOK_EVENT_SCHEMA,
96
+ /** Member responsible for the action, when Trello includes one. */
97
+ memberCreator: TRELLO_MEMBER_SCHEMA.optional(),
98
+ /** When the underlying Trello action occurred. */
99
+ occurredAt: z.iso.datetime({ offset: true }),
100
+ /** Provider webhook that delivered the event. */
101
+ webhookId: z.string(),
102
+ });
103
+ export const TRELLO_CARD_EVENT_SCHEMA = z.object({
104
+ /** Stable ID of the Trello action that caused this event. */
105
+ actionId: z.string(),
106
+ /** Provider-native Trello action category. */
107
+ actionType: z.string(),
108
+ /** Board containing the affected card. */
109
+ board: TRELLO_BOARD_EVENT_SCHEMA.shape.board,
110
+ /** Card affected by the action. */
111
+ card: TRELLO_CARD_SCHEMA,
112
+ /** Comment text for card-comment events. */
113
+ commentText: z.string().optional(),
114
+ /** Complete provider webhook envelope. */
115
+ event: TRELLO_WEBHOOK_EVENT_SCHEMA,
116
+ /** List containing the card after the action. */
117
+ list: TRELLO_LIST_SCHEMA.optional(),
118
+ /** Member responsible for the action, when supplied by Trello. */
119
+ memberCreator: TRELLO_BOARD_EVENT_SCHEMA.shape.memberCreator,
120
+ /** When the underlying Trello action occurred. */
121
+ occurredAt: z.iso.datetime({ offset: true }),
122
+ /** List containing the card before a move. */
123
+ previousList: TRELLO_LIST_SCHEMA.optional(),
124
+ });
125
+ export const TRELLO_CARD_CREATED_EVENT_SCHEMA = TRELLO_CARD_EVENT_SCHEMA.extend({
126
+ actionType: TRELLO_CARD_CREATED_ACTION_SCHEMA,
127
+ event: trelloWebhookEventSchema(TRELLO_CARD_CREATED_ACTION_SCHEMA),
128
+ });
129
+ export const TRELLO_CARD_MOVED_EVENT_SCHEMA = TRELLO_CARD_EVENT_SCHEMA.extend({
130
+ actionType: TRELLO_CARD_UPDATED_ACTION_SCHEMA,
131
+ event: trelloWebhookEventSchema(TRELLO_CARD_UPDATED_ACTION_SCHEMA),
132
+ list: TRELLO_LIST_SCHEMA,
133
+ previousList: TRELLO_LIST_SCHEMA,
134
+ });
135
+ export const TRELLO_CARD_UPDATED_EVENT_SCHEMA = TRELLO_CARD_EVENT_SCHEMA.extend({
136
+ actionType: TRELLO_CARD_UPDATED_ACTION_SCHEMA,
137
+ event: trelloWebhookEventSchema(TRELLO_CARD_UPDATED_ACTION_SCHEMA),
138
+ });
139
+ export const TRELLO_CARD_ARCHIVED_EVENT_SCHEMA = TRELLO_CARD_UPDATED_EVENT_SCHEMA.extend({
140
+ card: TRELLO_CARD_SCHEMA.extend({ closed: z.literal(true) }),
141
+ });
142
+ export const TRELLO_CARD_COMMENTED_EVENT_SCHEMA = TRELLO_CARD_EVENT_SCHEMA.extend({
143
+ actionType: TRELLO_CARD_COMMENTED_ACTION_SCHEMA,
144
+ commentText: z.string(),
145
+ event: trelloWebhookEventSchema(TRELLO_CARD_COMMENTED_ACTION_SCHEMA),
146
+ });
147
+ /**
148
+ * Normalizes one provider-native Trello board webhook payload.
149
+ *
150
+ * @param value - Untrusted Trello webhook body.
151
+ */
152
+ export function normalizeTrelloBoardEvent(value) {
153
+ const event = TRELLO_WEBHOOK_EVENT_SCHEMA.parse(value);
154
+ return TRELLO_BOARD_EVENT_SCHEMA.parse({
155
+ ...event.action.data,
156
+ actionId: event.action.id,
157
+ actionType: event.action.type,
158
+ board: { ...event.model, ...event.action.data.board },
159
+ event,
160
+ memberCreator: event.action.memberCreator,
161
+ occurredAt: event.action.date,
162
+ webhookId: event.webhook.id,
163
+ });
164
+ }
165
+ /**
166
+ * Classifies one normalized board action into semantic card event categories.
167
+ *
168
+ * A single Trello action can intentionally belong to more than one category;
169
+ * for example, moving a card is also a card update.
170
+ *
171
+ * @param event - Normalized board event received from Trello.
172
+ */
173
+ export function getTrelloCardEventKinds(event) {
174
+ const data = TRELLO_CARD_ACTION_DATA_SCHEMA.parse(event.event.action.data);
175
+ return [
176
+ ...([
177
+ "createCard",
178
+ "copyCard",
179
+ "convertToCardFromCheckItem",
180
+ "emailCard",
181
+ ].includes(event.actionType)
182
+ ? ["created"]
183
+ : []),
184
+ ...(event.actionType === "updateCard" &&
185
+ data.listBefore !== undefined &&
186
+ data.listAfter !== undefined
187
+ ? ["moved"]
188
+ : []),
189
+ ...(event.actionType === "updateCard" ? ["updated"] : []),
190
+ ...(event.actionType === "updateCard" &&
191
+ data.old?.closed === false &&
192
+ data.card?.closed === true
193
+ ? ["archived"]
194
+ : []),
195
+ ...(event.actionType === "commentCard" ? ["commented"] : []),
196
+ ];
197
+ }
198
+ /**
199
+ * Promotes provider-native card action data into the stable semantic payload.
200
+ *
201
+ * @param event - Normalized board event classified as a card event.
202
+ * @throws When the classified Trello action does not identify a card.
203
+ */
204
+ export function normalizeTrelloCardEvent(event) {
205
+ const data = TRELLO_CARD_ACTION_DATA_SCHEMA.parse(event.event.action.data);
206
+ if (!data.card) {
207
+ throw new Error(`Trello ${event.actionType} action did not include a card.`);
208
+ }
209
+ return TRELLO_CARD_EVENT_SCHEMA.parse({
210
+ actionId: event.actionId,
211
+ actionType: event.actionType,
212
+ board: event.board,
213
+ card: data.card,
214
+ commentText: data.text,
215
+ event: event.event,
216
+ list: data.listAfter ?? data.list,
217
+ memberCreator: event.memberCreator,
218
+ occurredAt: event.occurredAt,
219
+ previousList: data.listBefore,
220
+ });
221
+ }
222
+ /**
223
+ * Narrows the provider action type retained under a semantic event.
224
+ *
225
+ * @param actionType - Provider action-type schema for the semantic event.
226
+ */
227
+ function trelloWebhookEventSchema(actionType) {
228
+ return TRELLO_WEBHOOK_EVENT_SCHEMA.extend({
229
+ action: TRELLO_WEBHOOK_EVENT_SCHEMA.shape.action.extend({
230
+ type: actionType,
231
+ }),
232
+ });
233
+ }