@applitools/logger
Advanced tools
Comparing version 1.1.52 to 1.1.53
"use strict"; | ||
/* eslint no-console: off */ | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
@@ -3,0 +4,0 @@ exports.makeConsoleHandler = void 0; |
"use strict"; | ||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
var desc = Object.getOwnPropertyDescriptor(m, k); | ||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { | ||
desc = { enumerable: true, get: function() { return m[k]; } }; | ||
} | ||
Object.defineProperty(o, k2, desc); | ||
}) : (function(o, m, k, k2) { | ||
if (k2 === undefined) k2 = k; | ||
o[k2] = m[k]; | ||
})); | ||
var __exportStar = (this && this.__exportStar) || function(m, exports) { | ||
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.format = exports.makeRollingFileHandler = exports.makeFileHandler = exports.makeConsoleHandler = exports.makeLogger = void 0; | ||
var logger_1 = require("./logger"); | ||
Object.defineProperty(exports, "makeLogger", { enumerable: true, get: function () { return logger_1.makeLogger; } }); | ||
var handler_console_1 = require("./handler-console"); | ||
Object.defineProperty(exports, "makeConsoleHandler", { enumerable: true, get: function () { return handler_console_1.makeConsoleHandler; } }); | ||
var handler_file_1 = require("./handler-file"); | ||
Object.defineProperty(exports, "makeFileHandler", { enumerable: true, get: function () { return handler_file_1.makeFileHandler; } }); | ||
var handler_rolling_file_1 = require("./handler-rolling-file"); | ||
Object.defineProperty(exports, "makeRollingFileHandler", { enumerable: true, get: function () { return handler_rolling_file_1.makeRollingFileHandler; } }); | ||
var format_1 = require("./format"); | ||
Object.defineProperty(exports, "format", { enumerable: true, get: function () { return format_1.format; } }); | ||
__exportStar(require("./formatter"), exports); | ||
__exportStar(require("./handler-console"), exports); | ||
__exportStar(require("./handler-debug"), exports); | ||
__exportStar(require("./handler-file"), exports); | ||
__exportStar(require("./handler-rolling-file"), exports); | ||
__exportStar(require("./logger"), exports); |
@@ -26,4 +26,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.makeLogger = void 0; | ||
const utils = __importStar(require("@applitools/utils")); | ||
exports.mergeLoggers = exports.makeLogger = void 0; | ||
const handler_console_1 = require("./handler-console"); | ||
@@ -35,110 +34,155 @@ const handler_file_1 = require("./handler-file"); | ||
const log_level_1 = require("./log-level"); | ||
const format_1 = require("./format"); | ||
function makeLogger({ handler, label, tags, timestamp, level, colors, format = format_1.format, console = true, extended = false, } = {}) { | ||
var _a, _b; | ||
const colorize_1 = require("./colorize"); | ||
const formatter_1 = require("./formatter"); | ||
const utils = __importStar(require("@applitools/utils")); | ||
function makeLogger({ logger: baseLogger, ...options } = {}) { | ||
var _a, _b, _c, _d, _e, _f, _g; | ||
var _h, _j; | ||
if (baseLogger) | ||
return baseLogger.extend({ level: options.level, ...options.format }); | ||
(_a = options.console) !== null && _a !== void 0 ? _a : (options.console = true); | ||
(_b = options.format) !== null && _b !== void 0 ? _b : (options.format = {}); | ||
(_c = (_h = options.format).formatter) !== null && _c !== void 0 ? _c : (_h.formatter = formatter_1.formatter); | ||
(_d = (_j = options.format).colors) !== null && _d !== void 0 ? _d : (_j.colors = utils.general.getEnvValue('LOG_COLORS', 'boolean')); | ||
let forceInitHandler; | ||
if (!handler) { | ||
if (!options.handler) { | ||
if (process.env.APPLITOOLS_LOG_FILE) { | ||
handler = { type: 'file', filename: process.env.APPLITOOLS_LOG_FILE }; | ||
options.handler = { type: 'file', filename: process.env.APPLITOOLS_LOG_FILE }; | ||
} | ||
else if (process.env.APPLITOOLS_LOG_DIR) { | ||
handler = { type: 'rolling file', dirname: process.env.APPLITOOLS_LOG_DIR }; | ||
options.handler = { type: 'rolling file', dirname: process.env.APPLITOOLS_LOG_DIR }; | ||
} | ||
else if (process.env.APPLITOOLS_SHOW_LOGS === 'true') { | ||
handler = { type: 'console' }; | ||
options.handler = { type: 'console' }; | ||
} | ||
else if (process.env.DEBUG) { | ||
handler = { type: 'debug', label }; | ||
level = log_level_1.LogLevel.all; | ||
label = undefined; | ||
timestamp = false; | ||
options.handler = { type: 'debug', label: options.format.label }; | ||
options.level = log_level_1.LogLevel.all; | ||
options.format.label = undefined; | ||
options.format.timestamp = false; | ||
forceInitHandler = true; | ||
} | ||
else { | ||
handler = { type: 'console' }; | ||
options.handler = { type: 'console' }; | ||
} | ||
} | ||
if (!utils.types.isNumber(level)) { | ||
level = | ||
(_a = level !== null && level !== void 0 ? level : process.env.APPLITOOLS_LOG_LEVEL) !== null && _a !== void 0 ? _a : (process.env.APPLITOOLS_SHOW_LOGS === 'true' ? 'all' : 'silent'); | ||
level = (_b = log_level_1.LogLevel[level]) !== null && _b !== void 0 ? _b : log_level_1.LogLevel.silent; | ||
if (!utils.types.isNumber(options.level)) { | ||
options.level = | ||
(_f = (_e = options.level) !== null && _e !== void 0 ? _e : process.env.APPLITOOLS_LOG_LEVEL) !== null && _f !== void 0 ? _f : (process.env.APPLITOOLS_SHOW_LOGS === 'true' ? 'all' : 'silent'); | ||
options.level = (_g = log_level_1.LogLevel[options.level]) !== null && _g !== void 0 ? _g : log_level_1.LogLevel.silent; | ||
} | ||
if (colors === false) { | ||
colors = undefined; | ||
} | ||
else if (colors === true || process.env.APPLITOOLS_LOG_COLORS === 'true') { | ||
colors = { | ||
label: 'cyan', | ||
timestamp: 'greenBright', | ||
tags: 'blueBright', | ||
level: { | ||
info: ['bgBlueBright', 'black'], | ||
warn: ['bgYellowBright', 'black'], | ||
error: ['bgRedBright', 'white'], | ||
fatal: ['bgRed', 'white'], | ||
}, | ||
}; | ||
} | ||
if (utils.types.has(handler, 'type')) { | ||
if (handler.type === 'console') { | ||
handler = (0, handler_console_1.makeConsoleHandler)(); | ||
if (utils.types.has(options.handler, 'type')) { | ||
if (options.handler.type === 'console') { | ||
options.handler = (0, handler_console_1.makeConsoleHandler)(); | ||
} | ||
else if (handler.type === 'debug') { | ||
handler = (0, handler_debug_1.makeDebugHandler)({ label, ...handler }); | ||
else if (options.handler.type === 'debug') { | ||
options.handler = (0, handler_debug_1.makeDebugHandler)({ label: options.format.label, ...options.handler }); | ||
} | ||
else if (handler.type === 'file') { | ||
handler = (0, handler_file_1.makeFileHandler)(handler); | ||
colors = undefined; | ||
else if (options.handler.type === 'file') { | ||
options.handler = (0, handler_file_1.makeFileHandler)(options.handler); | ||
options.format.colors = false; | ||
} | ||
else if (handler.type === 'rolling file') { | ||
handler = (0, handler_rolling_file_1.makeRollingFileHandler)(handler); | ||
colors = undefined; | ||
else if (options.handler.type === 'rolling file') { | ||
options.handler = (0, handler_rolling_file_1.makeRollingFileHandler)(options.handler); | ||
options.format.colors = false; | ||
} | ||
} | ||
else if (!utils.types.isFunction(handler, 'log')) { | ||
else if (!utils.types.isFunction(options.handler, 'log')) { | ||
throw new Error('Handler have to implement `log` method or use one of the built-in handler names under `type` prop'); | ||
} | ||
const consoleHandler = console ? (utils.types.isObject(console) ? console : (0, handler_console_1.makeConsoleHandler)()) : handler; | ||
return { | ||
options.console = options.console | ||
? utils.types.isObject(options.console) | ||
? options.console | ||
: (0, handler_console_1.makeConsoleHandler)() | ||
: options.handler; | ||
const logger = { | ||
isLogger: true, | ||
console: (0, printer_1.makePrinter)({ handler: consoleHandler, format, level: log_level_1.LogLevel.all, prelude: false }), | ||
...(0, printer_1.makePrinter)({ handler, format, label, tags, timestamp, level, colors: colors }), | ||
tag(name, value) { | ||
tags !== null && tags !== void 0 ? tags : (tags = {}); | ||
tags[name] = value; | ||
}, | ||
extend(options) { | ||
var _a, _b; | ||
if (options) { | ||
if (!options.colors) { | ||
options.colors = (_b = (_a = options === null || options === void 0 ? void 0 : options.colors) !== null && _a !== void 0 ? _a : colors) !== null && _b !== void 0 ? _b : false; | ||
} | ||
else if (colors) { | ||
options.colors = { ...colors, ...options === null || options === void 0 ? void 0 : options.colors }; | ||
} | ||
options, | ||
console: (0, printer_1.makePrinter)({ handler: options.console, level: log_level_1.LogLevel.all, format: { ...options.format, prelude: false } }), | ||
...(0, printer_1.makePrinter)({ handler: options.handler, level: options.level, format: options.format }), | ||
extend(optionsOrLogger, extraOptions) { | ||
const extendOptions = [options]; | ||
if (utils.types.has(optionsOrLogger, 'isLogger')) { | ||
if (optionsOrLogger !== logger) | ||
extendOptions.push(optionsOrLogger.options); | ||
if (extraOptions) | ||
extendOptions.push({ console: extraOptions.console, level: extraOptions.level, format: extraOptions }); | ||
} | ||
return makeLogger({ | ||
format, | ||
label, | ||
tags, | ||
timestamp, | ||
level, | ||
console: consoleHandler, | ||
...options, | ||
handler: forceInitHandler ? undefined : handler, | ||
extended: true, | ||
}); | ||
else if (optionsOrLogger) { | ||
extendOptions.push({ console: optionsOrLogger.console, level: optionsOrLogger.level, format: optionsOrLogger }); | ||
} | ||
const extendedOptions = mergeOptions(...extendOptions); | ||
if (forceInitHandler && extendedOptions.handler === options.handler) { | ||
extendedOptions.handler = undefined; | ||
} | ||
return makeLogger(extendedOptions); | ||
}, | ||
colorize: colorize_1.colorize, | ||
open() { | ||
var _a, _b; | ||
if (!extended) | ||
(_b = (_a = handler).open) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
if (!options.extended) | ||
(_b = (_a = options.handler).open) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
}, | ||
close() { | ||
var _a, _b; | ||
if (!extended) | ||
(_b = (_a = handler).close) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
if (!options.extended) | ||
(_b = (_a = options.handler).close) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
}, | ||
}; | ||
return logger; | ||
} | ||
exports.makeLogger = makeLogger; | ||
function mergeLoggers(...loggers) { | ||
if (loggers.length === 1) | ||
return loggers[0]; | ||
const mergedOptions = mergeOptions(...loggers.map(logger => { | ||
var _a; | ||
return { | ||
...logger.options, | ||
format: { | ||
...logger.options.format, | ||
tags: ((_a = logger.options.format) === null || _a === void 0 ? void 0 : _a.tags) && | ||
(utils.types.isArray(logger.options.format.tags[0]) | ||
? logger.options.format.tags | ||
: [logger.options.format.tags]), | ||
}, | ||
}; | ||
})); | ||
return makeLogger(mergedOptions); | ||
} | ||
exports.mergeLoggers = mergeLoggers; | ||
function mergeOptions(...options) { | ||
return options.reduce((baseOptions, currentOptions) => { | ||
var _a, _b, _c, _d; | ||
return { | ||
...baseOptions, | ||
...currentOptions, | ||
format: { | ||
...baseOptions.format, | ||
...currentOptions.format, | ||
tags: mergeTags((_b = (_a = baseOptions.format) === null || _a === void 0 ? void 0 : _a.tags) !== null && _b !== void 0 ? _b : [], (_d = (_c = currentOptions.format) === null || _c === void 0 ? void 0 : _c.tags) !== null && _d !== void 0 ? _d : []), | ||
}, | ||
}; | ||
}, {}); | ||
} | ||
function mergeTags(...tags) { | ||
return tags.reduce((baseTags, currentTags) => { | ||
if (utils.types.isArray(baseTags[0])) { | ||
let mergedTags = baseTags.map(baseTags => [...baseTags]); | ||
if (utils.types.isArray(currentTags[0])) { | ||
mergedTags.push(...currentTags.map(currentTags => [...currentTags])); | ||
} | ||
else { | ||
mergedTags = mergedTags.map(mergedTags => [ | ||
...new Set([...mergedTags, ...currentTags]), | ||
]); | ||
} | ||
return mergedTags; | ||
} | ||
else { | ||
return utils.types.isArray(currentTags[0]) | ||
? [...baseTags, ...currentTags] | ||
: [...new Set([...baseTags, ...currentTags])]; | ||
} | ||
}, []); | ||
} |
@@ -5,3 +5,5 @@ "use strict"; | ||
const log_level_1 = require("./log-level"); | ||
function makePrinter({ handler, format, level, ...defaults }) { | ||
function makePrinter({ handler, level, format }) { | ||
var _a; | ||
const formatter = (_a = format === null || format === void 0 ? void 0 : format.formatter) !== null && _a !== void 0 ? _a : ((chunks, options) => ({ chunks, options, isRaw: true })); | ||
return { debug, log, info: log, warn, error, fatal, verbose: log }; | ||
@@ -11,4 +13,4 @@ function debug(...messages) { | ||
return; | ||
const options = { ...defaults, level: 'debug' }; | ||
handler.log(format(messages, options)); | ||
const options = { ...format, level: 'debug' }; | ||
handler.log(formatter(messages, options)); | ||
} | ||
@@ -18,4 +20,4 @@ function log(...messages) { | ||
return; | ||
const options = { ...defaults, level: 'info' }; | ||
handler.log(format(messages, options)); | ||
const options = { ...format, level: 'info' }; | ||
handler.log(formatter(messages, options)); | ||
} | ||
@@ -25,7 +27,7 @@ function warn(...messages) { | ||
return; | ||
const options = { ...defaults, level: 'warn' }; | ||
const options = { ...format, level: 'warn' }; | ||
if (handler.warn) | ||
handler.warn(format(messages, options)); | ||
handler.warn(formatter(messages, options)); | ||
else | ||
handler.log(format(messages, options)); | ||
handler.log(formatter(messages, options)); | ||
} | ||
@@ -35,7 +37,7 @@ function error(...messages) { | ||
return; | ||
const options = { ...defaults, level: 'error' }; | ||
const options = { ...format, level: 'error' }; | ||
if (handler.error) | ||
handler.error(format(messages, options)); | ||
handler.error(formatter(messages, options)); | ||
else | ||
handler.log(format(messages, options)); | ||
handler.log(formatter(messages, options)); | ||
} | ||
@@ -45,11 +47,11 @@ function fatal(...messages) { | ||
return; | ||
const options = { ...defaults, level: 'fatal' }; | ||
const options = { ...format, level: 'fatal' }; | ||
if (handler.fatal) | ||
handler.fatal(format(messages, options)); | ||
handler.fatal(formatter(messages, options)); | ||
else if (handler.error) | ||
handler.error(format(messages, options)); | ||
handler.error(formatter(messages, options)); | ||
else | ||
handler.log(format(messages, options)); | ||
handler.log(formatter(messages, options)); | ||
} | ||
} | ||
exports.makePrinter = makePrinter; |
{ | ||
"name": "@applitools/logger", | ||
"version": "1.1.52", | ||
"version": "1.1.53", | ||
"description": "Applitools logger", | ||
@@ -31,3 +31,3 @@ "keywords": [ | ||
"types": "./types/index.d.ts", | ||
"browser": "./dist/browser.js", | ||
"browser": "./dist/index-browser.js", | ||
"default": "./dist/index.js" | ||
@@ -40,3 +40,3 @@ }, | ||
"browser": { | ||
".": "./dist/browser.js", | ||
".": "./dist/index-browser.js", | ||
"./dist/handler-file.js": false, | ||
@@ -62,3 +62,3 @@ "./dist/handler-rolling-file.js": false, | ||
"dependencies": { | ||
"@applitools/utils": "1.3.35", | ||
"@applitools/utils": "1.3.36", | ||
"chalk": "4.1.2", | ||
@@ -65,0 +65,0 @@ "debug": "4.3.3" |
@@ -1,5 +0,2 @@ | ||
import { type Handler } from './handler'; | ||
export type ConsoleHandler = { | ||
type: 'console'; | ||
}; | ||
import type { Handler } from './types'; | ||
export declare function makeConsoleHandler(): Handler; |
@@ -1,6 +0,2 @@ | ||
import { type Handler } from './handler'; | ||
export type DebugHandler = { | ||
type: 'debug'; | ||
label?: string; | ||
}; | ||
import type { Handler, DebugHandler } from './types'; | ||
export declare function makeDebugHandler({ label }: Omit<DebugHandler, 'type'>): Handler; |
@@ -1,7 +0,2 @@ | ||
import { type Handler } from './handler'; | ||
export type FileHandler = { | ||
type: 'file'; | ||
filename?: string; | ||
append?: boolean; | ||
}; | ||
import type { Handler, FileHandler } from './types'; | ||
export declare function makeFileHandler({ filename, append, }?: Omit<FileHandler, 'type'>): Handler; |
@@ -1,9 +0,2 @@ | ||
import { type Handler } from './handler'; | ||
export type RollingFileHandler = { | ||
type: 'rolling file'; | ||
dirname?: string; | ||
name?: string; | ||
maxFileLength?: number; | ||
maxFileNumber?: number; | ||
}; | ||
import type { Handler, RollingFileHandler } from './types'; | ||
export declare function makeRollingFileHandler({ dirname, name, maxFileLength, maxFileNumber, }?: Omit<RollingFileHandler, 'type'>): Handler; |
@@ -1,6 +0,8 @@ | ||
export { type Logger, type LoggerOptions, type ExtendOptions, makeLogger } from './logger'; | ||
export { type Handler as CustomHandler } from './handler'; | ||
export { type ConsoleHandler, makeConsoleHandler } from './handler-console'; | ||
export { type FileHandler, makeFileHandler } from './handler-file'; | ||
export { type RollingFileHandler, makeRollingFileHandler } from './handler-rolling-file'; | ||
export { type FormatOptions, format } from './format'; | ||
export type * from './types'; | ||
export type { Handler as CustomHandler } from './types'; | ||
export * from './formatter'; | ||
export * from './handler-console'; | ||
export * from './handler-debug'; | ||
export * from './handler-file'; | ||
export * from './handler-rolling-file'; | ||
export * from './logger'; |
@@ -1,2 +0,1 @@ | ||
export type LogLevelName = keyof typeof LogLevel; | ||
export declare enum LogLevel { | ||
@@ -3,0 +2,0 @@ silent = 0, |
@@ -1,26 +0,5 @@ | ||
import { type Handler } from './handler'; | ||
import { type ConsoleHandler } from './handler-console'; | ||
import { type FileHandler } from './handler-file'; | ||
import { type RollingFileHandler } from './handler-rolling-file'; | ||
import { type DebugHandler } from './handler-debug'; | ||
import { type Printer, type PrinterOptions } from './printer'; | ||
import { type LogLevelName } from './log-level'; | ||
import { type ColoringOptions } from './format'; | ||
export type LoggerOptions = Omit<Partial<PrinterOptions>, 'handler' | 'level' | 'colors'> & { | ||
handler?: ConsoleHandler | FileHandler | RollingFileHandler | DebugHandler | Handler; | ||
level?: LogLevelName | number; | ||
colors?: boolean | ColoringOptions; | ||
console?: boolean | Handler; | ||
}; | ||
export type ExtendOptions = Omit<LoggerOptions, 'handler'>; | ||
export interface Logger extends Printer { | ||
isLogger: true; | ||
console: Printer; | ||
tag(name: string, value: any): void; | ||
extend(options?: ExtendOptions): Logger; | ||
open(): void; | ||
close(): void; | ||
} | ||
export declare function makeLogger({ handler, label, tags, timestamp, level, colors, format, console, extended, }?: LoggerOptions & { | ||
import type { Logger, LoggerOptions } from './types'; | ||
export declare function makeLogger({ logger: baseLogger, ...options }?: LoggerOptions & { | ||
extended?: boolean; | ||
}): Logger; | ||
export declare function mergeLoggers(...loggers: Logger[]): Logger; |
@@ -1,23 +0,2 @@ | ||
import { type Handler } from './handler'; | ||
import { type ColoringOptions } from './format'; | ||
import { format } from './format'; | ||
export type PrinterOptions = { | ||
handler: Handler; | ||
format: typeof format; | ||
prelude?: boolean; | ||
label?: string; | ||
tags?: Record<string, unknown>; | ||
timestamp?: boolean; | ||
level: number; | ||
colors?: ColoringOptions; | ||
}; | ||
export interface Printer { | ||
debug(...messages: any[]): void; | ||
log(...messages: any[]): void; | ||
info(...messages: any[]): void; | ||
warn(...messages: any[]): void; | ||
error(...messages: any[]): void; | ||
fatal(...messages: any[]): void; | ||
verbose(...messages: any[]): void; | ||
} | ||
export declare function makePrinter({ handler, format, level, ...defaults }: PrinterOptions): Printer; | ||
import type { Printer, PrinterOptions } from './types'; | ||
export declare function makePrinter({ handler, level, format }: PrinterOptions): Printer; |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Environment variable access
Supply chain riskPackage accesses environment variables, which may be a sign of credential stuffing or data theft.
Found 1 instance in 1 package
47505
27
735
12
1
+ Added@applitools/utils@1.3.36(transitive)
- Removed@applitools/utils@1.3.35(transitive)
Updated@applitools/utils@1.3.36