@aryan-vashishth/advanced-logger 0.2.0 → 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/ARCHITECTURE.md CHANGED
@@ -32,7 +32,8 @@ test/
32
32
  colors.test.ts fg/bg/ansi/callerColor matrix
33
33
  config-file.test.ts discovery, forms, precedence, failures
34
34
  truncate.test.ts infoLogsCharLimit + its hint
35
- retention.test.ts maxLogFiles
35
+ retention.test.ts maxRuns, maxLogFiles, recent/missing-run-id guards
36
+ separable.test.ts consoleWorker, consoleTest, missing initRun() warning, configure() validation
36
37
  multi-worker.test.ts spawns real Playwright with 2 workers (fixtures/multi-worker/)
37
38
  *.spec.ts, playwright*.config.ts, global-setup.ts Playwright e2e/demo specs
38
39
  dist/ tsc output (CommonJS, ES2022), gitignored, what npm publishes
@@ -123,7 +124,8 @@ interface LogEvent {
123
124
  caller: string; // "Callee.method ← Caller.method", plain text
124
125
  chain: string; // in-project call chain, leaf first, plain text
125
126
  worker: string; // 'w<TEST_WORKER_INDEX>' or 'main'
126
- test?: string; // set by the Playwright fixture
127
+ test?: string; // full title path, set by the Playwright fixture (jsonl)
128
+ testTitle?: string; // the test's own title (consoleTest prefix)
127
129
  }
128
130
  interface Sink { accepts(level, cfg): boolean; write(ev, cfg): void }
129
131
  ```
@@ -141,8 +143,11 @@ Rendered line shape: `<ts> │ <label> │ <message line>` where `│` is `cfg.s
141
143
  | `fg` | bool, `true` | Foreground colors (intent color; level color on BASE lines; bold) |
142
144
  | `bg` | bool, `true` | The theme background (one constant, `BG_BLACK`, for all levels) |
143
145
  | `callerColor` | bool, `false` | Color the caller suffix separately (console, debug level). Independent of fg/bg |
144
- | `infoLogsCharLimit` | number\|null, `null` | INFO truncation limit (§9). null/0 = off |
145
- | `maxLogFiles` | number\|null, `null` | Retention per trace kind (§10). null/0 = off |
146
+ | `infoLogsCharLimit` | number\|null, `null` | INFO truncation limit (§11). null/0 = off |
147
+ | `maxRuns` | number\|null, `null` | Retention per trace kind, in whole runs (§12). null/0 = off |
148
+ | `maxLogFiles` | number\|null, `null` | Retention per trace kind, in files (§12). null/0 = off |
149
+ | `consoleWorker` | bool, `false` | Console lines prefixed `w<N> │ ` (§9) |
150
+ | `consoleTest` | bool, `false` | Console lines prefixed with the test title, max 40 chars (§9) |
146
151
  | `tsFormat` | string\|fn, `yyyy-MM-dd HH:mm:ss.SSS` | Java-style pattern or `(Date)=>string` |
147
152
  | `segmentDivider` | string, `' │ '` | Column separator |
148
153
  | `tableCellLimit`, `tableCellLimitEnabled` | 40, false | Truncate table/row cells |
@@ -164,7 +169,7 @@ Rendered line shape: `<ts> │ <label> │ <message line>` where `│` is `cfg.s
164
169
  3. **Environment variables**: `applyEnv()`.
165
170
  4. **`configure()` calls** in code mutate the live object afterwards, so they always win.
166
171
 
167
- Environment variables: `VOID_LOG_LEVEL`, `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_LOG_FG`, `VOID_LOG_BG`, `VOID_LOG_JSONL`, `VOID_LOG_INFO_LOGS_CHAR_LIMIT`, `VOID_LOG_MAX_FILES`, `VOID_LOG_CONFIG`, `VOID_RUN_ID`, `VOID_RUN_DATE`, plus `NO_COLOR` / `FORCE_COLOR`. Booleans: `1/true/yes/on` true, anything else non-empty false. An invalid level or non-numeric limit is ignored (so it cannot override a lower layer). `NO_COLOR`/`FORCE_COLOR` count as env-level (they beat `ansi` in a file); terminal auto-detection counts as default-level (the file beats it). See `explicitAnsi()` vs `heuristicAnsi()`.
172
+ Environment variables: `VOID_LOG_LEVEL`, `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_LOG_FG`, `VOID_LOG_BG`, `VOID_LOG_JSONL`, `VOID_LOG_INFO_LOGS_CHAR_LIMIT`, `VOID_LOG_MAX_RUNS`, `VOID_LOG_MAX_FILES`, `VOID_LOG_CONFIG`, `VOID_RUN_ID`, `VOID_RUN_DATE`, plus `NO_COLOR` / `FORCE_COLOR`. Booleans: `1/true/yes/on` true, anything else non-empty false. An invalid level or non-numeric limit is ignored (so it cannot override a lower layer). `NO_COLOR`/`FORCE_COLOR` count as env-level (they beat `ansi` in a file); terminal auto-detection counts as default-level (the file beats it). See `explicitAnsi()` vs `heuristicAnsi()`.
168
173
 
169
174
  ### 6.3 Lazy, per-process state
170
175
 
@@ -173,6 +178,7 @@ Environment variables: `VOID_LOG_LEVEL`, `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_
173
178
  - `config()` returns `CURRENT ?? build()`. The first call in a process builds the config (including reading the config file). Every process, including each Playwright worker, does this independently.
174
179
  - `build()` sets `CURRENT = cfg` early as a **re-entrancy guard**: a config file that imports this package and touches `config()` while loading sees the defaults instead of recursing. On failure it sets `CURRENT = undefined` and rethrows, so every later call throws again (no silent fallback to defaults).
175
180
  - `configure(patch | fn)`, the `enable*/disable*` mutators, and every internal reader go through `config()`, so they trigger the load first. Therefore a `configure()` call made before any log call still sits above the file.
181
+ - `configure(patch)` runs the patch through `checkPatch` (the config file's validator, §7) with the source label `configure()`. Unlike a file, it never throws: each problem is written to stderr once per process (`WARNED`, cleared by `resetConfig()`) and that key is left out; the rest applies. A non-object patch warns and is ignored. The callback form is not checked.
176
182
  - `resetConfig()` clears `CURRENT`, forgets the cached config file (`forgetConfigFile()` deletes it from `require.cache`), and rebuilds. Used by tests.
177
183
  - A mutable `LIMIT_SOURCE` records which layer set `infoLogsCharLimit` (`default|file|env|code`) for the truncation hint.
178
184
 
@@ -184,7 +190,7 @@ Environment variables: `VOID_LOG_LEVEL`, `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_
184
190
  - `VOID_LOG_CONFIG` overrides the path (resolved against cwd). An explicit path that does not exist **throws** (deliberate: a typo should not be silent).
185
191
  - Loaded with a lazy `require(file)` inside `loadConfigFile`. Under Playwright, its TypeScript hook transpiles `.ts`; under plain Node, type stripping or CJS handles it. No transpiler dependency. `unwrapDefault` handles `__esModule` interop (`export default`), `module.exports =`, and JSON.
186
192
  - Forms: a plain object (`LogConfigPatch`) or `(config: LogConfig) => LogConfigPatch`. The function receives a **clone** of the defaults (`cloneConfig`), so it cannot mutate live state. `defineConfig()` is an identity helper for typing.
187
- - Validation (`validatePatch`, table `KEYS`): unknown option names throw (catches typos like `levl`), wrong types throw, `undefined` values are dropped, `files` sub-keys are checked. Every error message contains the absolute file path (`fail()`), wrapping the original in `cause`.
193
+ - Validation (table `KEYS`): `checkPatch(value, where)` returns the clean patch plus one message per problem (unknown option name, such as a typo like `levl`; wrong type; bad `files` sub-key), and drops `undefined` values. `validatePatch` throws the first problem for a file; `configure()` warns about each one instead (§6.3). File error messages contain the absolute file path; load failures (`fail()`) wrap the original in `cause`.
188
194
  - Loaded once per process (Node's require cache plus `CURRENT`). `loadedConfigFile()` exposes the path for messages.
189
195
 
190
196
  ## 8. Caller and chain resolution (`caller.ts`)
@@ -220,6 +226,7 @@ If the chain comes out empty, `projectRoots` does not cover the test code; set `
220
226
  Files: `<logDir>/<runDate>/<kind>/<kind>-<runId>-<worker>.log` (`traceFilePath`). Writes are **synchronous** (`fs.writeSync` on cached fds in `FD_CACHE`), one file per worker, so parallel workers never interleave and a crash loses nothing. Every file line is prefixed `w<N> │ ` and passes through `stripAnsi`, so **plain-text sinks never contain escape codes** regardless of color flags. `closeAllFiles()` closes fds (and clears prune bookkeeping).
221
227
 
222
228
  Console rendering (`consoleSink`):
229
+ - Opt-in prefix (`consolePrefix`), placed before the timestamp and inside the color block: `w<N> │ ` when `consoleWorker`, then `<testTitle> │ ` when `consoleTest` and a test is running (line breaks flattened, cut to `TEST_TAG_MAX` = 40 chars with `...`). The worker part uses a literal ` │ `, like the file prefix, not `segmentDivider`. The GitHub annotation text carries the same prefix. File sinks do not use it: they are already per worker, and tests are bracketed by `TEST START`/`TEST END`.
223
230
  - `ansi` off: plain.
224
231
  - `ansi` on: `wrap(s) = ev.color ? ev.color + s + RESET : s`. When `fg` and `bg` are both off, `ev.color` is `''` and the body is bare (no stray reset).
225
232
  - `callerColor` on and a caller exists: body wrapped, then `div + CALLER_FG + caller + RESET`. Not gated by `fg`/`bg`; only `ansi:false` silences it.
@@ -249,18 +256,27 @@ Then three events are emitted via `emit()`:
249
256
 
250
257
  `infoLimitHint()` (in `config.ts`) tells the reader what to edit, depending on `LIMIT_SOURCE`: the config file's absolute path, the env var name, or the `configure()` call.
251
258
 
252
- ## 12. Log file retention (`maxLogFiles`, in `sinks.ts`)
259
+ ## 12. Log file retention (`maxRuns`, `maxLogFiles`, in `sinks.ts`)
253
260
 
254
- `pruneOnce(cfg, kind)` runs after the first write of each kind in a process (guarded by `PRUNED`). It lists `<logDir>/*/<kind>/<kind>-*.(log|jsonl)`, never deletes files whose name contains the current run id (parallel workers share it), keeps the newest by mtime up to `maxLogFiles - currentRunFiles`, deletes the rest, and removes emptied folders. Best effort; all errors swallowed. Counted per kind across all dates, in files (not runs).
261
+ `pruneOnce(cfg, kind)` runs after the first write of each kind in a process (guarded by `PRUNED`). It lists `<logDir>/*/<kind>/<kind>-*.(log|jsonl)` across all date folders and groups files by run id, parsed from `<kind>-<runId>-<main|wN>.<ext>` (a name without a worker suffix counts as its own run). A run's age is its newest file's mtime.
262
+
263
+ - `maxLogFiles`: of the files outside the current run, the newest `maxLogFiles - currentRunFiles` are kept.
264
+ - `maxRuns`: of the runs other than the current one, the newest `maxRuns - 1` are kept; older runs are marked whole.
265
+ - A file goes if either limit marks it. Then two guards apply: files whose name contains the current run id are never marked (parallel workers share it), and a run whose newest file is younger than `RECENT_RUN_MS` (1 hour) is never deleted, because another runner or CI shard may still be writing it. Neither limit is a hard cap.
266
+ - Skipped entirely when `runIdMissing()` (§13): without a shared run id, each worker's "current run" is its own pid-based id, and its siblings' live files would look like an older run.
267
+
268
+ Emptied kind and date folders are removed. Best effort; all errors swallowed.
255
269
 
256
270
  ## 13. Run identity and workers (`config.ts`)
257
271
 
258
272
  - `initRun()` (call from `globalSetup`) sets `process.env.VOID_RUN_ID` and `VOID_RUN_DATE` if absent, so every worker (which inherits env) shares one run id. `getRun()` falls back to a per-process id if unset.
273
+ - `runIdMissing()` is true in a Playwright worker (`TEST_WORKER_INDEX` set) without `VOID_RUN_ID`, meaning `initRun()` was never called in the runner. Then `traceFilePath` writes one stderr warning per process (`RUN_ID_WARNED`, reset by `closeAllFiles()`) and retention is off (§12). A worker cannot fix this itself: env it sets is not seen by its siblings.
274
+ - Only process-based workers are supported. A `worker_threads` thread starts with a copy of its parent's `process.env`, so it gets the same `workerLabel()` and run id, and appends to the same files through its own fds, with no way to tell its lines apart.
259
275
  - `workerLabel()` is `w<TEST_WORKER_INDEX>` under Playwright, else `main`. It appears in file names, line prefixes and events.
260
276
 
261
277
  ## 14. Playwright integration (`playwright.ts`)
262
278
 
263
- `test = base.extend({ voidLog: [fn, { auto: true }] })`: an auto fixture active for every test. Per test it: sets the test context (`setTestContext`, tags JSONL records), starts a `captureLogs()` buffer, logs `TEST START`, runs the test, then logs `TEST END | status | ms` (`error.failed` on failure, `info.success` otherwise), and attaches the captured text as `void-log` per `cfg.attach` (`on-failure` default). It also re-exports `expect` and `initRun`. Tests import `test`/`expect` from this entry instead of `@playwright/test`.
279
+ `test = base.extend({ voidLog: [fn, { auto: true }] })`: an auto fixture active for every test. Per test it: sets the test context (`setTestContext(titlePath.join(' > '), title)`: the path tags JSONL records, the title feeds `consoleTest`), starts a `captureLogs()` buffer, logs `TEST START`, runs the test, then logs `TEST END | status | ms` (`error.failed` on failure, `info.success` otherwise), and attaches the captured text as `void-log` per `cfg.attach` (`on-failure` default). It also re-exports `expect` and `initRun`. Tests import `test`/`expect` from this entry instead of `@playwright/test`.
264
280
 
265
281
  ## 15. Extension points
266
282
 
@@ -282,10 +298,13 @@ Then three events are emitted via `emit()`:
282
298
  9. The default theme/`fg`/`bg` defaults must keep 0.1.0 output byte-identical.
283
299
  10. Config is built lazily at first use (not at import). An env var changed between import and the first log call is honored; this is the one intentional difference from 0.1.0.
284
300
  11. In regexes written inside template literals, escape backslashes (`\\.`); a past bug came from exactly this.
301
+ 12. Retention must never run in a worker without a shared run id (`runIdMissing()`), and must never delete the current run or a run touched within `RECENT_RUN_MS`.
302
+ 13. `configure()` never throws on bad input; it warns and skips. Only a config file fails loudly.
303
+ 14. New output options that change line format default to off, so existing console and file output stays byte-identical.
285
304
 
286
305
  ## 17. Differences from the Java logger
287
306
 
288
- Dropped: custom themes, `setTheme`, width/arrow settings, file rotation and gzip archives. Changed: caller frames are excluded by path rather than method-name prefix. Added: secret redaction, JSONL sink, custom sinks, in-memory capture, Playwright fixture with attachment, per-worker files, config file, `fg`/`bg`, INFO truncation, file retention.
307
+ Dropped: custom themes, `setTheme`, width/arrow settings, file rotation and gzip archives. Changed: caller frames are excluded by path rather than method-name prefix. Added: secret redaction, JSONL sink, custom sinks, in-memory capture, Playwright fixture with attachment, per-worker files, config file, `fg`/`bg`, INFO truncation, file and run retention, console worker/test prefixes.
289
308
 
290
309
  ## 18. Testing map
291
310
 
@@ -295,8 +314,9 @@ Dropped: custom themes, `setTheme`, width/arrow settings, file rotation and gzip
295
314
  | fg/bg/ansi/callerColor combinations across all actions, env parsing | `colors.test.ts` |
296
315
  | Discovery order, forms, precedence, `VOID_LOG_CONFIG`, loud failures | `config-file.test.ts` |
297
316
  | Truncation text, WARN/DEBUG lines, hint by source | `truncate.test.ts` |
298
- | Retention counting, protection of current run, foreign files | `retention.test.ts` |
299
- | Real Playwright, 2 workers, `.ts` config, `globalSetup` isolation | `multi-worker.test.ts` + `fixtures/multi-worker/` |
317
+ | Retention by files and runs, protection of current and recent runs, missing run id, foreign files | `retention.test.ts` |
318
+ | consoleWorker/consoleTest prefixes, missing-run-id warning, `configure()` validation | `separable.test.ts` |
319
+ | Real Playwright, 2 workers, `.ts` config, `globalSetup` isolation, console prefixes, shared vs split run id | `multi-worker.test.ts` + `fixtures/multi-worker/` |
300
320
  | Visual/e2e demos | `*.spec.ts` via `test/playwright.config.ts` |
301
321
 
302
322
  Tests use `resetConfig()` plus `configure({ logDir: tmp, ansi: false, tsFormat: () => 'TS' })` for deterministic output, and spy on `process.stdout.write`. Config-file tests `chdir` into a temp dir so no stray `logger.config.*` leaks in.
package/CHANGELOG.md ADDED
@@ -0,0 +1,73 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@aryan-vashishth/advanced-logger`. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and the project uses [Semantic Versioning](https://semver.org/). While the version is below 1.0.0, a minor release may add options but keeps existing defaults and output unchanged unless noted.
4
+
5
+ ## [0.3.0] - 2026-10-14
6
+
7
+ Makes mixed logs from parallel runs separable, and stops a missing setup step from scattering or deleting logs. Console and file output are unchanged unless you turn on the new options.
8
+
9
+ ### Added
10
+
11
+ - `maxRuns` option (env `VOID_LOG_MAX_RUNS`): keeps the newest N runs per trace kind, current run included, and deletes older runs whole. A run's age is its newest file's modification time.
12
+ - `consoleWorker` option (default `false`): prefixes console lines with the worker, `w<N> │ ` (or `main │ ` outside Playwright), the same prefix trace-file lines already have.
13
+ - `consoleTest` option (default `false`): prefixes console lines with the running test's title, cut to 40 characters. Needs the Playwright fixture.
14
+ - A one-time stderr warning in a Playwright worker that has no `VOID_RUN_ID`, meaning `initRun()` was never called in `globalSetup`.
15
+ - `runIdMissing()` export, true in that situation.
16
+ - `setTestContext(test, title?)` takes an optional short title for the console prefix. The Playwright fixture passes the test's own title.
17
+ - `LogEvent.testTitle` for custom sinks.
18
+ - README sections on redaction scope (only top-level structured keys are masked; free text and nested objects are not) and on `worker_threads` (not supported).
19
+
20
+ ### Changed
21
+
22
+ - `configure({...})` now checks its patch with the config file's validator. An unknown option or a wrongly typed value prints one stderr warning and is skipped; the rest of the patch still applies. It never throws. Before, any key and value were stored as given. The callback form, `configure((cfg) => ...)`, is not checked.
23
+ - Retention (`maxLogFiles` and `maxRuns`) never deletes a run that has a file modified in the last hour, so another runner or CI shard writing to the same folder keeps its files. Neither limit is a hard cap.
24
+ - GitHub annotation lines carry the `consoleWorker` / `consoleTest` prefix when those options are on.
25
+
26
+ ### Fixed
27
+
28
+ - Without `initRun()`, each Playwright worker used its own run id, so with `maxLogFiles` set it could delete a sibling worker's live log files as "older". Retention is now off in such a worker.
29
+
30
+ ## [0.2.0] - 2026-10-13
31
+
32
+ Adds a project config file, independent color toggles, INFO truncation and log retention. With no config file and no new options set, output is identical to 0.1.0.
33
+
34
+ ### Added
35
+
36
+ - Project config file: `logger.config.ts`, `.js`, `.cjs` or `.json` in the working directory, or the path in `VOID_LOG_CONFIG`. It is loaded once per process, so every Playwright worker reads it. It default-exports an object or a `(config) => patch` function. `defineConfig()` types it.
37
+ - Config precedence, lowest to highest: built-in defaults, config file, environment variables, `configure()` calls.
38
+ - Strict config file validation: a file that throws, has the wrong shape, has an unknown option or has a wrongly typed value fails with an error naming the file, on every use until fixed. An explicit `VOID_LOG_CONFIG` that does not exist is an error.
39
+ - `fg` and `bg` options (env `VOID_LOG_FG`, `VOID_LOG_BG`) to turn the foreground colors and the theme background on and off independently. Bold, including table titles, follows `fg`.
40
+ - `enableFg()`, `disableFg()`, `isFgEnabled()` and the `Bg` equivalents.
41
+ - `infoLogsCharLimit` option (env `VOID_LOG_INFO_LOGS_CHAR_LIMIT`): INFO lines longer than the limit print truncated with the total char count, followed by a WARN saying where to raise the limit and a DEBUG line with the full text. Tables are excluded.
42
+ - `maxLogFiles` option (env `VOID_LOG_MAX_FILES`): keeps the newest N files per trace kind across date folders. The current run's files are never deleted, and only files named like the logger's own output are touched.
43
+ - `ARCHITECTURE.md`, shipped in the package, describing the internals end to end.
44
+ - README installation, entry points, quick start and uninstall sections.
45
+
46
+ ### Changed
47
+
48
+ - Configuration is built lazily on first use, not at import, so an environment variable changed between import and the first log call is now honored.
49
+ - With `fg` and `bg` both off, console lines carry no escape codes on the line body, not even a lone reset.
50
+ - Environment variables apply only when set and valid. An invalid `VOID_LOG_LEVEL` is ignored instead of overriding a lower layer.
51
+
52
+ ## [0.1.0] - 2026-10-05
53
+
54
+ First release on npm. A self-contained TypeScript port of the VOID `core.logging` package for Playwright projects, with no runtime dependencies.
55
+
56
+ ### Added
57
+
58
+ - Level loggers `debug`, `info`, `warn` and `error`, each with intent-based actions such as `click`, `log`, `success`, `failed`, `password` (masked), `table`, `tree` and `row`, plus `fields()` for structured values.
59
+ - Console sink with the HIGH_CONTRAST theme. ANSI is auto-detected and controlled by `VOID_LOG_ANSI`, `NO_COLOR` and `FORCE_COLOR`. A caller suffix is shown at `debug` level, optionally colored with `callerColor`.
60
+ - Plain-text trace files under `logs/<date>/`: `partial-trace` (console-visible lines), `debug-trace` (every level, caller suffix) and `full-trace` (every level, `[CHAIN]` suffix). They are written synchronously, one file per Playwright worker, with every line prefixed `w<N> │ `.
61
+ - Opt-in JSONL sink (`VOID_LOG_JSONL=1`) with one JSON record per call, including `worker` and `test`.
62
+ - Secret redaction of structured values by key (`redactKeys`).
63
+ - Custom sinks (`addSink`, `removeSink`) and in-memory capture (`captureLogs`).
64
+ - Caller and in-project chain resolution, with filters (`suppressContains`, `suppressMethodPrefixes`, `includeOnlyPrefixes`, `projectRoots`).
65
+ - Table cell truncation (`tableCellLimit`).
66
+ - GitHub Actions `::error::` / `::warning::` annotations.
67
+ - Playwright entry (`@aryan-vashishth/advanced-logger/playwright`): a drop-in `test` / `expect` whose auto fixture tags each test, logs `TEST START` / `TEST END` and attaches the test's log to the report (`attach`: `on-failure` by default).
68
+ - `initRun()` to share one run id across Playwright workers via `VOID_RUN_ID` / `VOID_RUN_DATE`.
69
+ - Environment variables `VOID_LOG_LEVEL`, `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_LOG_JSONL` and `VOID_RUN_ID`, and `configure()` for code.
70
+
71
+ [0.3.0]: https://www.npmjs.com/package/@aryan-vashishth/advanced-logger/v/0.3.0
72
+ [0.2.0]: https://www.npmjs.com/package/@aryan-vashishth/advanced-logger/v/0.2.0
73
+ [0.1.0]: https://www.npmjs.com/package/@aryan-vashishth/advanced-logger/v/0.1.0
package/README.md CHANGED
@@ -14,7 +14,7 @@ npm install @aryan-vashishth/advanced-logger
14
14
  Pin an exact version if you want reproducible installs:
15
15
 
16
16
  ```bash
17
- npm install @aryan-vashishth/advanced-logger@0.2.0
17
+ npm install @aryan-vashishth/advanced-logger@0.3.0
18
18
  ```
19
19
 
20
20
  Requirements:
@@ -42,6 +42,7 @@ Check the installed version with `npm ls @aryan-vashishth/advanced-logger`, and
42
42
  ```
43
43
 
44
44
  3. Reference it in `playwright.config.ts`: `globalSetup: './global-setup.ts'`.
45
+ If you skip this, each worker prints a one-time `VOID_RUN_ID is not set` warning to stderr. Its files then carry their own run id, and log retention is turned off in that worker, so no worker can delete another's live files.
45
46
  4. In specs, import `test` and `expect` from `@aryan-vashishth/advanced-logger/playwright` instead of `@playwright/test`.
46
47
  5. Run your tests. Logs are written under `./logs/<date>/` (change with `VOID_LOG_DIR`).
47
48
 
@@ -91,10 +92,27 @@ globalSetup: './global-setup.ts' // export default async () => { initRun(); }
91
92
 
92
93
  Files are written synchronously, one per Playwright worker (`...-w<index>.log`), so parallel workers never interleave and a crash loses nothing.
93
94
 
95
+ Workers are identified by Playwright's `TEST_WORKER_INDEX`, one process per worker. Node `worker_threads` are not supported: a thread starts with a copy of its parent's environment, so it gets the same worker label (`main` outside Playwright) and appends to the same files as the code that started it, with nothing to tell their lines apart.
96
+
97
+ ### Telling parallel console output apart: consoleWorker, consoleTest
98
+
99
+ With several workers, console lines from different tests interleave. Two opt-in prefixes say where each line came from (both off by default, so the console looks the same as in 0.2.0):
100
+
101
+ ```ts
102
+ configure({ consoleWorker: true, consoleTest: true });
103
+ // w1 │ logs in with a valid user │ 2026-10-13 16:25:06.083 │ INFO │ Click: Submit
104
+ ```
105
+
106
+ - `consoleWorker` adds the worker (`w<index>`, or `main` outside Playwright), the same prefix every trace-file line already has.
107
+ - `consoleTest` adds the running test's own title, cut to 40 characters. It needs the Playwright fixture (`test` from `@aryan-vashishth/advanced-logger/playwright`); lines logged outside a test have no test segment.
108
+ - Both apply to the console only, including GitHub annotations. The trace files are already one file per worker with `TEST START` / `TEST END` around each test, and JSONL records already carry `worker` and the full `test` path.
109
+
94
110
  ## Configuration
95
111
 
96
- Environment: `VOID_LOG_LEVEL` (debug/info/warn/error/off), `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_LOG_FG`, `VOID_LOG_BG`, `VOID_LOG_JSONL`, `VOID_LOG_INFO_LOGS_CHAR_LIMIT`, `VOID_LOG_MAX_FILES`, `VOID_LOG_CONFIG`, `VOID_RUN_ID`, plus standard `NO_COLOR` / `FORCE_COLOR`. Boolean variables accept `1/true/yes/on` and `0/false/no/off`.
97
- Code: `configure({ level, infoLogsCharLimit, maxLogFiles, ansi, fg, bg, callerColor, tsFormat, segmentDivider, tableCellLimit, tableCellLimitEnabled, files, console, redactKeys, attach, ... })`.
112
+ Environment: `VOID_LOG_LEVEL` (debug/info/warn/error/off), `VOID_LOG_DIR`, `VOID_LOG_ANSI`, `VOID_LOG_FG`, `VOID_LOG_BG`, `VOID_LOG_JSONL`, `VOID_LOG_INFO_LOGS_CHAR_LIMIT`, `VOID_LOG_MAX_RUNS`, `VOID_LOG_MAX_FILES`, `VOID_LOG_CONFIG`, `VOID_RUN_ID`, plus standard `NO_COLOR` / `FORCE_COLOR`. Boolean variables accept `1/true/yes/on` and `0/false/no/off`.
113
+ Code: `configure({ level, infoLogsCharLimit, maxRuns, maxLogFiles, consoleWorker, consoleTest, ansi, fg, bg, callerColor, tsFormat, segmentDivider, tableCellLimit, tableCellLimitEnabled, files, console, redactKeys, attach, ... })`.
114
+
115
+ `configure({...})` checks its patch the same way the config file is checked, but it never throws, since a logging option should not fail a test. An unknown option (such as a typo like `levl`) or a wrongly typed value prints one warning to stderr and is skipped; the rest of the patch still applies. The callback form, `configure((cfg) => ...)`, is not checked.
98
116
 
99
117
  The single theme (HIGH_CONTRAST) is on when ANSI is on: `enableAnsi()` / `disableAnsi()`.
100
118
 
@@ -134,13 +152,28 @@ Notes:
134
152
  - An invalid `VOID_LOG_LEVEL` is ignored, so it never overrides the config file.
135
153
  - `NO_COLOR` and `FORCE_COLOR` count as environment variables, so they beat `ansi` in the file. Terminal auto-detection does not: the file beats it.
136
154
 
137
- ### Limiting how many log files are kept: maxLogFiles
155
+ ### Limiting how many logs are kept: maxRuns, maxLogFiles
138
156
 
139
- `maxLogFiles: 20` (or `VOID_LOG_MAX_FILES=20`) keeps at most 20 files in each of `partial-trace`, `debug-trace`, `full-trace` and `jsonl`, counted across all date folders. Older files (by modification time) are deleted, and date folders left empty are removed. Unset, `null` or `0` keeps everything (the default; an env value of `0` turns off a limit set in the config file).
157
+ `maxRuns: 5` (or `VOID_LOG_MAX_RUNS=5`) keeps the 5 newest runs in each of `partial-trace`, `debug-trace`, `full-trace` and `jsonl`, counted across all date folders and including the current run. Older runs are deleted whole, never one worker's file at a time. A run's age is the modification time of its newest file. Date folders left empty are removed. Unset, `null` or `0` keeps everything (the default; an env value of `0` turns off a limit set in the config file).
140
158
 
141
- - The unit is files, not runs. Each run writes one file per Playwright worker, so with 4 workers a limit of 20 holds about 5 runs.
142
- - Files of the current run are never deleted, because parallel workers share one run id. If a run has more workers than the limit, that run's files exceed it.
143
- - Cleanup runs once per process, per kind, right after the first write, and is best effort: a failure never reaches your test. Only files named like this logger's output (`<kind>-*.log` / `.jsonl`) are touched, so other files in the log folder are safe.
159
+ `maxLogFiles: 20` (or `VOID_LOG_MAX_FILES=20`) is the older setting and counts files instead: it keeps the 20 newest files per kind. Each run writes one file per worker, so with 4 workers it holds about 5 runs, and it can leave part of a run behind. Prefer `maxRuns`. If both are set, a file is deleted when either limit says so.
160
+
161
+ Neither limit is a hard cap. These are never deleted:
162
+
163
+ - The current run's files. Parallel workers share one run id, so a run with more workers than `maxLogFiles` exceeds it.
164
+ - Any run with a file modified in the last hour. Another runner or CI shard writing to the same log folder at the same time may still be using it.
165
+ - Anything, in a Playwright worker without a shared run id (`initRun()` was not called). Each worker would see its siblings' live files as an older run, so retention is off in that worker and it prints a warning instead.
166
+
167
+ Cleanup runs once per process, per kind, right after the first write, and is best effort: a failure never reaches your test. Only files named like this logger's output (`<kind>-*.log` / `.jsonl`) are touched, so other files in the log folder are safe.
168
+
169
+ ### Redaction: redactKeys
170
+
171
+ Values are masked as `***` when their **key** contains one of `redactKeys` (case-insensitive substring; the defaults cover `password`, `secret`, `token`, `authorization`, `apikey` and similar). This applies to structured output only: `fields(...)`, trees, rows and tables. Two gaps to know about:
172
+
173
+ - Free text is not scanned, so `` info.log(`password is ${pw}`) `` prints the password in clear.
174
+ - Only top-level keys are checked. A nested object is printed as JSON as it is, so `fields('user', { password: pw })` shows the password.
175
+
176
+ Pass secrets as top-level fields, use `info.password(value)` (which prints one `*` per character), or keep them out of messages.
144
177
 
145
178
  ### Truncating long INFO logs: infoLogsCharLimit
146
179
 
@@ -186,9 +219,11 @@ With `ansi: true`:
186
219
 
187
220
  [ARCHITECTURE.md](ARCHITECTURE.md) describes the internals end to end: file layout, the dispatch pipeline, config layering, sinks, caller resolution and the Playwright fixture. It ships inside the npm package.
188
221
 
222
+ [CHANGELOG.md](CHANGELOG.md) lists what changed in each version, including any change to defaults or output. It also ships in the package.
223
+
189
224
  ## Differences from the Java logger
190
225
 
191
226
  - Custom themes, `setTheme`, `tsWidth/levelWidth/actionWidth` and `traceArrow` are dropped (the width and arrow settings were never used by the renderer).
192
227
  - Caller frames from the logger's own folder are excluded by path. Java excluded frames by method-name prefix (`log`, `info`, ...), which also hides user methods such as `login()`; that is not reproduced.
193
228
  - No file rotation or gzip archives.
194
- - Added: secret redaction in fields/tables, JSONL sink, custom sinks (`addSink`), in-memory capture, Playwright fixture with log attachment, per-worker files.
229
+ - Added: secret redaction in fields/tables, JSONL sink, custom sinks (`addSink`), in-memory capture, Playwright fixture with log attachment, per-worker files, run-based retention, worker and test prefixes on the console.
package/dist/config.d.ts CHANGED
@@ -22,14 +22,24 @@ export interface LogConfig {
22
22
  bg: boolean;
23
23
  /**
24
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.
25
+ * mtime. Files of the current run, and of any run written to in the last hour, are never deleted, so this is not a
26
+ * hard cap. null (or 0) keeps everything. Prefer maxRuns: a file count can keep part of a parallel run.
26
27
  */
27
28
  maxLogFiles: number | null;
29
+ /**
30
+ * Max runs kept per trace kind, the current run included. Older runs are deleted whole, oldest first. A run written
31
+ * to in the last hour is never deleted. null (or 0) keeps everything.
32
+ */
33
+ maxRuns: number | null;
28
34
  /**
29
35
  * Max chars for an INFO log (tables excluded). Longer ones print truncated with the total char count, followed by a
30
36
  * WARN and a DEBUG line holding the full text. null (or 0) means no limit.
31
37
  */
32
38
  infoLogsCharLimit: number | null;
39
+ /** Console-only: prefix each line with the worker (w<N>, or main outside Playwright), as the trace files do. */
40
+ consoleWorker: boolean;
41
+ /** Console-only: prefix each line with the running test's title (set by the Playwright fixture), max 40 chars. */
42
+ consoleTest: boolean;
33
43
  /** Console-only: color the caller suffix separately. Breaks one-ANSI-block-per-line. Independent of fg and bg. */
34
44
  callerColor: boolean;
35
45
  /** Java-style pattern (yyyy MM dd HH mm ss SSS) or a formatter function. */
@@ -65,7 +75,11 @@ export type LogConfigPatch = Partial<Omit<LogConfig, 'files' | 'suppressContains
65
75
  suppressMethodPrefixes?: Iterable<string>;
66
76
  includeOnlyPrefixes?: Iterable<string>;
67
77
  };
68
- /** Merge a patch, or mutate in place with a callback. Set-typed fields accept arrays in a patch. */
78
+ /**
79
+ * Merge a patch, or mutate in place with a callback. Set-typed fields accept arrays in a patch.
80
+ * A patch is checked like a config file, but a problem never throws (a logger must not fail a test): an unknown
81
+ * option or a wrong-typed value prints one stderr warning and is skipped, and the rest of the patch still applies.
82
+ */
69
83
  export declare function configure(patch: LogConfigPatch | ((cfg: LogConfig) => void)): LogConfig;
70
84
  /** Tells the reader where to raise infoLogsCharLimit, based on which layer set the active value. */
71
85
  export declare function infoLimitHint(): string;
@@ -110,6 +124,11 @@ export declare function getRun(): {
110
124
  runId: string;
111
125
  runDate: string;
112
126
  };
127
+ /**
128
+ * True in a Playwright worker whose runner never called initRun(). Each such worker falls back to its own pid-based
129
+ * run id, so its files are split from its siblings' and retention would see their live files as an older run.
130
+ */
131
+ export declare function runIdMissing(env?: NodeJS.ProcessEnv): boolean;
113
132
  /** Worker label for the thread column: w<TEST_WORKER_INDEX> under Playwright, else "main". */
114
133
  export declare function workerLabel(env?: NodeJS.ProcessEnv): string;
115
134
  //# sourceMappingURL=config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
package/dist/config.js CHANGED
@@ -14,6 +14,7 @@ exports.setTableCellLimit = setTableCellLimit;
14
14
  exports.formatTs = formatTs;
15
15
  exports.initRun = initRun;
16
16
  exports.getRun = getRun;
17
+ exports.runIdMissing = runIdMissing;
17
18
  exports.workerLabel = workerLabel;
18
19
  const configFile_1 = require("./configFile");
19
20
  const LEVEL_ORDER = { debug: 10, info: 20, warn: 30, error: 40, off: 99 };
@@ -64,6 +65,9 @@ function builtinDefaults(env) {
64
65
  bg: true,
65
66
  infoLogsCharLimit: null,
66
67
  maxLogFiles: null,
68
+ maxRuns: null,
69
+ consoleWorker: false,
70
+ consoleTest: false,
67
71
  callerColor: false,
68
72
  tsFormat: 'yyyy-MM-dd HH:mm:ss.SSS',
69
73
  segmentDivider: ' │ ',
@@ -107,6 +111,9 @@ function applyEnv(cfg, env) {
107
111
  const maxFiles = env.VOID_LOG_MAX_FILES?.trim();
108
112
  if (maxFiles && /^\d+$/.test(maxFiles))
109
113
  cfg.maxLogFiles = Number(maxFiles) > 0 ? Number(maxFiles) : null;
114
+ const maxRuns = env.VOID_LOG_MAX_RUNS?.trim();
115
+ if (maxRuns && /^\d+$/.test(maxRuns))
116
+ cfg.maxRuns = Number(maxRuns) > 0 ? Number(maxRuns) : null;
110
117
  const fg = envBool(env.VOID_LOG_FG);
111
118
  if (fg !== undefined)
112
119
  cfg.fg = fg;
@@ -168,7 +175,13 @@ function applyPatch(target, patch) {
168
175
  if (includeOnlyPrefixes)
169
176
  target.includeOnlyPrefixes = new Set(includeOnlyPrefixes);
170
177
  }
171
- /** Merge a patch, or mutate in place with a callback. Set-typed fields accept arrays in a patch. */
178
+ /** configure() problems already reported in this process, so a call inside a loop or hook warns once. */
179
+ const WARNED = new Set();
180
+ /**
181
+ * Merge a patch, or mutate in place with a callback. Set-typed fields accept arrays in a patch.
182
+ * A patch is checked like a config file, but a problem never throws (a logger must not fail a test): an unknown
183
+ * option or a wrong-typed value prints one stderr warning and is skipped, and the rest of the patch still applies.
184
+ */
172
185
  function configure(patch) {
173
186
  const cur = (0, exports.config)();
174
187
  if (typeof patch === 'function') {
@@ -178,11 +191,25 @@ function configure(patch) {
178
191
  LIMIT_SOURCE = 'code';
179
192
  return cur;
180
193
  }
194
+ if (typeof patch !== 'object' || patch === null || Array.isArray(patch)) {
195
+ warnOnce(`[advanced-logger] configure() expects an object or a function (got ${patch === null ? 'null' : typeof patch}); ignored.`);
196
+ return cur;
197
+ }
198
+ const checked = (0, configFile_1.checkPatch)(patch, 'configure()');
199
+ for (const p of checked.problems)
200
+ warnOnce(`${p} Skipped.`);
201
+ patch = checked.patch;
181
202
  applyPatch(cur, patch);
182
203
  if (patch.infoLogsCharLimit !== undefined)
183
204
  LIMIT_SOURCE = 'code';
184
205
  return cur;
185
206
  }
207
+ function warnOnce(msg) {
208
+ if (WARNED.has(msg))
209
+ return;
210
+ WARNED.add(msg);
211
+ process.stderr.write(msg + '\n');
212
+ }
186
213
  /** Tells the reader where to raise infoLogsCharLimit, based on which layer set the active value. */
187
214
  function infoLimitHint() {
188
215
  const file = (0, configFile_1.loadedConfigFile)();
@@ -203,6 +230,7 @@ function defineConfig(c) {
203
230
  /** Restore defaults and re-read env and the config file. Mainly for tests. */
204
231
  function resetConfig() {
205
232
  CURRENT = undefined;
233
+ WARNED.clear();
206
234
  (0, configFile_1.forgetConfigFile)();
207
235
  return (0, exports.config)();
208
236
  }
@@ -313,6 +341,13 @@ function getRun() {
313
341
  runDate: process.env.VOID_RUN_DATE || FALLBACK_RUN.runDate,
314
342
  };
315
343
  }
344
+ /**
345
+ * True in a Playwright worker whose runner never called initRun(). Each such worker falls back to its own pid-based
346
+ * run id, so its files are split from its siblings' and retention would see their live files as an older run.
347
+ */
348
+ function runIdMissing(env = process.env) {
349
+ return env.TEST_WORKER_INDEX != null && !env.VOID_RUN_ID;
350
+ }
316
351
  /** Worker label for the thread column: w<TEST_WORKER_INDEX> under Playwright, else "main". */
317
352
  function workerLabel(env = process.env) {
318
353
  return env.TEST_WORKER_INDEX != null ? `w${env.TEST_WORKER_INDEX}` : 'main';
@@ -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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"}
@@ -13,5 +13,14 @@ export declare function loadConfigFile(env: NodeJS.ProcessEnv, cwd: string): Loa
13
13
  export declare const loadedConfigFile: () => string | undefined;
14
14
  /** Drop the cached module so the next load re-reads the file (tests, resetConfig). */
15
15
  export declare function forgetConfigFile(): void;
16
+ /**
17
+ * Check a patch against KEYS. Every unknown key or wrong-typed value becomes a message naming `where`, and is left
18
+ * out of the returned patch; undefined values are dropped. Shared by config files (which throw on the first problem)
19
+ * and configure() (which warns and carries on).
20
+ */
21
+ export declare function checkPatch(value: Record<string, unknown>, where: string): {
22
+ patch: LogConfigPatch;
23
+ problems: string[];
24
+ };
16
25
  export {};
17
26
  //# sourceMappingURL=configFile.d.ts.map
@@ -1 +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"}
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;AAwDD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CA8BvH"}
@@ -37,6 +37,7 @@ exports.loadedConfigFile = exports.CONFIG_FILE_NAMES = void 0;
37
37
  exports.resolveConfigFile = resolveConfigFile;
38
38
  exports.loadConfigFile = loadConfigFile;
39
39
  exports.forgetConfigFile = forgetConfigFile;
40
+ exports.checkPatch = checkPatch;
40
41
  const fs = __importStar(require("node:fs"));
41
42
  const path = __importStar(require("node:path"));
42
43
  /** Looked up in this order in the project root; the first one that exists wins. */
@@ -133,6 +134,9 @@ const KEYS = {
133
134
  bg: [bool, 'a boolean'],
134
135
  infoLogsCharLimit: [(v) => v === null || (typeof v === 'number' && Number.isFinite(v) && v >= 0), 'a number >= 0 or null'],
135
136
  maxLogFiles: [(v) => v === null || (Number.isInteger(v) && v >= 0), 'an integer >= 0 or null'],
137
+ maxRuns: [(v) => v === null || (Number.isInteger(v) && v >= 0), 'an integer >= 0 or null'],
138
+ consoleWorker: [bool, 'a boolean'],
139
+ consoleTest: [bool, 'a boolean'],
136
140
  callerColor: [bool, 'a boolean'],
137
141
  tsFormat: [(v) => str(v) || typeof v === 'function', 'a string or a function'],
138
142
  segmentDivider: [str, 'a string'],
@@ -150,34 +154,53 @@ const KEYS = {
150
154
  attach: [oneOf('on-failure', 'always', 'never'), "one of 'on-failure' | 'always' | 'never'"],
151
155
  };
152
156
  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
- }
157
+ /**
158
+ * Check a patch against KEYS. Every unknown key or wrong-typed value becomes a message naming `where`, and is left
159
+ * out of the returned patch; undefined values are dropped. Shared by config files (which throw on the first problem)
160
+ * and configure() (which warns and carries on).
161
+ */
162
+ function checkPatch(value, where) {
158
163
  const out = {};
164
+ const problems = [];
159
165
  for (const [key, v] of Object.entries(value)) {
160
166
  if (v === undefined)
161
167
  continue;
162
168
  const rule = KEYS[key];
163
169
  if (!rule) {
164
- throw new Error(`[advanced-logger] Config file ${file} has an unknown option '${key}'. Valid options: ${Object.keys(KEYS).join(', ')}.`);
170
+ problems.push(`[advanced-logger] ${where} has an unknown option '${key}'. Valid options: ${Object.keys(KEYS).join(', ')}.`);
171
+ continue;
165
172
  }
166
173
  if (!rule[0](v)) {
167
- throw new Error(`[advanced-logger] Config file ${file}: option '${key}' must be ${rule[1]} (got ${describe(v)}).`);
174
+ problems.push(`[advanced-logger] ${where}: option '${key}' must be ${rule[1]} (got ${describe(v)}).`);
175
+ continue;
168
176
  }
169
177
  if (key === 'files') {
178
+ const files = {};
170
179
  for (const [fk, fv] of Object.entries(v)) {
171
180
  if (fv === undefined)
172
181
  continue;
173
182
  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(', ')}.`);
183
+ problems.push(`[advanced-logger] ${where}: option 'files.${fk}' must be a boolean and one of ${FILE_KEYS.join(', ')}.`);
184
+ continue;
175
185
  }
186
+ files[fk] = fv;
176
187
  }
188
+ out[key] = files;
189
+ continue;
177
190
  }
178
191
  out[key] = v;
179
192
  }
180
- return out;
193
+ return { patch: out, problems };
194
+ }
195
+ /** Unknown keys are rejected (a typo such as `levl` must not be silently ignored); undefined values are dropped. */
196
+ function validatePatch(value, file, hint) {
197
+ if (!isPlainObject(value)) {
198
+ throw new Error(`[advanced-logger] Config file ${file} has an invalid shape: ${hint} (got ${describe(value)}).`);
199
+ }
200
+ const { patch, problems } = checkPatch(value, `Config file ${file}`);
201
+ if (problems.length > 0)
202
+ throw new Error(problems[0]);
203
+ return patch;
181
204
  }
182
205
  function describe(v) {
183
206
  if (v === null)
@@ -1 +1 @@
1
- {"version":3,"file":"configFile.js","sourceRoot":"","sources":["../src/configFile.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configFile.js","sourceRoot":"","sources":["../src/configFile.ts"],"names":[],"mappings":"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"}
package/dist/core.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  import { type LevelName, LogIntent } from './theme';
2
- /** Tag subsequent events (jsonl records) with the running test. Set by the Playwright fixture. */
3
- export declare const setTestContext: (title: string | undefined) => void;
2
+ /**
3
+ * Tag subsequent events with the running test: `test` (the full path) goes to jsonl records, `title` (default: `test`)
4
+ * to the consoleTest prefix. Set by the Playwright fixture.
5
+ */
6
+ export declare function setTestContext(test: string | undefined, title?: string): void;
4
7
  export declare const getTestContext: () => string | undefined;
5
8
  /**
6
9
  * Single funnel for every log call. Sinks are asked first so no stack is captured
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAIlE,kGAAkG;AAClG,eAAO,MAAM,cAAc,GAAI,OAAO,MAAM,GAAG,SAAS,KAAG,IAAkC,CAAC;AAC9F,eAAO,MAAM,cAAc,QAAO,MAAM,GAAG,SAAwB,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,IAAI,CA2BN;AAsCD,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAElE"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAE,SAAS,EAAgB,MAAM,SAAS,CAAC;AAKlE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAG7E;AACD,eAAO,MAAM,cAAc,QAAO,MAAM,GAAG,SAAwB,CAAC;AAEpE;;;GAGG;AACH,wBAAgB,QAAQ,CACtB,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,SAAS,GAAG,IAAI,EACxB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,IAAI,CA2BN;AAuCD,wBAAgB,MAAM,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAElE"}
package/dist/core.js CHANGED
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getTestContext = exports.setTestContext = void 0;
3
+ exports.getTestContext = void 0;
4
+ exports.setTestContext = setTestContext;
4
5
  exports.dispatch = dispatch;
5
6
  exports.themed = themed;
6
7
  const caller_1 = require("./caller");
@@ -8,9 +9,15 @@ const config_1 = require("./config");
8
9
  const sinks_1 = require("./sinks");
9
10
  const theme_1 = require("./theme");
10
11
  let currentTest;
11
- /** Tag subsequent events (jsonl records) with the running test. Set by the Playwright fixture. */
12
- const setTestContext = (title) => void (currentTest = title);
13
- exports.setTestContext = setTestContext;
12
+ let currentTitle;
13
+ /**
14
+ * Tag subsequent events with the running test: `test` (the full path) goes to jsonl records, `title` (default: `test`)
15
+ * to the consoleTest prefix. Set by the Playwright fixture.
16
+ */
17
+ function setTestContext(test, title) {
18
+ currentTest = test;
19
+ currentTitle = test === undefined ? undefined : (title ?? test);
20
+ }
14
21
  const getTestContext = () => currentTest;
15
22
  exports.getTestContext = getTestContext;
16
23
  /**
@@ -56,6 +63,7 @@ function emit(level, intent, color, label, message) {
56
63
  chain,
57
64
  worker: (0, config_1.workerLabel)(),
58
65
  test: currentTest,
66
+ testTitle: currentTitle,
59
67
  };
60
68
  for (const s of sinks) {
61
69
  try {
package/dist/core.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { debug, info, warn, error } from './logger';
2
2
  export { LogActions, fields, formatValue } from './actions';
3
3
  export type { Fields, Row } from './actions';
4
- export { config, configure, defineConfig, resetConfig, initRun, getRun, workerLabel, enableAnsi, disableAnsi, isAnsiEnabled, enableFg, disableFg, isFgEnabled, enableBg, disableBg, isBgEnabled, enableCallerColor, disableCallerColor, isCallerColorEnabled, isDebugEnabled, includeOnlyPackages, suppressClassContains, suppressMethodPrefix, clearIncludes, setTableCellLimit, disableTableCellLimit, detectAnsiSupport, } from './config';
4
+ export { config, configure, defineConfig, resetConfig, initRun, getRun, workerLabel, runIdMissing, enableAnsi, disableAnsi, isAnsiEnabled, enableFg, disableFg, isFgEnabled, enableBg, disableBg, isBgEnabled, enableCallerColor, disableCallerColor, isCallerColorEnabled, isDebugEnabled, includeOnlyPackages, suppressClassContains, suppressMethodPrefix, clearIncludes, setTableCellLimit, disableTableCellLimit, detectAnsiSupport, } from './config';
5
5
  export type { LogConfig, LogConfigPatch, RootLevel, AttachPolicy, FileToggles } from './config';
6
6
  export { LogIntent } from './theme';
7
7
  export type { LevelName } from './theme';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,MAAM,EACN,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC5D,YAAY,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EACL,MAAM,EACN,SAAS,EACT,YAAY,EACZ,WAAW,EACX,OAAO,EACP,MAAM,EACN,WAAW,EACX,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,WAAW,EACX,QAAQ,EACR,SAAS,EACT,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,UAAU,CAAC;AAClB,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACzF,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.traceFilePath = exports.closeAllFiles = exports.captureLogs = exports.removeSink = exports.addSink = exports.getTestContext = exports.setTestContext = exports.fgFromStyle = exports.stripAnsi = exports.LogIntent = exports.detectAnsiSupport = exports.disableTableCellLimit = exports.setTableCellLimit = exports.clearIncludes = exports.suppressMethodPrefix = exports.suppressClassContains = exports.includeOnlyPackages = 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.workerLabel = exports.getRun = exports.initRun = exports.resetConfig = exports.defineConfig = exports.configure = exports.config = exports.formatValue = exports.fields = exports.LogActions = exports.error = exports.warn = exports.info = exports.debug = void 0;
3
+ exports.traceFilePath = exports.closeAllFiles = exports.captureLogs = exports.removeSink = exports.addSink = exports.getTestContext = exports.setTestContext = exports.fgFromStyle = exports.stripAnsi = exports.LogIntent = exports.detectAnsiSupport = exports.disableTableCellLimit = exports.setTableCellLimit = exports.clearIncludes = exports.suppressMethodPrefix = exports.suppressClassContains = exports.includeOnlyPackages = 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.runIdMissing = exports.workerLabel = exports.getRun = exports.initRun = exports.resetConfig = exports.defineConfig = exports.configure = exports.config = exports.formatValue = exports.fields = exports.LogActions = exports.error = exports.warn = exports.info = exports.debug = void 0;
4
4
  var logger_1 = require("./logger");
5
5
  Object.defineProperty(exports, "debug", { enumerable: true, get: function () { return logger_1.debug; } });
6
6
  Object.defineProperty(exports, "info", { enumerable: true, get: function () { return logger_1.info; } });
@@ -18,6 +18,7 @@ Object.defineProperty(exports, "resetConfig", { enumerable: true, get: function
18
18
  Object.defineProperty(exports, "initRun", { enumerable: true, get: function () { return config_1.initRun; } });
19
19
  Object.defineProperty(exports, "getRun", { enumerable: true, get: function () { return config_1.getRun; } });
20
20
  Object.defineProperty(exports, "workerLabel", { enumerable: true, get: function () { return config_1.workerLabel; } });
21
+ Object.defineProperty(exports, "runIdMissing", { enumerable: true, get: function () { return config_1.runIdMissing; } });
21
22
  Object.defineProperty(exports, "enableAnsi", { enumerable: true, get: function () { return config_1.enableAnsi; } });
22
23
  Object.defineProperty(exports, "disableAnsi", { enumerable: true, get: function () { return config_1.disableAnsi; } });
23
24
  Object.defineProperty(exports, "isAnsiEnabled", { enumerable: true, get: function () { return config_1.isAnsiEnabled; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAA3C,+FAAA,KAAK,OAAA;AAAE,8FAAA,IAAI,OAAA;AAAE,8FAAA,IAAI,OAAA;AAAE,+FAAA,KAAK,OAAA;AACjC,qCAA4D;AAAnD,qGAAA,UAAU,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,sGAAA,WAAW,OAAA;AAExC,mCA4BkB;AA3BhB,gGAAA,MAAM,OAAA;AACN,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,qGAAA,WAAW,OAAA;AACX,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,qGAAA,WAAW,OAAA;AACX,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,2GAAA,iBAAiB,OAAA;AACjB,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA;AACpB,wGAAA,cAAc,OAAA;AACd,6GAAA,mBAAmB,OAAA;AACnB,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,uGAAA,aAAa,OAAA;AACb,2GAAA,iBAAiB,OAAA;AACjB,+GAAA,qBAAqB,OAAA;AACrB,2GAAA,iBAAiB,OAAA;AAGnB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,+BAAgD;AAAvC,iGAAA,SAAS,OAAA;AAAE,mGAAA,WAAW,OAAA;AAC/B,+BAAwD;AAA/C,sGAAA,cAAc,OAAA;AAAE,sGAAA,cAAc,OAAA;AACvC,iCAAyF;AAAhF,gGAAA,OAAO,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,sGAAA,aAAa,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAoD;AAA3C,+FAAA,KAAK,OAAA;AAAE,8FAAA,IAAI,OAAA;AAAE,8FAAA,IAAI,OAAA;AAAE,+FAAA,KAAK,OAAA;AACjC,qCAA4D;AAAnD,qGAAA,UAAU,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,sGAAA,WAAW,OAAA;AAExC,mCA6BkB;AA5BhB,gGAAA,MAAM,OAAA;AACN,mGAAA,SAAS,OAAA;AACT,sGAAA,YAAY,OAAA;AACZ,qGAAA,WAAW,OAAA;AACX,iGAAA,OAAO,OAAA;AACP,gGAAA,MAAM,OAAA;AACN,qGAAA,WAAW,OAAA;AACX,sGAAA,YAAY,OAAA;AACZ,oGAAA,UAAU,OAAA;AACV,qGAAA,WAAW,OAAA;AACX,uGAAA,aAAa,OAAA;AACb,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,kGAAA,QAAQ,OAAA;AACR,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AACX,2GAAA,iBAAiB,OAAA;AACjB,4GAAA,kBAAkB,OAAA;AAClB,8GAAA,oBAAoB,OAAA;AACpB,wGAAA,cAAc,OAAA;AACd,6GAAA,mBAAmB,OAAA;AACnB,+GAAA,qBAAqB,OAAA;AACrB,8GAAA,oBAAoB,OAAA;AACpB,uGAAA,aAAa,OAAA;AACb,2GAAA,iBAAiB,OAAA;AACjB,+GAAA,qBAAqB,OAAA;AACrB,2GAAA,iBAAiB,OAAA;AAGnB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,+BAAgD;AAAvC,iGAAA,SAAS,OAAA;AAAE,mGAAA,WAAW,OAAA;AAC/B,+BAAwD;AAA/C,sGAAA,cAAc,OAAA;AAAE,sGAAA,cAAc,OAAA;AACvC,iCAAyF;AAAhF,gGAAA,OAAO,OAAA;AAAE,mGAAA,UAAU,OAAA;AAAE,oGAAA,WAAW,OAAA;AAAE,sGAAA,aAAa,OAAA;AAAE,sGAAA,aAAa,OAAA"}
@@ -18,7 +18,7 @@ const logger_1 = require("./logger");
18
18
  exports.test = test_1.test.extend({
19
19
  voidLog: [
20
20
  async ({}, use, testInfo) => {
21
- (0, core_1.setTestContext)(testInfo.titlePath.join(' > '));
21
+ (0, core_1.setTestContext)(testInfo.titlePath.join(' > '), testInfo.title);
22
22
  const capture = (0, sinks_1.captureLogs)();
23
23
  logger_1.info.log(`TEST START | ${testInfo.titlePath.join(' > ')}`);
24
24
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAwC/C,uFAxCc,aAAM,OAwCd;AAvCf,qCAAkC;AAClC,iCAAwC;AACxC,mCAAsC;AACtC,qCAAuC;AAEvC;;;;;;;GAOG;AACU,QAAA,IAAI,GAAG,WAAI,CAAC,MAAM,CAAoB;IACjD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;YAC1B,IAAA,qBAAc,EAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/C,MAAM,OAAO,GAAG,IAAA,mBAAW,GAAE,CAAC;YAC9B,aAAI,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,GAAG,EAAE,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,cAAc,CAAC;gBAC3D,MAAM,IAAI,GAAG,cAAc,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,QAAQ,IAAI,CAAC;gBACtE,IAAI,MAAM;oBAAE,cAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;oBAC1B,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAExB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAA,eAAM,GAAE,CAAC,MAAM,CAAC;gBAC/B,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC;oBACzE,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,IAAA,qBAAc,EAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,EAAE,IAAI,EAAE,IAAI,EAAE;KACf;CACF,CAAC,CAAC;AAGH,mCAAmC;AAA1B,iGAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"playwright.js","sourceRoot":"","sources":["../src/playwright.ts"],"names":[],"mappings":";;;AAAA,2CAAwD;AAwC/C,uFAxCc,aAAM,OAwCd;AAvCf,qCAAkC;AAClC,iCAAwC;AACxC,mCAAsC;AACtC,qCAAuC;AAEvC;;;;;;;GAOG;AACU,QAAA,IAAI,GAAG,WAAI,CAAC,MAAM,CAAoB;IACjD,OAAO,EAAE;QACP,KAAK,EAAE,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE;YAC1B,IAAA,qBAAc,EAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC/D,MAAM,OAAO,GAAG,IAAA,mBAAW,GAAE,CAAC;YAC9B,aAAI,CAAC,GAAG,CAAC,gBAAgB,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC;gBACH,MAAM,GAAG,EAAE,CAAC;YACd,CAAC;oBAAS,CAAC;gBACT,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,cAAc,CAAC;gBAC3D,MAAM,IAAI,GAAG,cAAc,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,QAAQ,IAAI,CAAC;gBACtE,IAAI,MAAM;oBAAE,cAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;;oBAC1B,aAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBAExB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC5B,MAAM,MAAM,GAAG,IAAA,eAAM,GAAE,CAAC,MAAM,CAAC;gBAC/B,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,CAAC,MAAM,KAAK,YAAY,IAAI,MAAM,CAAC,CAAC,EAAE,CAAC;oBACzE,MAAM,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC,CAAC;gBAC/E,CAAC;gBACD,IAAA,qBAAc,EAAC,SAAS,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,EAAE,IAAI,EAAE,IAAI,EAAE;KACf;CACF,CAAC,CAAC;AAGH,mCAAmC;AAA1B,iGAAA,OAAO,OAAA"}
package/dist/sinks.d.ts CHANGED
@@ -18,7 +18,10 @@ export interface LogEvent {
18
18
  /** Plain in-project chain, empty when unresolved. */
19
19
  chain: string;
20
20
  worker: string;
21
+ /** Full test path ("file > describe > title"), as recorded in jsonl. */
21
22
  test?: string;
23
+ /** Short test label for the console (the test's own title). */
24
+ testTitle?: string;
22
25
  }
23
26
  export interface Sink {
24
27
  /** Cheap check run before any stack capture; return false to skip the event entirely. */
@@ -26,8 +29,11 @@ export interface Sink {
26
29
  write(ev: LogEvent, cfg: LogConfig): void;
27
30
  }
28
31
  export declare const splitLines: (m: string) => string[];
32
+ export declare const TEST_TAG_MAX = 40;
29
33
  export declare const consoleSink: Sink;
30
34
  type FileKind = 'debug-trace' | 'partial-trace' | 'full-trace';
35
+ /** A run with any file modified this recently may still be writing (another runner, a CI shard): never pruned. */
36
+ export declare const RECENT_RUN_MS: number;
31
37
  export declare function closeAllFiles(): void;
32
38
  export declare function traceFilePath(cfg: LogConfig, kind: FileKind | 'jsonl', ext?: string): string;
33
39
  export declare const partialTraceSink: Sink;
@@ -1 +1 @@
1
- {"version":3,"file":"sinks.d.ts","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAuD,MAAM,UAAU,CAAC;AAC/F,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAe,MAAM,SAAS,CAAC;AAEjF,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gHAAgH;IAChH,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,IAAI;IACnB,yFAAyF;IACzF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3C;AAGD,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,MAAM,EAA0B,CAAC;AAexE,eAAO,MAAM,WAAW,EAAE,IAgCzB,CAAC;AAIF,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,CAAC;AAyE/D,wBAAgB,aAAa,IAAI,IAAI,CAUpC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,SAAQ,GAAG,MAAM,CAI3F;AAeD,eAAO,MAAM,gBAAgB,MAE5B,CAAC;AAEF,eAAO,MAAM,cAAc,MAK1B,CAAC;AAEF,eAAO,MAAM,aAAa,MAKzB,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,IAkBvB,CAAC;AAIF,MAAM,WAAW,OAAO;IACtB,8DAA8D;IAC9D,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;CAChB;AAID,eAAO,MAAM,WAAW,EAAE,IAMzB,CAAC;AAEF,wBAAgB,WAAW,IAAI,OAAO,CAUrC;AAKD,eAAO,MAAM,OAAO,GAAI,GAAG,IAAI,KAAG,IAA0B,CAAC;AAC7D,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,KAAG,IAA6B,CAAC;AAEnE,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC"}
1
+ {"version":3,"file":"sinks.d.ts","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,SAAS,EAAkF,MAAM,UAAU,CAAC;AAC1H,OAAO,EAAa,KAAK,SAAS,EAAE,KAAK,SAAS,EAAe,MAAM,SAAS,CAAC;AAEjF,uDAAuD;AACvD,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,IAAI,CAAC;IACX,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,SAAS,CAAC;IACjB,kDAAkD;IAClD,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,gHAAgH;IAChH,KAAK,EAAE,MAAM,CAAC;IACd,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,IAAI;IACnB,yFAAyF;IACzF,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,GAAG,OAAO,CAAC;IACnD,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,SAAS,GAAG,IAAI,CAAC;CAC3C;AAGD,eAAO,MAAM,UAAU,GAAI,GAAG,MAAM,KAAG,MAAM,EAA0B,CAAC;AAexE,eAAO,MAAM,YAAY,KAAK,CAAC;AAY/B,eAAO,MAAM,WAAW,EAAE,IAiCzB,CAAC;AAIF,KAAK,QAAQ,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,CAAC;AAqB/D,kHAAkH;AAClH,eAAO,MAAM,aAAa,QAAiB,CAAC;AA2F5C,wBAAgB,aAAa,IAAI,IAAI,CAWpC;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,EAAE,GAAG,SAAQ,GAAG,MAAM,CAK3F;AAeD,eAAO,MAAM,gBAAgB,MAE5B,CAAC;AAEF,eAAO,MAAM,cAAc,MAK1B,CAAC;AAEF,eAAO,MAAM,aAAa,MAKzB,CAAC;AAIF,eAAO,MAAM,SAAS,EAAE,IAkBvB,CAAC;AAIF,MAAM,WAAW,OAAO;IACtB,8DAA8D;IAC9D,IAAI,IAAI,MAAM,CAAC;IACf,IAAI,IAAI,MAAM,CAAC;CAChB;AAID,eAAO,MAAM,WAAW,EAAE,IAMzB,CAAC;AAEF,wBAAgB,WAAW,IAAI,OAAO,CAUrC;AAKD,eAAO,MAAM,OAAO,GAAI,GAAG,IAAI,KAAG,IAA0B,CAAC;AAC7D,eAAO,MAAM,UAAU,GAAI,GAAG,IAAI,KAAG,IAA6B,CAAC;AAEnE,wBAAgB,WAAW,IAAI,IAAI,EAAE,CAEpC"}
package/dist/sinks.js CHANGED
@@ -33,7 +33,7 @@ var __importStar = (this && this.__importStar) || (function () {
33
33
  };
34
34
  })();
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.removeSink = exports.addSink = exports.captureSink = exports.jsonlSink = exports.fullTraceSink = exports.debugTraceSink = exports.partialTraceSink = exports.consoleSink = exports.splitLines = void 0;
36
+ exports.removeSink = exports.addSink = exports.captureSink = exports.jsonlSink = exports.fullTraceSink = exports.debugTraceSink = exports.partialTraceSink = exports.RECENT_RUN_MS = exports.consoleSink = exports.TEST_TAG_MAX = exports.splitLines = void 0;
37
37
  exports.closeAllFiles = closeAllFiles;
38
38
  exports.traceFilePath = traceFilePath;
39
39
  exports.captureLogs = captureLogs;
@@ -56,6 +56,16 @@ function githubCommand(ev) {
56
56
  return null;
57
57
  }
58
58
  const escapeGithub = (t) => t.replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A');
59
+ exports.TEST_TAG_MAX = 40;
60
+ /** The opt-in "w1 │ test title │ " console prefix. The worker part matches the trace files' prefix. */
61
+ function consolePrefix(ev, cfg) {
62
+ let p = cfg.consoleWorker ? `${ev.worker} │ ` : '';
63
+ if (cfg.consoleTest && ev.testTitle) {
64
+ const t = ev.testTitle.replace(config_1.LINE_BREAKS, ' ');
65
+ p += (t.length > exports.TEST_TAG_MAX ? t.slice(0, exports.TEST_TAG_MAX - 3) + '...' : t) + ' │ ';
66
+ }
67
+ return p;
68
+ }
59
69
  exports.consoleSink = {
60
70
  accepts: (level, cfg) => cfg.console && (0, config_1.levelEnabled)(cfg.level, level),
61
71
  write(ev, cfg) {
@@ -63,9 +73,10 @@ exports.consoleSink = {
63
73
  const showCaller = (0, config_1.levelEnabled)(cfg.level, 'DEBUG');
64
74
  const callerText = showCaller ? ev.caller : '';
65
75
  const lines = (0, exports.splitLines)(ev.message);
76
+ const prefix = consolePrefix(ev, cfg);
66
77
  const out = [];
67
78
  lines.forEach((line, i) => {
68
- const b = body(ev, cfg, line);
79
+ const b = prefix + body(ev, cfg, line);
69
80
  const first = i === 0 && callerText !== '';
70
81
  let text;
71
82
  if (cfg.ansi) {
@@ -83,7 +94,7 @@ exports.consoleSink = {
83
94
  out.push(text);
84
95
  if (cfg.githubAnnotations) {
85
96
  const cmd = githubCommand(ev);
86
- const plain = ev.ts + div + line;
97
+ const plain = prefix + ev.ts + div + line;
87
98
  if (cmd && plain.trim() !== '')
88
99
  out.push(`::${cmd}::${escapeGithub(plain)}`);
89
100
  }
@@ -107,14 +118,31 @@ function appendSync(file, text) {
107
118
  }
108
119
  /** Trace kinds already pruned by this process (once per kind, at its first write). */
109
120
  const PRUNED = new Set();
121
+ /** A run with any file modified this recently may still be writing (another runner, a CI shard): never pruned. */
122
+ exports.RECENT_RUN_MS = 60 * 60 * 1000;
123
+ let RUN_ID_WARNED = false;
124
+ /** One stderr warning per process when a Playwright worker has no shared run id (initRun() was never called). */
125
+ function warnIfRunIdMissing() {
126
+ if (RUN_ID_WARNED || !(0, config_1.runIdMissing)())
127
+ return;
128
+ RUN_ID_WARNED = true;
129
+ process.stderr.write(`[advanced-logger] ${(0, config_1.workerLabel)()}: VOID_RUN_ID is not set, so this worker's log files use their own run id ` +
130
+ 'and log retention is off in this process. Call initRun() from your Playwright globalSetup.\n');
131
+ }
110
132
  /**
111
- * Retention: keep at most `maxLogFiles` files per trace kind (newest by mtime, across date folders).
112
- * Files of the current run are never deleted (parallel workers share one run id), so they may exceed the limit.
113
- * Only files named like this logger's own output are touched. Best effort: errors never reach the caller.
133
+ * Retention per trace kind, across date folders: `maxLogFiles` keeps the newest N files by mtime, `maxRuns` keeps
134
+ * the newest N runs whole (a run is dated by its newest file). Both may be set; a file goes if either says so.
135
+ * Never deleted: the current run's files (parallel workers share one run id), and any run with a file modified in
136
+ * the last RECENT_RUN_MS. So neither limit is a hard cap. Skipped entirely in a worker without a shared run id,
137
+ * since its siblings' live files would look like an older run. Only files named like this logger's own output are
138
+ * touched. Best effort: errors never reach the caller.
114
139
  */
115
140
  function pruneOnce(cfg, kind) {
116
- const max = cfg.maxLogFiles;
117
- if (max == null || max <= 0)
141
+ const maxFiles = cfg.maxLogFiles != null && cfg.maxLogFiles > 0 ? cfg.maxLogFiles : null;
142
+ const maxRuns = cfg.maxRuns != null && cfg.maxRuns > 0 ? cfg.maxRuns : null;
143
+ if (maxFiles == null && maxRuns == null)
144
+ return;
145
+ if ((0, config_1.runIdMissing)())
118
146
  return;
119
147
  const key = `${path.resolve(cfg.logDir)}|${kind}`;
120
148
  if (PRUNED.has(key))
@@ -123,6 +151,8 @@ function pruneOnce(cfg, kind) {
123
151
  try {
124
152
  const { runId } = (0, config_1.getRun)();
125
153
  const own = new RegExp(`^${kind}-.+\\.(log|jsonl)$`);
154
+ // kind-<runId>-<worker>.<ext>; a name without a worker suffix counts as its own run.
155
+ const runOf = (name) => new RegExp(`^${kind}-(.+)-(main|w\\d+)\\.(log|jsonl)$`).exec(name)?.[1] ?? name;
126
156
  const files = [];
127
157
  for (const day of fs.readdirSync(cfg.logDir, { withFileTypes: true })) {
128
158
  if (!day.isDirectory())
@@ -140,16 +170,35 @@ function pruneOnce(cfg, kind) {
140
170
  continue;
141
171
  const file = path.join(dir, name);
142
172
  try {
143
- files.push({ file, mtime: fs.statSync(file).mtimeMs, current: name.includes(runId) });
173
+ files.push({ file, mtime: fs.statSync(file).mtimeMs, run: runOf(name), current: name.includes(runId) });
144
174
  }
145
175
  catch {
146
176
  /* removed by another worker */
147
177
  }
148
178
  }
149
179
  }
150
- const keepOthers = Math.max(0, max - files.filter((f) => f.current).length);
151
- const old = files.filter((f) => !f.current).sort((a, b) => b.mtime - a.mtime).slice(keepOthers);
152
- for (const f of old) {
180
+ const newest = new Map();
181
+ for (const f of files)
182
+ newest.set(f.run, Math.max(newest.get(f.run) ?? 0, f.mtime));
183
+ const now = Date.now();
184
+ const others = files.filter((f) => !f.current);
185
+ const doomed = new Set();
186
+ if (maxFiles != null) {
187
+ const keep = Math.max(0, maxFiles - (files.length - others.length));
188
+ for (const f of [...others].sort((a, b) => b.mtime - a.mtime).slice(keep))
189
+ doomed.add(f);
190
+ }
191
+ if (maxRuns != null) {
192
+ const otherRuns = [...new Set(others.map((f) => f.run))].sort((a, b) => newest.get(b) - newest.get(a));
193
+ const keep = Math.max(0, maxRuns - (others.length < files.length ? 1 : 0));
194
+ const old = new Set(otherRuns.slice(keep));
195
+ for (const f of others)
196
+ if (old.has(f.run))
197
+ doomed.add(f);
198
+ }
199
+ for (const f of doomed) {
200
+ if (now - newest.get(f.run) < exports.RECENT_RUN_MS)
201
+ continue;
153
202
  try {
154
203
  fs.rmSync(f.file, { force: true });
155
204
  const dir = path.dirname(f.file);
@@ -170,6 +219,7 @@ function pruneOnce(cfg, kind) {
170
219
  }
171
220
  function closeAllFiles() {
172
221
  PRUNED.clear();
222
+ RUN_ID_WARNED = false;
173
223
  for (const fd of FD_CACHE.values()) {
174
224
  try {
175
225
  fs.closeSync(fd);
@@ -181,6 +231,7 @@ function closeAllFiles() {
181
231
  FD_CACHE.clear();
182
232
  }
183
233
  function traceFilePath(cfg, kind, ext = 'log') {
234
+ warnIfRunIdMissing();
184
235
  const { runId, runDate } = (0, config_1.getRun)();
185
236
  const w = (0, config_1.workerLabel)();
186
237
  return path.join(cfg.logDir, runDate, kind, `${kind}-${runId}-${w}.${ext}`);
package/dist/sinks.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sinks.js","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8JA,sCAUC;AAED,sCAIC;AAyED,kCAUC;AAQD,kCAEC;AA3QD,4CAA8B;AAC9B,gDAAkC;AAClC,iCAAmC;AACnC,qCAA+F;AAC/F,mCAAiF;AA6BjF,MAAM,WAAW,GAAG,yBAAgB,CAAC;AAC9B,MAAM,UAAU,GAAG,CAAC,CAAS,EAAY,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;AAA3D,QAAA,UAAU,cAAiD;AAExE,MAAM,IAAI,GAAG,CAAC,EAAY,EAAE,GAAc,EAAE,IAAY,EAAU,EAAE,CAClE,EAAE,CAAC,EAAE,GAAG,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,KAAK,GAAG,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC;AAEpE,+EAA+E;AAE/E,SAAS,aAAa,CAAC,EAAY;IACjC,IAAI,EAAE,CAAC,KAAK,KAAK,OAAO,IAAI,EAAE,CAAC,MAAM,KAAK,OAAO;QAAE,OAAO,OAAO,CAAC;IAClE,IAAI,EAAE,CAAC,KAAK,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC;IAC1C,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,YAAY,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAElG,QAAA,WAAW,GAAS;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;IACtE,KAAK,CAAC,EAAE,EAAE,GAAG;QACX,MAAM,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,MAAM,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QACrC,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YACxB,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;YAC9B,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,EAAE,CAAC;YAC3C,IAAI,IAAY,CAAC;YACjB,IAAI,GAAG,CAAC,IAAI,EAAE,CAAC;gBACb,iGAAiG;gBACjG,MAAM,IAAI,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,CAAC,GAAG,mBAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,yFAAyF;gBACzF,IAAI;oBACF,KAAK,IAAI,GAAG,CAAC,WAAW;wBACtB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,iBAAS,GAAG,UAAU,GAAG,mBAAW;wBACtD,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;iBAAM,CAAC;gBACN,IAAI,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAC7C,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACf,IAAI,GAAG,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC9B,MAAM,KAAK,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;gBACjC,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE;oBAAE,GAAG,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;IAC9C,CAAC;CACF,CAAC;AAKF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE3C,SAAS,KAAK,CAAC,IAAY;IACzB,IAAI,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACrB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QAC5B,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACzB,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,oFAAoF;AACpF,SAAS,UAAU,CAAC,IAAY,EAAE,IAAY;IAC5C,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AAED,sFAAsF;AACtF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAAc,EAAE,IAAwB;IACzD,MAAM,GAAG,GAAG,GAAG,CAAC,WAAW,CAAC;IAC5B,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,CAAC;QAAE,OAAO;IACpC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;IAClD,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAAE,OAAO;IAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChB,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,IAAA,eAAM,GAAE,CAAC;QAC3B,MAAM,GAAG,GAAG,IAAI,MAAM,CAAC,IAAI,IAAI,oBAAoB,CAAC,CAAC;QACrD,MAAM,KAAK,GAA6D,EAAE,CAAC;QAC3E,KAAK,MAAM,GAAG,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACtE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;gBAAE,SAAS;YACjC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAClD,IAAI,KAAe,CAAC;YACpB,IAAI,CAAC;gBACH,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;YAC9B,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;oBAAE,SAAS;gBAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;gBAClC,IAAI,CAAC;oBACH,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBACxF,CAAC;gBAAC,MAAM,CAAC;oBACP,+BAA+B;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAChG,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACnC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjC,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBACxD,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAC9B,IAAI,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;oBAAE,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAC1D,CAAC;YAAC,MAAM,CAAC;gBACP,6BAA6B;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,wCAAwC;IAC1C,CAAC;AACH,CAAC;AAED,SAAgB,aAAa;IAC3B,MAAM,CAAC,KAAK,EAAE,CAAC;IACf,KAAK,MAAM,EAAE,IAAI,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;IACH,CAAC;IACD,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC;AAED,SAAgB,aAAa,CAAC,GAAc,EAAE,IAAwB,EAAE,GAAG,GAAG,KAAK;IACjF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAA,eAAM,GAAE,CAAC;IACpC,MAAM,CAAC,GAAG,IAAA,oBAAW,GAAE,CAAC;IACxB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,IAAI,IAAI,KAAK,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,QAAQ,CAAC,IAAc,EAAE,OAAoC,EAAE,QAAiB,EAAE,MAAkD;IAC3I,OAAO;QACL,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtF,KAAK,CAAC,EAAE,EAAE,GAAG;YACX,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC9B,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAC/B,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,MAAM,KAAK,CAAC;YACjC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,MAAM,GAAG,IAAA,gBAAS,EAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;YACrG,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACvB,CAAC;KACF,CAAC;AACJ,CAAC;AAEY,QAAA,gBAAgB,GAAG,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CACvG,IAAA,kBAAU,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CACpD,CAAC;AAEW,QAAA,cAAc,GAAG,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAClG,IAAA,kBAAU,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;IAClC,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CACH,CAAC;AAEW,QAAA,aAAa,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,CAC/F,IAAA,kBAAU,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;IAC/B,MAAM,CAAC,GAAG,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAC3B,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,cAAc,GAAG,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACvE,CAAC,CAAC,CACH,CAAC;AAEF,8EAA8E;AAEjE,QAAA,SAAS,GAAS;IAC7B,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK;IACzC,KAAK,CAAC,EAAE,EAAE,GAAG;QACX,MAAM,GAAG,GAAG;YACV,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE;YAC3B,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,KAAK,EAAE,EAAE,CAAC,KAAK;YACf,OAAO,EAAE,IAAA,gBAAS,EAAC,EAAE,CAAC,OAAO,CAAC;YAC9B,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,SAAS;YAC9B,KAAK,EAAE,EAAE,CAAC,KAAK,IAAI,SAAS;YAC5B,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,OAAO,EAAE,IAAA,qBAAY,EAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;SAC3C,CAAC;QACF,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC;QAC7E,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC1B,CAAC;CACF,CAAC;AAUF,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAY,CAAC;AAExB,QAAA,WAAW,GAAS;IAC/B,OAAO,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,IAAI,IAAA,qBAAY,EAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC;IAC5E,KAAK,CAAC,EAAE,EAAE,GAAG;QACX,MAAM,KAAK,GAAG,IAAA,kBAAU,EAAC,EAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,gBAAS,EAAC,IAAI,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7E,KAAK,MAAM,GAAG,IAAI,QAAQ;YAAE,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;IACjD,CAAC;CACF,CAAC;AAEF,SAAgB,WAAW;IACzB,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO;QACL,IAAI,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1B,IAAI,EAAE,GAAG,EAAE;YACT,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACrB,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,+EAA+E;AAE/E,MAAM,MAAM,GAAG,IAAI,GAAG,EAAQ,CAAC;AACxB,MAAM,OAAO,GAAG,CAAC,CAAO,EAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAAhD,QAAA,OAAO,WAAyC;AACtD,MAAM,UAAU,GAAG,CAAC,CAAO,EAAQ,EAAE,CAAC,KAAK,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAAtD,QAAA,UAAU,cAA4C;AAEnE,SAAgB,WAAW;IACzB,OAAO,CAAC,mBAAW,EAAE,wBAAgB,EAAE,sBAAc,EAAE,qBAAa,EAAE,iBAAS,EAAE,mBAAW,EAAE,GAAG,MAAM,CAAC,CAAC;AAC3G,CAAC"}
1
+ {"version":3,"file":"sinks.js","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aryan-vashishth/advanced-logger",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "Self-contained logger for Playwright/TypeScript. Port of VOID core.logging.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -23,7 +23,8 @@
23
23
  },
24
24
  "files": [
25
25
  "dist",
26
- "ARCHITECTURE.md"
26
+ "ARCHITECTURE.md",
27
+ "CHANGELOG.md"
27
28
  ],
28
29
  "scripts": {
29
30
  "build": "tsc -p tsconfig.build.json",