UNPKG

@microsoft/agents-hosting-extensions-teams

Version:

Microsoft 365 Agents SDK for JavaScript. Teams extensions

215 lines 10.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.TeamsAgentExtension = void 0; const meeting_1 = require("./meeting/meeting"); const agents_activity_1 = require("@microsoft/agents-activity"); const agents_hosting_1 = require("@microsoft/agents-hosting"); const teamsChannelDataParser_1 = require("./activity-extensions/teamsChannelDataParser"); const messageExtension_1 = require("./messageExtension/messageExtension"); const taskModule_1 = require("./taskModule/taskModule"); class TeamsAgentExtension extends agents_hosting_1.AgentExtension { constructor(app) { super('msteams'); this._app = app; this._meeting = new meeting_1.Meeting(app); this._messageExtension = new messageExtension_1.MessageExtension(app); this._taskModule = new taskModule_1.TaskModule(app); } get meeting() { return this._meeting; } get messageExtension() { return this._messageExtension; } get taskModule() { return this._taskModule; } onFeedback(handler) { const routeSel = (context) => { return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.Invoke && context.activity.channelId === 'msteams' && context.activity.name === 'message/submitAction' && context.activity.value.actionName === 'feedback'); }; this._app.addRoute(routeSel, handler, true); // Invoke requires true return this; } onMessageEdit(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(!!(context.activity.type === agents_activity_1.ActivityTypes.MessageUpdate && (channelData === null || channelData === void 0 ? void 0 : channelData.eventType) === 'editMessage')); }; this.addRoute(this._app, routeSel, handler, false); return this; } onMessageDelete(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.MessageDelete && channelData && channelData.eventType === 'softDeleteMessage'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onMessageUndelete(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.MessageUpdate && channelData && channelData.eventType === 'undeleteMessage'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsMembersAdded(handler) { const routeSel = (context) => { return Promise.resolve(!!(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && context.activity.membersAdded && context.activity.membersAdded.length > 0)); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsMembersRemoved(handler) { const routeSel = (context) => { return Promise.resolve(!!(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && context.activity.membersRemoved && context.activity.membersRemoved.length > 0)); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsChannelCreated(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'channelCreated'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsChannelDeleted(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'channelDeleted'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsChannelRenamed(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'channelRenamed'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsChannelRestored(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'channelRestored'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsChannelShared(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'channelShared'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsChannelUnshared(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'channelUnshared'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsTeamRenamed(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'teamRenamed'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsTeamArchived(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'teamArchived'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsTeamUnarchived(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'teamUnarchived'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsTeamDeleted(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'teamDeleted'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsTeamHardDeleted(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'teamHardDeleted'); }; this.addRoute(this._app, routeSel, handler, false); return this; } onTeamsTeamRestored(handler) { const routeSel = (context) => { const channelData = (0, teamsChannelDataParser_1.parseTeamsChannelData)(context.activity.channelData); return Promise.resolve(context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate && context.activity.channelId === 'msteams' && channelData && channelData.eventType === 'teamRestored'); }; this.addRoute(this._app, routeSel, handler, false); return this; } } exports.TeamsAgentExtension = TeamsAgentExtension; //# sourceMappingURL=teamsAgentExtension.js.map