@microsoft/teams.apps 2.0.4 → 2.0.6-preview.1

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.
@@ -150,6 +150,50 @@ describe('ActivityContext', () => {
150
150
  type: 'message',
151
151
  }), mockRef);
152
152
  });
153
+ describe('targeted messages', () => {
154
+ it('sends targeted message with recipient from incoming activity', async () => {
155
+ const activity = buildIncomingMessageActivity('Hello world');
156
+ context = buildActivityContext(activity);
157
+ const targetedActivity = new teams_api_1.MessageActivity('Secret message')
158
+ .withTargetedRecipient(true);
159
+ await context.send(targetedActivity);
160
+ expect(mockSender.send).toHaveBeenCalledTimes(1);
161
+ expect(mockSender.send).toHaveBeenCalledWith(expect.objectContaining({
162
+ text: 'Secret message',
163
+ type: 'message',
164
+ isTargeted: true,
165
+ recipient: { id: 'test-user', name: 'Test User', role: 'user' },
166
+ }), mockRef);
167
+ });
168
+ it('sends targeted message with explicit recipient id', async () => {
169
+ const activity = buildIncomingMessageActivity('Hello world');
170
+ context = buildActivityContext(activity);
171
+ const targetedActivity = new teams_api_1.MessageActivity('Secret message')
172
+ .withTargetedRecipient('explicit-user-id');
173
+ await context.send(targetedActivity);
174
+ expect(mockSender.send).toHaveBeenCalledTimes(1);
175
+ expect(mockSender.send).toHaveBeenCalledWith(expect.objectContaining({
176
+ text: 'Secret message',
177
+ type: 'message',
178
+ isTargeted: true,
179
+ recipient: { id: 'explicit-user-id', name: '', role: 'user' },
180
+ }), mockRef);
181
+ });
182
+ it('does not set recipient for targeted message updates', async () => {
183
+ const activity = buildIncomingMessageActivity('Hello world');
184
+ context = buildActivityContext(activity);
185
+ const updateActivity = new teams_api_1.MessageActivity('Updated message')
186
+ .withTargetedRecipient(true)
187
+ .withId('existing-activity-id');
188
+ await context.send(updateActivity);
189
+ expect(mockSender.send).toHaveBeenCalledTimes(1);
190
+ const sentActivity = mockSender.send.mock.calls[0][0];
191
+ expect(sentActivity.id).toBe('existing-activity-id');
192
+ expect(sentActivity.isTargeted).toBe(true);
193
+ // Recipient should NOT be set for updates
194
+ expect(sentActivity.recipient).toBeUndefined();
195
+ });
196
+ });
153
197
  });
154
198
  describe('signin/signout flow', () => {
155
199
  beforeEach(() => {
@@ -248,4 +292,4 @@ describe('ActivityContext', () => {
248
292
  });
249
293
  });
250
294
  });
251
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0cy9hY3Rpdml0eS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0RBTzhCO0FBTzlCLHlDQUE2QztBQUU3QyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLElBQUksVUFBbUIsQ0FBQztJQUN4QixJQUFJLGFBQXNDLENBQUM7SUFDM0MsSUFBSSxVQUFtQixDQUFDO0lBQ3hCLElBQUksV0FBbUMsQ0FBQztJQUN4QyxJQUFJLE9BQThCLENBQUM7SUFDbkMsSUFBSSxPQUF3QixDQUFDO0lBRTdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxVQUFVLEdBQUc7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM3RCxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtTQUNoQixDQUFDO1FBRUYsYUFBYSxHQUFHO1lBQ2QsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRTtvQkFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtvQkFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtpQkFDbkI7YUFDRjtZQUNELGFBQWEsRUFBRTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTthQUNsQjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7aUJBQ3ZCO2FBQ0Y7U0FDb0MsQ0FBQztRQUV4QyxXQUFXLEdBQUcsRUFBNEIsQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRztZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUs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
295
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHkudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb250ZXh0cy9hY3Rpdml0eS50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsb0RBTzhCO0FBTzlCLHlDQUE2QztBQUU3QyxRQUFRLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLElBQUksVUFBbUIsQ0FBQztJQUN4QixJQUFJLGFBQXNDLENBQUM7SUFDM0MsSUFBSSxVQUFtQixDQUFDO0lBQ3hCLElBQUksV0FBbUMsQ0FBQztJQUN4QyxJQUFJLE9BQThCLENBQUM7SUFDbkMsSUFBSSxPQUF3QixDQUFDO0lBRTdCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7UUFDZCxVQUFVLEdBQUc7WUFDWCxZQUFZLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQztZQUM3RCxJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtTQUNoQixDQUFDO1FBRUYsYUFBYSxHQUFHO1lBQ2QsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRTtvQkFDTCxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtvQkFDZCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtpQkFDbkI7YUFDRjtZQUNELGFBQWEsRUFBRTtnQkFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTthQUNsQjtZQUNELElBQUksRUFBRTtnQkFDSixNQUFNLEVBQUU7b0JBQ04sV0FBVyxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUU7aUJBQ3ZCO2FBQ0Y7U0FDb0MsQ0FBQztRQUV4QyxXQUFXLEdBQUcsRUFBNEIsQ0FBQztRQUMzQyxNQUFNLGFBQWEsR0FBRztZQUNwQixLQUFLLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRTtZQUNoQixJQUFJLEVBQUUsSUFBSSxDQUFDLEVBQUUs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
@@ -1,12 +1,12 @@
1
1
  import http from 'http';
2
2
  import express from 'express';
3
- import { ActivityParams, ConversationReference, Credentials, IToken } from '@microsoft/teams.api';
3
+ import { ActivityParams, ConversationReference, Credentials, InvokeResponse, IToken } from '@microsoft/teams.api';
4
4
  import { ILogger } from '@microsoft/teams.common';
5
5
  import * as $http from '@microsoft/teams.common/http';
6
6
  import { IActivityEvent, IErrorEvent } from '../../events';
7
7
  import { Manifest } from '../../manifest';
8
8
  import { JwtValidatedRequest } from '../../middleware/jwt-validation-middleware';
9
- import { IPluginActivityResponseEvent, IPluginErrorEvent, IPluginStartEvent, ISender, IStreamer } from '../../types';
9
+ import { IPluginStartEvent, ISender, IStreamer } from '../../types';
10
10
  /**
11
11
  * Can send/receive activities via http
12
12
  */
@@ -17,7 +17,7 @@ export declare class HttpPlugin implements ISender {
17
17
  readonly credentials?: Credentials;
18
18
  readonly botToken?: () => IToken;
19
19
  readonly $onError: (event: IErrorEvent) => void;
20
- readonly $onActivity: (event: IActivityEvent) => void;
20
+ readonly $onActivity: (event: IActivityEvent) => Promise<InvokeResponse>;
21
21
  readonly get: express.Application['get'];
22
22
  readonly post: express.Application['post'];
23
23
  readonly patch: express.Application['patch'];
@@ -30,7 +30,6 @@ export declare class HttpPlugin implements ISender {
30
30
  get port(): string | number | undefined;
31
31
  protected _port?: number | string;
32
32
  protected express: express.Application;
33
- protected pending: Record<string, express.Response>;
34
33
  protected skipAuth: boolean;
35
34
  constructor(server?: http.Server, options?: {
36
35
  skipAuth?: boolean;
@@ -44,8 +43,6 @@ export declare class HttpPlugin implements ISender {
44
43
  onInit(): void;
45
44
  onStart({ port }: IPluginStartEvent): Promise<void>;
46
45
  onStop(): void;
47
- onError({ error, activity }: IPluginErrorEvent): void;
48
- onActivityResponse({ response, activity }: IPluginActivityResponseEvent): void;
49
46
  send(activity: ActivityParams, ref: ConversationReference): Promise<{
50
47
  id: string;
51
48
  type: "message";
@@ -61,6 +58,7 @@ export declare class HttpPlugin implements ISender {
61
58
  deliveryMode?: import("@microsoft/teams.api").DeliveryMode | undefined;
62
59
  expiration?: Date | undefined;
63
60
  value?: any;
61
+ isTargeted?: boolean | undefined;
64
62
  stripMentionsText?: ((options?: import("@microsoft/teams.api").StripMentionsTextOptions) => import("@microsoft/teams.api").IMessageActivity) | undefined;
65
63
  isRecipientMentioned?: (() => boolean) | undefined;
66
64
  getAccountMention?: ((accountId: string) => import("@microsoft/teams.api").MentionEntity | undefined) | undefined;
@@ -178,11 +176,11 @@ export declare class HttpPlugin implements ISender {
178
176
  type: "event";
179
177
  name?: "application/vnd.microsoft.meetingStart" | undefined;
180
178
  value?: {
181
- id: string;
182
- meetingType: string;
183
- joinUrl: string;
184
- title: string;
185
- startTime: Date;
179
+ Id: string;
180
+ MeetingType: string;
181
+ JoinUrl: string;
182
+ Title: string;
183
+ StartTime: Date;
186
184
  } | undefined;
187
185
  serviceUrl?: string | undefined;
188
186
  timestamp?: Date | undefined;
@@ -206,11 +204,11 @@ export declare class HttpPlugin implements ISender {
206
204
  type: "event";
207
205
  name?: "application/vnd.microsoft.meetingEnd" | undefined;
208
206
  value?: {
209
- id: string;
210
- meetingType: string;
211
- joinUrl: string;
212
- title: string;
213
- endTime: Date;
207
+ Id: string;
208
+ MeetingType: string;
209
+ JoinUrl: string;
210
+ Title: string;
211
+ EndTime: Date;
214
212
  } | undefined;
215
213
  serviceUrl?: string | undefined;
216
214
  timestamp?: Date | undefined;
@@ -235,7 +233,7 @@ export declare class HttpPlugin implements ISender {
235
233
  name?: "application/vnd.microsoft.meetingParticipantJoin" | undefined;
236
234
  value?: {
237
235
  members: {
238
- user: import("@microsoft/teams.api").Account;
236
+ user: import("@microsoft/teams.api").TeamsChannelAccount;
239
237
  meeting: {
240
238
  inMeeting: boolean;
241
239
  role: string;
@@ -265,10 +263,10 @@ export declare class HttpPlugin implements ISender {
265
263
  name?: "application/vnd.microsoft.meetingParticipantLeave" | undefined;
266
264
  value?: {
267
265
  members: {
268
- user: import("@microsoft/teams.api").Account;
266
+ user: import("@microsoft/teams.api").TeamsChannelAccount;
269
267
  meeting: {
270
268
  inMeeting: boolean;
271
- role: string;
269
+ role?: string;
272
270
  };
273
271
  }[];
274
272
  } | undefined;
@@ -759,6 +757,28 @@ export declare class HttpPlugin implements ISender {
759
757
  meeting?: import("@microsoft/teams.api").MeetingInfo | undefined;
760
758
  notification?: import("@microsoft/teams.api").NotificationInfo | undefined;
761
759
  isStreaming?: (() => boolean) | undefined;
760
+ } | {
761
+ id: string;
762
+ type: "invoke";
763
+ name?: "signin/failure" | undefined;
764
+ value?: import("@microsoft/teams.api").SignInFailure | undefined;
765
+ serviceUrl?: string | undefined;
766
+ timestamp?: Date | undefined;
767
+ locale?: string | undefined;
768
+ localTimestamp?: Date | undefined;
769
+ channelId?: import("@microsoft/teams.api").ChannelID | undefined;
770
+ from?: import("@microsoft/teams.api").Account | undefined;
771
+ conversation?: import("@microsoft/teams.api").ConversationAccount | undefined;
772
+ relatesTo?: ConversationReference | undefined;
773
+ recipient?: import("@microsoft/teams.api").Account | undefined;
774
+ replyToId?: string | undefined;
775
+ entities?: import("@microsoft/teams.api").Entity[] | undefined;
776
+ channelData?: import("@microsoft/teams.api").ChannelData | undefined;
777
+ channel?: import("@microsoft/teams.api").ChannelInfo | undefined;
778
+ team?: import("@microsoft/teams.api").TeamInfo | undefined;
779
+ meeting?: import("@microsoft/teams.api").MeetingInfo | undefined;
780
+ notification?: import("@microsoft/teams.api").NotificationInfo | undefined;
781
+ isStreaming?: (() => boolean) | undefined;
762
782
  } | {
763
783
  id: string;
764
784
  type: "invoke";
@@ -82,7 +82,6 @@ let HttpPlugin = class HttpPlugin {
82
82
  }
83
83
  _port;
84
84
  express;
85
- pending = {};
86
85
  skipAuth;
87
86
  constructor(server, options) {
88
87
  this.skipAuth = options?.skipAuth ?? false;
@@ -139,28 +138,6 @@ let HttpPlugin = class HttpPlugin {
139
138
  onStop() {
140
139
  this._server.close();
141
140
  }
142
- onError({ error, activity }) {
143
- if (!activity)
144
- return;
145
- const res = this.pending[activity.id];
146
- if (!res) {
147
- return;
148
- }
149
- if (!res.headersSent) {
150
- res.status(500).send(error.message);
151
- }
152
- delete this.pending[activity.id];
153
- }
154
- onActivityResponse({ response, activity }) {
155
- const res = this.pending[activity.id];
156
- if (!res) {
157
- return;
158
- }
159
- if (!res.headersSent) {
160
- res.status(response.status || 200).send(JSON.stringify(response.body));
161
- }
162
- delete this.pending[activity.id];
163
- }
164
141
  async send(activity, ref) {
165
142
  const api = new teams_api_1.Client(ref.serviceUrl, this.client.clone({
166
143
  token: this.botToken,
@@ -170,13 +147,17 @@ let HttpPlugin = class HttpPlugin {
170
147
  from: ref.bot,
171
148
  conversation: ref.conversation,
172
149
  };
150
+ // Check if this is a targeted message
151
+ const isTargeted = 'isTargeted' in activity && activity.isTargeted === true;
173
152
  if (activity.id) {
174
- const res = await api.conversations
175
- .activities(ref.conversation.id)
176
- .update(activity.id, activity);
153
+ const res = isTargeted
154
+ ? await api.conversations.activities(ref.conversation.id).updateTargeted(activity.id, activity)
155
+ : await api.conversations.activities(ref.conversation.id).update(activity.id, activity);
177
156
  return { ...activity, ...res };
178
157
  }
179
- const res = await api.conversations.activities(ref.conversation.id).create(activity);
158
+ const res = isTargeted
159
+ ? await api.conversations.activities(ref.conversation.id).createTargeted(activity)
160
+ : await api.conversations.activities(ref.conversation.id).create(activity);
180
161
  return { ...activity, ...res };
181
162
  }
182
163
  createStream(ref) {
@@ -204,12 +185,12 @@ let HttpPlugin = class HttpPlugin {
204
185
  isExpired: () => false,
205
186
  };
206
187
  }
207
- this.pending[activity.id] = res;
208
- this.$onActivity({
188
+ const response = await this.$onActivity({
209
189
  sender: this,
210
190
  activity,
211
191
  token,
212
192
  });
193
+ res.status(response.status || 200).send(response.body);
213
194
  }
214
195
  };
215
196
  exports.HttpPlugin = HttpPlugin;
@@ -249,4 +230,4 @@ exports.HttpPlugin = HttpPlugin = __decorate([
249
230
  }),
250
231
  __metadata("design:paramtypes", [http_1.default.Server, Object])
251
232
  ], HttpPlugin);
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvaHR0cC9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLGdEQUF3QjtBQUN4QixzREFBOEI7QUFFOUIsb0RBTzhCO0FBRzlCLG9FQUFzRDtBQUV0RCx5RUFBd0M7QUFHeEMsMEZBQW9HO0FBQ3BHLHVDQVVxQjtBQUdyQixxQ0FBc0M7QUFFdEM7O0dBRUc7QUFNSSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFVO0lBRVosTUFBTSxDQUFXO0lBR2pCLE1BQU0sQ0FBZ0I7SUFHdEIsUUFBUSxDQUFxQjtJQUc3QixXQUFXLENBQWU7SUFHMUIsUUFBUSxDQUFnQjtJQUd4QixRQUFRLENBQWdDO0lBR3hDLFdBQVcsQ0FBbUM7SUFFOUMsR0FBRyxDQUE2QjtJQUNoQyxJQUFJLENBQThCO0lBQ2xDLEtBQUssQ0FBK0I7SUFDcEMsR0FBRyxDQUE2QjtJQUNoQyxNQUFNLENBQWdDO0lBQ3RDLEtBQUssQ0FBK0I7SUFDcEMsR0FBRyxDQUE2QjtJQUV6QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNTLE9BQU8sQ0FBYztJQUUvQixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNTLEtBQUssQ0FBbUI7SUFFeEIsT0FBTyxDQUFzQjtJQUM3QixPQUFPLEdBQXFDLEVBQUUsQ0FBQztJQUMvQyxRQUFRLENBQVU7SUFFNUIsWUFBWSxNQUFvQixFQUFFLE9BQWdDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFBLGlCQUFPLEdBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxjQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxjQUFJLEdBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxpQkFBTyxDQUFDLElBQUksRUFBRSxDQUFD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
233
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3BsdWdpbnMvaHR0cC9wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsZ0RBQXdCO0FBRXhCLGdEQUF3QjtBQUN4QixzREFBOEI7QUFFOUIsb0RBUThCO0FBRzlCLG9FQUFzRDtBQUV0RCx5RUFBd0M7QUFHeEMsMEZBQW9HO0FBQ3BHLHVDQVFxQjtBQUdyQixxQ0FBc0M7QUFFdEM7O0dBRUc7QUFNSSxJQUFNLFVBQVUsR0FBaEIsTUFBTSxVQUFVO0lBRVosTUFBTSxDQUFXO0lBR2pCLE1BQU0sQ0FBZ0I7SUFHdEIsUUFBUSxDQUFxQjtJQUc3QixXQUFXLENBQWU7SUFHMUIsUUFBUSxDQUFnQjtJQUd4QixRQUFRLENBQWdDO0lBR3hDLFdBQVcsQ0FBc0Q7SUFFakUsR0FBRyxDQUE2QjtJQUNoQyxJQUFJLENBQThCO0lBQ2xDLEtBQUssQ0FBK0I7SUFDcEMsR0FBRyxDQUE2QjtJQUNoQyxNQUFNLENBQWdDO0lBQ3RDLEtBQUssQ0FBK0I7SUFDcEMsR0FBRyxDQUE2QjtJQUV6QyxJQUFJLE1BQU07UUFDUixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUNTLE9BQU8sQ0FBYztJQUUvQixJQUFJLElBQUk7UUFDTixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUNTLEtBQUssQ0FBbUI7SUFFeEIsT0FBTyxDQUFzQjtJQUM3QixRQUFRLENBQVU7SUFFNUIsWUFBWSxNQUFvQixFQUFFLE9BQWdDO1FBQ2hFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7UUFDM0MsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFBLGlCQUFPLEdBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sSUFBSSxjQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBQSxjQUFJLEdBQUUsQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxpQkFBTyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOzs7O09B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
@@ -1,6 +1,21 @@
1
1
  import { ActivityParams, Attachment, ChannelData, Client, ConversationReference, Entity, IMessageActivity, ITypingActivity, SentActivity, TypingActivity } from '@microsoft/teams.api';
2
2
  import { EventEmitter, ILogger } from '@microsoft/teams.common';
3
3
  import { IStreamer, IStreamerEvents } from '../../types';
4
+ /**
5
+ * HTTP-based streaming implementation for Microsoft Teams activities.
6
+ *
7
+ * Allows sending typing indicators and messages in chunks to Teams.
8
+ * Queues incoming activities and flushes them periodically to avoid
9
+ * rate limits.
10
+ *
11
+ * Flow:
12
+ * 1. `emit()` adds activities to the queue and starts a flush if none scheduled.
13
+ * 2. `_flush()` starts by cancelling any pending flush, then processes up to 10 queued activities under a lock.
14
+ * 3. Informative typing updates are sent immediately.
15
+ * 4. Message text is combined and sent as a typing activity.
16
+ * 5. `_flush()` schedules another flush if more items remain in queue.
17
+ * 6. `close()` waits for the queue to empty and sends the final message activity.
18
+ */
4
19
  export declare class HttpStream implements IStreamer {
5
20
  readonly events: EventEmitter<IStreamerEvents>;
6
21
  protected client: Client;
@@ -16,12 +31,37 @@ export declare class HttpStream implements IStreamer {
16
31
  private _timeout?;
17
32
  private _logger;
18
33
  private _flushing;
34
+ private readonly _totalTimeout;
19
35
  constructor(client: Client, ref: ConversationReference, logger?: ILogger);
36
+ /**
37
+ * Emit a new activity or text to the stream.
38
+ * @param activity Activity object or string message.
39
+ */
20
40
  emit(activity: Partial<IMessageActivity | ITypingActivity> | string): void;
41
+ /**
42
+ * Send a typing/status update without adding to the main text.
43
+ * @param text Status text (ex. "Thinking...")
44
+ */
21
45
  update(text: string): void;
46
+ /**
47
+ * Close the stream by sending the final message.
48
+ * Waits for all queued activities to flush.
49
+ */
22
50
  close(): Promise<SentActivity | undefined>;
51
+ /**
52
+ * Flush queued activities.
53
+ * Processes up to 10 items at a time.
54
+ */
23
55
  protected flush(): Promise<void>;
56
+ /**
57
+ * Push a new chunk to the stream.
58
+ * @param activity TypingActivity to send.
59
+ */
24
60
  protected pushStreamChunk(activity: TypingActivity): Promise<void>;
61
+ /**
62
+ * Send or update a streaming activity
63
+ * @param activity ActivityParams to send.
64
+ */
25
65
  protected send(activity: ActivityParams): Promise<{
26
66
  id: string;
27
67
  type: "message";
@@ -37,6 +77,7 @@ export declare class HttpStream implements IStreamer {
37
77
  deliveryMode?: import("@microsoft/teams.api").DeliveryMode | undefined;
38
78
  expiration?: Date | undefined;
39
79
  value?: any;
80
+ isTargeted?: boolean | undefined;
40
81
  stripMentionsText?: ((options?: import("@microsoft/teams.api").StripMentionsTextOptions) => IMessageActivity) | undefined;
41
82
  isRecipientMentioned?: (() => boolean) | undefined;
42
83
  getAccountMention?: ((accountId: string) => import("@microsoft/teams.api").MentionEntity | undefined) | undefined;
@@ -154,11 +195,11 @@ export declare class HttpStream implements IStreamer {
154
195
  type: "event";
155
196
  name?: "application/vnd.microsoft.meetingStart" | undefined;
156
197
  value?: {
157
- id: string;
158
- meetingType: string;
159
- joinUrl: string;
160
- title: string;
161
- startTime: Date;
198
+ Id: string;
199
+ MeetingType: string;
200
+ JoinUrl: string;
201
+ Title: string;
202
+ StartTime: Date;
162
203
  } | undefined;
163
204
  serviceUrl?: string | undefined;
164
205
  timestamp?: Date | undefined;
@@ -182,11 +223,11 @@ export declare class HttpStream implements IStreamer {
182
223
  type: "event";
183
224
  name?: "application/vnd.microsoft.meetingEnd" | undefined;
184
225
  value?: {
185
- id: string;
186
- meetingType: string;
187
- joinUrl: string;
188
- title: string;
189
- endTime: Date;
226
+ Id: string;
227
+ MeetingType: string;
228
+ JoinUrl: string;
229
+ Title: string;
230
+ EndTime: Date;
190
231
  } | undefined;
191
232
  serviceUrl?: string | undefined;
192
233
  timestamp?: Date | undefined;
@@ -211,7 +252,7 @@ export declare class HttpStream implements IStreamer {
211
252
  name?: "application/vnd.microsoft.meetingParticipantJoin" | undefined;
212
253
  value?: {
213
254
  members: {
214
- user: import("@microsoft/teams.api").Account;
255
+ user: import("@microsoft/teams.api").TeamsChannelAccount;
215
256
  meeting: {
216
257
  inMeeting: boolean;
217
258
  role: string;
@@ -241,10 +282,10 @@ export declare class HttpStream implements IStreamer {
241
282
  name?: "application/vnd.microsoft.meetingParticipantLeave" | undefined;
242
283
  value?: {
243
284
  members: {
244
- user: import("@microsoft/teams.api").Account;
285
+ user: import("@microsoft/teams.api").TeamsChannelAccount;
245
286
  meeting: {
246
287
  inMeeting: boolean;
247
- role: string;
288
+ role?: string;
248
289
  };
249
290
  }[];
250
291
  } | undefined;
@@ -735,6 +776,28 @@ export declare class HttpStream implements IStreamer {
735
776
  meeting?: import("@microsoft/teams.api").MeetingInfo | undefined;
736
777
  notification?: import("@microsoft/teams.api").NotificationInfo | undefined;
737
778
  isStreaming?: (() => boolean) | undefined;
779
+ } | {
780
+ id: string;
781
+ type: "invoke";
782
+ name?: "signin/failure" | undefined;
783
+ value?: import("@microsoft/teams.api").SignInFailure | undefined;
784
+ serviceUrl?: string | undefined;
785
+ timestamp?: Date | undefined;
786
+ locale?: string | undefined;
787
+ localTimestamp?: Date | undefined;
788
+ channelId?: import("@microsoft/teams.api").ChannelID | undefined;
789
+ from?: import("@microsoft/teams.api").Account | undefined;
790
+ conversation?: import("@microsoft/teams.api").ConversationAccount | undefined;
791
+ relatesTo?: ConversationReference | undefined;
792
+ recipient?: import("@microsoft/teams.api").Account | undefined;
793
+ replyToId?: string | undefined;
794
+ entities?: Entity[] | undefined;
795
+ channelData?: ChannelData | undefined;
796
+ channel?: import("@microsoft/teams.api").ChannelInfo | undefined;
797
+ team?: import("@microsoft/teams.api").TeamInfo | undefined;
798
+ meeting?: import("@microsoft/teams.api").MeetingInfo | undefined;
799
+ notification?: import("@microsoft/teams.api").NotificationInfo | undefined;
800
+ isStreaming?: (() => boolean) | undefined;
738
801
  } | {
739
802
  id: string;
740
803
  type: "invoke";