hazo_logs 1.0.10 → 1.0.12
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/README.md +31 -1
- package/dist/client/index.d.ts +2 -16
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -45
- package/dist/client/index.js.map +1 -1
- package/dist/lib/config_loader.d.ts.map +1 -1
- package/dist/lib/config_loader.js +6 -4
- package/dist/lib/config_loader.js.map +1 -1
- package/dist/lib/console-logger.d.ts +26 -0
- package/dist/lib/console-logger.d.ts.map +1 -0
- package/dist/lib/console-logger.js +59 -0
- package/dist/lib/console-logger.js.map +1 -0
- package/dist/lib/log-reader.d.ts.map +1 -1
- package/dist/lib/log-reader.js +16 -51
- package/dist/lib/log-reader.js.map +1 -1
- package/dist/lib/universal-logger.d.ts +2 -16
- package/dist/lib/universal-logger.d.ts.map +1 -1
- package/dist/lib/universal-logger.js +1 -45
- package/dist/lib/universal-logger.js.map +1 -1
- package/dist/ui/client-logger.d.ts +2 -0
- package/dist/ui/client-logger.d.ts.map +1 -1
- package/dist/ui/client-logger.js +4 -1
- package/dist/ui/client-logger.js.map +1 -1
- package/package.json +22 -19
package/README.md
CHANGED
|
@@ -26,7 +26,7 @@ npm install hazo_logs
|
|
|
26
26
|
For the UI components, also install peer dependencies:
|
|
27
27
|
|
|
28
28
|
```bash
|
|
29
|
-
npm install hazo_logs next react hazo_ui
|
|
29
|
+
npm install hazo_logs next react react-dom hazo_ui
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
### Basic Usage (Logging Only)
|
|
@@ -290,6 +290,36 @@ function AdminPanel() {
|
|
|
290
290
|
}
|
|
291
291
|
```
|
|
292
292
|
|
|
293
|
+
### hazo_debug Integration
|
|
294
|
+
|
|
295
|
+
Pipe all log entries to [hazo_debug](https://github.com/pub12/hazo_debug)'s Debug tab using the `on_log` callback:
|
|
296
|
+
|
|
297
|
+
```typescript
|
|
298
|
+
'use client';
|
|
299
|
+
import { createClientLogger } from 'hazo_logs/ui';
|
|
300
|
+
import { use_debug_log } from 'hazo_debug/client';
|
|
301
|
+
|
|
302
|
+
// In a React component:
|
|
303
|
+
const { log_debug } = use_debug_log('MyApp');
|
|
304
|
+
const logger = createClientLogger({
|
|
305
|
+
packageName: 'hazo_files',
|
|
306
|
+
on_log: log_debug, // Pipes all logs to hazo_debug's Debug tab
|
|
307
|
+
});
|
|
308
|
+
|
|
309
|
+
logger.info('Upload started', { file: 'report.pdf' });
|
|
310
|
+
// → Appears in both server logs AND hazo_debug's Debug tab
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
The `on_log` callback also works with the basic `ConsoleLogger`:
|
|
314
|
+
|
|
315
|
+
```typescript
|
|
316
|
+
import { ConsoleLogger } from 'hazo_logs';
|
|
317
|
+
|
|
318
|
+
const logger = new ConsoleLogger('my-package', 'debug', log_debug);
|
|
319
|
+
```
|
|
320
|
+
|
|
321
|
+
Child loggers inherit `on_log` from their parent unless overridden.
|
|
322
|
+
|
|
293
323
|
### Custom Authentication
|
|
294
324
|
|
|
295
325
|
Protect your log viewer with authentication:
|
package/dist/client/index.d.ts
CHANGED
|
@@ -6,22 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Used automatically when bundlers resolve 'hazo_logs' for browser targets.
|
|
8
8
|
*/
|
|
9
|
-
import type { Logger
|
|
10
|
-
|
|
11
|
-
* Console-based logger for client-side use
|
|
12
|
-
* Provides basic logging that outputs to browser console
|
|
13
|
-
*/
|
|
14
|
-
export declare class ConsoleLogger implements Logger {
|
|
15
|
-
private packageName;
|
|
16
|
-
private minLevel;
|
|
17
|
-
constructor(packageName: string, minLevel?: LogLevel);
|
|
18
|
-
private shouldLog;
|
|
19
|
-
private formatMessage;
|
|
20
|
-
error(message: string, data?: LogData): void;
|
|
21
|
-
warn(message: string, data?: LogData): void;
|
|
22
|
-
info(message: string, data?: LogData): void;
|
|
23
|
-
debug(message: string, data?: LogData): void;
|
|
24
|
-
}
|
|
9
|
+
import type { Logger } from '../lib/types.js';
|
|
10
|
+
export { ConsoleLogger } from '../lib/console-logger.js';
|
|
25
11
|
/**
|
|
26
12
|
* Create a client-side logger that outputs to browser console
|
|
27
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE5E;AAED;;GAEG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAEzD;AAGD,YAAY,EACV,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,iBAAiB,CAAC"}
|
package/dist/client/index.js
CHANGED
|
@@ -6,51 +6,8 @@
|
|
|
6
6
|
*
|
|
7
7
|
* Used automatically when bundlers resolve 'hazo_logs' for browser targets.
|
|
8
8
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
warn: 1,
|
|
12
|
-
info: 2,
|
|
13
|
-
debug: 3,
|
|
14
|
-
};
|
|
15
|
-
/**
|
|
16
|
-
* Console-based logger for client-side use
|
|
17
|
-
* Provides basic logging that outputs to browser console
|
|
18
|
-
*/
|
|
19
|
-
export class ConsoleLogger {
|
|
20
|
-
packageName;
|
|
21
|
-
minLevel;
|
|
22
|
-
constructor(packageName, minLevel = 'debug') {
|
|
23
|
-
this.packageName = packageName;
|
|
24
|
-
this.minLevel = minLevel;
|
|
25
|
-
}
|
|
26
|
-
shouldLog(level) {
|
|
27
|
-
return LOG_LEVEL_PRIORITY[level] <= LOG_LEVEL_PRIORITY[this.minLevel];
|
|
28
|
-
}
|
|
29
|
-
formatMessage(level, message) {
|
|
30
|
-
const timestamp = new Date().toISOString();
|
|
31
|
-
return `[${timestamp}] [${level.toUpperCase()}] [${this.packageName}] ${message}`;
|
|
32
|
-
}
|
|
33
|
-
error(message, data) {
|
|
34
|
-
if (this.shouldLog('error')) {
|
|
35
|
-
console.error(this.formatMessage('error', message), data ?? '');
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
warn(message, data) {
|
|
39
|
-
if (this.shouldLog('warn')) {
|
|
40
|
-
console.warn(this.formatMessage('warn', message), data ?? '');
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
info(message, data) {
|
|
44
|
-
if (this.shouldLog('info')) {
|
|
45
|
-
console.info(this.formatMessage('info', message), data ?? '');
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
debug(message, data) {
|
|
49
|
-
if (this.shouldLog('debug')) {
|
|
50
|
-
console.debug(this.formatMessage('debug', message), data ?? '');
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
9
|
+
import { ConsoleLogger } from '../lib/console-logger.js';
|
|
10
|
+
export { ConsoleLogger } from '../lib/console-logger.js';
|
|
54
11
|
/**
|
|
55
12
|
* Create a client-side logger that outputs to browser console
|
|
56
13
|
*
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,YAAY,CAAC,WAAmB;IAC9C,OAAO,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,WAAmB;IACzD,OAAO,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,kBAAkB;AACpB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_loader.d.ts","sourceRoot":"","sources":["../../src/lib/config_loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config_loader.d.ts","sourceRoot":"","sources":["../../src/lib/config_loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,YAAY,CAAC;AAQ1D;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAmC7D"}
|
|
@@ -7,6 +7,8 @@ import path from 'path';
|
|
|
7
7
|
import ini from 'ini';
|
|
8
8
|
import { DEFAULT_CONFIG } from './utils/constants.js';
|
|
9
9
|
const CONFIG_FILENAME = 'config/hazo_logs_config.ini';
|
|
10
|
+
// Track whether the missing config warning has been shown
|
|
11
|
+
let _config_warning_shown = false;
|
|
10
12
|
/**
|
|
11
13
|
* Load configuration from INI file
|
|
12
14
|
* @param configPath - Optional explicit path to config file
|
|
@@ -15,10 +17,10 @@ const CONFIG_FILENAME = 'config/hazo_logs_config.ini';
|
|
|
15
17
|
export function loadConfig(configPath) {
|
|
16
18
|
const resolvedPath = configPath || findConfigFile();
|
|
17
19
|
if (!resolvedPath || !fs.existsSync(resolvedPath)) {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
`
|
|
21
|
-
|
|
20
|
+
if (!_config_warning_shown) {
|
|
21
|
+
_config_warning_shown = true;
|
|
22
|
+
console.warn(`[HazoLog] No config found, using defaults. Create ${CONFIG_FILENAME} to customize.`);
|
|
23
|
+
}
|
|
22
24
|
return { ...DEFAULT_CONFIG };
|
|
23
25
|
}
|
|
24
26
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config_loader.js","sourceRoot":"","sources":["../../src/lib/config_loader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,eAAe,GAAG,6BAA6B,CAAC;AAEtD;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,UAAmB;IAC5C,MAAM,YAAY,GAAG,UAAU,IAAI,cAAc,EAAE,CAAC;IAEpD,IAAI,CAAC,YAAY,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;QAClD,
|
|
1
|
+
{"version":3,"file":"config_loader.js","sourceRoot":"","sources":["../../src/lib/config_loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console-based logger for client-side use
|
|
3
|
+
* Shared between universal-logger and client entry point.
|
|
4
|
+
*
|
|
5
|
+
* This module imports ONLY from types.ts (pure type definitions)
|
|
6
|
+
* so it is safe for both server and client environments.
|
|
7
|
+
*/
|
|
8
|
+
import type { Logger, LogData, LogLevel } from './types.js';
|
|
9
|
+
export declare const LOG_LEVEL_PRIORITY: Record<LogLevel, number>;
|
|
10
|
+
/**
|
|
11
|
+
* Console-based logger for client-side use
|
|
12
|
+
* Provides basic logging that outputs to browser console
|
|
13
|
+
*/
|
|
14
|
+
export declare class ConsoleLogger implements Logger {
|
|
15
|
+
private packageName;
|
|
16
|
+
private minLevel;
|
|
17
|
+
private on_log?;
|
|
18
|
+
constructor(packageName: string, minLevel?: LogLevel, on_log?: (level: string, message: string, data?: Record<string, unknown>) => void);
|
|
19
|
+
private shouldLog;
|
|
20
|
+
private formatMessage;
|
|
21
|
+
error(message: string, data?: LogData): void;
|
|
22
|
+
warn(message: string, data?: LogData): void;
|
|
23
|
+
info(message: string, data?: LogData): void;
|
|
24
|
+
debug(message: string, data?: LogData): void;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=console-logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-logger.d.ts","sourceRoot":"","sources":["../../src/lib/console-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE5D,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAKvD,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAc,YAAW,MAAM;IAC1C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAC,CAA2E;gBAE9E,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,QAAkB,EAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI;IAMhJ,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,aAAa;IAKrB,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAO5C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAO3C,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;IAO3C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI;CAM7C"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console-based logger for client-side use
|
|
3
|
+
* Shared between universal-logger and client entry point.
|
|
4
|
+
*
|
|
5
|
+
* This module imports ONLY from types.ts (pure type definitions)
|
|
6
|
+
* so it is safe for both server and client environments.
|
|
7
|
+
*/
|
|
8
|
+
export const LOG_LEVEL_PRIORITY = {
|
|
9
|
+
error: 0,
|
|
10
|
+
warn: 1,
|
|
11
|
+
info: 2,
|
|
12
|
+
debug: 3,
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* Console-based logger for client-side use
|
|
16
|
+
* Provides basic logging that outputs to browser console
|
|
17
|
+
*/
|
|
18
|
+
export class ConsoleLogger {
|
|
19
|
+
packageName;
|
|
20
|
+
minLevel;
|
|
21
|
+
on_log;
|
|
22
|
+
constructor(packageName, minLevel = 'debug', on_log) {
|
|
23
|
+
this.packageName = packageName;
|
|
24
|
+
this.minLevel = minLevel;
|
|
25
|
+
this.on_log = on_log;
|
|
26
|
+
}
|
|
27
|
+
shouldLog(level) {
|
|
28
|
+
return LOG_LEVEL_PRIORITY[level] <= LOG_LEVEL_PRIORITY[this.minLevel];
|
|
29
|
+
}
|
|
30
|
+
formatMessage(level, message) {
|
|
31
|
+
const timestamp = new Date().toISOString();
|
|
32
|
+
return `[${timestamp}] [${level.toUpperCase()}] [${this.packageName}] ${message}`;
|
|
33
|
+
}
|
|
34
|
+
error(message, data) {
|
|
35
|
+
if (this.shouldLog('error')) {
|
|
36
|
+
console.error(this.formatMessage('error', message), data ?? '');
|
|
37
|
+
this.on_log?.('error', message, data);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
warn(message, data) {
|
|
41
|
+
if (this.shouldLog('warn')) {
|
|
42
|
+
console.warn(this.formatMessage('warn', message), data ?? '');
|
|
43
|
+
this.on_log?.('warn', message, data);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
info(message, data) {
|
|
47
|
+
if (this.shouldLog('info')) {
|
|
48
|
+
console.info(this.formatMessage('info', message), data ?? '');
|
|
49
|
+
this.on_log?.('info', message, data);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
debug(message, data) {
|
|
53
|
+
if (this.shouldLog('debug')) {
|
|
54
|
+
console.debug(this.formatMessage('debug', message), data ?? '');
|
|
55
|
+
this.on_log?.('debug', message, data);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=console-logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"console-logger.js","sourceRoot":"","sources":["../../src/lib/console-logger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAA6B;IAC1D,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;GAGG;AACH,MAAM,OAAO,aAAa;IAChB,WAAW,CAAS;IACpB,QAAQ,CAAW;IACnB,MAAM,CAA4E;IAE1F,YAAY,WAAmB,EAAE,WAAqB,OAAO,EAAE,MAAiF;QAC9I,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAEO,aAAa,CAAC,KAAe,EAAE,OAAe;QACpD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC3C,OAAO,IAAI,SAAS,MAAM,KAAK,CAAC,WAAW,EAAE,MAAM,IAAI,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,IAAc;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAC9D,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAc;QACnC,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-reader.d.ts","sourceRoot":"","sources":["../../src/lib/log-reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACvF,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AASD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgDrF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBnF;
|
|
1
|
+
{"version":3,"file":"log-reader.d.ts","sourceRoot":"","sources":["../../src/lib/log-reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGrD,MAAM,WAAW,eAAe;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,CAAC;IACvF,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,QAAQ,EAAE,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AASD;;GAEG;AACH,wBAAsB,QAAQ,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CAgDrF;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAqBnF;AAgCD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,YAAY,CAAC,EAAE,MAAM,EACrB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAEnB"}
|
package/dist/lib/log-reader.js
CHANGED
|
@@ -77,9 +77,9 @@ export async function getAvailableLogDates(logDirectory) {
|
|
|
77
77
|
return dates.sort((a, b) => b.localeCompare(a));
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
* Get unique
|
|
80
|
+
* Get unique values for a given field from a day's log file
|
|
81
81
|
*/
|
|
82
|
-
|
|
82
|
+
async function getUniqueFieldValues(field, logDirectory, date) {
|
|
83
83
|
const config = loadConfig();
|
|
84
84
|
const logDir = logDirectory || config.log_directory;
|
|
85
85
|
const targetDate = date || getTodayDate();
|
|
@@ -88,73 +88,38 @@ export async function getUniquePackages(logDirectory, date) {
|
|
|
88
88
|
return [];
|
|
89
89
|
}
|
|
90
90
|
const logs = await parseLogFile(logFilePath);
|
|
91
|
-
const
|
|
91
|
+
const values = new Set();
|
|
92
92
|
for (const log of logs) {
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
const val = log[field];
|
|
94
|
+
if (typeof val === 'string') {
|
|
95
|
+
values.add(val);
|
|
95
96
|
}
|
|
96
97
|
}
|
|
97
|
-
return Array.from(
|
|
98
|
+
return Array.from(values).sort();
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get unique package names from logs
|
|
102
|
+
*/
|
|
103
|
+
export async function getUniquePackages(logDirectory, date) {
|
|
104
|
+
return getUniqueFieldValues('package', logDirectory, date);
|
|
98
105
|
}
|
|
99
106
|
/**
|
|
100
107
|
* Get unique execution IDs from logs
|
|
101
108
|
*/
|
|
102
109
|
export async function getUniqueExecutionIds(logDirectory, date) {
|
|
103
|
-
|
|
104
|
-
const logDir = logDirectory || config.log_directory;
|
|
105
|
-
const targetDate = date || getTodayDate();
|
|
106
|
-
const logFilePath = path.resolve(logDir, `hazo-${targetDate}.log`);
|
|
107
|
-
if (!fs.existsSync(logFilePath)) {
|
|
108
|
-
return [];
|
|
109
|
-
}
|
|
110
|
-
const logs = await parseLogFile(logFilePath);
|
|
111
|
-
const executionIds = new Set();
|
|
112
|
-
for (const log of logs) {
|
|
113
|
-
if (log.executionId) {
|
|
114
|
-
executionIds.add(log.executionId);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
return Array.from(executionIds).sort();
|
|
110
|
+
return getUniqueFieldValues('executionId', logDirectory, date);
|
|
118
111
|
}
|
|
119
112
|
/**
|
|
120
113
|
* Get unique session IDs from logs
|
|
121
114
|
*/
|
|
122
115
|
export async function getUniqueSessionIds(logDirectory, date) {
|
|
123
|
-
|
|
124
|
-
const logDir = logDirectory || config.log_directory;
|
|
125
|
-
const targetDate = date || getTodayDate();
|
|
126
|
-
const logFilePath = path.resolve(logDir, `hazo-${targetDate}.log`);
|
|
127
|
-
if (!fs.existsSync(logFilePath)) {
|
|
128
|
-
return [];
|
|
129
|
-
}
|
|
130
|
-
const logs = await parseLogFile(logFilePath);
|
|
131
|
-
const sessionIds = new Set();
|
|
132
|
-
for (const log of logs) {
|
|
133
|
-
if (log.sessionId) {
|
|
134
|
-
sessionIds.add(log.sessionId);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
return Array.from(sessionIds).sort();
|
|
116
|
+
return getUniqueFieldValues('sessionId', logDirectory, date);
|
|
138
117
|
}
|
|
139
118
|
/**
|
|
140
119
|
* Get unique references from logs
|
|
141
120
|
*/
|
|
142
121
|
export async function getUniqueReferences(logDirectory, date) {
|
|
143
|
-
|
|
144
|
-
const logDir = logDirectory || config.log_directory;
|
|
145
|
-
const targetDate = date || getTodayDate();
|
|
146
|
-
const logFilePath = path.resolve(logDir, `hazo-${targetDate}.log`);
|
|
147
|
-
if (!fs.existsSync(logFilePath)) {
|
|
148
|
-
return [];
|
|
149
|
-
}
|
|
150
|
-
const logs = await parseLogFile(logFilePath);
|
|
151
|
-
const references = new Set();
|
|
152
|
-
for (const log of logs) {
|
|
153
|
-
if (log.reference) {
|
|
154
|
-
references.add(log.reference);
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
return Array.from(references).sort();
|
|
122
|
+
return getUniqueFieldValues('reference', logDirectory, date);
|
|
158
123
|
}
|
|
159
124
|
/**
|
|
160
125
|
* Parse a log file line by line
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-reader.js","sourceRoot":"","sources":["../../src/lib/log-reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,QAAQ,MAAM,UAAU,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAyBhD,MAAM,WAAW,GAA6B;IAC5C,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,UAA2B,EAAE;IAC1D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,IAAI,MAAM,CAAC,aAAa,CAAC;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,oBAAoB,IAAI,EAAE,CAAC;IACvE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC;IAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,sBAAsB,IAAI,IAAI,CAAC;IAEzD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,IAAI,MAAM,CAAC,CAAC;IAE7D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,EAAE;YACR,KAAK,EAAE,CAAC;YACR,IAAI;YACJ,QAAQ;YACR,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,IAAI,GAAG,MAAM,YAAY,CAAC,WAAW,CAAC,CAAC;IAE3C,gBAAgB;IAChB,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAEnC,uBAAuB;IACvB,IAAI,IAAI,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;QAC7B,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC;IAE1B,gBAAgB;IAChB,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAE7D,mBAAmB;IACnB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC;IACzC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC,CAAC;IAEpE,OAAO;QACL,IAAI,EAAE,aAAa;QACnB,KAAK;QACL,IAAI;QACJ,QAAQ;QACR,UAAU;KACX,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,YAAqB;IAC9D,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,IAAI,MAAM,CAAC,aAAa,CAAC;IACpD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEzC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,uCAAuC;IACvC,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,
|
|
1
|
+
{"version":3,"file":"log-reader.js","sourceRoot":"","sources":["../../src/lib/log-reader.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,22 +7,8 @@
|
|
|
7
7
|
* For full server logging capabilities, import from 'hazo_logs/server'
|
|
8
8
|
* For client logging that posts to server API, use 'hazo_logs/ui' createClientLogger
|
|
9
9
|
*/
|
|
10
|
-
import type { Logger
|
|
11
|
-
|
|
12
|
-
* Console-based logger for client-side use
|
|
13
|
-
* Provides basic logging that outputs to browser console
|
|
14
|
-
*/
|
|
15
|
-
declare class ConsoleLogger implements Logger {
|
|
16
|
-
private packageName;
|
|
17
|
-
private minLevel;
|
|
18
|
-
constructor(packageName: string, minLevel?: LogLevel);
|
|
19
|
-
private shouldLog;
|
|
20
|
-
private formatMessage;
|
|
21
|
-
error(message: string, data?: LogData): void;
|
|
22
|
-
warn(message: string, data?: LogData): void;
|
|
23
|
-
info(message: string, data?: LogData): void;
|
|
24
|
-
debug(message: string, data?: LogData): void;
|
|
25
|
-
}
|
|
10
|
+
import type { Logger } from './types.js';
|
|
11
|
+
import { ConsoleLogger } from './console-logger.js';
|
|
26
12
|
/**
|
|
27
13
|
* Pre-load the server logger module (call this early in server startup)
|
|
28
14
|
* This allows createLogger to return a real server logger synchronously
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-logger.d.ts","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"universal-logger.d.ts","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAW,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA2DpD;;;GAGG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC,CAYzD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAgBxD;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAqB5E;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -7,57 +7,13 @@
|
|
|
7
7
|
* For full server logging capabilities, import from 'hazo_logs/server'
|
|
8
8
|
* For client logging that posts to server API, use 'hazo_logs/ui' createClientLogger
|
|
9
9
|
*/
|
|
10
|
-
|
|
11
|
-
error: 0,
|
|
12
|
-
warn: 1,
|
|
13
|
-
info: 2,
|
|
14
|
-
debug: 3,
|
|
15
|
-
};
|
|
10
|
+
import { ConsoleLogger } from './console-logger.js';
|
|
16
11
|
/**
|
|
17
12
|
* Check if we're running on the server
|
|
18
13
|
*/
|
|
19
14
|
function isServer() {
|
|
20
15
|
return typeof window === 'undefined';
|
|
21
16
|
}
|
|
22
|
-
/**
|
|
23
|
-
* Console-based logger for client-side use
|
|
24
|
-
* Provides basic logging that outputs to browser console
|
|
25
|
-
*/
|
|
26
|
-
class ConsoleLogger {
|
|
27
|
-
packageName;
|
|
28
|
-
minLevel;
|
|
29
|
-
constructor(packageName, minLevel = 'debug') {
|
|
30
|
-
this.packageName = packageName;
|
|
31
|
-
this.minLevel = minLevel;
|
|
32
|
-
}
|
|
33
|
-
shouldLog(level) {
|
|
34
|
-
return LOG_LEVEL_PRIORITY[level] <= LOG_LEVEL_PRIORITY[this.minLevel];
|
|
35
|
-
}
|
|
36
|
-
formatMessage(level, message) {
|
|
37
|
-
const timestamp = new Date().toISOString();
|
|
38
|
-
return `[${timestamp}] [${level.toUpperCase()}] [${this.packageName}] ${message}`;
|
|
39
|
-
}
|
|
40
|
-
error(message, data) {
|
|
41
|
-
if (this.shouldLog('error')) {
|
|
42
|
-
console.error(this.formatMessage('error', message), data ?? '');
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
warn(message, data) {
|
|
46
|
-
if (this.shouldLog('warn')) {
|
|
47
|
-
console.warn(this.formatMessage('warn', message), data ?? '');
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
info(message, data) {
|
|
51
|
-
if (this.shouldLog('info')) {
|
|
52
|
-
console.info(this.formatMessage('info', message), data ?? '');
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
debug(message, data) {
|
|
56
|
-
if (this.shouldLog('debug')) {
|
|
57
|
-
console.debug(this.formatMessage('debug', message), data ?? '');
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
17
|
/**
|
|
62
18
|
* Deferred logger that upgrades from ConsoleLogger to real server logger
|
|
63
19
|
* when the server module is loaded asynchronously
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"universal-logger.js","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"universal-logger.js","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,8 @@ export interface ClientLoggerConfig {
|
|
|
16
16
|
batchMode?: boolean;
|
|
17
17
|
/** Batch interval in ms (default: 5000) */
|
|
18
18
|
batchInterval?: number;
|
|
19
|
+
/** Optional callback invoked for every log entry (e.g. pipe to hazo_debug) */
|
|
20
|
+
on_log?: (level: string, message: string, data?: Record<string, unknown>) => void;
|
|
19
21
|
}
|
|
20
22
|
/**
|
|
21
23
|
* Create a client-side logger instance
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-logger.d.ts","sourceRoot":"","sources":["../../src/ui/client-logger.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"client-logger.d.ts","sourceRoot":"","sources":["../../src/ui/client-logger.ts"],"names":[],"mappings":"AAgBA,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAEjE,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mDAAmD;IACnD,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,2CAA2C;IAC3C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CACnF;AAsBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,kBAAuB;qBA2H7C,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACvC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBACtC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;qBACrC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAEvD,kCAAkC;iBA1EP,OAAO,CAAC,IAAI,CAAC;IA6ExC,oDAAoD;yBAC/B,OAAO,CAAC,kBAAkB,CAAC;EAcnD;AAED,MAAM,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,kBAAkB,CAAC,CAAC"}
|
package/dist/ui/client-logger.js
CHANGED
|
@@ -31,7 +31,7 @@ const LOG_LEVEL_PRIORITY = {
|
|
|
31
31
|
*/
|
|
32
32
|
export function createClientLogger(config = {}) {
|
|
33
33
|
const globalConfig = getClientLoggerConfig();
|
|
34
|
-
const { apiBasePath = globalConfig?.apiBasePath ?? '/api/logs', packageName = 'client', sessionId, reference, minLevel = globalConfig?.minLevel ?? 'debug', consoleOutput = globalConfig?.consoleOutput ?? true, batchMode = globalConfig?.batchMode ?? false, batchInterval = globalConfig?.batchInterval ?? 5000, } = config;
|
|
34
|
+
const { apiBasePath = globalConfig?.apiBasePath ?? '/api/logs', packageName = 'client', sessionId, reference, minLevel = globalConfig?.minLevel ?? 'debug', consoleOutput = globalConfig?.consoleOutput ?? true, batchMode = globalConfig?.batchMode ?? false, batchInterval = globalConfig?.batchInterval ?? 5000, on_log, } = config;
|
|
35
35
|
// Warn once in development if using default without global config
|
|
36
36
|
if (!config.apiBasePath &&
|
|
37
37
|
!isClientLoggerConfigured() &&
|
|
@@ -109,6 +109,8 @@ export function createClientLogger(config = {}) {
|
|
|
109
109
|
else {
|
|
110
110
|
await sendLogs([entry]);
|
|
111
111
|
}
|
|
112
|
+
// Notify callback if configured
|
|
113
|
+
on_log?.(level, message, data);
|
|
112
114
|
};
|
|
113
115
|
// Setup flush on page unload for batched logs
|
|
114
116
|
if (typeof window !== 'undefined' && batchMode) {
|
|
@@ -137,6 +139,7 @@ export function createClientLogger(config = {}) {
|
|
|
137
139
|
consoleOutput,
|
|
138
140
|
batchMode,
|
|
139
141
|
batchInterval,
|
|
142
|
+
on_log,
|
|
140
143
|
...childConfig,
|
|
141
144
|
}),
|
|
142
145
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-logger.js","sourceRoot":"","sources":["../../src/ui/client-logger.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;GAKG;AAEH,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"client-logger.js","sourceRoot":"","sources":["../../src/ui/client-logger.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;GAKG;AAEH,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAsC5B,MAAM,kBAAkB,GAAmC;IACzD,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,kBAAkB,CAAC,SAA6B,EAAE;IAChE,MAAM,YAAY,GAAG,qBAAqB,EAAE,CAAC;IAE7C,MAAM,EACJ,WAAW,GAAG,YAAY,EAAE,WAAW,IAAI,WAAW,EACtD,WAAW,GAAG,QAAQ,EACtB,SAAS,EACT,SAAS,EACT,QAAQ,GAAG,YAAY,EAAE,QAAQ,IAAI,OAAO,EAC5C,aAAa,GAAG,YAAY,EAAE,aAAa,IAAI,IAAI,EACnD,SAAS,GAAG,YAAY,EAAE,SAAS,IAAI,KAAK,EAC5C,aAAa,GAAG,YAAY,EAAE,aAAa,IAAI,IAAI,EACnD,MAAM,GACP,GAAG,MAAM,CAAC;IAEX,kEAAkE;IAClE,IACE,CAAC,MAAM,CAAC,WAAW;QACnB,CAAC,wBAAwB,EAAE;QAC3B,CAAC,gBAAgB,EAAE;QACnB,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,aAAa,EACtC,CAAC;QACD,iBAAiB,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CACV,mDAAmD;YACjD,0FAA0F,CAC7F,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ,GAAqB,EAAE,CAAC;IACpC,IAAI,UAAU,GAAyC,IAAI,CAAC;IAE5D,MAAM,SAAS,GAAG,CAAC,KAAqB,EAAW,EAAE;QACnD,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IACnE,CAAC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,EAAE,OAAyB,EAAiB,EAAE;QAClE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAEjC,IAAI,CAAC;YACH,MAAM,KAAK,CAAC,WAAW,EAAE;gBACvB,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;aACxC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6DAA6D;YAC7D,IAAI,aAAa,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,KAAK,IAAmB,EAAE;QAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC;YAC7B,QAAQ,GAAG,EAAE,CAAC;YACd,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,eAAe,GAAG,GAAS,EAAE;QACjC,IAAI,SAAS,IAAI,CAAC,UAAU,EAAE,CAAC;YAC7B,UAAU,GAAG,UAAU,CAAC,KAAK,IAAI,EAAE;gBACjC,MAAM,UAAU,EAAE,CAAC;gBACnB,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxB,eAAe,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC,EAAE,aAAa,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,GAAG,GAAG,KAAK,EACf,KAAqB,EACrB,OAAe,EACf,IAA8B,EACf,EAAE;QACjB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAE9B,iBAAiB;QACjB,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,aAAa,GAAG,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC;YACtF,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,WAAW,KAAK,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,MAAM,KAAK,GAAmB;YAC5B,KAAK;YACL,OAAO;YACP,OAAO,EAAE,WAAW;YACpB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,SAAS;YACT,SAAS;YACT,IAAI;YACJ,SAAS,EAAE,OAAO,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC7E,GAAG,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC;QAEF,IAAI,SAAS,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,eAAe,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,QAAQ,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1B,CAAC;QAED,gCAAgC;QAChC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IAEF,8CAA8C;IAC9C,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,SAAS,EAAE,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,GAAG,EAAE;YAC3C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,sDAAsD;gBACtD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;gBAChD,SAAS,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,KAAK,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;QACvF,IAAI,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QACrF,IAAI,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC;QACrF,KAAK,EAAE,CAAC,OAAe,EAAE,IAA8B,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;QAEvF,kCAAkC;QAClC,KAAK,EAAE,UAAU;QAEjB,oDAAoD;QACpD,KAAK,EAAE,CAAC,WAAwC,EAAE,EAAE,CAClD,kBAAkB,CAAC;YACjB,WAAW;YACX,WAAW;YACX,SAAS;YACT,SAAS;YACT,QAAQ;YACR,aAAa;YACb,SAAS;YACT,aAAa;YACb,MAAM;YACN,GAAG,WAAW;SACf,CAAC;KACL,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hazo_logs",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.12",
|
|
4
4
|
"description": "Logger for hazo packages - Winston wrapper with singleton pattern",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -10,39 +10,34 @@
|
|
|
10
10
|
"types": "./dist/index.d.ts",
|
|
11
11
|
"browser": "./dist/client/index.js",
|
|
12
12
|
"node": "./dist/index.js",
|
|
13
|
-
"import": "./dist/index.js"
|
|
14
|
-
"require": "./dist/index.js",
|
|
15
|
-
"default": "./dist/client/index.js"
|
|
13
|
+
"import": "./dist/index.js"
|
|
16
14
|
},
|
|
17
15
|
"./server": {
|
|
18
16
|
"types": "./dist/server.d.ts",
|
|
19
|
-
"import": "./dist/server.js"
|
|
20
|
-
"require": "./dist/server.js"
|
|
17
|
+
"import": "./dist/server.js"
|
|
21
18
|
},
|
|
22
19
|
"./client": {
|
|
23
20
|
"types": "./dist/client/index.d.ts",
|
|
24
|
-
"import": "./dist/client/index.js"
|
|
25
|
-
"require": "./dist/client/index.js"
|
|
21
|
+
"import": "./dist/client/index.js"
|
|
26
22
|
},
|
|
27
23
|
"./ui": {
|
|
28
24
|
"types": "./dist/ui/index.d.ts",
|
|
29
|
-
"import": "./dist/ui/index.js"
|
|
30
|
-
"require": "./dist/ui/index.js"
|
|
25
|
+
"import": "./dist/ui/index.js"
|
|
31
26
|
},
|
|
32
27
|
"./ui/server": {
|
|
33
28
|
"types": "./dist/ui/server.d.ts",
|
|
34
|
-
"import": "./dist/ui/server.js"
|
|
35
|
-
"require": "./dist/ui/server.js"
|
|
29
|
+
"import": "./dist/ui/server.js"
|
|
36
30
|
},
|
|
37
31
|
"./tailwind": {
|
|
38
32
|
"types": "./dist/tailwind.d.ts",
|
|
39
|
-
"
|
|
40
|
-
"
|
|
33
|
+
"require": "./dist/tailwind.js",
|
|
34
|
+
"import": "./dist/tailwind.js"
|
|
41
35
|
}
|
|
42
36
|
},
|
|
43
37
|
"files": [
|
|
44
38
|
"dist",
|
|
45
|
-
"config"
|
|
39
|
+
"config",
|
|
40
|
+
"README.md"
|
|
46
41
|
],
|
|
47
42
|
"scripts": {
|
|
48
43
|
"build": "tsc -p tsconfig.build.json",
|
|
@@ -81,24 +76,32 @@
|
|
|
81
76
|
"@types/ini": "^4.1.1",
|
|
82
77
|
"@types/node": "^22.10.2",
|
|
83
78
|
"@types/react": "^19.0.1",
|
|
84
|
-
"hazo_ui": "
|
|
85
|
-
"next": "^
|
|
79
|
+
"hazo_ui": ">=2.7.0",
|
|
80
|
+
"next": "^16.0.10",
|
|
86
81
|
"react": "^19.0.0",
|
|
87
82
|
"typescript": "^5.7.2",
|
|
88
83
|
"vitest": "^4.0.15"
|
|
89
84
|
},
|
|
90
85
|
"peerDependencies": {
|
|
91
|
-
"
|
|
86
|
+
"hazo_debug": ">=1.0.0",
|
|
87
|
+
"hazo_ui": ">=2.7.0",
|
|
92
88
|
"next": ">=14.0.0",
|
|
93
|
-
"react": ">=18.0.0"
|
|
89
|
+
"react": ">=18.0.0",
|
|
90
|
+
"react-dom": ">=18.0.0"
|
|
94
91
|
},
|
|
95
92
|
"peerDependenciesMeta": {
|
|
93
|
+
"hazo_debug": {
|
|
94
|
+
"optional": true
|
|
95
|
+
},
|
|
96
96
|
"next": {
|
|
97
97
|
"optional": true
|
|
98
98
|
},
|
|
99
99
|
"react": {
|
|
100
100
|
"optional": true
|
|
101
101
|
},
|
|
102
|
+
"react-dom": {
|
|
103
|
+
"optional": true
|
|
104
|
+
},
|
|
102
105
|
"hazo_ui": {
|
|
103
106
|
"optional": true
|
|
104
107
|
}
|