@microsoft/agents-hosting-extensions-msteams 1.7.2

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.
Files changed (143) hide show
  1. package/README.md +147 -0
  2. package/dist/package.json +46 -0
  3. package/dist/src/activity-extensions/index.d.ts +1 -0
  4. package/dist/src/activity-extensions/index.js +8 -0
  5. package/dist/src/activity-extensions/index.js.map +1 -0
  6. package/dist/src/activity-extensions/teamsChannelData.d.ts +12 -0
  7. package/dist/src/activity-extensions/teamsChannelData.js +29 -0
  8. package/dist/src/activity-extensions/teamsChannelData.js.map +1 -0
  9. package/dist/src/app/index.d.ts +1 -0
  10. package/dist/src/app/index.js +20 -0
  11. package/dist/src/app/index.js.map +1 -0
  12. package/dist/src/app/teamsAppExtensions.d.ts +145 -0
  13. package/dist/src/app/teamsAppExtensions.js +201 -0
  14. package/dist/src/app/teamsAppExtensions.js.map +1 -0
  15. package/dist/src/channels/index.d.ts +1 -0
  16. package/dist/src/channels/index.js +20 -0
  17. package/dist/src/channels/index.js.map +1 -0
  18. package/dist/src/channels/teamsChannel.d.ts +100 -0
  19. package/dist/src/channels/teamsChannel.js +210 -0
  20. package/dist/src/channels/teamsChannel.js.map +1 -0
  21. package/dist/src/config/config.d.ts +37 -0
  22. package/dist/src/config/config.js +71 -0
  23. package/dist/src/config/config.js.map +1 -0
  24. package/dist/src/config/index.d.ts +1 -0
  25. package/dist/src/config/index.js +20 -0
  26. package/dist/src/config/index.js.map +1 -0
  27. package/dist/src/errorHelper.d.ts +19 -0
  28. package/dist/src/errorHelper.js +96 -0
  29. package/dist/src/errorHelper.js.map +1 -0
  30. package/dist/src/fileConsents/fileConsent.d.ts +37 -0
  31. package/dist/src/fileConsents/fileConsent.js +79 -0
  32. package/dist/src/fileConsents/fileConsent.js.map +1 -0
  33. package/dist/src/fileConsents/index.d.ts +1 -0
  34. package/dist/src/fileConsents/index.js +20 -0
  35. package/dist/src/fileConsents/index.js.map +1 -0
  36. package/dist/src/graphClientFactory.d.ts +10 -0
  37. package/dist/src/graphClientFactory.js +98 -0
  38. package/dist/src/graphClientFactory.js.map +1 -0
  39. package/dist/src/index.d.ts +20 -0
  40. package/dist/src/index.js +39 -0
  41. package/dist/src/index.js.map +1 -0
  42. package/dist/src/meetings/index.d.ts +1 -0
  43. package/dist/src/meetings/index.js +20 -0
  44. package/dist/src/meetings/index.js.map +1 -0
  45. package/dist/src/meetings/meeting.d.ts +84 -0
  46. package/dist/src/meetings/meeting.js +107 -0
  47. package/dist/src/meetings/meeting.js.map +1 -0
  48. package/dist/src/messageExtensions/index.d.ts +2 -0
  49. package/dist/src/messageExtensions/index.js +24 -0
  50. package/dist/src/messageExtensions/index.js.map +1 -0
  51. package/dist/src/messageExtensions/messageExtension.d.ts +133 -0
  52. package/dist/src/messageExtensions/messageExtension.js +326 -0
  53. package/dist/src/messageExtensions/messageExtension.js.map +1 -0
  54. package/dist/src/messageExtensions/messagingExtensionQuery.d.ts +87 -0
  55. package/dist/src/messageExtensions/messagingExtensionQuery.js +35 -0
  56. package/dist/src/messageExtensions/messagingExtensionQuery.js.map +1 -0
  57. package/dist/src/messages/index.d.ts +1 -0
  58. package/dist/src/messages/index.js +20 -0
  59. package/dist/src/messages/index.js.map +1 -0
  60. package/dist/src/messages/message.d.ts +67 -0
  61. package/dist/src/messages/message.js +129 -0
  62. package/dist/src/messages/message.js.map +1 -0
  63. package/dist/src/models/index.d.ts +1 -0
  64. package/dist/src/models/index.js +20 -0
  65. package/dist/src/models/index.js.map +1 -0
  66. package/dist/src/models/readReceiptInfo.d.ts +27 -0
  67. package/dist/src/models/readReceiptInfo.js +44 -0
  68. package/dist/src/models/readReceiptInfo.js.map +1 -0
  69. package/dist/src/taskModules/index.d.ts +1 -0
  70. package/dist/src/taskModules/index.js +20 -0
  71. package/dist/src/taskModules/index.js.map +1 -0
  72. package/dist/src/taskModules/taskModule.d.ts +42 -0
  73. package/dist/src/taskModules/taskModule.js +102 -0
  74. package/dist/src/taskModules/taskModule.js.map +1 -0
  75. package/dist/src/teams/index.d.ts +1 -0
  76. package/dist/src/teams/index.js +20 -0
  77. package/dist/src/teams/index.js.map +1 -0
  78. package/dist/src/teams/teamsTeam.d.ts +82 -0
  79. package/dist/src/teams/teamsTeam.js +172 -0
  80. package/dist/src/teams/teamsTeam.js.map +1 -0
  81. package/dist/src/teamsActivity.d.ts +15 -0
  82. package/dist/src/teamsActivity.js +5 -0
  83. package/dist/src/teamsActivity.js.map +1 -0
  84. package/dist/src/teamsActivityExtensions.d.ts +53 -0
  85. package/dist/src/teamsActivityExtensions.js +101 -0
  86. package/dist/src/teamsActivityExtensions.js.map +1 -0
  87. package/dist/src/teamsAgentExtension.d.ts +105 -0
  88. package/dist/src/teamsAgentExtension.js +178 -0
  89. package/dist/src/teamsAgentExtension.js.map +1 -0
  90. package/dist/src/teamsApiClientExtensions.d.ts +13 -0
  91. package/dist/src/teamsApiClientExtensions.js +41 -0
  92. package/dist/src/teamsApiClientExtensions.js.map +1 -0
  93. package/dist/src/teamsHeaderPropagation.d.ts +14 -0
  94. package/dist/src/teamsHeaderPropagation.js +35 -0
  95. package/dist/src/teamsHeaderPropagation.js.map +1 -0
  96. package/dist/src/teamsModelExtensions.d.ts +19 -0
  97. package/dist/src/teamsModelExtensions.js +38 -0
  98. package/dist/src/teamsModelExtensions.js.map +1 -0
  99. package/dist/src/teamsProactiveServiceEndpoints.d.ts +15 -0
  100. package/dist/src/teamsProactiveServiceEndpoints.js +21 -0
  101. package/dist/src/teamsProactiveServiceEndpoints.js.map +1 -0
  102. package/dist/src/teamsRouteHandler.d.ts +13 -0
  103. package/dist/src/teamsRouteHandler.js +18 -0
  104. package/dist/src/teamsRouteHandler.js.map +1 -0
  105. package/dist/src/teamsTurnContext.d.ts +64 -0
  106. package/dist/src/teamsTurnContext.js +113 -0
  107. package/dist/src/teamsTurnContext.js.map +1 -0
  108. package/package.json +46 -0
  109. package/src/activity-extensions/index.ts +4 -0
  110. package/src/activity-extensions/teamsChannelData.ts +30 -0
  111. package/src/app/index.ts +4 -0
  112. package/src/app/teamsAppExtensions.ts +369 -0
  113. package/src/channels/index.ts +4 -0
  114. package/src/channels/teamsChannel.ts +229 -0
  115. package/src/config/config.ts +79 -0
  116. package/src/config/index.ts +4 -0
  117. package/src/errorHelper.ts +104 -0
  118. package/src/fileConsents/fileConsent.ts +85 -0
  119. package/src/fileConsents/index.ts +4 -0
  120. package/src/graphClientFactory.ts +127 -0
  121. package/src/index.ts +23 -0
  122. package/src/meetings/index.ts +4 -0
  123. package/src/meetings/meeting.ts +146 -0
  124. package/src/messageExtensions/index.ts +5 -0
  125. package/src/messageExtensions/messageExtension.ts +370 -0
  126. package/src/messageExtensions/messagingExtensionQuery.ts +34 -0
  127. package/src/messages/index.ts +4 -0
  128. package/src/messages/message.ts +148 -0
  129. package/src/models/index.ts +4 -0
  130. package/src/models/readReceiptInfo.ts +50 -0
  131. package/src/taskModules/index.ts +4 -0
  132. package/src/taskModules/taskModule.ts +113 -0
  133. package/src/teams/index.ts +4 -0
  134. package/src/teams/teamsTeam.ts +189 -0
  135. package/src/teamsActivity.ts +19 -0
  136. package/src/teamsActivityExtensions.ts +99 -0
  137. package/src/teamsAgentExtension.ts +205 -0
  138. package/src/teamsApiClientExtensions.ts +47 -0
  139. package/src/teamsHeaderPropagation.ts +32 -0
  140. package/src/teamsModelExtensions.ts +42 -0
  141. package/src/teamsProactiveServiceEndpoints.ts +18 -0
  142. package/src/teamsRouteHandler.ts +22 -0
  143. package/src/teamsTurnContext.ts +125 -0
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TeamsTeam = void 0;
6
+ const agents_activity_1 = require("@microsoft/agents-activity");
7
+ const agents_hosting_1 = require("@microsoft/agents-hosting");
8
+ const activity_extensions_1 = require("../activity-extensions");
9
+ const teamsTurnContext_1 = require("../teamsTurnContext");
10
+ const TEAM_ARCHIVED_EVENT = 'teamArchived';
11
+ const TEAM_UNARCHIVED_EVENT = 'teamUnarchived';
12
+ const TEAM_RENAMED_EVENT = 'teamRenamed';
13
+ const TEAM_RESTORED_EVENT = 'teamRestored';
14
+ const TEAM_DELETED_EVENT = 'teamDeleted';
15
+ const TEAM_HARD_DELETED_EVENT = 'teamHardDeleted';
16
+ function isTeamUpdateEvent(context, eventType) {
17
+ const channelData = (0, activity_extensions_1.parseTeamsChannelData)(context.activity.channelData);
18
+ const actualEventType = typeof (channelData === null || channelData === void 0 ? void 0 : channelData.eventType) === 'string' ? channelData.eventType.toLowerCase() : undefined;
19
+ const expectedEventType = eventType === null || eventType === void 0 ? void 0 : eventType.toLowerCase();
20
+ return (context.activity.type === agents_activity_1.ActivityTypes.ConversationUpdate &&
21
+ context.activity.channelId === 'msteams' &&
22
+ (channelData === null || channelData === void 0 ? void 0 : channelData.team) != null &&
23
+ (expectedEventType != null
24
+ ? actualEventType === expectedEventType
25
+ : (actualEventType === null || actualEventType === void 0 ? void 0 : actualEventType.startsWith('team')) === true));
26
+ }
27
+ function getTeamInfo(context) {
28
+ return (0, activity_extensions_1.parseTeamsChannelData)(context.activity.channelData).team;
29
+ }
30
+ /**
31
+ * Registers handlers for Microsoft Teams team lifecycle events.
32
+ *
33
+ * @typeParam TState - The turn state type used by the agent application.
34
+ */
35
+ class TeamsTeam {
36
+ /**
37
+ * Creates a Teams team route helper.
38
+ *
39
+ * @param app - The agent application that receives the registered routes.
40
+ */
41
+ constructor(app) {
42
+ this._app = app;
43
+ }
44
+ /**
45
+ * Registers a handler for any Teams team update event.
46
+ *
47
+ * @param handler - Handler invoked with the Teams turn context, turn state, and team information.
48
+ * @param rank - Optional route rank used for route ordering.
49
+ * @param authHandlers - Optional authorization handlers required by the route.
50
+ * @returns This team helper for chaining.
51
+ */
52
+ onTeamEventReceived(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
53
+ const routeSel = (context) => {
54
+ return Promise.resolve(isTeamUpdateEvent(context));
55
+ };
56
+ const routeHandler = async (context, state) => {
57
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
58
+ };
59
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
60
+ return this;
61
+ }
62
+ /**
63
+ * Registers a handler for Teams team archived events.
64
+ *
65
+ * @param handler - Handler invoked with the archived team information.
66
+ * @param rank - Optional route rank used for route ordering.
67
+ * @param authHandlers - Optional authorization handlers required by the route.
68
+ * @returns This team helper for chaining.
69
+ */
70
+ onArchived(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
71
+ const routeSel = (context) => {
72
+ return Promise.resolve(isTeamUpdateEvent(context, TEAM_ARCHIVED_EVENT));
73
+ };
74
+ const routeHandler = async (context, state) => {
75
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
76
+ };
77
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
78
+ return this;
79
+ }
80
+ /**
81
+ * Registers a handler for Teams team unarchived events.
82
+ *
83
+ * @param handler - Handler invoked with the unarchived team information.
84
+ * @param rank - Optional route rank used for route ordering.
85
+ * @param authHandlers - Optional authorization handlers required by the route.
86
+ * @returns This team helper for chaining.
87
+ */
88
+ onUnarchived(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
89
+ const routeSel = (context) => {
90
+ return Promise.resolve(isTeamUpdateEvent(context, TEAM_UNARCHIVED_EVENT));
91
+ };
92
+ const routeHandler = async (context, state) => {
93
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
94
+ };
95
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
96
+ return this;
97
+ }
98
+ /**
99
+ * Registers a handler for Teams team renamed events.
100
+ *
101
+ * @param handler - Handler invoked with the renamed team information.
102
+ * @param rank - Optional route rank used for route ordering.
103
+ * @param authHandlers - Optional authorization handlers required by the route.
104
+ * @returns This team helper for chaining.
105
+ */
106
+ onRenamed(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
107
+ const routeSel = (context) => {
108
+ return Promise.resolve(isTeamUpdateEvent(context, TEAM_RENAMED_EVENT));
109
+ };
110
+ const routeHandler = async (context, state) => {
111
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
112
+ };
113
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
114
+ return this;
115
+ }
116
+ /**
117
+ * Registers a handler for Teams team restored events.
118
+ *
119
+ * @param handler - Handler invoked with the restored team information.
120
+ * @param rank - Optional route rank used for route ordering.
121
+ * @param authHandlers - Optional authorization handlers required by the route.
122
+ * @returns This team helper for chaining.
123
+ */
124
+ onRestored(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
125
+ const routeSel = (context) => {
126
+ return Promise.resolve(isTeamUpdateEvent(context, TEAM_RESTORED_EVENT));
127
+ };
128
+ const routeHandler = async (context, state) => {
129
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
130
+ };
131
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
132
+ return this;
133
+ }
134
+ /**
135
+ * Registers a handler for Teams team deleted events.
136
+ *
137
+ * @param handler - Handler invoked with the deleted team information.
138
+ * @param rank - Optional route rank used for route ordering.
139
+ * @param authHandlers - Optional authorization handlers required by the route.
140
+ * @returns This team helper for chaining.
141
+ */
142
+ onDeleted(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
143
+ const routeSel = (context) => {
144
+ return Promise.resolve(isTeamUpdateEvent(context, TEAM_DELETED_EVENT));
145
+ };
146
+ const routeHandler = async (context, state) => {
147
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
148
+ };
149
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
150
+ return this;
151
+ }
152
+ /**
153
+ * Registers a handler for Teams team hard-deleted events.
154
+ *
155
+ * @param handler - Handler invoked with the hard-deleted team information.
156
+ * @param rank - Optional route rank used for route ordering.
157
+ * @param authHandlers - Optional authorization handlers required by the route.
158
+ * @returns This team helper for chaining.
159
+ */
160
+ onHardDeleted(handler, rank = agents_hosting_1.RouteRank.Unspecified, authHandlers = []) {
161
+ const routeSel = (context) => {
162
+ return Promise.resolve(isTeamUpdateEvent(context, TEAM_HARD_DELETED_EVENT));
163
+ };
164
+ const routeHandler = async (context, state) => {
165
+ await handler(new teamsTurnContext_1.TeamsTurnContext(context), state, getTeamInfo(context));
166
+ };
167
+ this._app.addRoute(routeSel, routeHandler, false, rank, authHandlers);
168
+ return this;
169
+ }
170
+ }
171
+ exports.TeamsTeam = TeamsTeam;
172
+ //# sourceMappingURL=teamsTeam.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsTeam.js","sourceRoot":"","sources":["../../../src/teams/teamsTeam.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { Activity } from '@microsoft/agents-activity';
2
+ import type { ChannelData } from '@microsoft/teams.api';
3
+ /**
4
+ * A Teams activity whose channel-specific payload uses the Microsoft Teams API model.
5
+ *
6
+ * @remarks
7
+ * This is a type-only specialization of {@link Activity}. Teams activities keep
8
+ * their original runtime identity; no activity conversion or cloning occurs.
9
+ */
10
+ export interface TeamsActivity extends Activity {
11
+ /**
12
+ * Channel-specific data for the Teams activity.
13
+ */
14
+ channelData?: ChannelData;
15
+ }
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ //# sourceMappingURL=teamsActivity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsActivity.js","sourceRoot":"","sources":["../../src/teamsActivity.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC"}
@@ -0,0 +1,53 @@
1
+ import { Activity } from '@microsoft/agents-activity';
2
+ import type { ChannelData, OnBehalfOf } from '@microsoft/teams.api';
3
+ /**
4
+ * Gets the Teams selected channel ID from the activity's channel data settings.
5
+ *
6
+ * @param activity - Activity containing Teams channel data.
7
+ * @returns The selected channel ID, if present.
8
+ */
9
+ export declare function teamsGetSelectedChannelId(activity: Activity): string | undefined;
10
+ /**
11
+ * Gets the Teams channel ID from the activity's channel data.
12
+ *
13
+ * @param activity - Activity containing Teams channel data.
14
+ * @returns The Teams channel ID, if present.
15
+ */
16
+ export declare function teamsGetChannelId(activity: Activity): string | undefined;
17
+ /**
18
+ * Gets the Teams meeting info from the activity's channel data.
19
+ *
20
+ * @param activity - Activity containing Teams channel data.
21
+ * @returns Teams meeting information, if present.
22
+ */
23
+ export declare function teamsGetMeetingInfo(activity: Activity): ChannelData['meeting'] | undefined;
24
+ /**
25
+ * Gets the Teams team info from the activity's channel data.
26
+ *
27
+ * @param activity - Activity containing Teams channel data.
28
+ * @returns Teams team information, if present.
29
+ */
30
+ export declare function teamsGetTeamInfo(activity: Activity): ChannelData['team'] | undefined;
31
+ /**
32
+ * Configures the activity to generate a notification within Teams.
33
+ * @param activity - The activity to configure.
34
+ * @param alertInMeeting - If true, renders a popup in meeting chat as well as the chat thread.
35
+ * @param externalResourceUrl - URL to external resource (must be in manifest's valid domains).
36
+ */
37
+ export declare function teamsNotifyUser(activity: Activity, alertInMeeting?: boolean, externalResourceUrl?: string): void;
38
+ /**
39
+ * Gets the Teams OnBehalfOf list from the activity's channel data.
40
+ *
41
+ * @param activity - Activity containing Teams channel data.
42
+ * @returns The Teams on-behalf-of entries, if present.
43
+ */
44
+ export declare function teamsGetTeamOnBehalfOf(activity: Activity): OnBehalfOf[] | undefined;
45
+ /**
46
+ * Adds the Teams feedback loop flag to the activity's channel data.
47
+ * Returns false if channel data is already set.
48
+ *
49
+ * @param activity - The activity to configure.
50
+ * @param feedbackLoopType - The feedback loop type value. Defaults to "default".
51
+ * @returns True when feedback loop channel data was added; otherwise false.
52
+ */
53
+ export declare function teamsEnableFeedbackLoop(activity: Activity, feedbackLoopType?: string): boolean;
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.teamsGetSelectedChannelId = teamsGetSelectedChannelId;
6
+ exports.teamsGetChannelId = teamsGetChannelId;
7
+ exports.teamsGetMeetingInfo = teamsGetMeetingInfo;
8
+ exports.teamsGetTeamInfo = teamsGetTeamInfo;
9
+ exports.teamsNotifyUser = teamsNotifyUser;
10
+ exports.teamsGetTeamOnBehalfOf = teamsGetTeamOnBehalfOf;
11
+ exports.teamsEnableFeedbackLoop = teamsEnableFeedbackLoop;
12
+ const activity_extensions_1 = require("./activity-extensions");
13
+ /**
14
+ * Gets the Teams selected channel ID from the activity's channel data settings.
15
+ *
16
+ * @param activity - Activity containing Teams channel data.
17
+ * @returns The selected channel ID, if present.
18
+ */
19
+ function teamsGetSelectedChannelId(activity) {
20
+ var _a, _b;
21
+ const channelData = (0, activity_extensions_1.parseTeamsChannelData)(activity.channelData);
22
+ return (_b = (_a = channelData === null || channelData === void 0 ? void 0 : channelData.settings) === null || _a === void 0 ? void 0 : _a.selectedChannel) === null || _b === void 0 ? void 0 : _b.id;
23
+ }
24
+ /**
25
+ * Gets the Teams channel ID from the activity's channel data.
26
+ *
27
+ * @param activity - Activity containing Teams channel data.
28
+ * @returns The Teams channel ID, if present.
29
+ */
30
+ function teamsGetChannelId(activity) {
31
+ var _a;
32
+ const channelData = (0, activity_extensions_1.parseTeamsChannelData)(activity.channelData);
33
+ return (_a = channelData === null || channelData === void 0 ? void 0 : channelData.channel) === null || _a === void 0 ? void 0 : _a.id;
34
+ }
35
+ /**
36
+ * Gets the Teams meeting info from the activity's channel data.
37
+ *
38
+ * @param activity - Activity containing Teams channel data.
39
+ * @returns Teams meeting information, if present.
40
+ */
41
+ function teamsGetMeetingInfo(activity) {
42
+ const channelData = (0, activity_extensions_1.parseTeamsChannelData)(activity.channelData);
43
+ return channelData === null || channelData === void 0 ? void 0 : channelData.meeting;
44
+ }
45
+ /**
46
+ * Gets the Teams team info from the activity's channel data.
47
+ *
48
+ * @param activity - Activity containing Teams channel data.
49
+ * @returns Teams team information, if present.
50
+ */
51
+ function teamsGetTeamInfo(activity) {
52
+ const channelData = (0, activity_extensions_1.parseTeamsChannelData)(activity.channelData);
53
+ return channelData === null || channelData === void 0 ? void 0 : channelData.team;
54
+ }
55
+ /**
56
+ * Configures the activity to generate a notification within Teams.
57
+ * @param activity - The activity to configure.
58
+ * @param alertInMeeting - If true, renders a popup in meeting chat as well as the chat thread.
59
+ * @param externalResourceUrl - URL to external resource (must be in manifest's valid domains).
60
+ */
61
+ function teamsNotifyUser(activity, alertInMeeting = false, externalResourceUrl) {
62
+ if (!activity.channelData || typeof activity.channelData !== 'object') {
63
+ activity.channelData = {};
64
+ }
65
+ const channelData = activity.channelData;
66
+ channelData.notification = {
67
+ alert: !alertInMeeting,
68
+ alertInMeeting,
69
+ ...(externalResourceUrl != null && { externalResourceUrl })
70
+ };
71
+ }
72
+ /**
73
+ * Gets the Teams OnBehalfOf list from the activity's channel data.
74
+ *
75
+ * @param activity - Activity containing Teams channel data.
76
+ * @returns The Teams on-behalf-of entries, if present.
77
+ */
78
+ function teamsGetTeamOnBehalfOf(activity) {
79
+ const channelData = (0, activity_extensions_1.parseTeamsChannelData)(activity.channelData);
80
+ return channelData === null || channelData === void 0 ? void 0 : channelData.onBehalfOf;
81
+ }
82
+ /**
83
+ * Adds the Teams feedback loop flag to the activity's channel data.
84
+ * Returns false if channel data is already set.
85
+ *
86
+ * @param activity - The activity to configure.
87
+ * @param feedbackLoopType - The feedback loop type value. Defaults to "default".
88
+ * @returns True when feedback loop channel data was added; otherwise false.
89
+ */
90
+ function teamsEnableFeedbackLoop(activity, feedbackLoopType = 'default') {
91
+ if (activity.channelData != null) {
92
+ return false;
93
+ }
94
+ activity.channelData = {
95
+ feedbackLoop: {
96
+ type: feedbackLoopType
97
+ }
98
+ };
99
+ return true;
100
+ }
101
+ //# sourceMappingURL=teamsActivityExtensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsActivityExtensions.js","sourceRoot":"","sources":["../../src/teamsActivityExtensions.ts"],"names":[],"mappings":";AAAA,4DAA4D;AAC5D,kCAAkC;;AAYlC,8DAGC;AAQD,8CAGC;AAQD,kDAGC;AAQD,4CAGC;AAQD,0CAUC;AAQD,wDAGC;AAUD,0DAUC;AA7FD,+DAA6D;AAE7D;;;;;GAKG;AACH,SAAgB,yBAAyB,CAAE,QAAkB;;IAC3D,MAAM,WAAW,GAAG,IAAA,2CAAqB,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC/D,OAAO,MAAA,MAAC,WAAmB,aAAnB,WAAW,uBAAX,WAAW,CAAU,QAAQ,0CAAE,eAAe,0CAAE,EAAE,CAAA;AAC5D,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAE,QAAkB;;IACnD,MAAM,WAAW,GAAG,IAAA,2CAAqB,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC/D,OAAO,MAAC,WAAmB,aAAnB,WAAW,uBAAX,WAAW,CAAU,OAAO,0CAAE,EAAE,CAAA;AAC1C,CAAC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAE,QAAkB;IACrD,MAAM,WAAW,GAAG,IAAA,2CAAqB,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC/D,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,OAAO,CAAA;AAC7B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,gBAAgB,CAAE,QAAkB;IAClD,MAAM,WAAW,GAAG,IAAA,2CAAqB,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC/D,OAAO,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAE,IAAI,CAAA;AAC1B,CAAC;AAED;;;;;GAKG;AACH,SAAgB,eAAe,CAAE,QAAkB,EAAE,iBAA0B,KAAK,EAAE,mBAA4B;IAChH,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,OAAO,QAAQ,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;QACtE,QAAQ,CAAC,WAAW,GAAG,EAAE,CAAA;IAC3B,CAAC;IACD,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAsC,CAAA;IACnE,WAAW,CAAC,YAAY,GAAG;QACzB,KAAK,EAAE,CAAC,cAAc;QACtB,cAAc;QACd,GAAG,CAAC,mBAAmB,IAAI,IAAI,IAAI,EAAE,mBAAmB,EAAE,CAAC;KAC5D,CAAA;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAE,QAAkB;IACxD,MAAM,WAAW,GAAG,IAAA,2CAAqB,EAAC,QAAQ,CAAC,WAAW,CAAC,CAAA;IAC/D,OAAQ,WAAmB,aAAnB,WAAW,uBAAX,WAAW,CAAU,UAAU,CAAA;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,uBAAuB,CAAE,QAAkB,EAAE,mBAA2B,SAAS;IAC/F,IAAI,QAAQ,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;QACjC,OAAO,KAAK,CAAA;IACd,CAAC;IACD,QAAQ,CAAC,WAAW,GAAG;QACrB,YAAY,EAAE;YACZ,IAAI,EAAE,gBAAgB;SACvB;KACF,CAAA;IACD,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -0,0 +1,105 @@
1
+ import { Client as GraphClient } from '@microsoft/microsoft-graph-client';
2
+ import { AgentApplication, AgentExtension, TurnContext, TurnState } from '@microsoft/agents-hosting';
3
+ import { Client as TeamsClient } from '@microsoft/teams.api';
4
+ import { TeamsConfig } from './config/config';
5
+ import { FileConsent } from './fileConsents/fileConsent';
6
+ import { Meeting } from './meetings/meeting';
7
+ import { Message } from './messages/message';
8
+ import { MessageExtension } from './messageExtensions/messageExtension';
9
+ import { TaskModule } from './taskModules/taskModule';
10
+ import { TeamsChannel } from './channels/teamsChannel';
11
+ import { TeamsTeam } from './teams/teamsTeam';
12
+ /**
13
+ * Adds Microsoft Teams-specific routing, context helpers, and API clients to an agent application.
14
+ *
15
+ * Register an instance with `AgentApplication.registerExtension` to configure handlers for Teams
16
+ * events, message extensions, task modules, file consent flows, and related Teams capabilities.
17
+ *
18
+ * @typeParam TState - The turn state type used by the agent application.
19
+ */
20
+ export declare class TeamsAgentExtension<TState extends TurnState = TurnState> extends AgentExtension<TState> {
21
+ private _app;
22
+ private _meetings;
23
+ private _messageExtensions;
24
+ private _taskModules;
25
+ private _channels;
26
+ private _teams;
27
+ private _messages;
28
+ private _fileConsent;
29
+ private _config;
30
+ /**
31
+ * Creates a new Teams extension for the provided agent application.
32
+ *
33
+ * The extension configures Teams header propagation and prepares a Teams API client for each
34
+ * incoming Teams turn.
35
+ *
36
+ * @param app - The agent application to extend with Teams capabilities.
37
+ */
38
+ constructor(app: AgentApplication<TState>);
39
+ /**
40
+ * Gets the route registration helper for Teams meeting events.
41
+ */
42
+ get meetings(): Meeting<TState>;
43
+ /**
44
+ * Gets the route registration helper for Teams message extension activities.
45
+ */
46
+ get messageExtensions(): MessageExtension<TState>;
47
+ /**
48
+ * Gets the route registration helper for Teams task module invoke activities.
49
+ */
50
+ get taskModules(): TaskModule<TState>;
51
+ /**
52
+ * Gets the route registration helper for Teams channel events.
53
+ */
54
+ get channels(): TeamsChannel<TState>;
55
+ /**
56
+ * Gets the route registration helper for Teams team events.
57
+ */
58
+ get teams(): TeamsTeam<TState>;
59
+ /**
60
+ * Gets the route registration helper for Teams message lifecycle events.
61
+ */
62
+ get messages(): Message<TState>;
63
+ /**
64
+ * Gets the route registration helper for Teams file consent card actions.
65
+ */
66
+ get fileConsent(): FileConsent<TState>;
67
+ /**
68
+ * Gets the route registration helper for Teams app configuration invokes.
69
+ */
70
+ get config(): TeamsConfig<TState>;
71
+ /**
72
+ * Gets the Teams API client associated with the current turn.
73
+ *
74
+ * @param context - The turn context for the current Teams activity.
75
+ * @returns The Teams API client stored on the turn.
76
+ * @throws If the current turn has not been initialized with a Teams API client.
77
+ */
78
+ getTeamsClient(context: TurnContext): TeamsClient;
79
+ /**
80
+ * Creates a Microsoft Graph client that obtains access tokens through the agent authorization system.
81
+ *
82
+ * @param context - The turn context used to acquire the user token.
83
+ * @param handlerName - Optional authorization handler name. Required when multiple handlers are configured.
84
+ * @param graphBaseUrl - Optional Graph base URL. Defaults to Microsoft Graph v1.0.
85
+ * @returns A Microsoft Graph client configured with the resolved authentication provider.
86
+ */
87
+ getGraphClient(context: TurnContext, handlerName?: string, graphBaseUrl?: string): GraphClient;
88
+ /**
89
+ * Creates a Microsoft Graph client that obtains an app-only token from the connection resolved for the current turn.
90
+ *
91
+ * @param context - The turn context used to resolve the token connection.
92
+ * @param graphBaseUrl - Optional Graph base URL. Defaults to Microsoft Graph v1.0.
93
+ * @returns A Microsoft Graph client configured with application permissions.
94
+ */
95
+ getAppGraphClient(context: TurnContext, graphBaseUrl?: string): GraphClient;
96
+ /**
97
+ * Creates a Microsoft Graph client that obtains an app-only token from a named connection.
98
+ *
99
+ * @param connectionName - The configured token connection name.
100
+ * @param graphBaseUrl - Optional Graph base URL. Defaults to Microsoft Graph v1.0.
101
+ * @returns A Microsoft Graph client configured with application permissions.
102
+ */
103
+ getAppGraphClientForConnection(connectionName: string, graphBaseUrl?: string): GraphClient;
104
+ private getConnections;
105
+ }
@@ -0,0 +1,178 @@
1
+ "use strict";
2
+ // Copyright (c) Microsoft Corporation. All rights reserved.
3
+ // Licensed under the MIT License.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.TeamsAgentExtension = void 0;
6
+ const agents_activity_1 = require("@microsoft/agents-activity");
7
+ const agents_hosting_1 = require("@microsoft/agents-hosting");
8
+ const activity_extensions_1 = require("./activity-extensions");
9
+ const config_1 = require("./config/config");
10
+ const fileConsent_1 = require("./fileConsents/fileConsent");
11
+ const meeting_1 = require("./meetings/meeting");
12
+ const message_1 = require("./messages/message");
13
+ const messageExtension_1 = require("./messageExtensions/messageExtension");
14
+ const taskModule_1 = require("./taskModules/taskModule");
15
+ const teamsChannel_1 = require("./channels/teamsChannel");
16
+ const teamsTeam_1 = require("./teams/teamsTeam");
17
+ const teamsApiClientExtensions_1 = require("./teamsApiClientExtensions");
18
+ const teamsHeaderPropagation_1 = require("./teamsHeaderPropagation");
19
+ const teamsTurnContext_1 = require("./teamsTurnContext");
20
+ const graphClientFactory_1 = require("./graphClientFactory");
21
+ const errorHelper_1 = require("./errorHelper");
22
+ const DEFAULT_GRAPH_BASE_URL = 'https://graph.microsoft.com/v1.0';
23
+ /**
24
+ * Adds Microsoft Teams-specific routing, context helpers, and API clients to an agent application.
25
+ *
26
+ * Register an instance with `AgentApplication.registerExtension` to configure handlers for Teams
27
+ * events, message extensions, task modules, file consent flows, and related Teams capabilities.
28
+ *
29
+ * @typeParam TState - The turn state type used by the agent application.
30
+ */
31
+ class TeamsAgentExtension extends agents_hosting_1.AgentExtension {
32
+ /**
33
+ * Creates a new Teams extension for the provided agent application.
34
+ *
35
+ * The extension configures Teams header propagation and prepares a Teams API client for each
36
+ * incoming Teams turn.
37
+ *
38
+ * @param app - The agent application to extend with Teams capabilities.
39
+ */
40
+ constructor(app) {
41
+ super('msteams');
42
+ this._app = app;
43
+ this._meetings = new meeting_1.Meeting(app);
44
+ this._messageExtensions = new messageExtension_1.MessageExtension(app);
45
+ this._taskModules = new taskModule_1.TaskModule(app);
46
+ this._channels = new teamsChannel_1.TeamsChannel(app);
47
+ this._teams = new teamsTeam_1.TeamsTeam(app);
48
+ this._messages = new message_1.Message(app);
49
+ this._fileConsent = new fileConsent_1.FileConsent(app);
50
+ this._config = new config_1.TeamsConfig(app);
51
+ const headerPropagation = this._app.options.headerPropagation;
52
+ this._app.options.headerPropagation = (headers) => {
53
+ headerPropagation === null || headerPropagation === void 0 ? void 0 : headerPropagation(headers);
54
+ (0, teamsHeaderPropagation_1.applyTeamsHeaderPropagation)(headers);
55
+ };
56
+ this._app.onTurn('beforeTurn', async (context) => {
57
+ if (context.activity.channelId === this.channelId) {
58
+ (0, teamsApiClientExtensions_1.setTeamsApiClient)(context, this.channelId);
59
+ try {
60
+ context.activity.channelData = (0, activity_extensions_1.parseTeamsChannelData)(context.activity.channelData);
61
+ }
62
+ catch {
63
+ // ignore parse errors for unexpected channelData payloads
64
+ }
65
+ }
66
+ return true;
67
+ });
68
+ }
69
+ /**
70
+ * Gets the route registration helper for Teams meeting events.
71
+ */
72
+ get meetings() {
73
+ return this._meetings;
74
+ }
75
+ /**
76
+ * Gets the route registration helper for Teams message extension activities.
77
+ */
78
+ get messageExtensions() {
79
+ return this._messageExtensions;
80
+ }
81
+ /**
82
+ * Gets the route registration helper for Teams task module invoke activities.
83
+ */
84
+ get taskModules() {
85
+ return this._taskModules;
86
+ }
87
+ /**
88
+ * Gets the route registration helper for Teams channel events.
89
+ */
90
+ get channels() {
91
+ return this._channels;
92
+ }
93
+ /**
94
+ * Gets the route registration helper for Teams team events.
95
+ */
96
+ get teams() {
97
+ return this._teams;
98
+ }
99
+ /**
100
+ * Gets the route registration helper for Teams message lifecycle events.
101
+ */
102
+ get messages() {
103
+ return this._messages;
104
+ }
105
+ /**
106
+ * Gets the route registration helper for Teams file consent card actions.
107
+ */
108
+ get fileConsent() {
109
+ return this._fileConsent;
110
+ }
111
+ /**
112
+ * Gets the route registration helper for Teams app configuration invokes.
113
+ */
114
+ get config() {
115
+ return this._config;
116
+ }
117
+ /**
118
+ * Gets the Teams API client associated with the current turn.
119
+ *
120
+ * @param context - The turn context for the current Teams activity.
121
+ * @returns The Teams API client stored on the turn.
122
+ * @throws If the current turn has not been initialized with a Teams API client.
123
+ */
124
+ getTeamsClient(context) {
125
+ return new teamsTurnContext_1.TeamsTurnContext(context).client;
126
+ }
127
+ /**
128
+ * Creates a Microsoft Graph client that obtains access tokens through the agent authorization system.
129
+ *
130
+ * @param context - The turn context used to acquire the user token.
131
+ * @param handlerName - Optional authorization handler name. Required when multiple handlers are configured.
132
+ * @param graphBaseUrl - Optional Graph base URL. Defaults to Microsoft Graph v1.0.
133
+ * @returns A Microsoft Graph client configured with the resolved authentication provider.
134
+ */
135
+ getGraphClient(context, handlerName, graphBaseUrl = DEFAULT_GRAPH_BASE_URL) {
136
+ if (!context) {
137
+ throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.TeamsGraphParameterRequired, undefined, { parameterName: 'context' });
138
+ }
139
+ return (0, graphClientFactory_1.createUserGraphClient)(this._app.authorization, context, handlerName, graphBaseUrl);
140
+ }
141
+ /**
142
+ * Creates a Microsoft Graph client that obtains an app-only token from the connection resolved for the current turn.
143
+ *
144
+ * @param context - The turn context used to resolve the token connection.
145
+ * @param graphBaseUrl - Optional Graph base URL. Defaults to Microsoft Graph v1.0.
146
+ * @returns A Microsoft Graph client configured with application permissions.
147
+ */
148
+ getAppGraphClient(context, graphBaseUrl = DEFAULT_GRAPH_BASE_URL) {
149
+ if (!context) {
150
+ throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.TeamsGraphParameterRequired, undefined, { parameterName: 'context' });
151
+ }
152
+ const tokenProvider = this.getConnections().getTokenProviderFromActivity(context.identity, context.activity);
153
+ return (0, graphClientFactory_1.createAppGraphClient)(tokenProvider, graphBaseUrl);
154
+ }
155
+ /**
156
+ * Creates a Microsoft Graph client that obtains an app-only token from a named connection.
157
+ *
158
+ * @param connectionName - The configured token connection name.
159
+ * @param graphBaseUrl - Optional Graph base URL. Defaults to Microsoft Graph v1.0.
160
+ * @returns A Microsoft Graph client configured with application permissions.
161
+ */
162
+ getAppGraphClientForConnection(connectionName, graphBaseUrl = DEFAULT_GRAPH_BASE_URL) {
163
+ if (!connectionName) {
164
+ throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.TeamsGraphParameterRequired, undefined, { parameterName: 'connectionName' });
165
+ }
166
+ return (0, graphClientFactory_1.createAppGraphClient)(this.getConnections().getConnection(connectionName), graphBaseUrl);
167
+ }
168
+ getConnections() {
169
+ var _a;
170
+ const connections = (_a = this._app.options.connections) !== null && _a !== void 0 ? _a : this._app.adapter.connectionManager;
171
+ if (!connections) {
172
+ throw agents_activity_1.ExceptionHelper.generateException(Error, errorHelper_1.Errors.TeamsGraphConnectionsNotConfigured);
173
+ }
174
+ return connections;
175
+ }
176
+ }
177
+ exports.TeamsAgentExtension = TeamsAgentExtension;
178
+ //# sourceMappingURL=teamsAgentExtension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"teamsAgentExtension.js","sourceRoot":"","sources":["../../src/teamsAgentExtension.ts"],"names":[],"mappings":"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"}