@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
JavaScript
"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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