UNPKG

@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

57 lines • 5.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActivitySender = void 0; const teams_api_1 = require("@microsoft/teams.api"); const http_stream_1 = require("./http/http-stream"); /** * Handles sending activities to the Bot Framework * Separate from transport concerns (HTTP, WebSocket, etc.) */ class ActivitySender { logger; createClient; constructor(logger, createClient) { this.logger = logger; this.createClient = createClient; } async send(activity, ref, options) { return this.dispatch(activity, ref, options); } createStream(ref, options) { return new http_stream_1.HttpStream(this.createClient(ref.serviceUrl), ref, this.logger, options); } async dispatch(activity, ref, options) { const params = (0, teams_api_1.toActivityParams)(activity); // Merge activity with conversation reference for the wire payload. const payload = { ...params, from: ref.bot, conversation: ref.conversation, }; const isTargeted = payload.recipient?.isTargeted === true; const plan = (0, teams_api_1.getPlanInfo)(payload); const api = this.createClient(ref.serviceUrl, options?.agenticIdentity); // Decide create vs update, with targeted variants if (payload.id && !plan) { if (isTargeted) { const { recipient: _recipient, ...targetedUpdate } = payload; const res = await api.conversations.updateTargetedActivity(ref.conversation.id, payload.id, targetedUpdate); return { ...payload, ...res }; } const res = await api.conversations.updateActivity(ref.conversation.id, payload.id, payload); return { ...payload, ...res }; } if (options?.replyChainId) { const res = isTargeted ? await api.conversations.createTargetedReplyChainActivity(ref.conversation.id, options.replyChainId, payload) : await api.conversations.createReplyChainActivity(ref.conversation.id, options.replyChainId, payload); return { ...payload, ...res }; } const res = isTargeted ? await api.conversations.createTargetedActivity(ref.conversation.id, payload) : await api.conversations.createActivity(ref.conversation.id, payload); return { ...payload, ...res }; } } exports.ActivitySender = ActivitySender; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aXZpdHktc2VuZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FjdGl2aXR5LXNlbmRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxvREFTOEI7QUFHOUIsb0RBQWdEO0FBU2hEOzs7R0FHRztBQUNILE1BQWEsY0FBYztJQUVmO0lBQ0E7SUFGVixZQUNVLE1BQWUsRUFDZixZQUF5QztRQUR6QyxXQUFNLEdBQU4sTUFBTSxDQUFTO1FBQ2YsaUJBQVksR0FBWixZQUFZLENBQTZCO0lBQy9DLENBQUM7SUFZTCxLQUFLLENBQUMsSUFBSSxDQUNSLFFBQWtELEVBQ2xELEdBQTBCLEVBQzFCLE9BQStCO1FBRS9CLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRCxZQUFZLENBQUMsR0FBMEIsRUFBRSxPQUF1QjtRQUM5RCxPQUFPLElBQUksd0JBQVUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN0RixDQUFDO0lBRU8sS0FBSyxDQUFDLFFBQVEsQ0FDcEIsUUFBa0QsRUFDbEQsR0FBMEIsRUFDMUIsT0FBK0I7UUFFL0IsTUFBTSxNQUFNLEdBQUcsSUFBQSw0QkFBZ0IsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUUxQyxtRUFBbUU7UUFDbkUsTUFBTSxPQUFPLEdBQUc7WUFDZCxHQUFHLE1BQU07WUFDVCxJQUFJLEVBQUUsR0FBRyxDQUFDLEdBQUc7WUFDYixZQUFZLEVBQUUsR0FBRyxDQUFDLFlBQVk7U0FDL0IsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxTQUFTLEVBQUUsVUFBVSxLQUFLLElBQUksQ0FBQztRQUMxRCxNQUFNLElBQUksR0FBRyxJQUFBLHVCQUFXLEVBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxlQUFlLENBQUMsQ0FBQztRQUV4RSxrREFBa0Q7UUFDbEQsSUFBSSxPQUFPLENBQUMsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxHQUFHLGNBQWMsRUFBRSxHQUFHLE9BQU8sQ0FBQztnQkFDN0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLHNCQUFzQixDQUN4RCxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFDbkIsT0FBTyxDQUFDLEVBQUUsRUFDVixjQUFjLENBQ2YsQ0FBQztnQkFDRixPQUFPLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNoQyxDQUFDO1lBRUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQzdGLE9BQU8sRUFBRSxHQUFHLE9BQU8sRUFBRSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2hDLENBQUM7UUFFRCxJQUFJLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUMxQixNQUFNLEdBQUcsR0FBRyxVQUFVO2dCQUNwQixDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLGdDQUFnQyxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDO2dCQUM5RyxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDekcsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFDaEMsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLFVBQVU7WUFDcEIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUM7WUFDOUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDekUsT0FBTyxFQUFFLEdBQUcsT0FBTyxFQUFFLEdBQUcsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUVGO0FBNUVELHdDQTRFQyJ9