@decaf-ts/logging 0.3.12 → 0.3.13
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/logging.cjs +534 -97
- package/dist/logging.esm.cjs +531 -98
- package/lib/LoggedClass.cjs +9 -12
- package/lib/LoggedClass.d.ts +6 -10
- package/lib/constants.cjs +40 -8
- package/lib/constants.d.ts +35 -7
- package/lib/decorators.cjs +114 -50
- package/lib/decorators.d.ts +58 -43
- package/lib/environment.cjs +65 -20
- package/lib/environment.d.ts +66 -22
- package/lib/esm/LoggedClass.d.ts +6 -10
- package/lib/esm/LoggedClass.js +9 -12
- package/lib/esm/constants.d.ts +35 -7
- package/lib/esm/constants.js +40 -8
- package/lib/esm/decorators.d.ts +58 -43
- package/lib/esm/decorators.js +113 -50
- package/lib/esm/environment.d.ts +66 -22
- package/lib/esm/environment.js +65 -20
- package/lib/esm/filters/LogFilter.d.ts +37 -0
- package/lib/esm/filters/LogFilter.js +30 -1
- package/lib/esm/filters/PatternFilter.d.ts +46 -0
- package/lib/esm/filters/PatternFilter.js +41 -1
- package/lib/esm/index.d.ts +7 -10
- package/lib/esm/index.js +8 -11
- package/lib/esm/logging.d.ts +14 -0
- package/lib/esm/logging.js +22 -1
- package/lib/esm/time.d.ts +149 -0
- package/lib/esm/time.js +212 -0
- package/lib/esm/types.d.ts +89 -51
- package/lib/esm/types.js +1 -1
- package/lib/filters/LogFilter.cjs +30 -1
- package/lib/filters/LogFilter.d.ts +37 -0
- package/lib/filters/PatternFilter.cjs +41 -1
- package/lib/filters/PatternFilter.d.ts +46 -0
- package/lib/index.cjs +8 -11
- package/lib/index.d.ts +7 -10
- package/lib/logging.cjs +22 -1
- package/lib/logging.d.ts +14 -0
- package/lib/time.cjs +217 -0
- package/lib/time.d.ts +149 -0
- package/lib/types.cjs +1 -1
- package/lib/types.d.ts +89 -51
- package/package.json +2 -2
package/lib/time.d.ts
ADDED
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description Snapshot of a recorded lap interval.
|
|
3
|
+
* @summary Captures the lap index, optional label, elapsed milliseconds for the lap, and cumulative elapsed time since the stopwatch started.
|
|
4
|
+
* @typedef {Object} Lap
|
|
5
|
+
* @property {number} index - Zero-based lap order.
|
|
6
|
+
* @property {string} [label] - Optional label describing the lap.
|
|
7
|
+
* @property {number} ms - Duration of the lap in milliseconds.
|
|
8
|
+
* @property {number} totalMs - Total elapsed time when the lap was recorded.
|
|
9
|
+
* @memberOf module:Logging
|
|
10
|
+
*/
|
|
11
|
+
export type Lap = {
|
|
12
|
+
index: number;
|
|
13
|
+
label?: string;
|
|
14
|
+
/** Duration of this lap in milliseconds */
|
|
15
|
+
ms: number;
|
|
16
|
+
/** Cumulative time up to this lap in milliseconds */
|
|
17
|
+
totalMs: number;
|
|
18
|
+
};
|
|
19
|
+
type NowFn = () => number;
|
|
20
|
+
/**
|
|
21
|
+
* @description High-resolution clock accessor returning milliseconds.
|
|
22
|
+
* @summary Chooses the most precise timer available in the current runtime, preferring `performance.now` or `process.hrtime.bigint`.
|
|
23
|
+
* @return {number} Milliseconds elapsed according to the best available clock.
|
|
24
|
+
*/
|
|
25
|
+
export declare const now: NowFn;
|
|
26
|
+
/**
|
|
27
|
+
* @description High-resolution stopwatch with pause, resume, and lap tracking.
|
|
28
|
+
* @summary Tracks elapsed time using the highest precision timer available, supports pausing, resuming, and recording labeled laps for diagnostics and benchmarking.
|
|
29
|
+
* @param {boolean} [autoStart=false] - When true, the stopwatch starts immediately upon construction.
|
|
30
|
+
* @class StopWatch
|
|
31
|
+
* @example
|
|
32
|
+
* const sw = new StopWatch(true);
|
|
33
|
+
* // ... work ...
|
|
34
|
+
* const lap = sw.lap("phase 1");
|
|
35
|
+
* sw.pause();
|
|
36
|
+
* console.log(`Elapsed: ${lap.totalMs}ms`);
|
|
37
|
+
* @mermaid
|
|
38
|
+
* sequenceDiagram
|
|
39
|
+
* participant Client
|
|
40
|
+
* participant StopWatch
|
|
41
|
+
* participant Clock as now()
|
|
42
|
+
* Client->>StopWatch: start()
|
|
43
|
+
* StopWatch->>Clock: now()
|
|
44
|
+
* Clock-->>StopWatch: timestamp
|
|
45
|
+
* Client->>StopWatch: lap()
|
|
46
|
+
* StopWatch->>Clock: now()
|
|
47
|
+
* Clock-->>StopWatch: timestamp
|
|
48
|
+
* StopWatch-->>Client: Lap
|
|
49
|
+
* Client->>StopWatch: pause()
|
|
50
|
+
* StopWatch->>Clock: now()
|
|
51
|
+
* Clock-->>StopWatch: timestamp
|
|
52
|
+
*/
|
|
53
|
+
export declare class StopWatch {
|
|
54
|
+
private _startMs;
|
|
55
|
+
private _elapsedMs;
|
|
56
|
+
private _running;
|
|
57
|
+
private _laps;
|
|
58
|
+
private _lastLapTotalMs;
|
|
59
|
+
constructor(autoStart?: boolean);
|
|
60
|
+
/**
|
|
61
|
+
* @description Indicates whether the stopwatch is actively running.
|
|
62
|
+
* @summary Returns `true` when timing is in progress and `false` when paused or stopped.
|
|
63
|
+
* @return {boolean} Current running state.
|
|
64
|
+
*/
|
|
65
|
+
get running(): boolean;
|
|
66
|
+
/**
|
|
67
|
+
* @description Elapsed time captured by the stopwatch.
|
|
68
|
+
* @summary Computes the total elapsed time in milliseconds, including the current session if running.
|
|
69
|
+
* @return {number} Milliseconds elapsed since the stopwatch started.
|
|
70
|
+
*/
|
|
71
|
+
get elapsedMs(): number;
|
|
72
|
+
/**
|
|
73
|
+
* @description Starts timing if the stopwatch is not already running.
|
|
74
|
+
* @summary Records the current timestamp and transitions the stopwatch into the running state.
|
|
75
|
+
* @return {this} Fluent reference to the stopwatch.
|
|
76
|
+
*/
|
|
77
|
+
start(): this;
|
|
78
|
+
/**
|
|
79
|
+
* @description Pauses timing and accumulates elapsed milliseconds.
|
|
80
|
+
* @summary Captures the partial duration, updates the accumulator, and keeps the stopwatch ready to resume later.
|
|
81
|
+
* @return {this} Fluent reference to the stopwatch.
|
|
82
|
+
*/
|
|
83
|
+
pause(): this;
|
|
84
|
+
/**
|
|
85
|
+
* @description Resumes timing after a pause.
|
|
86
|
+
* @summary Captures a fresh start timestamp while keeping previous elapsed time intact.
|
|
87
|
+
* @return {this} Fluent reference to the stopwatch.
|
|
88
|
+
*/
|
|
89
|
+
resume(): this;
|
|
90
|
+
/**
|
|
91
|
+
* @description Stops timing and returns the total elapsed milliseconds.
|
|
92
|
+
* @summary Invokes {@link StopWatch.pause} to consolidate elapsed time, leaving the stopwatch in a non-running state.
|
|
93
|
+
* @return {number} Milliseconds accumulated across all runs.
|
|
94
|
+
*/
|
|
95
|
+
stop(): number;
|
|
96
|
+
/**
|
|
97
|
+
* @description Resets the stopwatch state while optionally continuing to run.
|
|
98
|
+
* @summary Clears elapsed time and lap history, preserving whether the stopwatch should continue ticking.
|
|
99
|
+
* @return {this} Fluent reference to the stopwatch.
|
|
100
|
+
*/
|
|
101
|
+
reset(): this;
|
|
102
|
+
/**
|
|
103
|
+
* @description Records a lap split since the stopwatch started or since the previous lap.
|
|
104
|
+
* @summary Stores the lap metadata, updates cumulative tracking, and returns the newly created {@link Lap}.
|
|
105
|
+
* @param {string} [label] - Optional label describing the lap.
|
|
106
|
+
* @return {Lap} Lap snapshot capturing incremental and cumulative timings.
|
|
107
|
+
*/
|
|
108
|
+
lap(label?: string): Lap;
|
|
109
|
+
/**
|
|
110
|
+
* @description Retrieves the recorded lap history.
|
|
111
|
+
* @summary Returns the internal lap array as a read-only view to prevent external mutation.
|
|
112
|
+
* @return {Lap[]} Laps captured by the stopwatch.
|
|
113
|
+
*/
|
|
114
|
+
get laps(): readonly Lap[];
|
|
115
|
+
/**
|
|
116
|
+
* @description Formats the elapsed time in a human-readable representation.
|
|
117
|
+
* @summary Uses {@link formatMs} to produce an `hh:mm:ss.mmm` string for display and logging.
|
|
118
|
+
* @return {string} Elapsed time formatted for presentation.
|
|
119
|
+
*/
|
|
120
|
+
toString(): string;
|
|
121
|
+
/**
|
|
122
|
+
* @description Serializes the stopwatch state.
|
|
123
|
+
* @summary Provides a JSON-friendly snapshot including running state, elapsed time, and lap details.
|
|
124
|
+
* @return {{running: boolean, elapsedMs: number, laps: Lap[]}} Serializable stopwatch representation.
|
|
125
|
+
*/
|
|
126
|
+
toJSON(): {
|
|
127
|
+
running: boolean;
|
|
128
|
+
elapsedMs: number;
|
|
129
|
+
laps: Lap[];
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* @description Formats milliseconds into `hh:mm:ss.mmm`.
|
|
134
|
+
* @summary Breaks the duration into hours, minutes, seconds, and milliseconds, returning a zero-padded string.
|
|
135
|
+
* @param {number} ms - Milliseconds to format.
|
|
136
|
+
* @return {string} Formatted duration string.
|
|
137
|
+
* @function formatMs
|
|
138
|
+
* @memberOf module:Logging
|
|
139
|
+
* @mermaid
|
|
140
|
+
* sequenceDiagram
|
|
141
|
+
* participant Caller
|
|
142
|
+
* participant Formatter as formatMs
|
|
143
|
+
* Caller->>Formatter: formatMs(ms)
|
|
144
|
+
* Formatter->>Formatter: derive hours/minutes/seconds
|
|
145
|
+
* Formatter->>Formatter: pad segments
|
|
146
|
+
* Formatter-->>Caller: hh:mm:ss.mmm
|
|
147
|
+
*/
|
|
148
|
+
export declare function formatMs(ms: number): string;
|
|
149
|
+
export {};
|
package/lib/types.cjs
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0eWxlcyB9IGZyb20gXCJzdHlsZWQtc3RyaW5nLWJ1aWxkZXJcIjtcbmltcG9ydCB7IExvZ2dpbmdNb2RlLCBMb2dMZXZlbCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gQSB0eXBlIHJlcHJlc2VudGluZyBzdHJpbmctbGlrZSB2YWx1ZXNcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgZWl0aGVyIGEgc3RyaW5nIG9yIGFuIG9iamVjdCB3aXRoIGEgdG9TdHJpbmcgbWV0aG9kIHRoYXQgcmV0dXJucyBhIHN0cmluZ1xuICogQHR5cGVkZWYgeyhzdHJpbmd8T2JqZWN0KX0gU3RyaW5nTGlrZVxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCB0eXBlIFN0cmluZ0xpa2UgPSBzdHJpbmcgfCB7IHRvU3RyaW5nOiAoKSA9PiBzdHJpbmcgfTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQSBnZW5lcmljIGZ1bmN0aW9uIHR5cGUgd2l0aCBhbnkgYXJndW1lbnRzIGFuZCByZXR1cm5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYW55IGNhbGxhYmxlIHNpZ25hdHVyZSwgdXNlZnVsIGZvciBhbm5vdGF0aW5nIGhpZ2hlci1vcmRlciB1dGlsaXRpZXNcbiAqIGFuZCBkeW5hbWljIG1ldGhvZCByZWZlcmVuY2VzIHdoZXJlIGFyZ3VtZW50IGFuZCByZXR1cm4gdHlwZXMgYXJlIG5vdCBjb25zdHJhaW5lZC5cbiAqIEB0eXBlZGVmIHtGdW5jdGlvbn0gQW55RnVuY3Rpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgdHlwZSBBbnlGdW5jdGlvbiA9ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBBIGNvbnN0cnVjdGFibGUgY2xhc3MgdHlwZVxuICogQHN1bW1hcnkgRGVzY3JpYmVzIGEgY2xhc3MgY29uc3RydWN0b3IgdGhhdCBwcm9kdWNlcyBpbnN0YW5jZXMgb2YgdHlwZSBULiBVc2VmdWwgd2hlblxuICogcGFzc2luZyBjbGFzcyByZWZlcmVuY2VzIGFyb3VuZCAoZS5nLiwgZm9yIGNvbnRleHQgb3IgZGVwZW5kZW5jeSBpbmplY3Rpb24pLlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtmdW5jdGlvbihhbnlbXSk6IFR9IENsYXNzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3M8VD4gPSB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBUO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQSB0eXBlIHJlcHJlc2VudGluZyBsb2dnaW5nIGNvbnRleHRcbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgYSBjb250ZXh0IGZvciBsb2dnaW5nLCB3aGljaCBjYW4gYmUgYSBzdHJpbmcsIGEgY2xhc3MgY29uc3RydWN0b3IsIG9yIGEgZnVuY3Rpb25cbiAqIEB0eXBlZGVmIHsoc3RyaW5nfEZ1bmN0aW9ufE9iamVjdCl9IExvZ2dpbmdDb250ZXh0XG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2luZ0NvbnRleHQgPSBzdHJpbmcgfCBDbGFzczxhbnk+IHwgQW55RnVuY3Rpb247XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wZXJzb25hdGFibGU8VEhJUywgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10+IHtcbiAgZm9yKC4uLmFyZ3M6IEFSR1MpOiBUSElTO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGEgbG9nZ2VyIHdpdGggdmVyYm9zaXR5IGxldmVscy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgbWV0aG9kcyBmb3IgbG9nZ2luZyBhdCBkaWZmZXJlbnQgdmVyYm9zaXR5IGxldmVscy5cbiAqIEBpbnRlcmZhY2UgTG9nZ2VyXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dnZXJcbiAgZXh0ZW5kcyBJbXBlcnNvbmF0YWJsZTxcbiAgICBMb2dnZXIsXG4gICAgW1xuICAgICAgKFxuICAgICAgICB8IHN0cmluZ1xuICAgICAgICB8IHsgbmV3ICguLi5hcmdzOiBhbnlbXSk6IGFueSB9XG4gICAgICAgIHwgQW55RnVuY3Rpb25cbiAgICAgICAgfCBQYXJ0aWFsPExvZ2dpbmdDb25maWc+XG4gICAgICApLFxuICAgICAgUGFydGlhbDxMb2dnaW5nQ29uZmlnPixcbiAgICAgIC4uLmFueVtdLFxuICAgIF1cbiAgPiB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhIGB3YXkgdG9vIHZlcmJvc2VgIG9yIGEgc2lsbHkgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtTdHJpbmdMaWtlfSBtc2cgLSBUaGUgbWVzc2FnZSB0byBsb2cuXG4gICAqL1xuICBzaWxseShtc2c6IFN0cmluZ0xpa2UpOiB2b2lkO1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExvZ3MgYSB2ZXJib3NlIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7U3RyaW5nTGlrZX0gbXNnIC0gVGhlIG1lc3NhZ2UgdG8gbG9nLlxuICAgKiBAcGFyYW0ge251bWJlcn0gdmVyYm9zaXR5IC0gVGhlIHZlcmJvc2l0eSBsZXZlbCBvZiB0aGUgbWVzc2FnZS5cbiAgICovXG4gIHZlcmJvc2UobXNnOiBTdHJpbmdMaWtlLCB2ZXJib3NpdHk/OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhbiBpbmZvIG1lc3NhZ2UuXG4gICAqIEBwYXJhbSB7U3RyaW5nTGlrZX0gbXNnIC0gVGhlIG1lc3NhZ2UgdG8gbG9nLlxuICAgKi9cbiAgaW5mbyhtc2c6IFN0cmluZ0xpa2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge1N0cmluZ0xpa2UgfCBFcnJvcn0gbXNnIC0gVGhlIG1lc3NhZ2UgdG8gbG9nLlxuICAgKiBAcGFyYW0gZVxuICAgKi9cbiAgZXJyb3IobXNnOiBTdHJpbmdMaWtlIHwgRXJyb3IsIGU/OiBFcnJvcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dzIGEgZGVidWcgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1zZyAtIFRoZSBtZXNzYWdlIHRvIGxvZy5cbiAgICovXG4gIGRlYnVnKG1zZzogU3RyaW5nTGlrZSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IGxvZ2dlciBmb3IgYSBzcGVjaWZpYyBtZXRob2Qgb3IgY29udGV4dFxuICAgKiBAc3VtbWFyeSBSZXR1cm5zIGEgbmV3IGxvZ2dlciBpbnN0YW5jZSB0aGF0IGluY2x1ZGVzIHRoZSBzcGVjaWZpZWQgbWV0aG9kIG9yIGNvbnRleHQgaW4gaXRzIGxvZ3NcbiAgICogQHBhcmFtIHtzdHJpbmd8RnVuY3Rpb259IFttZXRob2RdIC0gVGhlIG1ldGhvZCBuYW1lIG9yIGZ1bmN0aW9uIHRvIGNyZWF0ZSBhIGxvZ2dlciBmb3JcbiAgICogQHBhcmFtIHtQYXJ0aWFsPExvZ2dpbmdDb25maWc+fSBbY29uZmlnXSAtIE9wdGlvbmFsIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBuZXcgbG9nZ2VyXG4gICAqIEBwYXJhbSBhcmdzXG4gICAqIEByZXR1cm4ge0xvZ2dlcn0gQSBuZXcgbG9nZ2VyIGluc3RhbmNlXG4gICAqL1xuICBmb3IoXG4gICAgbWV0aG9kOlxuICAgICAgfCBzdHJpbmdcbiAgICAgIHwgeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH1cbiAgICAgIHwgQW55RnVuY3Rpb25cbiAgICAgIHwgUGFydGlhbDxMb2dnaW5nQ29uZmlnPixcbiAgICBjb25maWc/OiBQYXJ0aWFsPExvZ2dpbmdDb25maWc+LFxuICAgIC4uLmFyZ3M6IGFueVtdXG4gICk6IExvZ2dlcjtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFVwZGF0ZXMgdGhlIGxvZ2dlciBjb25maWd1cmF0aW9uXG4gICAqIEBzdW1tYXJ5IFNldHMgb3IgdXBkYXRlcyB0aGUgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGlzIGxvZ2dlciBpbnN0YW5jZVxuICAgKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz59IGNvbmZpZyAtIFRoZSBjb25maWd1cmF0aW9uIG9wdGlvbnMgdG8gYXBwbHlcbiAgICovXG4gIHNldENvbmZpZyhjb25maWc6IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4pOiB2b2lkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdGaWx0ZXIge1xuICBmaWx0ZXIoY29uZmlnOiBMb2dnaW5nQ29uZmlnLCBtZXNzYWdlOiBzdHJpbmcsIGNvbnRleHQ6IHN0cmluZ1tdKTogc3RyaW5nO1xufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmF0aW9uIGZvciBsb2dnaW5nLlxuICogQHN1bW1hcnkgRGVmaW5lcyB0aGUgbG9nIGxldmVsIGFuZCB2ZXJib3NpdHkgZm9yIGxvZ2dpbmcuXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBMb2dnaW5nQ29uZmlnXG4gKiBAcHJvcGVydHkge0xvZ0xldmVsfSBsZXZlbCAtIFRoZSBsb2dnaW5nIGxldmVsLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbbG9nTGV2ZWxdIC0gV2hldGhlciB0byBkaXNwbGF5IGxvZyBsZXZlbCBpbiBvdXRwdXQuXG4gKiBAcHJvcGVydHkge251bWJlcn0gdmVyYm9zZSAtIFRoZSB2ZXJib3NpdHkgbGV2ZWwuXG4gKiBAcHJvcGVydHkge0xvZ2dpbmdNb2RlfSBbbW9kZV0gLSBPdXRwdXQgZm9ybWF0IG1vZGUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gY29udGV4dFNlcGFyYXRvciAtIFNlcGFyYXRvciBiZXR3ZWVuIGNvbnRleHQgZW50cmllcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZXBhcmF0b3IgLSBTZXBhcmF0b3IgYmV0d2VlbiBsb2cgY29tcG9uZW50cy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW3N0eWxlXSAtIFdoZXRoZXIgdG8gYXBwbHkgc3R5bGluZyB0byBsb2cgb3V0cHV0LlxuICogQHByb3BlcnR5IHtib29sZWFufSBbdGltZXN0YW1wXSAtIFdoZXRoZXIgdG8gaW5jbHVkZSB0aW1lc3RhbXBzIGluIGxvZyBtZXNzYWdlcy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBbdGltZXN0YW1wRm9ybWF0XSAtIEZvcm1hdCBmb3IgdGltZXN0YW1wcy5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gW2NvbnRleHRdIC0gV2hldGhlciB0byBpbmNsdWRlIGNvbnRleHQgaW5mb3JtYXRpb24gaW4gbG9nIG1lc3NhZ2VzLlxuICogQHByb3BlcnR5IHtUaGVtZX0gW3RoZW1lXSAtIFRoZSB0aGVtZSB0byB1c2UgZm9yIHN0eWxpbmcgbG9nIG1lc3NhZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSBbY29ycmVsYXRpb25JZF0gLSBDb3JyZWxhdGlvbiBJRCBmb3IgdHJhY2tpbmcgcmVsYXRlZCBsb2cgbWVzc2FnZXMuXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IHR5cGUgTG9nZ2luZ0NvbmZpZyA9IHtcbiAgYXBwPzogc3RyaW5nO1xuICBlbnY6IFwiZGV2ZWxvcG1lbnRcIiB8IFwicHJvZHVjdGlvblwiIHwgXCJ0ZXN0XCIgfCBcInN0YWdpbmdcIiB8IHN0cmluZztcbiAgbGV2ZWw6IExvZ0xldmVsO1xuICBsb2dMZXZlbD86IGJvb2xlYW47XG4gIHZlcmJvc2U6IG51bWJlcjtcbiAgY29udGV4dFNlcGFyYXRvcjogc3RyaW5nO1xuICBzZXBhcmF0b3I6IHN0cmluZztcbiAgc3R5bGU/OiBib29sZWFuO1xuICB0aW1lc3RhbXA/OiBib29sZWFuO1xuICB0aW1lc3RhbXBGb3JtYXQ/OiBzdHJpbmc7XG4gIGNvbnRleHQ/OiBib29sZWFuO1xuICB0aGVtZT86IFRoZW1lO1xuICBmb3JtYXQ6IExvZ2dpbmdNb2RlO1xuICBwYXR0ZXJuOiBzdHJpbmc7XG4gIGNvcnJlbGF0aW9uSWQ/OiBzdHJpbmcgfCBudW1iZXI7XG4gIGZpbHRlcnM/OiBzdHJpbmdbXSB8IExvZ2dpbmdGaWx0ZXJbXTtcbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEEgZmFjdG9yeSBmdW5jdGlvbiB0eXBlIGZvciBjcmVhdGluZyBsb2dnZXJzXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgZnVuY3Rpb24gdHlwZSB0aGF0IGNyZWF0ZXMgYW5kIHJldHVybnMgYSBsb2dnZXIgaW5zdGFuY2UgZm9yIGEgZ2l2ZW4gb2JqZWN0XG4gKiBAdGVtcGxhdGUgTCAtIFRoZSBsb2dnZXIgdHlwZSwgZXh0ZW5kaW5nIHRoZSBiYXNlIExvZ2dlciBpbnRlcmZhY2VcbiAqIEB0eXBlZGVmIHtGdW5jdGlvbn0gTG9nZ2VyRmFjdG9yeVxuICogQHBhcmFtIHtzdHJpbmd9IG9iamVjdCAtIFRoZSBvYmplY3Qgb3IgY29udGV4dCBuYW1lIGZvciB0aGUgbG9nZ2VyXG4gKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz59IFtjb25maWddIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIGxvZ2dlclxuICogQHJldHVybiB7TH0gQSBsb2dnZXIgaW5zdGFuY2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgdHlwZSBMb2dnZXJGYWN0b3J5PEwgZXh0ZW5kcyBMb2dnZXIgPSBMb2dnZXI+ID0gKFxuICBvYmplY3Q6IHN0cmluZyxcbiAgY29uZmlnPzogUGFydGlhbDxMb2dnaW5nQ29uZmlnPixcbiAgLi4uYXJnczogYW55W11cbikgPT4gTDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gUmVwcmVzZW50cyBhIHRoZW1lIG9wdGlvbiBmb3IgY29uc29sZSBvdXRwdXQgc3R5bGluZy5cbiAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIHN0cnVjdHVyZSBmb3Igc3R5bGluZyBhIHNwZWNpZmljIGVsZW1lbnQgaW4gdGhlIGNvbnNvbGUgb3V0cHV0LlxuICogSXQgYWxsb3dzIGZvciBjdXN0b21pemF0aW9uIG9mIGZvcmVncm91bmQgY29sb3IsIGJhY2tncm91bmQgY29sb3IsIGFuZCBhZGRpdGlvbmFsIHN0eWxlcy5cbiAqIENvbG9ycyBjYW4gYmUgc3BlY2lmaWVkIGFzIGEgc2luZ2xlIG51bWJlciwgYW4gUkdCIGFycmF5LCBvciBsZWZ0IHVuZGVmaW5lZCBmb3IgZGVmYXVsdC5cbiAqIEBpbnRlcmZhY2UgVGhlbWVPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lT3B0aW9uIHtcbiAgZmc/OiBudW1iZXIgfCBbbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcblxuICBiZz86IG51bWJlciB8IFtudW1iZXJdIHwgW251bWJlciwgbnVtYmVyLCBudW1iZXJdO1xuXG4gIHN0eWxlPzogbnVtYmVyW10gfCBba2V5b2YgdHlwZW9mIHN0eWxlc107XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEEgdHlwZSBmb3IgdGhlbWUgb3B0aW9ucyBvcmdhbml6ZWQgYnkgbG9nIGxldmVsXG4gKiBAc3VtbWFyeSBEZWZpbmVzIGEgcGFydGlhbCByZWNvcmQgbWFwcGluZyBsb2cgbGV2ZWxzIHRvIHRoZW1lIG9wdGlvbnMsIGFsbG93aW5nIGRpZmZlcmVudCBzdHlsaW5nIGZvciBkaWZmZXJlbnQgbG9nIGxldmVsc1xuICogQHR5cGVkZWYge09iamVjdH0gVGhlbWVPcHRpb25CeUxvZ0xldmVsXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IHR5cGUgVGhlbWVPcHRpb25CeUxvZ0xldmVsID0gUGFydGlhbDxSZWNvcmQ8TG9nTGV2ZWwsIFRoZW1lT3B0aW9uPj47XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmluZXMgdGhlIGNvbG9yIHRoZW1lIGZvciBjb25zb2xlIG91dHB1dC5cbiAqIEBzdW1tYXJ5IFRoaXMgaW50ZXJmYWNlIHNwZWNpZmllcyB0aGUgY29sb3Igc2NoZW1lIGZvciB2YXJpb3VzIGVsZW1lbnRzIG9mIGNvbnNvbGUgb3V0cHV0LFxuICogaW5jbHVkaW5nIHN0eWxpbmcgZm9yIGRpZmZlcmVudCBsb2cgbGV2ZWxzIGFuZCBjb21wb25lbnRzLiBJdCB1c2VzIFRoZW1lT3B0aW9uIHRvXG4gKiBkZWZpbmUgdGhlIHN0eWxpbmcgZm9yIGVhY2ggZWxlbWVudCwgYWxsb3dpbmcgZm9yIGN1c3RvbWl6YXRpb24gb2YgY29sb3JzIGFuZCBzdHlsZXNcbiAqIGZvciBkaWZmZXJlbnQgcGFydHMgb2YgdGhlIGxvZyBvdXRwdXQuXG4gKiBAaW50ZXJmYWNlIFRoZW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVtZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgY2xhc3MgbmFtZXMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIGFwcDogVGhlbWVPcHRpb24gfCBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgY2xhc3MgbmFtZXMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIHNlcGFyYXRvcjogVGhlbWVPcHRpb24gfCBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgY2xhc3MgbmFtZXMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIGNsYXNzOiBUaGVtZU9wdGlvbiB8IFRoZW1lT3B0aW9uQnlMb2dMZXZlbDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0eWxpbmcgZm9yIHRpbWVzdGFtcHMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIHRpbWVzdGFtcDogVGhlbWVPcHRpb24gfCBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTdHlsaW5nIGZvciB0aGUgbWFpbiBtZXNzYWdlIHRleHQgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIG1lc3NhZ2U6IFRoZW1lT3B0aW9uIHwgVGhlbWVPcHRpb25CeUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgbWV0aG9kIG5hbWVzIGluIHRoZSBvdXRwdXQuXG4gICAqL1xuICBtZXRob2Q6IFRoZW1lT3B0aW9uIHwgVGhlbWVPcHRpb25CeUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgaWRlbnRpZmllciBlbGVtZW50cyBpbiB0aGUgb3V0cHV0LlxuICAgKi9cbiAgaWQ6IFRoZW1lT3B0aW9uIHwgVGhlbWVPcHRpb25CeUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgaWRlbnRpZmllciBlbGVtZW50cyBpbiB0aGUgb3V0cHV0LlxuICAgKi9cbiAgc3RhY2s6IFRoZW1lT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgZGlmZmVyZW50IGxvZyBsZXZlbHMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIGxvZ0xldmVsOiBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHN0eWxlcyB9IGZyb20gXCJzdHlsZWQtc3RyaW5nLWJ1aWxkZXJcIjtcbmltcG9ydCB7IExvZ2dpbmdNb2RlLCBMb2dMZXZlbCB9IGZyb20gXCIuL2NvbnN0YW50c1wiO1xuLyoqXG4gKiBAZGVzY3JpcHRpb24gU3RyaW5nLWNvbXBhdGlibGUgdmFsdWUgYWNjZXB0ZWQgYnkgdGhlIGxvZ2dpbmcgQVBJcy5cbiAqIEBzdW1tYXJ5IFJlcHJlc2VudHMgZWl0aGVyIGEgbGl0ZXJhbCBzdHJpbmcgb3IgYW4gb2JqZWN0IGV4cG9zaW5nIGEgYHRvU3RyaW5nKClgIG1ldGhvZCwgYWxsb3dpbmcgbGF6eSBzdHJpbmdpZmljYXRpb24gb2YgY29tcGxleCBwYXlsb2Fkcy5cbiAqIEB0eXBlZGVmIHsoc3RyaW5nfE9iamVjdCl9IFN0cmluZ0xpa2VcbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgdHlwZSBTdHJpbmdMaWtlID0gc3RyaW5nIHwgeyB0b1N0cmluZzogKCkgPT4gc3RyaW5nIH07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdlbmVyaWMgZnVuY3Rpb24gc2lnbmF0dXJlIGZvciBsb29zZWx5IHR5cGVkIGNhbGxiYWNrcy5cbiAqIEBzdW1tYXJ5IENvdmVycyB2YXJpYWRpYyBmdW5jdGlvbnMgd2hvc2UgYXJndW1lbnRzIGFuZCByZXR1cm4gdHlwZXMgYXJlIG5vdCBjb25zdHJhaW5lZCwgZW5hYmxpbmcgdGhlIGxvZ2dpbmcgbGF5ZXIgdG8gYWNjZXB0IGFueSBjYWxsYWJsZS5cbiAqIEB0eXBlZGVmIHtmdW5jdGlvbihhbnlbXSk6IGFueX0gQW55RnVuY3Rpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgdHlwZSBBbnlGdW5jdGlvbiA9ICguLi5hcmdzOiBhbnlbXSkgPT4gYW55O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb25zdHJ1Y3RhYmxlIGNsYXNzIHR5cGUuXG4gKiBAc3VtbWFyeSBEZXNjcmliZXMgYSBjb25zdHJ1Y3RvciB0aGF0IHByb2R1Y2VzIGluc3RhbmNlcyBvZiB0eXBlIGBUYCwgYWxsb3dpbmcgQVBJcyB0byBhY2NlcHQgY2xhc3MgcmVmZXJlbmNlcyBmb3IgY29udGV4dC1hd2FyZSBsb2dnaW5nLlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHthbnl9IENsYXNzXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IHR5cGUgQ2xhc3M8VD4gPSB7XG4gIG5ldyAoLi4uYXJnczogYW55W10pOiBUO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29udGV4dCBkZXNjcmlwdG9yIGFjY2VwdGVkIHdoZW4gcmVxdWVzdGluZyBhIGxvZ2dlciBpbnN0YW5jZS5cbiAqIEBzdW1tYXJ5IEFsbG93cyB0aGUgbG9nZ2luZyBzeXN0ZW0gdG8gcmVzb2x2ZSBjb250ZXh0IG5hbWVzIGZyb20gc3RyaW5ncywgY29uc3RydWN0b3JzLCBvciBmdW5jdGlvbnMuXG4gKiBAdHlwZWRlZiB7KHN0cmluZ3xGdW5jdGlvbnxPYmplY3QpfSBMb2dnaW5nQ29udGV4dFxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCB0eXBlIExvZ2dpbmdDb250ZXh0ID0gc3RyaW5nIHwgQ2xhc3M8YW55PiB8IEFueUZ1bmN0aW9uO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBJbnRlcmZhY2UgZm9yIGZhY3RvcmllcyB0aGF0IGNyZWF0ZSBjb250ZXh0dWFsIGNsb25lcyBvZiB0aGUgcmVjZWl2ZXIuXG4gKiBAc3VtbWFyeSBEZWNsYXJlcyBhIGBmb3JgIG1ldGhvZCB0aGF0IHJldHVybnMgYW5vdGhlciBpbnN0YW5jZSBvZiBgVEhJU2AgdXNpbmcgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cywgZW5hYmxpbmcgY2hhaW5lZCBsb2dnZXIgY3VzdG9taXphdGlvbi5cbiAqIEB0ZW1wbGF0ZSBUSElTXG4gKiBAdGVtcGxhdGUgQVJHU1xuICogQGludGVyZmFjZSBJbXBlcnNvbmF0YWJsZVxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wZXJzb25hdGFibGU8VEhJUywgQVJHUyBleHRlbmRzIGFueVtdID0gYW55W10+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBQcm9kdWNlIGEgY29weSBvZiB0aGUgY3VycmVudCBpbnN0YW5jZSB3aXRoIGFsdGVyZWQgY29udGV4dC5cbiAgICogQHN1bW1hcnkgQ2FsbGVkIGJ5IGxvZ2dpbmcgdXRpbGl0aWVzIHRvIGRlcml2ZSBjaGlsZCBvYmplY3RzIHdpdGggc3VwcGxlbWVudGFsIGNvbmZpZ3VyYXRpb24gYW5kIGNvbnRleHQgbWV0YWRhdGEuXG4gICAqIEB0ZW1wbGF0ZSBUSElTXG4gICAqIEB0ZW1wbGF0ZSBBUkdTXG4gICAqIEBwYXJhbSB7QVJHU30gYXJncyAtIEFyZ3VtZW50cyBmb3J3YXJkZWQgdG8gdGhlIGltcGVyc29uYXRpb24gc3RyYXRlZ3kuXG4gICAqIEByZXR1cm4ge1RISVN9IERlcml2ZWQgaW5zdGFuY2UgdXNpbmcgdGhlIHByb3ZpZGVkIGFyZ3VtZW50cy5cbiAgICovXG4gIGZvciguLi5hcmdzOiBBUkdTKTogVEhJUztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSW50ZXJmYWNlIGZvciBsb2dnZXJzIHRoYXQgc3VwcG9ydCBtdWx0aXBsZSB2ZXJib3NpdHkgbGV2ZWxzLlxuICogQHN1bW1hcnkgRGVjbGFyZXMgc2V2ZXJpdHktc3BlY2lmaWMgbG9nIG1ldGhvZHMsIGNvbmZpZ3VyYXRpb24gb3ZlcnJpZGVzLCBhbmQgZmFjdG9yeSBoZWxwZXJzIHVzZWQgdGhyb3VnaG91dCB0aGUgbG9nZ2luZyB0b29sa2l0LlxuICogQGludGVyZmFjZSBMb2dnZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dlclxuICBleHRlbmRzIEltcGVyc29uYXRhYmxlPFxuICAgIExvZ2dlcixcbiAgICBbXG4gICAgICAoXG4gICAgICAgIHwgc3RyaW5nXG4gICAgICAgIHwgeyBuZXcgKC4uLmFyZ3M6IGFueVtdKTogYW55IH1cbiAgICAgICAgfCBBbnlGdW5jdGlvblxuICAgICAgICB8IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz5cbiAgICAgICksXG4gICAgICBQYXJ0aWFsPExvZ2dpbmdDb25maWc+LFxuICAgICAgLi4uYW55W10sXG4gICAgXVxuICA+IHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dzIGEgYmVuY2htYXJrIG1lc3NhZ2UuXG4gICAqIEBzdW1tYXJ5IEVtaXRzIGhpZ2gtZnJlcXVlbmN5IHBlcmZvcm1hbmNlIG1ldHJpY3MgYXQgdGhlIGBiZW5jaG1hcmtgIGxvZyBsZXZlbC5cbiAgICogQHBhcmFtIHtTdHJpbmdMaWtlfSBtc2cgLSBNZXNzYWdlIG9yIHBheWxvYWQgdG8gZW1pdC5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGJlbmNobWFyayhtc2c6IFN0cmluZ0xpa2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhIGB3YXkgdG9vIHZlcmJvc2VgIG9yIGEgc2lsbHkgbWVzc2FnZS5cbiAgICogQHN1bW1hcnkgRW1pdHMgcGxheWZ1bCBvciBleHRyZW1lbHkgdmVyYm9zZSBkZXRhaWxzIGF0IHRoZSBgc2lsbHlgIGxvZyBsZXZlbC5cbiAgICogQHBhcmFtIHtTdHJpbmdMaWtlfSBtc2cgLSBNZXNzYWdlIG9yIHBheWxvYWQgdG8gZW1pdC5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIHNpbGx5KG1zZzogU3RyaW5nTGlrZSk6IHZvaWQ7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhIHZlcmJvc2UgbWVzc2FnZS5cbiAgICogQHN1bW1hcnkgV3JpdGVzIGRpYWdub3N0aWMgb3V0cHV0IGdvdmVybmVkIGJ5IHRoZSBjb25maWd1cmVkIHZlcmJvc2l0eSB0aHJlc2hvbGQuXG4gICAqIEBwYXJhbSB7U3RyaW5nTGlrZX0gbXNnIC0gTWVzc2FnZSBvciBwYXlsb2FkIHRvIGVtaXQuXG4gICAqIEBwYXJhbSB7bnVtYmVyfSBbdmVyYm9zaXR5XSAtIFZlcmJvc2l0eSBsZXZlbCByZXF1aXJlZCBmb3IgdGhlIG1lc3NhZ2UgdG8gcGFzcyB0aHJvdWdoLlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgdmVyYm9zZShtc2c6IFN0cmluZ0xpa2UsIHZlcmJvc2l0eT86IG51bWJlcik6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBMb2dzIGFuIGluZm8gbWVzc2FnZS5cbiAgICogQHN1bW1hcnkgRW1pdHMgZ2VuZXJhbCBpbmZvcm1hdGlvbmFsIGV2ZW50cyB0aGF0IGRlc2NyaWJlIGFwcGxpY2F0aW9uIHByb2dyZXNzLlxuICAgKiBAcGFyYW0ge1N0cmluZ0xpa2V9IG1zZyAtIE1lc3NhZ2Ugb3IgcGF5bG9hZCB0byBlbWl0LlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgaW5mbyhtc2c6IFN0cmluZ0xpa2UpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTG9ncyBhbiBlcnJvciBtZXNzYWdlLlxuICAgKiBAc3VtbWFyeSBSZWNvcmRzIGVycm9ycyBhbmQgZXhjZXB0aW9ucywgaW5jbHVkaW5nIG9wdGlvbmFsIHN0YWNrIHRyYWNlcy5cbiAgICogQHBhcmFtIHtTdHJpbmdMaWtlfEVycm9yfSBtc2cgLSBNZXNzYWdlIG9yIHtAbGluayBFcnJvcn0gaW5zdGFuY2UgdG8gbG9nLlxuICAgKiBAcGFyYW0ge0Vycm9yfSBbZV0gLSBPcHRpb25hbCBzZWNvbmRhcnkgZXJyb3Igb3IgY2F1c2UuXG4gICAqIEByZXR1cm4ge3ZvaWR9XG4gICAqL1xuICBlcnJvcihtc2c6IFN0cmluZ0xpa2UgfCBFcnJvciwgZT86IEVycm9yKTogdm9pZDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIExvZ3MgYSBkZWJ1ZyBtZXNzYWdlLlxuICAgKiBAc3VtbWFyeSBFbWl0cyBmaW5lLWdyYWluZWQgZGlhZ25vc3RpYyBkZXRhaWxzIHVzZWZ1bCBkdXJpbmcgZGV2ZWxvcG1lbnQgYW5kIHRyb3VibGVzaG9vdGluZy5cbiAgICogQHBhcmFtIHtTdHJpbmdMaWtlfSBtc2cgLSBNZXNzYWdlIG9yIHBheWxvYWQgdG8gZW1pdC5cbiAgICogQHJldHVybiB7dm9pZH1cbiAgICovXG4gIGRlYnVnKG1zZzogU3RyaW5nTGlrZSk6IHZvaWQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGEgbmV3IGxvZ2dlciBmb3IgYSBzcGVjaWZpYyBtZXRob2Qgb3IgY29udGV4dC5cbiAgICogQHN1bW1hcnkgUHJvZHVjZXMgYSBzY29wZWQgbG9nZ2VyIHRoYXQgZm9ybWF0cyBlbnRyaWVzIHVzaW5nIHRoZSBkZXJpdmVkIGNvbnRleHQgYW5kIG92ZXJyaWRlcyBzdXBwbGllZCBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge2FueX0gbWV0aG9kIC0gTWV0aG9kIG5hbWUsIGNhbGxiYWNrLCBjb25zdHJ1Y3Rvciwgb3IgcGFydGlhbCBjb25maWd1cmF0aW9uIHVzZWQgdG8gc2VlZCB0aGUgY2hpbGQgbG9nZ2VyLlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz59IFtjb25maWddIC0gT3B0aW9uYWwgY29uZmlndXJhdGlvbiBvdmVycmlkZXMgZm9yIHRoZSBjaGlsZCBsb2dnZXIuXG4gICAqIEBwYXJhbSB7Li4uYW55W119IGFyZ3MgLSBFeHRyYSBhcmd1bWVudHMgZm9yd2FyZGVkIHRvIGZhY3RvcnkgaW1wbGVtZW50YXRpb25zLlxuICAgKiBAcmV0dXJuIHtMb2dnZXJ9IExvZ2dlciBpbnN0YW5jZSB0YWlsb3JlZCB0byB0aGUgc3VwcGxpZWQgY29udGV4dC5cbiAgICovXG4gIGZvcihcbiAgICBtZXRob2Q6XG4gICAgICB8IHN0cmluZ1xuICAgICAgfCB7IG5ldyAoLi4uYXJnczogYW55W10pOiBhbnkgfVxuICAgICAgfCBBbnlGdW5jdGlvblxuICAgICAgfCBQYXJ0aWFsPExvZ2dpbmdDb25maWc+LFxuICAgIGNvbmZpZz86IFBhcnRpYWw8TG9nZ2luZ0NvbmZpZz4sXG4gICAgLi4uYXJnczogYW55W11cbiAgKTogTG9nZ2VyO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gVXBkYXRlcyB0aGUgbG9nZ2VyIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBzdW1tYXJ5IE1lcmdlcyB0aGUgZ2l2ZW4gb3B0aW9ucyBpbnRvIHRoZSBsb2dnZXIncyBleGlzdGluZyBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge1BhcnRpYWw8TG9nZ2luZ0NvbmZpZz59IGNvbmZpZyAtIENvbmZpZ3VyYXRpb24gb3ZlcnJpZGVzIHRvIGFwcGx5LlxuICAgKiBAcmV0dXJuIHt2b2lkfVxuICAgKi9cbiAgc2V0Q29uZmlnKGNvbmZpZzogUGFydGlhbDxMb2dnaW5nQ29uZmlnPik6IHZvaWQ7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEludGVyZmFjZSBmb3IgZmlsdGVycyB0aGF0IG11dGF0ZSBvciByZWplY3QgbG9nIG1lc3NhZ2VzLlxuICogQHN1bW1hcnkgQWxsb3dzIGN1c3RvbSBwcmUtcHJvY2Vzc2luZyBvZiBsb2cgZW50cmllcyBiZWZvcmUgdGhleSBhcmUgZm9ybWF0dGVkIG9yIGVtaXR0ZWQuXG4gKiBAaW50ZXJmYWNlIExvZ2dpbmdGaWx0ZXJcbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2dpbmdGaWx0ZXIge1xuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFwcGx5IGZpbHRlcmluZyBsb2dpYyB0byBhbiBpbmNvbWluZyBtZXNzYWdlLlxuICAgKiBAc3VtbWFyeSBSZWNlaXZlcyB0aGUgYWN0aXZlIGNvbmZpZ3VyYXRpb24sIG9yaWdpbmFsIG1lc3NhZ2UsIGFuZCBjb250ZXh0IHN0YWNrIHRvIHByb2R1Y2UgdGhlIGZpbmFsIG1lc3NhZ2Ugc3RyaW5nLlxuICAgKiBAcGFyYW0ge0xvZ2dpbmdDb25maWd9IGNvbmZpZyAtIEFjdGl2ZSBsb2dnaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBtZXNzYWdlIC0gTWVzc2FnZSBzdWJtaXR0ZWQgZm9yIGxvZ2dpbmcuXG4gICAqIEBwYXJhbSB7c3RyaW5nW119IGNvbnRleHQgLSBDb250ZXh0IGlkZW50aWZpZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWVzc2FnZS5cbiAgICogQHJldHVybiB7c3RyaW5nfSBGaWx0ZXJlZCBtZXNzYWdlIHN0cmluZy5cbiAgICovXG4gIGZpbHRlcihjb25maWc6IExvZ2dpbmdDb25maWcsIG1lc3NhZ2U6IHN0cmluZywgY29udGV4dDogc3RyaW5nW10pOiBzdHJpbmc7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbmZpZ3VyYXRpb24gZm9yIGxvZ2dpbmcuXG4gKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSBsb2cgbGV2ZWwgYW5kIHZlcmJvc2l0eSBmb3IgbG9nZ2luZy5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IExvZ2dpbmdDb25maWdcbiAqIEBwcm9wZXJ0eSB7TG9nTGV2ZWx9IGxldmVsIC0gVGhlIGxvZ2dpbmcgbGV2ZWwuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFtsb2dMZXZlbF0gLSBXaGV0aGVyIHRvIGRpc3BsYXkgbG9nIGxldmVsIGluIG91dHB1dC5cbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSB2ZXJib3NlIC0gVGhlIHZlcmJvc2l0eSBsZXZlbC5cbiAqIEBwcm9wZXJ0eSB7TG9nZ2luZ01vZGV9IFttb2RlXSAtIE91dHB1dCBmb3JtYXQgbW9kZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBjb250ZXh0U2VwYXJhdG9yIC0gU2VwYXJhdG9yIGJldHdlZW4gY29udGV4dCBlbnRyaWVzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNlcGFyYXRvciAtIFNlcGFyYXRvciBiZXR3ZWVuIGxvZyBjb21wb25lbnRzLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbc3R5bGVdIC0gV2hldGhlciB0byBhcHBseSBzdHlsaW5nIHRvIGxvZyBvdXRwdXQuXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IFt0aW1lc3RhbXBdIC0gV2hldGhlciB0byBpbmNsdWRlIHRpbWVzdGFtcHMgaW4gbG9nIG1lc3NhZ2VzLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IFt0aW1lc3RhbXBGb3JtYXRdIC0gRm9ybWF0IGZvciB0aW1lc3RhbXBzLlxuICogQHByb3BlcnR5IHtib29sZWFufSBbY29udGV4dF0gLSBXaGV0aGVyIHRvIGluY2x1ZGUgY29udGV4dCBpbmZvcm1hdGlvbiBpbiBsb2cgbWVzc2FnZXMuXG4gKiBAcHJvcGVydHkge1RoZW1lfSBbdGhlbWVdIC0gVGhlIHRoZW1lIHRvIHVzZSBmb3Igc3R5bGluZyBsb2cgbWVzc2FnZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ3xudW1iZXJ9IFtjb3JyZWxhdGlvbklkXSAtIENvcnJlbGF0aW9uIElEIGZvciB0cmFja2luZyByZWxhdGVkIGxvZyBtZXNzYWdlcy5cbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgdHlwZSBMb2dnaW5nQ29uZmlnID0ge1xuICBhcHA/OiBzdHJpbmc7XG4gIGVudjogXCJkZXZlbG9wbWVudFwiIHwgXCJwcm9kdWN0aW9uXCIgfCBcInRlc3RcIiB8IFwic3RhZ2luZ1wiIHwgc3RyaW5nO1xuICBsZXZlbDogTG9nTGV2ZWw7XG4gIGxvZ0xldmVsPzogYm9vbGVhbjtcbiAgdmVyYm9zZTogbnVtYmVyO1xuICBjb250ZXh0U2VwYXJhdG9yOiBzdHJpbmc7XG4gIHNlcGFyYXRvcjogc3RyaW5nO1xuICBzdHlsZT86IGJvb2xlYW47XG4gIHRpbWVzdGFtcD86IGJvb2xlYW47XG4gIHRpbWVzdGFtcEZvcm1hdD86IHN0cmluZztcbiAgY29udGV4dD86IGJvb2xlYW47XG4gIHRoZW1lPzogVGhlbWU7XG4gIGZvcm1hdDogTG9nZ2luZ01vZGU7XG4gIHBhdHRlcm46IHN0cmluZztcbiAgY29ycmVsYXRpb25JZD86IHN0cmluZyB8IG51bWJlcjtcbiAgZmlsdGVycz86IHN0cmluZ1tdIHwgTG9nZ2luZ0ZpbHRlcltdO1xufTtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gRmFjdG9yeSBzaWduYXR1cmUgZm9yIGNyZWF0aW5nIGxvZ2dlciBpbnN0YW5jZXMuXG4gKiBAc3VtbWFyeSBBbGxvd3MgY29uc3VtZXJzIHRvIG92ZXJyaWRlIGxvZ2dlciBjb25zdHJ1Y3Rpb24gd2l0aCBjdXN0b20gaW1wbGVtZW50YXRpb25zLlxuICogQHRlbXBsYXRlIEwgLSBUaGUgbG9nZ2VyIHR5cGUsIGV4dGVuZGluZyB0aGUgYmFzZSBMb2dnZXIgaW50ZXJmYWNlXG4gKiBAdHlwZWRlZiB7ZnVuY3Rpb24oc3RyaW5nLCBQYXJ0aWFsPExvZ2dpbmdDb25maWc+LCBhbnlbXSk6IEx9IExvZ2dlckZhY3RvcnlcbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgdHlwZSBMb2dnZXJGYWN0b3J5PEwgZXh0ZW5kcyBMb2dnZXIgPSBMb2dnZXI+ID0gKFxuICBvYmplY3Q6IHN0cmluZyxcbiAgY29uZmlnPzogUGFydGlhbDxMb2dnaW5nQ29uZmlnPixcbiAgLi4uYXJnczogYW55W11cbikgPT4gTDtcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gVGhlbWUgb3B0aW9uIGFwcGxpZWQgdG8gYSBzcGVjaWZpYyBsb2cgZWxlbWVudC5cbiAqIEBzdW1tYXJ5IENvbmZpZ3VyZXMgZm9yZWdyb3VuZCBhbmQgYmFja2dyb3VuZCBjb2xvcnMgYXMgd2VsbCBhcyBhZGRpdGlvbmFsIHN0eWxlIGRpcmVjdGl2ZXMgZm9yIHN0eWxlZCBjb25zb2xlIG91dHB1dC5cbiAqIEBpbnRlcmZhY2UgVGhlbWVPcHRpb25cbiAqIEBtZW1iZXJPZiBtb2R1bGU6TG9nZ2luZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRoZW1lT3B0aW9uIHtcbiAgZmc/OiBudW1iZXIgfCBbbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgYmc/OiBudW1iZXIgfCBbbnVtYmVyXSB8IFtudW1iZXIsIG51bWJlciwgbnVtYmVyXTtcbiAgc3R5bGU/OiBudW1iZXJbXSB8IFtrZXlvZiB0eXBlb2Ygc3R5bGVzXTtcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gTWFwcGluZyBiZXR3ZWVuIGxvZyBsZXZlbHMgYW5kIHRoZW1lIG92ZXJyaWRlcy5cbiAqIEBzdW1tYXJ5IEVuYWJsZXMgbGV2ZWwtc3BlY2lmaWMgc3R5bGluZyBieSBhc3NvY2lhdGluZyBlYWNoIHtAbGluayBMb2dMZXZlbH0gd2l0aCBhIHtAbGluayBUaGVtZU9wdGlvbn0gY29uZmlndXJhdGlvbi5cbiAqIEB0eXBlZGVmIHtPYmplY3R9IFRoZW1lT3B0aW9uQnlMb2dMZXZlbFxuICogQG1lbWJlck9mIG1vZHVsZTpMb2dnaW5nXG4gKi9cbmV4cG9ydCB0eXBlIFRoZW1lT3B0aW9uQnlMb2dMZXZlbCA9IFBhcnRpYWw8UmVjb3JkPExvZ0xldmVsLCBUaGVtZU9wdGlvbj4+O1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBUaGVtZSBkZWZpbml0aW9uIGFwcGxpZWQgdG8gY29uc29sZSBvdXRwdXQuXG4gKiBAc3VtbWFyeSBTcGVjaWZpZXMgc3R5bGluZyBmb3IgZWFjaCBjb25zb2xlIGxvZyBlbGVtZW50IGFuZCBzdXBwb3J0cyBvdmVycmlkZXMgYmFzZWQgb24ge0BsaW5rIExvZ0xldmVsfSB2YWx1ZXMuXG4gKiBAaW50ZXJmYWNlIFRoZW1lXG4gKiBAbWVtYmVyT2YgbW9kdWxlOkxvZ2dpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaGVtZSB7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgYXBwbGljYXRpb24gaWRlbnRpZmllcnMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIGFwcDogVGhlbWVPcHRpb24gfCBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3Igc2VwYXJhdG9ycyBpbnNlcnRlZCBiZXR3ZWVuIGxvZyBzZWN0aW9ucy5cbiAgICovXG4gIHNlcGFyYXRvcjogVGhlbWVPcHRpb24gfCBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgY2xhc3MgbmFtZXMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIGNsYXNzOiBUaGVtZU9wdGlvbiB8IFRoZW1lT3B0aW9uQnlMb2dMZXZlbDtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFN0eWxpbmcgZm9yIHRpbWVzdGFtcHMgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIHRpbWVzdGFtcDogVGhlbWVPcHRpb24gfCBUaGVtZU9wdGlvbkJ5TG9nTGV2ZWw7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTdHlsaW5nIGZvciB0aGUgbWFpbiBtZXNzYWdlIHRleHQgaW4gdGhlIG91dHB1dC5cbiAgICovXG4gIG1lc3NhZ2U6IFRoZW1lT3B0aW9uIHwgVGhlbWVPcHRpb25CeUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgbWV0aG9kIG5hbWVzIGluIHRoZSBvdXRwdXQuXG4gICAqL1xuICBtZXRob2Q6IFRoZW1lT3B0aW9uIHwgVGhlbWVPcHRpb25CeUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3IgaWRlbnRpZmllciBlbGVtZW50cyBpbiB0aGUgb3V0cHV0LlxuICAgKi9cbiAgaWQ6IFRoZW1lT3B0aW9uIHwgVGhlbWVPcHRpb25CeUxvZ0xldmVsO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU3R5bGluZyBmb3Igc3RhY2sgdHJhY2UgYmxvY2tzIGluIHRoZSBvdXRwdXQuXG4gICAqL1xuICBzdGFjazogVGhlbWVPcHRpb247XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBTdHlsaW5nIG92ZXJyaWRlcyBrZXllZCBieSB7QGxpbmsgTG9nTGV2ZWx9LlxuICAgKi9cbiAgbG9nTGV2ZWw6IFRoZW1lT3B0aW9uQnlMb2dMZXZlbDtcbn1cbiJdfQ==
|
package/lib/types.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { styles } from "styled-string-builder";
|
|
2
2
|
import { LoggingMode, LogLevel } from "./constants";
|
|
3
3
|
/**
|
|
4
|
-
* @description
|
|
5
|
-
* @summary Represents either a string or an object
|
|
4
|
+
* @description String-compatible value accepted by the logging APIs.
|
|
5
|
+
* @summary Represents either a literal string or an object exposing a `toString()` method, allowing lazy stringification of complex payloads.
|
|
6
6
|
* @typedef {(string|Object)} StringLike
|
|
7
7
|
* @memberOf module:Logging
|
|
8
8
|
*/
|
|
@@ -10,37 +10,51 @@ export type StringLike = string | {
|
|
|
10
10
|
toString: () => string;
|
|
11
11
|
};
|
|
12
12
|
/**
|
|
13
|
-
* @description
|
|
14
|
-
* @summary
|
|
15
|
-
*
|
|
16
|
-
* @typedef {Function} AnyFunction
|
|
13
|
+
* @description Generic function signature for loosely typed callbacks.
|
|
14
|
+
* @summary Covers variadic functions whose arguments and return types are not constrained, enabling the logging layer to accept any callable.
|
|
15
|
+
* @typedef {function(any[]): any} AnyFunction
|
|
17
16
|
* @memberOf module:Logging
|
|
18
17
|
*/
|
|
19
18
|
export type AnyFunction = (...args: any[]) => any;
|
|
20
19
|
/**
|
|
21
|
-
* @description
|
|
22
|
-
* @summary Describes a
|
|
23
|
-
* passing class references around (e.g., for context or dependency injection).
|
|
20
|
+
* @description Constructable class type.
|
|
21
|
+
* @summary Describes a constructor that produces instances of type `T`, allowing APIs to accept class references for context-aware logging.
|
|
24
22
|
* @template T
|
|
25
|
-
* @typedef {
|
|
23
|
+
* @typedef {any} Class
|
|
26
24
|
* @memberOf module:Logging
|
|
27
25
|
*/
|
|
28
26
|
export type Class<T> = {
|
|
29
27
|
new (...args: any[]): T;
|
|
30
28
|
};
|
|
31
29
|
/**
|
|
32
|
-
* @description
|
|
33
|
-
* @summary
|
|
30
|
+
* @description Context descriptor accepted when requesting a logger instance.
|
|
31
|
+
* @summary Allows the logging system to resolve context names from strings, constructors, or functions.
|
|
34
32
|
* @typedef {(string|Function|Object)} LoggingContext
|
|
35
33
|
* @memberOf module:Logging
|
|
36
34
|
*/
|
|
37
35
|
export type LoggingContext = string | Class<any> | AnyFunction;
|
|
36
|
+
/**
|
|
37
|
+
* @description Interface for factories that create contextual clones of the receiver.
|
|
38
|
+
* @summary Declares a `for` method that returns another instance of `THIS` using the provided arguments, enabling chained logger customization.
|
|
39
|
+
* @template THIS
|
|
40
|
+
* @template ARGS
|
|
41
|
+
* @interface Impersonatable
|
|
42
|
+
* @memberOf module:Logging
|
|
43
|
+
*/
|
|
38
44
|
export interface Impersonatable<THIS, ARGS extends any[] = any[]> {
|
|
45
|
+
/**
|
|
46
|
+
* @description Produce a copy of the current instance with altered context.
|
|
47
|
+
* @summary Called by logging utilities to derive child objects with supplemental configuration and context metadata.
|
|
48
|
+
* @template THIS
|
|
49
|
+
* @template ARGS
|
|
50
|
+
* @param {ARGS} args - Arguments forwarded to the impersonation strategy.
|
|
51
|
+
* @return {THIS} Derived instance using the provided arguments.
|
|
52
|
+
*/
|
|
39
53
|
for(...args: ARGS): THIS;
|
|
40
54
|
}
|
|
41
55
|
/**
|
|
42
|
-
* @description Interface for
|
|
43
|
-
* @summary
|
|
56
|
+
* @description Interface for loggers that support multiple verbosity levels.
|
|
57
|
+
* @summary Declares severity-specific log methods, configuration overrides, and factory helpers used throughout the logging toolkit.
|
|
44
58
|
* @interface Logger
|
|
45
59
|
* @memberOf module:Logging
|
|
46
60
|
*/
|
|
@@ -51,52 +65,84 @@ export interface Logger extends Impersonatable<Logger, [
|
|
|
51
65
|
Partial<LoggingConfig>,
|
|
52
66
|
...any[]
|
|
53
67
|
]> {
|
|
68
|
+
/**
|
|
69
|
+
* @description Logs a benchmark message.
|
|
70
|
+
* @summary Emits high-frequency performance metrics at the `benchmark` log level.
|
|
71
|
+
* @param {StringLike} msg - Message or payload to emit.
|
|
72
|
+
* @return {void}
|
|
73
|
+
*/
|
|
74
|
+
benchmark(msg: StringLike): void;
|
|
54
75
|
/**
|
|
55
76
|
* @description Logs a `way too verbose` or a silly message.
|
|
56
|
-
* @
|
|
77
|
+
* @summary Emits playful or extremely verbose details at the `silly` log level.
|
|
78
|
+
* @param {StringLike} msg - Message or payload to emit.
|
|
79
|
+
* @return {void}
|
|
57
80
|
*/
|
|
58
81
|
silly(msg: StringLike): void;
|
|
59
82
|
/**
|
|
60
83
|
* @description Logs a verbose message.
|
|
61
|
-
* @
|
|
62
|
-
* @param {
|
|
84
|
+
* @summary Writes diagnostic output governed by the configured verbosity threshold.
|
|
85
|
+
* @param {StringLike} msg - Message or payload to emit.
|
|
86
|
+
* @param {number} [verbosity] - Verbosity level required for the message to pass through.
|
|
87
|
+
* @return {void}
|
|
63
88
|
*/
|
|
64
89
|
verbose(msg: StringLike, verbosity?: number): void;
|
|
65
90
|
/**
|
|
66
91
|
* @description Logs an info message.
|
|
67
|
-
* @
|
|
92
|
+
* @summary Emits general informational events that describe application progress.
|
|
93
|
+
* @param {StringLike} msg - Message or payload to emit.
|
|
94
|
+
* @return {void}
|
|
68
95
|
*/
|
|
69
96
|
info(msg: StringLike): void;
|
|
70
97
|
/**
|
|
71
98
|
* @description Logs an error message.
|
|
72
|
-
* @
|
|
73
|
-
* @param
|
|
99
|
+
* @summary Records errors and exceptions, including optional stack traces.
|
|
100
|
+
* @param {StringLike|Error} msg - Message or {@link Error} instance to log.
|
|
101
|
+
* @param {Error} [e] - Optional secondary error or cause.
|
|
102
|
+
* @return {void}
|
|
74
103
|
*/
|
|
75
104
|
error(msg: StringLike | Error, e?: Error): void;
|
|
76
105
|
/**
|
|
77
106
|
* @description Logs a debug message.
|
|
78
|
-
* @
|
|
107
|
+
* @summary Emits fine-grained diagnostic details useful during development and troubleshooting.
|
|
108
|
+
* @param {StringLike} msg - Message or payload to emit.
|
|
109
|
+
* @return {void}
|
|
79
110
|
*/
|
|
80
111
|
debug(msg: StringLike): void;
|
|
81
112
|
/**
|
|
82
|
-
* @description Creates a new logger for a specific method or context
|
|
83
|
-
* @summary
|
|
84
|
-
* @param {
|
|
85
|
-
* @param {Partial<LoggingConfig>} [config] - Optional configuration for the
|
|
86
|
-
* @param args
|
|
87
|
-
* @return {Logger}
|
|
113
|
+
* @description Creates a new logger for a specific method or context.
|
|
114
|
+
* @summary Produces a scoped logger that formats entries using the derived context and overrides supplied configuration.
|
|
115
|
+
* @param {any} method - Method name, callback, constructor, or partial configuration used to seed the child logger.
|
|
116
|
+
* @param {Partial<LoggingConfig>} [config] - Optional configuration overrides for the child logger.
|
|
117
|
+
* @param {...any[]} args - Extra arguments forwarded to factory implementations.
|
|
118
|
+
* @return {Logger} Logger instance tailored to the supplied context.
|
|
88
119
|
*/
|
|
89
120
|
for(method: string | {
|
|
90
121
|
new (...args: any[]): any;
|
|
91
122
|
} | AnyFunction | Partial<LoggingConfig>, config?: Partial<LoggingConfig>, ...args: any[]): Logger;
|
|
92
123
|
/**
|
|
93
|
-
* @description Updates the logger configuration
|
|
94
|
-
* @summary
|
|
95
|
-
* @param {Partial<LoggingConfig>} config -
|
|
124
|
+
* @description Updates the logger configuration.
|
|
125
|
+
* @summary Merges the given options into the logger's existing configuration.
|
|
126
|
+
* @param {Partial<LoggingConfig>} config - Configuration overrides to apply.
|
|
127
|
+
* @return {void}
|
|
96
128
|
*/
|
|
97
129
|
setConfig(config: Partial<LoggingConfig>): void;
|
|
98
130
|
}
|
|
131
|
+
/**
|
|
132
|
+
* @description Interface for filters that mutate or reject log messages.
|
|
133
|
+
* @summary Allows custom pre-processing of log entries before they are formatted or emitted.
|
|
134
|
+
* @interface LoggingFilter
|
|
135
|
+
* @memberOf module:Logging
|
|
136
|
+
*/
|
|
99
137
|
export interface LoggingFilter {
|
|
138
|
+
/**
|
|
139
|
+
* @description Apply filtering logic to an incoming message.
|
|
140
|
+
* @summary Receives the active configuration, original message, and context stack to produce the final message string.
|
|
141
|
+
* @param {LoggingConfig} config - Active logging configuration.
|
|
142
|
+
* @param {string} message - Message submitted for logging.
|
|
143
|
+
* @param {string[]} context - Context identifiers associated with the message.
|
|
144
|
+
* @return {string} Filtered message string.
|
|
145
|
+
*/
|
|
100
146
|
filter(config: LoggingConfig, message: string, context: string[]): string;
|
|
101
147
|
}
|
|
102
148
|
/**
|
|
@@ -136,21 +182,16 @@ export type LoggingConfig = {
|
|
|
136
182
|
filters?: string[] | LoggingFilter[];
|
|
137
183
|
};
|
|
138
184
|
/**
|
|
139
|
-
* @description
|
|
140
|
-
* @summary
|
|
185
|
+
* @description Factory signature for creating logger instances.
|
|
186
|
+
* @summary Allows consumers to override logger construction with custom implementations.
|
|
141
187
|
* @template L - The logger type, extending the base Logger interface
|
|
142
|
-
* @typedef {
|
|
143
|
-
* @param {string} object - The object or context name for the logger
|
|
144
|
-
* @param {Partial<LoggingConfig>} [config] - Optional configuration for the logger
|
|
145
|
-
* @return {L} A logger instance
|
|
188
|
+
* @typedef {function(string, Partial<LoggingConfig>, any[]): L} LoggerFactory
|
|
146
189
|
* @memberOf module:Logging
|
|
147
190
|
*/
|
|
148
191
|
export type LoggerFactory<L extends Logger = Logger> = (object: string, config?: Partial<LoggingConfig>, ...args: any[]) => L;
|
|
149
192
|
/**
|
|
150
|
-
* @description
|
|
151
|
-
* @summary
|
|
152
|
-
* It allows for customization of foreground color, background color, and additional styles.
|
|
153
|
-
* Colors can be specified as a single number, an RGB array, or left undefined for default.
|
|
193
|
+
* @description Theme option applied to a specific log element.
|
|
194
|
+
* @summary Configures foreground and background colors as well as additional style directives for styled console output.
|
|
154
195
|
* @interface ThemeOption
|
|
155
196
|
* @memberOf module:Logging
|
|
156
197
|
*/
|
|
@@ -160,28 +201,25 @@ export interface ThemeOption {
|
|
|
160
201
|
style?: number[] | [keyof typeof styles];
|
|
161
202
|
}
|
|
162
203
|
/**
|
|
163
|
-
* @description
|
|
164
|
-
* @summary
|
|
204
|
+
* @description Mapping between log levels and theme overrides.
|
|
205
|
+
* @summary Enables level-specific styling by associating each {@link LogLevel} with a {@link ThemeOption} configuration.
|
|
165
206
|
* @typedef {Object} ThemeOptionByLogLevel
|
|
166
207
|
* @memberOf module:Logging
|
|
167
208
|
*/
|
|
168
209
|
export type ThemeOptionByLogLevel = Partial<Record<LogLevel, ThemeOption>>;
|
|
169
210
|
/**
|
|
170
|
-
* @description
|
|
171
|
-
* @summary
|
|
172
|
-
* including styling for different log levels and components. It uses ThemeOption to
|
|
173
|
-
* define the styling for each element, allowing for customization of colors and styles
|
|
174
|
-
* for different parts of the log output.
|
|
211
|
+
* @description Theme definition applied to console output.
|
|
212
|
+
* @summary Specifies styling for each console log element and supports overrides based on {@link LogLevel} values.
|
|
175
213
|
* @interface Theme
|
|
176
214
|
* @memberOf module:Logging
|
|
177
215
|
*/
|
|
178
216
|
export interface Theme {
|
|
179
217
|
/**
|
|
180
|
-
* @description Styling for
|
|
218
|
+
* @description Styling for application identifiers in the output.
|
|
181
219
|
*/
|
|
182
220
|
app: ThemeOption | ThemeOptionByLogLevel;
|
|
183
221
|
/**
|
|
184
|
-
* @description Styling for
|
|
222
|
+
* @description Styling for separators inserted between log sections.
|
|
185
223
|
*/
|
|
186
224
|
separator: ThemeOption | ThemeOptionByLogLevel;
|
|
187
225
|
/**
|
|
@@ -205,11 +243,11 @@ export interface Theme {
|
|
|
205
243
|
*/
|
|
206
244
|
id: ThemeOption | ThemeOptionByLogLevel;
|
|
207
245
|
/**
|
|
208
|
-
* @description Styling for
|
|
246
|
+
* @description Styling for stack trace blocks in the output.
|
|
209
247
|
*/
|
|
210
248
|
stack: ThemeOption;
|
|
211
249
|
/**
|
|
212
|
-
* @description Styling
|
|
250
|
+
* @description Styling overrides keyed by {@link LogLevel}.
|
|
213
251
|
*/
|
|
214
252
|
logLevel: ThemeOptionByLogLevel;
|
|
215
253
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@decaf-ts/logging",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.13",
|
|
4
4
|
"description": "simple winston inspired wrapper for cross lib logging",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|
|
@@ -32,7 +32,7 @@
|
|
|
32
32
|
"coverage": "rimraf ./workdocs/reports/data/*.json && npm run test:all -- --coverage --config=./workdocs/reports/jest.coverage.config.ts",
|
|
33
33
|
"lint": "eslint .",
|
|
34
34
|
"lint-fix": "eslint --fix .",
|
|
35
|
-
"prepare-pr": "npm run
|
|
35
|
+
"prepare-pr": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
36
36
|
"prepare-release": "npm run lint-fix && npm run build:prod && npm run coverage && npm run docs",
|
|
37
37
|
"release": "./bin/tag-release.sh",
|
|
38
38
|
"clean-publish": "npx clean-publish",
|