@aryan-vashishth/advanced-logger 0.1.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/dist/sinks.js ADDED
@@ -0,0 +1,190 @@
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.removeSink = exports.addSink = exports.captureSink = exports.jsonlSink = exports.fullTraceSink = exports.debugTraceSink = exports.partialTraceSink = exports.consoleSink = exports.splitLines = void 0;
37
+ exports.closeAllFiles = closeAllFiles;
38
+ exports.traceFilePath = traceFilePath;
39
+ exports.captureLogs = captureLogs;
40
+ exports.activeSinks = activeSinks;
41
+ const fs = __importStar(require("node:fs"));
42
+ const path = __importStar(require("node:path"));
43
+ const ansi_1 = require("./ansi");
44
+ const config_1 = require("./config");
45
+ const theme_1 = require("./theme");
46
+ const SPLIT_LINES = config_1.LINE_BREAKS_NO_G;
47
+ const splitLines = (m) => m.split(SPLIT_LINES);
48
+ exports.splitLines = splitLines;
49
+ const body = (ev, cfg, line) => ev.ts + cfg.segmentDivider + ev.label + cfg.segmentDivider + line;
50
+ // -- Console -----------------------------------------------------------------
51
+ function githubCommand(ev) {
52
+ if (ev.level === 'ERROR' || ev.intent === 'ALERT')
53
+ return 'error';
54
+ if (ev.level === 'WARN')
55
+ return 'warning';
56
+ return null;
57
+ }
58
+ const escapeGithub = (t) => t.replace(/%/g, '%25').replace(/\r/g, '%0D').replace(/\n/g, '%0A');
59
+ exports.consoleSink = {
60
+ accepts: (level, cfg) => cfg.console && (0, config_1.levelEnabled)(cfg.level, level),
61
+ write(ev, cfg) {
62
+ const div = cfg.segmentDivider;
63
+ const showCaller = (0, config_1.levelEnabled)(cfg.level, 'DEBUG');
64
+ const callerText = showCaller ? ev.caller : '';
65
+ const lines = (0, exports.splitLines)(ev.message);
66
+ const out = [];
67
+ lines.forEach((line, i) => {
68
+ const b = body(ev, cfg, line);
69
+ const first = i === 0 && callerText !== '';
70
+ let text;
71
+ if (cfg.ansi) {
72
+ text =
73
+ first && cfg.callerColor
74
+ ? ev.color + b + theme_1.THEME_RESET + div + theme_1.CALLER_FG + callerText + theme_1.THEME_RESET
75
+ : ev.color + b + (first ? div + callerText : '') + theme_1.THEME_RESET;
76
+ }
77
+ else {
78
+ text = b + (first ? div + callerText : '');
79
+ }
80
+ out.push(text);
81
+ if (cfg.githubAnnotations) {
82
+ const cmd = githubCommand(ev);
83
+ const plain = ev.ts + div + line;
84
+ if (cmd && plain.trim() !== '')
85
+ out.push(`::${cmd}::${escapeGithub(plain)}`);
86
+ }
87
+ });
88
+ process.stdout.write(out.join('\n') + '\n');
89
+ },
90
+ };
91
+ const FD_CACHE = new Map();
92
+ function fdFor(file) {
93
+ let fd = FD_CACHE.get(file);
94
+ if (fd === undefined) {
95
+ fs.mkdirSync(path.dirname(file), { recursive: true });
96
+ fd = fs.openSync(file, 'a');
97
+ FD_CACHE.set(file, fd);
98
+ }
99
+ return fd;
100
+ }
101
+ /** Synchronous append: nothing is buffered, so a crashing worker loses no lines. */
102
+ function appendSync(file, text) {
103
+ fs.writeSync(fdFor(file), text);
104
+ }
105
+ function closeAllFiles() {
106
+ for (const fd of FD_CACHE.values()) {
107
+ try {
108
+ fs.closeSync(fd);
109
+ }
110
+ catch {
111
+ /* already closed */
112
+ }
113
+ }
114
+ FD_CACHE.clear();
115
+ }
116
+ function traceFilePath(cfg, kind, ext = 'log') {
117
+ const { runId, runDate } = (0, config_1.getRun)();
118
+ const w = (0, config_1.workerLabel)();
119
+ return path.join(cfg.logDir, runDate, kind, `${kind}-${runId}-${w}.${ext}`);
120
+ }
121
+ function fileSink(kind, enabled, rootOnly, render) {
122
+ return {
123
+ accepts: (level, cfg) => enabled(cfg) && (!rootOnly || (0, config_1.levelEnabled)(cfg.level, level)),
124
+ write(ev, cfg) {
125
+ const lines = render(ev, cfg);
126
+ if (lines.length === 0)
127
+ return;
128
+ const prefix = `${ev.worker} │ `;
129
+ appendSync(traceFilePath(cfg, kind), lines.map((l) => `${prefix}${(0, ansi_1.stripAnsi)(l)}`).join('\n') + '\n');
130
+ },
131
+ };
132
+ }
133
+ exports.partialTraceSink = fileSink('partial-trace', (c) => c.files.partialTrace, true, (ev, cfg) => (0, exports.splitLines)(ev.message).map((l) => body(ev, cfg, l)));
134
+ exports.debugTraceSink = fileSink('debug-trace', (c) => c.files.debugTrace, false, (ev, cfg) => (0, exports.splitLines)(ev.message).map((l, i) => {
135
+ const b = body(ev, cfg, l);
136
+ return i === 0 && ev.caller ? b + cfg.segmentDivider + ev.caller : b;
137
+ }));
138
+ exports.fullTraceSink = fileSink('full-trace', (c) => c.files.fullTrace, false, (ev, cfg) => (0, exports.splitLines)(ev.message).map((l) => {
139
+ const b = body(ev, cfg, l);
140
+ return ev.chain ? b + cfg.segmentDivider + '[CHAIN] ' + ev.chain : b;
141
+ }));
142
+ // -- Structured JSONL (opt-in) ----------------------------------------------
143
+ exports.jsonlSink = {
144
+ accepts: (_level, cfg) => cfg.files.jsonl,
145
+ write(ev, cfg) {
146
+ const rec = {
147
+ time: ev.time.toISOString(),
148
+ level: ev.level,
149
+ intent: ev.intent,
150
+ label: ev.label,
151
+ message: (0, ansi_1.stripAnsi)(ev.message),
152
+ caller: ev.caller || undefined,
153
+ chain: ev.chain || undefined,
154
+ worker: ev.worker,
155
+ test: ev.test,
156
+ visible: (0, config_1.levelEnabled)(cfg.level, ev.level),
157
+ };
158
+ appendSync(traceFilePath(cfg, 'jsonl', 'jsonl'), JSON.stringify(rec) + '\n');
159
+ },
160
+ };
161
+ const CAPTURES = new Set();
162
+ exports.captureSink = {
163
+ accepts: (level, cfg) => CAPTURES.size > 0 && (0, config_1.levelEnabled)(cfg.level, level),
164
+ write(ev, cfg) {
165
+ const lines = (0, exports.splitLines)(ev.message).map((l) => (0, ansi_1.stripAnsi)(body(ev, cfg, l)));
166
+ for (const buf of CAPTURES)
167
+ buf.push(...lines);
168
+ },
169
+ };
170
+ function captureLogs() {
171
+ const buf = [];
172
+ CAPTURES.add(buf);
173
+ return {
174
+ text: () => buf.join('\n'),
175
+ stop: () => {
176
+ CAPTURES.delete(buf);
177
+ return buf.join('\n');
178
+ },
179
+ };
180
+ }
181
+ // -- Registry ----------------------------------------------------------------
182
+ const CUSTOM = new Set();
183
+ const addSink = (s) => void CUSTOM.add(s);
184
+ exports.addSink = addSink;
185
+ const removeSink = (s) => void CUSTOM.delete(s);
186
+ exports.removeSink = removeSink;
187
+ function activeSinks() {
188
+ return [exports.consoleSink, exports.partialTraceSink, exports.debugTraceSink, exports.fullTraceSink, exports.jsonlSink, exports.captureSink, ...CUSTOM];
189
+ }
190
+ //# sourceMappingURL=sinks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sinks.js","sourceRoot":"","sources":["../src/sinks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /** Classifies what a line communicates, independent of level. Port of LogIntent. */
2
+ export declare const LogIntent: {
3
+ readonly BASE: "BASE";
4
+ readonly INTERACTION: "INTERACTION";
5
+ readonly NAVIGATION: "NAVIGATION";
6
+ readonly OBSERVE: "OBSERVE";
7
+ readonly VERIFY: "VERIFY";
8
+ readonly DATA: "DATA";
9
+ readonly SUCCESS: "SUCCESS";
10
+ readonly ALERT: "ALERT";
11
+ };
12
+ export type LogIntent = (typeof LogIntent)[keyof typeof LogIntent];
13
+ export type LevelName = 'DEBUG' | 'INFO' | 'WARN' | 'ERROR';
14
+ export declare const CALLER_FG: string;
15
+ export declare const THEME_RESET: string;
16
+ /** intentFg + levelBg. */
17
+ export declare function resolveStyle(level: LevelName, intent: LogIntent): string;
18
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":"AAUA,oFAAoF;AACpF,eAAO,MAAM,SAAS;;;;;;;;;CASZ,CAAC;AACX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AA0B5D,eAAO,MAAM,SAAS,QAAkB,CAAC;AACzC,eAAO,MAAM,WAAW,QAAQ,CAAC;AAEjC,0BAA0B;AAC1B,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,CAGxE"}
package/dist/theme.js ADDED
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.THEME_RESET = exports.CALLER_FG = exports.LogIntent = void 0;
4
+ exports.resolveStyle = resolveStyle;
5
+ const ansi_1 = require("./ansi");
6
+ /** Classifies what a line communicates, independent of level. Port of LogIntent. */
7
+ exports.LogIntent = {
8
+ BASE: 'BASE',
9
+ INTERACTION: 'INTERACTION',
10
+ NAVIGATION: 'NAVIGATION',
11
+ OBSERVE: 'OBSERVE',
12
+ VERIFY: 'VERIFY',
13
+ DATA: 'DATA',
14
+ SUCCESS: 'SUCCESS',
15
+ ALERT: 'ALERT',
16
+ };
17
+ /**
18
+ * The single built-in theme (HIGH_CONTRAST from the Java logger).
19
+ * Level supplies the background, intent supplies the foreground; the theme is
20
+ * "on" when ANSI is enabled and "off" otherwise.
21
+ */
22
+ const BG = ansi_1.BG_BLACK;
23
+ const LEVEL_FG = {
24
+ INFO: ansi_1.FG_BRIGHT_WHITE + ansi_1.BOLD,
25
+ WARN: ansi_1.RGB_FG.DEEP_AMBER + ansi_1.BOLD,
26
+ ERROR: ansi_1.RGB_FG.DEEP_RED + ansi_1.BOLD,
27
+ DEBUG: ansi_1.FG_BRIGHT_BLACK + ansi_1.BOLD,
28
+ };
29
+ const INTENT_FG = {
30
+ INTERACTION: ansi_1.FG_BRIGHT_WHITE + ansi_1.BOLD,
31
+ NAVIGATION: ansi_1.RGB_FG.DEEP_CYAN + ansi_1.BOLD,
32
+ OBSERVE: ansi_1.FG_BRIGHT_MAGENTA + ansi_1.BOLD,
33
+ VERIFY: ansi_1.RGB_FG.DEEP_AMBER + ansi_1.BOLD,
34
+ DATA: ansi_1.RGB_FG.DEEP_VIOLET + ansi_1.BOLD,
35
+ SUCCESS: ansi_1.RGB_FG.DEEP_GREEN + ansi_1.BOLD,
36
+ ALERT: ansi_1.RGB_FG.DEEP_RED + ansi_1.BOLD,
37
+ };
38
+ exports.CALLER_FG = ansi_1.FG_BRIGHT_BLACK;
39
+ exports.THEME_RESET = ansi_1.RESET;
40
+ /** intentFg + levelBg. */
41
+ function resolveStyle(level, intent) {
42
+ const fg = intent === 'BASE' ? LEVEL_FG[level] : INTENT_FG[intent];
43
+ return fg + BG;
44
+ }
45
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../src/theme.ts"],"names":[],"mappings":";;;AAqDA,oCAGC;AAxDD,iCAQgB;AAEhB,oFAAoF;AACvE,QAAA,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,aAAa;IAC1B,UAAU,EAAE,YAAY;IACxB,OAAO,EAAE,SAAS;IAClB,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,SAAS;IAClB,KAAK,EAAE,OAAO;CACN,CAAC;AAKX;;;;GAIG;AACH,MAAM,EAAE,GAAG,eAAQ,CAAC;AAEpB,MAAM,QAAQ,GAA8B;IAC1C,IAAI,EAAE,sBAAe,GAAG,WAAI;IAC5B,IAAI,EAAE,aAAM,CAAC,UAAU,GAAG,WAAI;IAC9B,KAAK,EAAE,aAAM,CAAC,QAAQ,GAAG,WAAI;IAC7B,KAAK,EAAE,sBAAe,GAAG,WAAI;CAC9B,CAAC;AAEF,MAAM,SAAS,GAA+C;IAC5D,WAAW,EAAE,sBAAe,GAAG,WAAI;IACnC,UAAU,EAAE,aAAM,CAAC,SAAS,GAAG,WAAI;IACnC,OAAO,EAAE,wBAAiB,GAAG,WAAI;IACjC,MAAM,EAAE,aAAM,CAAC,UAAU,GAAG,WAAI;IAChC,IAAI,EAAE,aAAM,CAAC,WAAW,GAAG,WAAI;IAC/B,OAAO,EAAE,aAAM,CAAC,UAAU,GAAG,WAAI;IACjC,KAAK,EAAE,aAAM,CAAC,QAAQ,GAAG,WAAI;CAC9B,CAAC;AAEW,QAAA,SAAS,GAAG,sBAAe,CAAC;AAC5B,QAAA,WAAW,GAAG,YAAK,CAAC;AAEjC,0BAA0B;AAC1B,SAAgB,YAAY,CAAC,KAAgB,EAAE,MAAiB;IAC9D,MAAM,EAAE,GAAG,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACnE,OAAO,EAAE,GAAG,EAAE,CAAC;AACjB,CAAC"}
package/package.json ADDED
@@ -0,0 +1,49 @@
1
+ {
2
+ "name": "@aryan-vashishth/advanced-logger",
3
+ "version": "0.1.0",
4
+ "description": "Self-contained logger for Playwright/TypeScript. Port of VOID core.logging.",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/Aryan-Vashishth/advanced-logger.git"
8
+ },
9
+ "publishConfig": {
10
+ "access": "public"
11
+ },
12
+ "main": "./dist/index.js",
13
+ "types": "./dist/index.d.ts",
14
+ "exports": {
15
+ ".": {
16
+ "types": "./dist/index.d.ts",
17
+ "default": "./dist/index.js"
18
+ },
19
+ "./playwright": {
20
+ "types": "./dist/playwright.d.ts",
21
+ "default": "./dist/playwright.js"
22
+ }
23
+ },
24
+ "files": [
25
+ "dist"
26
+ ],
27
+ "scripts": {
28
+ "build": "tsc -p tsconfig.build.json",
29
+ "prepare": "npm run build",
30
+ "typecheck": "tsc --noEmit",
31
+ "test:unit": "vitest run",
32
+ "test:e2e": "playwright test --config=test/playwright.config.ts",
33
+ "test": "npm run test:unit && npm run test:e2e"
34
+ },
35
+ "peerDependencies": {
36
+ "@playwright/test": ">=1.40.0"
37
+ },
38
+ "peerDependenciesMeta": {
39
+ "@playwright/test": {
40
+ "optional": true
41
+ }
42
+ },
43
+ "devDependencies": {
44
+ "@playwright/test": "^1.49.0",
45
+ "@types/node": "^22.0.0",
46
+ "typescript": "^5.6.0",
47
+ "vitest": "^2.1.0"
48
+ }
49
+ }