Sign In

@sapphire/plugin-logger

Package Overview
Dependencies
Maintainers
3
Versions
899
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@sapphire/plugin-logger - npm Package Compare versions

Comparing version
4.1.0
to
4.1.1-next.6906681
+1
-1
dist/cjs/index.cjs

@@ -9,3 +9,3 @@ 'use strict';

// src/index.ts
var version = "4.1.0";
var version = "4.1.1-next.6906681";

@@ -12,0 +12,0 @@ exports.version = version;

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;AAkBO,IAAM,OAAkB,GAAA","file":"index.cjs","sourcesContent":["import type { LoggerOptions } from './lib/Logger';\n\nexport * from './lib/Logger';\nexport * from './lib/LoggerLevel';\nexport * from './lib/LoggerStyle';\nexport * from './lib/LoggerTimestamp';\n\ndeclare module '@sapphire/framework' {\n\texport interface ClientLoggerOptions extends LoggerOptions {}\n}\n\n/**\n * The [@sapphire/plugin-logger](https://github.com/sapphiredev/plugins/blob/main/packages/logger) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '4.1.0';\n"]}
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;AAkBO,IAAM,OAAA,GAAkB","file":"index.cjs","sourcesContent":["import type { LoggerOptions } from './lib/Logger';\n\nexport * from './lib/Logger';\nexport * from './lib/LoggerLevel';\nexport * from './lib/LoggerStyle';\nexport * from './lib/LoggerTimestamp';\n\ndeclare module '@sapphire/framework' {\n\texport interface ClientLoggerOptions extends LoggerOptions {}\n}\n\n/**\n * The [@sapphire/plugin-logger](https://github.com/sapphiredev/plugins/blob/main/packages/logger) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '4.1.1-next.6906681';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/Logger.ts"],"names":["BuiltinLogger","LogLevel","Console","isColorSupported","inspect","gray","magenta","cyan","yellow","red","bgRed","white","LoggerLevel"],"mappings":"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","file":"Logger.cjs","sourcesContent":["import { Logger as BuiltinLogger, LogLevel, type LogMethods } from '@sapphire/framework';\nimport { bgRed, cyan, gray, isColorSupported, magenta, red, white, yellow, type Color } from 'colorette';\nimport { Console } from 'console';\nimport { inspect, type InspectOptions } from 'util';\nimport { LoggerLevel, type LoggerLevelOptions } from './LoggerLevel';\n\n/**\n * The logger class.\n * @since 1.0.0\n */\nexport class Logger extends BuiltinLogger {\n\t/**\n\t * The console this writes to.\n\t * @since 1.0.0\n\t */\n\tpublic readonly console: Console;\n\n\t/**\n\t * The formats supported by the logger.\n\t * @since 1.0.0\n\t */\n\tpublic readonly formats: Map<LogLevel, LoggerLevel>;\n\n\t/**\n\t * The string `write` will join values by.\n\t * @since 1.0.0\n\t */\n\tpublic readonly join: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t */\n\tpublic readonly depth: number;\n\n\tpublic constructor(options: LoggerOptions = {}) {\n\t\tsuper(options.level ?? LogLevel.Info);\n\n\t\tthis.console = new Console(options.stdout ?? process.stdout, options.stderr ?? process.stderr);\n\t\tthis.formats = Logger.createFormatMap(options.format, options.defaultFormat);\n\t\tthis.join = options.join ?? ' ';\n\t\tthis.depth = options.depth ?? 0;\n\t}\n\n\t/**\n\t * Writes the log message given a level and the value(s).\n\t * @param level The log level.\n\t * @param values The values to log.\n\t */\n\tpublic override write(level: LogLevel, ...values: readonly unknown[]): void {\n\t\tif (level < this.level) return;\n\n\t\tconst method = this.levels.get(level) ?? 'log';\n\t\tconst formatter = this.formats.get(level) ?? this.formats.get(LogLevel.None)!;\n\n\t\tthis.console[method](formatter.run(this.preprocess(values)));\n\t}\n\n\t/**\n\t * Pre-processes an array of values.\n\t * @since 1.0.0\n\t * @param values The values to pre-process.\n\t */\n\tprotected preprocess(values: readonly unknown[]) {\n\t\tconst inspectOptions: InspectOptions = { colors: isColorSupported, depth: this.depth };\n\t\treturn values.map((value) => (typeof value === 'string' ? value : inspect(value, inspectOptions))).join(this.join);\n\t}\n\n\tprivate get levels() {\n\t\treturn Reflect.get(BuiltinLogger, 'levels') as Map<LogLevel, LogMethods>;\n\t}\n\n\t/**\n\t * Gets whether or not colorette is enabled.\n\t * @since 1.0.0\n\t */\n\tpublic static get stylize() {\n\t\treturn isColorSupported;\n\t}\n\n\tprivate static createFormatMap(options: LoggerFormatOptions = {}, defaults: LoggerLevelOptions = options.none ?? {}) {\n\t\treturn new Map<LogLevel, LoggerLevel>([\n\t\t\t[LogLevel.Trace, Logger.ensureDefaultLevel(options.trace, defaults, gray, 'TRACE')],\n\t\t\t[LogLevel.Debug, Logger.ensureDefaultLevel(options.debug, defaults, magenta, 'DEBUG')],\n\t\t\t[LogLevel.Info, Logger.ensureDefaultLevel(options.info, defaults, cyan, 'INFO')],\n\t\t\t[LogLevel.Warn, Logger.ensureDefaultLevel(options.warn, defaults, yellow, 'WARN')],\n\t\t\t[LogLevel.Error, Logger.ensureDefaultLevel(options.error, defaults, red, 'ERROR')],\n\t\t\t[LogLevel.Fatal, Logger.ensureDefaultLevel(options.fatal, defaults, bgRed, 'FATAL')],\n\t\t\t[LogLevel.None, Logger.ensureDefaultLevel(options.none, defaults, white, '')]\n\t\t]);\n\t}\n\n\tprivate static ensureDefaultLevel(options: LoggerLevelOptions | undefined, defaults: LoggerLevelOptions, color: Color, name: string) {\n\t\tif (options) return new LoggerLevel(options);\n\t\treturn new LoggerLevel({\n\t\t\t...defaults,\n\t\t\ttimestamp: defaults.timestamp === null ? null : { ...(defaults.timestamp ?? {}), color },\n\t\t\tinfix: name.length ? `${color(name.padEnd(5, ' '))} - ` : ''\n\t\t});\n\t}\n}\n\n/**\n * The logger options.\n * @since 1.0.0\n */\nexport interface LoggerOptions {\n\t/**\n\t * A writable stream for the output logs.\n\t * @since 1.0.0\n\t * @default process.stdout\n\t */\n\tstdout?: NodeJS.WritableStream;\n\n\t/**\n\t * A writable stream for the error logs.\n\t * @since 1.0.0\n\t * @default process.stderr\n\t */\n\tstderr?: NodeJS.WritableStream;\n\n\t/**\n\t * The default options used to fill all the possible values for {@link LoggerOptions.format}.\n\t * @since 1.0.0\n\t * @default options.format.none ?? {}\n\t */\n\tdefaultFormat?: LoggerLevelOptions;\n\n\t/**\n\t * The options for each log level. LogLevel.None serves to set the default for all keys, where only\n\t * {@link LoggerTimestampOptions.timestamp} and {@link LoggerLevelOptions.prefix} would be overridden.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\tformat?: LoggerFormatOptions;\n\n\t/**\n\t * The minimum log level.\n\t * @since 1.0.0\n\t * @default LogLevel.Info\n\t */\n\tlevel?: LogLevel;\n\n\t/**\n\t * The string that joins different messages.\n\t * @since 1.0.0\n\t * @default ' '\n\t */\n\tjoin?: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t * @default 0\n\t */\n\tdepth?: number;\n}\n\n/**\n * The logger format options.\n * @since 1.0.0\n */\nexport interface LoggerFormatOptions {\n\t/**\n\t * The logger options for the lowest log level, used when calling {@link ILogger.trace}.\n\t * @since 1.0.0\n\t */\n\ttrace?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the debug level, used when calling {@link ILogger.debug}.\n\t * @since 1.0.0\n\t */\n\tdebug?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the info level, used when calling {@link ILogger.info}.\n\t * @since 1.0.0\n\t */\n\tinfo?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the warning level, used when calling {@link ILogger.warn}.\n\t * @since 1.0.0\n\t */\n\twarn?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the error level, used when calling {@link ILogger.error}.\n\t * @since 1.0.0\n\t */\n\terror?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the critical level, used when calling {@link ILogger.fatal}.\n\t * @since 1.0.0\n\t */\n\tfatal?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for an unknown or uncategorised level.\n\t * @since 1.0.0\n\t */\n\tnone?: LoggerLevelOptions;\n}\n"]}
{"version":3,"sources":["../../../src/lib/Logger.ts"],"names":["BuiltinLogger","LogLevel","Console","isColorSupported","inspect","gray","magenta","cyan","yellow","red","bgRed","white","LoggerLevel"],"mappings":"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","file":"Logger.cjs","sourcesContent":["import { Logger as BuiltinLogger, LogLevel, type LogMethods } from '@sapphire/framework';\nimport { bgRed, cyan, gray, isColorSupported, magenta, red, white, yellow, type Color } from 'colorette';\nimport { Console } from 'console';\nimport { inspect, type InspectOptions } from 'util';\nimport { LoggerLevel, type LoggerLevelOptions } from './LoggerLevel';\n\n/**\n * The logger class.\n * @since 1.0.0\n */\nexport class Logger extends BuiltinLogger {\n\t/**\n\t * The console this writes to.\n\t * @since 1.0.0\n\t */\n\tpublic readonly console: Console;\n\n\t/**\n\t * The formats supported by the logger.\n\t * @since 1.0.0\n\t */\n\tpublic readonly formats: Map<LogLevel, LoggerLevel>;\n\n\t/**\n\t * The string `write` will join values by.\n\t * @since 1.0.0\n\t */\n\tpublic readonly join: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t */\n\tpublic readonly depth: number;\n\n\tpublic constructor(options: LoggerOptions = {}) {\n\t\tsuper(options.level ?? LogLevel.Info);\n\n\t\tthis.console = new Console(options.stdout ?? process.stdout, options.stderr ?? process.stderr);\n\t\tthis.formats = Logger.createFormatMap(options.format, options.defaultFormat);\n\t\tthis.join = options.join ?? ' ';\n\t\tthis.depth = options.depth ?? 0;\n\t}\n\n\t/**\n\t * Writes the log message given a level and the value(s).\n\t * @param level The log level.\n\t * @param values The values to log.\n\t */\n\tpublic override write(level: LogLevel, ...values: readonly unknown[]): void {\n\t\tif (level < this.level) return;\n\n\t\tconst method = this.levels.get(level) ?? 'log';\n\t\tconst formatter = this.formats.get(level) ?? this.formats.get(LogLevel.None)!;\n\n\t\tthis.console[method](formatter.run(this.preprocess(values)));\n\t}\n\n\t/**\n\t * Pre-processes an array of values.\n\t * @since 1.0.0\n\t * @param values The values to pre-process.\n\t */\n\tprotected preprocess(values: readonly unknown[]) {\n\t\tconst inspectOptions: InspectOptions = { colors: isColorSupported, depth: this.depth };\n\t\treturn values.map((value) => (typeof value === 'string' ? value : inspect(value, inspectOptions))).join(this.join);\n\t}\n\n\tprivate get levels() {\n\t\treturn Reflect.get(BuiltinLogger, 'levels') as Map<LogLevel, LogMethods>;\n\t}\n\n\t/**\n\t * Gets whether or not colorette is enabled.\n\t * @since 1.0.0\n\t */\n\tpublic static get stylize() {\n\t\treturn isColorSupported;\n\t}\n\n\tprivate static createFormatMap(options: LoggerFormatOptions = {}, defaults: LoggerLevelOptions = options.none ?? {}) {\n\t\treturn new Map<LogLevel, LoggerLevel>([\n\t\t\t[LogLevel.Trace, Logger.ensureDefaultLevel(options.trace, defaults, gray, 'TRACE')],\n\t\t\t[LogLevel.Debug, Logger.ensureDefaultLevel(options.debug, defaults, magenta, 'DEBUG')],\n\t\t\t[LogLevel.Info, Logger.ensureDefaultLevel(options.info, defaults, cyan, 'INFO')],\n\t\t\t[LogLevel.Warn, Logger.ensureDefaultLevel(options.warn, defaults, yellow, 'WARN')],\n\t\t\t[LogLevel.Error, Logger.ensureDefaultLevel(options.error, defaults, red, 'ERROR')],\n\t\t\t[LogLevel.Fatal, Logger.ensureDefaultLevel(options.fatal, defaults, bgRed, 'FATAL')],\n\t\t\t[LogLevel.None, Logger.ensureDefaultLevel(options.none, defaults, white, '')]\n\t\t]);\n\t}\n\n\tprivate static ensureDefaultLevel(options: LoggerLevelOptions | undefined, defaults: LoggerLevelOptions, color: Color, name: string) {\n\t\tif (options) return new LoggerLevel(options);\n\t\treturn new LoggerLevel({\n\t\t\t...defaults,\n\t\t\ttimestamp: defaults.timestamp === null ? null : { ...(defaults.timestamp ?? {}), color },\n\t\t\tinfix: name.length ? `${color(name.padEnd(5, ' '))} - ` : ''\n\t\t});\n\t}\n}\n\n/**\n * The logger options.\n * @since 1.0.0\n */\nexport interface LoggerOptions {\n\t/**\n\t * A writable stream for the output logs.\n\t * @since 1.0.0\n\t * @default process.stdout\n\t */\n\tstdout?: NodeJS.WritableStream;\n\n\t/**\n\t * A writable stream for the error logs.\n\t * @since 1.0.0\n\t * @default process.stderr\n\t */\n\tstderr?: NodeJS.WritableStream;\n\n\t/**\n\t * The default options used to fill all the possible values for {@link LoggerOptions.format}.\n\t * @since 1.0.0\n\t * @default options.format.none ?? {}\n\t */\n\tdefaultFormat?: LoggerLevelOptions;\n\n\t/**\n\t * The options for each log level. LogLevel.None serves to set the default for all keys, where only\n\t * {@link LoggerTimestampOptions.timestamp} and {@link LoggerLevelOptions.prefix} would be overridden.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\tformat?: LoggerFormatOptions;\n\n\t/**\n\t * The minimum log level.\n\t * @since 1.0.0\n\t * @default LogLevel.Info\n\t */\n\tlevel?: LogLevel;\n\n\t/**\n\t * The string that joins different messages.\n\t * @since 1.0.0\n\t * @default ' '\n\t */\n\tjoin?: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t * @default 0\n\t */\n\tdepth?: number;\n}\n\n/**\n * The logger format options.\n * @since 1.0.0\n */\nexport interface LoggerFormatOptions {\n\t/**\n\t * The logger options for the lowest log level, used when calling {@link ILogger.trace}.\n\t * @since 1.0.0\n\t */\n\ttrace?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the debug level, used when calling {@link ILogger.debug}.\n\t * @since 1.0.0\n\t */\n\tdebug?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the info level, used when calling {@link ILogger.info}.\n\t * @since 1.0.0\n\t */\n\tinfo?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the warning level, used when calling {@link ILogger.warn}.\n\t * @since 1.0.0\n\t */\n\twarn?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the error level, used when calling {@link ILogger.error}.\n\t * @since 1.0.0\n\t */\n\terror?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the critical level, used when calling {@link ILogger.fatal}.\n\t * @since 1.0.0\n\t */\n\tfatal?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for an unknown or uncategorised level.\n\t * @since 1.0.0\n\t */\n\tnone?: LoggerLevelOptions;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/LoggerLevel.ts"],"names":["LoggerTimestamp","LoggerStyle"],"mappings":";;;;;;;;;AAOO,IAAM,YAAA,GAAN,MAAM,YAAY,CAAA;AAAA,EAmBjB,WAAA,CAAY,OAA8B,GAAA,EAAI,EAAA;AAdrD;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAGN,IAAK,IAAA,CAAA,SAAA,GAAY,QAAQ,SAAc,KAAA,IAAA,GAAO,OAAO,IAAIA,mCAAA,CAAgB,QAAQ,SAAS,CAAA;AAC1F,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAS,IAAA,EAAA;AAC9B,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,OAAY,KAAA,IAAA,GAAO,OAAO,IAAIC,2BAAA,CAAY,QAAQ,OAAO,CAAA;AAAA;AACjF,EAEO,IAAI,OAAiB,EAAA;AAC3B,IAAA,MAAM,UAAU,IAAK,CAAA,SAAA,EAAW,GAAI,EAAA,IAAK,MAAM,IAAK,CAAA,KAAA;AAEpD,IAAA,IAAI,OAAO,MAAQ,EAAA;AAClB,MAAA,MAAM,SAAY,GAAA,IAAA,CAAK,OACpB,GAAA,CAAC,IAAiB,KAAA,MAAA,GAAS,IAAK,CAAA,OAAA,CAAS,GAAI,CAAA,IAAI,CACjD,GAAA,CAAC,SAAiB,MAAS,GAAA,IAAA;AAC9B,MAAO,OAAA,OAAA,CAAQ,MAAM,IAAI,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA;AAGpD,IAAA,OAAO,KAAK,OAAU,GAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,OAAO,CAAI,GAAA,OAAA;AAAA;AAEpD,CAAA;AArCyB,MAAA,CAAA,YAAA,EAAA,aAAA,CAAA;AAAlB,IAAM,WAAN,GAAA","file":"LoggerLevel.cjs","sourcesContent":["import { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\nimport { LoggerTimestamp, type LoggerTimestampOptions } from './LoggerTimestamp';\n\n/**\n * Logger utility that stores and applies a full style into the message.\n * @since 1.0.0\n */\nexport class LoggerLevel {\n\t/**\n\t * The timestamp formatter.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: LoggerTimestamp | null;\n\n\t/**\n\t * The infix, added between the timestamp and the message.\n\t * @since 1.0.0\n\t */\n\tpublic infix: string;\n\n\t/**\n\t * The style formatter for the message.\n\t * @since 1.0.0\n\t */\n\tpublic message: LoggerStyle | null;\n\n\tpublic constructor(options: LoggerLevelOptions = {}) {\n\t\tthis.timestamp = options.timestamp === null ? null : new LoggerTimestamp(options.timestamp);\n\t\tthis.infix = options.infix ?? '';\n\t\tthis.message = options.message === null ? null : new LoggerStyle(options.message);\n\t}\n\n\tpublic run(content: string) {\n\t\tconst prefix = (this.timestamp?.run() ?? '') + this.infix;\n\n\t\tif (prefix.length) {\n\t\t\tconst formatter = this.message //\n\t\t\t\t? (line: string) => prefix + this.message!.run(line)\n\t\t\t\t: (line: string) => prefix + line;\n\t\t\treturn content.split('\\n').map(formatter).join('\\n');\n\t\t}\n\n\t\treturn this.message ? this.message.run(content) : content;\n\t}\n}\n\n/**\n * The options for {@link LoggerLevel}.\n * @since 1.0.0\n */\nexport interface LoggerLevelOptions {\n\t/**\n\t * The timestamp options. Set to `null` to disable timestamp parsing.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\ttimestamp?: LoggerTimestampOptions | null;\n\n\t/**\n\t * The infix to be included between the timestamp and the message.\n\t * @since 1.0.0\n\t * @default ''\n\t */\n\tinfix?: string;\n\n\t/**\n\t * The style options for the message.\n\t * @since 1.0.0\n\t * @default colorette.clear\n\t */\n\tmessage?: LoggerStyleResolvable | null;\n}\n"]}
{"version":3,"sources":["../../../src/lib/LoggerLevel.ts"],"names":["LoggerTimestamp","LoggerStyle"],"mappings":";;;;;;;;;AAOO,IAAM,YAAA,GAAN,MAAM,YAAA,CAAY;AAAA,EAmBjB,WAAA,CAAY,OAAA,GAA8B,EAAC,EAAG;AAdrD;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAA,GAAY,QAAQ,SAAA,KAAc,IAAA,GAAO,OAAO,IAAIA,mCAAA,CAAgB,QAAQ,SAAS,CAAA;AAC1F,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAQ,KAAA,IAAS,EAAA;AAC9B,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,KAAY,IAAA,GAAO,OAAO,IAAIC,2BAAA,CAAY,QAAQ,OAAO,CAAA;AAAA,EACjF;AAAA,EAEO,IAAI,OAAA,EAAiB;AAC3B,IAAA,MAAM,UAAU,IAAA,CAAK,SAAA,EAAW,GAAA,EAAI,IAAK,MAAM,IAAA,CAAK,KAAA;AAEpD,IAAA,IAAI,OAAO,MAAA,EAAQ;AAClB,MAAA,MAAM,SAAA,GAAY,IAAA,CAAK,OAAA,GACpB,CAAC,IAAA,KAAiB,MAAA,GAAS,IAAA,CAAK,OAAA,CAAS,GAAA,CAAI,IAAI,CAAA,GACjD,CAAC,SAAiB,MAAA,GAAS,IAAA;AAC9B,MAAA,OAAO,OAAA,CAAQ,MAAM,IAAI,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,IACpD;AAEA,IAAA,OAAO,KAAK,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,GAAI,OAAA;AAAA,EACnD;AACD,CAAA;AArCyB,MAAA,CAAA,YAAA,EAAA,aAAA,CAAA;AAAlB,IAAM,WAAA,GAAN","file":"LoggerLevel.cjs","sourcesContent":["import { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\nimport { LoggerTimestamp, type LoggerTimestampOptions } from './LoggerTimestamp';\n\n/**\n * Logger utility that stores and applies a full style into the message.\n * @since 1.0.0\n */\nexport class LoggerLevel {\n\t/**\n\t * The timestamp formatter.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: LoggerTimestamp | null;\n\n\t/**\n\t * The infix, added between the timestamp and the message.\n\t * @since 1.0.0\n\t */\n\tpublic infix: string;\n\n\t/**\n\t * The style formatter for the message.\n\t * @since 1.0.0\n\t */\n\tpublic message: LoggerStyle | null;\n\n\tpublic constructor(options: LoggerLevelOptions = {}) {\n\t\tthis.timestamp = options.timestamp === null ? null : new LoggerTimestamp(options.timestamp);\n\t\tthis.infix = options.infix ?? '';\n\t\tthis.message = options.message === null ? null : new LoggerStyle(options.message);\n\t}\n\n\tpublic run(content: string) {\n\t\tconst prefix = (this.timestamp?.run() ?? '') + this.infix;\n\n\t\tif (prefix.length) {\n\t\t\tconst formatter = this.message //\n\t\t\t\t? (line: string) => prefix + this.message!.run(line)\n\t\t\t\t: (line: string) => prefix + line;\n\t\t\treturn content.split('\\n').map(formatter).join('\\n');\n\t\t}\n\n\t\treturn this.message ? this.message.run(content) : content;\n\t}\n}\n\n/**\n * The options for {@link LoggerLevel}.\n * @since 1.0.0\n */\nexport interface LoggerLevelOptions {\n\t/**\n\t * The timestamp options. Set to `null` to disable timestamp parsing.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\ttimestamp?: LoggerTimestampOptions | null;\n\n\t/**\n\t * The infix to be included between the timestamp and the message.\n\t * @since 1.0.0\n\t * @default ''\n\t */\n\tinfix?: string;\n\n\t/**\n\t * The style options for the message.\n\t * @since 1.0.0\n\t * @default colorette.clear\n\t */\n\tmessage?: LoggerStyleResolvable | null;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/LoggerStyle.ts"],"names":["Colorette","LoggerStyleEffect","LoggerStyleText","LoggerStyleBackground"],"mappings":"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","file":"LoggerStyle.cjs","sourcesContent":["import * as Colorette from 'colorette';\n\n/**\n * Logger utility that applies a style to a string.\n * @since 1.0.0\n */\nexport class LoggerStyle {\n\tpublic readonly style: Colorette.Color;\n\n\tpublic constructor(resolvable: LoggerStyleResolvable = {}) {\n\t\tif (typeof resolvable === 'function') {\n\t\t\tthis.style = resolvable;\n\t\t} else {\n\t\t\tconst styles: Colorette.Color[] = [];\n\t\t\tif (resolvable.effects) styles.push(...resolvable.effects.map((text) => Colorette[text]));\n\t\t\tif (resolvable.text) styles.push(Colorette[resolvable.text]);\n\t\t\tif (resolvable.background) styles.push(Colorette[resolvable.background]);\n\n\t\t\tthis.style = styles.length\n\t\t\t\t? styles.length === 1\n\t\t\t\t\t? styles[0]\n\t\t\t\t\t: (string) => styles.reduce((out, style) => style(out), string) as string\n\t\t\t\t: Colorette.reset;\n\t\t}\n\t}\n\n\t/**\n\t * Applies the style to a string.\n\t * @since 1.0.0\n\t * @param string The value to apply the style to.\n\t */\n\tpublic run(string: string | number) {\n\t\treturn this.style(string);\n\t}\n}\n\n/**\n * The options for {@link LoggerStyle}.\n * @since 1.0.0\n */\nexport interface LoggerStyleOptions {\n\t/**\n\t * The text effects, e.g. `italic`, `strikethrough`, etc.\n\t * @since 1.0.0\n\t */\n\teffects?: LoggerStyleEffect[];\n\n\t/**\n\t * The text color, e.g. `red` or `yellow`.\n\t * @since 1.0.0\n\t */\n\ttext?: LoggerStyleText;\n\n\t/**\n\t * The background color, e.g. `magenta` or `red`.\n\t * @since 1.0.0\n\t */\n\tbackground?: LoggerStyleBackground;\n}\n\n/**\n * The value accepted by {@link LoggerStyle}'s constructor. Read `colorette`'s documentation for more information.\n * @since 1.0.0\n * @seealso https://www.npmjs.com/package/colorette\n */\nexport type LoggerStyleResolvable = Colorette.Color | LoggerStyleOptions;\n\n/**\n * The text styles.\n * @since 1.0.0\n */\nexport enum LoggerStyleEffect {\n\tReset = 'reset',\n\tBold = 'bold',\n\tDim = 'dim',\n\tItalic = 'italic',\n\tUnderline = 'underline',\n\tInverse = 'inverse',\n\tHidden = 'hidden',\n\tStrikethrough = 'strikethrough'\n}\n\n/**\n * The text colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleText {\n\tBlack = 'black',\n\tRed = 'red',\n\tGreen = 'green',\n\tYellow = 'yellow',\n\tBlue = 'blue',\n\tMagenta = 'magenta',\n\tCyan = 'cyan',\n\tWhite = 'white',\n\tGray = 'gray',\n\tBlackBright = 'blackBright',\n\tRedBright = 'redBright',\n\tGreenBright = 'greenBright',\n\tYellowBright = 'yellowBright',\n\tBlueBright = 'blueBright',\n\tMagentaBright = 'magentaBright',\n\tCyanBright = 'cyanBright',\n\tWhiteBright = 'whiteBright'\n}\n\n/**\n * The background colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleBackground {\n\tBlack = 'bgBlack',\n\tRed = 'bgRed',\n\tGreen = 'bgGreen',\n\tYellow = 'bgYellow',\n\tBlue = 'bgBlue',\n\tMagenta = 'bgMagenta',\n\tCyan = 'bgCyan',\n\tWhite = 'bgWhite',\n\tBlackBright = 'bgBlackBright',\n\tRedBright = 'bgRedBright',\n\tGreenBright = 'bgGreenBright',\n\tYellowBright = 'bgYellowBright',\n\tBlueBright = 'bgBlueBright',\n\tMagentaBright = 'bgMagentaBright',\n\tCyanBright = 'bgCyanBright',\n\tWhiteBright = 'bgWhiteBright'\n}\n"]}
{"version":3,"sources":["../../../src/lib/LoggerStyle.ts"],"names":["Colorette","LoggerStyleEffect","LoggerStyleText","LoggerStyleBackground"],"mappings":"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","file":"LoggerStyle.cjs","sourcesContent":["import * as Colorette from 'colorette';\n\n/**\n * Logger utility that applies a style to a string.\n * @since 1.0.0\n */\nexport class LoggerStyle {\n\tpublic readonly style: Colorette.Color;\n\n\tpublic constructor(resolvable: LoggerStyleResolvable = {}) {\n\t\tif (typeof resolvable === 'function') {\n\t\t\tthis.style = resolvable;\n\t\t} else {\n\t\t\tconst styles: Colorette.Color[] = [];\n\t\t\tif (resolvable.effects) styles.push(...resolvable.effects.map((text) => Colorette[text]));\n\t\t\tif (resolvable.text) styles.push(Colorette[resolvable.text]);\n\t\t\tif (resolvable.background) styles.push(Colorette[resolvable.background]);\n\n\t\t\tthis.style = styles.length\n\t\t\t\t? styles.length === 1\n\t\t\t\t\t? styles[0]\n\t\t\t\t\t: (string) => styles.reduce((out, style) => style(out), string) as string\n\t\t\t\t: Colorette.reset;\n\t\t}\n\t}\n\n\t/**\n\t * Applies the style to a string.\n\t * @since 1.0.0\n\t * @param string The value to apply the style to.\n\t */\n\tpublic run(string: string | number) {\n\t\treturn this.style(string);\n\t}\n}\n\n/**\n * The options for {@link LoggerStyle}.\n * @since 1.0.0\n */\nexport interface LoggerStyleOptions {\n\t/**\n\t * The text effects, e.g. `italic`, `strikethrough`, etc.\n\t * @since 1.0.0\n\t */\n\teffects?: LoggerStyleEffect[];\n\n\t/**\n\t * The text color, e.g. `red` or `yellow`.\n\t * @since 1.0.0\n\t */\n\ttext?: LoggerStyleText;\n\n\t/**\n\t * The background color, e.g. `magenta` or `red`.\n\t * @since 1.0.0\n\t */\n\tbackground?: LoggerStyleBackground;\n}\n\n/**\n * The value accepted by {@link LoggerStyle}'s constructor. Read `colorette`'s documentation for more information.\n * @since 1.0.0\n * @seealso https://www.npmjs.com/package/colorette\n */\nexport type LoggerStyleResolvable = Colorette.Color | LoggerStyleOptions;\n\n/**\n * The text styles.\n * @since 1.0.0\n */\nexport enum LoggerStyleEffect {\n\tReset = 'reset',\n\tBold = 'bold',\n\tDim = 'dim',\n\tItalic = 'italic',\n\tUnderline = 'underline',\n\tInverse = 'inverse',\n\tHidden = 'hidden',\n\tStrikethrough = 'strikethrough'\n}\n\n/**\n * The text colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleText {\n\tBlack = 'black',\n\tRed = 'red',\n\tGreen = 'green',\n\tYellow = 'yellow',\n\tBlue = 'blue',\n\tMagenta = 'magenta',\n\tCyan = 'cyan',\n\tWhite = 'white',\n\tGray = 'gray',\n\tBlackBright = 'blackBright',\n\tRedBright = 'redBright',\n\tGreenBright = 'greenBright',\n\tYellowBright = 'yellowBright',\n\tBlueBright = 'blueBright',\n\tMagentaBright = 'magentaBright',\n\tCyanBright = 'cyanBright',\n\tWhiteBright = 'whiteBright'\n}\n\n/**\n * The background colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleBackground {\n\tBlack = 'bgBlack',\n\tRed = 'bgRed',\n\tGreen = 'bgGreen',\n\tYellow = 'bgYellow',\n\tBlue = 'bgBlue',\n\tMagenta = 'bgMagenta',\n\tCyan = 'bgCyan',\n\tWhite = 'bgWhite',\n\tBlackBright = 'bgBlackBright',\n\tRedBright = 'bgRedBright',\n\tGreenBright = 'bgGreenBright',\n\tYellowBright = 'bgYellowBright',\n\tBlueBright = 'bgBlueBright',\n\tMagentaBright = 'bgMagentaBright',\n\tCyanBright = 'bgCyanBright',\n\tWhiteBright = 'bgWhiteBright'\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/LoggerTimestamp.ts"],"names":["Timestamp","LoggerStyle"],"mappings":";;;;;;;;;AAOO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAyBrB,WAAA,CAAY,OAAkC,GAAA,EAAI,EAAA;AApBzD;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,KAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAY,GAAA,IAAIA,mBAAU,CAAA,OAAA,CAAQ,WAAW,qBAAqB,CAAA;AACvE,IAAK,IAAA,CAAA,GAAA,GAAM,QAAQ,GAAO,IAAA,KAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAU,KAAA,IAAA,GAAO,OAAO,IAAIC,2BAAA,CAAY,QAAQ,KAAK,CAAA;AAC1E,IAAA,IAAA,CAAK,YAAY,OAAQ,CAAA,SAAA,KAAc,CAAC,SAAA,KAAc,GAAG,SAAS,CAAA,GAAA,CAAA,CAAA;AAAA;AACnE;AAAA;AAAA;AAAA;AAAA,EAMO,GAAM,GAAA;AACZ,IAAM,MAAA,IAAA,uBAAW,IAAK,EAAA;AACtB,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,UAAW,CAAA,IAAI,CAAI,GAAA,IAAA,CAAK,SAAU,CAAA,OAAA,CAAQ,IAAI,CAAA;AACvF,IAAO,OAAA,IAAA,CAAK,UAAU,IAAK,CAAA,KAAA,GAAQ,KAAK,KAAM,CAAA,GAAA,CAAI,MAAM,CAAA,GAAI,MAAM,CAAA;AAAA;AAEpE,CAAA;AAzC6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"LoggerTimestamp.cjs","sourcesContent":["import { Timestamp } from '@sapphire/timestamp';\nimport { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\n\n/**\n * Logger utility that formats a timestamp.\n * @since 1.0.0\n */\nexport class LoggerTimestamp {\n\t/**\n\t * The timestamp used to format the current date.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: Timestamp;\n\n\t/**\n\t * Whether or not the logger will show a timestamp in UTC.\n\t * @since 1.0.0\n\t */\n\tpublic utc: boolean;\n\n\t/**\n\t * The logger style to apply the color to the timestamp.\n\t * @since 1.0.0\n\t */\n\tpublic color: LoggerStyle | null;\n\n\t/**\n\t * The final formatter.\n\t * @since 1.0.0\n\t */\n\tpublic formatter: LoggerTimestampFormatter;\n\n\tpublic constructor(options: LoggerTimestampOptions = {}) {\n\t\tthis.timestamp = new Timestamp(options.pattern ?? 'YYYY-MM-DD HH:mm:ss');\n\t\tthis.utc = options.utc ?? false;\n\t\tthis.color = options.color === null ? null : new LoggerStyle(options.color);\n\t\tthis.formatter = options.formatter ?? ((timestamp) => `${timestamp} - `);\n\t}\n\n\t/**\n\t * Formats the current time.\n\t * @since 1.0.0\n\t */\n\tpublic run() {\n\t\tconst date = new Date();\n\t\tconst result = this.utc ? this.timestamp.displayUTC(date) : this.timestamp.display(date);\n\t\treturn this.formatter(this.color ? this.color.run(result) : result);\n\t}\n}\n\n/**\n * The options for {@link LoggerTimestamp}.\n * @since 1.0.0\n */\nexport interface LoggerTimestampOptions {\n\t/**\n\t * The {@link Timestamp} pattern.\n\t * @since 1.0.0\n\t * @default 'YYYY-MM-DD HH:mm:ss'\n\t * @example\n\t * ```typescript\n\t * 'YYYY-MM-DD HH:mm:ss'\n\t * // 2020-12-23 22:01:10\n\t * ```\n\t */\n\tpattern?: string;\n\n\t/**\n\t * Whether or not the date should be UTC.\n\t * @since 1.0.0\n\t * @default false\n\t */\n\tutc?: boolean;\n\n\t/**\n\t * The color to use.\n\t * @since 1.0.0\n\t * @default colorette.reset\n\t */\n\tcolor?: LoggerStyleResolvable | null;\n\n\t/**\n\t * The formatter. See {@link LoggerTimestampFormatter} for more information.\n\t * @since 1.0.0\n\t * @default (value) => `${value} - `\n\t */\n\tformatter?: LoggerTimestampFormatter;\n}\n\n/**\n * The formatter used for {@link LoggerTimestampOptions}. This will be run **after** applying the color to the formatter.\n * @since 1.0.0\n */\nexport interface LoggerTimestampFormatter {\n\t/**\n\t * @param timestamp The output of {@link LoggerStyle.run} on {@link Timestamp.display}/{@link Timestamp.displayUTC}.\n\t * @since 1.0.0\n\t */\n\t(timestamp: string): string;\n}\n"]}
{"version":3,"sources":["../../../src/lib/LoggerTimestamp.ts"],"names":["Timestamp","LoggerStyle"],"mappings":";;;;;;;;;AAOO,IAAM,gBAAA,GAAN,MAAM,gBAAA,CAAgB;AAAA,EAyBrB,WAAA,CAAY,OAAA,GAAkC,EAAC,EAAG;AApBzD;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,KAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAA,GAAY,IAAIA,mBAAA,CAAU,OAAA,CAAQ,WAAW,qBAAqB,CAAA;AACvE,IAAA,IAAA,CAAK,GAAA,GAAM,QAAQ,GAAA,IAAO,KAAA;AAC1B,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAQ,KAAA,KAAU,IAAA,GAAO,OAAO,IAAIC,2BAAA,CAAY,QAAQ,KAAK,CAAA;AAC1E,IAAA,IAAA,CAAK,YAAY,OAAA,CAAQ,SAAA,KAAc,CAAC,SAAA,KAAc,GAAG,SAAS,CAAA,GAAA,CAAA,CAAA;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,GAAA,GAAM;AACZ,IAAA,MAAM,IAAA,uBAAW,IAAA,EAAK;AACtB,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,SAAA,CAAU,UAAA,CAAW,IAAI,CAAA,GAAI,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,IAAI,CAAA;AACvF,IAAA,OAAO,IAAA,CAAK,UAAU,IAAA,CAAK,KAAA,GAAQ,KAAK,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA,GAAI,MAAM,CAAA;AAAA,EACnE;AACD,CAAA;AAzC6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA;AAAtB,IAAM,eAAA,GAAN","file":"LoggerTimestamp.cjs","sourcesContent":["import { Timestamp } from '@sapphire/timestamp';\nimport { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\n\n/**\n * Logger utility that formats a timestamp.\n * @since 1.0.0\n */\nexport class LoggerTimestamp {\n\t/**\n\t * The timestamp used to format the current date.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: Timestamp;\n\n\t/**\n\t * Whether or not the logger will show a timestamp in UTC.\n\t * @since 1.0.0\n\t */\n\tpublic utc: boolean;\n\n\t/**\n\t * The logger style to apply the color to the timestamp.\n\t * @since 1.0.0\n\t */\n\tpublic color: LoggerStyle | null;\n\n\t/**\n\t * The final formatter.\n\t * @since 1.0.0\n\t */\n\tpublic formatter: LoggerTimestampFormatter;\n\n\tpublic constructor(options: LoggerTimestampOptions = {}) {\n\t\tthis.timestamp = new Timestamp(options.pattern ?? 'YYYY-MM-DD HH:mm:ss');\n\t\tthis.utc = options.utc ?? false;\n\t\tthis.color = options.color === null ? null : new LoggerStyle(options.color);\n\t\tthis.formatter = options.formatter ?? ((timestamp) => `${timestamp} - `);\n\t}\n\n\t/**\n\t * Formats the current time.\n\t * @since 1.0.0\n\t */\n\tpublic run() {\n\t\tconst date = new Date();\n\t\tconst result = this.utc ? this.timestamp.displayUTC(date) : this.timestamp.display(date);\n\t\treturn this.formatter(this.color ? this.color.run(result) : result);\n\t}\n}\n\n/**\n * The options for {@link LoggerTimestamp}.\n * @since 1.0.0\n */\nexport interface LoggerTimestampOptions {\n\t/**\n\t * The {@link Timestamp} pattern.\n\t * @since 1.0.0\n\t * @default 'YYYY-MM-DD HH:mm:ss'\n\t * @example\n\t * ```typescript\n\t * 'YYYY-MM-DD HH:mm:ss'\n\t * // 2020-12-23 22:01:10\n\t * ```\n\t */\n\tpattern?: string;\n\n\t/**\n\t * Whether or not the date should be UTC.\n\t * @since 1.0.0\n\t * @default false\n\t */\n\tutc?: boolean;\n\n\t/**\n\t * The color to use.\n\t * @since 1.0.0\n\t * @default colorette.reset\n\t */\n\tcolor?: LoggerStyleResolvable | null;\n\n\t/**\n\t * The formatter. See {@link LoggerTimestampFormatter} for more information.\n\t * @since 1.0.0\n\t * @default (value) => `${value} - `\n\t */\n\tformatter?: LoggerTimestampFormatter;\n}\n\n/**\n * The formatter used for {@link LoggerTimestampOptions}. This will be run **after** applying the color to the formatter.\n * @since 1.0.0\n */\nexport interface LoggerTimestampFormatter {\n\t/**\n\t * @param timestamp The output of {@link LoggerStyle.run} on {@link Timestamp.display}/{@link Timestamp.displayUTC}.\n\t * @since 1.0.0\n\t */\n\t(timestamp: string): string;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/register.ts"],"names":["Plugin","preGenericsInitialization","Logger","SapphireClient"],"mappings":";;;;;;;AASO,IAAM,aAAA,GAAN,MAAM,aAAA,SAAqBA,gBAAO,CAAA;AAAA;AAAA;AAAA;AAAA,EAIxC,QAAeC,mCAAyB,CAAA,CAAwB,OAA8B,EAAA;AAC7F,IAAA,OAAA,CAAQ,WAAW,EAAC;AACpB,IAAA,OAAA,CAAQ,MAAO,CAAA,QAAA,KAAa,IAAIC,gBAAA,CAAO,QAAQ,MAAM,CAAA;AAAA;AAEvD,CAAA;AARyC,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA;AAAlC,IAAM,YAAN,GAAA;AAUPC,wBAAA,CAAe,OAAQ,CAAA,qCAAA,CAAsC,YAAa,CAAAF,mCAAyB,GAAG,kCAAkC,CAAA","file":"register.cjs","sourcesContent":["import './index';\n\nimport { Plugin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { Logger } from './index';\n\n/**\n * @since 1.0.0\n */\nexport class LoggerPlugin extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\toptions.logger ??= {};\n\t\toptions.logger.instance ??= new Logger(options.logger);\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(LoggerPlugin[preGenericsInitialization], 'Logger-PreGenericsInitialization');\n"]}
{"version":3,"sources":["../../src/register.ts"],"names":["Plugin","preGenericsInitialization","Logger","SapphireClient"],"mappings":";;;;;;;AASO,IAAM,aAAA,GAAN,MAAM,aAAA,SAAqBA,gBAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,QAAwBC,mCAAyB,CAAA,CAAwB,OAAA,EAA8B;AACtG,IAAA,OAAA,CAAQ,WAAW,EAAC;AACpB,IAAA,OAAA,CAAQ,MAAA,CAAO,QAAA,KAAa,IAAIC,gBAAA,CAAO,QAAQ,MAAM,CAAA;AAAA,EACtD;AACD,CAAA;AARyC,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA;AAAlC,IAAM,YAAA,GAAN;AAUPC,wBAAA,CAAe,OAAA,CAAQ,qCAAA,CAAsC,YAAA,CAAaF,mCAAyB,GAAG,kCAAkC,CAAA","file":"register.cjs","sourcesContent":["import './index';\n\nimport { Plugin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { Logger } from './index';\n\n/**\n * @since 1.0.0\n */\nexport class LoggerPlugin extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static override [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\toptions.logger ??= {};\n\t\toptions.logger.instance ??= new Logger(options.logger);\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(LoggerPlugin[preGenericsInitialization], 'Logger-PreGenericsInitialization');\n"]}

@@ -7,3 +7,3 @@ import './chunk-2JTKI4GS.mjs';

var version = "4.1.0";
var version = "4.1.1-next.6906681";

@@ -10,0 +10,0 @@ export { version };

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAkBO,IAAM,OAAkB,GAAA","file":"index.mjs","sourcesContent":["import type { LoggerOptions } from './lib/Logger';\n\nexport * from './lib/Logger';\nexport * from './lib/LoggerLevel';\nexport * from './lib/LoggerStyle';\nexport * from './lib/LoggerTimestamp';\n\ndeclare module '@sapphire/framework' {\n\texport interface ClientLoggerOptions extends LoggerOptions {}\n}\n\n/**\n * The [@sapphire/plugin-logger](https://github.com/sapphiredev/plugins/blob/main/packages/logger) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '4.1.0';\n"]}
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAkBO,IAAM,OAAA,GAAkB","file":"index.mjs","sourcesContent":["import type { LoggerOptions } from './lib/Logger';\n\nexport * from './lib/Logger';\nexport * from './lib/LoggerLevel';\nexport * from './lib/LoggerStyle';\nexport * from './lib/LoggerTimestamp';\n\ndeclare module '@sapphire/framework' {\n\texport interface ClientLoggerOptions extends LoggerOptions {}\n}\n\n/**\n * The [@sapphire/plugin-logger](https://github.com/sapphiredev/plugins/blob/main/packages/logger) version that you are currently using.\n * An example use of this is showing it of in a bot information command.\n *\n * Note to Sapphire developers: This needs to explicitly be `string` so it is not typed as the string that gets replaced by esbuild\n */\n// eslint-disable-next-line @typescript-eslint/no-inferrable-types\nexport const version: string = '4.1.1-next.6906681';\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/Logger.ts"],"names":["BuiltinLogger"],"mappings":"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","file":"Logger.mjs","sourcesContent":["import { Logger as BuiltinLogger, LogLevel, type LogMethods } from '@sapphire/framework';\nimport { bgRed, cyan, gray, isColorSupported, magenta, red, white, yellow, type Color } from 'colorette';\nimport { Console } from 'console';\nimport { inspect, type InspectOptions } from 'util';\nimport { LoggerLevel, type LoggerLevelOptions } from './LoggerLevel';\n\n/**\n * The logger class.\n * @since 1.0.0\n */\nexport class Logger extends BuiltinLogger {\n\t/**\n\t * The console this writes to.\n\t * @since 1.0.0\n\t */\n\tpublic readonly console: Console;\n\n\t/**\n\t * The formats supported by the logger.\n\t * @since 1.0.0\n\t */\n\tpublic readonly formats: Map<LogLevel, LoggerLevel>;\n\n\t/**\n\t * The string `write` will join values by.\n\t * @since 1.0.0\n\t */\n\tpublic readonly join: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t */\n\tpublic readonly depth: number;\n\n\tpublic constructor(options: LoggerOptions = {}) {\n\t\tsuper(options.level ?? LogLevel.Info);\n\n\t\tthis.console = new Console(options.stdout ?? process.stdout, options.stderr ?? process.stderr);\n\t\tthis.formats = Logger.createFormatMap(options.format, options.defaultFormat);\n\t\tthis.join = options.join ?? ' ';\n\t\tthis.depth = options.depth ?? 0;\n\t}\n\n\t/**\n\t * Writes the log message given a level and the value(s).\n\t * @param level The log level.\n\t * @param values The values to log.\n\t */\n\tpublic override write(level: LogLevel, ...values: readonly unknown[]): void {\n\t\tif (level < this.level) return;\n\n\t\tconst method = this.levels.get(level) ?? 'log';\n\t\tconst formatter = this.formats.get(level) ?? this.formats.get(LogLevel.None)!;\n\n\t\tthis.console[method](formatter.run(this.preprocess(values)));\n\t}\n\n\t/**\n\t * Pre-processes an array of values.\n\t * @since 1.0.0\n\t * @param values The values to pre-process.\n\t */\n\tprotected preprocess(values: readonly unknown[]) {\n\t\tconst inspectOptions: InspectOptions = { colors: isColorSupported, depth: this.depth };\n\t\treturn values.map((value) => (typeof value === 'string' ? value : inspect(value, inspectOptions))).join(this.join);\n\t}\n\n\tprivate get levels() {\n\t\treturn Reflect.get(BuiltinLogger, 'levels') as Map<LogLevel, LogMethods>;\n\t}\n\n\t/**\n\t * Gets whether or not colorette is enabled.\n\t * @since 1.0.0\n\t */\n\tpublic static get stylize() {\n\t\treturn isColorSupported;\n\t}\n\n\tprivate static createFormatMap(options: LoggerFormatOptions = {}, defaults: LoggerLevelOptions = options.none ?? {}) {\n\t\treturn new Map<LogLevel, LoggerLevel>([\n\t\t\t[LogLevel.Trace, Logger.ensureDefaultLevel(options.trace, defaults, gray, 'TRACE')],\n\t\t\t[LogLevel.Debug, Logger.ensureDefaultLevel(options.debug, defaults, magenta, 'DEBUG')],\n\t\t\t[LogLevel.Info, Logger.ensureDefaultLevel(options.info, defaults, cyan, 'INFO')],\n\t\t\t[LogLevel.Warn, Logger.ensureDefaultLevel(options.warn, defaults, yellow, 'WARN')],\n\t\t\t[LogLevel.Error, Logger.ensureDefaultLevel(options.error, defaults, red, 'ERROR')],\n\t\t\t[LogLevel.Fatal, Logger.ensureDefaultLevel(options.fatal, defaults, bgRed, 'FATAL')],\n\t\t\t[LogLevel.None, Logger.ensureDefaultLevel(options.none, defaults, white, '')]\n\t\t]);\n\t}\n\n\tprivate static ensureDefaultLevel(options: LoggerLevelOptions | undefined, defaults: LoggerLevelOptions, color: Color, name: string) {\n\t\tif (options) return new LoggerLevel(options);\n\t\treturn new LoggerLevel({\n\t\t\t...defaults,\n\t\t\ttimestamp: defaults.timestamp === null ? null : { ...(defaults.timestamp ?? {}), color },\n\t\t\tinfix: name.length ? `${color(name.padEnd(5, ' '))} - ` : ''\n\t\t});\n\t}\n}\n\n/**\n * The logger options.\n * @since 1.0.0\n */\nexport interface LoggerOptions {\n\t/**\n\t * A writable stream for the output logs.\n\t * @since 1.0.0\n\t * @default process.stdout\n\t */\n\tstdout?: NodeJS.WritableStream;\n\n\t/**\n\t * A writable stream for the error logs.\n\t * @since 1.0.0\n\t * @default process.stderr\n\t */\n\tstderr?: NodeJS.WritableStream;\n\n\t/**\n\t * The default options used to fill all the possible values for {@link LoggerOptions.format}.\n\t * @since 1.0.0\n\t * @default options.format.none ?? {}\n\t */\n\tdefaultFormat?: LoggerLevelOptions;\n\n\t/**\n\t * The options for each log level. LogLevel.None serves to set the default for all keys, where only\n\t * {@link LoggerTimestampOptions.timestamp} and {@link LoggerLevelOptions.prefix} would be overridden.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\tformat?: LoggerFormatOptions;\n\n\t/**\n\t * The minimum log level.\n\t * @since 1.0.0\n\t * @default LogLevel.Info\n\t */\n\tlevel?: LogLevel;\n\n\t/**\n\t * The string that joins different messages.\n\t * @since 1.0.0\n\t * @default ' '\n\t */\n\tjoin?: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t * @default 0\n\t */\n\tdepth?: number;\n}\n\n/**\n * The logger format options.\n * @since 1.0.0\n */\nexport interface LoggerFormatOptions {\n\t/**\n\t * The logger options for the lowest log level, used when calling {@link ILogger.trace}.\n\t * @since 1.0.0\n\t */\n\ttrace?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the debug level, used when calling {@link ILogger.debug}.\n\t * @since 1.0.0\n\t */\n\tdebug?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the info level, used when calling {@link ILogger.info}.\n\t * @since 1.0.0\n\t */\n\tinfo?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the warning level, used when calling {@link ILogger.warn}.\n\t * @since 1.0.0\n\t */\n\twarn?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the error level, used when calling {@link ILogger.error}.\n\t * @since 1.0.0\n\t */\n\terror?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the critical level, used when calling {@link ILogger.fatal}.\n\t * @since 1.0.0\n\t */\n\tfatal?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for an unknown or uncategorised level.\n\t * @since 1.0.0\n\t */\n\tnone?: LoggerLevelOptions;\n}\n"]}
{"version":3,"sources":["../../../src/lib/Logger.ts"],"names":["BuiltinLogger"],"mappings":"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","file":"Logger.mjs","sourcesContent":["import { Logger as BuiltinLogger, LogLevel, type LogMethods } from '@sapphire/framework';\nimport { bgRed, cyan, gray, isColorSupported, magenta, red, white, yellow, type Color } from 'colorette';\nimport { Console } from 'console';\nimport { inspect, type InspectOptions } from 'util';\nimport { LoggerLevel, type LoggerLevelOptions } from './LoggerLevel';\n\n/**\n * The logger class.\n * @since 1.0.0\n */\nexport class Logger extends BuiltinLogger {\n\t/**\n\t * The console this writes to.\n\t * @since 1.0.0\n\t */\n\tpublic readonly console: Console;\n\n\t/**\n\t * The formats supported by the logger.\n\t * @since 1.0.0\n\t */\n\tpublic readonly formats: Map<LogLevel, LoggerLevel>;\n\n\t/**\n\t * The string `write` will join values by.\n\t * @since 1.0.0\n\t */\n\tpublic readonly join: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t */\n\tpublic readonly depth: number;\n\n\tpublic constructor(options: LoggerOptions = {}) {\n\t\tsuper(options.level ?? LogLevel.Info);\n\n\t\tthis.console = new Console(options.stdout ?? process.stdout, options.stderr ?? process.stderr);\n\t\tthis.formats = Logger.createFormatMap(options.format, options.defaultFormat);\n\t\tthis.join = options.join ?? ' ';\n\t\tthis.depth = options.depth ?? 0;\n\t}\n\n\t/**\n\t * Writes the log message given a level and the value(s).\n\t * @param level The log level.\n\t * @param values The values to log.\n\t */\n\tpublic override write(level: LogLevel, ...values: readonly unknown[]): void {\n\t\tif (level < this.level) return;\n\n\t\tconst method = this.levels.get(level) ?? 'log';\n\t\tconst formatter = this.formats.get(level) ?? this.formats.get(LogLevel.None)!;\n\n\t\tthis.console[method](formatter.run(this.preprocess(values)));\n\t}\n\n\t/**\n\t * Pre-processes an array of values.\n\t * @since 1.0.0\n\t * @param values The values to pre-process.\n\t */\n\tprotected preprocess(values: readonly unknown[]) {\n\t\tconst inspectOptions: InspectOptions = { colors: isColorSupported, depth: this.depth };\n\t\treturn values.map((value) => (typeof value === 'string' ? value : inspect(value, inspectOptions))).join(this.join);\n\t}\n\n\tprivate get levels() {\n\t\treturn Reflect.get(BuiltinLogger, 'levels') as Map<LogLevel, LogMethods>;\n\t}\n\n\t/**\n\t * Gets whether or not colorette is enabled.\n\t * @since 1.0.0\n\t */\n\tpublic static get stylize() {\n\t\treturn isColorSupported;\n\t}\n\n\tprivate static createFormatMap(options: LoggerFormatOptions = {}, defaults: LoggerLevelOptions = options.none ?? {}) {\n\t\treturn new Map<LogLevel, LoggerLevel>([\n\t\t\t[LogLevel.Trace, Logger.ensureDefaultLevel(options.trace, defaults, gray, 'TRACE')],\n\t\t\t[LogLevel.Debug, Logger.ensureDefaultLevel(options.debug, defaults, magenta, 'DEBUG')],\n\t\t\t[LogLevel.Info, Logger.ensureDefaultLevel(options.info, defaults, cyan, 'INFO')],\n\t\t\t[LogLevel.Warn, Logger.ensureDefaultLevel(options.warn, defaults, yellow, 'WARN')],\n\t\t\t[LogLevel.Error, Logger.ensureDefaultLevel(options.error, defaults, red, 'ERROR')],\n\t\t\t[LogLevel.Fatal, Logger.ensureDefaultLevel(options.fatal, defaults, bgRed, 'FATAL')],\n\t\t\t[LogLevel.None, Logger.ensureDefaultLevel(options.none, defaults, white, '')]\n\t\t]);\n\t}\n\n\tprivate static ensureDefaultLevel(options: LoggerLevelOptions | undefined, defaults: LoggerLevelOptions, color: Color, name: string) {\n\t\tif (options) return new LoggerLevel(options);\n\t\treturn new LoggerLevel({\n\t\t\t...defaults,\n\t\t\ttimestamp: defaults.timestamp === null ? null : { ...(defaults.timestamp ?? {}), color },\n\t\t\tinfix: name.length ? `${color(name.padEnd(5, ' '))} - ` : ''\n\t\t});\n\t}\n}\n\n/**\n * The logger options.\n * @since 1.0.0\n */\nexport interface LoggerOptions {\n\t/**\n\t * A writable stream for the output logs.\n\t * @since 1.0.0\n\t * @default process.stdout\n\t */\n\tstdout?: NodeJS.WritableStream;\n\n\t/**\n\t * A writable stream for the error logs.\n\t * @since 1.0.0\n\t * @default process.stderr\n\t */\n\tstderr?: NodeJS.WritableStream;\n\n\t/**\n\t * The default options used to fill all the possible values for {@link LoggerOptions.format}.\n\t * @since 1.0.0\n\t * @default options.format.none ?? {}\n\t */\n\tdefaultFormat?: LoggerLevelOptions;\n\n\t/**\n\t * The options for each log level. LogLevel.None serves to set the default for all keys, where only\n\t * {@link LoggerTimestampOptions.timestamp} and {@link LoggerLevelOptions.prefix} would be overridden.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\tformat?: LoggerFormatOptions;\n\n\t/**\n\t * The minimum log level.\n\t * @since 1.0.0\n\t * @default LogLevel.Info\n\t */\n\tlevel?: LogLevel;\n\n\t/**\n\t * The string that joins different messages.\n\t * @since 1.0.0\n\t * @default ' '\n\t */\n\tjoin?: string;\n\n\t/**\n\t * The inspect depth when logging objects.\n\t * @since 1.0.0\n\t * @default 0\n\t */\n\tdepth?: number;\n}\n\n/**\n * The logger format options.\n * @since 1.0.0\n */\nexport interface LoggerFormatOptions {\n\t/**\n\t * The logger options for the lowest log level, used when calling {@link ILogger.trace}.\n\t * @since 1.0.0\n\t */\n\ttrace?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the debug level, used when calling {@link ILogger.debug}.\n\t * @since 1.0.0\n\t */\n\tdebug?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the info level, used when calling {@link ILogger.info}.\n\t * @since 1.0.0\n\t */\n\tinfo?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the warning level, used when calling {@link ILogger.warn}.\n\t * @since 1.0.0\n\t */\n\twarn?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the error level, used when calling {@link ILogger.error}.\n\t * @since 1.0.0\n\t */\n\terror?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for the critical level, used when calling {@link ILogger.fatal}.\n\t * @since 1.0.0\n\t */\n\tfatal?: LoggerLevelOptions;\n\n\t/**\n\t * The logger options for an unknown or uncategorised level.\n\t * @since 1.0.0\n\t */\n\tnone?: LoggerLevelOptions;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/LoggerLevel.ts"],"names":[],"mappings":";;;;AAOO,IAAM,YAAA,GAAN,MAAM,YAAY,CAAA;AAAA,EAmBjB,WAAA,CAAY,OAA8B,GAAA,EAAI,EAAA;AAdrD;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA;AAGN,IAAK,IAAA,CAAA,SAAA,GAAY,QAAQ,SAAc,KAAA,IAAA,GAAO,OAAO,IAAI,eAAA,CAAgB,QAAQ,SAAS,CAAA;AAC1F,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAS,IAAA,EAAA;AAC9B,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,OAAY,KAAA,IAAA,GAAO,OAAO,IAAI,WAAA,CAAY,QAAQ,OAAO,CAAA;AAAA;AACjF,EAEO,IAAI,OAAiB,EAAA;AAC3B,IAAA,MAAM,UAAU,IAAK,CAAA,SAAA,EAAW,GAAI,EAAA,IAAK,MAAM,IAAK,CAAA,KAAA;AAEpD,IAAA,IAAI,OAAO,MAAQ,EAAA;AAClB,MAAA,MAAM,SAAY,GAAA,IAAA,CAAK,OACpB,GAAA,CAAC,IAAiB,KAAA,MAAA,GAAS,IAAK,CAAA,OAAA,CAAS,GAAI,CAAA,IAAI,CACjD,GAAA,CAAC,SAAiB,MAAS,GAAA,IAAA;AAC9B,MAAO,OAAA,OAAA,CAAQ,MAAM,IAAI,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA;AAGpD,IAAA,OAAO,KAAK,OAAU,GAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,OAAO,CAAI,GAAA,OAAA;AAAA;AAEpD,CAAA;AArCyB,MAAA,CAAA,YAAA,EAAA,aAAA,CAAA;AAAlB,IAAM,WAAN,GAAA","file":"LoggerLevel.mjs","sourcesContent":["import { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\nimport { LoggerTimestamp, type LoggerTimestampOptions } from './LoggerTimestamp';\n\n/**\n * Logger utility that stores and applies a full style into the message.\n * @since 1.0.0\n */\nexport class LoggerLevel {\n\t/**\n\t * The timestamp formatter.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: LoggerTimestamp | null;\n\n\t/**\n\t * The infix, added between the timestamp and the message.\n\t * @since 1.0.0\n\t */\n\tpublic infix: string;\n\n\t/**\n\t * The style formatter for the message.\n\t * @since 1.0.0\n\t */\n\tpublic message: LoggerStyle | null;\n\n\tpublic constructor(options: LoggerLevelOptions = {}) {\n\t\tthis.timestamp = options.timestamp === null ? null : new LoggerTimestamp(options.timestamp);\n\t\tthis.infix = options.infix ?? '';\n\t\tthis.message = options.message === null ? null : new LoggerStyle(options.message);\n\t}\n\n\tpublic run(content: string) {\n\t\tconst prefix = (this.timestamp?.run() ?? '') + this.infix;\n\n\t\tif (prefix.length) {\n\t\t\tconst formatter = this.message //\n\t\t\t\t? (line: string) => prefix + this.message!.run(line)\n\t\t\t\t: (line: string) => prefix + line;\n\t\t\treturn content.split('\\n').map(formatter).join('\\n');\n\t\t}\n\n\t\treturn this.message ? this.message.run(content) : content;\n\t}\n}\n\n/**\n * The options for {@link LoggerLevel}.\n * @since 1.0.0\n */\nexport interface LoggerLevelOptions {\n\t/**\n\t * The timestamp options. Set to `null` to disable timestamp parsing.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\ttimestamp?: LoggerTimestampOptions | null;\n\n\t/**\n\t * The infix to be included between the timestamp and the message.\n\t * @since 1.0.0\n\t * @default ''\n\t */\n\tinfix?: string;\n\n\t/**\n\t * The style options for the message.\n\t * @since 1.0.0\n\t * @default colorette.clear\n\t */\n\tmessage?: LoggerStyleResolvable | null;\n}\n"]}
{"version":3,"sources":["../../../src/lib/LoggerLevel.ts"],"names":[],"mappings":";;;;AAOO,IAAM,YAAA,GAAN,MAAM,YAAA,CAAY;AAAA,EAmBjB,WAAA,CAAY,OAAA,GAA8B,EAAC,EAAG;AAdrD;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,SAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAA,GAAY,QAAQ,SAAA,KAAc,IAAA,GAAO,OAAO,IAAI,eAAA,CAAgB,QAAQ,SAAS,CAAA;AAC1F,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAQ,KAAA,IAAS,EAAA;AAC9B,IAAA,IAAA,CAAK,OAAA,GAAU,QAAQ,OAAA,KAAY,IAAA,GAAO,OAAO,IAAI,WAAA,CAAY,QAAQ,OAAO,CAAA;AAAA,EACjF;AAAA,EAEO,IAAI,OAAA,EAAiB;AAC3B,IAAA,MAAM,UAAU,IAAA,CAAK,SAAA,EAAW,GAAA,EAAI,IAAK,MAAM,IAAA,CAAK,KAAA;AAEpD,IAAA,IAAI,OAAO,MAAA,EAAQ;AAClB,MAAA,MAAM,SAAA,GAAY,IAAA,CAAK,OAAA,GACpB,CAAC,IAAA,KAAiB,MAAA,GAAS,IAAA,CAAK,OAAA,CAAS,GAAA,CAAI,IAAI,CAAA,GACjD,CAAC,SAAiB,MAAA,GAAS,IAAA;AAC9B,MAAA,OAAO,OAAA,CAAQ,MAAM,IAAI,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,IAAI,CAAA;AAAA,IACpD;AAEA,IAAA,OAAO,KAAK,OAAA,GAAU,IAAA,CAAK,OAAA,CAAQ,GAAA,CAAI,OAAO,CAAA,GAAI,OAAA;AAAA,EACnD;AACD,CAAA;AArCyB,MAAA,CAAA,YAAA,EAAA,aAAA,CAAA;AAAlB,IAAM,WAAA,GAAN","file":"LoggerLevel.mjs","sourcesContent":["import { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\nimport { LoggerTimestamp, type LoggerTimestampOptions } from './LoggerTimestamp';\n\n/**\n * Logger utility that stores and applies a full style into the message.\n * @since 1.0.0\n */\nexport class LoggerLevel {\n\t/**\n\t * The timestamp formatter.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: LoggerTimestamp | null;\n\n\t/**\n\t * The infix, added between the timestamp and the message.\n\t * @since 1.0.0\n\t */\n\tpublic infix: string;\n\n\t/**\n\t * The style formatter for the message.\n\t * @since 1.0.0\n\t */\n\tpublic message: LoggerStyle | null;\n\n\tpublic constructor(options: LoggerLevelOptions = {}) {\n\t\tthis.timestamp = options.timestamp === null ? null : new LoggerTimestamp(options.timestamp);\n\t\tthis.infix = options.infix ?? '';\n\t\tthis.message = options.message === null ? null : new LoggerStyle(options.message);\n\t}\n\n\tpublic run(content: string) {\n\t\tconst prefix = (this.timestamp?.run() ?? '') + this.infix;\n\n\t\tif (prefix.length) {\n\t\t\tconst formatter = this.message //\n\t\t\t\t? (line: string) => prefix + this.message!.run(line)\n\t\t\t\t: (line: string) => prefix + line;\n\t\t\treturn content.split('\\n').map(formatter).join('\\n');\n\t\t}\n\n\t\treturn this.message ? this.message.run(content) : content;\n\t}\n}\n\n/**\n * The options for {@link LoggerLevel}.\n * @since 1.0.0\n */\nexport interface LoggerLevelOptions {\n\t/**\n\t * The timestamp options. Set to `null` to disable timestamp parsing.\n\t * @since 1.0.0\n\t * @default {}\n\t */\n\ttimestamp?: LoggerTimestampOptions | null;\n\n\t/**\n\t * The infix to be included between the timestamp and the message.\n\t * @since 1.0.0\n\t * @default ''\n\t */\n\tinfix?: string;\n\n\t/**\n\t * The style options for the message.\n\t * @since 1.0.0\n\t * @default colorette.clear\n\t */\n\tmessage?: LoggerStyleResolvable | null;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/LoggerStyle.ts"],"names":["LoggerStyleEffect","LoggerStyleText","LoggerStyleBackground"],"mappings":"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","file":"LoggerStyle.mjs","sourcesContent":["import * as Colorette from 'colorette';\n\n/**\n * Logger utility that applies a style to a string.\n * @since 1.0.0\n */\nexport class LoggerStyle {\n\tpublic readonly style: Colorette.Color;\n\n\tpublic constructor(resolvable: LoggerStyleResolvable = {}) {\n\t\tif (typeof resolvable === 'function') {\n\t\t\tthis.style = resolvable;\n\t\t} else {\n\t\t\tconst styles: Colorette.Color[] = [];\n\t\t\tif (resolvable.effects) styles.push(...resolvable.effects.map((text) => Colorette[text]));\n\t\t\tif (resolvable.text) styles.push(Colorette[resolvable.text]);\n\t\t\tif (resolvable.background) styles.push(Colorette[resolvable.background]);\n\n\t\t\tthis.style = styles.length\n\t\t\t\t? styles.length === 1\n\t\t\t\t\t? styles[0]\n\t\t\t\t\t: (string) => styles.reduce((out, style) => style(out), string) as string\n\t\t\t\t: Colorette.reset;\n\t\t}\n\t}\n\n\t/**\n\t * Applies the style to a string.\n\t * @since 1.0.0\n\t * @param string The value to apply the style to.\n\t */\n\tpublic run(string: string | number) {\n\t\treturn this.style(string);\n\t}\n}\n\n/**\n * The options for {@link LoggerStyle}.\n * @since 1.0.0\n */\nexport interface LoggerStyleOptions {\n\t/**\n\t * The text effects, e.g. `italic`, `strikethrough`, etc.\n\t * @since 1.0.0\n\t */\n\teffects?: LoggerStyleEffect[];\n\n\t/**\n\t * The text color, e.g. `red` or `yellow`.\n\t * @since 1.0.0\n\t */\n\ttext?: LoggerStyleText;\n\n\t/**\n\t * The background color, e.g. `magenta` or `red`.\n\t * @since 1.0.0\n\t */\n\tbackground?: LoggerStyleBackground;\n}\n\n/**\n * The value accepted by {@link LoggerStyle}'s constructor. Read `colorette`'s documentation for more information.\n * @since 1.0.0\n * @seealso https://www.npmjs.com/package/colorette\n */\nexport type LoggerStyleResolvable = Colorette.Color | LoggerStyleOptions;\n\n/**\n * The text styles.\n * @since 1.0.0\n */\nexport enum LoggerStyleEffect {\n\tReset = 'reset',\n\tBold = 'bold',\n\tDim = 'dim',\n\tItalic = 'italic',\n\tUnderline = 'underline',\n\tInverse = 'inverse',\n\tHidden = 'hidden',\n\tStrikethrough = 'strikethrough'\n}\n\n/**\n * The text colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleText {\n\tBlack = 'black',\n\tRed = 'red',\n\tGreen = 'green',\n\tYellow = 'yellow',\n\tBlue = 'blue',\n\tMagenta = 'magenta',\n\tCyan = 'cyan',\n\tWhite = 'white',\n\tGray = 'gray',\n\tBlackBright = 'blackBright',\n\tRedBright = 'redBright',\n\tGreenBright = 'greenBright',\n\tYellowBright = 'yellowBright',\n\tBlueBright = 'blueBright',\n\tMagentaBright = 'magentaBright',\n\tCyanBright = 'cyanBright',\n\tWhiteBright = 'whiteBright'\n}\n\n/**\n * The background colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleBackground {\n\tBlack = 'bgBlack',\n\tRed = 'bgRed',\n\tGreen = 'bgGreen',\n\tYellow = 'bgYellow',\n\tBlue = 'bgBlue',\n\tMagenta = 'bgMagenta',\n\tCyan = 'bgCyan',\n\tWhite = 'bgWhite',\n\tBlackBright = 'bgBlackBright',\n\tRedBright = 'bgRedBright',\n\tGreenBright = 'bgGreenBright',\n\tYellowBright = 'bgYellowBright',\n\tBlueBright = 'bgBlueBright',\n\tMagentaBright = 'bgMagentaBright',\n\tCyanBright = 'bgCyanBright',\n\tWhiteBright = 'bgWhiteBright'\n}\n"]}
{"version":3,"sources":["../../../src/lib/LoggerStyle.ts"],"names":["LoggerStyleEffect","LoggerStyleText","LoggerStyleBackground"],"mappings":"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","file":"LoggerStyle.mjs","sourcesContent":["import * as Colorette from 'colorette';\n\n/**\n * Logger utility that applies a style to a string.\n * @since 1.0.0\n */\nexport class LoggerStyle {\n\tpublic readonly style: Colorette.Color;\n\n\tpublic constructor(resolvable: LoggerStyleResolvable = {}) {\n\t\tif (typeof resolvable === 'function') {\n\t\t\tthis.style = resolvable;\n\t\t} else {\n\t\t\tconst styles: Colorette.Color[] = [];\n\t\t\tif (resolvable.effects) styles.push(...resolvable.effects.map((text) => Colorette[text]));\n\t\t\tif (resolvable.text) styles.push(Colorette[resolvable.text]);\n\t\t\tif (resolvable.background) styles.push(Colorette[resolvable.background]);\n\n\t\t\tthis.style = styles.length\n\t\t\t\t? styles.length === 1\n\t\t\t\t\t? styles[0]\n\t\t\t\t\t: (string) => styles.reduce((out, style) => style(out), string) as string\n\t\t\t\t: Colorette.reset;\n\t\t}\n\t}\n\n\t/**\n\t * Applies the style to a string.\n\t * @since 1.0.0\n\t * @param string The value to apply the style to.\n\t */\n\tpublic run(string: string | number) {\n\t\treturn this.style(string);\n\t}\n}\n\n/**\n * The options for {@link LoggerStyle}.\n * @since 1.0.0\n */\nexport interface LoggerStyleOptions {\n\t/**\n\t * The text effects, e.g. `italic`, `strikethrough`, etc.\n\t * @since 1.0.0\n\t */\n\teffects?: LoggerStyleEffect[];\n\n\t/**\n\t * The text color, e.g. `red` or `yellow`.\n\t * @since 1.0.0\n\t */\n\ttext?: LoggerStyleText;\n\n\t/**\n\t * The background color, e.g. `magenta` or `red`.\n\t * @since 1.0.0\n\t */\n\tbackground?: LoggerStyleBackground;\n}\n\n/**\n * The value accepted by {@link LoggerStyle}'s constructor. Read `colorette`'s documentation for more information.\n * @since 1.0.0\n * @seealso https://www.npmjs.com/package/colorette\n */\nexport type LoggerStyleResolvable = Colorette.Color | LoggerStyleOptions;\n\n/**\n * The text styles.\n * @since 1.0.0\n */\nexport enum LoggerStyleEffect {\n\tReset = 'reset',\n\tBold = 'bold',\n\tDim = 'dim',\n\tItalic = 'italic',\n\tUnderline = 'underline',\n\tInverse = 'inverse',\n\tHidden = 'hidden',\n\tStrikethrough = 'strikethrough'\n}\n\n/**\n * The text colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleText {\n\tBlack = 'black',\n\tRed = 'red',\n\tGreen = 'green',\n\tYellow = 'yellow',\n\tBlue = 'blue',\n\tMagenta = 'magenta',\n\tCyan = 'cyan',\n\tWhite = 'white',\n\tGray = 'gray',\n\tBlackBright = 'blackBright',\n\tRedBright = 'redBright',\n\tGreenBright = 'greenBright',\n\tYellowBright = 'yellowBright',\n\tBlueBright = 'blueBright',\n\tMagentaBright = 'magentaBright',\n\tCyanBright = 'cyanBright',\n\tWhiteBright = 'whiteBright'\n}\n\n/**\n * The background colors.\n * @since 1.0.0\n */\nexport enum LoggerStyleBackground {\n\tBlack = 'bgBlack',\n\tRed = 'bgRed',\n\tGreen = 'bgGreen',\n\tYellow = 'bgYellow',\n\tBlue = 'bgBlue',\n\tMagenta = 'bgMagenta',\n\tCyan = 'bgCyan',\n\tWhite = 'bgWhite',\n\tBlackBright = 'bgBlackBright',\n\tRedBright = 'bgRedBright',\n\tGreenBright = 'bgGreenBright',\n\tYellowBright = 'bgYellowBright',\n\tBlueBright = 'bgBlueBright',\n\tMagentaBright = 'bgMagentaBright',\n\tCyanBright = 'bgCyanBright',\n\tWhiteBright = 'bgWhiteBright'\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../../src/lib/LoggerTimestamp.ts"],"names":[],"mappings":";;;;AAOO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAyBrB,WAAA,CAAY,OAAkC,GAAA,EAAI,EAAA;AApBzD;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,KAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAY,GAAA,IAAI,SAAU,CAAA,OAAA,CAAQ,WAAW,qBAAqB,CAAA;AACvE,IAAK,IAAA,CAAA,GAAA,GAAM,QAAQ,GAAO,IAAA,KAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAU,KAAA,IAAA,GAAO,OAAO,IAAI,WAAA,CAAY,QAAQ,KAAK,CAAA;AAC1E,IAAA,IAAA,CAAK,YAAY,OAAQ,CAAA,SAAA,KAAc,CAAC,SAAA,KAAc,GAAG,SAAS,CAAA,GAAA,CAAA,CAAA;AAAA;AACnE;AAAA;AAAA;AAAA;AAAA,EAMO,GAAM,GAAA;AACZ,IAAM,MAAA,IAAA,uBAAW,IAAK,EAAA;AACtB,IAAM,MAAA,MAAA,GAAS,IAAK,CAAA,GAAA,GAAM,IAAK,CAAA,SAAA,CAAU,UAAW,CAAA,IAAI,CAAI,GAAA,IAAA,CAAK,SAAU,CAAA,OAAA,CAAQ,IAAI,CAAA;AACvF,IAAO,OAAA,IAAA,CAAK,UAAU,IAAK,CAAA,KAAA,GAAQ,KAAK,KAAM,CAAA,GAAA,CAAI,MAAM,CAAA,GAAI,MAAM,CAAA;AAAA;AAEpE,CAAA;AAzC6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"LoggerTimestamp.mjs","sourcesContent":["import { Timestamp } from '@sapphire/timestamp';\nimport { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\n\n/**\n * Logger utility that formats a timestamp.\n * @since 1.0.0\n */\nexport class LoggerTimestamp {\n\t/**\n\t * The timestamp used to format the current date.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: Timestamp;\n\n\t/**\n\t * Whether or not the logger will show a timestamp in UTC.\n\t * @since 1.0.0\n\t */\n\tpublic utc: boolean;\n\n\t/**\n\t * The logger style to apply the color to the timestamp.\n\t * @since 1.0.0\n\t */\n\tpublic color: LoggerStyle | null;\n\n\t/**\n\t * The final formatter.\n\t * @since 1.0.0\n\t */\n\tpublic formatter: LoggerTimestampFormatter;\n\n\tpublic constructor(options: LoggerTimestampOptions = {}) {\n\t\tthis.timestamp = new Timestamp(options.pattern ?? 'YYYY-MM-DD HH:mm:ss');\n\t\tthis.utc = options.utc ?? false;\n\t\tthis.color = options.color === null ? null : new LoggerStyle(options.color);\n\t\tthis.formatter = options.formatter ?? ((timestamp) => `${timestamp} - `);\n\t}\n\n\t/**\n\t * Formats the current time.\n\t * @since 1.0.0\n\t */\n\tpublic run() {\n\t\tconst date = new Date();\n\t\tconst result = this.utc ? this.timestamp.displayUTC(date) : this.timestamp.display(date);\n\t\treturn this.formatter(this.color ? this.color.run(result) : result);\n\t}\n}\n\n/**\n * The options for {@link LoggerTimestamp}.\n * @since 1.0.0\n */\nexport interface LoggerTimestampOptions {\n\t/**\n\t * The {@link Timestamp} pattern.\n\t * @since 1.0.0\n\t * @default 'YYYY-MM-DD HH:mm:ss'\n\t * @example\n\t * ```typescript\n\t * 'YYYY-MM-DD HH:mm:ss'\n\t * // 2020-12-23 22:01:10\n\t * ```\n\t */\n\tpattern?: string;\n\n\t/**\n\t * Whether or not the date should be UTC.\n\t * @since 1.0.0\n\t * @default false\n\t */\n\tutc?: boolean;\n\n\t/**\n\t * The color to use.\n\t * @since 1.0.0\n\t * @default colorette.reset\n\t */\n\tcolor?: LoggerStyleResolvable | null;\n\n\t/**\n\t * The formatter. See {@link LoggerTimestampFormatter} for more information.\n\t * @since 1.0.0\n\t * @default (value) => `${value} - `\n\t */\n\tformatter?: LoggerTimestampFormatter;\n}\n\n/**\n * The formatter used for {@link LoggerTimestampOptions}. This will be run **after** applying the color to the formatter.\n * @since 1.0.0\n */\nexport interface LoggerTimestampFormatter {\n\t/**\n\t * @param timestamp The output of {@link LoggerStyle.run} on {@link Timestamp.display}/{@link Timestamp.displayUTC}.\n\t * @since 1.0.0\n\t */\n\t(timestamp: string): string;\n}\n"]}
{"version":3,"sources":["../../../src/lib/LoggerTimestamp.ts"],"names":[],"mappings":";;;;AAOO,IAAM,gBAAA,GAAN,MAAM,gBAAA,CAAgB;AAAA,EAyBrB,WAAA,CAAY,OAAA,GAAkC,EAAC,EAAG;AApBzD;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,KAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,OAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAA,aAAA,CAAA,IAAA,EAAO,WAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAA,GAAY,IAAI,SAAA,CAAU,OAAA,CAAQ,WAAW,qBAAqB,CAAA;AACvE,IAAA,IAAA,CAAK,GAAA,GAAM,QAAQ,GAAA,IAAO,KAAA;AAC1B,IAAA,IAAA,CAAK,KAAA,GAAQ,QAAQ,KAAA,KAAU,IAAA,GAAO,OAAO,IAAI,WAAA,CAAY,QAAQ,KAAK,CAAA;AAC1E,IAAA,IAAA,CAAK,YAAY,OAAA,CAAQ,SAAA,KAAc,CAAC,SAAA,KAAc,GAAG,SAAS,CAAA,GAAA,CAAA,CAAA;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,GAAA,GAAM;AACZ,IAAA,MAAM,IAAA,uBAAW,IAAA,EAAK;AACtB,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,GAAA,GAAM,IAAA,CAAK,SAAA,CAAU,UAAA,CAAW,IAAI,CAAA,GAAI,IAAA,CAAK,SAAA,CAAU,OAAA,CAAQ,IAAI,CAAA;AACvF,IAAA,OAAO,IAAA,CAAK,UAAU,IAAA,CAAK,KAAA,GAAQ,KAAK,KAAA,CAAM,GAAA,CAAI,MAAM,CAAA,GAAI,MAAM,CAAA;AAAA,EACnE;AACD,CAAA;AAzC6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA;AAAtB,IAAM,eAAA,GAAN","file":"LoggerTimestamp.mjs","sourcesContent":["import { Timestamp } from '@sapphire/timestamp';\nimport { LoggerStyle, type LoggerStyleResolvable } from './LoggerStyle';\n\n/**\n * Logger utility that formats a timestamp.\n * @since 1.0.0\n */\nexport class LoggerTimestamp {\n\t/**\n\t * The timestamp used to format the current date.\n\t * @since 1.0.0\n\t */\n\tpublic timestamp: Timestamp;\n\n\t/**\n\t * Whether or not the logger will show a timestamp in UTC.\n\t * @since 1.0.0\n\t */\n\tpublic utc: boolean;\n\n\t/**\n\t * The logger style to apply the color to the timestamp.\n\t * @since 1.0.0\n\t */\n\tpublic color: LoggerStyle | null;\n\n\t/**\n\t * The final formatter.\n\t * @since 1.0.0\n\t */\n\tpublic formatter: LoggerTimestampFormatter;\n\n\tpublic constructor(options: LoggerTimestampOptions = {}) {\n\t\tthis.timestamp = new Timestamp(options.pattern ?? 'YYYY-MM-DD HH:mm:ss');\n\t\tthis.utc = options.utc ?? false;\n\t\tthis.color = options.color === null ? null : new LoggerStyle(options.color);\n\t\tthis.formatter = options.formatter ?? ((timestamp) => `${timestamp} - `);\n\t}\n\n\t/**\n\t * Formats the current time.\n\t * @since 1.0.0\n\t */\n\tpublic run() {\n\t\tconst date = new Date();\n\t\tconst result = this.utc ? this.timestamp.displayUTC(date) : this.timestamp.display(date);\n\t\treturn this.formatter(this.color ? this.color.run(result) : result);\n\t}\n}\n\n/**\n * The options for {@link LoggerTimestamp}.\n * @since 1.0.0\n */\nexport interface LoggerTimestampOptions {\n\t/**\n\t * The {@link Timestamp} pattern.\n\t * @since 1.0.0\n\t * @default 'YYYY-MM-DD HH:mm:ss'\n\t * @example\n\t * ```typescript\n\t * 'YYYY-MM-DD HH:mm:ss'\n\t * // 2020-12-23 22:01:10\n\t * ```\n\t */\n\tpattern?: string;\n\n\t/**\n\t * Whether or not the date should be UTC.\n\t * @since 1.0.0\n\t * @default false\n\t */\n\tutc?: boolean;\n\n\t/**\n\t * The color to use.\n\t * @since 1.0.0\n\t * @default colorette.reset\n\t */\n\tcolor?: LoggerStyleResolvable | null;\n\n\t/**\n\t * The formatter. See {@link LoggerTimestampFormatter} for more information.\n\t * @since 1.0.0\n\t * @default (value) => `${value} - `\n\t */\n\tformatter?: LoggerTimestampFormatter;\n}\n\n/**\n * The formatter used for {@link LoggerTimestampOptions}. This will be run **after** applying the color to the formatter.\n * @since 1.0.0\n */\nexport interface LoggerTimestampFormatter {\n\t/**\n\t * @param timestamp The output of {@link LoggerStyle.run} on {@link Timestamp.display}/{@link Timestamp.displayUTC}.\n\t * @since 1.0.0\n\t */\n\t(timestamp: string): string;\n}\n"]}

@@ -1,1 +0,1 @@

{"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AASO,IAAM,aAAA,GAAN,MAAM,aAAA,SAAqB,MAAO,CAAA;AAAA;AAAA;AAAA;AAAA,EAIxC,QAAe,yBAAyB,CAAA,CAAwB,OAA8B,EAAA;AAC7F,IAAA,OAAA,CAAQ,WAAW,EAAC;AACpB,IAAA,OAAA,CAAQ,MAAO,CAAA,QAAA,KAAa,IAAI,MAAA,CAAO,QAAQ,MAAM,CAAA;AAAA;AAEvD,CAAA;AARyC,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA;AAAlC,IAAM,YAAN,GAAA;AAUP,cAAA,CAAe,OAAQ,CAAA,qCAAA,CAAsC,YAAa,CAAA,yBAAyB,GAAG,kCAAkC,CAAA","file":"register.mjs","sourcesContent":["import './index';\n\nimport { Plugin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { Logger } from './index';\n\n/**\n * @since 1.0.0\n */\nexport class LoggerPlugin extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\toptions.logger ??= {};\n\t\toptions.logger.instance ??= new Logger(options.logger);\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(LoggerPlugin[preGenericsInitialization], 'Logger-PreGenericsInitialization');\n"]}
{"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AASO,IAAM,aAAA,GAAN,MAAM,aAAA,SAAqB,MAAA,CAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,QAAwB,yBAAyB,CAAA,CAAwB,OAAA,EAA8B;AACtG,IAAA,OAAA,CAAQ,WAAW,EAAC;AACpB,IAAA,OAAA,CAAQ,MAAA,CAAO,QAAA,KAAa,IAAI,MAAA,CAAO,QAAQ,MAAM,CAAA;AAAA,EACtD;AACD,CAAA;AARyC,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA;AAAlC,IAAM,YAAA,GAAN;AAUP,cAAA,CAAe,OAAA,CAAQ,qCAAA,CAAsC,YAAA,CAAa,yBAAyB,GAAG,kCAAkC,CAAA","file":"register.mjs","sourcesContent":["import './index';\n\nimport { Plugin, preGenericsInitialization, SapphireClient } from '@sapphire/framework';\nimport type { ClientOptions } from 'discord.js';\nimport { Logger } from './index';\n\n/**\n * @since 1.0.0\n */\nexport class LoggerPlugin extends Plugin {\n\t/**\n\t * @since 1.0.0\n\t */\n\tpublic static override [preGenericsInitialization](this: SapphireClient, options: ClientOptions): void {\n\t\toptions.logger ??= {};\n\t\toptions.logger.instance ??= new Logger(options.logger);\n\t}\n}\n\nSapphireClient.plugins.registerPreGenericsInitializationHook(LoggerPlugin[preGenericsInitialization], 'Logger-PreGenericsInitialization');\n"]}
{
"name": "@sapphire/plugin-logger",
"version": "4.1.0",
"version": "4.1.1-next.6906681",
"description": "Plugin for @sapphire/framework to have pretty console output",

@@ -87,9 +87,9 @@ "author": "@sapphire",

"@favware/rollup-type-bundler": "^4.0.0",
"concurrently": "^9.2.0",
"tsup": "^8.5.0",
"tsx": "^4.20.3",
"typedoc": "^0.26.11",
"concurrently": "^9.2.1",
"tsup": "^8.5.1",
"tsx": "^4.21.0",
"typedoc": "^0.28.14",
"typedoc-json-parser": "^10.2.0",
"typescript": "~5.4.5"
"typescript": "~5.9.3"
}
}