Estructura inicial del proyecto
This commit is contained in:
278
backend/node_modules/@azure/msal-common/dist/logger/Logger.mjs
generated
vendored
Normal file
278
backend/node_modules/@azure/msal-common/dist/logger/Logger.mjs
generated
vendored
Normal file
@ -0,0 +1,278 @@
|
||||
/*! @azure/msal-common v16.6.2 2026-05-19 */
|
||||
'use strict';
|
||||
/*
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License.
|
||||
*/
|
||||
/**
|
||||
* Log message level.
|
||||
*/
|
||||
var LogLevel;
|
||||
(function (LogLevel) {
|
||||
LogLevel[LogLevel["Error"] = 0] = "Error";
|
||||
LogLevel[LogLevel["Warning"] = 1] = "Warning";
|
||||
LogLevel[LogLevel["Info"] = 2] = "Info";
|
||||
LogLevel[LogLevel["Verbose"] = 3] = "Verbose";
|
||||
LogLevel[LogLevel["Trace"] = 4] = "Trace";
|
||||
})(LogLevel || (LogLevel = {}));
|
||||
// Shared cache state for better minification - using Map's insertion order for LRU
|
||||
const CACHE_CAPACITY = 50;
|
||||
const MAX_LOGS_PER_CORRELATION = 500;
|
||||
const correlationCache = new Map();
|
||||
/**
|
||||
* Mark correlation ID as recently used by moving it to end of Map
|
||||
* @param correlationId
|
||||
* @param {CorrelationLogData} data
|
||||
*/
|
||||
function markAsRecentlyUsed(correlationId, data) {
|
||||
correlationCache.delete(correlationId);
|
||||
correlationCache.set(correlationId, data);
|
||||
}
|
||||
/**
|
||||
* Add log message to cache for specific correlation ID
|
||||
* @param correlationId
|
||||
* @param {LoggedMessage} loggedMessage
|
||||
*/
|
||||
function addLogToCache(correlationId, loggedMessage) {
|
||||
const currentTime = Date.now();
|
||||
let data = correlationCache.get(correlationId);
|
||||
if (data) {
|
||||
// Mark as recently used
|
||||
markAsRecentlyUsed(correlationId, data);
|
||||
}
|
||||
else {
|
||||
// Create new entry
|
||||
data = { logs: [], firstEventTime: currentTime };
|
||||
correlationCache.set(correlationId, data);
|
||||
// Remove LRU (first entry) if capacity exceeded
|
||||
if (correlationCache.size > CACHE_CAPACITY) {
|
||||
const firstKey = correlationCache.keys().next().value;
|
||||
if (firstKey) {
|
||||
correlationCache.delete(firstKey);
|
||||
}
|
||||
}
|
||||
}
|
||||
// Add log to the data, maintaining max logs per correlation
|
||||
data.logs.push({
|
||||
...loggedMessage,
|
||||
milliseconds: currentTime - data.firstEventTime,
|
||||
});
|
||||
if (data.logs.length > MAX_LOGS_PER_CORRELATION) {
|
||||
data.logs.shift(); // Remove oldest log
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Get logs for correlation ID and flush them from cache
|
||||
* Attaches logs with empty correlation id to the requested correlation logs
|
||||
* @param correlationId
|
||||
*/
|
||||
function getAndFlushLogsFromCache(correlationId) {
|
||||
const res = [];
|
||||
for (const id of ["", correlationId]) {
|
||||
const data = correlationCache.get(id);
|
||||
res.push(...(data?.logs ?? []));
|
||||
correlationCache.delete(id); // Remove the correlation ID completely from cache
|
||||
}
|
||||
return res;
|
||||
}
|
||||
/**
|
||||
* Checks if a string is already a hashed logging string (6 alphanumeric characters)
|
||||
*/
|
||||
function isHashedString(str) {
|
||||
if (str.length !== 6) {
|
||||
return false;
|
||||
}
|
||||
for (let i = 0; i < str.length; i++) {
|
||||
const char = str[i];
|
||||
const isAlphaNumeric = (char >= "a" && char <= "z") ||
|
||||
(char >= "A" && char <= "Z") ||
|
||||
(char >= "0" && char <= "9");
|
||||
if (!isAlphaNumeric) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
/**
|
||||
* Class which facilitates logging of messages to a specific place.
|
||||
*/
|
||||
class Logger {
|
||||
constructor(loggerOptions, packageName, packageVersion) {
|
||||
// Current log level, defaults to info.
|
||||
this.level = LogLevel.Info;
|
||||
const defaultLoggerCallback = () => {
|
||||
return;
|
||||
};
|
||||
const setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();
|
||||
this.localCallback =
|
||||
setLoggerOptions.loggerCallback || defaultLoggerCallback;
|
||||
this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;
|
||||
this.level =
|
||||
typeof setLoggerOptions.logLevel === "number"
|
||||
? setLoggerOptions.logLevel
|
||||
: LogLevel.Info;
|
||||
this.packageName = packageName || "";
|
||||
this.packageVersion = packageVersion || "";
|
||||
}
|
||||
static createDefaultLoggerOptions() {
|
||||
return {
|
||||
loggerCallback: () => {
|
||||
// allow users to not set loggerCallback
|
||||
},
|
||||
piiLoggingEnabled: false,
|
||||
logLevel: LogLevel.Info,
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Create new Logger with existing configurations.
|
||||
*/
|
||||
clone(packageName, packageVersion) {
|
||||
return new Logger({
|
||||
loggerCallback: this.localCallback,
|
||||
piiLoggingEnabled: this.piiLoggingEnabled,
|
||||
logLevel: this.level,
|
||||
}, packageName, packageVersion);
|
||||
}
|
||||
/**
|
||||
* Log message with required options.
|
||||
*/
|
||||
logMessage(logMessage, options) {
|
||||
const correlationId = options.correlationId;
|
||||
const isHashedInput = isHashedString(logMessage);
|
||||
if (isHashedInput) {
|
||||
const loggedMessage = {
|
||||
hash: logMessage,
|
||||
level: options.logLevel,
|
||||
containsPii: options.containsPii || false,
|
||||
milliseconds: 0, // Will be calculated in addLogToCache
|
||||
};
|
||||
addLogToCache(correlationId, loggedMessage);
|
||||
}
|
||||
if (options.logLevel > this.level ||
|
||||
(!this.piiLoggingEnabled && options.containsPii)) {
|
||||
return;
|
||||
}
|
||||
const timestamp = new Date().toUTCString();
|
||||
// Add correlationId to logs if set, correlationId provided on log messages take precedence
|
||||
const logHeader = `[${timestamp}] : [${correlationId}]`;
|
||||
const log = `${logHeader} : ${this.packageName}@${this.packageVersion} : ${LogLevel[options.logLevel]} - ${logMessage}`;
|
||||
this.executeCallback(options.logLevel, log, options.containsPii || false);
|
||||
}
|
||||
/**
|
||||
* Execute callback with message.
|
||||
*/
|
||||
executeCallback(level, message, containsPii) {
|
||||
if (this.localCallback) {
|
||||
this.localCallback(level, message, containsPii);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Logs error messages.
|
||||
*/
|
||||
error(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Error,
|
||||
containsPii: false,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs error messages with PII.
|
||||
*/
|
||||
errorPii(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Error,
|
||||
containsPii: true,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs warning messages.
|
||||
*/
|
||||
warning(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Warning,
|
||||
containsPii: false,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs warning messages with PII.
|
||||
*/
|
||||
warningPii(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Warning,
|
||||
containsPii: true,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs info messages.
|
||||
*/
|
||||
info(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Info,
|
||||
containsPii: false,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs info messages with PII.
|
||||
*/
|
||||
infoPii(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Info,
|
||||
containsPii: true,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs verbose messages.
|
||||
*/
|
||||
verbose(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Verbose,
|
||||
containsPii: false,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs verbose messages with PII.
|
||||
*/
|
||||
verbosePii(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Verbose,
|
||||
containsPii: true,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs trace messages.
|
||||
*/
|
||||
trace(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Trace,
|
||||
containsPii: false,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Logs trace messages with PII.
|
||||
*/
|
||||
tracePii(message, correlationId) {
|
||||
this.logMessage(message, {
|
||||
logLevel: LogLevel.Trace,
|
||||
containsPii: true,
|
||||
correlationId: correlationId,
|
||||
});
|
||||
}
|
||||
/**
|
||||
* Returns whether PII Logging is enabled or not.
|
||||
*/
|
||||
isPiiLoggingEnabled() {
|
||||
return this.piiLoggingEnabled || false;
|
||||
}
|
||||
}
|
||||
|
||||
export { LogLevel, Logger, getAndFlushLogsFromCache };
|
||||
//# sourceMappingURL=Logger.mjs.map
|
||||
Reference in New Issue
Block a user