@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
35 lines • 2.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.sanitizeSocketModeUrl = sanitizeSocketModeUrl;
exports.redactSocketModeSecrets = redactSocketModeSecrets;
const REDACTED = '[REDACTED]';
/** Removes credentials, query parameters, and fragments from a URL used in diagnostics. */
function sanitizeSocketModeUrl(value) {
const url = new URL(value);
url.username = '';
url.password = '';
url.search = '';
url.hash = '';
return url.toString();
}
/**
* Removes Socket Mode credentials from diagnostic text before it reaches logs
* or caller-visible errors.
*
* @param value Diagnostic text that may contain a credential.
* @param secrets Exact credential values known by the caller.
* @returns Diagnostic text with bearer tokens and sensitive fields redacted.
*/
function redactSocketModeSecrets(value, secrets = []) {
let redacted = value;
for (const secret of secrets) {
if (secret) {
redacted = redacted.split(secret).join(REDACTED);
}
}
return redacted
.replace(/(Bearer\s+)[^\s"',}]+/gi, `$1${REDACTED}`)
.replace(/([?&](?:access_token|token|client_secret)=)[^&\s]+/gi, `$1${REDACTED}`)
.replace(/((?:"|')?(?:accessToken|access_token|clientSecret|client_secret|authorization|token)(?:"|')?\s*[:=]\s*(?:"|')?)([^"',}\s&]+)/gi, `$1${REDACTED}`);
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NvY2tldC1tb2RlL3JlZGFjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUdBLHNEQU9DO0FBVUQsMERBcUJDO0FBekNELE1BQU0sUUFBUSxHQUFHLFlBQVksQ0FBQztBQUU5QiwyRkFBMkY7QUFDM0YsU0FBZ0IscUJBQXFCLENBQUMsS0FBYTtJQUNqRCxNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixHQUFHLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNsQixHQUFHLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNsQixHQUFHLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUNoQixHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDO0FBQ3hCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLEtBQWEsRUFDYixVQUE2QixFQUFFO0lBRS9CLElBQUksUUFBUSxHQUFHLEtBQUssQ0FBQztJQUNyQixLQUFLLE1BQU0sTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbkQsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFFBQVE7U0FDWixPQUFPLENBQUMseUJBQXlCLEVBQUUsS0FBSyxRQUFRLEVBQUUsQ0FBQztTQUNuRCxPQUFPLENBQ04sc0RBQXNELEVBQ3RELEtBQUssUUFBUSxFQUFFLENBQ2hCO1NBQ0EsT0FBTyxDQUNOLGdJQUFnSSxFQUNoSSxLQUFLLFFBQVEsRUFBRSxDQUNoQixDQUFDO0FBQ04sQ0FBQyJ9