@microsoft/teams.apps 2.0.0-preview.6 → 2.0.0-preview.7
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/app.embed.js +11 -1
- package/dist/contexts/client.d.ts +10 -6
- package/dist/contexts/function.d.ts +15 -0
- package/dist/middleware/with-client-auth.js +10 -5
- package/dist/utils/function-context.d.ts +5 -0
- package/dist/utils/function-context.js +54 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +3 -2
- package/package.json +5 -5
package/dist/app.embed.js
CHANGED
|
@@ -8,6 +8,7 @@ exports.tab = tab;
|
|
|
8
8
|
exports.configTab = configTab;
|
|
9
9
|
const path_1 = __importDefault(require("path"));
|
|
10
10
|
const middleware_1 = require("./middleware");
|
|
11
|
+
const utils_1 = require("./utils");
|
|
11
12
|
/**
|
|
12
13
|
* add/update a function that can be called remotely
|
|
13
14
|
* @param name The unique function name
|
|
@@ -23,12 +24,21 @@ function func(name, cb) {
|
|
|
23
24
|
if (!req.context) {
|
|
24
25
|
throw new Error('expected client context');
|
|
25
26
|
}
|
|
27
|
+
const getCurrentConversationId = utils_1.functionContext.getConversationIdResolver(this, log.child('getCurrentConversationId'), req.context);
|
|
28
|
+
const send = async (activity) => {
|
|
29
|
+
const conversationId = await getCurrentConversationId();
|
|
30
|
+
return !conversationId
|
|
31
|
+
? null
|
|
32
|
+
: await this.send(conversationId, activity);
|
|
33
|
+
};
|
|
26
34
|
const data = await cb({
|
|
27
35
|
...req.context,
|
|
28
36
|
log,
|
|
29
37
|
api: this.api,
|
|
30
38
|
appGraph: this.graph,
|
|
31
39
|
data: req.body,
|
|
40
|
+
getCurrentConversationId,
|
|
41
|
+
send,
|
|
32
42
|
});
|
|
33
43
|
res.send(data);
|
|
34
44
|
});
|
|
@@ -81,4 +91,4 @@ function configTab(url, options) {
|
|
|
81
91
|
});
|
|
82
92
|
return this;
|
|
83
93
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmVtYmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC5lbWJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQSxvQkErQ0M7QUFVRCxrQkE4QkM7QUFPRCw4QkFnQkM7QUE5SEQsZ0RBQXlCO0FBT3pCLDZDQUFpRTtBQUVqRSxtQ0FBMEM7QUFFMUM7Ozs7R0FJRztBQUNILFNBQWdCLElBQUksQ0FFbEIsSUFBWSxFQUNaLEVBQTREO0lBRTVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixrQkFBa0IsSUFBSSxFQUFFLEVBQ3hCLElBQUEsMkJBQWMsRUFBQztRQUNiLE1BQU0sRUFBRSxHQUFHO1FBQ1gsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLG1CQUFtQjtRQUM3QyxHQUFHLElBQUksQ0FBQyxXQUFXO0tBQ3BCLENBQUMsRUFDRixLQUFLLEVBQUUsR0FBc0IsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztRQUM3QyxDQUFDO1FBRUQsTUFBTSx3QkFBd0IsR0FDNUIsdUJBQWUsQ0FBQyx5QkFBeUIsQ0FDdkMsSUFBSSxFQUNKLEdBQUcsQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsRUFDckMsR0FBRyxDQUFDLE9BQU8sQ0FDWixDQUFDO1FBRUosTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLFFBQXNCLEVBQUUsRUFBRTtZQUM1QyxNQUFNLGNBQWMsR0FBRyxNQUFNLHdCQUF3QixFQUFFLENBQUM7WUFDeEQsT0FBTyxDQUFDLGNBQWM7Z0JBQ3BCLENBQUMsQ0FBQyxJQUFJO2dCQUNOLENBQUMsQ0FB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
|
|
@@ -8,13 +8,17 @@ export interface IClientContext {
|
|
|
8
8
|
*/
|
|
9
9
|
readonly appSessionId: string;
|
|
10
10
|
/**
|
|
11
|
-
* The Microsoft Entra tenant ID of the current user.
|
|
11
|
+
* The Microsoft Entra tenant ID of the current user, extracted from request auth token.
|
|
12
12
|
*/
|
|
13
|
-
readonly tenantId
|
|
13
|
+
readonly tenantId: string;
|
|
14
14
|
/**
|
|
15
|
-
* The Microsoft Entra object id of the current user.
|
|
15
|
+
* The Microsoft Entra object id of the current user, extracted from the request auth token.
|
|
16
16
|
*/
|
|
17
|
-
readonly userId
|
|
17
|
+
readonly userId: string;
|
|
18
|
+
/**
|
|
19
|
+
* The name of the current user, extracted from the request auth token.
|
|
20
|
+
*/
|
|
21
|
+
readonly userName: string;
|
|
18
22
|
/**
|
|
19
23
|
* The Microsoft Teams ID for the team with which the content is associated.
|
|
20
24
|
*/
|
|
@@ -33,7 +37,7 @@ export interface IClientContext {
|
|
|
33
37
|
*/
|
|
34
38
|
readonly chatId?: string;
|
|
35
39
|
/**
|
|
36
|
-
* Meeting
|
|
40
|
+
* Meeting ID used by tab when running in meeting context
|
|
37
41
|
*/
|
|
38
42
|
readonly meetingId?: string;
|
|
39
43
|
/**
|
|
@@ -49,5 +53,5 @@ export interface IClientContext {
|
|
|
49
53
|
/**
|
|
50
54
|
* The MSAL entra token.
|
|
51
55
|
*/
|
|
52
|
-
readonly authToken
|
|
56
|
+
readonly authToken: string;
|
|
53
57
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ActivityLike, SentActivity } from '@microsoft/teams.api';
|
|
1
2
|
import { ILogger } from '@microsoft/teams.common';
|
|
2
3
|
import { ApiClient, GraphClient } from '../api';
|
|
3
4
|
import { IClientContext } from './client';
|
|
@@ -18,4 +19,18 @@ export interface IFunctionContext<T = any> extends IClientContext {
|
|
|
18
19
|
* the function payload
|
|
19
20
|
*/
|
|
20
21
|
data: T;
|
|
22
|
+
/**
|
|
23
|
+
* Attempts to find the ID of the conversation in which the app is being used, and verifies that the bot and the
|
|
24
|
+
* user making the function call are both present in the conversation. Depending on the conversation type, this
|
|
25
|
+
* is the ID of a chat (for group chats, 1:1 chats and channel meetings), a channel, a meeting, or a user-bot
|
|
26
|
+
* conversation (when the app is hosted in personal scope).
|
|
27
|
+
* Returns undefined if the conversation ID cannot be determined or is invalid.
|
|
28
|
+
*/
|
|
29
|
+
getCurrentConversationId: () => Promise<string | undefined>;
|
|
30
|
+
/**
|
|
31
|
+
* send an activity to the current conversation.
|
|
32
|
+
* Returns null if the conversation ID cannot be determined or is invalid.
|
|
33
|
+
* @param activity activity to send
|
|
34
|
+
*/
|
|
35
|
+
send: (activity: ActivityLike) => Promise<SentActivity | null>;
|
|
21
36
|
}
|
|
@@ -14,12 +14,16 @@ function withClientAuth(params) {
|
|
|
14
14
|
const validatedToken = !entraTokenValidator
|
|
15
15
|
? null
|
|
16
16
|
: await entraTokenValidator.validateAccessToken(log, authToken);
|
|
17
|
-
|
|
17
|
+
const tokenPayload = validatedToken && entraTokenValidator?.getTokenPayload(validatedToken);
|
|
18
|
+
if (!pageId ||
|
|
19
|
+
!appSessionId ||
|
|
20
|
+
!validatedToken ||
|
|
21
|
+
!entraTokenValidator ||
|
|
22
|
+
!tokenPayload) {
|
|
18
23
|
log.debug('unauthorized');
|
|
19
24
|
res.status(401).send('unauthorized');
|
|
20
25
|
return;
|
|
21
26
|
}
|
|
22
|
-
const tokenPayload = entraTokenValidator.getTokenPayload(validatedToken);
|
|
23
27
|
req.context = {
|
|
24
28
|
appId: tokenPayload?.['appId'],
|
|
25
29
|
appSessionId,
|
|
@@ -31,10 +35,11 @@ function withClientAuth(params) {
|
|
|
31
35
|
pageId,
|
|
32
36
|
subPageId: req.header('X-Teams-Sub-Page-Id'),
|
|
33
37
|
teamId: req.header('X-Teams-Team-Id'),
|
|
34
|
-
tenantId: tokenPayload
|
|
35
|
-
userId: tokenPayload
|
|
38
|
+
tenantId: tokenPayload['tid'],
|
|
39
|
+
userId: tokenPayload['oid'],
|
|
40
|
+
userName: tokenPayload['name'],
|
|
36
41
|
};
|
|
37
42
|
next();
|
|
38
43
|
};
|
|
39
44
|
}
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jbGllbnQtYXV0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9taWRkbGV3YXJlL3dpdGgtY2xpZW50LWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFxQkEsd0NBcURDO0FBckRELFNBQWdCLGNBQWMsQ0FBQyxNQUE0QjtJQUN6RCxNQUFNLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQztJQUN2RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO0lBRTFCLE9BQU8sS0FBSyxFQUNWLEdBQXNCLEVBQ3RCLEdBQXFCLEVBQ3JCLElBQTBCLEVBQzFCLEVBQUU7UUFDRixNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDMUQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzdDLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlELE1BQU0sU0FBUyxHQUNiLGFBQWEsRUFBRSxNQUFNLEtBQUssQ0FBQyxJQUFJLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsS0FBSyxRQUFRO1lBQ3hFLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFVCxNQUFNLGNBQWMsR0FBRyxDQUFDLG1CQUFtQjtZQUN6QyxDQUFDLENBQUMsSUFBSTtZQUNOLENBQUMsQ0FBQyxNQUFNLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRSxNQUFNLFlBQVksR0FDaEIsY0FBYyxJQUFJLG1CQUFtQixFQUFFLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV6RSxJQUNFLENBQUMsTUFBTTtZQUNQLENBQUMsWUFBWTtZQUNiLENBQUMsY0FBYztZQUNmLENBQUMsbUJBQW1CO1lBQ3BCLENBQUMsWUFBWSxFQUNiLENBQUM7WUFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQzFCLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1lBQ3JDLE9BQU87UUFDVCxDQUFDO1FBRUQsR0FBRyxDQUFDLE9BQU8sR0FBRztZQUNaLEtBQUssRUFBRSxZQUFZLEVBQUUsQ0FBQyxPQUFPLENBQUM7WUFDOUIsWUFBWTtZQUNaLFNBQVM7WUFDVCxTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUMzQyxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQztZQUNyQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUMzQyxTQUFTLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQztZQUMzQyxNQUFNO1lBQ04sU0FBUyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMscUJBQXFCLENBQUM7WUFDNUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7WUFDckMsUUFBUSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDN0IsTUFBTSxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7WUFDM0IsUUFBUSxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUM7U0FDL0IsQ0FBQztRQUVGLElBQUksRUFBRSxDQUFDO0lBQ1QsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ILogger } from '@microsoft/teams.common';
|
|
2
|
+
import { App } from '../app';
|
|
3
|
+
import { IFunctionContext } from '../contexts';
|
|
4
|
+
import { IPlugin } from '../types';
|
|
5
|
+
export declare function getConversationIdResolver<TPlugin extends IPlugin>(app: App<TPlugin>, log: ILogger, context: Pick<IFunctionContext, 'channelId' | 'chatId' | 'meetingId' | 'userId' | 'userName' | 'tenantId'>): () => Promise<string | undefined>;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getConversationIdResolver = getConversationIdResolver;
|
|
4
|
+
function getConversationIdResolver(app, log, context) {
|
|
5
|
+
let state;
|
|
6
|
+
const { userId, userName, tenantId } = context;
|
|
7
|
+
const conversationId = context.chatId ?? context.channelId;
|
|
8
|
+
return async () => {
|
|
9
|
+
if (state) {
|
|
10
|
+
// This conversation has already been resolved.
|
|
11
|
+
return state.id;
|
|
12
|
+
}
|
|
13
|
+
if (!conversationId) {
|
|
14
|
+
// Conversation ID can be missing if the app is running in a personal scope. In this case, create
|
|
15
|
+
// a conversation between the bot and the user. This will either create a new conversation or return
|
|
16
|
+
// a pre-existing one.
|
|
17
|
+
try {
|
|
18
|
+
const conversation = await app.api.conversations.create({
|
|
19
|
+
bot: { id: app.id },
|
|
20
|
+
members: [{ id: userId, role: 'user', name: userName }],
|
|
21
|
+
tenantId: tenantId,
|
|
22
|
+
isGroup: false,
|
|
23
|
+
});
|
|
24
|
+
state = { id: conversation.id };
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
state = { id: undefined };
|
|
28
|
+
log.error('failed to create conversation with user', {
|
|
29
|
+
userId,
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Validate that the bot and user are both members of the conversation.
|
|
35
|
+
try {
|
|
36
|
+
const member = await app.api.conversations
|
|
37
|
+
.members(conversationId)
|
|
38
|
+
.getById(userId);
|
|
39
|
+
state = { id: !member ? undefined : conversationId };
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
state = { id: undefined };
|
|
43
|
+
}
|
|
44
|
+
if (!state.id) {
|
|
45
|
+
log.warn('either the bot or the user are not in this conversation', {
|
|
46
|
+
conversationId,
|
|
47
|
+
userId,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return state.id;
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9mdW5jdGlvbi1jb250ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsOERBMERDO0FBMURELFNBQWdCLHlCQUF5QixDQUN2QyxHQUFpQixFQUNqQixHQUFZLEVBQ1osT0FHQztJQUVELElBQUksS0FBa0MsQ0FBQztJQUV2QyxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7SUFDL0MsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE1BQU0sSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDO0lBRTNELE9BQU8sS0FBSyxJQUFJLEVBQUU7UUFDaEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLCtDQUErQztZQUMvQyxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixpR0FBaUc7WUFDakcsb0dBQW9HO1lBQ3BHLHNCQUFzQjtZQUN0QixJQUFJLENBQUM7Z0JBQ0gsTUFBTSxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUM7b0JBQ3RELEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO29CQUNuQixPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7b0JBQ3ZELFFBQVEsRUFBRSxRQUFRO29CQUNsQixPQUFPLEVBQUUsS0FBSztpQkFDZixDQUFDLENBQUM7Z0JBQ0gsS0FBSyxHQUFHLEVBQUUsRUFBRSxFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNsQyxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztnQkFDMUIsR0FBRyxDQUFDLEtBQUssQ0FBQyx5Q0FBeUMsRUFBRTtvQkFDbkQsTUFBTTtpQkFDUCxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTix1RUFBdUU7WUFDdkUsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sR0FBRyxDQUFDLEdBQUcsQ0FBQyxhQUFhO3FCQUN2QyxPQUFPLENBQUMsY0FBYyxDQUFDO3FCQUN2QixPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ25CLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN2RCxDQUFDO1lBQUMsTUFBTSxDQUFDO2dCQUNQLEtBQUssR0FBRyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsQ0FBQztZQUM1QixDQUFDO1lBRUQsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDZCxHQUFHLENBQUMsSUFBSSxDQUFDLHlEQUF5RCxFQUFFO29CQUNsRSxjQUFjO29CQUNkLE1BQU07aUJBQ1AsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbEIsQ0FBQyxDQUFDO0FBQ0osQ0FBQyJ9
|
package/dist/utils/index.d.ts
CHANGED
package/dist/utils/index.js
CHANGED
|
@@ -33,6 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.promises = void 0;
|
|
36
|
+
exports.functionContext = exports.promises = void 0;
|
|
37
37
|
exports.promises = __importStar(require("./promises"));
|
|
38
|
-
|
|
38
|
+
exports.functionContext = __importStar(require("./function-context"));
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdURBQXVDO0FBQ3ZDLHNFQUFzRCJ9
|
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.7",
|
|
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.7",
|
|
50
|
+
"@microsoft/teams.common": "2.0.0-preview.7",
|
|
51
|
+
"@microsoft/teams.graph": "2.0.0-preview.7"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@microsoft/teams.config": "2.0.0-preview.
|
|
54
|
+
"@microsoft/teams.config": "2.0.0-preview.7",
|
|
55
55
|
"@types/cors": "^2.8.17",
|
|
56
56
|
"@types/express": "^5.0.0",
|
|
57
57
|
"@types/jest": "^29.5.12",
|