UNPKG

@microsoft/teams.apps

Version:

<p> <a href="https://www.npmjs.com/package/@microsoft/teams.apps" target="_blank"> <img src="https://img.shields.io/npm/v/@microsoft/teams.apps/latest" /> </a> <a href="https://www.npmjs.com/package/@microsoft/teams.apps?activeTab=code

121 lines • 9.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.Router = void 0; const routes_1 = require("../routes"); class Router { routes = []; /** * select routes that match the inbound activity * @param activity the inbound activity */ select(activity) { return this.selectRoutes(activity) .map((r) => r.callback); } /** * @internal * Select route entries that match the inbound activity while preserving route metadata. * Runtime instrumentation uses this so public route callbacks keep their existing shape. */ selectRoutes(activity) { return this.routes.filter((r) => r.select(activity)); } /** * register a new route * @param route the route to register */ register(route) { // replace system registered (default) route implementation // if developer registers replacement if (route.type === 'user') { const i = this.routes.findIndex(r => r.name === route.name && r.type === 'system'); if (i > -1) { this.routes.splice(i, 1); } } this.routes.push(route); return this; } /** * register a middleware * @param callback the callback to invoke */ use(callback, type) { this.register({ type: type || 'user', select: () => true, callback, }); return this; } /** * register an activity route * @param event event to subscribe to * @param callback the callback to invoke */ on(event, callback, type) { this.register({ name: event, type: type || 'user', select: (activity) => { if (event === 'activity') { return true; } if (event === activity.type) { return true; } if (activity.type === 'conversationUpdate') { return event === activity.channelData?.eventType; } if (activity.type === 'installationUpdate') { return event === `install.${activity.action}`; } if (activity.type === 'messageDelete') { return event === activity.channelData?.eventType; } if (activity.type === 'messageUpdate') { return event === activity.channelData?.eventType; } if (activity.type === 'event') { if (activity.name === 'agentLifecycle' && event === routes_1.AGENT_LIFECYCLE_ALIASES[activity.valueType]) { return true; } return event === routes_1.EVENT_ALIASES[activity.name]; } if (activity.type === 'invoke') { if (event === routes_1.INVOKE_ALIASES[activity.name]) { return true; } if (activity.name === 'fileConsent/invoke') { return event === `file.consent.${activity.value.action}`; } if (activity.name === 'composeExtension/submitAction') { return event === `message.ext.${activity.value.botMessagePreviewAction}`; } if (activity.name === 'message/submitAction') { return event === `message.submit.${activity.value.actionName}`; } if (activity.name === 'task/fetch' && activity.value?.data?.dialog_id) { return event === `dialog.open.${activity.value.data.dialog_id}`; } if (activity.name === 'task/submit' && activity.value?.data?.action) { return event === `dialog.submit.${activity.value.data.action}`; } if (activity.name === 'adaptiveCard/action' && activity.value?.action?.data?.action) { return event === `card.action.${activity.value.action.data.action}`; } } // custom routes if (event === 'mention' && activity.entities?.some((e) => e.type === 'mention')) { return (activity.entities?.find((e) => e.type === 'mention' && e.mentioned.id === activity.recipient.id) !== undefined); } return false; }, callback, }); return this; } } exports.Router = Router; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvdXRlci9yb3V0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0Esc0NBQTRGO0FBSzVGLE1BQWEsTUFBTTtJQUNFLE1BQU0sR0FBc0MsRUFBRSxDQUFDO0lBRWxFOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxRQUFrQjtRQUN2QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO2FBQy9CLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQStDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxRQUFrQjtRQUM3QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBNkIsS0FBNkI7UUFDaEUsMkRBQTJEO1FBQzNELHFDQUFxQztRQUNyQyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDMUIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQztZQUVuRixJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzQixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FB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