{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import { createLogger as createWinstonLogger, Logger as WinstonLogger, format, transports } from \"winston\";\r\nimport {\r\n    Color, isColorSupported,\r\n    black, bgBlack, blackBright, bgBlackBright, dim,\r\n    red, bgRed, redBright, bgRedBright, bold,\r\n    green, bgGreen, greenBright, bgGreenBright, hidden,\r\n    yellow, bgYellow, yellowBright, bgYellowBright, italic,\r\n    blue, bgBlue, blueBright, bgBlueBright, underline,\r\n    magenta, bgMagenta, magentaBright, bgMagentaBright, strikethrough,\r\n    cyan, bgCyan, cyanBright, bgCyanBright, reset,\r\n    white, bgWhite, whiteBright, bgWhiteBright, gray\r\n} from \"colorette\";\r\nimport { LoggerOptions, TypedLogger } from \"./typings\";\r\nimport { table, createStream as createTableStream, TableUserConfig, StreamUserConfig } from \"table\";\r\nimport progress from \"progress\";\r\nimport moment, { MomentInput } from \"moment\";\r\n\r\nconst stripAnsi = (str: string) => str.replace(/[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-nq-uy=><~]))/g, \"\");\r\n\r\nexport const colorMap = {\r\n    b: black,\r\n    bb: bgBlack,\r\n    bbr: blackBright,\r\n    bbbr: bgBlackBright,\r\n    r: red,\r\n    br: bgRed,\r\n    rbr: redBright,\r\n    brbr: bgRedBright,\r\n    g: green,\r\n    bg: bgGreen,\r\n    gbr: greenBright,\r\n    bgbr: bgGreenBright,\r\n    y: yellow,\r\n    by: bgYellow,\r\n    ybr: yellowBright,\r\n    bybr: bgYellowBright,\r\n    bl: blue,\r\n    bbl: bgBlue,\r\n    blbr: blueBright,\r\n    bblbr: bgBlueBright,\r\n    m: magenta,\r\n    bm: bgMagenta,\r\n    mbr: magentaBright,\r\n    bmbr: bgMagentaBright,\r\n    c: cyan,\r\n    bc: bgCyan,\r\n    cbr: cyanBright,\r\n    bcbr: bgCyanBright,\r\n    w: white,\r\n    bw: bgWhite,\r\n    wbr: whiteBright,\r\n    bwbr: bgWhiteBright,\r\n    gr: gray,\r\n    black: black,\r\n    bgBlack: bgBlack,\r\n    blackBright: blackBright,\r\n    bgBlackBright: bgBlackBright,\r\n    red: red,\r\n    bgRed: bgRed,\r\n    redBright: redBright,\r\n    bgRedBright: bgRedBright,\r\n    green: green,\r\n    bgGreen: bgGreen,\r\n    greenBright: greenBright,\r\n    bgGreenBright: bgGreenBright,\r\n    yellow: yellow,\r\n    bgYellow: bgYellow,\r\n    yellowBright: yellowBright,\r\n    bgYellowBright: bgYellowBright,\r\n    blue: blue,\r\n    bgBlue: bgBlue,\r\n    blueBright: blueBright,\r\n    bgBlueBright: bgBlueBright,\r\n    magenta: magenta,\r\n    bgMagenta: bgMagenta,\r\n    magentaBright: magentaBright,\r\n    bgMagentaBright: bgMagentaBright,\r\n    cyan: cyan,\r\n    bgCyan: bgCyan,\r\n    cyanBright: cyanBright,\r\n    bgCyanBright: bgCyanBright,\r\n    white: white,\r\n    bgWhite: bgWhite,\r\n    whiteBright: whiteBright,\r\n    bgWhiteBright: bgWhiteBright,\r\n    gray: gray\r\n}\r\n\r\nexport const modifiersMap = {\r\n    d: dim,\r\n    h: hidden,\r\n    i: italic,\r\n    u: underline,\r\n    s: strikethrough,\r\n    b: bold,\r\n    r: reset,\r\n    dim: dim,\r\n    hidden: hidden,\r\n    italic: italic,\r\n    underline: underline,\r\n    strikethrough: strikethrough,\r\n    bold: bold,\r\n    reset: reset\r\n}\r\n\r\nexport const argumentRegex = new RegExp(`%(?<color>(?:${Object.keys(colorMap).sort((a,b) => b.length - a.length).join(\"|\")}))?(?:_(?<modifiers>(?:${Object.keys(modifiersMap).sort((a,b) => b.length - a.length).join(\"|\")})(,(?:${Object.keys(modifiersMap).sort((a,b) => b.length - a.length).join(\"|\")}))*))?`, \"ig\")\r\n\r\nexport default function createLogger<T extends string[] = [\"error\", \"warn\", \"debug\", \"log\", \"info\"]>(options?: LoggerOptions<T>) {\r\n    return new Logger(options) as TypedLogger<T>;\r\n}\r\n\r\nexport class Logger<T extends string[] = [\"error\", \"warn\", \"debug\", \"log\", \"info\"]> {\r\n    private colorEnabled = true;\r\n    private options: LoggerOptions<T>;\r\n    public logger: WinstonLogger;\r\n    get isColorEnabled() {\r\n        return this.colorEnabled;\r\n    }\r\n\r\n    constructor(options?: LoggerOptions<T>) {\r\n        this.options = options ?? {};\r\n        this.colorEnabled = process.env.NO_COLOR && process.env.NO_COLOR !== \"\" ? false : isColorSupported ? !(this.options.disableColors ?? false) : false;\r\n        if (!this.options.levels) { \r\n            this.options.log ??= { debug: () => process.env.NODE_ENV === \"debug\" } as Record<T[number], boolean | (() => boolean)>;\r\n            this.options.log[\"debug\"] ??= () => process.env.NODE_ENV === \"debug\";\r\n        }\r\n        this.options.levels ??= Object.keys(this.DEFAULT_LEVELS) as T;\r\n        this.options.colors ??= this.DEFAULT_COLORS as Record<T[number], Color>;\r\n        this.options.transports ??= this.DEFAULT_TRANSPORTS;\r\n        this.logger = createWinstonLogger({\r\n            levels: this.options.levels.reduce((acc, level, index) => ({ ...acc, [level === \"log\" ? \"syslog\" : level]: index }), {} as Record<T[number], number>),\r\n            transports: this.options.transports\r\n        });\r\n\r\n        const shouldLog = (b: boolean | (() => boolean)) => typeof b === \"function\" ? b() : b;\r\n        \r\n        for (const level of this.options.levels) {\r\n            this[level] = (this.options.handlers?.[level] ? ((message: any, ...args: any[]) => {\r\n                if (!shouldLog(this.options.log?.[level] ?? true)) return;\r\n                this.options.handlers?.[level](this.logger[level === \"log\" ? \"syslog\" : level], message, ...args);\r\n            }) : undefined) ?? ((message: any, ...args: any[]) => {\r\n                if (!shouldLog(this.options.log?.[level] ?? true)) return;\r\n                message = this.formatArgs(this.stringifyArg(message), args);\r\n                this.logger[level === \"log\" ? \"syslog\" : level]({\r\n                    message: message,\r\n                    rawMessage: stripAnsi(message)\r\n                });\r\n            })\r\n        }\r\n    }\r\n\r\n    private DEFAULT_LEVELS = {\r\n        error: 0,\r\n        warn: 1,\r\n        debug: 2,\r\n        log: 3,\r\n        info: 4\r\n    }\r\n\r\n    private DEFAULT_COLORS = {\r\n        error: red,\r\n        warn: yellow,\r\n        debug: magenta,\r\n        log: blue,\r\n        info: green\r\n    }\r\n    \r\n    private DEFAULT_FORMAT = format.combine(\r\n        format.timestamp(),\r\n        format.printf(({ timestamp, level, message }) => {\r\n            return `${this.color(gray, moment(timestamp as MomentInput).format(\"MM/DD/YYYY HH:mm:ss z\"))} ${this.color(this.DEFAULT_COLORS[level === \"syslog\" ? \"log\" : level], this.resolveLevel(level))}: ${message}`;\r\n        })\r\n    );\r\n    \r\n    private DEFAULT_FILEFORMAT = format.combine(\r\n        format.timestamp(),\r\n        format.printf(({ timestamp, level, rawMessage }) => {\r\n            return JSON.stringify({\r\n                timestamp,\r\n                level: level,\r\n                message: rawMessage\r\n            })\r\n        })\r\n    );\r\n\r\n    private DEFAULT_TRANSPORTS = [\r\n        new transports.Console({\r\n            format: this.DEFAULT_FORMAT\r\n        }),\r\n        new transports.File({ level: \"error\", format: this.DEFAULT_FILEFORMAT, filename: \"logs/errors.log\" })\r\n    ]\r\n\r\n    /**\r\n     * Documentation available [here](https://www.npmjs.com/package/table).\r\n     */\r\n    table(data: unknown[][], config?: TableUserConfig) {\r\n        console.log(table(data, config))\r\n    }\r\n\r\n    /**\r\n     * Documentation available [here](https://www.npmjs.com/package/table).\r\n     */\r\n    createTableStream(config: StreamUserConfig) {\r\n        return createTableStream(config)\r\n    }\r\n\r\n    /**\r\n     * Documentation available [here](https://www.npmjs.com/package/progress).\r\n     */\r\n    progress(format: string, total: number) {\r\n        return new progress(format, total)\r\n    }\r\n\r\n    color(color: Color, text: string) {\r\n        return this.colorEnabled ? color(text) : text;\r\n    }\r\n\r\n    resolveLevel(level: string) {\r\n        const longest = Math.max(...this.options.levels!.map(l => `[${l === \"syslog\" ? \"log\" : l}]`.length))\r\n        return `[${level === \"syslog\" ? \"log\" : level}]`.padEnd(longest, \" \")\r\n    }\r\n\r\n    stringifyArg(arg: any) {\r\n        if (arg instanceof Error) {\r\n            let msg = `${arg.name}: ${arg.message}`\r\n            if (arg.stack) msg += `\\n${arg.stack.replace(`${arg.toString()}\\n`, \"\")}`\r\n            if (arg.cause) msg += `\\nCaused by: ${this.stringifyArg(arg.cause)}`\r\n            return msg;\r\n        }\r\n\r\n        if (typeof arg === \"object\") {\r\n            return JSON.stringify(arg, null, 4);\r\n        }\r\n\r\n        if (Array.isArray(arg)) {\r\n            return arg.map(a => this.stringifyArg(a)).join(\", \");\r\n        }\r\n\r\n        return arg.toString();\r\n    }\r\n\r\n    formatArgs(message: string, args: any[]) {\r\n        const matchedArguments = message.match(argumentRegex);\r\n        if (!matchedArguments) return message;\r\n\r\n        for (const match of matchedArguments) {\r\n            argumentRegex.lastIndex = 0;\r\n            const { color, modifiers } = argumentRegex.exec(match)?.groups ?? {};\r\n            if (!color && !modifiers) continue;\r\n            const colorFn = colorMap[color as (keyof typeof colorMap)];\r\n            let text = this.stringifyArg(args.shift());\r\n            if (colorFn) text = this.color(colorFn, text);\r\n            if (modifiers) {\r\n                const modifierFns = modifiers.split(\",\").map(modifier => modifiersMap[modifier as (keyof typeof modifiersMap)]).filter((v,i,a) => a.indexOf(v) === i);\r\n                text = modifierFns.reduce((acc, modifier) => modifier(acc), text);\r\n            }\r\n            message = message.replace(match, text);\r\n        }\r\n\r\n        return message;\r\n    }\r\n\r\n    [Symbol.for('nodejs.util.inspect.custom')]() {\r\n        return `Logger <Color ${this.colorEnabled ? \"enabled\" : \"disabled\"}>`\r\n    }\r\n}\r\n\r\nexport * from \"./typings\";"],"mappings":"AAAA,OAAS,gBAAgBA,GAA8C,UAAAC,EAAQ,cAAAC,MAAkB,UACjG,OACW,oBAAAC,GACP,SAAAC,EAAO,WAAAC,EAAS,eAAAC,EAAa,iBAAAC,EAAe,OAAAC,EAC5C,OAAAC,EAAK,SAAAC,EAAO,aAAAC,EAAW,eAAAC,EAAa,QAAAC,EACpC,SAAAC,EAAO,WAAAC,EAAS,eAAAC,EAAa,iBAAAC,EAAe,UAAAC,EAC5C,UAAAC,EAAQ,YAAAC,EAAU,gBAAAC,EAAc,kBAAAC,EAAgB,UAAAC,EAChD,QAAAC,EAAM,UAAAC,EAAQ,cAAAC,EAAY,gBAAAC,EAAc,aAAAC,EACxC,WAAAC,EAAS,aAAAC,EAAW,iBAAAC,EAAe,mBAAAC,EAAiB,iBAAAC,EACpD,QAAAC,EAAM,UAAAC,EAAQ,cAAAC,EAAY,gBAAAC,EAAc,SAAAC,EACxC,SAAAC,EAAO,WAAAC,EAAS,eAAAC,GAAa,iBAAAC,GAAe,QAAAC,MACzC,YAEP,OAAS,SAAAC,GAAO,gBAAgBC,OAA4D,QAC5F,OAAOC,OAAc,WACrB,OAAOC,OAA6B,SAEpC,IAAMC,GAAaC,GAAgBA,EAAI,QAAQ,6KAA8K,EAAE,EAElNC,GAAW,CACpB,EAAG9C,EACH,GAAIC,EACJ,IAAKC,EACL,KAAMC,EACN,EAAGE,EACH,GAAIC,EACJ,IAAKC,EACL,KAAMC,EACN,EAAGE,EACH,GAAIC,EACJ,IAAKC,EACL,KAAMC,EACN,EAAGE,EACH,GAAIC,EACJ,IAAKC,EACL,KAAMC,EACN,GAAIE,EACJ,IAAKC,EACL,KAAMC,EACN,MAAOC,EACP,EAAGE,EACH,GAAIC,EACJ,IAAKC,EACL,KAAMC,EACN,EAAGE,EACH,GAAIC,EACJ,IAAKC,EACL,KAAMC,EACN,EAAGE,EACH,GAAIC,EACJ,IAAKC,GACL,KAAMC,GACN,GAAIC,EACJ,MAAOvC,EACP,QAASC,EACT,YAAaC,EACb,cAAeC,EACf,IAAKE,EACL,MAAOC,EACP,UAAWC,EACX,YAAaC,EACb,MAAOE,EACP,QAASC,EACT,YAAaC,EACb,cAAeC,EACf,OAAQE,EACR,SAAUC,EACV,aAAcC,EACd,eAAgBC,EAChB,KAAME,EACN,OAAQC,EACR,WAAYC,EACZ,aAAcC,EACd,QAASE,EACT,UAAWC,EACX,cAAeC,EACf,gBAAiBC,EACjB,KAAME,EACN,OAAQC,EACR,WAAYC,EACZ,aAAcC,EACd,MAAOE,EACP,QAASC,EACT,YAAaC,GACb,cAAeC,GACf,KAAMC,CACV,EAEaQ,EAAe,CACxB,EAAG3C,EACH,EAAGU,EACH,EAAGK,EACH,EAAGK,EACH,EAAGK,EACH,EAAGpB,EACH,EAAGyB,EACH,IAAK9B,EACL,OAAQU,EACR,OAAQK,EACR,UAAWK,EACX,cAAeK,EACf,KAAMpB,EACN,MAAOyB,CACX,EAEac,EAAgB,IAAI,OAAO,gBAAgB,OAAO,KAAKF,EAAQ,EAAE,KAAK,CAACG,EAAEC,IAAMA,EAAE,OAASD,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,0BAA0B,OAAO,KAAKF,CAAY,EAAE,KAAK,CAACE,EAAEC,IAAMA,EAAE,OAASD,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,SAAS,OAAO,KAAKF,CAAY,EAAE,KAAK,CAACE,EAAEC,IAAMA,EAAE,OAASD,EAAE,MAAM,EAAE,KAAK,GAAG,CAAC,SAAU,IAAI,EAExS,SAARE,GAA8FC,EAA4B,CAC7H,OAAO,IAAIC,EAAOD,CAAO,CAC7B,CAEO,IAAMC,EAAN,KAA6E,CACxE,aAAe,GACf,QACD,OACP,IAAI,gBAAiB,CACjB,OAAO,KAAK,YAChB,CAEA,YAAYD,EAA4B,CACpC,KAAK,QAAUA,GAAW,CAAC,EAC3B,KAAK,aAAe,QAAQ,IAAI,UAAY,QAAQ,IAAI,WAAa,GAAK,GAAQrD,GAAmB,EAAE,KAAK,QAAQ,eAAiB,IAAS,GACzI,KAAK,QAAQ,SACd,KAAK,QAAQ,MAAQ,CAAE,MAAO,IAAM,QAAQ,IAAI,WAAa,OAAQ,EACrE,KAAK,QAAQ,IAAI,QAAa,IAAM,QAAQ,IAAI,WAAa,SAEjE,KAAK,QAAQ,SAAW,OAAO,KAAK,KAAK,cAAc,EACvD,KAAK,QAAQ,SAAW,KAAK,eAC7B,KAAK,QAAQ,aAAe,KAAK,mBACjC,KAAK,OAASH,GAAoB,CAC9B,OAAQ,KAAK,QAAQ,OAAO,OAAO,CAAC0D,EAAKC,EAAOC,KAAW,CAAE,GAAGF,EAAK,CAACC,IAAU,MAAQ,SAAWA,CAAK,EAAGC,CAAM,GAAI,CAAC,CAA8B,EACpJ,WAAY,KAAK,QAAQ,UAC7B,CAAC,EAED,IAAMC,EAAaP,GAAiC,OAAOA,GAAM,WAAaA,EAAE,EAAIA,EAEpF,QAAWK,KAAS,KAAK,QAAQ,OAC7B,KAAKA,CAAK,GAAK,KAAK,QAAQ,WAAWA,CAAK,EAAK,CAACG,KAAiBC,IAAgB,CAC1EF,EAAU,KAAK,QAAQ,MAAMF,CAAK,GAAK,EAAI,GAChD,KAAK,QAAQ,WAAWA,CAAK,EAAE,KAAK,OAAOA,IAAU,MAAQ,SAAWA,CAAK,EAAGG,EAAS,GAAGC,CAAI,CACpG,EAAK,UAAe,CAACD,KAAiBC,IAAgB,CAC7CF,EAAU,KAAK,QAAQ,MAAMF,CAAK,GAAK,EAAI,IAChDG,EAAU,KAAK,WAAW,KAAK,aAAaA,CAAO,EAAGC,CAAI,EAC1D,KAAK,OAAOJ,IAAU,MAAQ,SAAWA,CAAK,EAAE,CAC5C,QAASG,EACT,WAAYd,GAAUc,CAAO,CACjC,CAAC,EACL,EAER,CAEQ,eAAiB,CACrB,MAAO,EACP,KAAM,EACN,MAAO,EACP,IAAK,EACL,KAAM,CACV,EAEQ,eAAiB,CACrB,MAAOrD,EACP,KAAMU,EACN,MAAOU,EACP,IAAKL,EACL,KAAMV,CACV,EAEQ,eAAiBb,EAAO,QAC5BA,EAAO,UAAU,EACjBA,EAAO,OAAO,CAAC,CAAE,UAAA+D,EAAW,MAAAL,EAAO,QAAAG,CAAQ,IAChC,GAAG,KAAK,MAAMnB,EAAMI,GAAOiB,CAAwB,EAAE,OAAO,uBAAuB,CAAC,CAAC,IAAI,KAAK,MAAM,KAAK,eAAeL,IAAU,SAAW,MAAQA,CAAK,EAAG,KAAK,aAAaA,CAAK,CAAC,CAAC,KAAKG,CAAO,EAC5M,CACL,EAEQ,mBAAqB7D,EAAO,QAChCA,EAAO,UAAU,EACjBA,EAAO,OAAO,CAAC,CAAE,UAAA+D,EAAW,MAAAL,EAAO,WAAAM,CAAW,IACnC,KAAK,UAAU,CAClB,UAAAD,EACA,MAAOL,EACP,QAASM,CACb,CAAC,CACJ,CACL,EAEQ,mBAAqB,CACzB,IAAI/D,EAAW,QAAQ,CACnB,OAAQ,KAAK,cACjB,CAAC,EACD,IAAIA,EAAW,KAAK,CAAE,MAAO,QAAS,OAAQ,KAAK,mBAAoB,SAAU,iBAAkB,CAAC,CACxG,EAKA,MAAMgE,EAAmBC,EAA0B,CAC/C,QAAQ,IAAIvB,GAAMsB,EAAMC,CAAM,CAAC,CACnC,CAKA,kBAAkBA,EAA0B,CACxC,OAAOtB,GAAkBsB,CAAM,CACnC,CAKA,SAASlE,EAAgBmE,EAAe,CACpC,OAAO,IAAItB,GAAS7C,EAAQmE,CAAK,CACrC,CAEA,MAAMC,EAAcC,EAAc,CAC9B,OAAO,KAAK,aAAeD,EAAMC,CAAI,EAAIA,CAC7C,CAEA,aAAaX,EAAe,CACxB,IAAMY,EAAU,KAAK,IAAI,GAAG,KAAK,QAAQ,OAAQ,IAAIC,GAAK,IAAIA,IAAM,SAAW,MAAQA,CAAC,IAAI,MAAM,CAAC,EACnG,MAAO,IAAIb,IAAU,SAAW,MAAQA,CAAK,IAAI,OAAOY,EAAS,GAAG,CACxE,CAEA,aAAaE,EAAU,CACnB,GAAIA,aAAe,MAAO,CACtB,IAAIC,EAAM,GAAGD,EAAI,IAAI,KAAKA,EAAI,OAAO,GACrC,OAAIA,EAAI,QAAOC,GAAO;AAAA,EAAKD,EAAI,MAAM,QAAQ,GAAGA,EAAI,SAAS,CAAC;AAAA,EAAM,EAAE,CAAC,IACnEA,EAAI,QAAOC,GAAO;AAAA,aAAgB,KAAK,aAAaD,EAAI,KAAK,CAAC,IAC3DC,CACX,CAEA,OAAI,OAAOD,GAAQ,SACR,KAAK,UAAUA,EAAK,KAAM,CAAC,EAGlC,MAAM,QAAQA,CAAG,EACVA,EAAI,IAAIpB,GAAK,KAAK,aAAaA,CAAC,CAAC,EAAE,KAAK,IAAI,EAGhDoB,EAAI,SAAS,CACxB,CAEA,WAAWX,EAAiBC,EAAa,CACrC,IAAMY,EAAmBb,EAAQ,MAAMV,CAAa,EACpD,GAAI,CAACuB,EAAkB,OAAOb,EAE9B,QAAWc,KAASD,EAAkB,CAClCvB,EAAc,UAAY,EAC1B,GAAM,CAAE,MAAAiB,EAAO,UAAAQ,CAAU,EAAIzB,EAAc,KAAKwB,CAAK,GAAG,QAAU,CAAC,EACnE,GAAI,CAACP,GAAS,CAACQ,EAAW,SAC1B,IAAMC,EAAU5B,GAASmB,CAAgC,EACrDC,EAAO,KAAK,aAAaP,EAAK,MAAM,CAAC,EACrCe,IAASR,EAAO,KAAK,MAAMQ,EAASR,CAAI,GACxCO,IAEAP,EADoBO,EAAU,MAAM,GAAG,EAAE,IAAIE,GAAY5B,EAAa4B,CAAuC,CAAC,EAAE,OAAO,CAACC,EAAEC,EAAE5B,KAAMA,GAAE,QAAQ2B,CAAC,IAAMC,CAAC,EACjI,OAAO,CAACvB,EAAKqB,IAAaA,EAASrB,CAAG,EAAGY,CAAI,GAEpER,EAAUA,EAAQ,QAAQc,EAAON,CAAI,CACzC,CAEA,OAAOR,CACX,CAEA,CAAC,OAAO,IAAI,4BAA4B,CAAC,GAAI,CACzC,MAAO,iBAAiB,KAAK,aAAe,UAAY,UAAU,GACtE,CACJ","names":["createWinstonLogger","format","transports","isColorSupported","black","bgBlack","blackBright","bgBlackBright","dim","red","bgRed","redBright","bgRedBright","bold","green","bgGreen","greenBright","bgGreenBright","hidden","yellow","bgYellow","yellowBright","bgYellowBright","italic","blue","bgBlue","blueBright","bgBlueBright","underline","magenta","bgMagenta","magentaBright","bgMagentaBright","strikethrough","cyan","bgCyan","cyanBright","bgCyanBright","reset","white","bgWhite","whiteBright","bgWhiteBright","gray","table","createTableStream","progress","moment","stripAnsi","str","colorMap","modifiersMap","argumentRegex","a","b","createLogger","options","Logger","acc","level","index","shouldLog","message","args","timestamp","rawMessage","data","config","total","color","text","longest","l","arg","msg","matchedArguments","match","modifiers","colorFn","modifier","v","i"]}