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

60 lines • 5.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.traceOAuthOperation = traceOAuthOperation; exports.recordUnexpectedOAuthError = recordUnexpectedOAuthError; const axios_1 = require("axios"); const constants_1 = require("../diagnostics/constants"); const helpers_1 = require("../diagnostics/helpers"); /** @internal Traces one OAuth lifecycle operation and records its metrics. */ function traceOAuthOperation(spanName, connectionName, operation, execute) { const startedAt = Date.now(); return (0, helpers_1.getTeamsBotApplicationTracer)().startActiveSpan(spanName, { attributes: { [constants_1.APP_ATTRIBUTE_NAMES.oauthConnection]: connectionName, [constants_1.APP_ATTRIBUTE_NAMES.oauthOperation]: operation, }, }, async (span) => { const telemetry = {}; try { return await execute(span, telemetry); } catch (error) { telemetry.result ??= constants_1.APP_OAUTH_RESULT.failure; recordUnexpectedOAuthError(span, telemetry, error, error instanceof axios_1.AxiosError ? constants_1.APP_OAUTH_ERROR_TYPE.httpError : constants_1.APP_OAUTH_ERROR_TYPE.exception); throw error; } finally { const result = telemetry.result ?? constants_1.APP_OAUTH_RESULT.failure; span.setAttribute(constants_1.APP_ATTRIBUTE_NAMES.oauthResult, result); if (telemetry.responseStatus !== undefined) { span.setAttribute(constants_1.APP_ATTRIBUTE_NAMES.invokeResponseStatus, telemetry.responseStatus); } if (telemetry.callbackInvoked) { span.setAttribute(constants_1.APP_ATTRIBUTE_NAMES.oauthCallbackInvoked, true); } if (telemetry.errorType) { span.setAttribute(constants_1.APP_ATTRIBUTE_NAMES.oauthErrorType, telemetry.errorType); } if (telemetry.failureCode) { span.setAttribute(constants_1.APP_ATTRIBUTE_NAMES.oauthFailureCode, telemetry.failureCode); } (0, helpers_1.recordTeamsBotOAuthOperation)(connectionName, operation, result); (0, helpers_1.recordTeamsBotOAuthOperationDuration)(connectionName, operation, result, Date.now() - startedAt); if (telemetry.errorType) { (0, helpers_1.recordTeamsBotOAuthError)(connectionName, operation, telemetry.errorType); } span.end(); } }); } /** @internal Adds an unexpected exception to the current OAuth span. */ function recordUnexpectedOAuthError(span, telemetry, error, errorType) { if (telemetry.errorType) { return; } telemetry.errorType = errorType; (0, helpers_1.recordTeamsBotApplicationException)(span, error); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVsZW1ldHJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL29hdXRoL3RlbGVtZXRyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQTBCQSxrREE2RUM7QUFHRCxnRUFZQztBQXJIRCxpQ0FBbUM7QUFFbkMsd0RBSWtDO0FBQ2xDLG9EQU1nQztBQVdoQyw4RUFBOEU7QUFDOUUsU0FBZ0IsbUJBQW1CLENBQ2pDLFFBQWdCLEVBQ2hCLGNBQXNCLEVBQ3RCLFNBQWlCLEVBQ2pCLE9BQW1FO0lBRW5FLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUU3QixPQUFPLElBQUEsc0NBQTRCLEdBQUUsQ0FBQyxlQUFlLENBQ25ELFFBQVEsRUFDUjtRQUNFLFVBQVUsRUFBRTtZQUNWLENBQUMsK0JBQW1CLENBQUMsZUFBZSxDQUFDLEVBQUUsY0FBYztZQUNyRCxDQUFDLCtCQUFtQixDQUFDLGNBQWMsQ0FBQyxFQUFFLFNBQVM7U0FDaEQ7S0FDRixFQUNELEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNiLE1BQU0sU0FBUyxHQUF3QixFQUFFLENBQUM7UUFFMUMsSUFBSSxDQUFDO1lBQ0gsT0FBTyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDeEMsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixTQUFTLENBQUMsTUFBTSxLQUFLLDRCQUFnQixDQUFDLE9BQU8sQ0FBQztZQUM5QywwQkFBMEIsQ0FDeEIsSUFBSSxFQUNKLFNBQVMsRUFDVCxLQUFLLEVBQ0wsS0FBSyxZQUFZLGtCQUFVO2dCQUN6QixDQUFDLENBQUMsZ0NBQW9CLENBQUMsU0FBUztnQkFDaEMsQ0FBQyxDQUFDLGdDQUFvQixDQUFDLFNBQVMsQ0FDbkMsQ0FBQztZQUNGLE1BQU0sS0FBSyxDQUFDO1FBQ2QsQ0FBQztnQkFBUyxDQUFDO1lBQ1QsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sSUFBSSw0QkFBZ0IsQ0FBQyxPQUFPLENBQUM7WUFFNUQsSUFBSSxDQUFDLFlBQVksQ0FBQywrQkFBbUIsQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDM0QsSUFBSSxTQUFTLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUMzQyxJQUFJLENBQUMsWUFBWSxDQUNmLCtCQUFtQixDQUFDLG9CQUFvQixFQUN4QyxTQUFTLENBQUMsY0FBYyxDQUN6QixDQUFDO1lBQ0osQ0FBQztZQUNELElBQUksU0FBUyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUM5QixJQUFJLENBQUMsWUFBWSxDQUFDLCtCQUFtQixDQUFDLG9CQUFvQixFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3BFLENBQUM7WUFDRCxJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLFlBQVksQ0FDZiwrQkFBbUIsQ0FBQyxjQUFjLEVBQ2xDLFNBQVMsQ0FBQyxTQUFTLENBQ3BCLENBQUM7WUFDSixDQUFDO1lBQ0QsSUFBSSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQ2YsK0JBQW1CLENBQUMsZ0JBQWdCLEVBQ3BDLFNBQVMsQ0FBQyxXQUFXLENBQ3RCLENBQUM7WUFDSixDQUFDO1lBRUQsSUFBQSxzQ0FBNEIsRUFBQyxjQUFjLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ2hFLElBQUEsOENBQW9DLEVBQ2xDLGNBQWMsRUFDZCxTQUFTLEVBQ1QsTUFBTSxFQUNOLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxTQUFTLENBQ3ZCLENBQUM7WUFDRixJQUFJLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDeEIsSUFBQSxrQ0FBd0IsRUFDdEIsY0FBYyxFQUNkLFNBQVMsRUFDVCxTQUFTLENBQUMsU0FBUyxDQUNwQixDQUFDO1lBQ0osQ0FBQztZQUVELElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNiLENBQUM7SUFDSCxDQUFDLENBQ0YsQ0FBQztBQUNKLENBQUM7QUFFRCx3RUFBd0U7QUFDeEUsU0FBZ0IsMEJBQTBCLENBQ3hDLElBQVUsRUFDVixTQUE4QixFQUM5QixLQUFjLEVBQ2QsU0FBaUI7SUFFakIsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDeEIsT0FBTztJQUNULENBQUM7SUFFRCxTQUFTLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUNoQyxJQUFBLDRDQUFrQyxFQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRCxDQUFDIn0=