@automate.ax/integration-contracts 0.116.0 → 0.119.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gmail/index.d.ts +269 -0
- package/dist/gmail/index.js +13 -1
- package/dist/gmail/schemas.d.ts +204 -0
- package/dist/gmail/schemas.js +24 -0
- package/dist/google-calendar/event-schemas.d.ts +346 -0
- package/dist/google-calendar/event-schemas.js +14 -0
- package/dist/google-calendar/index.d.ts +350 -0
- package/dist/google-calendar/index.js +5 -1
- package/dist/millionverifier/schemas.d.ts +14 -3
- package/dist/millionverifier/schemas.js +10 -0
- package/dist/outlook/index.d.ts +927 -0
- package/dist/outlook/index.js +42 -0
- package/dist/teams/index.d.ts +2337 -0
- package/dist/teams/index.js +160 -1
- package/dist/tidycal/api.d.ts +62 -0
- package/dist/tidycal/api.js +192 -0
- package/dist/tidycal/index.d.ts +2 -0
- package/dist/tidycal/index.js +2 -0
- package/dist/tidycal/schemas.d.ts +121 -0
- package/dist/tidycal/schemas.js +95 -0
- package/package.json +8 -2
- package/src/gmail/index.ts +18 -1
- package/src/gmail/schemas.ts +26 -0
- package/src/google-calendar/event-schemas.ts +18 -0
- package/src/google-calendar/index.ts +8 -1
- package/src/millionverifier/schemas.ts +12 -1
- package/src/outlook/index.ts +45 -0
- package/src/teams/index.ts +347 -0
- package/src/tidycal/api.ts +239 -0
- package/src/tidycal/index.ts +2 -0
- package/src/tidycal/schemas.ts +105 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automate.ax/integration-contracts",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.119.1",
|
|
4
4
|
"description": "Shared integration payload contracts and provider primitives for Automate.ax.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -40,6 +40,7 @@
|
|
|
40
40
|
"./slack": "./src/slack/index.ts",
|
|
41
41
|
"./stripe": "./src/stripe/index.ts",
|
|
42
42
|
"./teams": "./src/teams/index.ts",
|
|
43
|
+
"./tidycal": "./src/tidycal/index.ts",
|
|
43
44
|
"./trello": "./src/trello/index.ts",
|
|
44
45
|
"./triggers": "./src/triggers.ts",
|
|
45
46
|
"./vercel": "./src/vercel/index.ts",
|
|
@@ -52,7 +53,7 @@
|
|
|
52
53
|
}
|
|
53
54
|
},
|
|
54
55
|
"dependencies": {
|
|
55
|
-
"@automate.ax/codec": "0.
|
|
56
|
+
"@automate.ax/codec": "0.119.1",
|
|
56
57
|
"@cfworker/json-schema": "^4.1.1",
|
|
57
58
|
"@googleapis/calendar": "^15.0.0",
|
|
58
59
|
"@googleapis/forms": "^6.0.1",
|
|
@@ -213,6 +214,11 @@
|
|
|
213
214
|
"types": "./dist/teams/index.d.ts",
|
|
214
215
|
"default": "./dist/teams/index.js"
|
|
215
216
|
},
|
|
217
|
+
"./tidycal": {
|
|
218
|
+
"bun": "./src/tidycal/index.ts",
|
|
219
|
+
"types": "./dist/tidycal/index.d.ts",
|
|
220
|
+
"default": "./dist/tidycal/index.js"
|
|
221
|
+
},
|
|
216
222
|
"./trello": {
|
|
217
223
|
"bun": "./src/trello/index.ts",
|
|
218
224
|
"types": "./dist/trello/index.d.ts",
|
package/src/gmail/index.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import * as z from "zod"
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
LABEL_CHANGE_SCHEMA,
|
|
4
|
+
MAILBOX_CHANGE_SCHEMA,
|
|
5
|
+
MESSAGE_DELETED_SCHEMA,
|
|
6
|
+
MESSAGE_SCHEMA,
|
|
7
|
+
} from "./schemas"
|
|
3
8
|
|
|
4
9
|
export * from "./gmail"
|
|
5
10
|
export * from "./schemas"
|
|
@@ -15,6 +20,18 @@ export const gmailTriggerContracts = {
|
|
|
15
20
|
configSchema: GMAIL_TRIGGER_CONFIG_SCHEMA,
|
|
16
21
|
eventSchema: LABEL_CHANGE_SCHEMA,
|
|
17
22
|
},
|
|
23
|
+
"gmail.mailbox.changed": {
|
|
24
|
+
configSchema: GMAIL_TRIGGER_CONFIG_SCHEMA,
|
|
25
|
+
eventSchema: MAILBOX_CHANGE_SCHEMA,
|
|
26
|
+
},
|
|
27
|
+
"gmail.message.added": {
|
|
28
|
+
configSchema: GMAIL_TRIGGER_CONFIG_SCHEMA,
|
|
29
|
+
eventSchema: MESSAGE_SCHEMA,
|
|
30
|
+
},
|
|
31
|
+
"gmail.message.deleted": {
|
|
32
|
+
configSchema: GMAIL_TRIGGER_CONFIG_SCHEMA,
|
|
33
|
+
eventSchema: MESSAGE_DELETED_SCHEMA,
|
|
34
|
+
},
|
|
18
35
|
"gmail.message.received": {
|
|
19
36
|
configSchema: GMAIL_TRIGGER_CONFIG_SCHEMA,
|
|
20
37
|
eventSchema: MESSAGE_SCHEMA,
|
package/src/gmail/schemas.ts
CHANGED
|
@@ -363,6 +363,32 @@ export const LABEL_CHANGE_SCHEMA = z.object({
|
|
|
363
363
|
message: MESSAGE_SCHEMA,
|
|
364
364
|
})
|
|
365
365
|
|
|
366
|
+
/** Stable identity retained after Gmail permanently deletes a message. */
|
|
367
|
+
export const MESSAGE_DELETED_SCHEMA = MESSAGE_IDENTIFIER_SCHEMA.extend({
|
|
368
|
+
/** Mailbox history record that reported the deletion. */
|
|
369
|
+
historyId: z.string(),
|
|
370
|
+
})
|
|
371
|
+
|
|
372
|
+
/** Broad normalized Gmail mailbox-history change. */
|
|
373
|
+
export const MAILBOX_CHANGE_SCHEMA = z.discriminatedUnion("changeType", [
|
|
374
|
+
z.object({
|
|
375
|
+
changeType: z.literal("messageAdded"),
|
|
376
|
+
historyId: z.string(),
|
|
377
|
+
message: MESSAGE_SCHEMA,
|
|
378
|
+
}),
|
|
379
|
+
MESSAGE_DELETED_SCHEMA.extend({
|
|
380
|
+
changeType: z.literal("messageDeleted"),
|
|
381
|
+
}),
|
|
382
|
+
LABEL_CHANGE_SCHEMA.extend({
|
|
383
|
+
changeType: z.literal("labelAdded"),
|
|
384
|
+
historyId: z.string(),
|
|
385
|
+
}),
|
|
386
|
+
LABEL_CHANGE_SCHEMA.extend({
|
|
387
|
+
changeType: z.literal("labelRemoved"),
|
|
388
|
+
historyId: z.string(),
|
|
389
|
+
}),
|
|
390
|
+
])
|
|
391
|
+
|
|
366
392
|
export const THREAD_IDENTIFIER_SCHEMA = z.object({
|
|
367
393
|
/** Immutable Gmail thread ID. */
|
|
368
394
|
threadId: z.string(),
|
|
@@ -14,3 +14,21 @@ export const GOOGLE_CALENDAR_EVENT_DELETED_SCHEMA = z.object({
|
|
|
14
14
|
/** Immutable provider event ID. */
|
|
15
15
|
eventId: z.string(),
|
|
16
16
|
})
|
|
17
|
+
|
|
18
|
+
/** Broad normalized Google Calendar event lifecycle change. */
|
|
19
|
+
export const GOOGLE_CALENDAR_EVENT_CHANGED_SCHEMA = z.discriminatedUnion(
|
|
20
|
+
"changeType",
|
|
21
|
+
[
|
|
22
|
+
z.object({
|
|
23
|
+
changeType: z.literal("created"),
|
|
24
|
+
event: CALENDAR_EVENT_SCHEMA,
|
|
25
|
+
}),
|
|
26
|
+
z.object({
|
|
27
|
+
changeType: z.literal("updated"),
|
|
28
|
+
event: CALENDAR_EVENT_SCHEMA,
|
|
29
|
+
}),
|
|
30
|
+
GOOGLE_CALENDAR_EVENT_DELETED_SCHEMA.extend({
|
|
31
|
+
changeType: z.literal("deleted"),
|
|
32
|
+
}),
|
|
33
|
+
],
|
|
34
|
+
)
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import * as z from "zod"
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
GOOGLE_CALENDAR_EVENT_CHANGED_SCHEMA,
|
|
4
|
+
GOOGLE_CALENDAR_EVENT_DELETED_SCHEMA,
|
|
5
|
+
} from "./event-schemas"
|
|
3
6
|
import { CALENDAR_EVENT_SCHEMA } from "./schemas"
|
|
4
7
|
|
|
5
8
|
export * from "./event-schemas"
|
|
@@ -12,6 +15,10 @@ export const GOOGLE_CALENDAR_TRIGGER_CONFIG_SCHEMA = z.object({
|
|
|
12
15
|
})
|
|
13
16
|
|
|
14
17
|
export const googleCalendarTriggerContracts = {
|
|
18
|
+
"googleCalendar.event.changed": {
|
|
19
|
+
configSchema: GOOGLE_CALENDAR_TRIGGER_CONFIG_SCHEMA,
|
|
20
|
+
eventSchema: GOOGLE_CALENDAR_EVENT_CHANGED_SCHEMA,
|
|
21
|
+
},
|
|
15
22
|
"googleCalendar.event.created": {
|
|
16
23
|
configSchema: GOOGLE_CALENDAR_TRIGGER_CONFIG_SCHEMA,
|
|
17
24
|
eventSchema: CALENDAR_EVENT_SCHEMA,
|
|
@@ -5,6 +5,16 @@ export const MILLIONVERIFIER_FILE_ID_SCHEMA = z
|
|
|
5
5
|
.transform(String)
|
|
6
6
|
|
|
7
7
|
export const MILLIONVERIFIER_FILE_STATUS_SCHEMA = z.enum([
|
|
8
|
+
"unknown",
|
|
9
|
+
"inProgress",
|
|
10
|
+
"error",
|
|
11
|
+
"finished",
|
|
12
|
+
"canceled",
|
|
13
|
+
"paused",
|
|
14
|
+
"inQueueToStart",
|
|
15
|
+
])
|
|
16
|
+
|
|
17
|
+
export const MILLIONVERIFIER_FILE_FILTER_STATUS_SCHEMA = z.enum([
|
|
8
18
|
"inProgress",
|
|
9
19
|
"error",
|
|
10
20
|
"finished",
|
|
@@ -68,6 +78,7 @@ export const MILLIONVERIFIER_CREDITS_SCHEMA = z.object({
|
|
|
68
78
|
})
|
|
69
79
|
|
|
70
80
|
const PROVIDER_FILE_STATUS_SCHEMA = z.enum([
|
|
81
|
+
"unknown",
|
|
71
82
|
"in_progress",
|
|
72
83
|
"error",
|
|
73
84
|
"finished",
|
|
@@ -199,7 +210,7 @@ function fromProviderFileStatus(
|
|
|
199
210
|
* @param status - Public file status.
|
|
200
211
|
*/
|
|
201
212
|
export function toMillionVerifierFileStatus(
|
|
202
|
-
status: z.output<typeof
|
|
213
|
+
status: z.output<typeof MILLIONVERIFIER_FILE_FILTER_STATUS_SCHEMA>,
|
|
203
214
|
) {
|
|
204
215
|
if (status === "inProgress") return "in_progress"
|
|
205
216
|
if (status === "inQueueToStart") return "in_queue_to_start"
|
package/src/outlook/index.ts
CHANGED
|
@@ -5,10 +5,55 @@ export * from "./graph"
|
|
|
5
5
|
export * from "./schemas"
|
|
6
6
|
|
|
7
7
|
export const OUTLOOK_TRIGGER_CONFIG_SCHEMA = z.object({})
|
|
8
|
+
export const OUTLOOK_MESSAGE_TRIGGER_CONFIG_SCHEMA = z.object({
|
|
9
|
+
folder: z.string().trim().min(1).optional(),
|
|
10
|
+
})
|
|
11
|
+
const OUTLOOK_MESSAGE_CHANGE_EVENT_BASE = {
|
|
12
|
+
folderId: z.string().optional(),
|
|
13
|
+
messageId: z.string(),
|
|
14
|
+
}
|
|
15
|
+
export const OUTLOOK_MESSAGE_CREATED_EVENT_SCHEMA = z.object({
|
|
16
|
+
...OUTLOOK_MESSAGE_CHANGE_EVENT_BASE,
|
|
17
|
+
changeType: z.literal("created"),
|
|
18
|
+
message: OUTLOOK_MESSAGE_SCHEMA,
|
|
19
|
+
})
|
|
20
|
+
export const OUTLOOK_MESSAGE_UPDATED_EVENT_SCHEMA = z.object({
|
|
21
|
+
...OUTLOOK_MESSAGE_CHANGE_EVENT_BASE,
|
|
22
|
+
changeType: z.literal("updated"),
|
|
23
|
+
message: OUTLOOK_MESSAGE_SCHEMA,
|
|
24
|
+
})
|
|
25
|
+
export const OUTLOOK_MESSAGE_DELETED_EVENT_SCHEMA = z.object({
|
|
26
|
+
...OUTLOOK_MESSAGE_CHANGE_EVENT_BASE,
|
|
27
|
+
changeType: z.literal("deleted"),
|
|
28
|
+
})
|
|
29
|
+
export const OUTLOOK_MESSAGE_CHANGE_EVENT_SCHEMA = z.discriminatedUnion(
|
|
30
|
+
"changeType",
|
|
31
|
+
[
|
|
32
|
+
OUTLOOK_MESSAGE_CREATED_EVENT_SCHEMA,
|
|
33
|
+
OUTLOOK_MESSAGE_UPDATED_EVENT_SCHEMA,
|
|
34
|
+
OUTLOOK_MESSAGE_DELETED_EVENT_SCHEMA,
|
|
35
|
+
],
|
|
36
|
+
)
|
|
8
37
|
|
|
9
38
|
export const outlookTriggerContracts = {
|
|
10
39
|
"outlook.email.received": {
|
|
11
40
|
configSchema: OUTLOOK_TRIGGER_CONFIG_SCHEMA,
|
|
12
41
|
eventSchema: OUTLOOK_MESSAGE_SCHEMA,
|
|
13
42
|
},
|
|
43
|
+
"outlook.message.changed": {
|
|
44
|
+
configSchema: OUTLOOK_MESSAGE_TRIGGER_CONFIG_SCHEMA,
|
|
45
|
+
eventSchema: OUTLOOK_MESSAGE_CHANGE_EVENT_SCHEMA,
|
|
46
|
+
},
|
|
47
|
+
"outlook.message.created": {
|
|
48
|
+
configSchema: OUTLOOK_MESSAGE_TRIGGER_CONFIG_SCHEMA,
|
|
49
|
+
eventSchema: OUTLOOK_MESSAGE_CREATED_EVENT_SCHEMA,
|
|
50
|
+
},
|
|
51
|
+
"outlook.message.updated": {
|
|
52
|
+
configSchema: OUTLOOK_MESSAGE_TRIGGER_CONFIG_SCHEMA,
|
|
53
|
+
eventSchema: OUTLOOK_MESSAGE_UPDATED_EVENT_SCHEMA,
|
|
54
|
+
},
|
|
55
|
+
"outlook.message.deleted": {
|
|
56
|
+
configSchema: OUTLOOK_MESSAGE_TRIGGER_CONFIG_SCHEMA,
|
|
57
|
+
eventSchema: OUTLOOK_MESSAGE_DELETED_EVENT_SCHEMA,
|
|
58
|
+
},
|
|
14
59
|
} as const
|
package/src/teams/index.ts
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
1
|
import * as z from "zod"
|
|
2
2
|
import {
|
|
3
|
+
TEAMS_CHANNEL_SCHEMA,
|
|
3
4
|
TEAMS_CHANNEL_MESSAGE_POSTED_EVENT_SCHEMA,
|
|
5
|
+
TEAMS_CHAT_MESSAGE_SCHEMA,
|
|
4
6
|
TEAMS_CHAT_MESSAGE_POSTED_EVENT_SCHEMA,
|
|
7
|
+
TEAMS_CHAT_SCHEMA,
|
|
8
|
+
TEAMS_MEMBER_SCHEMA,
|
|
9
|
+
TEAMS_TEAM_SCHEMA,
|
|
5
10
|
} from "./schemas"
|
|
6
11
|
|
|
7
12
|
export * from "./graph"
|
|
@@ -14,6 +19,244 @@ export const TEAMS_CHANNEL_TRIGGER_CONFIG_SCHEMA = z.object({
|
|
|
14
19
|
export const TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA = z.object({
|
|
15
20
|
chatId: z.string().min(1),
|
|
16
21
|
})
|
|
22
|
+
export const TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA = z.object({
|
|
23
|
+
team: z.string().trim().min(1),
|
|
24
|
+
})
|
|
25
|
+
export const TEAMS_TEAM_MEMBER_TRIGGER_CONFIG_SCHEMA =
|
|
26
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA
|
|
27
|
+
export const TEAMS_CHANNEL_MEMBER_TRIGGER_CONFIG_SCHEMA =
|
|
28
|
+
TEAMS_CHANNEL_TRIGGER_CONFIG_SCHEMA
|
|
29
|
+
export const TEAMS_CHAT_MEMBER_TRIGGER_CONFIG_SCHEMA =
|
|
30
|
+
TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Builds one hydrated Teams resource-change payload variant.
|
|
34
|
+
*
|
|
35
|
+
* @param changeType - Provider change category.
|
|
36
|
+
* @param resourceType - Public resource discriminator.
|
|
37
|
+
* @param dataSchema - Hydrated resource schema.
|
|
38
|
+
* @param context - Required parent resource identifiers.
|
|
39
|
+
*/
|
|
40
|
+
function changeEventSchema<
|
|
41
|
+
TChangeType extends "created" | "updated",
|
|
42
|
+
TResourceType extends string,
|
|
43
|
+
TDataSchema extends z.ZodType,
|
|
44
|
+
TContext extends z.ZodRawShape,
|
|
45
|
+
>(
|
|
46
|
+
changeType: TChangeType,
|
|
47
|
+
resourceType: TResourceType,
|
|
48
|
+
dataSchema: TDataSchema,
|
|
49
|
+
context: TContext,
|
|
50
|
+
) {
|
|
51
|
+
return z.object({
|
|
52
|
+
...context,
|
|
53
|
+
changeType: z.literal(changeType),
|
|
54
|
+
data: dataSchema,
|
|
55
|
+
resourceId: z.string(),
|
|
56
|
+
resourceType: z.literal(resourceType),
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Builds one deleted Teams resource tombstone payload.
|
|
62
|
+
*
|
|
63
|
+
* @param resourceType - Public resource discriminator.
|
|
64
|
+
* @param context - Required parent resource identifiers.
|
|
65
|
+
*/
|
|
66
|
+
function deletedEventSchema<
|
|
67
|
+
TResourceType extends string,
|
|
68
|
+
TContext extends z.ZodRawShape,
|
|
69
|
+
>(resourceType: TResourceType, context: TContext) {
|
|
70
|
+
return z.object({
|
|
71
|
+
...context,
|
|
72
|
+
changeType: z.literal("deleted"),
|
|
73
|
+
resourceId: z.string(),
|
|
74
|
+
resourceType: z.literal(resourceType),
|
|
75
|
+
})
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const TEAM_CONTEXT = { teamId: z.string() }
|
|
79
|
+
const CHANNEL_CONTEXT = { channelId: z.string(), teamId: z.string() }
|
|
80
|
+
const CHAT_CONTEXT = { chatId: z.string() }
|
|
81
|
+
const CHANNEL_CREATED_EVENT_SCHEMA = changeEventSchema(
|
|
82
|
+
"created",
|
|
83
|
+
"channel",
|
|
84
|
+
TEAMS_CHANNEL_SCHEMA,
|
|
85
|
+
TEAM_CONTEXT,
|
|
86
|
+
)
|
|
87
|
+
const CHANNEL_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
88
|
+
"updated",
|
|
89
|
+
"channel",
|
|
90
|
+
TEAMS_CHANNEL_SCHEMA,
|
|
91
|
+
TEAM_CONTEXT,
|
|
92
|
+
)
|
|
93
|
+
const CHANNEL_DELETED_EVENT_SCHEMA = deletedEventSchema("channel", TEAM_CONTEXT)
|
|
94
|
+
const TEAM_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
95
|
+
"updated",
|
|
96
|
+
"team",
|
|
97
|
+
TEAMS_TEAM_SCHEMA,
|
|
98
|
+
TEAM_CONTEXT,
|
|
99
|
+
)
|
|
100
|
+
const TEAM_DELETED_EVENT_SCHEMA = deletedEventSchema("team", TEAM_CONTEXT)
|
|
101
|
+
const TEAM_MEMBER_CREATED_EVENT_SCHEMA = changeEventSchema(
|
|
102
|
+
"created",
|
|
103
|
+
"teamMember",
|
|
104
|
+
TEAMS_MEMBER_SCHEMA,
|
|
105
|
+
TEAM_CONTEXT,
|
|
106
|
+
)
|
|
107
|
+
const TEAM_MEMBER_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
108
|
+
"updated",
|
|
109
|
+
"teamMember",
|
|
110
|
+
TEAMS_MEMBER_SCHEMA,
|
|
111
|
+
TEAM_CONTEXT,
|
|
112
|
+
)
|
|
113
|
+
const TEAM_MEMBER_DELETED_EVENT_SCHEMA = deletedEventSchema(
|
|
114
|
+
"teamMember",
|
|
115
|
+
TEAM_CONTEXT,
|
|
116
|
+
)
|
|
117
|
+
const CHANNEL_MEMBER_CREATED_EVENT_SCHEMA = changeEventSchema(
|
|
118
|
+
"created",
|
|
119
|
+
"channelMember",
|
|
120
|
+
TEAMS_MEMBER_SCHEMA,
|
|
121
|
+
CHANNEL_CONTEXT,
|
|
122
|
+
)
|
|
123
|
+
const CHANNEL_MEMBER_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
124
|
+
"updated",
|
|
125
|
+
"channelMember",
|
|
126
|
+
TEAMS_MEMBER_SCHEMA,
|
|
127
|
+
CHANNEL_CONTEXT,
|
|
128
|
+
)
|
|
129
|
+
const CHANNEL_MEMBER_DELETED_EVENT_SCHEMA = deletedEventSchema(
|
|
130
|
+
"channelMember",
|
|
131
|
+
CHANNEL_CONTEXT,
|
|
132
|
+
)
|
|
133
|
+
const CHANNEL_MESSAGE_CREATED_EVENT_SCHEMA = changeEventSchema(
|
|
134
|
+
"created",
|
|
135
|
+
"channelMessage",
|
|
136
|
+
TEAMS_CHAT_MESSAGE_SCHEMA,
|
|
137
|
+
CHANNEL_CONTEXT,
|
|
138
|
+
)
|
|
139
|
+
const CHANNEL_MESSAGE_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
140
|
+
"updated",
|
|
141
|
+
"channelMessage",
|
|
142
|
+
TEAMS_CHAT_MESSAGE_SCHEMA,
|
|
143
|
+
CHANNEL_CONTEXT,
|
|
144
|
+
)
|
|
145
|
+
const CHANNEL_MESSAGE_DELETED_EVENT_SCHEMA = deletedEventSchema(
|
|
146
|
+
"channelMessage",
|
|
147
|
+
CHANNEL_CONTEXT,
|
|
148
|
+
)
|
|
149
|
+
const CHAT_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
150
|
+
"updated",
|
|
151
|
+
"chat",
|
|
152
|
+
TEAMS_CHAT_SCHEMA,
|
|
153
|
+
CHAT_CONTEXT,
|
|
154
|
+
)
|
|
155
|
+
const CHAT_MEMBER_CREATED_EVENT_SCHEMA = changeEventSchema(
|
|
156
|
+
"created",
|
|
157
|
+
"chatMember",
|
|
158
|
+
TEAMS_MEMBER_SCHEMA,
|
|
159
|
+
CHAT_CONTEXT,
|
|
160
|
+
)
|
|
161
|
+
const CHAT_MEMBER_DELETED_EVENT_SCHEMA = deletedEventSchema(
|
|
162
|
+
"chatMember",
|
|
163
|
+
CHAT_CONTEXT,
|
|
164
|
+
)
|
|
165
|
+
const CHAT_MESSAGE_CREATED_EVENT_SCHEMA = changeEventSchema(
|
|
166
|
+
"created",
|
|
167
|
+
"chatMessage",
|
|
168
|
+
TEAMS_CHAT_MESSAGE_SCHEMA,
|
|
169
|
+
CHAT_CONTEXT,
|
|
170
|
+
)
|
|
171
|
+
const CHAT_MESSAGE_UPDATED_EVENT_SCHEMA = changeEventSchema(
|
|
172
|
+
"updated",
|
|
173
|
+
"chatMessage",
|
|
174
|
+
TEAMS_CHAT_MESSAGE_SCHEMA,
|
|
175
|
+
CHAT_CONTEXT,
|
|
176
|
+
)
|
|
177
|
+
const CHAT_MESSAGE_DELETED_EVENT_SCHEMA = deletedEventSchema(
|
|
178
|
+
"chatMessage",
|
|
179
|
+
CHAT_CONTEXT,
|
|
180
|
+
)
|
|
181
|
+
|
|
182
|
+
export const TEAMS_CHANGE_EVENT_SCHEMAS = {
|
|
183
|
+
"teams.channel.changed": z.discriminatedUnion("changeType", [
|
|
184
|
+
CHANNEL_CREATED_EVENT_SCHEMA,
|
|
185
|
+
CHANNEL_UPDATED_EVENT_SCHEMA,
|
|
186
|
+
CHANNEL_DELETED_EVENT_SCHEMA,
|
|
187
|
+
]),
|
|
188
|
+
"teams.channel.created": CHANNEL_CREATED_EVENT_SCHEMA,
|
|
189
|
+
"teams.channel.updated": CHANNEL_UPDATED_EVENT_SCHEMA,
|
|
190
|
+
"teams.channel.deleted": CHANNEL_DELETED_EVENT_SCHEMA,
|
|
191
|
+
"teams.team.changed": z.discriminatedUnion("changeType", [
|
|
192
|
+
TEAM_UPDATED_EVENT_SCHEMA,
|
|
193
|
+
TEAM_DELETED_EVENT_SCHEMA,
|
|
194
|
+
]),
|
|
195
|
+
"teams.team.updated": TEAM_UPDATED_EVENT_SCHEMA,
|
|
196
|
+
"teams.team.deleted": TEAM_DELETED_EVENT_SCHEMA,
|
|
197
|
+
"teams.team.member.changed": z.discriminatedUnion("changeType", [
|
|
198
|
+
TEAM_MEMBER_CREATED_EVENT_SCHEMA,
|
|
199
|
+
TEAM_MEMBER_UPDATED_EVENT_SCHEMA,
|
|
200
|
+
TEAM_MEMBER_DELETED_EVENT_SCHEMA,
|
|
201
|
+
]),
|
|
202
|
+
"teams.team.member.added": TEAM_MEMBER_CREATED_EVENT_SCHEMA,
|
|
203
|
+
"teams.team.member.updated": TEAM_MEMBER_UPDATED_EVENT_SCHEMA,
|
|
204
|
+
"teams.team.member.removed": TEAM_MEMBER_DELETED_EVENT_SCHEMA,
|
|
205
|
+
"teams.channel.member.changed": z.discriminatedUnion("changeType", [
|
|
206
|
+
CHANNEL_MEMBER_CREATED_EVENT_SCHEMA,
|
|
207
|
+
CHANNEL_MEMBER_UPDATED_EVENT_SCHEMA,
|
|
208
|
+
CHANNEL_MEMBER_DELETED_EVENT_SCHEMA,
|
|
209
|
+
]),
|
|
210
|
+
"teams.channel.member.added": CHANNEL_MEMBER_CREATED_EVENT_SCHEMA,
|
|
211
|
+
"teams.channel.member.updated": CHANNEL_MEMBER_UPDATED_EVENT_SCHEMA,
|
|
212
|
+
"teams.channel.member.removed": CHANNEL_MEMBER_DELETED_EVENT_SCHEMA,
|
|
213
|
+
"teams.channel.message.changed": z.discriminatedUnion("changeType", [
|
|
214
|
+
CHANNEL_MESSAGE_CREATED_EVENT_SCHEMA,
|
|
215
|
+
CHANNEL_MESSAGE_UPDATED_EVENT_SCHEMA,
|
|
216
|
+
CHANNEL_MESSAGE_DELETED_EVENT_SCHEMA,
|
|
217
|
+
]),
|
|
218
|
+
"teams.channel.message.updated": CHANNEL_MESSAGE_UPDATED_EVENT_SCHEMA,
|
|
219
|
+
"teams.channel.message.deleted": CHANNEL_MESSAGE_DELETED_EVENT_SCHEMA,
|
|
220
|
+
"teams.chat.changed": CHAT_UPDATED_EVENT_SCHEMA,
|
|
221
|
+
"teams.chat.updated": CHAT_UPDATED_EVENT_SCHEMA,
|
|
222
|
+
"teams.chat.member.changed": z.discriminatedUnion("changeType", [
|
|
223
|
+
CHAT_MEMBER_CREATED_EVENT_SCHEMA,
|
|
224
|
+
CHAT_MEMBER_DELETED_EVENT_SCHEMA,
|
|
225
|
+
]),
|
|
226
|
+
"teams.chat.member.added": CHAT_MEMBER_CREATED_EVENT_SCHEMA,
|
|
227
|
+
"teams.chat.member.removed": CHAT_MEMBER_DELETED_EVENT_SCHEMA,
|
|
228
|
+
"teams.chat.message.changed": z.discriminatedUnion("changeType", [
|
|
229
|
+
CHAT_MESSAGE_CREATED_EVENT_SCHEMA,
|
|
230
|
+
CHAT_MESSAGE_UPDATED_EVENT_SCHEMA,
|
|
231
|
+
CHAT_MESSAGE_DELETED_EVENT_SCHEMA,
|
|
232
|
+
]),
|
|
233
|
+
"teams.chat.message.updated": CHAT_MESSAGE_UPDATED_EVENT_SCHEMA,
|
|
234
|
+
"teams.chat.message.deleted": CHAT_MESSAGE_DELETED_EVENT_SCHEMA,
|
|
235
|
+
} as const
|
|
236
|
+
|
|
237
|
+
export const TEAMS_CHANGE_EVENT_SCHEMA = z.union([
|
|
238
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.changed"],
|
|
239
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.changed"],
|
|
240
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.member.changed"],
|
|
241
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.member.changed"],
|
|
242
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.message.changed"],
|
|
243
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.changed"],
|
|
244
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.member.changed"],
|
|
245
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.message.changed"],
|
|
246
|
+
])
|
|
247
|
+
|
|
248
|
+
/**
|
|
249
|
+
* Builds one Teams change-event contract.
|
|
250
|
+
*
|
|
251
|
+
* @param configSchema - Resource selection schema for the Graph subscription.
|
|
252
|
+
* @param eventSchema - Exact semantic event payload schema.
|
|
253
|
+
*/
|
|
254
|
+
function changeContract<
|
|
255
|
+
TConfigSchema extends z.ZodType,
|
|
256
|
+
TEventSchema extends z.ZodType,
|
|
257
|
+
>(configSchema: TConfigSchema, eventSchema: TEventSchema) {
|
|
258
|
+
return { configSchema, eventSchema }
|
|
259
|
+
}
|
|
17
260
|
|
|
18
261
|
export const teamsTriggerContracts = {
|
|
19
262
|
"teams.channel.message.posted": {
|
|
@@ -24,4 +267,108 @@ export const teamsTriggerContracts = {
|
|
|
24
267
|
configSchema: TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA,
|
|
25
268
|
eventSchema: TEAMS_CHAT_MESSAGE_POSTED_EVENT_SCHEMA,
|
|
26
269
|
},
|
|
270
|
+
"teams.channel.changed": changeContract(
|
|
271
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
272
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.changed"],
|
|
273
|
+
),
|
|
274
|
+
"teams.channel.created": changeContract(
|
|
275
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
276
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.created"],
|
|
277
|
+
),
|
|
278
|
+
"teams.channel.updated": changeContract(
|
|
279
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
280
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.updated"],
|
|
281
|
+
),
|
|
282
|
+
"teams.channel.deleted": changeContract(
|
|
283
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
284
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.deleted"],
|
|
285
|
+
),
|
|
286
|
+
"teams.team.changed": changeContract(
|
|
287
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
288
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.changed"],
|
|
289
|
+
),
|
|
290
|
+
"teams.team.updated": changeContract(
|
|
291
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
292
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.updated"],
|
|
293
|
+
),
|
|
294
|
+
"teams.team.deleted": changeContract(
|
|
295
|
+
TEAMS_TEAM_TRIGGER_CONFIG_SCHEMA,
|
|
296
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.deleted"],
|
|
297
|
+
),
|
|
298
|
+
"teams.team.member.changed": changeContract(
|
|
299
|
+
TEAMS_TEAM_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
300
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.member.changed"],
|
|
301
|
+
),
|
|
302
|
+
"teams.team.member.added": changeContract(
|
|
303
|
+
TEAMS_TEAM_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
304
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.member.added"],
|
|
305
|
+
),
|
|
306
|
+
"teams.team.member.updated": changeContract(
|
|
307
|
+
TEAMS_TEAM_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
308
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.member.updated"],
|
|
309
|
+
),
|
|
310
|
+
"teams.team.member.removed": changeContract(
|
|
311
|
+
TEAMS_TEAM_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
312
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.team.member.removed"],
|
|
313
|
+
),
|
|
314
|
+
"teams.channel.member.changed": changeContract(
|
|
315
|
+
TEAMS_CHANNEL_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
316
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.member.changed"],
|
|
317
|
+
),
|
|
318
|
+
"teams.channel.member.added": changeContract(
|
|
319
|
+
TEAMS_CHANNEL_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
320
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.member.added"],
|
|
321
|
+
),
|
|
322
|
+
"teams.channel.member.updated": changeContract(
|
|
323
|
+
TEAMS_CHANNEL_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
324
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.member.updated"],
|
|
325
|
+
),
|
|
326
|
+
"teams.channel.member.removed": changeContract(
|
|
327
|
+
TEAMS_CHANNEL_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
328
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.member.removed"],
|
|
329
|
+
),
|
|
330
|
+
"teams.channel.message.changed": changeContract(
|
|
331
|
+
TEAMS_CHANNEL_TRIGGER_CONFIG_SCHEMA,
|
|
332
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.message.changed"],
|
|
333
|
+
),
|
|
334
|
+
"teams.channel.message.updated": changeContract(
|
|
335
|
+
TEAMS_CHANNEL_TRIGGER_CONFIG_SCHEMA,
|
|
336
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.message.updated"],
|
|
337
|
+
),
|
|
338
|
+
"teams.channel.message.deleted": changeContract(
|
|
339
|
+
TEAMS_CHANNEL_TRIGGER_CONFIG_SCHEMA,
|
|
340
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.channel.message.deleted"],
|
|
341
|
+
),
|
|
342
|
+
"teams.chat.changed": changeContract(
|
|
343
|
+
TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA,
|
|
344
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.changed"],
|
|
345
|
+
),
|
|
346
|
+
"teams.chat.updated": changeContract(
|
|
347
|
+
TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA,
|
|
348
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.updated"],
|
|
349
|
+
),
|
|
350
|
+
"teams.chat.member.changed": changeContract(
|
|
351
|
+
TEAMS_CHAT_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
352
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.member.changed"],
|
|
353
|
+
),
|
|
354
|
+
"teams.chat.member.added": changeContract(
|
|
355
|
+
TEAMS_CHAT_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
356
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.member.added"],
|
|
357
|
+
),
|
|
358
|
+
"teams.chat.member.removed": changeContract(
|
|
359
|
+
TEAMS_CHAT_MEMBER_TRIGGER_CONFIG_SCHEMA,
|
|
360
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.member.removed"],
|
|
361
|
+
),
|
|
362
|
+
"teams.chat.message.changed": changeContract(
|
|
363
|
+
TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA,
|
|
364
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.message.changed"],
|
|
365
|
+
),
|
|
366
|
+
"teams.chat.message.updated": changeContract(
|
|
367
|
+
TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA,
|
|
368
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.message.updated"],
|
|
369
|
+
),
|
|
370
|
+
"teams.chat.message.deleted": changeContract(
|
|
371
|
+
TEAMS_CHAT_TRIGGER_CONFIG_SCHEMA,
|
|
372
|
+
TEAMS_CHANGE_EVENT_SCHEMAS["teams.chat.message.deleted"],
|
|
373
|
+
),
|
|
27
374
|
} as const
|