@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
JavaScript
;
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