@decaf-ts/logging 0.2.3 → 0.3.0

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/lib/constants.cjs CHANGED
@@ -5,7 +5,7 @@ exports.DefaultLoggingConfig = exports.DefaultTheme = exports.LoggingMode = expo
5
5
  * @description Enum for log levels.
6
6
  * @summary Defines different levels of logging for the application.
7
7
  * @enum {string}
8
- * @memberOf @decaf-ts/utils
8
+ * @memberOf module:Logging
9
9
  */
10
10
  var LogLevel;
11
11
  (function (LogLevel) {
@@ -23,13 +23,13 @@ var LogLevel;
23
23
  /**
24
24
  * @description Numeric values associated with log levels.
25
25
  * @summary Provides a numeric representation of log levels for comparison and filtering.
26
- * @const {Object} NumericLogLevels
27
- * @property {number} error - Numeric value for error level (0).
28
- * @property {number} info - Numeric value for info level (2).
29
- * @property {number} verbose - Numeric value for verbose level (4).
30
- * @property {number} debug - Numeric value for debug level (5).
31
- * @property {number} silly - Numeric value for silly level (8).
32
- * @memberOf @decaf-ts/utils
26
+ * @const NumericLogLevels
27
+ * @property {number} error - Numeric value for error level (2).
28
+ * @property {number} info - Numeric value for info level (4).
29
+ * @property {number} verbose - Numeric value for verbose level (6).
30
+ * @property {number} debug - Numeric value for debug level (7).
31
+ * @property {number} silly - Numeric value for silly level (9).
32
+ * @memberOf module:Logging
33
33
  */
34
34
  exports.NumericLogLevels = {
35
35
  error: 2,
@@ -38,9 +38,17 @@ exports.NumericLogLevels = {
38
38
  debug: 7,
39
39
  silly: 9,
40
40
  };
41
+ /**
42
+ * @description Enum for logging output modes.
43
+ * @summary Defines different output formats for log messages.
44
+ * @enum {string}
45
+ * @memberOf module:Logging
46
+ */
41
47
  var LoggingMode;
42
48
  (function (LoggingMode) {
49
+ /** Raw text format for human readability */
43
50
  LoggingMode["RAW"] = "raw";
51
+ /** JSON format for machine parsing */
44
52
  LoggingMode["JSON"] = "json";
45
53
  })(LoggingMode || (exports.LoggingMode = LoggingMode = {}));
46
54
  /**
@@ -49,23 +57,24 @@ var LoggingMode;
49
57
  * @const DefaultTheme
50
58
  * @typedef {Theme} DefaultTheme
51
59
  * @property {Object} class - Styling for class names.
52
- * @property {number} class.fg - Foreground color code for class names (4).
60
+ * @property {number} class.fg - Foreground color code for class names (34).
53
61
  * @property {Object} id - Styling for identifiers.
54
62
  * @property {number} id.fg - Foreground color code for identifiers (36).
55
63
  * @property {Object} stack - Styling for stack traces (empty object).
56
64
  * @property {Object} timestamp - Styling for timestamps (empty object).
57
65
  * @property {Object} message - Styling for different types of messages.
58
66
  * @property {Object} message.error - Styling for error messages.
59
- * @property {number} message.error.fg - Foreground color code for error messages (34).
67
+ * @property {number} message.error.fg - Foreground color code for error messages (31).
60
68
  * @property {Object} method - Styling for method names (empty object).
61
69
  * @property {Object} logLevel - Styling for different log levels.
62
70
  * @property {Object} logLevel.error - Styling for error level logs.
63
- * @property {number} logLevel.error.fg - Foreground color code for error level logs (6).
71
+ * @property {number} logLevel.error.fg - Foreground color code for error level logs (31).
72
+ * @property {string[]} logLevel.error.style - Style attributes for error level logs (["bold"]).
64
73
  * @property {Object} logLevel.info - Styling for info level logs (empty object).
65
74
  * @property {Object} logLevel.verbose - Styling for verbose level logs (empty object).
66
75
  * @property {Object} logLevel.debug - Styling for debug level logs.
67
- * @property {number} logLevel.debug.fg - Foreground color code for debug level logs (7).
68
- * @memberOf @decaf-ts/utils
76
+ * @property {number} logLevel.debug.fg - Foreground color code for debug level logs (33).
77
+ * @memberOf module:Logging
69
78
  */
70
79
  exports.DefaultTheme = {
71
80
  class: {
@@ -101,12 +110,15 @@ exports.DefaultTheme = {
101
110
  * @typedef {LoggingConfig} DefaultLoggingConfig
102
111
  * @property {number} verbose - Verbosity level (0).
103
112
  * @property {LogLevel} level - Default log level (LogLevel.info).
113
+ * @property {boolean} logLevel - Whether to display log level in output (true).
114
+ * @property {LoggingMode} mode - Output format mode (LoggingMode.RAW).
104
115
  * @property {boolean} style - Whether to apply styling to log output (false).
116
+ * @property {string} separator - Separator between log components (" - ").
105
117
  * @property {boolean} timestamp - Whether to include timestamps in log messages (true).
106
118
  * @property {string} timestampFormat - Format for timestamps ("HH:mm:ss.SSS").
107
119
  * @property {boolean} context - Whether to include context information in log messages (true).
108
120
  * @property {Theme} theme - The theme to use for styling log messages (DefaultTheme).
109
- * @memberOf @decaf-ts/utils
121
+ * @memberOf module:Logging
110
122
  */
111
123
  exports.DefaultLoggingConfig = {
112
124
  verbose: 0,
@@ -114,10 +126,11 @@ exports.DefaultLoggingConfig = {
114
126
  logLevel: true,
115
127
  mode: LoggingMode.RAW,
116
128
  style: false,
129
+ contextSeparator: ".",
117
130
  separator: " - ",
118
131
  timestamp: true,
119
132
  timestampFormat: "HH:mm:ss.SSS",
120
133
  context: true,
121
134
  theme: exports.DefaultTheme,
122
135
  };
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7R0FLRztBQUNILElBQVksUUFXWDtBQVhELFdBQVksUUFBUTtJQUNsQixzREFBc0Q7SUFDdEQsMkJBQWUsQ0FBQTtJQUNmLGtFQUFrRTtJQUNsRSx5QkFBYSxDQUFBO0lBQ2IsdUNBQXVDO0lBQ3ZDLCtCQUFtQixDQUFBO0lBQ25CLGtDQUFrQztJQUNsQywyQkFBZSxDQUFBO0lBQ2YsNENBQTRDO0lBQzVDLDJCQUFlLENBQUE7QUFDakIsQ0FBQyxFQVhXLFFBQVEsd0JBQVIsUUFBUSxRQVduQjtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLEtBQUssRUFBRSxDQUFDO0lBQ1IsSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7Q0FDVCxDQUFDO0FBRUYsSUFBWSxXQUdYO0FBSEQsV0FBWSxXQUFXO0lBQ3JCLDBCQUFXLENBQUE7SUFDWCw0QkFBYSxDQUFBO0FBQ2YsQ0FBQyxFQUhXLFdBQVcsMkJBQVgsV0FBVyxRQUd0QjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNVLFFBQUEsWUFBWSxHQUFVO0lBQ2pDLEtBQUssRUFBRTtRQUNMLEVBQUUsRUFBRSxFQUFFO0tBQ1A7SUFDRCxFQUFFLEVBQUU7UUFDRixFQUFFLEVBQUUsRUFBRTtLQUNQO0lBQ0QsS0FBSyxFQUFFLEVBQUU7SUFDVCxTQUFTLEVBQUUsRUFBRTtJQUNiLE9BQU8sRUFBRTtRQUNQLEtBQUssRUFBRTtZQUNMLEVBQUUsRUFBRSxFQUFFO1NBQ1A7S0FDRjtJQUNELE1BQU0sRUFBRSxFQUFFO0lBQ1YsUUFBUSxFQUFFO1FBQ1IsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLEVBQUU7WUFDTixLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUM7U0FDaEI7UUFDRCxJQUFJLEVBQUUsRUFBRTtRQUNSLE9BQU8sRUFBRSxFQUFFO1FBQ1gsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLEVBQUU7U0FDUDtLQUNGO0NBQ0YsQ0FBQztBQUVGOzs7Ozs7Ozs7Ozs7O0dBYUc7QUFDVSxRQUFBLG9CQUFvQixHQUFrQjtJQUNqRCxPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSTtJQUNwQixRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRztJQUNyQixLQUFLLEVBQUUsS0FBSztJQUNaLFNBQVMsRUFBRSxLQUFLO0lBQ2hCLFNBQVMsRUFBRSxJQUFJO0lBQ2YsZUFBZSxFQUFFLGNBQWM7SUFDL0IsT0FBTyxFQUFFLElBQUk7SUFDYixLQUFLLEVBQUUsb0JBQVk7Q0FDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ2dpbmdDb25maWcsIFRoZW1lIH0gZnJvbSBcIi4vdHlwZXNcIjtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRW51bSBmb3IgbG9nIGxldmVscy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgZGlmZmVyZW50IGxldmVscyBvZiBsb2dnaW5nIGZvciB0aGUgYXBwbGljYXRpb24uXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQG1lbWJlck9mIEBkZWNhZi10cy91dGlsc1xuICovXG5leHBvcnQgZW51bSBMb2dMZXZlbCB7XG4gIC8qKiBFcnJvciBldmVudHMgdGhhdCBhcmUgbGlrZWx5IHRvIGNhdXNlIHByb2JsZW1zLiAqL1xuICBlcnJvciA9IFwiZXJyb3JcIixcbiAgLyoqIFJvdXRpbmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgb25nb2luZyBzdGF0dXMgb3IgcGVyZm9ybWFuY2UuICovXG4gIGluZm8gPSBcImluZm9cIixcbiAgLyoqIEFkZGl0aW9uYWwgcmVsZXZhbnQgaW5mb3JtYXRpb24uICovXG4gIHZlcmJvc2UgPSBcInZlcmJvc2VcIixcbiAgLyoqIERlYnVnIG9yIHRyYWNlIGluZm9ybWF0aW9uLiAqL1xuICBkZWJ1ZyA9IFwiZGVidWdcIixcbiAgLyoqIHdheSB0b28gdmVyYm9zZSBvciBzaWxseSBpbmZvcm1hdGlvbi4gKi9cbiAgc2lsbHkgPSBcInNpbGx5XCIsXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE51bWVyaWMgdmFsdWVzIGFzc29jaWF0ZWQgd2l0aCBsb2cgbGV2ZWxzLlxuICogQHN1bW1hcnkgUHJvdmlkZXMgYSBudW1lcmljIHJlcHJlc2VudGF0aW9uIG9mIGxvZyBsZXZlbHMgZm9yIGNvbXBhcmlzb24gYW5kIGZpbHRlcmluZy5cbiAqIEBjb25zdCB7T2JqZWN0fSBOdW1lcmljTG9nTGV2ZWxzXG4gKiBAcHJvcGVydHkge251bWJlcn0gZXJyb3IgLSBOdW1lcmljIHZhbHVlIGZvciBlcnJvciBsZXZlbCAoMCkuXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5mbyAtIE51bWVyaWMgdmFsdWUgZm9yIGluZm8gbGV2ZWwgKDIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcmJvc2UgLSBOdW1lcmljIHZhbHVlIGZvciB2ZXJib3NlIGxldmVsICg0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBkZWJ1ZyAtIE51bWVyaWMgdmFsdWUgZm9yIGRlYnVnIGxldmVsICg1KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBzaWxseSAtIE51bWVyaWMgdmFsdWUgZm9yIHNpbGx5IGxldmVsICg4KS5cbiAqIEBtZW1iZXJPZiBAZGVjYWYtdHMvdXRpbHNcbiAqL1xuZXhwb3J0IGNvbnN0IE51bWVyaWNMb2dMZXZlbHMgPSB7XG4gIGVycm9yOiAyLFxuICBpbmZvOiA0LFxuICB2ZXJib3NlOiA2LFxuICBkZWJ1ZzogNyxcbiAgc2lsbHk6IDksXG59O1xuXG5leHBvcnQgZW51bSBMb2dnaW5nTW9kZSB7XG4gIFJBVyA9IFwicmF3XCIsXG4gIEpTT04gPSBcImpzb25cIixcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVmYXVsdCB0aGVtZSBmb3Igc3R5bGluZyBsb2cgb3V0cHV0LlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgZGVmYXVsdCBjb2xvciBhbmQgc3R5bGUgc2V0dGluZ3MgZm9yIHZhcmlvdXMgY29tcG9uZW50cyBvZiBsb2cgbWVzc2FnZXMuXG4gKiBAY29uc3QgRGVmYXVsdFRoZW1lXG4gKiBAdHlwZWRlZiB7VGhlbWV9IERlZmF1bHRUaGVtZVxuICogQHByb3BlcnR5IHtPYmplY3R9IGNsYXNzIC0gU3R5bGluZyBmb3IgY2xhc3MgbmFtZXMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gY2xhc3MuZmcgLSBGb3JlZ3JvdW5kIGNvbG9yIGNvZGUgZm9yIGNsYXNzIG5hbWVzICg0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBpZCAtIFN0eWxpbmcgZm9yIGlkZW50aWZpZXJzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGlkLmZnIC0gRm9yZWdyb3VuZCBjb2xvciBjb2RlIGZvciBpZGVudGlmaWVycyAoMzYpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHN0YWNrIC0gU3R5bGluZyBmb3Igc3RhY2sgdHJhY2VzIChlbXB0eSBvYmplY3QpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHRpbWVzdGFtcCAtIFN0eWxpbmcgZm9yIHRpbWVzdGFtcHMgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbWVzc2FnZSAtIFN0eWxpbmcgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBtZXNzYWdlcy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtZXNzYWdlLmVycm9yIC0gU3R5bGluZyBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWVzc2FnZS5lcnJvci5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgZXJyb3IgbWVzc2FnZXMgKDM0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtZXRob2QgLSBTdHlsaW5nIGZvciBtZXRob2QgbmFtZXMgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbG9nTGV2ZWwgLSBTdHlsaW5nIGZvciBkaWZmZXJlbnQgbG9nIGxldmVscy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBsb2dMZXZlbC5lcnJvciAtIFN0eWxpbmcgZm9yIGVycm9yIGxldmVsIGxvZ3MuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbG9nTGV2ZWwuZXJyb3IuZmcgLSBGb3JlZ3JvdW5kIGNvbG9yIGNvZGUgZm9yIGVycm9yIGxldmVsIGxvZ3MgKDYpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IGxvZ0xldmVsLmluZm8gLSBTdHlsaW5nIGZvciBpbmZvIGxldmVsIGxvZ3MgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbG9nTGV2ZWwudmVyYm9zZSAtIFN0eWxpbmcgZm9yIHZlcmJvc2UgbGV2ZWwgbG9ncyAoZW1wdHkgb2JqZWN0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBsb2dMZXZlbC5kZWJ1ZyAtIFN0eWxpbmcgZm9yIGRlYnVnIGxldmVsIGxvZ3MuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbG9nTGV2ZWwuZGVidWcuZmcgLSBGb3JlZ3JvdW5kIGNvbG9yIGNvZGUgZm9yIGRlYnVnIGxldmVsIGxvZ3MgKDcpLlxuICogQG1lbWJlck9mIEBkZWNhZi10cy91dGlsc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdFRoZW1lOiBUaGVtZSA9IHtcbiAgY2xhc3M6IHtcbiAgICBmZzogMzQsXG4gIH0sXG4gIGlkOiB7XG4gICAgZmc6IDM2LFxuICB9LFxuICBzdGFjazoge30sXG4gIHRpbWVzdGFtcDoge30sXG4gIG1lc3NhZ2U6IHtcbiAgICBlcnJvcjoge1xuICAgICAgZmc6IDMxLFxuICAgIH0sXG4gIH0sXG4gIG1ldGhvZDoge30sXG4gIGxvZ0xldmVsOiB7XG4gICAgZXJyb3I6IHtcbiAgICAgIGZnOiAzMSxcbiAgICAgIHN0eWxlOiBbXCJib2xkXCJdLFxuICAgIH0sXG4gICAgaW5mbzoge30sXG4gICAgdmVyYm9zZToge30sXG4gICAgZGVidWc6IHtcbiAgICAgIGZnOiAzMyxcbiAgICB9LFxuICB9LFxufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBsb2dnaW5nLlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgZGVmYXVsdCBzZXR0aW5ncyBmb3IgdGhlIGxvZ2dpbmcgc3lzdGVtLCBpbmNsdWRpbmcgdmVyYm9zaXR5LCBsb2cgbGV2ZWwsIHN0eWxpbmcsIGFuZCB0aW1lc3RhbXAgZm9ybWF0LlxuICogQGNvbnN0IERlZmF1bHRMb2dnaW5nQ29uZmlnXG4gKiBAdHlwZWRlZiB7TG9nZ2luZ0NvbmZpZ30gRGVmYXVsdExvZ2dpbmdDb25maWdcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJib3NlIC0gVmVyYm9zaXR5IGxldmVsICgwKS5cbiAqIEBwcm9wZXJ0eSB7TG9nTGV2ZWx9IGxldmVsIC0gRGVmYXVsdCBsb2cgbGV2ZWwgKExvZ0xldmVsLmluZm8pLlxuICogQHByb3BlcnR5IHtib29sZWFufSBzdHlsZSAtIFdoZXRoZXIgdG8gYXBwbHkgc3R5bGluZyB0byBsb2cgb3V0cHV0IChmYWxzZSkuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IHRpbWVzdGFtcCAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aW1lc3RhbXBzIGluIGxvZyBtZXNzYWdlcyAodHJ1ZSkuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdGltZXN0YW1wRm9ybWF0IC0gRm9ybWF0IGZvciB0aW1lc3RhbXBzIChcIkhIOm1tOnNzLlNTU1wiKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gY29udGV4dCAtIFdoZXRoZXIgdG8gaW5jbHVkZSBjb250ZXh0IGluZm9ybWF0aW9uIGluIGxvZyBtZXNzYWdlcyAodHJ1ZSkuXG4gKiBAcHJvcGVydHkge1RoZW1lfSB0aGVtZSAtIFRoZSB0aGVtZSB0byB1c2UgZm9yIHN0eWxpbmcgbG9nIG1lc3NhZ2VzIChEZWZhdWx0VGhlbWUpLlxuICogQG1lbWJlck9mIEBkZWNhZi10cy91dGlsc1xuICovXG5leHBvcnQgY29uc3QgRGVmYXVsdExvZ2dpbmdDb25maWc6IExvZ2dpbmdDb25maWcgPSB7XG4gIHZlcmJvc2U6IDAsXG4gIGxldmVsOiBMb2dMZXZlbC5pbmZvLFxuICBsb2dMZXZlbDogdHJ1ZSxcbiAgbW9kZTogTG9nZ2luZ01vZGUuUkFXLFxuICBzdHlsZTogZmFsc2UsXG4gIHNlcGFyYXRvcjogXCIgLSBcIixcbiAgdGltZXN0YW1wOiB0cnVlLFxuICB0aW1lc3RhbXBGb3JtYXQ6IFwiSEg6bW06c3MuU1NTXCIsXG4gIGNvbnRleHQ6IHRydWUsXG4gIHRoZW1lOiBEZWZhdWx0VGhlbWUsXG59O1xuIl19
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQTs7Ozs7R0FLRztBQUNILElBQVksUUFXWDtBQVhELFdBQVksUUFBUTtJQUNsQixzREFBc0Q7SUFDdEQsMkJBQWUsQ0FBQTtJQUNmLGtFQUFrRTtJQUNsRSx5QkFBYSxDQUFBO0lBQ2IsdUNBQXVDO0lBQ3ZDLCtCQUFtQixDQUFBO0lBQ25CLGtDQUFrQztJQUNsQywyQkFBZSxDQUFBO0lBQ2YsNENBQTRDO0lBQzVDLDJCQUFlLENBQUE7QUFDakIsQ0FBQyxFQVhXLFFBQVEsd0JBQVIsUUFBUSxRQVduQjtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDVSxRQUFBLGdCQUFnQixHQUFHO0lBQzlCLEtBQUssRUFBRSxDQUFDO0lBQ1IsSUFBSSxFQUFFLENBQUM7SUFDUCxPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxDQUFDO0lBQ1IsS0FBSyxFQUFFLENBQUM7Q0FDVCxDQUFDO0FBRUY7Ozs7O0dBS0c7QUFDSCxJQUFZLFdBS1g7QUFMRCxXQUFZLFdBQVc7SUFDckIsNENBQTRDO0lBQzVDLDBCQUFXLENBQUE7SUFDWCxzQ0FBc0M7SUFDdEMsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxXQUFXLDJCQUFYLFdBQVcsUUFLdEI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JHO0FBQ1UsUUFBQSxZQUFZLEdBQVU7SUFDakMsS0FBSyxFQUFFO1FBQ0wsRUFBRSxFQUFFLEVBQUU7S0FDUDtJQUNELEVBQUUsRUFBRTtRQUNGLEVBQUUsRUFBRSxFQUFFO0tBQ1A7SUFDRCxLQUFLLEVBQUUsRUFBRTtJQUNULFNBQVMsRUFBRSxFQUFFO0lBQ2IsT0FBTyxFQUFFO1FBQ1AsS0FBSyxFQUFFO1lBQ0wsRUFBRSxFQUFFLEVBQUU7U0FDUDtLQUNGO0lBQ0QsTUFBTSxFQUFFLEVBQUU7SUFDVixRQUFRLEVBQUU7UUFDUixLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsRUFBRTtZQUNOLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQztTQUNoQjtRQUNELElBQUksRUFBRSxFQUFFO1FBQ1IsT0FBTyxFQUFFLEVBQUU7UUFDWCxLQUFLLEVBQUU7WUFDTCxFQUFFLEVBQUUsRUFBRTtTQUNQO0tBQ0Y7Q0FDRixDQUFDO0FBRUY7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQkc7QUFDVSxRQUFBLG9CQUFvQixHQUFrQjtJQUNqRCxPQUFPLEVBQUUsQ0FBQztJQUNWLEtBQUssRUFBRSxRQUFRLENBQUMsSUFBSTtJQUNwQixRQUFRLEVBQUUsSUFBSTtJQUNkLElBQUksRUFBRSxXQUFXLENBQUMsR0FBRztJQUNyQixLQUFLLEVBQUUsS0FBSztJQUNaLGdCQUFnQixFQUFFLEdBQUc7SUFDckIsU0FBUyxFQUFFLEtBQUs7SUFDaEIsU0FBUyxFQUFFLElBQUk7SUFDZixlQUFlLEVBQUUsY0FBYztJQUMvQixPQUFPLEVBQUUsSUFBSTtJQUNiLEtBQUssRUFBRSxvQkFBWTtDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nZ2luZ0NvbmZpZywgVGhlbWUgfSBmcm9tIFwiLi90eXBlc1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbnVtIGZvciBsb2cgbGV2ZWxzLlxuICogQHN1bW1hcnkgRGVmaW5lcyBkaWZmZXJlbnQgbGV2ZWxzIG9mIGxvZ2dpbmcgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGVudW0gTG9nTGV2ZWwge1xuICAvKiogRXJyb3IgZXZlbnRzIHRoYXQgYXJlIGxpa2VseSB0byBjYXVzZSBwcm9ibGVtcy4gKi9cbiAgZXJyb3IgPSBcImVycm9yXCIsXG4gIC8qKiBSb3V0aW5lIGluZm9ybWF0aW9uLCBzdWNoIGFzIG9uZ29pbmcgc3RhdHVzIG9yIHBlcmZvcm1hbmNlLiAqL1xuICBpbmZvID0gXCJpbmZvXCIsXG4gIC8qKiBBZGRpdGlvbmFsIHJlbGV2YW50IGluZm9ybWF0aW9uLiAqL1xuICB2ZXJib3NlID0gXCJ2ZXJib3NlXCIsXG4gIC8qKiBEZWJ1ZyBvciB0cmFjZSBpbmZvcm1hdGlvbi4gKi9cbiAgZGVidWcgPSBcImRlYnVnXCIsXG4gIC8qKiB3YXkgdG9vIHZlcmJvc2Ugb3Igc2lsbHkgaW5mb3JtYXRpb24uICovXG4gIHNpbGx5ID0gXCJzaWxseVwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBOdW1lcmljIHZhbHVlcyBhc3NvY2lhdGVkIHdpdGggbG9nIGxldmVscy5cbiAqIEBzdW1tYXJ5IFByb3ZpZGVzIGEgbnVtZXJpYyByZXByZXNlbnRhdGlvbiBvZiBsb2cgbGV2ZWxzIGZvciBjb21wYXJpc29uIGFuZCBmaWx0ZXJpbmcuXG4gKiBAY29uc3QgTnVtZXJpY0xvZ0xldmVsc1xuICogQHByb3BlcnR5IHtudW1iZXJ9IGVycm9yIC0gTnVtZXJpYyB2YWx1ZSBmb3IgZXJyb3IgbGV2ZWwgKDIpLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGluZm8gLSBOdW1lcmljIHZhbHVlIGZvciBpbmZvIGxldmVsICg0KS5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJib3NlIC0gTnVtZXJpYyB2YWx1ZSBmb3IgdmVyYm9zZSBsZXZlbCAoNikuXG4gKiBAcHJvcGVydHkge251bWJlcn0gZGVidWcgLSBOdW1lcmljIHZhbHVlIGZvciBkZWJ1ZyBsZXZlbCAoNykuXG4gKiBAcHJvcGVydHkge251bWJlcn0gc2lsbHkgLSBOdW1lcmljIHZhbHVlIGZvciBzaWxseSBsZXZlbCAoOSkuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IE51bWVyaWNMb2dMZXZlbHMgPSB7XG4gIGVycm9yOiAyLFxuICBpbmZvOiA0LFxuICB2ZXJib3NlOiA2LFxuICBkZWJ1ZzogNyxcbiAgc2lsbHk6IDksXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBFbnVtIGZvciBsb2dnaW5nIG91dHB1dCBtb2Rlcy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgZGlmZmVyZW50IG91dHB1dCBmb3JtYXRzIGZvciBsb2cgbWVzc2FnZXMuXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCBlbnVtIExvZ2dpbmdNb2RlIHtcbiAgLyoqIFJhdyB0ZXh0IGZvcm1hdCBmb3IgaHVtYW4gcmVhZGFiaWxpdHkgKi9cbiAgUkFXID0gXCJyYXdcIixcbiAgLyoqIEpTT04gZm9ybWF0IGZvciBtYWNoaW5lIHBhcnNpbmcgKi9cbiAgSlNPTiA9IFwianNvblwiLFxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IHRoZW1lIGZvciBzdHlsaW5nIGxvZyBvdXRwdXQuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IGNvbG9yIGFuZCBzdHlsZSBzZXR0aW5ncyBmb3IgdmFyaW91cyBjb21wb25lbnRzIG9mIGxvZyBtZXNzYWdlcy5cbiAqIEBjb25zdCBEZWZhdWx0VGhlbWVcbiAqIEB0eXBlZGVmIHtUaGVtZX0gRGVmYXVsdFRoZW1lXG4gKiBAcHJvcGVydHkge09iamVjdH0gY2xhc3MgLSBTdHlsaW5nIGZvciBjbGFzcyBuYW1lcy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjbGFzcy5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgY2xhc3MgbmFtZXMgKDM0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBpZCAtIFN0eWxpbmcgZm9yIGlkZW50aWZpZXJzLlxuICogQHByb3BlcnR5IHtudW1iZXJ9IGlkLmZnIC0gRm9yZWdyb3VuZCBjb2xvciBjb2RlIGZvciBpZGVudGlmaWVycyAoMzYpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHN0YWNrIC0gU3R5bGluZyBmb3Igc3RhY2sgdHJhY2VzIChlbXB0eSBvYmplY3QpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IHRpbWVzdGFtcCAtIFN0eWxpbmcgZm9yIHRpbWVzdGFtcHMgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbWVzc2FnZSAtIFN0eWxpbmcgZm9yIGRpZmZlcmVudCB0eXBlcyBvZiBtZXNzYWdlcy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtZXNzYWdlLmVycm9yIC0gU3R5bGluZyBmb3IgZXJyb3IgbWVzc2FnZXMuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWVzc2FnZS5lcnJvci5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgZXJyb3IgbWVzc2FnZXMgKDMxKS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBtZXRob2QgLSBTdHlsaW5nIGZvciBtZXRob2QgbmFtZXMgKGVtcHR5IG9iamVjdCkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbG9nTGV2ZWwgLSBTdHlsaW5nIGZvciBkaWZmZXJlbnQgbG9nIGxldmVscy5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBsb2dMZXZlbC5lcnJvciAtIFN0eWxpbmcgZm9yIGVycm9yIGxldmVsIGxvZ3MuXG4gKiBAcHJvcGVydHkge251bWJlcn0gbG9nTGV2ZWwuZXJyb3IuZmcgLSBGb3JlZ3JvdW5kIGNvbG9yIGNvZGUgZm9yIGVycm9yIGxldmVsIGxvZ3MgKDMxKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nW119IGxvZ0xldmVsLmVycm9yLnN0eWxlIC0gU3R5bGUgYXR0cmlidXRlcyBmb3IgZXJyb3IgbGV2ZWwgbG9ncyAoW1wiYm9sZFwiXSkuXG4gKiBAcHJvcGVydHkge09iamVjdH0gbG9nTGV2ZWwuaW5mbyAtIFN0eWxpbmcgZm9yIGluZm8gbGV2ZWwgbG9ncyAoZW1wdHkgb2JqZWN0KS5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBsb2dMZXZlbC52ZXJib3NlIC0gU3R5bGluZyBmb3IgdmVyYm9zZSBsZXZlbCBsb2dzIChlbXB0eSBvYmplY3QpLlxuICogQHByb3BlcnR5IHtPYmplY3R9IGxvZ0xldmVsLmRlYnVnIC0gU3R5bGluZyBmb3IgZGVidWcgbGV2ZWwgbG9ncy5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBsb2dMZXZlbC5kZWJ1Zy5mZyAtIEZvcmVncm91bmQgY29sb3IgY29kZSBmb3IgZGVidWcgbGV2ZWwgbG9ncyAoMzMpLlxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCBjb25zdCBEZWZhdWx0VGhlbWU6IFRoZW1lID0ge1xuICBjbGFzczoge1xuICAgIGZnOiAzNCxcbiAgfSxcbiAgaWQ6IHtcbiAgICBmZzogMzYsXG4gIH0sXG4gIHN0YWNrOiB7fSxcbiAgdGltZXN0YW1wOiB7fSxcbiAgbWVzc2FnZToge1xuICAgIGVycm9yOiB7XG4gICAgICBmZzogMzEsXG4gICAgfSxcbiAgfSxcbiAgbWV0aG9kOiB7fSxcbiAgbG9nTGV2ZWw6IHtcbiAgICBlcnJvcjoge1xuICAgICAgZmc6IDMxLFxuICAgICAgc3R5bGU6IFtcImJvbGRcIl0sXG4gICAgfSxcbiAgICBpbmZvOiB7fSxcbiAgICB2ZXJib3NlOiB7fSxcbiAgICBkZWJ1Zzoge1xuICAgICAgZmc6IDMzLFxuICAgIH0sXG4gIH0sXG59O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIGxvZ2dpbmcuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBkZWZhdWx0IHNldHRpbmdzIGZvciB0aGUgbG9nZ2luZyBzeXN0ZW0sIGluY2x1ZGluZyB2ZXJib3NpdHksIGxvZyBsZXZlbCwgc3R5bGluZywgYW5kIHRpbWVzdGFtcCBmb3JtYXQuXG4gKiBAY29uc3QgRGVmYXVsdExvZ2dpbmdDb25maWdcbiAqIEB0eXBlZGVmIHtMb2dnaW5nQ29uZmlnfSBEZWZhdWx0TG9nZ2luZ0NvbmZpZ1xuICogQHByb3BlcnR5IHtudW1iZXJ9IHZlcmJvc2UgLSBWZXJib3NpdHkgbGV2ZWwgKDApLlxuICogQHByb3BlcnR5IHtMb2dMZXZlbH0gbGV2ZWwgLSBEZWZhdWx0IGxvZyBsZXZlbCAoTG9nTGV2ZWwuaW5mbykuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvZ0xldmVsIC0gV2hldGhlciB0byBkaXNwbGF5IGxvZyBsZXZlbCBpbiBvdXRwdXQgKHRydWUpLlxuICogQHByb3BlcnR5IHtMb2dnaW5nTW9kZX0gbW9kZSAtIE91dHB1dCBmb3JtYXQgbW9kZSAoTG9nZ2luZ01vZGUuUkFXKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gc3R5bGUgLSBXaGV0aGVyIHRvIGFwcGx5IHN0eWxpbmcgdG8gbG9nIG91dHB1dCAoZmFsc2UpLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlcGFyYXRvciAtIFNlcGFyYXRvciBiZXR3ZWVuIGxvZyBjb21wb25lbnRzIChcIiAtIFwiKS5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gdGltZXN0YW1wIC0gV2hldGhlciB0byBpbmNsdWRlIHRpbWVzdGFtcHMgaW4gbG9nIG1lc3NhZ2VzICh0cnVlKS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB0aW1lc3RhbXBGb3JtYXQgLSBGb3JtYXQgZm9yIHRpbWVzdGFtcHMgKFwiSEg6bW06c3MuU1NTXCIpLlxuICogQHByb3BlcnR5IHtib29sZWFufSBjb250ZXh0IC0gV2hldGhlciB0byBpbmNsdWRlIGNvbnRleHQgaW5mb3JtYXRpb24gaW4gbG9nIG1lc3NhZ2VzICh0cnVlKS5cbiAqIEBwcm9wZXJ0eSB7VGhlbWV9IHRoZW1lIC0gVGhlIHRoZW1lIHRvIHVzZSBmb3Igc3R5bGluZyBsb2cgbWVzc2FnZXMgKERlZmF1bHRUaGVtZSkuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGNvbnN0IERlZmF1bHRMb2dnaW5nQ29uZmlnOiBMb2dnaW5nQ29uZmlnID0ge1xuICB2ZXJib3NlOiAwLFxuICBsZXZlbDogTG9nTGV2ZWwuaW5mbyxcbiAgbG9nTGV2ZWw6IHRydWUsXG4gIG1vZGU6IExvZ2dpbmdNb2RlLlJBVyxcbiAgc3R5bGU6IGZhbHNlLFxuICBjb250ZXh0U2VwYXJhdG9yOiBcIi5cIixcbiAgc2VwYXJhdG9yOiBcIiAtIFwiLFxuICB0aW1lc3RhbXA6IHRydWUsXG4gIHRpbWVzdGFtcEZvcm1hdDogXCJISDptbTpzcy5TU1NcIixcbiAgY29udGV4dDogdHJ1ZSxcbiAgdGhlbWU6IERlZmF1bHRUaGVtZSxcbn07XG4iXX0=
@@ -3,7 +3,7 @@ import { LoggingConfig, Theme } from "./types";
3
3
  * @description Enum for log levels.
4
4
  * @summary Defines different levels of logging for the application.
5
5
  * @enum {string}
6
- * @memberOf @decaf-ts/utils
6
+ * @memberOf module:Logging
7
7
  */
8
8
  export declare enum LogLevel {
9
9
  /** Error events that are likely to cause problems. */
@@ -20,13 +20,13 @@ export declare enum LogLevel {
20
20
  /**
21
21
  * @description Numeric values associated with log levels.
22
22
  * @summary Provides a numeric representation of log levels for comparison and filtering.
23
- * @const {Object} NumericLogLevels
24
- * @property {number} error - Numeric value for error level (0).
25
- * @property {number} info - Numeric value for info level (2).
26
- * @property {number} verbose - Numeric value for verbose level (4).
27
- * @property {number} debug - Numeric value for debug level (5).
28
- * @property {number} silly - Numeric value for silly level (8).
29
- * @memberOf @decaf-ts/utils
23
+ * @const NumericLogLevels
24
+ * @property {number} error - Numeric value for error level (2).
25
+ * @property {number} info - Numeric value for info level (4).
26
+ * @property {number} verbose - Numeric value for verbose level (6).
27
+ * @property {number} debug - Numeric value for debug level (7).
28
+ * @property {number} silly - Numeric value for silly level (9).
29
+ * @memberOf module:Logging
30
30
  */
31
31
  export declare const NumericLogLevels: {
32
32
  error: number;
@@ -35,8 +35,16 @@ export declare const NumericLogLevels: {
35
35
  debug: number;
36
36
  silly: number;
37
37
  };
38
+ /**
39
+ * @description Enum for logging output modes.
40
+ * @summary Defines different output formats for log messages.
41
+ * @enum {string}
42
+ * @memberOf module:Logging
43
+ */
38
44
  export declare enum LoggingMode {
45
+ /** Raw text format for human readability */
39
46
  RAW = "raw",
47
+ /** JSON format for machine parsing */
40
48
  JSON = "json"
41
49
  }
42
50
  /**
@@ -45,23 +53,24 @@ export declare enum LoggingMode {
45
53
  * @const DefaultTheme
46
54
  * @typedef {Theme} DefaultTheme
47
55
  * @property {Object} class - Styling for class names.
48
- * @property {number} class.fg - Foreground color code for class names (4).
56
+ * @property {number} class.fg - Foreground color code for class names (34).
49
57
  * @property {Object} id - Styling for identifiers.
50
58
  * @property {number} id.fg - Foreground color code for identifiers (36).
51
59
  * @property {Object} stack - Styling for stack traces (empty object).
52
60
  * @property {Object} timestamp - Styling for timestamps (empty object).
53
61
  * @property {Object} message - Styling for different types of messages.
54
62
  * @property {Object} message.error - Styling for error messages.
55
- * @property {number} message.error.fg - Foreground color code for error messages (34).
63
+ * @property {number} message.error.fg - Foreground color code for error messages (31).
56
64
  * @property {Object} method - Styling for method names (empty object).
57
65
  * @property {Object} logLevel - Styling for different log levels.
58
66
  * @property {Object} logLevel.error - Styling for error level logs.
59
- * @property {number} logLevel.error.fg - Foreground color code for error level logs (6).
67
+ * @property {number} logLevel.error.fg - Foreground color code for error level logs (31).
68
+ * @property {string[]} logLevel.error.style - Style attributes for error level logs (["bold"]).
60
69
  * @property {Object} logLevel.info - Styling for info level logs (empty object).
61
70
  * @property {Object} logLevel.verbose - Styling for verbose level logs (empty object).
62
71
  * @property {Object} logLevel.debug - Styling for debug level logs.
63
- * @property {number} logLevel.debug.fg - Foreground color code for debug level logs (7).
64
- * @memberOf @decaf-ts/utils
72
+ * @property {number} logLevel.debug.fg - Foreground color code for debug level logs (33).
73
+ * @memberOf module:Logging
65
74
  */
66
75
  export declare const DefaultTheme: Theme;
67
76
  /**
@@ -71,11 +80,14 @@ export declare const DefaultTheme: Theme;
71
80
  * @typedef {LoggingConfig} DefaultLoggingConfig
72
81
  * @property {number} verbose - Verbosity level (0).
73
82
  * @property {LogLevel} level - Default log level (LogLevel.info).
83
+ * @property {boolean} logLevel - Whether to display log level in output (true).
84
+ * @property {LoggingMode} mode - Output format mode (LoggingMode.RAW).
74
85
  * @property {boolean} style - Whether to apply styling to log output (false).
86
+ * @property {string} separator - Separator between log components (" - ").
75
87
  * @property {boolean} timestamp - Whether to include timestamps in log messages (true).
76
88
  * @property {string} timestampFormat - Format for timestamps ("HH:mm:ss.SSS").
77
89
  * @property {boolean} context - Whether to include context information in log messages (true).
78
90
  * @property {Theme} theme - The theme to use for styling log messages (DefaultTheme).
79
- * @memberOf @decaf-ts/utils
91
+ * @memberOf module:Logging
80
92
  */
81
93
  export declare const DefaultLoggingConfig: LoggingConfig;
@@ -7,6 +7,37 @@ exports.silly = silly;
7
7
  exports.verbose = verbose;
8
8
  const constants_1 = require("./constants.cjs");
9
9
  const logging_1 = require("./logging.cjs");
10
+ /**
11
+ * @description Method decorator for logging function calls
12
+ * @summary Creates a decorator that logs method calls with specified level, benchmarking, and verbosity
13
+ * @param {LogLevel} level - The log level to use (default: LogLevel.info)
14
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
15
+ * @param {number} [verbosity=0] - The verbosity level for the log messages (default: 0)
16
+ * @return {Function} A method decorator that wraps the original method with logging
17
+ * @function log
18
+ * @category Decorators
19
+ * @mermaid
20
+ * sequenceDiagram
21
+ * participant Client
22
+ * participant Decorator as log decorator
23
+ * participant Method as Original Method
24
+ * participant Logger as Logging instance
25
+ *
26
+ * Client->>Decorator: call decorated method
27
+ * Decorator->>Logger: log method call
28
+ * Decorator->>Method: call original method
29
+ * alt result is Promise
30
+ * Method-->>Decorator: return Promise
31
+ * Decorator->>Decorator: attach then handler
32
+ * Note over Decorator: Promise resolves
33
+ * Decorator->>Logger: log benchmark (if enabled)
34
+ * Decorator-->>Client: return result
35
+ * else result is not Promise
36
+ * Method-->>Decorator: return result
37
+ * Decorator->>Logger: log benchmark (if enabled)
38
+ * Decorator-->>Client: return result
39
+ * end
40
+ */
10
41
  function log(level = constants_1.LogLevel.info, benchmark = false, verbosity = 0) {
11
42
  return function (target, propertyKey, descriptor) {
12
43
  const log = logging_1.Logging.for(target).for(target[propertyKey]);
@@ -36,16 +67,49 @@ function log(level = constants_1.LogLevel.info, benchmark = false, verbosity = 0
36
67
  };
37
68
  };
38
69
  }
70
+ /**
71
+ * @description Method decorator for logging function calls with debug level
72
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.debug
73
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
74
+ * @return {Function} A method decorator that wraps the original method with debug logging
75
+ * @function debug
76
+ * @category Decorators
77
+ */
39
78
  function debug(benchmark = false) {
40
79
  return log(constants_1.LogLevel.debug, benchmark);
41
80
  }
81
+ /**
82
+ * @description Method decorator for logging function calls with info level
83
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.info
84
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
85
+ * @return {Function} A method decorator that wraps the original method with info logging
86
+ * @function info
87
+ * @category Decorators
88
+ */
42
89
  function info(benchmark = false) {
43
90
  return log(constants_1.LogLevel.info, benchmark);
44
91
  }
92
+ /**
93
+ * @description Method decorator for logging function calls with silly level
94
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.silly
95
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
96
+ * @return {Function} A method decorator that wraps the original method with silly logging
97
+ * @function silly
98
+ * @category Decorators
99
+ */
45
100
  function silly(benchmark = false) {
46
101
  return log(constants_1.LogLevel.silly, benchmark);
47
102
  }
103
+ /**
104
+ * @description Method decorator for logging function calls with verbose level
105
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.verbose with configurable verbosity
106
+ * @param {number} verbosity - The verbosity level for the log messages (default: 0)
107
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
108
+ * @return {Function} A method decorator that wraps the original method with verbose logging
109
+ * @function verbose
110
+ * @category Decorators
111
+ */
48
112
  function verbose(verbosity = 0, benchmark = false) {
49
113
  return log(constants_1.LogLevel.verbose, benchmark, verbosity);
50
114
  }
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esa0JBbUNDO0FBRUQsc0JBRUM7QUFFRCxvQkFFQztBQUVELHNCQUVDO0FBRUQsMEJBRUM7QUF0REQsK0NBQXVDO0FBQ3ZDLDJDQUFvQztBQUVwQyxTQUFnQixHQUFHLENBQ2pCLFFBQWtCLG9CQUFRLENBQUMsSUFBSSxFQUMvQixZQUFxQixLQUFLLEVBQzFCLFNBQVMsR0FBRyxDQUFDO0lBRWIsT0FBTyxVQUNMLE1BQVcsRUFDWCxXQUFtQixFQUNuQixVQUE4QjtRQUU5QixNQUFNLEdBQUcsR0FBRyxpQkFBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxNQUFNLGNBQWMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDO1FBQ3hDLFVBQVUsQ0FBQyxLQUFLLEdBQUcsVUFBVSxHQUFHLElBQVc7WUFDekMsTUFBTSxDQUFDLGVBQWUsSUFBSSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDekMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3pCLElBQUksR0FBVyxDQUFDO1lBQ2hCLE1BQU0sTUFBTSxHQUFRLGNBQWMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3JELElBQUksTUFBTSxZQUFZLE9BQU8sRUFBRSxDQUFDO2dCQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDdkIsSUFBSSxTQUFTLEVBQUUsQ0FBQzt3QkFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO3dCQUNqQixJQUFJLFNBQVM7NEJBQUUsTUFBTSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsS0FBSyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7b0JBQ3BFLENBQUM7b0JBQ0QsT0FBTyxDQUFDLENBQUM7Z0JBQ1gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0QsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDZCxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO2dCQUNqQixJQUFJLFNBQVM7b0JBQUUsTUFBTSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsS0FBSyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDcEUsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQztJQUNKLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxTQUFnQixLQUFLLENBQUMsWUFBcUIsS0FBSztJQUM5QyxPQUFPLEdBQUcsQ0FBQyxvQkFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBZ0IsSUFBSSxDQUFDLFlBQXFCLEtBQUs7SUFDN0MsT0FBTyxHQUFHLENBQUMsb0JBQVEsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDdkMsQ0FBQztBQUVELFNBQWdCLEtBQUssQ0FBQyxZQUFxQixLQUFLO0lBQzlDLE9BQU8sR0FBRyxDQUFDLG9CQUFRLENBQUMsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3hDLENBQUM7QUFFRCxTQUFnQixPQUFPLENBQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxZQUFxQixLQUFLO0lBQy9ELE9BQU8sR0FBRyxDQUFDLG9CQUFRLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUNyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTG9nTGV2ZWwgfSBmcm9tIFwiLi9jb25zdGFudHNcIjtcbmltcG9ydCB7IExvZ2dpbmcgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2coXG4gIGxldmVsOiBMb2dMZXZlbCA9IExvZ0xldmVsLmluZm8sXG4gIGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlLFxuICB2ZXJib3NpdHkgPSAwXG4pIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIChcbiAgICB0YXJnZXQ6IGFueSxcbiAgICBwcm9wZXJ0eUtleTogc3RyaW5nLFxuICAgIGRlc2NyaXB0b3I6IFByb3BlcnR5RGVzY3JpcHRvclxuICApIHtcbiAgICBjb25zdCBsb2cgPSBMb2dnaW5nLmZvcih0YXJnZXQpLmZvcih0YXJnZXRbcHJvcGVydHlLZXldKTtcbiAgICBjb25zdCBtZXRob2QgPSBsb2dbbGV2ZWxdLmJpbmQobG9nKTtcbiAgICBjb25zdCBvcmlnaW5hbE1ldGhvZCA9IGRlc2NyaXB0b3IudmFsdWU7XG4gICAgZGVzY3JpcHRvci52YWx1ZSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuICAgICAgbWV0aG9kKGBjYWxsZWQgd2l0aCAke2FyZ3N9YCwgdmVyYm9zaXR5KTtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgIGxldCBlbmQ6IG51bWJlcjtcbiAgICAgIGNvbnN0IHJlc3VsdDogYW55ID0gb3JpZ2luYWxNZXRob2QuYXBwbHkodGhpcywgYXJncyk7XG4gICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgUHJvbWlzZSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0LnRoZW4oKHIpID0+IHtcbiAgICAgICAgICBpZiAoYmVuY2htYXJrKSB7XG4gICAgICAgICAgICBlbmQgPSBEYXRlLm5vdygpO1xuICAgICAgICAgICAgaWYgKGJlbmNobWFyaykgbWV0aG9kKGBjb21wbGV0ZWQgaW4gJHtlbmQgLSBzdGFydH1tc2AsIHZlcmJvc2l0eSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiByO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGlmIChiZW5jaG1hcmspIHtcbiAgICAgICAgZW5kID0gRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKGJlbmNobWFyaykgbWV0aG9kKGBjb21wbGV0ZWQgaW4gJHtlbmQgLSBzdGFydH1tc2AsIHZlcmJvc2l0eSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfTtcbiAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlYnVnKGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuZGVidWcsIGJlbmNobWFyayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuaW5mbywgYmVuY2htYXJrKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNpbGx5KGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuc2lsbHksIGJlbmNobWFyayk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB2ZXJib3NlKHZlcmJvc2l0eSA9IDAsIGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwudmVyYm9zZSwgYmVuY2htYXJrLCB2ZXJib3NpdHkpO1xufVxuIl19
115
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVjb3JhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZWNvcmF0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0NBLGtCQW1DQztBQVVELHNCQUVDO0FBVUQsb0JBRUM7QUFVRCxzQkFFQztBQVdELDBCQUVDO0FBdEhELCtDQUF1QztBQUN2QywyQ0FBb0M7QUFFcEM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCRztBQUNILFNBQWdCLEdBQUcsQ0FDakIsUUFBa0Isb0JBQVEsQ0FBQyxJQUFJLEVBQy9CLFlBQXFCLEtBQUssRUFDMUIsU0FBUyxHQUFHLENBQUM7SUFFYixPQUFPLFVBQ0wsTUFBVyxFQUNYLFdBQW1CLEVBQ25CLFVBQThCO1FBRTlCLE1BQU0sR0FBRyxHQUFHLGlCQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUN6RCxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sY0FBYyxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDeEMsVUFBVSxDQUFDLEtBQUssR0FBRyxVQUFVLEdBQUcsSUFBVztZQUN6QyxNQUFNLENBQUMsZUFBZSxJQUFJLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN6QyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDekIsSUFBSSxHQUFXLENBQUM7WUFDaEIsTUFBTSxNQUFNLEdBQVEsY0FBYyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDckQsSUFBSSxNQUFNLFlBQVksT0FBTyxFQUFFLENBQUM7Z0JBQzlCLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN2QixJQUFJLFNBQVMsRUFBRSxDQUFDO3dCQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7d0JBQ2pCLElBQUksU0FBUzs0QkFBRSxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDcEUsQ0FBQztvQkFDRCxPQUFPLENBQUMsQ0FBQztnQkFDWCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLFNBQVMsRUFBRSxDQUFDO2dCQUNkLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7Z0JBQ2pCLElBQUksU0FBUztvQkFBRSxNQUFNLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxLQUFLLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNwRSxDQUFDO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDO0lBQ0osQ0FBQyxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxTQUFnQixLQUFLLENBQUMsWUFBcUIsS0FBSztJQUM5QyxPQUFPLEdBQUcsQ0FBQyxvQkFBUSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILFNBQWdCLElBQUksQ0FBQyxZQUFxQixLQUFLO0lBQzdDLE9BQU8sR0FBRyxDQUFDLG9CQUFRLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsS0FBSyxDQUFDLFlBQXFCLEtBQUs7SUFDOUMsT0FBTyxHQUFHLENBQUMsb0JBQVEsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDeEMsQ0FBQztBQUVEOzs7Ozs7OztHQVFHO0FBQ0gsU0FBZ0IsT0FBTyxDQUFDLFNBQVMsR0FBRyxDQUFDLEVBQUUsWUFBcUIsS0FBSztJQUMvRCxPQUFPLEdBQUcsQ0FBQyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvZ0xldmVsIH0gZnJvbSBcIi4vY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBMb2dnaW5nIH0gZnJvbSBcIi4vbG9nZ2luZ1wiO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRob2QgZGVjb3JhdG9yIGZvciBsb2dnaW5nIGZ1bmN0aW9uIGNhbGxzXG4gKiBAc3VtbWFyeSBDcmVhdGVzIGEgZGVjb3JhdG9yIHRoYXQgbG9ncyBtZXRob2QgY2FsbHMgd2l0aCBzcGVjaWZpZWQgbGV2ZWwsIGJlbmNobWFya2luZywgYW5kIHZlcmJvc2l0eVxuICogQHBhcmFtIHtMb2dMZXZlbH0gbGV2ZWwgLSBUaGUgbG9nIGxldmVsIHRvIHVzZSAoZGVmYXVsdDogTG9nTGV2ZWwuaW5mbylcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2JlbmNobWFyaz1mYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBleGVjdXRpb24gdGltZSAoZGVmYXVsdDogZmFsc2UpXG4gKiBAcGFyYW0ge251bWJlcn0gW3ZlcmJvc2l0eT0wXSAtIFRoZSB2ZXJib3NpdHkgbGV2ZWwgZm9yIHRoZSBsb2cgbWVzc2FnZXMgKGRlZmF1bHQ6IDApXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgd3JhcHMgdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIGxvZ2dpbmdcbiAqIEBmdW5jdGlvbiBsb2dcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKiBAbWVybWFpZFxuICogc2VxdWVuY2VEaWFncmFtXG4gKiAgIHBhcnRpY2lwYW50IENsaWVudFxuICogICBwYXJ0aWNpcGFudCBEZWNvcmF0b3IgYXMgbG9nIGRlY29yYXRvclxuICogICBwYXJ0aWNpcGFudCBNZXRob2QgYXMgT3JpZ2luYWwgTWV0aG9kXG4gKiAgIHBhcnRpY2lwYW50IExvZ2dlciBhcyBMb2dnaW5nIGluc3RhbmNlXG4gKlxuICogICBDbGllbnQtPj5EZWNvcmF0b3I6IGNhbGwgZGVjb3JhdGVkIG1ldGhvZFxuICogICBEZWNvcmF0b3ItPj5Mb2dnZXI6IGxvZyBtZXRob2QgY2FsbFxuICogICBEZWNvcmF0b3ItPj5NZXRob2Q6IGNhbGwgb3JpZ2luYWwgbWV0aG9kXG4gKiAgIGFsdCByZXN1bHQgaXMgUHJvbWlzZVxuICogICAgIE1ldGhvZC0tPj5EZWNvcmF0b3I6IHJldHVybiBQcm9taXNlXG4gKiAgICAgRGVjb3JhdG9yLT4+RGVjb3JhdG9yOiBhdHRhY2ggdGhlbiBoYW5kbGVyXG4gKiAgICAgTm90ZSBvdmVyIERlY29yYXRvcjogUHJvbWlzZSByZXNvbHZlc1xuICogICAgIERlY29yYXRvci0+PkxvZ2dlcjogbG9nIGJlbmNobWFyayAoaWYgZW5hYmxlZClcbiAqICAgICBEZWNvcmF0b3ItLT4+Q2xpZW50OiByZXR1cm4gcmVzdWx0XG4gKiAgIGVsc2UgcmVzdWx0IGlzIG5vdCBQcm9taXNlXG4gKiAgICAgTWV0aG9kLS0+PkRlY29yYXRvcjogcmV0dXJuIHJlc3VsdFxuICogICAgIERlY29yYXRvci0+PkxvZ2dlcjogbG9nIGJlbmNobWFyayAoaWYgZW5hYmxlZClcbiAqICAgICBEZWNvcmF0b3ItLT4+Q2xpZW50OiByZXR1cm4gcmVzdWx0XG4gKiAgIGVuZFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nKFxuICBsZXZlbDogTG9nTGV2ZWwgPSBMb2dMZXZlbC5pbmZvLFxuICBiZW5jaG1hcms6IGJvb2xlYW4gPSBmYWxzZSxcbiAgdmVyYm9zaXR5ID0gMFxuKSB7XG4gIHJldHVybiBmdW5jdGlvbiAoXG4gICAgdGFyZ2V0OiBhbnksXG4gICAgcHJvcGVydHlLZXk6IHN0cmluZyxcbiAgICBkZXNjcmlwdG9yOiBQcm9wZXJ0eURlc2NyaXB0b3JcbiAgKSB7XG4gICAgY29uc3QgbG9nID0gTG9nZ2luZy5mb3IodGFyZ2V0KS5mb3IodGFyZ2V0W3Byb3BlcnR5S2V5XSk7XG4gICAgY29uc3QgbWV0aG9kID0gbG9nW2xldmVsXS5iaW5kKGxvZyk7XG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBkZXNjcmlwdG9yLnZhbHVlO1xuICAgIGRlc2NyaXB0b3IudmFsdWUgPSBmdW5jdGlvbiAoLi4uYXJnczogYW55W10pIHtcbiAgICAgIG1ldGhvZChgY2FsbGVkIHdpdGggJHthcmdzfWAsIHZlcmJvc2l0eSk7XG4gICAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG4gICAgICBsZXQgZW5kOiBudW1iZXI7XG4gICAgICBjb25zdCByZXN1bHQ6IGFueSA9IG9yaWdpbmFsTWV0aG9kLmFwcGx5KHRoaXMsIGFyZ3MpO1xuICAgICAgaWYgKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50aGVuKChyKSA9PiB7XG4gICAgICAgICAgaWYgKGJlbmNobWFyaykge1xuICAgICAgICAgICAgZW5kID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgIGlmIChiZW5jaG1hcmspIG1ldGhvZChgY29tcGxldGVkIGluICR7ZW5kIC0gc3RhcnR9bXNgLCB2ZXJib3NpdHkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gcjtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBpZiAoYmVuY2htYXJrKSB7XG4gICAgICAgIGVuZCA9IERhdGUubm93KCk7XG4gICAgICAgIGlmIChiZW5jaG1hcmspIG1ldGhvZChgY29tcGxldGVkIGluICR7ZW5kIC0gc3RhcnR9bXNgLCB2ZXJib3NpdHkpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH07XG4gIH07XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1ldGhvZCBkZWNvcmF0b3IgZm9yIGxvZ2dpbmcgZnVuY3Rpb24gY2FsbHMgd2l0aCBkZWJ1ZyBsZXZlbFxuICogQHN1bW1hcnkgQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgdGhlIGxvZyBkZWNvcmF0b3IgdGhhdCB1c2VzIExvZ0xldmVsLmRlYnVnXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtiZW5jaG1hcms9ZmFsc2VdIC0gV2hldGhlciB0byBsb2cgZXhlY3V0aW9uIHRpbWUgKGRlZmF1bHQ6IGZhbHNlKVxuICogQHJldHVybiB7RnVuY3Rpb259IEEgbWV0aG9kIGRlY29yYXRvciB0aGF0IHdyYXBzIHRoZSBvcmlnaW5hbCBtZXRob2Qgd2l0aCBkZWJ1ZyBsb2dnaW5nXG4gKiBAZnVuY3Rpb24gZGVidWdcbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWJ1ZyhiZW5jaG1hcms6IGJvb2xlYW4gPSBmYWxzZSkge1xuICByZXR1cm4gbG9nKExvZ0xldmVsLmRlYnVnLCBiZW5jaG1hcmspO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNZXRob2QgZGVjb3JhdG9yIGZvciBsb2dnaW5nIGZ1bmN0aW9uIGNhbGxzIHdpdGggaW5mbyBsZXZlbFxuICogQHN1bW1hcnkgQ29udmVuaWVuY2Ugd3JhcHBlciBhcm91bmQgdGhlIGxvZyBkZWNvcmF0b3IgdGhhdCB1c2VzIExvZ0xldmVsLmluZm9cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2JlbmNobWFyaz1mYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBleGVjdXRpb24gdGltZSAoZGVmYXVsdDogZmFsc2UpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgd3JhcHMgdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIGluZm8gbG9nZ2luZ1xuICogQGZ1bmN0aW9uIGluZm9cbiAqIEBjYXRlZ29yeSBEZWNvcmF0b3JzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmZvKGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuaW5mbywgYmVuY2htYXJrKTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWV0aG9kIGRlY29yYXRvciBmb3IgbG9nZ2luZyBmdW5jdGlvbiBjYWxscyB3aXRoIHNpbGx5IGxldmVsXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCB0aGUgbG9nIGRlY29yYXRvciB0aGF0IHVzZXMgTG9nTGV2ZWwuc2lsbHlcbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW2JlbmNobWFyaz1mYWxzZV0gLSBXaGV0aGVyIHRvIGxvZyBleGVjdXRpb24gdGltZSAoZGVmYXVsdDogZmFsc2UpXG4gKiBAcmV0dXJuIHtGdW5jdGlvbn0gQSBtZXRob2QgZGVjb3JhdG9yIHRoYXQgd3JhcHMgdGhlIG9yaWdpbmFsIG1ldGhvZCB3aXRoIHNpbGx5IGxvZ2dpbmdcbiAqIEBmdW5jdGlvbiBzaWxseVxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNpbGx5KGJlbmNobWFyazogYm9vbGVhbiA9IGZhbHNlKSB7XG4gIHJldHVybiBsb2coTG9nTGV2ZWwuc2lsbHksIGJlbmNobWFyayk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIE1ldGhvZCBkZWNvcmF0b3IgZm9yIGxvZ2dpbmcgZnVuY3Rpb24gY2FsbHMgd2l0aCB2ZXJib3NlIGxldmVsXG4gKiBAc3VtbWFyeSBDb252ZW5pZW5jZSB3cmFwcGVyIGFyb3VuZCB0aGUgbG9nIGRlY29yYXRvciB0aGF0IHVzZXMgTG9nTGV2ZWwudmVyYm9zZSB3aXRoIGNvbmZpZ3VyYWJsZSB2ZXJib3NpdHlcbiAqIEBwYXJhbSB7bnVtYmVyfSB2ZXJib3NpdHkgLSBUaGUgdmVyYm9zaXR5IGxldmVsIGZvciB0aGUgbG9nIG1lc3NhZ2VzIChkZWZhdWx0OiAwKVxuICogQHBhcmFtIHtib29sZWFufSBbYmVuY2htYXJrPWZhbHNlXSAtIFdoZXRoZXIgdG8gbG9nIGV4ZWN1dGlvbiB0aW1lIChkZWZhdWx0OiBmYWxzZSlcbiAqIEByZXR1cm4ge0Z1bmN0aW9ufSBBIG1ldGhvZCBkZWNvcmF0b3IgdGhhdCB3cmFwcyB0aGUgb3JpZ2luYWwgbWV0aG9kIHdpdGggdmVyYm9zZSBsb2dnaW5nXG4gKiBAZnVuY3Rpb24gdmVyYm9zZVxuICogQGNhdGVnb3J5IERlY29yYXRvcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZlcmJvc2UodmVyYm9zaXR5ID0gMCwgYmVuY2htYXJrOiBib29sZWFuID0gZmFsc2UpIHtcbiAgcmV0dXJuIGxvZyhMb2dMZXZlbC52ZXJib3NlLCBiZW5jaG1hcmssIHZlcmJvc2l0eSk7XG59XG4iXX0=
@@ -1,6 +1,70 @@
1
1
  import { LogLevel } from "./constants";
2
+ /**
3
+ * @description Method decorator for logging function calls
4
+ * @summary Creates a decorator that logs method calls with specified level, benchmarking, and verbosity
5
+ * @param {LogLevel} level - The log level to use (default: LogLevel.info)
6
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
7
+ * @param {number} [verbosity=0] - The verbosity level for the log messages (default: 0)
8
+ * @return {Function} A method decorator that wraps the original method with logging
9
+ * @function log
10
+ * @category Decorators
11
+ * @mermaid
12
+ * sequenceDiagram
13
+ * participant Client
14
+ * participant Decorator as log decorator
15
+ * participant Method as Original Method
16
+ * participant Logger as Logging instance
17
+ *
18
+ * Client->>Decorator: call decorated method
19
+ * Decorator->>Logger: log method call
20
+ * Decorator->>Method: call original method
21
+ * alt result is Promise
22
+ * Method-->>Decorator: return Promise
23
+ * Decorator->>Decorator: attach then handler
24
+ * Note over Decorator: Promise resolves
25
+ * Decorator->>Logger: log benchmark (if enabled)
26
+ * Decorator-->>Client: return result
27
+ * else result is not Promise
28
+ * Method-->>Decorator: return result
29
+ * Decorator->>Logger: log benchmark (if enabled)
30
+ * Decorator-->>Client: return result
31
+ * end
32
+ */
2
33
  export declare function log(level?: LogLevel, benchmark?: boolean, verbosity?: number): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
34
+ /**
35
+ * @description Method decorator for logging function calls with debug level
36
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.debug
37
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
38
+ * @return {Function} A method decorator that wraps the original method with debug logging
39
+ * @function debug
40
+ * @category Decorators
41
+ */
3
42
  export declare function debug(benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
43
+ /**
44
+ * @description Method decorator for logging function calls with info level
45
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.info
46
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
47
+ * @return {Function} A method decorator that wraps the original method with info logging
48
+ * @function info
49
+ * @category Decorators
50
+ */
4
51
  export declare function info(benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
52
+ /**
53
+ * @description Method decorator for logging function calls with silly level
54
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.silly
55
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
56
+ * @return {Function} A method decorator that wraps the original method with silly logging
57
+ * @function silly
58
+ * @category Decorators
59
+ */
5
60
  export declare function silly(benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
61
+ /**
62
+ * @description Method decorator for logging function calls with verbose level
63
+ * @summary Convenience wrapper around the log decorator that uses LogLevel.verbose with configurable verbosity
64
+ * @param {number} verbosity - The verbosity level for the log messages (default: 0)
65
+ * @param {boolean} [benchmark=false] - Whether to log execution time (default: false)
66
+ * @return {Function} A method decorator that wraps the original method with verbose logging
67
+ * @function verbose
68
+ * @category Decorators
69
+ */
6
70
  export declare function verbose(verbosity?: number, benchmark?: boolean): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
@@ -3,7 +3,7 @@ import { LoggingConfig, Theme } from "./types";
3
3
  * @description Enum for log levels.
4
4
  * @summary Defines different levels of logging for the application.
5
5
  * @enum {string}
6
- * @memberOf @decaf-ts/utils
6
+ * @memberOf module:Logging
7
7
  */
8
8
  export declare enum LogLevel {
9
9
  /** Error events that are likely to cause problems. */
@@ -20,13 +20,13 @@ export declare enum LogLevel {
20
20
  /**
21
21
  * @description Numeric values associated with log levels.
22
22
  * @summary Provides a numeric representation of log levels for comparison and filtering.
23
- * @const {Object} NumericLogLevels
24
- * @property {number} error - Numeric value for error level (0).
25
- * @property {number} info - Numeric value for info level (2).
26
- * @property {number} verbose - Numeric value for verbose level (4).
27
- * @property {number} debug - Numeric value for debug level (5).
28
- * @property {number} silly - Numeric value for silly level (8).
29
- * @memberOf @decaf-ts/utils
23
+ * @const NumericLogLevels
24
+ * @property {number} error - Numeric value for error level (2).
25
+ * @property {number} info - Numeric value for info level (4).
26
+ * @property {number} verbose - Numeric value for verbose level (6).
27
+ * @property {number} debug - Numeric value for debug level (7).
28
+ * @property {number} silly - Numeric value for silly level (9).
29
+ * @memberOf module:Logging
30
30
  */
31
31
  export declare const NumericLogLevels: {
32
32
  error: number;
@@ -35,8 +35,16 @@ export declare const NumericLogLevels: {
35
35
  debug: number;
36
36
  silly: number;
37
37
  };
38
+ /**
39
+ * @description Enum for logging output modes.
40
+ * @summary Defines different output formats for log messages.
41
+ * @enum {string}
42
+ * @memberOf module:Logging
43
+ */
38
44
  export declare enum LoggingMode {
45
+ /** Raw text format for human readability */
39
46
  RAW = "raw",
47
+ /** JSON format for machine parsing */
40
48
  JSON = "json"
41
49
  }
42
50
  /**
@@ -45,23 +53,24 @@ export declare enum LoggingMode {
45
53
  * @const DefaultTheme
46
54
  * @typedef {Theme} DefaultTheme
47
55
  * @property {Object} class - Styling for class names.
48
- * @property {number} class.fg - Foreground color code for class names (4).
56
+ * @property {number} class.fg - Foreground color code for class names (34).
49
57
  * @property {Object} id - Styling for identifiers.
50
58
  * @property {number} id.fg - Foreground color code for identifiers (36).
51
59
  * @property {Object} stack - Styling for stack traces (empty object).
52
60
  * @property {Object} timestamp - Styling for timestamps (empty object).
53
61
  * @property {Object} message - Styling for different types of messages.
54
62
  * @property {Object} message.error - Styling for error messages.
55
- * @property {number} message.error.fg - Foreground color code for error messages (34).
63
+ * @property {number} message.error.fg - Foreground color code for error messages (31).
56
64
  * @property {Object} method - Styling for method names (empty object).
57
65
  * @property {Object} logLevel - Styling for different log levels.
58
66
  * @property {Object} logLevel.error - Styling for error level logs.
59
- * @property {number} logLevel.error.fg - Foreground color code for error level logs (6).
67
+ * @property {number} logLevel.error.fg - Foreground color code for error level logs (31).
68
+ * @property {string[]} logLevel.error.style - Style attributes for error level logs (["bold"]).
60
69
  * @property {Object} logLevel.info - Styling for info level logs (empty object).
61
70
  * @property {Object} logLevel.verbose - Styling for verbose level logs (empty object).
62
71
  * @property {Object} logLevel.debug - Styling for debug level logs.
63
- * @property {number} logLevel.debug.fg - Foreground color code for debug level logs (7).
64
- * @memberOf @decaf-ts/utils
72
+ * @property {number} logLevel.debug.fg - Foreground color code for debug level logs (33).
73
+ * @memberOf module:Logging
65
74
  */
66
75
  export declare const DefaultTheme: Theme;
67
76
  /**
@@ -71,11 +80,14 @@ export declare const DefaultTheme: Theme;
71
80
  * @typedef {LoggingConfig} DefaultLoggingConfig
72
81
  * @property {number} verbose - Verbosity level (0).
73
82
  * @property {LogLevel} level - Default log level (LogLevel.info).
83
+ * @property {boolean} logLevel - Whether to display log level in output (true).
84
+ * @property {LoggingMode} mode - Output format mode (LoggingMode.RAW).
74
85
  * @property {boolean} style - Whether to apply styling to log output (false).
86
+ * @property {string} separator - Separator between log components (" - ").
75
87
  * @property {boolean} timestamp - Whether to include timestamps in log messages (true).
76
88
  * @property {string} timestampFormat - Format for timestamps ("HH:mm:ss.SSS").
77
89
  * @property {boolean} context - Whether to include context information in log messages (true).
78
90
  * @property {Theme} theme - The theme to use for styling log messages (DefaultTheme).
79
- * @memberOf @decaf-ts/utils
91
+ * @memberOf module:Logging
80
92
  */
81
93
  export declare const DefaultLoggingConfig: LoggingConfig;