import { microsoftTriggerDefinitions as triggerDefinitions } from "@automate.ax/catalog/triggers/microsoft" import { createTrigger } from "../../../automation/create-trigger" import type { TeamsTriggerOptions } from "./lib" /** Options for subscribing to messages in one Teams channel. */ export interface OnMicrosoftTeamsChannelMessagePostedOptions extends TeamsTriggerOptions { /** Exact Microsoft channel display name or ID. */ channel: string /** Exact Microsoft team display name or ID. */ team: string } /** * Subscribes to root messages and replies posted in one Teams channel. * * @param options - Channel, team, and Microsoft account selection. * @throws When the account selection is dynamic or belongs to another service. */ export const onMicrosoftTeamsChannelMessagePosted = createTrigger( triggerDefinitions.teamsChannelMessagePosted, (options: OnMicrosoftTeamsChannelMessagePostedOptions) => ({ account: options.account, channel: options.channel.trim(), team: options.team.trim(), }), ) /** Options for subscribing to messages in one Teams chat. */ export interface OnMicrosoftTeamsChatMessagePostedOptions extends TeamsTriggerOptions { /** Opaque Microsoft chat identifier. */ chatId: string } /** * Subscribes to messages posted in one Teams chat. * * @param options - Chat and Microsoft account selection. * @throws When the account selection is dynamic or belongs to another service. */ export const onMicrosoftTeamsChatMessagePosted = createTrigger( triggerDefinitions.teamsChatMessagePosted, (options: OnMicrosoftTeamsChatMessagePostedOptions) => ({ account: options.account, chatId: options.chatId, }), ) /** Options for subscribing to changes within one Microsoft Team. */ export interface OnMicrosoftTeamsTeamEventOptions extends TeamsTriggerOptions { /** Exact Microsoft team display name or ID. */ team: string } const teamOptions = (options: OnMicrosoftTeamsTeamEventOptions) => ({ account: options.account, team: options.team.trim(), }) const channelOptions = ( options: OnMicrosoftTeamsChannelMessagePostedOptions, ) => ({ account: options.account, channel: options.channel.trim(), team: options.team.trim(), }) const chatOptions = (options: OnMicrosoftTeamsChatMessagePostedOptions) => ({ account: options.account, chatId: options.chatId, }) /** Subscribes to team updates and deletion. */ export const onMicrosoftTeamsTeamEvent = createTrigger( triggerDefinitions.teamsTeamEvent, teamOptions, ) /** Subscribes to team updates. */ export const onMicrosoftTeamsTeamUpdated = createTrigger( triggerDefinitions.teamsTeamUpdated, teamOptions, ) /** Subscribes to team deletion. */ export const onMicrosoftTeamsTeamDeleted = createTrigger( triggerDefinitions.teamsTeamDeleted, teamOptions, ) /** Subscribes to channel creation, updates, and deletion in a team. */ export const onMicrosoftTeamsChannelEvent = createTrigger( triggerDefinitions.teamsChannelEvent, teamOptions, ) /** Subscribes to channel creation in a team. */ export const onMicrosoftTeamsChannelCreated = createTrigger( triggerDefinitions.teamsChannelCreated, teamOptions, ) /** Subscribes to channel updates in a team. */ export const onMicrosoftTeamsChannelUpdated = createTrigger( triggerDefinitions.teamsChannelUpdated, teamOptions, ) /** Subscribes to channel deletion in a team. */ export const onMicrosoftTeamsChannelDeleted = createTrigger( triggerDefinitions.teamsChannelDeleted, teamOptions, ) /** Subscribes to channel message updates and deletions. */ export const onMicrosoftTeamsChannelMessageEvent = createTrigger( triggerDefinitions.teamsChannelMessageEvent, channelOptions, ) /** Subscribes to channel message updates. */ export const onMicrosoftTeamsChannelMessageUpdated = createTrigger( triggerDefinitions.teamsChannelMessageUpdated, channelOptions, ) /** Subscribes to channel message deletions. */ export const onMicrosoftTeamsChannelMessageDeleted = createTrigger( triggerDefinitions.teamsChannelMessageDeleted, channelOptions, ) /** Subscribes to team-member additions, updates, and removals. */ export const onMicrosoftTeamsTeamMemberEvent = createTrigger( triggerDefinitions.teamsTeamMemberEvent, teamOptions, ) /** Subscribes to team-member additions. */ export const onMicrosoftTeamsTeamMemberAdded = createTrigger( triggerDefinitions.teamsTeamMemberAdded, teamOptions, ) /** Subscribes to team-member updates. */ export const onMicrosoftTeamsTeamMemberUpdated = createTrigger( triggerDefinitions.teamsTeamMemberUpdated, teamOptions, ) /** Subscribes to team-member removals. */ export const onMicrosoftTeamsTeamMemberRemoved = createTrigger( triggerDefinitions.teamsTeamMemberRemoved, teamOptions, ) /** Subscribes to channel-member additions, updates, and removals. */ export const onMicrosoftTeamsChannelMemberEvent = createTrigger( triggerDefinitions.teamsChannelMemberEvent, channelOptions, ) /** Subscribes to channel-member additions. */ export const onMicrosoftTeamsChannelMemberAdded = createTrigger( triggerDefinitions.teamsChannelMemberAdded, channelOptions, ) /** Subscribes to channel-member updates. */ export const onMicrosoftTeamsChannelMemberUpdated = createTrigger( triggerDefinitions.teamsChannelMemberUpdated, channelOptions, ) /** Subscribes to channel-member removals. */ export const onMicrosoftTeamsChannelMemberRemoved = createTrigger( triggerDefinitions.teamsChannelMemberRemoved, channelOptions, ) /** Subscribes to chat updates. */ export const onMicrosoftTeamsChatEvent = createTrigger( triggerDefinitions.teamsChatEvent, chatOptions, ) /** Subscribes to chat updates. */ export const onMicrosoftTeamsChatUpdated = createTrigger( triggerDefinitions.teamsChatUpdated, chatOptions, ) /** Subscribes to chat message updates and deletions. */ export const onMicrosoftTeamsChatMessageEvent = createTrigger( triggerDefinitions.teamsChatMessageEvent, chatOptions, ) /** Subscribes to chat message updates. */ export const onMicrosoftTeamsChatMessageUpdated = createTrigger( triggerDefinitions.teamsChatMessageUpdated, chatOptions, ) /** Subscribes to chat message deletions. */ export const onMicrosoftTeamsChatMessageDeleted = createTrigger( triggerDefinitions.teamsChatMessageDeleted, chatOptions, ) /** Subscribes to chat-member additions and removals. */ export const onMicrosoftTeamsChatMemberEvent = createTrigger( triggerDefinitions.teamsChatMemberEvent, chatOptions, ) /** Subscribes to chat-member additions. */ export const onMicrosoftTeamsChatMemberAdded = createTrigger( triggerDefinitions.teamsChatMemberAdded, chatOptions, ) /** Subscribes to chat-member removals. */ export const onMicrosoftTeamsChatMemberRemoved = createTrigger( triggerDefinitions.teamsChatMemberRemoved, chatOptions, )