@sapphire/plugin-logger 4.0.3-next.fe95a62.0 → 4.1.0-next.c2464a5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +0 -1
  2. package/dist/cjs/index.cjs +2 -2
  3. package/dist/cjs/index.cjs.map +1 -1
  4. package/dist/cjs/index.d.cts +21 -1
  5. package/dist/cjs/lib/Logger.cjs +20 -9
  6. package/dist/cjs/lib/Logger.cjs.map +1 -1
  7. package/dist/cjs/lib/LoggerLevel.cjs +2 -5
  8. package/dist/cjs/lib/LoggerLevel.cjs.map +1 -1
  9. package/dist/cjs/lib/LoggerStyle.cjs +5 -11
  10. package/dist/cjs/lib/LoggerStyle.cjs.map +1 -1
  11. package/dist/cjs/lib/LoggerTimestamp.cjs +2 -5
  12. package/dist/cjs/lib/LoggerTimestamp.cjs.map +1 -1
  13. package/dist/cjs/lib/LoggerTransport.cjs +29 -0
  14. package/dist/cjs/lib/LoggerTransport.cjs.map +1 -0
  15. package/dist/cjs/register.cjs +1 -1
  16. package/dist/cjs/register.cjs.map +1 -1
  17. package/dist/esm/{chunk-6QB3UK4Q.mjs → chunk-2JTKI4GS.mjs} +3 -6
  18. package/dist/esm/chunk-2JTKI4GS.mjs.map +1 -0
  19. package/dist/esm/index.d.mts +21 -1
  20. package/dist/esm/index.mjs +3 -3
  21. package/dist/esm/index.mjs.map +1 -1
  22. package/dist/esm/lib/Logger.mjs +21 -7
  23. package/dist/esm/lib/Logger.mjs.map +1 -1
  24. package/dist/esm/lib/LoggerLevel.mjs +2 -2
  25. package/dist/esm/lib/LoggerLevel.mjs.map +1 -1
  26. package/dist/esm/lib/LoggerStyle.mjs +5 -8
  27. package/dist/esm/lib/LoggerStyle.mjs.map +1 -1
  28. package/dist/esm/lib/LoggerTimestamp.mjs +2 -2
  29. package/dist/esm/lib/LoggerTimestamp.mjs.map +1 -1
  30. package/dist/esm/lib/LoggerTransport.mjs +24 -0
  31. package/dist/esm/lib/LoggerTransport.mjs.map +1 -0
  32. package/dist/esm/register.mjs +2 -2
  33. package/dist/esm/register.mjs.map +1 -1
  34. package/package.json +7 -7
  35. package/dist/esm/chunk-6QB3UK4Q.mjs.map +0 -1
package/README.md CHANGED
@@ -7,7 +7,6 @@
7
7
  **Plugin for <a href="https://github.com/sapphiredev/framework">@sapphire/framework</a> to have pretty console output.**
8
8
 
9
9
  [![GitHub](https://img.shields.io/github/license/sapphiredev/plugins)](https://github.com/sapphiredev/plugins/blob/main/LICENSE.md)
10
- [![codecov](https://codecov.io/gh/sapphiredev/plugins/branch/main/graph/badge.svg?token=QWL8FB16BR)](https://codecov.io/gh/sapphiredev/plugins)
11
10
  [![npm bundle size](https://img.shields.io/bundlephobia/min/@sapphire/plugin-logger?logo=webpack&style=flat-square)](https://bundlephobia.com/result?p=@sapphire/plugin-logger)
12
11
  [![npm](https://img.shields.io/npm/v/@sapphire/plugin-logger?color=crimson&logo=npm&style=flat-square)](https://www.npmjs.com/package/@sapphire/plugin-logger)
13
12
 
@@ -6,7 +6,7 @@ var LoggerStyle_cjs = require('./lib/LoggerStyle.cjs');
6
6
  var LoggerTimestamp_cjs = require('./lib/LoggerTimestamp.cjs');
7
7
 
8
8
  // src/index.ts
9
- var version = "4.0.3-next.fe95a62.0";
9
+ var version = "4.1.0-next.c2464a5";
10
10
 
11
11
  exports.version = version;
12
12
  Object.keys(Logger_cjs).forEach(function (k) {
@@ -33,5 +33,5 @@ Object.keys(LoggerTimestamp_cjs).forEach(function (k) {
33
33
  get: function () { return LoggerTimestamp_cjs[k]; }
34
34
  });
35
35
  });
36
- //# sourceMappingURL=out.js.map
36
+ //# sourceMappingURL=index.cjs.map
37
37
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAaP,IAAM,UAAkB","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.0.3-next.fe95a62.0';\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;AAwBO,IAAM,OAAkB,GAAA","file":"index.cjs","sourcesContent":["import type { Collection } from 'discord.js';\nimport type { LoggerOptions } from './lib/Logger';\nimport type { LoggerTransport } from './lib/LoggerTransport';\nimport type { LogLevel } from '@sapphire/framework';\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\texport interface Container {\n\t\ttransporters: Collection<LogLevel, LoggerTransport>;\n\t}\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-next.c2464a5';\n"]}
@@ -1,4 +1,5 @@
1
- import { Logger as Logger$1, LogLevel } from '@sapphire/framework';
1
+ import { Collection } from 'discord.js';
2
+ import { LogLevel, Logger as Logger$1 } from '@sapphire/framework';
2
3
  import * as Colorette from 'colorette';
3
4
  import { Timestamp } from '@sapphire/timestamp';
4
5
 
@@ -230,6 +231,17 @@ interface LoggerLevelOptions {
230
231
  message?: LoggerStyleResolvable | null;
231
232
  }
232
233
 
234
+ declare class LoggerTransport {
235
+ fileName: string;
236
+ loglevel: LogLevel;
237
+ constructor(options: TransporterOption);
238
+ transport(message: string): Promise<void>;
239
+ }
240
+ interface TransporterOption {
241
+ file: string;
242
+ loglevel: LogLevel;
243
+ }
244
+
233
245
  /**
234
246
  * The logger class.
235
247
  * @since 1.0.0
@@ -325,6 +337,11 @@ interface LoggerOptions {
325
337
  * @default 0
326
338
  */
327
339
  depth?: number;
340
+ /**
341
+ * The transporter options
342
+ * @since 4.1.0
343
+ */
344
+ transports?: TransporterOption[];
328
345
  }
329
346
  /**
330
347
  * The logger format options.
@@ -371,6 +388,9 @@ interface LoggerFormatOptions {
371
388
  declare module '@sapphire/framework' {
372
389
  interface ClientLoggerOptions extends LoggerOptions {
373
390
  }
391
+ interface Container {
392
+ transporters: Collection<LogLevel, LoggerTransport>;
393
+ }
374
394
  }
375
395
  /**
376
396
  * The [@sapphire/plugin-logger](https://github.com/sapphiredev/plugins/blob/main/packages/logger) version that you are currently using.
@@ -5,14 +5,12 @@ var colorette = require('colorette');
5
5
  var console = require('console');
6
6
  var util = require('util');
7
7
  var LoggerLevel_cjs = require('./LoggerLevel.cjs');
8
+ var LoggerTransport_cjs = require('./LoggerTransport.cjs');
8
9
 
9
10
  var __defProp = Object.defineProperty;
10
11
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
12
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
12
- var __publicField = (obj, key, value) => {
13
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
14
- return value;
15
- };
13
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
16
14
  var _Logger = class _Logger extends framework.Logger {
17
15
  constructor(options = {}) {
18
16
  super(options.level ?? framework.LogLevel.Info);
@@ -40,6 +38,17 @@ var _Logger = class _Logger extends framework.Logger {
40
38
  this.formats = _Logger.createFormatMap(options.format, options.defaultFormat);
41
39
  this.join = options.join ?? " ";
42
40
  this.depth = options.depth ?? 0;
41
+ if (options.transports) {
42
+ for (const transport of options.transports) {
43
+ framework.container.transporters.set(
44
+ transport.loglevel,
45
+ new LoggerTransport_cjs.LoggerTransport({
46
+ file: transport.file,
47
+ loglevel: transport.loglevel
48
+ })
49
+ );
50
+ }
51
+ }
43
52
  }
44
53
  /**
45
54
  * Writes the log message given a level and the value(s).
@@ -47,11 +56,14 @@ var _Logger = class _Logger extends framework.Logger {
47
56
  * @param values The values to log.
48
57
  */
49
58
  write(level, ...values) {
50
- if (level < this.level)
51
- return;
59
+ if (level < this.level) return;
52
60
  const method = this.levels.get(level) ?? "log";
53
61
  const formatter = this.formats.get(level) ?? this.formats.get(framework.LogLevel.None);
54
62
  this.console[method](formatter.run(this.preprocess(values)));
63
+ const transporter = framework.container.transporters.get(level);
64
+ if (transporter) {
65
+ void transporter.transport(formatter.run(this.preprocess(values)));
66
+ }
55
67
  }
56
68
  /**
57
69
  * Pre-processes an array of values.
@@ -84,8 +96,7 @@ var _Logger = class _Logger extends framework.Logger {
84
96
  ]);
85
97
  }
86
98
  static ensureDefaultLevel(options, defaults, color, name) {
87
- if (options)
88
- return new LoggerLevel_cjs.LoggerLevel(options);
99
+ if (options) return new LoggerLevel_cjs.LoggerLevel(options);
89
100
  return new LoggerLevel_cjs.LoggerLevel({
90
101
  ...defaults,
91
102
  timestamp: defaults.timestamp === null ? null : { ...defaults.timestamp ?? {}, color },
@@ -97,5 +108,5 @@ __name(_Logger, "Logger");
97
108
  var Logger = _Logger;
98
109
 
99
110
  exports.Logger = Logger;
100
- //# sourceMappingURL=out.js.map
111
+ //# sourceMappingURL=Logger.cjs.map
101
112
  //# sourceMappingURL=Logger.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/Logger.ts"],"names":[],"mappings":"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","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
+ {"version":3,"sources":["../../../src/lib/Logger.ts"],"names":["BuiltinLogger","LogLevel","Console","container","LoggerTransport","isColorSupported","inspect","gray","magenta","cyan","yellow","red","bgRed","white","LoggerLevel"],"mappings":"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","file":"Logger.cjs","sourcesContent":["import { Logger as BuiltinLogger, container, 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';\nimport { LoggerTransport, type TransporterOption } from './LoggerTransport';\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\n\t\tif (options.transports) {\n\t\t\tfor (const transport of options.transports) {\n\t\t\t\tcontainer.transporters.set(\n\t\t\t\t\ttransport.loglevel,\n\t\t\t\t\tnew LoggerTransport({\n\t\t\t\t\t\tfile: transport.file,\n\t\t\t\t\t\tloglevel: transport.loglevel\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t}\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\tconst transporter = container.transporters.get(level);\n\t\tif (transporter) {\n\t\t\tvoid transporter.transport(formatter.run(this.preprocess(values)));\n\t\t}\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\t/**\n\t * The transporter options\n\t * @since 4.1.0\n\t */\n\ttransports?: TransporterOption[];\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"]}
@@ -6,10 +6,7 @@ var LoggerTimestamp_cjs = require('./LoggerTimestamp.cjs');
6
6
  var __defProp = Object.defineProperty;
7
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
8
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __publicField = (obj, key, value) => {
10
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
- return value;
12
- };
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
10
  var _LoggerLevel = class _LoggerLevel {
14
11
  constructor(options = {}) {
15
12
  /**
@@ -44,5 +41,5 @@ __name(_LoggerLevel, "LoggerLevel");
44
41
  var LoggerLevel = _LoggerLevel;
45
42
 
46
43
  exports.LoggerLevel = LoggerLevel;
47
- //# sourceMappingURL=out.js.map
44
+ //# sourceMappingURL=LoggerLevel.cjs.map
48
45
  //# sourceMappingURL=LoggerLevel.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LoggerLevel.ts"],"names":[],"mappings":";;;;;;;;;AAAA,SAAS,mBAA+C;AACxD,SAAS,uBAAoD;AAMtD,IAAM,eAAN,MAAM,aAAY;AAAA,EAmBjB,YAAY,UAA8B,CAAC,GAAG;AAdrD;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAGN,SAAK,YAAY,QAAQ,cAAc,OAAO,OAAO,IAAI,gBAAgB,QAAQ,SAAS;AAC1F,SAAK,QAAQ,QAAQ,SAAS;AAC9B,SAAK,UAAU,QAAQ,YAAY,OAAO,OAAO,IAAI,YAAY,QAAQ,OAAO;AAAA,EACjF;AAAA,EAEO,IAAI,SAAiB;AAC3B,UAAM,UAAU,KAAK,WAAW,IAAI,KAAK,MAAM,KAAK;AAEpD,QAAI,OAAO,QAAQ;AAClB,YAAM,YAAY,KAAK,UACpB,CAAC,SAAiB,SAAS,KAAK,QAAS,IAAI,IAAI,IACjD,CAAC,SAAiB,SAAS;AAC9B,aAAO,QAAQ,MAAM,IAAI,EAAE,IAAI,SAAS,EAAE,KAAK,IAAI;AAAA,IACpD;AAEA,WAAO,KAAK,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI;AAAA,EACnD;AACD;AArCyB;AAAlB,IAAM,cAAN","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
+ {"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,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAGN,IAAK,IAAA,CAAA,SAAA,GAAY,QAAQ,SAAc,KAAA,IAAA,GAAO,OAAO,IAAIA,mCAAA,CAAgB,QAAQ,SAAS,CAAA,CAAA;AAC1F,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAS,IAAA,EAAA,CAAA;AAC9B,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,OAAY,KAAA,IAAA,GAAO,OAAO,IAAIC,2BAAA,CAAY,QAAQ,OAAO,CAAA,CAAA;AAAA,GACjF;AAAA,EAEO,IAAI,OAAiB,EAAA;AAC3B,IAAA,MAAM,UAAU,IAAK,CAAA,SAAA,EAAW,GAAI,EAAA,IAAK,MAAM,IAAK,CAAA,KAAA,CAAA;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,CAAA;AAC9B,MAAO,OAAA,OAAA,CAAQ,MAAM,IAAI,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAAA,KACpD;AAEA,IAAA,OAAO,KAAK,OAAU,GAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,OAAO,CAAI,GAAA,OAAA,CAAA;AAAA,GACnD;AACD,CAAA,CAAA;AArCyB,MAAA,CAAA,YAAA,EAAA,aAAA,CAAA,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"]}
@@ -25,10 +25,7 @@ var Colorette__namespace = /*#__PURE__*/_interopNamespace(Colorette);
25
25
  var __defProp = Object.defineProperty;
26
26
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
27
27
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
28
- var __publicField = (obj, key, value) => {
29
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
30
- return value;
31
- };
28
+ var __publicField = (obj, key, value) => __defNormalProp(obj, key + "" , value);
32
29
  var _LoggerStyle = class _LoggerStyle {
33
30
  constructor(resolvable = {}) {
34
31
  __publicField(this, "style");
@@ -36,12 +33,9 @@ var _LoggerStyle = class _LoggerStyle {
36
33
  this.style = resolvable;
37
34
  } else {
38
35
  const styles = [];
39
- if (resolvable.effects)
40
- styles.push(...resolvable.effects.map((text) => Colorette__namespace[text]));
41
- if (resolvable.text)
42
- styles.push(Colorette__namespace[resolvable.text]);
43
- if (resolvable.background)
44
- styles.push(Colorette__namespace[resolvable.background]);
36
+ if (resolvable.effects) styles.push(...resolvable.effects.map((text) => Colorette__namespace[text]));
37
+ if (resolvable.text) styles.push(Colorette__namespace[resolvable.text]);
38
+ if (resolvable.background) styles.push(Colorette__namespace[resolvable.background]);
45
39
  this.style = styles.length ? styles.length === 1 ? styles[0] : (string) => styles.reduce((out, style) => style(out), string) : Colorette__namespace.reset;
46
40
  }
47
41
  }
@@ -111,5 +105,5 @@ exports.LoggerStyle = LoggerStyle;
111
105
  exports.LoggerStyleBackground = LoggerStyleBackground;
112
106
  exports.LoggerStyleEffect = LoggerStyleEffect;
113
107
  exports.LoggerStyleText = LoggerStyleText;
114
- //# sourceMappingURL=out.js.map
108
+ //# sourceMappingURL=LoggerStyle.cjs.map
115
109
  //# sourceMappingURL=LoggerStyle.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LoggerStyle.ts"],"names":["LoggerStyleEffect","LoggerStyleText","LoggerStyleBackground"],"mappings":";;;;;;;;;AAAA,YAAY,eAAe;AAMpB,IAAM,eAAN,MAAM,aAAY;AAAA,EAGjB,YAAY,aAAoC,CAAC,GAAG;AAF3D,wBAAgB;AAGf,QAAI,OAAO,eAAe,YAAY;AACrC,WAAK,QAAQ;AAAA,IACd,OAAO;AACN,YAAM,SAA4B,CAAC;AACnC,UAAI,WAAW;AAAS,eAAO,KAAK,GAAG,WAAW,QAAQ,IAAI,CAAC,SAAS,UAAU,IAAI,CAAC,CAAC;AACxF,UAAI,WAAW;AAAM,eAAO,KAAK,UAAU,WAAW,IAAI,CAAC;AAC3D,UAAI,WAAW;AAAY,eAAO,KAAK,UAAU,WAAW,UAAU,CAAC;AAEvE,WAAK,QAAQ,OAAO,SACjB,OAAO,WAAW,IACjB,OAAO,CAAC,IACR,CAAC,WAAW,OAAO,OAAO,CAAC,KAAK,UAAU,MAAM,GAAG,GAAG,MAAM,IACnD;AAAA,IACd;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,IAAI,QAAyB;AACnC,WAAO,KAAK,MAAM,MAAM;AAAA,EACzB;AACD;AA5ByB;AAAlB,IAAM,cAAN;AAiEA,IAAK,oBAAL,kBAAKA,uBAAL;AACN,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,UAAO;AACP,EAAAA,mBAAA,SAAM;AACN,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,eAAY;AACZ,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,mBAAgB;AARL,SAAAA;AAAA,GAAA;AAeL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,YAAS;AACT,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,kBAAe;AACf,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,mBAAgB;AAChB,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,iBAAc;AAjBH,SAAAA;AAAA,GAAA;AAwBL,IAAK,wBAAL,kBAAKC,2BAAL;AACN,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,SAAM;AACN,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,YAAS;AACT,EAAAA,uBAAA,UAAO;AACP,EAAAA,uBAAA,aAAU;AACV,EAAAA,uBAAA,UAAO;AACP,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,eAAY;AACZ,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,kBAAe;AACf,EAAAA,uBAAA,gBAAa;AACb,EAAAA,uBAAA,mBAAgB;AAChB,EAAAA,uBAAA,gBAAa;AACb,EAAAA,uBAAA,iBAAc;AAhBH,SAAAA;AAAA,GAAA","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
+ {"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"]}
@@ -6,10 +6,7 @@ var LoggerStyle_cjs = require('./LoggerStyle.cjs');
6
6
  var __defProp = Object.defineProperty;
7
7
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
8
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
- var __publicField = (obj, key, value) => {
10
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
- return value;
12
- };
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
13
10
  var _LoggerTimestamp = class _LoggerTimestamp {
14
11
  constructor(options = {}) {
15
12
  /**
@@ -51,5 +48,5 @@ __name(_LoggerTimestamp, "LoggerTimestamp");
51
48
  var LoggerTimestamp = _LoggerTimestamp;
52
49
 
53
50
  exports.LoggerTimestamp = LoggerTimestamp;
54
- //# sourceMappingURL=out.js.map
51
+ //# sourceMappingURL=LoggerTimestamp.cjs.map
55
52
  //# sourceMappingURL=LoggerTimestamp.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LoggerTimestamp.ts"],"names":[],"mappings":";;;;;;;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,mBAA+C;AAMjD,IAAM,mBAAN,MAAM,iBAAgB;AAAA,EAyBrB,YAAY,UAAkC,CAAC,GAAG;AApBzD;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAGN,SAAK,YAAY,IAAI,UAAU,QAAQ,WAAW,qBAAqB;AACvE,SAAK,MAAM,QAAQ,OAAO;AAC1B,SAAK,QAAQ,QAAQ,UAAU,OAAO,OAAO,IAAI,YAAY,QAAQ,KAAK;AAC1E,SAAK,YAAY,QAAQ,cAAc,CAAC,cAAc,GAAG,SAAS;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,MAAM;AACZ,UAAM,OAAO,oBAAI,KAAK;AACtB,UAAM,SAAS,KAAK,MAAM,KAAK,UAAU,WAAW,IAAI,IAAI,KAAK,UAAU,QAAQ,IAAI;AACvF,WAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,MAAM,IAAI,MAAM,IAAI,MAAM;AAAA,EACnE;AACD;AAzC6B;AAAtB,IAAM,kBAAN","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
+ {"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,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAY,GAAA,IAAIA,mBAAU,CAAA,OAAA,CAAQ,WAAW,qBAAqB,CAAA,CAAA;AACvE,IAAK,IAAA,CAAA,GAAA,GAAM,QAAQ,GAAO,IAAA,KAAA,CAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAU,KAAA,IAAA,GAAO,OAAO,IAAIC,2BAAA,CAAY,QAAQ,KAAK,CAAA,CAAA;AAC1E,IAAA,IAAA,CAAK,YAAY,OAAQ,CAAA,SAAA,KAAc,CAAC,SAAA,KAAc,GAAG,SAAS,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,GACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,GAAM,GAAA;AACZ,IAAM,MAAA,IAAA,uBAAW,IAAK,EAAA,CAAA;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,CAAA;AACvF,IAAO,OAAA,IAAA,CAAK,UAAU,IAAK,CAAA,KAAA,GAAQ,KAAK,KAAM,CAAA,GAAA,CAAI,MAAM,CAAA,GAAI,MAAM,CAAA,CAAA;AAAA,GACnE;AACD,CAAA,CAAA;AAzC6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,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"]}
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ var promises = require('fs/promises');
4
+ var pieces = require('@sapphire/pieces');
5
+ require('@sapphire/framework');
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
10
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
11
+ var _LoggerTransport = class _LoggerTransport {
12
+ constructor(options) {
13
+ __publicField(this, "fileName");
14
+ __publicField(this, "loglevel");
15
+ this.fileName = options.file;
16
+ this.loglevel = options.loglevel;
17
+ pieces.container.transporters.set(this.loglevel, this);
18
+ }
19
+ async transport(message) {
20
+ await promises.appendFile(this.fileName, `${message}
21
+ `);
22
+ }
23
+ };
24
+ __name(_LoggerTransport, "LoggerTransport");
25
+ var LoggerTransport = _LoggerTransport;
26
+
27
+ exports.LoggerTransport = LoggerTransport;
28
+ //# sourceMappingURL=LoggerTransport.cjs.map
29
+ //# sourceMappingURL=LoggerTransport.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/LoggerTransport.ts"],"names":["container","appendFile"],"mappings":";;;;;;;;;;AAIO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAGrB,YAAY,OAA4B,EAAA;AAF/C,IAAO,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AACP,IAAO,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AAEN,IAAA,IAAA,CAAK,WAAW,OAAQ,CAAA,IAAA,CAAA;AACxB,IAAA,IAAA,CAAK,WAAW,OAAQ,CAAA,QAAA,CAAA;AACxB,IAAAA,gBAAA,CAAU,YAAa,CAAA,GAAA,CAAI,IAAK,CAAA,QAAA,EAAU,IAAI,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,MAAa,UAAU,OAAiB,EAAA;AACvC,IAAA,MAAMC,mBAAW,CAAA,IAAA,CAAK,QAAU,EAAA,CAAA,EAAG,OAAO,CAAA;AAAA,CAAI,CAAA,CAAA;AAAA,GAC/C;AACD,CAAA,CAAA;AAZ6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"LoggerTransport.cjs","sourcesContent":["import { appendFile } from 'node:fs/promises';\nimport { container } from '@sapphire/pieces';\nimport { LogLevel } from '@sapphire/framework';\n\nexport class LoggerTransport {\n\tpublic fileName: string;\n\tpublic loglevel: LogLevel;\n\tpublic constructor(options: TransporterOption) {\n\t\tthis.fileName = options.file;\n\t\tthis.loglevel = options.loglevel;\n\t\tcontainer.transporters.set(this.loglevel, this);\n\t}\n\n\tpublic async transport(message: string) {\n\t\tawait appendFile(this.fileName, `${message}\\n`);\n\t}\n}\n\nexport interface TransporterOption {\n\tfile: string;\n\tloglevel: LogLevel;\n}\n"]}
@@ -19,5 +19,5 @@ var LoggerPlugin = _LoggerPlugin;
19
19
  framework.SapphireClient.plugins.registerPreGenericsInitializationHook(LoggerPlugin[framework.preGenericsInitialization], "Logger-PreGenericsInitialization");
20
20
 
21
21
  exports.LoggerPlugin = LoggerPlugin;
22
- //# sourceMappingURL=out.js.map
22
+ //# sourceMappingURL=register.cjs.map
23
23
  //# sourceMappingURL=register.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;AAAA,OAAO;AAEP,SAAS,QAAQ,2BAA2B,sBAAsB;AAElE,SAAS,cAAc;AAKhB,IAAM,gBAAN,MAAM,sBAAqB,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,QAAe,yBAAyB,EAAwB,SAA8B;AAC7F,YAAQ,WAAW,CAAC;AACpB,YAAQ,OAAO,WAAW,IAAI,OAAO,QAAQ,MAAM;AAAA,EACpD;AACD;AARyC;AAAlC,IAAM,eAAN;AAUP,eAAe,QAAQ,sCAAsC,aAAa,yBAAyB,GAAG,kCAAkC","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"]}
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,CAAA;AACpB,IAAA,OAAA,CAAQ,MAAO,CAAA,QAAA,GAAW,IAAIC,gBAAA,CAAO,QAAQ,MAAM,CAAA,CAAA;AAAA,GACpD;AACD,CAAA,CAAA;AARyC,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA,CAAA;AAAlC,IAAM,YAAN,GAAA,cAAA;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"]}
@@ -1,11 +1,8 @@
1
1
  var __defProp = Object.defineProperty;
2
2
  var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
3
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
4
- var __publicField = (obj, key, value) => {
5
- __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
- return value;
7
- };
4
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
5
 
9
6
  export { __name, __publicField };
10
- //# sourceMappingURL=out.js.map
11
- //# sourceMappingURL=chunk-6QB3UK4Q.mjs.map
7
+ //# sourceMappingURL=chunk-2JTKI4GS.mjs.map
8
+ //# sourceMappingURL=chunk-2JTKI4GS.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-2JTKI4GS.mjs"}
@@ -1,4 +1,5 @@
1
- import { Logger as Logger$1, LogLevel } from '@sapphire/framework';
1
+ import { Collection } from 'discord.js';
2
+ import { LogLevel, Logger as Logger$1 } from '@sapphire/framework';
2
3
  import * as Colorette from 'colorette';
3
4
  import { Timestamp } from '@sapphire/timestamp';
4
5
 
@@ -230,6 +231,17 @@ interface LoggerLevelOptions {
230
231
  message?: LoggerStyleResolvable | null;
231
232
  }
232
233
 
234
+ declare class LoggerTransport {
235
+ fileName: string;
236
+ loglevel: LogLevel;
237
+ constructor(options: TransporterOption);
238
+ transport(message: string): Promise<void>;
239
+ }
240
+ interface TransporterOption {
241
+ file: string;
242
+ loglevel: LogLevel;
243
+ }
244
+
233
245
  /**
234
246
  * The logger class.
235
247
  * @since 1.0.0
@@ -325,6 +337,11 @@ interface LoggerOptions {
325
337
  * @default 0
326
338
  */
327
339
  depth?: number;
340
+ /**
341
+ * The transporter options
342
+ * @since 4.1.0
343
+ */
344
+ transports?: TransporterOption[];
328
345
  }
329
346
  /**
330
347
  * The logger format options.
@@ -371,6 +388,9 @@ interface LoggerFormatOptions {
371
388
  declare module '@sapphire/framework' {
372
389
  interface ClientLoggerOptions extends LoggerOptions {
373
390
  }
391
+ interface Container {
392
+ transporters: Collection<LogLevel, LoggerTransport>;
393
+ }
374
394
  }
375
395
  /**
376
396
  * The [@sapphire/plugin-logger](https://github.com/sapphiredev/plugins/blob/main/packages/logger) version that you are currently using.
@@ -1,11 +1,11 @@
1
- import './chunk-6QB3UK4Q.mjs';
1
+ import './chunk-2JTKI4GS.mjs';
2
2
  export * from './lib/Logger.mjs';
3
3
  export * from './lib/LoggerLevel.mjs';
4
4
  export * from './lib/LoggerStyle.mjs';
5
5
  export * from './lib/LoggerTimestamp.mjs';
6
6
 
7
- var version = "4.0.3-next.fe95a62.0";
7
+ var version = "4.1.0-next.c2464a5";
8
8
 
9
9
  export { version };
10
- //# sourceMappingURL=out.js.map
10
+ //# sourceMappingURL=index.mjs.map
11
11
  //# sourceMappingURL=index.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;AAEA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAaP,IAAM,UAAkB","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.0.3-next.fe95a62.0';\n"]}
1
+ {"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAwBO,IAAM,OAAkB,GAAA","file":"index.mjs","sourcesContent":["import type { Collection } from 'discord.js';\nimport type { LoggerOptions } from './lib/Logger';\nimport type { LoggerTransport } from './lib/LoggerTransport';\nimport type { LogLevel } from '@sapphire/framework';\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\texport interface Container {\n\t\ttransporters: Collection<LogLevel, LoggerTransport>;\n\t}\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-next.c2464a5';\n"]}
@@ -1,9 +1,10 @@
1
- import { __name, __publicField } from '../chunk-6QB3UK4Q.mjs';
2
- import { Logger as Logger$1, LogLevel } from '@sapphire/framework';
1
+ import { __name, __publicField } from '../chunk-2JTKI4GS.mjs';
2
+ import { Logger as Logger$1, LogLevel, container } from '@sapphire/framework';
3
3
  import { isColorSupported, gray, magenta, cyan, yellow, red, bgRed, white } from 'colorette';
4
4
  import { Console } from 'console';
5
5
  import { inspect } from 'util';
6
6
  import { LoggerLevel } from './LoggerLevel.mjs';
7
+ import { LoggerTransport } from './LoggerTransport.mjs';
7
8
 
8
9
  var _Logger = class _Logger extends Logger$1 {
9
10
  constructor(options = {}) {
@@ -32,6 +33,17 @@ var _Logger = class _Logger extends Logger$1 {
32
33
  this.formats = _Logger.createFormatMap(options.format, options.defaultFormat);
33
34
  this.join = options.join ?? " ";
34
35
  this.depth = options.depth ?? 0;
36
+ if (options.transports) {
37
+ for (const transport of options.transports) {
38
+ container.transporters.set(
39
+ transport.loglevel,
40
+ new LoggerTransport({
41
+ file: transport.file,
42
+ loglevel: transport.loglevel
43
+ })
44
+ );
45
+ }
46
+ }
35
47
  }
36
48
  /**
37
49
  * Writes the log message given a level and the value(s).
@@ -39,11 +51,14 @@ var _Logger = class _Logger extends Logger$1 {
39
51
  * @param values The values to log.
40
52
  */
41
53
  write(level, ...values) {
42
- if (level < this.level)
43
- return;
54
+ if (level < this.level) return;
44
55
  const method = this.levels.get(level) ?? "log";
45
56
  const formatter = this.formats.get(level) ?? this.formats.get(LogLevel.None);
46
57
  this.console[method](formatter.run(this.preprocess(values)));
58
+ const transporter = container.transporters.get(level);
59
+ if (transporter) {
60
+ void transporter.transport(formatter.run(this.preprocess(values)));
61
+ }
47
62
  }
48
63
  /**
49
64
  * Pre-processes an array of values.
@@ -76,8 +91,7 @@ var _Logger = class _Logger extends Logger$1 {
76
91
  ]);
77
92
  }
78
93
  static ensureDefaultLevel(options, defaults, color, name) {
79
- if (options)
80
- return new LoggerLevel(options);
94
+ if (options) return new LoggerLevel(options);
81
95
  return new LoggerLevel({
82
96
  ...defaults,
83
97
  timestamp: defaults.timestamp === null ? null : { ...defaults.timestamp ?? {}, color },
@@ -89,5 +103,5 @@ __name(_Logger, "Logger");
89
103
  var Logger = _Logger;
90
104
 
91
105
  export { Logger };
92
- //# sourceMappingURL=out.js.map
106
+ //# sourceMappingURL=Logger.mjs.map
93
107
  //# sourceMappingURL=Logger.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/Logger.ts"],"names":[],"mappings":"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","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
+ {"version":3,"sources":["../../../src/lib/Logger.ts"],"names":["BuiltinLogger"],"mappings":"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","file":"Logger.mjs","sourcesContent":["import { Logger as BuiltinLogger, container, 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';\nimport { LoggerTransport, type TransporterOption } from './LoggerTransport';\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\n\t\tif (options.transports) {\n\t\t\tfor (const transport of options.transports) {\n\t\t\t\tcontainer.transporters.set(\n\t\t\t\t\ttransport.loglevel,\n\t\t\t\t\tnew LoggerTransport({\n\t\t\t\t\t\tfile: transport.file,\n\t\t\t\t\t\tloglevel: transport.loglevel\n\t\t\t\t\t})\n\t\t\t\t);\n\t\t\t}\n\t\t}\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\tconst transporter = container.transporters.get(level);\n\t\tif (transporter) {\n\t\t\tvoid transporter.transport(formatter.run(this.preprocess(values)));\n\t\t}\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\t/**\n\t * The transporter options\n\t * @since 4.1.0\n\t */\n\ttransports?: TransporterOption[];\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,4 +1,4 @@
1
- import { __name, __publicField } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name, __publicField } from '../chunk-2JTKI4GS.mjs';
2
2
  import { LoggerStyle } from './LoggerStyle.mjs';
3
3
  import { LoggerTimestamp } from './LoggerTimestamp.mjs';
4
4
 
@@ -36,5 +36,5 @@ __name(_LoggerLevel, "LoggerLevel");
36
36
  var LoggerLevel = _LoggerLevel;
37
37
 
38
38
  export { LoggerLevel };
39
- //# sourceMappingURL=out.js.map
39
+ //# sourceMappingURL=LoggerLevel.mjs.map
40
40
  //# sourceMappingURL=LoggerLevel.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LoggerLevel.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,mBAA+C;AACxD,SAAS,uBAAoD;AAMtD,IAAM,eAAN,MAAM,aAAY;AAAA,EAmBjB,YAAY,UAA8B,CAAC,GAAG;AAdrD;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAGN,SAAK,YAAY,QAAQ,cAAc,OAAO,OAAO,IAAI,gBAAgB,QAAQ,SAAS;AAC1F,SAAK,QAAQ,QAAQ,SAAS;AAC9B,SAAK,UAAU,QAAQ,YAAY,OAAO,OAAO,IAAI,YAAY,QAAQ,OAAO;AAAA,EACjF;AAAA,EAEO,IAAI,SAAiB;AAC3B,UAAM,UAAU,KAAK,WAAW,IAAI,KAAK,MAAM,KAAK;AAEpD,QAAI,OAAO,QAAQ;AAClB,YAAM,YAAY,KAAK,UACpB,CAAC,SAAiB,SAAS,KAAK,QAAS,IAAI,IAAI,IACjD,CAAC,SAAiB,SAAS;AAC9B,aAAO,QAAQ,MAAM,IAAI,EAAE,IAAI,SAAS,EAAE,KAAK,IAAI;AAAA,IACpD;AAEA,WAAO,KAAK,UAAU,KAAK,QAAQ,IAAI,OAAO,IAAI;AAAA,EACnD;AACD;AArCyB;AAAlB,IAAM,cAAN","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
+ {"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,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,SAAA,CAAA,CAAA;AAGN,IAAK,IAAA,CAAA,SAAA,GAAY,QAAQ,SAAc,KAAA,IAAA,GAAO,OAAO,IAAI,eAAA,CAAgB,QAAQ,SAAS,CAAA,CAAA;AAC1F,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAS,IAAA,EAAA,CAAA;AAC9B,IAAK,IAAA,CAAA,OAAA,GAAU,QAAQ,OAAY,KAAA,IAAA,GAAO,OAAO,IAAI,WAAA,CAAY,QAAQ,OAAO,CAAA,CAAA;AAAA,GACjF;AAAA,EAEO,IAAI,OAAiB,EAAA;AAC3B,IAAA,MAAM,UAAU,IAAK,CAAA,SAAA,EAAW,GAAI,EAAA,IAAK,MAAM,IAAK,CAAA,KAAA,CAAA;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,CAAA;AAC9B,MAAO,OAAA,OAAA,CAAQ,MAAM,IAAI,CAAA,CAAE,IAAI,SAAS,CAAA,CAAE,KAAK,IAAI,CAAA,CAAA;AAAA,KACpD;AAEA,IAAA,OAAO,KAAK,OAAU,GAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,CAAI,OAAO,CAAI,GAAA,OAAA,CAAA;AAAA,GACnD;AACD,CAAA,CAAA;AArCyB,MAAA,CAAA,YAAA,EAAA,aAAA,CAAA,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"]}
@@ -1,4 +1,4 @@
1
- import { __name, __publicField } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name, __publicField } from '../chunk-2JTKI4GS.mjs';
2
2
  import * as Colorette from 'colorette';
3
3
 
4
4
  var _LoggerStyle = class _LoggerStyle {
@@ -8,12 +8,9 @@ var _LoggerStyle = class _LoggerStyle {
8
8
  this.style = resolvable;
9
9
  } else {
10
10
  const styles = [];
11
- if (resolvable.effects)
12
- styles.push(...resolvable.effects.map((text) => Colorette[text]));
13
- if (resolvable.text)
14
- styles.push(Colorette[resolvable.text]);
15
- if (resolvable.background)
16
- styles.push(Colorette[resolvable.background]);
11
+ if (resolvable.effects) styles.push(...resolvable.effects.map((text) => Colorette[text]));
12
+ if (resolvable.text) styles.push(Colorette[resolvable.text]);
13
+ if (resolvable.background) styles.push(Colorette[resolvable.background]);
17
14
  this.style = styles.length ? styles.length === 1 ? styles[0] : (string) => styles.reduce((out, style) => style(out), string) : Colorette.reset;
18
15
  }
19
16
  }
@@ -80,5 +77,5 @@ var LoggerStyleBackground = /* @__PURE__ */ ((LoggerStyleBackground2) => {
80
77
  })(LoggerStyleBackground || {});
81
78
 
82
79
  export { LoggerStyle, LoggerStyleBackground, LoggerStyleEffect, LoggerStyleText };
83
- //# sourceMappingURL=out.js.map
80
+ //# sourceMappingURL=LoggerStyle.mjs.map
84
81
  //# sourceMappingURL=LoggerStyle.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LoggerStyle.ts"],"names":["LoggerStyleEffect","LoggerStyleText","LoggerStyleBackground"],"mappings":";;;;;;AAAA,YAAY,eAAe;AAMpB,IAAM,eAAN,MAAM,aAAY;AAAA,EAGjB,YAAY,aAAoC,CAAC,GAAG;AAF3D,wBAAgB;AAGf,QAAI,OAAO,eAAe,YAAY;AACrC,WAAK,QAAQ;AAAA,IACd,OAAO;AACN,YAAM,SAA4B,CAAC;AACnC,UAAI,WAAW;AAAS,eAAO,KAAK,GAAG,WAAW,QAAQ,IAAI,CAAC,SAAS,UAAU,IAAI,CAAC,CAAC;AACxF,UAAI,WAAW;AAAM,eAAO,KAAK,UAAU,WAAW,IAAI,CAAC;AAC3D,UAAI,WAAW;AAAY,eAAO,KAAK,UAAU,WAAW,UAAU,CAAC;AAEvE,WAAK,QAAQ,OAAO,SACjB,OAAO,WAAW,IACjB,OAAO,CAAC,IACR,CAAC,WAAW,OAAO,OAAO,CAAC,KAAK,UAAU,MAAM,GAAG,GAAG,MAAM,IACnD;AAAA,IACd;AAAA,EACD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOO,IAAI,QAAyB;AACnC,WAAO,KAAK,MAAM,MAAM;AAAA,EACzB;AACD;AA5ByB;AAAlB,IAAM,cAAN;AAiEA,IAAK,oBAAL,kBAAKA,uBAAL;AACN,EAAAA,mBAAA,WAAQ;AACR,EAAAA,mBAAA,UAAO;AACP,EAAAA,mBAAA,SAAM;AACN,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,eAAY;AACZ,EAAAA,mBAAA,aAAU;AACV,EAAAA,mBAAA,YAAS;AACT,EAAAA,mBAAA,mBAAgB;AARL,SAAAA;AAAA,GAAA;AAeL,IAAK,kBAAL,kBAAKC,qBAAL;AACN,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,SAAM;AACN,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,YAAS;AACT,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,aAAU;AACV,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,WAAQ;AACR,EAAAA,iBAAA,UAAO;AACP,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,eAAY;AACZ,EAAAA,iBAAA,iBAAc;AACd,EAAAA,iBAAA,kBAAe;AACf,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,mBAAgB;AAChB,EAAAA,iBAAA,gBAAa;AACb,EAAAA,iBAAA,iBAAc;AAjBH,SAAAA;AAAA,GAAA;AAwBL,IAAK,wBAAL,kBAAKC,2BAAL;AACN,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,SAAM;AACN,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,YAAS;AACT,EAAAA,uBAAA,UAAO;AACP,EAAAA,uBAAA,aAAU;AACV,EAAAA,uBAAA,UAAO;AACP,EAAAA,uBAAA,WAAQ;AACR,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,eAAY;AACZ,EAAAA,uBAAA,iBAAc;AACd,EAAAA,uBAAA,kBAAe;AACf,EAAAA,uBAAA,gBAAa;AACb,EAAAA,uBAAA,mBAAgB;AAChB,EAAAA,uBAAA,gBAAa;AACb,EAAAA,uBAAA,iBAAc;AAhBH,SAAAA;AAAA,GAAA","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
+ {"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,4 +1,4 @@
1
- import { __name, __publicField } from '../chunk-6QB3UK4Q.mjs';
1
+ import { __name, __publicField } from '../chunk-2JTKI4GS.mjs';
2
2
  import { Timestamp } from '@sapphire/timestamp';
3
3
  import { LoggerStyle } from './LoggerStyle.mjs';
4
4
 
@@ -43,5 +43,5 @@ __name(_LoggerTimestamp, "LoggerTimestamp");
43
43
  var LoggerTimestamp = _LoggerTimestamp;
44
44
 
45
45
  export { LoggerTimestamp };
46
- //# sourceMappingURL=out.js.map
46
+ //# sourceMappingURL=LoggerTimestamp.mjs.map
47
47
  //# sourceMappingURL=LoggerTimestamp.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/lib/LoggerTimestamp.ts"],"names":[],"mappings":";;;;;;AAAA,SAAS,iBAAiB;AAC1B,SAAS,mBAA+C;AAMjD,IAAM,mBAAN,MAAM,iBAAgB;AAAA,EAyBrB,YAAY,UAAkC,CAAC,GAAG;AApBzD;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAMP;AAAA;AAAA;AAAA;AAAA,wBAAO;AAGN,SAAK,YAAY,IAAI,UAAU,QAAQ,WAAW,qBAAqB;AACvE,SAAK,MAAM,QAAQ,OAAO;AAC1B,SAAK,QAAQ,QAAQ,UAAU,OAAO,OAAO,IAAI,YAAY,QAAQ,KAAK;AAC1E,SAAK,YAAY,QAAQ,cAAc,CAAC,cAAc,GAAG,SAAS;AAAA,EACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,MAAM;AACZ,UAAM,OAAO,oBAAI,KAAK;AACtB,UAAM,SAAS,KAAK,MAAM,KAAK,UAAU,WAAW,IAAI,IAAI,KAAK,UAAU,QAAQ,IAAI;AACvF,WAAO,KAAK,UAAU,KAAK,QAAQ,KAAK,MAAM,IAAI,MAAM,IAAI,MAAM;AAAA,EACnE;AACD;AAzC6B;AAAtB,IAAM,kBAAN","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
+ {"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,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,KAAA,CAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,OAAA,CAAA,CAAA;AAMP;AAAA;AAAA;AAAA;AAAA,IAAO,aAAA,CAAA,IAAA,EAAA,WAAA,CAAA,CAAA;AAGN,IAAA,IAAA,CAAK,SAAY,GAAA,IAAI,SAAU,CAAA,OAAA,CAAQ,WAAW,qBAAqB,CAAA,CAAA;AACvE,IAAK,IAAA,CAAA,GAAA,GAAM,QAAQ,GAAO,IAAA,KAAA,CAAA;AAC1B,IAAK,IAAA,CAAA,KAAA,GAAQ,QAAQ,KAAU,KAAA,IAAA,GAAO,OAAO,IAAI,WAAA,CAAY,QAAQ,KAAK,CAAA,CAAA;AAC1E,IAAA,IAAA,CAAK,YAAY,OAAQ,CAAA,SAAA,KAAc,CAAC,SAAA,KAAc,GAAG,SAAS,CAAA,GAAA,CAAA,CAAA,CAAA;AAAA,GACnE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,GAAM,GAAA;AACZ,IAAM,MAAA,IAAA,uBAAW,IAAK,EAAA,CAAA;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,CAAA;AACvF,IAAO,OAAA,IAAA,CAAK,UAAU,IAAK,CAAA,KAAA,GAAQ,KAAK,KAAM,CAAA,GAAA,CAAI,MAAM,CAAA,GAAI,MAAM,CAAA,CAAA;AAAA,GACnE;AACD,CAAA,CAAA;AAzC6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,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"]}
@@ -0,0 +1,24 @@
1
+ import { __name, __publicField } from '../chunk-2JTKI4GS.mjs';
2
+ import { appendFile } from 'node:fs/promises';
3
+ import { container } from '@sapphire/pieces';
4
+ import '@sapphire/framework';
5
+
6
+ var _LoggerTransport = class _LoggerTransport {
7
+ constructor(options) {
8
+ __publicField(this, "fileName");
9
+ __publicField(this, "loglevel");
10
+ this.fileName = options.file;
11
+ this.loglevel = options.loglevel;
12
+ container.transporters.set(this.loglevel, this);
13
+ }
14
+ async transport(message) {
15
+ await appendFile(this.fileName, `${message}
16
+ `);
17
+ }
18
+ };
19
+ __name(_LoggerTransport, "LoggerTransport");
20
+ var LoggerTransport = _LoggerTransport;
21
+
22
+ export { LoggerTransport };
23
+ //# sourceMappingURL=LoggerTransport.mjs.map
24
+ //# sourceMappingURL=LoggerTransport.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/LoggerTransport.ts"],"names":[],"mappings":";;;;;AAIO,IAAM,gBAAA,GAAN,MAAM,gBAAgB,CAAA;AAAA,EAGrB,YAAY,OAA4B,EAAA;AAF/C,IAAO,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AACP,IAAO,aAAA,CAAA,IAAA,EAAA,UAAA,CAAA,CAAA;AAEN,IAAA,IAAA,CAAK,WAAW,OAAQ,CAAA,IAAA,CAAA;AACxB,IAAA,IAAA,CAAK,WAAW,OAAQ,CAAA,QAAA,CAAA;AACxB,IAAA,SAAA,CAAU,YAAa,CAAA,GAAA,CAAI,IAAK,CAAA,QAAA,EAAU,IAAI,CAAA,CAAA;AAAA,GAC/C;AAAA,EAEA,MAAa,UAAU,OAAiB,EAAA;AACvC,IAAA,MAAM,UAAW,CAAA,IAAA,CAAK,QAAU,EAAA,CAAA,EAAG,OAAO,CAAA;AAAA,CAAI,CAAA,CAAA;AAAA,GAC/C;AACD,CAAA,CAAA;AAZ6B,MAAA,CAAA,gBAAA,EAAA,iBAAA,CAAA,CAAA;AAAtB,IAAM,eAAN,GAAA","file":"LoggerTransport.mjs","sourcesContent":["import { appendFile } from 'node:fs/promises';\nimport { container } from '@sapphire/pieces';\nimport { LogLevel } from '@sapphire/framework';\n\nexport class LoggerTransport {\n\tpublic fileName: string;\n\tpublic loglevel: LogLevel;\n\tpublic constructor(options: TransporterOption) {\n\t\tthis.fileName = options.file;\n\t\tthis.loglevel = options.loglevel;\n\t\tcontainer.transporters.set(this.loglevel, this);\n\t}\n\n\tpublic async transport(message: string) {\n\t\tawait appendFile(this.fileName, `${message}\\n`);\n\t}\n}\n\nexport interface TransporterOption {\n\tfile: string;\n\tloglevel: LogLevel;\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { __name } from './chunk-6QB3UK4Q.mjs';
1
+ import { __name } from './chunk-2JTKI4GS.mjs';
2
2
  import { Logger } from './index.mjs';
3
3
  import { SapphireClient, preGenericsInitialization, Plugin } from '@sapphire/framework';
4
4
 
@@ -16,5 +16,5 @@ var LoggerPlugin = _LoggerPlugin;
16
16
  SapphireClient.plugins.registerPreGenericsInitializationHook(LoggerPlugin[preGenericsInitialization], "Logger-PreGenericsInitialization");
17
17
 
18
18
  export { LoggerPlugin };
19
- //# sourceMappingURL=out.js.map
19
+ //# sourceMappingURL=register.mjs.map
20
20
  //# sourceMappingURL=register.mjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/register.ts"],"names":[],"mappings":";;;;;AAAA,OAAO;AAEP,SAAS,QAAQ,2BAA2B,sBAAsB;AAElE,SAAS,cAAc;AAKhB,IAAM,gBAAN,MAAM,sBAAqB,OAAO;AAAA;AAAA;AAAA;AAAA,EAIxC,QAAe,yBAAyB,EAAwB,SAA8B;AAC7F,YAAQ,WAAW,CAAC;AACpB,YAAQ,OAAO,WAAW,IAAI,OAAO,QAAQ,MAAM;AAAA,EACpD;AACD;AARyC;AAAlC,IAAM,eAAN;AAUP,eAAe,QAAQ,sCAAsC,aAAa,yBAAyB,GAAG,kCAAkC","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"]}
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,CAAA;AACpB,IAAA,OAAA,CAAQ,MAAO,CAAA,QAAA,GAAW,IAAI,MAAA,CAAO,QAAQ,MAAM,CAAA,CAAA;AAAA,GACpD;AACD,CAAA,CAAA;AARyC,MAAA,CAAA,aAAA,EAAA,cAAA,CAAA,CAAA;AAAlC,IAAM,YAAN,GAAA,cAAA;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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapphire/plugin-logger",
3
- "version": "4.0.3-next.fe95a62.0",
3
+ "version": "4.1.0-next.c2464a5",
4
4
  "description": "Plugin for @sapphire/framework to have pretty console output",
5
5
  "author": "@sapphire",
6
6
  "license": "MIT",
@@ -82,13 +82,13 @@
82
82
  "access": "public"
83
83
  },
84
84
  "devDependencies": {
85
- "@favware/cliff-jumper": "^2.2.3",
85
+ "@favware/cliff-jumper": "^4.1.0",
86
86
  "@favware/rollup-type-bundler": "^3.3.0",
87
87
  "concurrently": "^8.2.2",
88
- "tsup": "^8.0.2",
89
- "tsx": "^4.7.1",
90
- "typedoc": "^0.25.8",
91
- "typedoc-json-parser": "^9.0.1",
92
- "typescript": "^5.3.3"
88
+ "tsup": "^8.2.4",
89
+ "tsx": "^4.18.0",
90
+ "typedoc": "^0.25.13",
91
+ "typedoc-json-parser": "^10.0.0",
92
+ "typescript": "~5.4.5"
93
93
  }
94
94
  }
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}