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

94 lines 6.43 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.func = func; exports.tab = tab; exports.configTab = configTab; const path_1 = __importDefault(require("path")); const middleware_1 = require("./middleware"); const utils_1 = require("./utils"); /** * add/update a function that can be called remotely * @param name The unique function name * @param cb The callback to handle the function */ function func(name, cb) { const log = this.log.child('functions').child(name); this.http.post(`/api/functions/${name}`, (0, middleware_1.withRemoteFunctionJwtValidation)({ logger: log, entraTokenValidator: this.entraTokenValidator, ...this.credentials, }), async (req, res) => { if (!req.context) { throw new Error('expected client context'); } const getCurrentConversationId = utils_1.functionContext.getConversationIdResolver(this, log.child('getCurrentConversationId'), req.context); const send = async (activity) => { const conversationId = await getCurrentConversationId(); return !conversationId ? null : await this.send(conversationId, activity); }; const data = await cb({ ...req.context, log, api: this.api, appGraph: this.graph, data: req.body, getCurrentConversationId, send, }); res.send(data); }); return this; } /** * add/update a static tab. * the tab will be hosted at * `http://localhost:{{PORT}}/tabs/{{name}}` or `https://{{BOT_DOMAIN}}/tabs/{{name}}` * @remark scopes default to `personal` * @param name A unique identifier for the entity which the tab displays. * @param path The path to the web `dist` folder. */ function tab(name, path, options) { if (!this._manifest.staticTabs) { this._manifest.staticTabs = []; } const i = this._manifest.staticTabs.findIndex((t) => t.entityId === name); const tab = { entityId: name, contentUrl: `https://\${{BOT_DOMAIN}}/tabs/${name}`, scopes: ['personal'], ...options, }; if (i > -1) { this._manifest.staticTabs[i] = tab; } else { this._manifest.staticTabs.push(tab); } this.http.static(`/tabs/${name}`, path); this.http.use(`/tabs/${name}*`, async (_, res) => { res.sendFile(path_1.default.join(path, 'index.html')); }); return this; } /** * add a configurable tab * @remark scopes defaults to `team` * @param url The url to use when configuring the tab. */ function configTab(url, options) { if (!this._manifest.configurableTabs) { this._manifest.configurableTabs = []; } this._manifest.configurableTabs.push({ configurationUrl: url, scopes: ['team'], ...options, }); return this; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmVtYmVkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2FwcC5lbWJlZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQWdCQSxvQkErQ0M7QUFVRCxrQkE4QkM7QUFPRCw4QkFnQkM7QUE5SEQsZ0RBQXlCO0FBT3pCLDZDQUF5RjtBQUV6RixtQ0FBMEM7QUFFMUM7Ozs7R0FJRztBQUNILFNBQWdCLElBQUksQ0FFbEIsSUFBWSxFQUNaLEVBQTREO0lBRTVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FDWixrQkFBa0IsSUFBSSxFQUFFLEVBQ3hCLElBQUEsNENBQStCLEVBQUM7UUFDOUIsTUFBTSxFQUFFLEdBQUc7UUFDWCxtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1FBQzdDLEdBQUcsSUFBSSxDQUFDLFdBQVc7S0FDcEIsQ0FBQyxFQUNGLEtBQUssRUFBRSxHQUE2QixFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzNDLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxNQUFNLHdCQUF3QixHQUM1Qix1QkFBZSxDQUFDLHlCQUF5QixDQUN2QyxJQUFJLEVBQ0osR0FBRyxDQUFDLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxFQUNyQyxHQUFHLENBQUMsT0FBTyxDQUNaLENBQUM7UUFFSixNQUFNLElBQUksR0FBRyxLQUFLLEVBQUUsUUFBc0IsRUFBRSxFQUFFO1lBQzVDLE1BQU0sY0FBYyxHQUFHLE1BQU0sd0JBQXdCLEVBQUUsQ0FBQztZQUN4RCxPQUFPLENBQUMsY0FBYztnQkFDcEIsQ0FBQyxDQUFDLElBQUk7Z0JBQ04sQ0FBQyxD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