@microsoft/teams.apps 2.0.0-preview.11 → 2.0.0-preview.12
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/router.d.ts +34 -0
- package/dist/router.js +91 -0
- package/package.json +5 -5
package/dist/router.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Activity, InvokeResponse } from '@microsoft/teams.api';
|
|
2
|
+
import { IActivityContext } from './contexts';
|
|
3
|
+
import { IRoutes } from './routes';
|
|
4
|
+
import { RouteHandler } from './types';
|
|
5
|
+
type Route<Name extends keyof IRoutes = keyof IRoutes, TExtraCtx extends Record<string, any> = Record<string, any>> = {
|
|
6
|
+
readonly name?: Name;
|
|
7
|
+
readonly select: (activity: Activity) => boolean;
|
|
8
|
+
readonly callback: IRoutes<TExtraCtx>[Name];
|
|
9
|
+
};
|
|
10
|
+
export declare class Router<TExtraCtx extends Record<string, any> = Record<string, any>> {
|
|
11
|
+
protected readonly routes: Route<keyof IRoutes, TExtraCtx>[];
|
|
12
|
+
/**
|
|
13
|
+
* select routes that match the inbound activity
|
|
14
|
+
* @param activity the inbound activity
|
|
15
|
+
*/
|
|
16
|
+
select(activity: Activity): RouteHandler<import("./contexts").IBaseActivityContext<Activity, Record<string, any>>, any>[];
|
|
17
|
+
/**
|
|
18
|
+
* register a new route
|
|
19
|
+
* @param route the route to register
|
|
20
|
+
*/
|
|
21
|
+
register<Name extends keyof IRoutes>(route: Route<Name, TExtraCtx>): this;
|
|
22
|
+
/**
|
|
23
|
+
* register a middleware
|
|
24
|
+
* @param callback the callback to invoke
|
|
25
|
+
*/
|
|
26
|
+
use(callback: RouteHandler<IActivityContext<Activity, TExtraCtx>, void | InvokeResponse>): this;
|
|
27
|
+
/**
|
|
28
|
+
* register an activity route
|
|
29
|
+
* @param event event to subscribe to
|
|
30
|
+
* @param callback the callback to invoke
|
|
31
|
+
*/
|
|
32
|
+
on<Name extends keyof IRoutes>(event: Name, callback: Exclude<IRoutes<TExtraCtx>[Name], undefined>): this;
|
|
33
|
+
}
|
|
34
|
+
export {};
|
package/dist/router.js
ADDED
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Router = void 0;
|
|
4
|
+
const routes_1 = require("./routes");
|
|
5
|
+
class Router {
|
|
6
|
+
routes = [];
|
|
7
|
+
/**
|
|
8
|
+
* select routes that match the inbound activity
|
|
9
|
+
* @param activity the inbound activity
|
|
10
|
+
*/
|
|
11
|
+
select(activity) {
|
|
12
|
+
return this.routes
|
|
13
|
+
.filter((r) => r.select(activity))
|
|
14
|
+
.map((r) => r.callback);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* register a new route
|
|
18
|
+
* @param route the route to register
|
|
19
|
+
*/
|
|
20
|
+
register(route) {
|
|
21
|
+
this.routes.push(route);
|
|
22
|
+
return this;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* register a middleware
|
|
26
|
+
* @param callback the callback to invoke
|
|
27
|
+
*/
|
|
28
|
+
use(callback) {
|
|
29
|
+
this.register({
|
|
30
|
+
select: () => true,
|
|
31
|
+
callback,
|
|
32
|
+
});
|
|
33
|
+
return this;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* register an activity route
|
|
37
|
+
* @param event event to subscribe to
|
|
38
|
+
* @param callback the callback to invoke
|
|
39
|
+
*/
|
|
40
|
+
on(event, callback) {
|
|
41
|
+
this.register({
|
|
42
|
+
name: event,
|
|
43
|
+
select: (activity) => {
|
|
44
|
+
if (event === 'activity') {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
if (event === activity.type) {
|
|
48
|
+
return true;
|
|
49
|
+
}
|
|
50
|
+
if (activity.type === 'conversationUpdate') {
|
|
51
|
+
return event === activity.channelData?.eventType;
|
|
52
|
+
}
|
|
53
|
+
if (activity.type === 'installationUpdate') {
|
|
54
|
+
return event === `install.${activity.action}`;
|
|
55
|
+
}
|
|
56
|
+
if (activity.type === 'messageDelete') {
|
|
57
|
+
return event === activity.channelData?.eventType;
|
|
58
|
+
}
|
|
59
|
+
if (activity.type === 'messageUpdate') {
|
|
60
|
+
return event === activity.channelData?.eventType;
|
|
61
|
+
}
|
|
62
|
+
if (activity.type === 'event') {
|
|
63
|
+
return event === routes_1.EVENT_ALIASES[activity.name];
|
|
64
|
+
}
|
|
65
|
+
if (activity.type === 'invoke') {
|
|
66
|
+
if (event === routes_1.INVOKE_ALIASES[activity.name]) {
|
|
67
|
+
return true;
|
|
68
|
+
}
|
|
69
|
+
if (activity.name === 'fileConsent/invoke') {
|
|
70
|
+
return event === `file.consent.${activity.value.action}`;
|
|
71
|
+
}
|
|
72
|
+
if (activity.name === 'composeExtension/submitAction') {
|
|
73
|
+
return event === `message.ext.${activity.value.botMessagePreviewAction}`;
|
|
74
|
+
}
|
|
75
|
+
if (activity.name === 'message/submitAction') {
|
|
76
|
+
return event === `message.submit.${activity.value.actionName}`;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// custom routes
|
|
80
|
+
if (event === 'mention' && activity.entities?.some((e) => e.type === 'mention')) {
|
|
81
|
+
return (activity.entities?.find((e) => e.type === 'mention' && e.mentioned.id === activity.recipient.id) !== undefined);
|
|
82
|
+
}
|
|
83
|
+
return false;
|
|
84
|
+
},
|
|
85
|
+
callback,
|
|
86
|
+
});
|
|
87
|
+
return this;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
exports.Router = Router;
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3JvdXRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFHQSxxQ0FBa0U7QUFTbEUsTUFBYSxNQUFNO0lBQ0UsTUFBTSxHQUFzQyxFQUFFLENBQUM7SUFFbEU7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLFFBQWtCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLE1BQU07YUFDZixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDakMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBK0MsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRDs7O09BR0c7SUFDSCxRQUFRLENBQTZCLEtBQTZCO1FBQ2hFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7T0FHRztJQUNILEdBQUcsQ0FBQyxRQUFvRjtRQUN0RixJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ1osTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUk7WUFDbEIsUUFBUTtTQUNULENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxFQUFFLENBQTZCLEtBQVcsRUFBRSxRQUFzRDtRQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDO1lBQ1osSUFBSSxFQUFFLEtBQUs7WUFDWCxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDbkIsSUFBSSxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7b0JBQ3pCLE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUM7Z0JBRUQsSUFBSSxLQUFLLEtBQUssUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO29CQUM1QixPQUFPLElBQUksQ0FBQztnQkFDZCxDQUFDO2dCQUVELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxvQkFBb0IsRUFBRSxDQUFDO29CQUMzQyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztnQkFDbkQsQ0FBQztnQkFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssb0JBQW9CLEVBQUUsQ0FBQztvQkFDM0MsT0FBTyxLQUFLLEtBQUssV0FBVyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7Z0JBQ2hELENBQUM7Z0JBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLGVBQWUsRUFBRSxDQUFDO29CQUN0QyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQztnQkFDbkQsQ0FBQztnQkFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssZUFBZSxFQUFFLENBQUM7b0JBQ3RDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDO2dCQUNuRCxDQUFDO2dCQUVELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyxLQUFLLEtBQUssc0JBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ2hELENBQUM7Z0JBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUMvQixJQUFJLEtBQUssS0FBSyx1QkFBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO3dCQUM1QyxPQUFPLElBQUksQ0FBQztvQkFDZCxDQUFDO29CQUVELElBQUksUUFBUSxDQUFDLElBQUksS0FBSyxvQkFBb0IsRUFBRSxDQUFDO3dCQUMzQyxPQUFPLEtBQUssS0FBSyxnQkFBZ0IsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDM0QsQ0FBQztvQkFFRCxJQUFJLFFBQVEsQ0FBQyxJQUFJLEtBQUssK0JBQStCLEVBQUUsQ0FBQzt3QkFDdEQsT0FBTyxLQUFLLEtBQUssZUFBZSxRQUFRLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLENBQUM7b0JBQzNFLENBQUM7b0JBRUQsSUFBSSxRQUFRLENBQUMsSUFBSSxLQUFLLHNCQUFzQixFQUFFLENBQUM7d0JBQzdDLE9BQU8sS0FBSyxLQUFLLGtCQUFrQixRQUFRLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNqRSxDQUFDO2dCQUNILENBQUM7Z0JBRUQsZ0JBQWdCO2dCQUNoQixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLEVBQUUsQ0FBQztvQkFDaEYsT0FBTyxDQUNMLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUNyQixDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQ3hFLEtBQUssU0FBUyxDQUNoQixDQUFDO2dCQUNKLENBQUM7Z0JBRUQsT0FBTyxLQUFLLENBQUM7WUFDZixDQUFDO1lBQ0QsUUFBUTtTQUNULENBQUMsQ0FBQztRQUVILE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBMUdELHdCQTBHQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@microsoft/teams.apps",
|
|
3
|
-
"version": "2.0.0-preview.
|
|
3
|
+
"version": "2.0.0-preview.12",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.mjs",
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
"reflect-metadata": "^0.2.2"
|
|
47
47
|
},
|
|
48
48
|
"peerDependencies": {
|
|
49
|
-
"@microsoft/teams.api": "2.0.0-preview.
|
|
50
|
-
"@microsoft/teams.common": "2.0.0-preview.
|
|
51
|
-
"@microsoft/teams.graph": "2.0.0-preview.
|
|
49
|
+
"@microsoft/teams.api": "2.0.0-preview.12",
|
|
50
|
+
"@microsoft/teams.common": "2.0.0-preview.12",
|
|
51
|
+
"@microsoft/teams.graph": "2.0.0-preview.12"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@microsoft/teams.config": "2.0.0-preview.
|
|
54
|
+
"@microsoft/teams.config": "2.0.0-preview.12",
|
|
55
55
|
"@types/cors": "^2.8.17",
|
|
56
56
|
"@types/express": "^5.0.0",
|
|
57
57
|
"@types/jest": "^29.5.12",
|