@aryan-vashishth/advanced-logger 0.1.0 → 0.2.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/ARCHITECTURE.md +302 -0
- package/README.md +150 -3
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +8 -5
- package/dist/actions.js.map +1 -1
- package/dist/config.d.ts +29 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +165 -41
- package/dist/config.js.map +1 -1
- package/dist/configFile.d.ts +17 -0
- package/dist/configFile.d.ts.map +1 -0
- package/dist/configFile.js +191 -0
- package/dist/configFile.js.map +1 -0
- package/dist/core.d.ts +1 -1
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +20 -0
- package/dist/core.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/sinks.d.ts +1 -1
- package/dist/sinks.d.ts.map +1 -1
- package/dist/sinks.js +71 -2
- package/dist/sinks.js.map +1 -1
- package/dist/theme.d.ts +4 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +8 -3
- package/dist/theme.js.map +1 -1
- package/package.json +3 -2
package/dist/config.d.ts
CHANGED
|
@@ -14,9 +14,23 @@ export interface FileToggles {
|
|
|
14
14
|
export interface LogConfig {
|
|
15
15
|
/** Root threshold for console + partial-trace. Debug/full traces always capture everything. */
|
|
16
16
|
level: RootLevel;
|
|
17
|
-
/** ANSI output on/off. This is the theme toggle: on = HIGH_CONTRAST, off = plain text. */
|
|
17
|
+
/** ANSI output on/off. This is the theme toggle: on = HIGH_CONTRAST, off = plain text. Overrides fg and bg. */
|
|
18
18
|
ansi: boolean;
|
|
19
|
-
/**
|
|
19
|
+
/** Intent-based foreground colors (plus the level foreground on BASE lines). Only matters when ansi is on. */
|
|
20
|
+
fg: boolean;
|
|
21
|
+
/** The theme background (one constant, BG_BLACK, for every level). Only matters when ansi is on. */
|
|
22
|
+
bg: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Max log files kept per trace kind (partial-trace, debug-trace, full-trace, jsonl); older ones are deleted by
|
|
25
|
+
* mtime. Files of the current run are never deleted. null (or 0) keeps everything.
|
|
26
|
+
*/
|
|
27
|
+
maxLogFiles: number | null;
|
|
28
|
+
/**
|
|
29
|
+
* Max chars for an INFO log (tables excluded). Longer ones print truncated with the total char count, followed by a
|
|
30
|
+
* WARN and a DEBUG line holding the full text. null (or 0) means no limit.
|
|
31
|
+
*/
|
|
32
|
+
infoLogsCharLimit: number | null;
|
|
33
|
+
/** Console-only: color the caller suffix separately. Breaks one-ANSI-block-per-line. Independent of fg and bg. */
|
|
20
34
|
callerColor: boolean;
|
|
21
35
|
/** Java-style pattern (yyyy MM dd HH mm ss SSS) or a formatter function. */
|
|
22
36
|
tsFormat: string | ((d: Date) => string);
|
|
@@ -43,6 +57,7 @@ export interface LogConfig {
|
|
|
43
57
|
export declare const levelEnabled: (root: RootLevel, level: LevelName) => boolean;
|
|
44
58
|
/** Explicit env wins, then NO_COLOR/FORCE_COLOR, then TTY/terminal hints, then CI renderers that show ANSI. */
|
|
45
59
|
export declare function detectAnsiSupport(env?: NodeJS.ProcessEnv, isTTY?: boolean): boolean;
|
|
60
|
+
/** Built lazily on first use, so the project config file is read once in every process (every Playwright worker included). */
|
|
46
61
|
export declare const config: () => LogConfig;
|
|
47
62
|
export type LogConfigPatch = Partial<Omit<LogConfig, 'files' | 'suppressContains' | 'suppressMethodPrefixes' | 'includeOnlyPrefixes'>> & {
|
|
48
63
|
files?: Partial<FileToggles>;
|
|
@@ -52,11 +67,22 @@ export type LogConfigPatch = Partial<Omit<LogConfig, 'files' | 'suppressContains
|
|
|
52
67
|
};
|
|
53
68
|
/** Merge a patch, or mutate in place with a callback. Set-typed fields accept arrays in a patch. */
|
|
54
69
|
export declare function configure(patch: LogConfigPatch | ((cfg: LogConfig) => void)): LogConfig;
|
|
55
|
-
/**
|
|
70
|
+
/** Tells the reader where to raise infoLogsCharLimit, based on which layer set the active value. */
|
|
71
|
+
export declare function infoLimitHint(): string;
|
|
72
|
+
/** Types a logger.config.* file. Returns its argument unchanged; the type is exactly LogConfigPatch. */
|
|
73
|
+
export declare function defineConfig(patch: LogConfigPatch): LogConfigPatch;
|
|
74
|
+
export declare function defineConfig(fn: (config: LogConfig) => LogConfigPatch): (config: LogConfig) => LogConfigPatch;
|
|
75
|
+
/** Restore defaults and re-read env and the config file. Mainly for tests. */
|
|
56
76
|
export declare function resetConfig(): LogConfig;
|
|
57
77
|
export declare const enableAnsi: () => void;
|
|
58
78
|
export declare const disableAnsi: () => void;
|
|
59
79
|
export declare const isAnsiEnabled: () => boolean;
|
|
80
|
+
export declare const enableFg: () => void;
|
|
81
|
+
export declare const disableFg: () => void;
|
|
82
|
+
export declare const isFgEnabled: () => boolean;
|
|
83
|
+
export declare const enableBg: () => void;
|
|
84
|
+
export declare const disableBg: () => void;
|
|
85
|
+
export declare const isBgEnabled: () => boolean;
|
|
60
86
|
export declare const enableCallerColor: () => void;
|
|
61
87
|
export declare const disableCallerColor: () => void;
|
|
62
88
|
export declare const isCallerColorEnabled: () => boolean;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.disableTableCellLimit = exports.LINE_BREAKS_NO_G = exports.LINE_BREAKS = exports.clearIncludes = exports.isDebugEnabled = exports.isCallerColorEnabled = exports.disableCallerColor = exports.enableCallerColor = exports.isAnsiEnabled = exports.disableAnsi = exports.enableAnsi = exports.config = exports.levelEnabled = void 0;
|
|
3
|
+
exports.disableTableCellLimit = exports.LINE_BREAKS_NO_G = exports.LINE_BREAKS = exports.clearIncludes = exports.isDebugEnabled = exports.isCallerColorEnabled = exports.disableCallerColor = exports.enableCallerColor = exports.isBgEnabled = exports.disableBg = exports.enableBg = exports.isFgEnabled = exports.disableFg = exports.enableFg = exports.isAnsiEnabled = exports.disableAnsi = exports.enableAnsi = exports.config = exports.levelEnabled = void 0;
|
|
4
4
|
exports.detectAnsiSupport = detectAnsiSupport;
|
|
5
5
|
exports.configure = configure;
|
|
6
|
+
exports.infoLimitHint = infoLimitHint;
|
|
7
|
+
exports.defineConfig = defineConfig;
|
|
6
8
|
exports.resetConfig = resetConfig;
|
|
7
9
|
exports.includeOnlyPackages = includeOnlyPackages;
|
|
8
10
|
exports.suppressClassContains = suppressClassContains;
|
|
@@ -13,21 +15,23 @@ exports.formatTs = formatTs;
|
|
|
13
15
|
exports.initRun = initRun;
|
|
14
16
|
exports.getRun = getRun;
|
|
15
17
|
exports.workerLabel = workerLabel;
|
|
18
|
+
const configFile_1 = require("./configFile");
|
|
16
19
|
const LEVEL_ORDER = { debug: 10, info: 20, warn: 30, error: 40, off: 99 };
|
|
17
20
|
const NAME_ORDER = { DEBUG: 10, INFO: 20, WARN: 30, ERROR: 40 };
|
|
18
21
|
const levelEnabled = (root, level) => NAME_ORDER[level] >= LEVEL_ORDER[root];
|
|
19
22
|
exports.levelEnabled = levelEnabled;
|
|
23
|
+
/** undefined for anything that is not a valid level, so an invalid env value never overrides a lower layer. */
|
|
20
24
|
function parseLevel(v) {
|
|
21
25
|
const l = (v ?? '').trim().toLowerCase();
|
|
22
|
-
return l in LEVEL_ORDER ? l :
|
|
26
|
+
return l in LEVEL_ORDER ? l : undefined;
|
|
23
27
|
}
|
|
24
28
|
function envBool(v) {
|
|
25
29
|
if (v == null || v === '')
|
|
26
30
|
return undefined;
|
|
27
31
|
return /^(1|true|yes|on)$/i.test(v);
|
|
28
32
|
}
|
|
29
|
-
/**
|
|
30
|
-
function
|
|
33
|
+
/** The env-level ANSI decision: VOID_LOG_ANSI, then NO_COLOR, then FORCE_COLOR. undefined when none is set. */
|
|
34
|
+
function explicitAnsi(env) {
|
|
31
35
|
const explicit = envBool(env.VOID_LOG_ANSI);
|
|
32
36
|
if (explicit !== undefined)
|
|
33
37
|
return explicit;
|
|
@@ -35,6 +39,10 @@ function detectAnsiSupport(env = process.env, isTTY = !!process.stdout?.isTTY) {
|
|
|
35
39
|
return false;
|
|
36
40
|
if (env.FORCE_COLOR != null && env.FORCE_COLOR !== '')
|
|
37
41
|
return env.FORCE_COLOR !== '0' && env.FORCE_COLOR !== 'false';
|
|
42
|
+
return undefined;
|
|
43
|
+
}
|
|
44
|
+
/** TTY/terminal hints, then CI renderers that show ANSI. This is the lowest layer (a config file beats it). */
|
|
45
|
+
function heuristicAnsi(env, isTTY) {
|
|
38
46
|
if (isTTY)
|
|
39
47
|
return true;
|
|
40
48
|
if (env.GITHUB_ACTIONS === 'true')
|
|
@@ -43,10 +51,19 @@ function detectAnsiSupport(env = process.env, isTTY = !!process.stdout?.isTTY) {
|
|
|
43
51
|
return true;
|
|
44
52
|
return !!env.TERM && env.TERM !== 'dumb';
|
|
45
53
|
}
|
|
46
|
-
|
|
54
|
+
/** Explicit env wins, then NO_COLOR/FORCE_COLOR, then TTY/terminal hints, then CI renderers that show ANSI. */
|
|
55
|
+
function detectAnsiSupport(env = process.env, isTTY = !!process.stdout?.isTTY) {
|
|
56
|
+
return explicitAnsi(env) ?? heuristicAnsi(env, isTTY);
|
|
57
|
+
}
|
|
58
|
+
/** Built-in defaults only. Env overrides are applied separately so a config file can sit between the two. */
|
|
59
|
+
function builtinDefaults(env) {
|
|
47
60
|
return {
|
|
48
|
-
level:
|
|
49
|
-
ansi:
|
|
61
|
+
level: 'info',
|
|
62
|
+
ansi: heuristicAnsi(env, !!process.stdout?.isTTY),
|
|
63
|
+
fg: true,
|
|
64
|
+
bg: true,
|
|
65
|
+
infoLogsCharLimit: null,
|
|
66
|
+
maxLogFiles: null,
|
|
50
67
|
callerColor: false,
|
|
51
68
|
tsFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
|
|
52
69
|
segmentDivider: ' │ ',
|
|
@@ -61,69 +78,175 @@ function defaults(env = process.env) {
|
|
|
61
78
|
debugTrace: true,
|
|
62
79
|
partialTrace: true,
|
|
63
80
|
fullTrace: true,
|
|
64
|
-
jsonl:
|
|
81
|
+
jsonl: false,
|
|
65
82
|
},
|
|
66
|
-
logDir:
|
|
83
|
+
logDir: './logs',
|
|
67
84
|
githubAnnotations: env.GITHUB_ACTIONS === 'true',
|
|
68
85
|
redactKeys: ['password', 'passwd', 'secret', 'token', 'authorization', 'apikey', 'api_key'],
|
|
69
86
|
attach: 'on-failure',
|
|
70
87
|
};
|
|
71
88
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
if (
|
|
78
|
-
|
|
79
|
-
|
|
89
|
+
/** Each env var is applied only when set (and, for the level, valid). */
|
|
90
|
+
function applyEnv(cfg, env) {
|
|
91
|
+
const level = parseLevel(env.VOID_LOG_LEVEL);
|
|
92
|
+
if (level)
|
|
93
|
+
cfg.level = level;
|
|
94
|
+
if (env.VOID_LOG_DIR)
|
|
95
|
+
cfg.logDir = env.VOID_LOG_DIR;
|
|
96
|
+
const ansi = explicitAnsi(env);
|
|
97
|
+
if (ansi !== undefined)
|
|
98
|
+
cfg.ansi = ansi;
|
|
99
|
+
const jsonl = envBool(env.VOID_LOG_JSONL);
|
|
100
|
+
if (jsonl !== undefined)
|
|
101
|
+
cfg.files.jsonl = jsonl;
|
|
102
|
+
const trunc = env.VOID_LOG_INFO_LOGS_CHAR_LIMIT?.trim();
|
|
103
|
+
if (trunc && /^\d+$/.test(trunc)) {
|
|
104
|
+
cfg.infoLogsCharLimit = Number(trunc) > 0 ? Number(trunc) : null;
|
|
105
|
+
LIMIT_SOURCE = 'env';
|
|
80
106
|
}
|
|
107
|
+
const maxFiles = env.VOID_LOG_MAX_FILES?.trim();
|
|
108
|
+
if (maxFiles && /^\d+$/.test(maxFiles))
|
|
109
|
+
cfg.maxLogFiles = Number(maxFiles) > 0 ? Number(maxFiles) : null;
|
|
110
|
+
const fg = envBool(env.VOID_LOG_FG);
|
|
111
|
+
if (fg !== undefined)
|
|
112
|
+
cfg.fg = fg;
|
|
113
|
+
const bg = envBool(env.VOID_LOG_BG);
|
|
114
|
+
if (bg !== undefined)
|
|
115
|
+
cfg.bg = bg;
|
|
116
|
+
}
|
|
117
|
+
function cloneConfig(c) {
|
|
118
|
+
return {
|
|
119
|
+
...c,
|
|
120
|
+
files: { ...c.files },
|
|
121
|
+
suppressContains: new Set(c.suppressContains),
|
|
122
|
+
suppressMethodPrefixes: new Set(c.suppressMethodPrefixes),
|
|
123
|
+
includeOnlyPrefixes: new Set(c.includeOnlyPrefixes),
|
|
124
|
+
projectRoots: [...c.projectRoots],
|
|
125
|
+
redactKeys: [...c.redactKeys],
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
let CURRENT;
|
|
129
|
+
/** Which layer set the active infoLogsCharLimit, so the truncation warning can say what to edit. */
|
|
130
|
+
let LIMIT_SOURCE = 'default';
|
|
131
|
+
/**
|
|
132
|
+
* Precedence, lowest to highest: built-in defaults, config file, env vars. configure() calls land on top afterwards.
|
|
133
|
+
* A failing config file throws on every call until it is fixed, so the mistake cannot be missed.
|
|
134
|
+
*/
|
|
135
|
+
function build(env = process.env) {
|
|
136
|
+
const cfg = builtinDefaults(env);
|
|
137
|
+
// Re-entrancy guard: a config file that imports this package and touches config() while loading sees the defaults.
|
|
138
|
+
CURRENT = cfg;
|
|
139
|
+
LIMIT_SOURCE = 'default';
|
|
140
|
+
try {
|
|
141
|
+
const loaded = (0, configFile_1.loadConfigFile)(env, process.cwd());
|
|
142
|
+
if (loaded !== undefined) {
|
|
143
|
+
const patch = typeof loaded === 'function' ? loaded(cloneConfig(cfg)) : loaded;
|
|
144
|
+
applyPatch(cfg, patch);
|
|
145
|
+
if (patch.infoLogsCharLimit !== undefined)
|
|
146
|
+
LIMIT_SOURCE = 'file';
|
|
147
|
+
}
|
|
148
|
+
applyEnv(cfg, env);
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
CURRENT = undefined;
|
|
152
|
+
throw err;
|
|
153
|
+
}
|
|
154
|
+
return cfg;
|
|
155
|
+
}
|
|
156
|
+
/** Built lazily on first use, so the project config file is read once in every process (every Playwright worker included). */
|
|
157
|
+
const config = () => CURRENT ?? build();
|
|
158
|
+
exports.config = config;
|
|
159
|
+
function applyPatch(target, patch) {
|
|
81
160
|
const { files, suppressContains, suppressMethodPrefixes, includeOnlyPrefixes, ...rest } = patch;
|
|
82
|
-
Object.assign(
|
|
161
|
+
Object.assign(target, rest);
|
|
83
162
|
if (files)
|
|
84
|
-
Object.assign(
|
|
163
|
+
Object.assign(target.files, files);
|
|
85
164
|
if (suppressContains)
|
|
86
|
-
|
|
165
|
+
target.suppressContains = new Set(suppressContains);
|
|
87
166
|
if (suppressMethodPrefixes)
|
|
88
|
-
|
|
167
|
+
target.suppressMethodPrefixes = new Set(suppressMethodPrefixes);
|
|
89
168
|
if (includeOnlyPrefixes)
|
|
90
|
-
|
|
91
|
-
|
|
169
|
+
target.includeOnlyPrefixes = new Set(includeOnlyPrefixes);
|
|
170
|
+
}
|
|
171
|
+
/** Merge a patch, or mutate in place with a callback. Set-typed fields accept arrays in a patch. */
|
|
172
|
+
function configure(patch) {
|
|
173
|
+
const cur = (0, exports.config)();
|
|
174
|
+
if (typeof patch === 'function') {
|
|
175
|
+
const before = cur.infoLogsCharLimit;
|
|
176
|
+
patch(cur);
|
|
177
|
+
if (cur.infoLogsCharLimit !== before)
|
|
178
|
+
LIMIT_SOURCE = 'code';
|
|
179
|
+
return cur;
|
|
180
|
+
}
|
|
181
|
+
applyPatch(cur, patch);
|
|
182
|
+
if (patch.infoLogsCharLimit !== undefined)
|
|
183
|
+
LIMIT_SOURCE = 'code';
|
|
184
|
+
return cur;
|
|
185
|
+
}
|
|
186
|
+
/** Tells the reader where to raise infoLogsCharLimit, based on which layer set the active value. */
|
|
187
|
+
function infoLimitHint() {
|
|
188
|
+
const file = (0, configFile_1.loadedConfigFile)();
|
|
189
|
+
switch (LIMIT_SOURCE) {
|
|
190
|
+
case 'file':
|
|
191
|
+
return `To increase the limit, change infoLogsCharLimit in ${file}.`;
|
|
192
|
+
case 'env':
|
|
193
|
+
return 'To increase the limit, change the VOID_LOG_INFO_LOGS_CHAR_LIMIT environment variable.';
|
|
194
|
+
case 'code':
|
|
195
|
+
return 'To increase the limit, change the infoLogsCharLimit passed to configure() in your code.';
|
|
196
|
+
default:
|
|
197
|
+
return 'To increase the limit, set infoLogsCharLimit in your logger config file or VOID_LOG_INFO_LOGS_CHAR_LIMIT.';
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function defineConfig(c) {
|
|
201
|
+
return c;
|
|
92
202
|
}
|
|
93
|
-
/** Restore defaults
|
|
203
|
+
/** Restore defaults and re-read env and the config file. Mainly for tests. */
|
|
94
204
|
function resetConfig() {
|
|
95
|
-
CURRENT =
|
|
96
|
-
|
|
205
|
+
CURRENT = undefined;
|
|
206
|
+
(0, configFile_1.forgetConfigFile)();
|
|
207
|
+
return (0, exports.config)();
|
|
97
208
|
}
|
|
98
209
|
// -- Convenience mutators (parity with CustomLogger) -------------------------
|
|
99
|
-
const enableAnsi = () => void (
|
|
210
|
+
const enableAnsi = () => void ((0, exports.config)().ansi = true);
|
|
100
211
|
exports.enableAnsi = enableAnsi;
|
|
101
|
-
const disableAnsi = () => void (
|
|
212
|
+
const disableAnsi = () => void ((0, exports.config)().ansi = false);
|
|
102
213
|
exports.disableAnsi = disableAnsi;
|
|
103
|
-
const isAnsiEnabled = () =>
|
|
214
|
+
const isAnsiEnabled = () => (0, exports.config)().ansi;
|
|
104
215
|
exports.isAnsiEnabled = isAnsiEnabled;
|
|
105
|
-
const
|
|
216
|
+
const enableFg = () => void ((0, exports.config)().fg = true);
|
|
217
|
+
exports.enableFg = enableFg;
|
|
218
|
+
const disableFg = () => void ((0, exports.config)().fg = false);
|
|
219
|
+
exports.disableFg = disableFg;
|
|
220
|
+
const isFgEnabled = () => (0, exports.config)().fg;
|
|
221
|
+
exports.isFgEnabled = isFgEnabled;
|
|
222
|
+
const enableBg = () => void ((0, exports.config)().bg = true);
|
|
223
|
+
exports.enableBg = enableBg;
|
|
224
|
+
const disableBg = () => void ((0, exports.config)().bg = false);
|
|
225
|
+
exports.disableBg = disableBg;
|
|
226
|
+
const isBgEnabled = () => (0, exports.config)().bg;
|
|
227
|
+
exports.isBgEnabled = isBgEnabled;
|
|
228
|
+
const enableCallerColor = () => void ((0, exports.config)().callerColor = true);
|
|
106
229
|
exports.enableCallerColor = enableCallerColor;
|
|
107
|
-
const disableCallerColor = () => void (
|
|
230
|
+
const disableCallerColor = () => void ((0, exports.config)().callerColor = false);
|
|
108
231
|
exports.disableCallerColor = disableCallerColor;
|
|
109
|
-
const isCallerColorEnabled = () =>
|
|
232
|
+
const isCallerColorEnabled = () => (0, exports.config)().callerColor;
|
|
110
233
|
exports.isCallerColorEnabled = isCallerColorEnabled;
|
|
111
|
-
const isDebugEnabled = () => (0, exports.levelEnabled)(
|
|
234
|
+
const isDebugEnabled = () => (0, exports.levelEnabled)((0, exports.config)().level, 'DEBUG');
|
|
112
235
|
exports.isDebugEnabled = isDebugEnabled;
|
|
113
236
|
function includeOnlyPackages(...prefixes) {
|
|
114
|
-
|
|
237
|
+
(0, exports.config)().includeOnlyPrefixes = new Set(prefixes.filter((p) => p && p.trim()));
|
|
115
238
|
}
|
|
116
239
|
function suppressClassContains(...substrings) {
|
|
117
240
|
for (const s of substrings)
|
|
118
241
|
if (s && s.trim())
|
|
119
|
-
|
|
242
|
+
(0, exports.config)().suppressContains.add(s);
|
|
120
243
|
}
|
|
121
244
|
function suppressMethodPrefix(...prefixes) {
|
|
122
245
|
for (const p of prefixes)
|
|
123
246
|
if (p && p.trim())
|
|
124
|
-
|
|
247
|
+
(0, exports.config)().suppressMethodPrefixes.add(p);
|
|
125
248
|
}
|
|
126
|
-
const clearIncludes = () =>
|
|
249
|
+
const clearIncludes = () => (0, exports.config)().includeOnlyPrefixes.clear();
|
|
127
250
|
exports.clearIncludes = clearIncludes;
|
|
128
251
|
// -- Line breaks (Java \R equivalent) ----------------------------------------
|
|
129
252
|
const EXTRA_BREAKS = String.fromCharCode(0x2028, 0x2029, 0x85, 0x0b, 0x0c);
|
|
@@ -135,17 +258,18 @@ function truncateCell(s) {
|
|
|
135
258
|
if (s == null)
|
|
136
259
|
return '';
|
|
137
260
|
const str = String(s).replace(exports.LINE_BREAKS, ' ');
|
|
138
|
-
const cfg =
|
|
261
|
+
const cfg = (0, exports.config)();
|
|
139
262
|
if (!cfg.tableCellLimitEnabled || str.length <= cfg.tableCellLimit)
|
|
140
263
|
return str;
|
|
141
264
|
return str.slice(0, Math.max(1, cfg.tableCellLimit - 3)) + '...';
|
|
142
265
|
}
|
|
143
266
|
/** Set a table cell limit (min 4) and enable it. */
|
|
144
267
|
function setTableCellLimit(limit) {
|
|
145
|
-
|
|
146
|
-
|
|
268
|
+
const cfg = (0, exports.config)();
|
|
269
|
+
cfg.tableCellLimit = Math.max(4, limit);
|
|
270
|
+
cfg.tableCellLimitEnabled = true;
|
|
147
271
|
}
|
|
148
|
-
const disableTableCellLimit = () => void (
|
|
272
|
+
const disableTableCellLimit = () => void ((0, exports.config)().tableCellLimitEnabled = false);
|
|
149
273
|
exports.disableTableCellLimit = disableTableCellLimit;
|
|
150
274
|
// -- Timestamp formatting ----------------------------------------------------
|
|
151
275
|
const pad = (n, w = 2) => String(n).padStart(w, '0');
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LogConfig, LogConfigPatch } from './config';
|
|
2
|
+
/** Looked up in this order in the project root; the first one that exists wins. */
|
|
3
|
+
export declare const CONFIG_FILE_NAMES: readonly ["logger.config.ts", "logger.config.js", "logger.config.cjs", "logger.config.json"];
|
|
4
|
+
type Loaded = LogConfigPatch | ((config: LogConfig) => LogConfigPatch);
|
|
5
|
+
/** Resolved path for a config file, or undefined when none exists. An explicit VOID_LOG_CONFIG must exist. */
|
|
6
|
+
export declare function resolveConfigFile(env: NodeJS.ProcessEnv, cwd: string): string | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* Load the project config file once per process. Returns undefined when there is none (silently fine).
|
|
9
|
+
* A file that exists but throws, or has the wrong shape, throws an Error naming the file.
|
|
10
|
+
*/
|
|
11
|
+
export declare function loadConfigFile(env: NodeJS.ProcessEnv, cwd: string): Loaded | undefined;
|
|
12
|
+
/** Absolute path of the config file loaded in this process, if any. */
|
|
13
|
+
export declare const loadedConfigFile: () => string | undefined;
|
|
14
|
+
/** Drop the cached module so the next load re-reads the file (tests, resetConfig). */
|
|
15
|
+
export declare function forgetConfigFile(): void;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=configFile.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configFile.d.ts","sourceRoot":"","sources":["../src/configFile.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1D,mFAAmF;AACnF,eAAO,MAAM,iBAAiB,8FAA+F,CAAC;AAE9H,KAAK,MAAM,GAAG,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,KAAK,cAAc,CAAC,CAAC;AAEvE,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAczF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA4BtF;AAID,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,QAAO,MAAM,GAAG,SAAmB,CAAC;AAEjE,sFAAsF;AACtF,wBAAgB,gBAAgB,IAAI,IAAI,CASvC"}
|
|
@@ -0,0 +1,191 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.loadedConfigFile = exports.CONFIG_FILE_NAMES = void 0;
|
|
37
|
+
exports.resolveConfigFile = resolveConfigFile;
|
|
38
|
+
exports.loadConfigFile = loadConfigFile;
|
|
39
|
+
exports.forgetConfigFile = forgetConfigFile;
|
|
40
|
+
const fs = __importStar(require("node:fs"));
|
|
41
|
+
const path = __importStar(require("node:path"));
|
|
42
|
+
/** Looked up in this order in the project root; the first one that exists wins. */
|
|
43
|
+
exports.CONFIG_FILE_NAMES = ['logger.config.ts', 'logger.config.js', 'logger.config.cjs', 'logger.config.json'];
|
|
44
|
+
/** Resolved path for a config file, or undefined when none exists. An explicit VOID_LOG_CONFIG must exist. */
|
|
45
|
+
function resolveConfigFile(env, cwd) {
|
|
46
|
+
const explicit = env.VOID_LOG_CONFIG;
|
|
47
|
+
if (explicit) {
|
|
48
|
+
const file = path.resolve(cwd, explicit);
|
|
49
|
+
if (!fs.existsSync(file)) {
|
|
50
|
+
throw new Error(`[advanced-logger] VOID_LOG_CONFIG points to a file that does not exist: ${file}`);
|
|
51
|
+
}
|
|
52
|
+
return file;
|
|
53
|
+
}
|
|
54
|
+
for (const name of exports.CONFIG_FILE_NAMES) {
|
|
55
|
+
const file = path.join(cwd, name);
|
|
56
|
+
if (fs.existsSync(file))
|
|
57
|
+
return file;
|
|
58
|
+
}
|
|
59
|
+
return undefined;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Load the project config file once per process. Returns undefined when there is none (silently fine).
|
|
63
|
+
* A file that exists but throws, or has the wrong shape, throws an Error naming the file.
|
|
64
|
+
*/
|
|
65
|
+
function loadConfigFile(env, cwd) {
|
|
66
|
+
const file = resolveConfigFile(env, cwd);
|
|
67
|
+
if (file === undefined)
|
|
68
|
+
return undefined;
|
|
69
|
+
LOADED = file;
|
|
70
|
+
let value;
|
|
71
|
+
try {
|
|
72
|
+
// Lazy require, so Playwright's TypeScript hook (or Node's own type stripping) handles .ts files.
|
|
73
|
+
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
74
|
+
const mod = require(file);
|
|
75
|
+
value = unwrapDefault(mod);
|
|
76
|
+
}
|
|
77
|
+
catch (err) {
|
|
78
|
+
throw fail(file, err, 'could not be loaded');
|
|
79
|
+
}
|
|
80
|
+
if (typeof value === 'function') {
|
|
81
|
+
const fn = value;
|
|
82
|
+
return (cfg) => {
|
|
83
|
+
let result;
|
|
84
|
+
try {
|
|
85
|
+
result = fn(cfg);
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
throw fail(file, err, 'threw while computing the config');
|
|
89
|
+
}
|
|
90
|
+
return validatePatch(result, file, 'the function must return an object');
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
return validatePatch(value, file, 'it must default-export an object or a function');
|
|
94
|
+
}
|
|
95
|
+
let LOADED;
|
|
96
|
+
/** Absolute path of the config file loaded in this process, if any. */
|
|
97
|
+
const loadedConfigFile = () => LOADED;
|
|
98
|
+
exports.loadedConfigFile = loadedConfigFile;
|
|
99
|
+
/** Drop the cached module so the next load re-reads the file (tests, resetConfig). */
|
|
100
|
+
function forgetConfigFile() {
|
|
101
|
+
if (LOADED !== undefined) {
|
|
102
|
+
try {
|
|
103
|
+
delete require.cache[require.resolve(LOADED)];
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
/* not cached */
|
|
107
|
+
}
|
|
108
|
+
LOADED = undefined;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/** `export default x` (transpiled or native), `module.exports = x`, and plain JSON all end up as x. */
|
|
112
|
+
function unwrapDefault(mod) {
|
|
113
|
+
if (mod !== null && typeof mod === 'object' && mod.__esModule) {
|
|
114
|
+
return mod.default;
|
|
115
|
+
}
|
|
116
|
+
return mod;
|
|
117
|
+
}
|
|
118
|
+
function fail(file, err, what) {
|
|
119
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
120
|
+
return new Error(`[advanced-logger] Config file ${file} ${what}: ${msg}`, { cause: err });
|
|
121
|
+
}
|
|
122
|
+
// -- Shape validation ----------------------------------------------------------
|
|
123
|
+
const isPlainObject = (v) => typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
124
|
+
const bool = (v) => typeof v === 'boolean';
|
|
125
|
+
const str = (v) => typeof v === 'string';
|
|
126
|
+
const strList = (v) => (Array.isArray(v) || v instanceof Set) && [...v].every((x) => typeof x === 'string');
|
|
127
|
+
const strArr = (v) => Array.isArray(v) && v.every((x) => typeof x === 'string');
|
|
128
|
+
const oneOf = (...allowed) => (v) => typeof v === 'string' && allowed.includes(v);
|
|
129
|
+
const KEYS = {
|
|
130
|
+
level: [oneOf('debug', 'info', 'warn', 'error', 'off'), "one of 'debug' | 'info' | 'warn' | 'error' | 'off'"],
|
|
131
|
+
ansi: [bool, 'a boolean'],
|
|
132
|
+
fg: [bool, 'a boolean'],
|
|
133
|
+
bg: [bool, 'a boolean'],
|
|
134
|
+
infoLogsCharLimit: [(v) => v === null || (typeof v === 'number' && Number.isFinite(v) && v >= 0), 'a number >= 0 or null'],
|
|
135
|
+
maxLogFiles: [(v) => v === null || (Number.isInteger(v) && v >= 0), 'an integer >= 0 or null'],
|
|
136
|
+
callerColor: [bool, 'a boolean'],
|
|
137
|
+
tsFormat: [(v) => str(v) || typeof v === 'function', 'a string or a function'],
|
|
138
|
+
segmentDivider: [str, 'a string'],
|
|
139
|
+
tableCellLimit: [(v) => typeof v === 'number' && Number.isFinite(v), 'a finite number'],
|
|
140
|
+
tableCellLimitEnabled: [bool, 'a boolean'],
|
|
141
|
+
suppressContains: [strList, 'an array of strings'],
|
|
142
|
+
suppressMethodPrefixes: [strList, 'an array of strings'],
|
|
143
|
+
includeOnlyPrefixes: [strList, 'an array of strings'],
|
|
144
|
+
projectRoots: [strArr, 'an array of strings'],
|
|
145
|
+
console: [bool, 'a boolean'],
|
|
146
|
+
files: [isPlainObject, 'an object'],
|
|
147
|
+
logDir: [str, 'a string'],
|
|
148
|
+
githubAnnotations: [bool, 'a boolean'],
|
|
149
|
+
redactKeys: [strArr, 'an array of strings'],
|
|
150
|
+
attach: [oneOf('on-failure', 'always', 'never'), "one of 'on-failure' | 'always' | 'never'"],
|
|
151
|
+
};
|
|
152
|
+
const FILE_KEYS = ['debugTrace', 'partialTrace', 'fullTrace', 'jsonl'];
|
|
153
|
+
/** Unknown keys are rejected (a typo such as `levl` must not be silently ignored); undefined values are dropped. */
|
|
154
|
+
function validatePatch(value, file, hint) {
|
|
155
|
+
if (!isPlainObject(value)) {
|
|
156
|
+
throw new Error(`[advanced-logger] Config file ${file} has an invalid shape: ${hint} (got ${describe(value)}).`);
|
|
157
|
+
}
|
|
158
|
+
const out = {};
|
|
159
|
+
for (const [key, v] of Object.entries(value)) {
|
|
160
|
+
if (v === undefined)
|
|
161
|
+
continue;
|
|
162
|
+
const rule = KEYS[key];
|
|
163
|
+
if (!rule) {
|
|
164
|
+
throw new Error(`[advanced-logger] Config file ${file} has an unknown option '${key}'. Valid options: ${Object.keys(KEYS).join(', ')}.`);
|
|
165
|
+
}
|
|
166
|
+
if (!rule[0](v)) {
|
|
167
|
+
throw new Error(`[advanced-logger] Config file ${file}: option '${key}' must be ${rule[1]} (got ${describe(v)}).`);
|
|
168
|
+
}
|
|
169
|
+
if (key === 'files') {
|
|
170
|
+
for (const [fk, fv] of Object.entries(v)) {
|
|
171
|
+
if (fv === undefined)
|
|
172
|
+
continue;
|
|
173
|
+
if (!FILE_KEYS.includes(fk) || typeof fv !== 'boolean') {
|
|
174
|
+
throw new Error(`[advanced-logger] Config file ${file}: option 'files.${fk}' must be a boolean and one of ${FILE_KEYS.join(', ')}.`);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
out[key] = v;
|
|
179
|
+
}
|
|
180
|
+
return out;
|
|
181
|
+
}
|
|
182
|
+
function describe(v) {
|
|
183
|
+
if (v === null)
|
|
184
|
+
return 'null';
|
|
185
|
+
if (Array.isArray(v))
|
|
186
|
+
return 'an array';
|
|
187
|
+
if (typeof v === 'string')
|
|
188
|
+
return `string ${JSON.stringify(v)}`;
|
|
189
|
+
return typeof v === 'object' ? 'an object' : `${typeof v} ${String(v)}`;
|
|
190
|
+
}
|
|
191
|
+
//# sourceMappingURL=configFile.js.map
|