@hardlydifficult/logger 1.0.0 → 1.0.2

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.
package/dist/Logger.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import type { LoggerPlugin, LogLevel } from "./types.js";
2
+ /** Plugin-based structured logger that dispatches log entries to registered plugins based on a minimum log level. */
2
3
  export declare class Logger {
3
4
  private readonly minLevel;
4
5
  private readonly plugins;
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AASnE,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,QAAQ,GAAE,QAAiB;IAIvC,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAK/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIzE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIxE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIzE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAY7B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,GAAG;CAsBZ"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AASnE,qHAAqH;AACrH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;gBAElC,QAAQ,GAAE,QAAiB;IAIvC,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAK/B,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIzE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIxE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIxE,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,IAAI;IAIzE,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAY7B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,GAAG;CAsBZ"}
package/dist/Logger.js CHANGED
@@ -7,6 +7,7 @@ const LOG_LEVELS = {
7
7
  warn: 2,
8
8
  error: 3,
9
9
  };
10
+ /** Plugin-based structured logger that dispatches log entries to registered plugins based on a minimum log level. */
10
11
  class Logger {
11
12
  minLevel;
12
13
  plugins = [];
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAEA,MAAM,UAAU,GAAuC;IACrD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,MAAa,MAAM;IACA,QAAQ,CAAW;IACnB,OAAO,GAAmB,EAAE,CAAC;IAE9C,YAAY,WAAqB,MAAM;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,MAAoB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAA2C;QAChE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAA2C;QAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAA2C;QAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAA2C;QAChE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,aAAa;gBACf,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEO,GAAG,CACT,KAAe,EACf,OAAe,EACf,OAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GACT,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE;YAClE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAE9D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnED,wBAmEC"}
1
+ {"version":3,"file":"Logger.js","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":";;;AAEA,MAAM,UAAU,GAAuC;IACrD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF,qHAAqH;AACrH,MAAa,MAAM;IACA,QAAQ,CAAW;IACnB,OAAO,GAAmB,EAAE,CAAC;IAE9C,YAAY,WAAqB,MAAM;QACrC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,GAAG,CAAC,MAAoB;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAA2C;QAChE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAA2C;QAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAA2C;QAC/D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAA2C;QAChE,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACzB,CAAC;gBAAC,MAAM,CAAC;oBACP,aAAa;gBACf,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,CAAC;IAEO,GAAG,CACT,KAAe,EACf,OAAe,EACf,OAA2C;QAE3C,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,KAAK,GACT,OAAO,KAAK,SAAS;YACnB,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE;YAClE,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QAE9D,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnED,wBAmEC"}
@@ -1,5 +1,7 @@
1
1
  import type { LogEntry, LoggerPlugin } from "../types.js";
2
+ /** Formats a log entry into a human-readable string with timestamp, level, message, and optional context. */
2
3
  export declare function formatEntry(entry: LogEntry): string;
4
+ /** Logger plugin that writes formatted log entries to the console, routing to the appropriate console method by level. */
3
5
  export declare class ConsolePlugin implements LoggerPlugin {
4
6
  log(entry: LogEntry): void;
5
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConsolePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ConsolePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAMnD;AAED,qBAAa,aAAc,YAAW,YAAY;IAChD,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAmB3B"}
1
+ {"version":3,"file":"ConsolePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/ConsolePlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,6GAA6G;AAC7G,wBAAgB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,MAAM,CAMnD;AAED,0HAA0H;AAC1H,qBAAa,aAAc,YAAW,YAAY;IAChD,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAmB3B"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConsolePlugin = void 0;
4
4
  exports.formatEntry = formatEntry;
5
+ /** Formats a log entry into a human-readable string with timestamp, level, message, and optional context. */
5
6
  function formatEntry(entry) {
6
7
  const base = `[${entry.timestamp}] ${entry.level.toUpperCase()}: ${entry.message}`;
7
8
  if (entry.context && Object.keys(entry.context).length > 0) {
@@ -9,6 +10,7 @@ function formatEntry(entry) {
9
10
  }
10
11
  return base;
11
12
  }
13
+ /** Logger plugin that writes formatted log entries to the console, routing to the appropriate console method by level. */
12
14
  class ConsolePlugin {
13
15
  log(entry) {
14
16
  const formatted = formatEntry(entry);
@@ -1 +1 @@
1
- {"version":3,"file":"ConsolePlugin.js","sourceRoot":"","sources":["../../src/plugins/ConsolePlugin.ts"],"names":[],"mappings":";;;AAEA,kCAMC;AAND,SAAgB,WAAW,CAAC,KAAe;IACzC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAa,aAAa;IACxB,GAAG,CAAC,KAAe;QACjB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACrC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC;YACb,KAAK,MAAM;gBACT,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM;YACR;gBACE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM;QACV,CAAC;IACH,CAAC;CACF;AApBD,sCAoBC"}
1
+ {"version":3,"file":"ConsolePlugin.js","sourceRoot":"","sources":["../../src/plugins/ConsolePlugin.ts"],"names":[],"mappings":";;;AAGA,kCAMC;AAPD,6GAA6G;AAC7G,SAAgB,WAAW,CAAC,KAAe;IACzC,MAAM,IAAI,GAAG,IAAI,KAAK,CAAC,SAAS,KAAK,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;IACnF,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3D,OAAO,GAAG,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;IACpD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0HAA0H;AAC1H,MAAa,aAAa;IACxB,GAAG,CAAC,KAAe;QACjB,MAAM,SAAS,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;QACrC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC;YACb,KAAK,MAAM;gBACT,sCAAsC;gBACtC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,MAAM;gBACT,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM;YACR,KAAK,OAAO;gBACV,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;gBACzB,MAAM;YACR;gBACE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBACxB,MAAM;QACV,CAAC;IACH,CAAC;CACF;AApBD,sCAoBC"}
@@ -1,5 +1,6 @@
1
1
  import type { LogEntry, LoggerPlugin } from "../types.js";
2
2
  export type DiscordSender = (message: string) => void;
3
+ /** Logger plugin that forwards warn/error entries and notifications to a Discord channel via a configurable sender function. */
3
4
  export declare class DiscordPlugin implements LoggerPlugin {
4
5
  private sender;
5
6
  setSender(sender: DiscordSender): void;
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/DiscordPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtD,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,MAAM,CAA8B;IAE5C,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAItC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAqB1B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAU9B"}
1
+ {"version":3,"file":"DiscordPlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/DiscordPlugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;AAEtD,gIAAgI;AAChI,qBAAa,aAAc,YAAW,YAAY;IAChD,OAAO,CAAC,MAAM,CAA8B;IAE5C,SAAS,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAItC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAqB1B,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAU9B"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DiscordPlugin = void 0;
4
+ /** Logger plugin that forwards warn/error entries and notifications to a Discord channel via a configurable sender function. */
4
5
  class DiscordPlugin {
5
6
  sender = null;
6
7
  setSender(sender) {
@@ -1 +1 @@
1
- {"version":3,"file":"DiscordPlugin.js","sourceRoot":"","sources":["../../src/plugins/DiscordPlugin.ts"],"names":[],"mappings":";;;AAIA,MAAa,aAAa;IAChB,MAAM,GAAyB,IAAI,CAAC;IAE5C,SAAS,CAAC,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,KAAe;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC1E,MAAM,cAAc,GAClB,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACpD,CAAC,CAAC,GAAG,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU;YAC/H,CAAC,CAAC,GAAG,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAErE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;CACF;AAtCD,sCAsCC"}
1
+ {"version":3,"file":"DiscordPlugin.js","sourceRoot":"","sources":["../../src/plugins/DiscordPlugin.ts"],"names":[],"mappings":";;;AAIA,gIAAgI;AAChI,MAAa,aAAa;IAChB,MAAM,GAAyB,IAAI,CAAC;IAE5C,SAAS,CAAC,MAAqB;QAC7B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,KAAe;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;YACtD,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAC;QAC1E,MAAM,cAAc,GAClB,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC;YACpD,CAAC,CAAC,GAAG,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,OAAO,iBAAiB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU;YAC/H,CAAC,CAAC,GAAG,MAAM,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,OAAO,KAAK,CAAC,OAAO,EAAE,CAAC;QAErE,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9B,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;CACF;AAtCD,sCAsCC"}
@@ -1,4 +1,5 @@
1
1
  import type { LogEntry, LoggerPlugin } from "../types.js";
2
+ /** Logger plugin that appends JSON-serialized log entries to a file on disk. */
2
3
  export declare class FilePlugin implements LoggerPlugin {
3
4
  private readonly filePath;
4
5
  constructor(filePath: string);
@@ -1 +1 @@
1
- {"version":3,"file":"FilePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/FilePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAK5B,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAQ3B"}
1
+ {"version":3,"file":"FilePlugin.d.ts","sourceRoot":"","sources":["../../src/plugins/FilePlugin.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE1D,gFAAgF;AAChF,qBAAa,UAAW,YAAW,YAAY;IAC7C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;gBAEtB,QAAQ,EAAE,MAAM;IAS5B,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAQ3B"}
@@ -3,11 +3,17 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.FilePlugin = void 0;
4
4
  const node_fs_1 = require("node:fs");
5
5
  const node_path_1 = require("node:path");
6
+ /** Logger plugin that appends JSON-serialized log entries to a file on disk. */
6
7
  class FilePlugin {
7
8
  filePath;
8
9
  constructor(filePath) {
9
10
  this.filePath = filePath;
10
- (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(filePath), { recursive: true });
11
+ try {
12
+ (0, node_fs_1.mkdirSync)((0, node_path_1.dirname)(filePath), { recursive: true });
13
+ }
14
+ catch {
15
+ /* swallow */
16
+ }
11
17
  }
12
18
  log(entry) {
13
19
  const line = `${JSON.stringify(entry)}\n`;
@@ -1 +1 @@
1
- {"version":3,"file":"FilePlugin.js","sourceRoot":"","sources":["../../src/plugins/FilePlugin.ts"],"names":[],"mappings":";;;AAAA,qCAAoD;AACpD,yCAAoC;AAIpC,MAAa,UAAU;IACJ,QAAQ,CAAS;IAElC,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;IAED,GAAG,CAAC,KAAe;QACjB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,IAAA,wBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;CACF;AAhBD,gCAgBC"}
1
+ {"version":3,"file":"FilePlugin.js","sourceRoot":"","sources":["../../src/plugins/FilePlugin.ts"],"names":[],"mappings":";;;AAAA,qCAAoD;AACpD,yCAAoC;AAIpC,gFAAgF;AAChF,MAAa,UAAU;IACJ,QAAQ,CAAS;IAElC,YAAY,QAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC;YACH,IAAA,mBAAS,EAAC,IAAA,mBAAO,EAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;IAED,GAAG,CAAC,KAAe;QACjB,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC;YACH,IAAA,wBAAc,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,aAAa;QACf,CAAC;IACH,CAAC;CACF;AApBD,gCAoBC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hardlydifficult/logger",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "main": "./dist/index.js",
5
5
  "types": "./dist/index.d.ts",
6
6
  "files": [