hazo_logs 1.2.1 → 2.0.1

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.
Files changed (64) hide show
  1. package/README.md +73 -0
  2. package/config/hazo_logs_config.ini.sample +2 -0
  3. package/dist/index.d.ts +6 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +6 -0
  6. package/dist/index.js.map +1 -1
  7. package/dist/lib/alert-triggers.d.ts.map +1 -1
  8. package/dist/lib/alert-triggers.js +4 -5
  9. package/dist/lib/alert-triggers.js.map +1 -1
  10. package/dist/lib/config_loader.d.ts.map +1 -1
  11. package/dist/lib/config_loader.js +0 -6
  12. package/dist/lib/config_loader.js.map +1 -1
  13. package/dist/lib/console-logger.d.ts +16 -1
  14. package/dist/lib/console-logger.d.ts.map +1 -1
  15. package/dist/lib/console-logger.js +36 -0
  16. package/dist/lib/console-logger.js.map +1 -1
  17. package/dist/lib/eslint_plugin/index.d.ts +109 -0
  18. package/dist/lib/eslint_plugin/index.d.ts.map +1 -0
  19. package/dist/lib/eslint_plugin/index.js +168 -0
  20. package/dist/lib/eslint_plugin/index.js.map +1 -0
  21. package/dist/lib/global-error-handlers.d.ts.map +1 -1
  22. package/dist/lib/global-error-handlers.js +2 -1
  23. package/dist/lib/global-error-handlers.js.map +1 -1
  24. package/dist/lib/hazo_logger.d.ts.map +1 -1
  25. package/dist/lib/hazo_logger.js +1 -0
  26. package/dist/lib/hazo_logger.js.map +1 -1
  27. package/dist/lib/level_resolver.d.ts +26 -0
  28. package/dist/lib/level_resolver.d.ts.map +1 -0
  29. package/dist/lib/level_resolver.js +65 -0
  30. package/dist/lib/level_resolver.js.map +1 -0
  31. package/dist/lib/log-reader.d.ts.map +1 -1
  32. package/dist/lib/log-reader.js +1 -0
  33. package/dist/lib/log-reader.js.map +1 -1
  34. package/dist/lib/package_logger.d.ts +46 -3
  35. package/dist/lib/package_logger.d.ts.map +1 -1
  36. package/dist/lib/package_logger.js +190 -6
  37. package/dist/lib/package_logger.js.map +1 -1
  38. package/dist/lib/ring_buffer.d.ts +51 -0
  39. package/dist/lib/ring_buffer.d.ts.map +1 -0
  40. package/dist/lib/ring_buffer.js +107 -0
  41. package/dist/lib/ring_buffer.js.map +1 -0
  42. package/dist/lib/types.d.ts +24 -1
  43. package/dist/lib/types.d.ts.map +1 -1
  44. package/dist/lib/universal-logger.d.ts.map +1 -1
  45. package/dist/lib/universal-logger.js +15 -0
  46. package/dist/lib/universal-logger.js.map +1 -1
  47. package/dist/lib/utils/caller_info.d.ts +25 -1
  48. package/dist/lib/utils/caller_info.d.ts.map +1 -1
  49. package/dist/lib/utils/caller_info.js +62 -1
  50. package/dist/lib/utils/caller_info.js.map +1 -1
  51. package/dist/lib/with-error-handler.d.ts.map +1 -1
  52. package/dist/lib/with-error-handler.js +2 -1
  53. package/dist/lib/with-error-handler.js.map +1 -1
  54. package/dist/server.d.ts +4 -1
  55. package/dist/server.d.ts.map +1 -1
  56. package/dist/server.js +3 -0
  57. package/dist/server.js.map +1 -1
  58. package/dist/ui/components/ErrorBoundary.d.ts.map +1 -1
  59. package/dist/ui/components/ErrorBoundary.js +3 -2
  60. package/dist/ui/components/ErrorBoundary.js.map +1 -1
  61. package/dist/ui/hooks/useErrorReporter.d.ts.map +1 -1
  62. package/dist/ui/hooks/useErrorReporter.js +4 -3
  63. package/dist/ui/hooks/useErrorReporter.js.map +1 -1
  64. package/package.json +15 -7
@@ -0,0 +1,107 @@
1
+ /**
2
+ * RingBuffer — per-correlation-ID in-memory circular buffer for TRACE/DEBUG entries.
3
+ *
4
+ * Design constraints (from design spec §2.4):
5
+ * - 200 entries per buffer
6
+ * - Max 100 active correlation IDs (LRU eviction)
7
+ * - Memory ceiling: ~100 × 200 × 500B = 10 MB
8
+ *
9
+ * When an ERROR is emitted, the buffer for the current correlation ID is dumped
10
+ * alongside the error so the full request lead-up is visible in a single log group.
11
+ */
12
+ // ─── RingBuffer ──────────────────────────────────────────────────────────────
13
+ export class RingBuffer {
14
+ capacity;
15
+ buf;
16
+ head = 0; // next write index
17
+ count = 0; // total written (capped at capacity)
18
+ constructor(capacity = 200) {
19
+ this.capacity = capacity;
20
+ this.buf = new Array(capacity);
21
+ }
22
+ push(entry) {
23
+ this.buf[this.head] = entry;
24
+ this.head = (this.head + 1) % this.capacity;
25
+ if (this.count < this.capacity)
26
+ this.count++;
27
+ }
28
+ /**
29
+ * Returns the last `n` entries (default: all).
30
+ * Returned in chronological order (oldest first).
31
+ */
32
+ dump(n) {
33
+ const take = Math.min(n ?? this.count, this.count);
34
+ const result = [];
35
+ // Walk backwards from head to collect `take` entries, then reverse.
36
+ let idx = (this.head - 1 + this.capacity) % this.capacity;
37
+ for (let i = 0; i < take; i++) {
38
+ const entry = this.buf[idx];
39
+ if (entry !== undefined)
40
+ result.push(entry);
41
+ idx = (idx - 1 + this.capacity) % this.capacity;
42
+ }
43
+ return result.reverse();
44
+ }
45
+ clear() {
46
+ this.buf.fill(undefined);
47
+ this.head = 0;
48
+ this.count = 0;
49
+ }
50
+ get size() {
51
+ return this.count;
52
+ }
53
+ }
54
+ // ─── RingBufferRegistry ──────────────────────────────────────────────────────
55
+ /**
56
+ * Global per-correlationId ring buffer registry.
57
+ * LRU: max 100 active correlation IDs.
58
+ */
59
+ export class RingBufferRegistry {
60
+ // Map preserves insertion order; we move-to-end on access (LRU).
61
+ buffers = new Map();
62
+ MAX_BUFFERS = 100;
63
+ getOrCreate(correlationId) {
64
+ const existing = this.buffers.get(correlationId);
65
+ if (existing) {
66
+ // Move to end (most-recently-used)
67
+ this.buffers.delete(correlationId);
68
+ this.buffers.set(correlationId, existing);
69
+ return existing;
70
+ }
71
+ if (this.buffers.size >= this.MAX_BUFFERS) {
72
+ this.evictLRU();
73
+ }
74
+ const buf = new RingBuffer();
75
+ this.buffers.set(correlationId, buf);
76
+ return buf;
77
+ }
78
+ get(correlationId) {
79
+ const buf = this.buffers.get(correlationId);
80
+ if (buf) {
81
+ // Move to end on read access
82
+ this.buffers.delete(correlationId);
83
+ this.buffers.set(correlationId, buf);
84
+ }
85
+ return buf;
86
+ }
87
+ evictLRU() {
88
+ // The first key in the Map is the least-recently-used
89
+ const firstKey = this.buffers.keys().next().value;
90
+ if (firstKey !== undefined) {
91
+ this.buffers.delete(firstKey);
92
+ }
93
+ }
94
+ }
95
+ // ─── Singleton ───────────────────────────────────────────────────────────────
96
+ export const ringBufferRegistry = new RingBufferRegistry();
97
+ /**
98
+ * Public API used by hazo_ui/test-harness and hazo_core.
99
+ * Returns the last `n` entries for the given correlationId (empty array if none).
100
+ */
101
+ export function getRingBuffer(correlationId, n) {
102
+ const buf = ringBufferRegistry.get(correlationId);
103
+ if (!buf)
104
+ return [];
105
+ return buf.dump(n);
106
+ }
107
+ //# sourceMappingURL=ring_buffer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ring_buffer.js","sourceRoot":"","sources":["../../src/lib/ring_buffer.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Type definitions for hazo_logs
3
3
  */
4
4
  /** All log levels including fatal (above error) */
5
- export type LogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug';
5
+ export type LogLevel = 'fatal' | 'error' | 'warn' | 'info' | 'debug' | 'trace';
6
6
  /**
7
7
  * Levels valid for config min-level setting.
8
8
  * 'fatal' excluded — configuring min-level as fatal would silence everything else.
@@ -53,6 +53,13 @@ export interface HandledError {
53
53
  message?: string;
54
54
  userMessage?: string;
55
55
  }
56
+ /** Ring buffer entry — a captured TRACE/DEBUG entry stored for error context dumps */
57
+ export interface RingBufferEntry {
58
+ level: LogLevel;
59
+ msg: string;
60
+ fields?: Record<string, unknown>;
61
+ ts: string;
62
+ }
56
63
  /** Logger interface — the public API for logging */
57
64
  export interface Logger {
58
65
  fatal(message: string, data?: LogData): void;
@@ -60,6 +67,22 @@ export interface Logger {
60
67
  warn(message: string, data?: LogData): void;
61
68
  info(message: string, data?: LogData): void;
62
69
  debug(message: string, data?: LogData): void;
70
+ trace(message: string, data?: LogData): void;
71
+ heartbeat(name: string, fields: {
72
+ status: string;
73
+ [key: string]: unknown;
74
+ }, opts?: {
75
+ trigger?: (prev: Record<string, unknown>, curr: Record<string, unknown>) => boolean;
76
+ }): void;
77
+ sampled(level: 'trace' | 'debug' | 'info' | 'warn', msg: string, fields?: Record<string, unknown>, opts?: {
78
+ sample: number;
79
+ }): void;
80
+ dedupe(level: 'trace' | 'debug' | 'info' | 'warn', msg: string, fields?: Record<string, unknown>, opts?: {
81
+ window: string;
82
+ key?: string;
83
+ }): void;
84
+ /** Access the ring buffer for a correlation ID (optional — not all implementations support it) */
85
+ getRingBuffer?: (correlationId: string, n?: number) => RingBufferEntry[];
63
86
  }
64
87
  /** Configuration options loaded from hazo_logs_config.ini */
65
88
  export interface HazoLogConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
@@ -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,EAAW,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AA+DpD;;;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"}
1
+ {"version":3,"file":"universal-logger.d.ts","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,MAAM,EAA4B,MAAM,YAAY,CAAC;AACnE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAiGpD;;;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"}
@@ -55,6 +55,21 @@ class DeferredServerLogger {
55
55
  debug(message, data) {
56
56
  this.innerLogger.debug(message, data);
57
57
  }
58
+ trace(message, data) {
59
+ this.innerLogger.trace(message, data);
60
+ }
61
+ heartbeat(name, fields, opts) {
62
+ this.innerLogger.heartbeat(name, fields, opts);
63
+ }
64
+ sampled(level, msg, fields, opts) {
65
+ this.innerLogger.sampled(level, msg, fields, opts);
66
+ }
67
+ dedupe(level, msg, fields, opts) {
68
+ this.innerLogger.dedupe(level, msg, fields, opts);
69
+ }
70
+ getRingBuffer(correlationId, n) {
71
+ return this.innerLogger.getRingBuffer?.(correlationId, n) ?? [];
72
+ }
58
73
  }
59
74
  // Cache for pre-loaded server loggers
60
75
  const serverLoggerCache = new Map();
@@ -1 +1 @@
1
- {"version":3,"file":"universal-logger.js","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"universal-logger.js","sourceRoot":"","sources":["../../src/lib/universal-logger.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  /**
2
- * Utility to extract filename and line number from call stack
2
+ * Utility to extract filename and line number from call stack.
3
+ *
4
+ * Exports:
5
+ * getCallerInfo() — richer API used by hazo_logs internals (walks past logger frames)
6
+ * get_filename() — simple stack-scraping helper for API route logging
7
+ * get_line_number() — simple stack-scraping helper for API route logging
8
+ *
9
+ * get_filename / get_line_number were originally in hazo_auth/src/lib/utils/api_route_helpers.ts.
10
+ * Canonical location moved here in hazo_logs (see hazo_auth for re-export shim).
3
11
  */
4
12
  export interface CallerInfo {
5
13
  filename: string;
@@ -10,4 +18,20 @@ export interface CallerInfo {
10
18
  * Walks up the stack to find the actual calling code (not the logger internals)
11
19
  */
12
20
  export declare function getCallerInfo(): CallerInfo;
21
+ /**
22
+ * Gets the filename of the caller from the call stack.
23
+ * Simpler alternative to getCallerInfo() — does not skip internal frames,
24
+ * suitable for use directly in API route handlers.
25
+ *
26
+ * @returns Filename (basename only) or "route.ts" as default
27
+ */
28
+ export declare function get_filename(): string;
29
+ /**
30
+ * Gets the line number of the caller from the call stack.
31
+ * Simpler alternative to getCallerInfo() — does not skip internal frames,
32
+ * suitable for use directly in API route handlers.
33
+ *
34
+ * @returns Line number or 0
35
+ */
36
+ export declare function get_line_number(): number;
13
37
  //# sourceMappingURL=caller_info.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"caller_info.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/caller_info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA+B1C"}
1
+ {"version":3,"file":"caller_info.d.ts","sourceRoot":"","sources":["../../../src/lib/utils/caller_info.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,UAAU,CA+B1C;AAwCD;;;;;;GAMG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAerC;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAexC"}
@@ -1,5 +1,13 @@
1
1
  /**
2
- * Utility to extract filename and line number from call stack
2
+ * Utility to extract filename and line number from call stack.
3
+ *
4
+ * Exports:
5
+ * getCallerInfo() — richer API used by hazo_logs internals (walks past logger frames)
6
+ * get_filename() — simple stack-scraping helper for API route logging
7
+ * get_line_number() — simple stack-scraping helper for API route logging
8
+ *
9
+ * get_filename / get_line_number were originally in hazo_auth/src/lib/utils/api_route_helpers.ts.
10
+ * Canonical location moved here in hazo_logs (see hazo_auth for re-export shim).
3
11
  */
4
12
  /**
5
13
  * Get the filename and line number of the caller
@@ -62,4 +70,57 @@ function extractFilename(fullPath) {
62
70
  const parts = fullPath.split(/[/\\]/);
63
71
  return parts[parts.length - 1] || fullPath;
64
72
  }
73
+ // ---------------------------------------------------------------------------
74
+ // Simple stack-scraping helpers (ported from hazo_auth/api_route_helpers)
75
+ // ---------------------------------------------------------------------------
76
+ /**
77
+ * Gets the filename of the caller from the call stack.
78
+ * Simpler alternative to getCallerInfo() — does not skip internal frames,
79
+ * suitable for use directly in API route handlers.
80
+ *
81
+ * @returns Filename (basename only) or "route.ts" as default
82
+ */
83
+ export function get_filename() {
84
+ try {
85
+ const stack = new Error().stack;
86
+ if (!stack)
87
+ return 'route.ts';
88
+ const lines = stack.split('\n');
89
+ // Skip "Error" line and the get_filename() frame itself
90
+ for (let i = 2; i < lines.length; i++) {
91
+ const match = lines[i].match(/([^/\\]+\.tsx?):(\d+):(\d+)/);
92
+ if (match)
93
+ return match[1];
94
+ }
95
+ return 'route.ts';
96
+ }
97
+ catch {
98
+ return 'route.ts';
99
+ }
100
+ }
101
+ /**
102
+ * Gets the line number of the caller from the call stack.
103
+ * Simpler alternative to getCallerInfo() — does not skip internal frames,
104
+ * suitable for use directly in API route handlers.
105
+ *
106
+ * @returns Line number or 0
107
+ */
108
+ export function get_line_number() {
109
+ try {
110
+ const stack = new Error().stack;
111
+ if (!stack)
112
+ return 0;
113
+ const lines = stack.split('\n');
114
+ // Skip "Error" line and the get_line_number() frame itself
115
+ for (let i = 2; i < lines.length; i++) {
116
+ const match = lines[i].match(/([^/\\]+\.tsx?):(\d+):(\d+)/);
117
+ if (match)
118
+ return parseInt(match[2], 10) || 0;
119
+ }
120
+ return 0;
121
+ }
122
+ catch {
123
+ return 0;
124
+ }
125
+ }
65
126
  //# sourceMappingURL=caller_info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"caller_info.js","sourceRoot":"","sources":["../../../src/lib/utils/caller_info.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,yBAAyB,GAAG,KAAK,CAAC,iBAAiB,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,KAAK,CAAC,iBAAiB,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;QAC9C,MAAM,KAAK,GAAG,GAAG,CAAC,KAAqC,CAAC;QACxD,KAAK,CAAC,iBAAiB,GAAG,yBAAyB,CAAC;QAEpD,sCAAsC;QACtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC;YAE3C,sBAAsB;YACtB,IAAI,CAAC,QAAQ;gBAAE,SAAS;YAExB,oDAAoD;YACpD,IAAI,eAAe,CAAC,QAAQ,CAAC;gBAAE,SAAS;YAExC,kBAAkB;YAClB,OAAO;gBACL,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;gBACnC,IAAI,EAAE,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC;aACjC,CAAC;QACJ,CAAC;QAED,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IAC1C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IAEvC,sBAAsB;IACtB,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAE7C,iEAAiE;IACjE,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;QAAE,OAAO,IAAI,CAAC;IAElD,4DAA4D;IAC5D,4FAA4F;IAC5F,IACE,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAC;QACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC;QACtC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC;QACvC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC,EACxC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,QAAQ,CAAC;AAC7C,CAAC"}
1
+ {"version":3,"file":"caller_info.js","sourceRoot":"","sources":["../../../src/lib/utils/caller_info.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"with-error-handler.d.ts","sourceRoot":"","sources":["../../src/lib/with-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAiBhE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAqD5E"}
1
+ {"version":3,"file":"with-error-handler.d.ts","sourceRoot":"","sources":["../../src/lib/with-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,KAAK,gBAAgB,GAAG,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;AAiBhE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,GAAG,gBAAgB,CAqD5E"}
@@ -13,6 +13,7 @@
13
13
  * - userMessage → client-facing message (falls back to "Internal server error")
14
14
  * - message → logs only, never sent to client
15
15
  */
16
+ import { generateRequestId } from 'hazo_core';
16
17
  import { createLogger } from './package_logger.js';
17
18
  const logger = createLogger('hazo_logs.withErrorHandler');
18
19
  function isHandledError(err) {
@@ -34,7 +35,7 @@ export function withErrorHandler(handler) {
34
35
  return await handler(request);
35
36
  }
36
37
  catch (err) {
37
- const correlationId = crypto.randomUUID();
38
+ const correlationId = generateRequestId();
38
39
  if (isHandledError(err)) {
39
40
  const level = levelForStatus(err.statusCode);
40
41
  const logMessage = `[${err.code}] ${err.message ?? err.userMessage ?? 'handled error'}`;
@@ -1 +1 @@
1
- {"version":3,"file":"with-error-handler.js","sourceRoot":"","sources":["../../src/lib/with-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAI1D,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,OAAQ,GAA+B,CAAC,IAAI,KAAK,QAAQ;QACzD,OAAQ,GAA+B,CAAC,UAAU,KAAK,QAAQ,CAChE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC;IACtC,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,OAAO,CAAC,CAAC,iCAAiC;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACxD,OAAO,KAAK,EAAE,OAAgB,EAAqB,EAAE;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;YAE1C,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,IAAI,eAAe,EAAE,CAAC;gBACxF,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;oBACxB,aAAa;oBACb,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;iBACpC,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC,IAAI,CAClB;oBACE,KAAK,EAAE,GAAG,CAAC,WAAW,IAAI,gBAAgB;oBAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,aAAa;iBACd,EACD;oBACE,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,OAAO,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE;iBAC/C,CACF,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBACxC,aAAa;gBACb,OAAO;gBACP,KAAK;gBACL,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;aACpC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAClB;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,aAAa;aACd,EACD;gBACE,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE;aAC/C,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"with-error-handler.js","sourceRoot":"","sources":["../../src/lib/with-error-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,MAAM,GAAG,YAAY,CAAC,4BAA4B,CAAC,CAAC;AAI1D,SAAS,cAAc,CAAC,GAAY;IAClC,OAAO,CACL,OAAO,GAAG,KAAK,QAAQ;QACvB,GAAG,KAAK,IAAI;QACZ,OAAQ,GAA+B,CAAC,IAAI,KAAK,QAAQ;QACzD,OAAQ,GAA+B,CAAC,UAAU,KAAK,QAAQ,CAChE,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,OAAO,CAAC;IACtC,IAAI,UAAU,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,OAAO,CAAC,CAAC,iCAAiC;AACnD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,OAAyB;IACxD,OAAO,KAAK,EAAE,OAAgB,EAAqB,EAAE;QACnD,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;YAE1C,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,WAAW,IAAI,eAAe,EAAE,CAAC;gBACxF,MAAM,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE;oBACxB,aAAa;oBACb,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,UAAU,EAAE,GAAG,CAAC,UAAU;oBAC1B,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;iBACpC,CAAC,CAAC;gBAEH,OAAO,QAAQ,CAAC,IAAI,CAClB;oBACE,KAAK,EAAE,GAAG,CAAC,WAAW,IAAI,gBAAgB;oBAC1C,IAAI,EAAE,GAAG,CAAC,IAAI;oBACd,aAAa;iBACd,EACD;oBACE,MAAM,EAAE,GAAG,CAAC,UAAU;oBACtB,OAAO,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE;iBAC/C,CACF,CAAC;YACJ,CAAC;YAED,+DAA+D;YAC/D,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBACxC,aAAa;gBACb,OAAO;gBACP,KAAK;gBACL,IAAI,EAAE,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ;aACpC,CAAC,CAAC;YAEH,OAAO,QAAQ,CAAC,IAAI,CAClB;gBACE,KAAK,EAAE,uBAAuB;gBAC9B,IAAI,EAAE,gBAAgB;gBACtB,aAAa;aACd,EACD;gBACE,MAAM,EAAE,GAAG;gBACX,OAAO,EAAE,EAAE,kBAAkB,EAAE,aAAa,EAAE;aAC/C,CACF,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
package/dist/server.d.ts CHANGED
@@ -17,6 +17,9 @@ import 'server-only';
17
17
  export { HazoLogger } from './lib/hazo_logger.js';
18
18
  export { PackageLogger, createLogger } from './lib/package_logger.js';
19
19
  export { loadConfig } from './lib/config_loader.js';
20
+ export { getRingBuffer, ringBufferRegistry, RingBuffer, RingBufferRegistry } from './lib/ring_buffer.js';
21
+ export { LevelResolver } from './lib/level_resolver.js';
22
+ export type { OverrideMap } from './lib/level_resolver.js';
20
23
  export { generateSessionId, startSession, startSessionAsync, runWithLogContext, runWithLogContextAsync, getLogContext, withSession, withContext, } from './lib/context/log-context.js';
21
24
  export { readLogs, getAvailableLogDates, getUniquePackages, getUniqueExecutionIds, getUniqueSessionIds, getUniqueReferences, } from './lib/log-reader.js';
22
25
  export type { Logger, LogLevel, LogData, LogEntry, LogContext, HazoLogConfig, PackageLoggerOptions, LogOrigin, } from './lib/types.js';
@@ -28,5 +31,5 @@ export { installGlobalErrorHandlers } from './lib/global-error-handlers.js';
28
31
  export type { GlobalErrorHandlerOptions } from './lib/global-error-handlers.js';
29
32
  export { registerAlertTrigger } from './lib/alert-triggers.js';
30
33
  export type { AlertTriggerConfig, AlertTriggerMatch, AlertTriggerNotify } from './lib/alert-triggers.js';
31
- export type { HandledError, ConfigLogLevel } from './lib/types.js';
34
+ export type { HandledError, ConfigLogLevel, RingBufferEntry } from './lib/types.js';
32
35
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGzG,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,oBAAoB,EACpB,SAAS,GACV,MAAM,gBAAgB,CAAC;AAExB,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAC5E,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGzG,YAAY,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/server.js CHANGED
@@ -18,6 +18,9 @@ import 'server-only';
18
18
  export { HazoLogger } from './lib/hazo_logger.js';
19
19
  export { PackageLogger, createLogger } from './lib/package_logger.js';
20
20
  export { loadConfig } from './lib/config_loader.js';
21
+ // Log quality — ring buffer, level resolver
22
+ export { getRingBuffer, ringBufferRegistry, RingBuffer, RingBufferRegistry } from './lib/ring_buffer.js';
23
+ export { LevelResolver } from './lib/level_resolver.js';
21
24
  // Log context (uses AsyncLocalStorage)
22
25
  export { generateSessionId, startSession, startSessionAsync, runWithLogContext, runWithLogContextAsync, getLogContext, withSession, withContext, } from './lib/context/log-context.js';
23
26
  // Log reader (uses fs, readline)
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,uCAAuC;AACvC,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,iCAAiC;AACjC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,aAAa,CAAC;AAErB,eAAe;AACf,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,4CAA4C;AAC5C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,uCAAuC;AACvC,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,EACb,WAAW,EACX,WAAW,GACZ,MAAM,8BAA8B,CAAC;AAEtC,iCAAiC;AACjC,OAAO,EACL,QAAQ,EACR,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAgB7B,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C,8BAA8B;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,KAAK,CAAC,SAAS,CAAC;IACjE,0DAA0D;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACxD,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACxF,OAAO,CAAC,MAAM,CAA6B;gBAE/B,KAAK,EAAE,kBAAkB;IAMrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAOjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAmB5D,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,KAAK,CAAC,SAAS;CAO1B"}
1
+ {"version":3,"file":"ErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/ui/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,KAAK,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,KAAK,CAAC,SAAS,CAAC;IACjE,0DAA0D;IAC1D,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;IACxD,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4EAA4E;IAC5E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,qBAAa,aAAc,SAAQ,KAAK,CAAC,SAAS,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IACxF,OAAO,CAAC,MAAM,CAA6B;gBAE/B,KAAK,EAAE,kBAAkB;IAMrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAOjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAmB5D,KAAK,IAAI,IAAI;IAIb,MAAM,IAAI,KAAK,CAAC,SAAS;CAO1B"}
@@ -13,6 +13,7 @@
13
13
  * </ErrorBoundary>
14
14
  */
15
15
  import React from 'react';
16
+ import { generateRequestId } from 'hazo_core';
16
17
  import { createClientLogger } from '../client-logger.js';
17
18
  export class ErrorBoundary extends React.Component {
18
19
  logger = null;
@@ -24,11 +25,11 @@ export class ErrorBoundary extends React.Component {
24
25
  static getDerivedStateFromError(error) {
25
26
  return {
26
27
  error,
27
- correlationId: crypto.randomUUID(),
28
+ correlationId: generateRequestId(),
28
29
  };
29
30
  }
30
31
  componentDidCatch(error, info) {
31
- const correlationId = this.state.correlationId ?? crypto.randomUUID();
32
+ const correlationId = this.state.correlationId ?? generateRequestId();
32
33
  if (!this.logger) {
33
34
  this.logger = createClientLogger({
34
35
  apiBasePath: this.props.apiBasePath,
@@ -1 +1 @@
1
- {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/ui/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA0BzD,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAiD;IAChF,MAAM,GAAwB,IAAI,CAAC;IAE3C,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO;YACL,KAAK;YACL,aAAa,EAAE,MAAM,CAAC,UAAU,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;gBAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;gBACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,yBAAyB;aACjE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAAE;YAClD,aAAa;YACb,UAAU,EAAE,KAAK,CAAC,IAAI;YACtB,eAAe,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS;SAClD,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
1
+ {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/ui/components/ErrorBoundary.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AA0BzD,MAAM,OAAO,aAAc,SAAQ,KAAK,CAAC,SAAiD;IAChF,MAAM,GAAwB,IAAI,CAAC;IAE3C,YAAY,KAAyB;QACnC,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,wBAAwB,CAAC,KAAY;QAC1C,OAAO;YACL,KAAK;YACL,aAAa,EAAE,iBAAiB,EAAE;SACnC,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QACnD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,iBAAiB,EAAE,CAAC;QAEtE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,kBAAkB,CAAC;gBAC/B,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW;gBACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,yBAAyB;aACjE,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,KAAK,CAAC,OAAO,EAAE,EAAE;YAClD,aAAa;YACb,UAAU,EAAE,KAAK,CAAC,IAAI;YACtB,eAAe,EAAE,IAAI,CAAC,cAAc,IAAI,SAAS;SAClD,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5C,IAAI,KAAK,IAAI,aAAa,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;IAC7B,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"useErrorReporter.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useErrorReporter.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC3E,+CAA+C;IAC/C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC9E,mDAAmD;IACnD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CAC5E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,sBAAsB,CAwD9F"}
1
+ {"version":3,"file":"useErrorReporter.d.ts","sourceRoot":"","sources":["../../../src/ui/hooks/useErrorReporter.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE5E,MAAM,WAAW,uBAAwB,SAAQ,IAAI,CAAC,kBAAkB,EAAE,aAAa,CAAC;IACtF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qFAAqF;IACrF,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,sBAAsB;IACrC,kEAAkE;IAClE,WAAW,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC3E,+CAA+C;IAC/C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;IAC9E,mDAAmD;IACnD,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,CAAC;CAC5E;AAED,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,uBAA4B,GAAG,sBAAsB,CAwD9F"}
@@ -11,6 +11,7 @@
11
11
  * // Show id to user: "Reference: {id}"
12
12
  */
13
13
  import { useCallback, useRef } from 'react';
14
+ import { generateRequestId } from 'hazo_core';
14
15
  import { createClientLogger } from '../client-logger.js';
15
16
  export function useErrorReporter(options = {}) {
16
17
  // Stable logger ref — doesn't re-create on every render
@@ -31,7 +32,7 @@ export function useErrorReporter(options = {}) {
31
32
  ...extra,
32
33
  }), [options.userId]);
33
34
  const reportError = useCallback((error, context) => {
34
- const correlationId = crypto.randomUUID();
35
+ const correlationId = generateRequestId();
35
36
  const message = error instanceof Error ? error.message : String(error);
36
37
  logger.error(message, {
37
38
  ...buildMeta(context),
@@ -41,12 +42,12 @@ export function useErrorReporter(options = {}) {
41
42
  return correlationId;
42
43
  }, [logger, buildMeta]);
43
44
  const reportWarning = useCallback((message, context) => {
44
- const correlationId = crypto.randomUUID();
45
+ const correlationId = generateRequestId();
45
46
  logger.warn(message, { ...buildMeta(context), correlationId });
46
47
  return correlationId;
47
48
  }, [logger, buildMeta]);
48
49
  const reportInfo = useCallback((message, context) => {
49
- const correlationId = crypto.randomUUID();
50
+ const correlationId = generateRequestId();
50
51
  logger.info(message, { ...buildMeta(context), correlationId });
51
52
  return correlationId;
52
53
  }, [logger, buildMeta]);
@@ -1 +1 @@
1
- {"version":3,"file":"useErrorReporter.js","sourceRoot":"","sources":["../../../src/ui/hooks/useErrorReporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useErrorReporter.js","sourceRoot":"","sources":["../../../src/ui/hooks/useErrorReporter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "hazo_logs",
3
- "version": "1.2.1",
3
+ "version": "2.0.1",
4
4
  "description": "Logger for hazo packages - Winston wrapper with singleton pattern",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -32,6 +32,10 @@
32
32
  "types": "./dist/tailwind.d.ts",
33
33
  "require": "./dist/tailwind.js",
34
34
  "import": "./dist/tailwind.js"
35
+ },
36
+ "./eslint-plugin": {
37
+ "types": "./dist/lib/eslint_plugin/index.d.ts",
38
+ "import": "./dist/lib/eslint_plugin/index.js"
35
39
  }
36
40
  },
37
41
  "files": [
@@ -78,7 +82,7 @@
78
82
  "@types/ini": "^4.1.1",
79
83
  "@types/node": "^22.10.2",
80
84
  "@types/react": "^19.0.1",
81
- "hazo_ui": ">=2.7.0",
85
+ "hazo_ui": "^3.1.0",
82
86
  "jsdom": "^29.1.1",
83
87
  "next": "^16.0.10",
84
88
  "react": "^19.0.0",
@@ -87,13 +91,17 @@
87
91
  "vitest": "^4.0.15"
88
92
  },
89
93
  "peerDependencies": {
90
- "hazo_debug": "^2.0.0",
91
- "hazo_ui": ">=2.7.0",
92
- "next": ">=14.0.0",
93
- "react": ">=18.0.0",
94
- "react-dom": ">=18.0.0"
94
+ "hazo_core": "^1.0.0",
95
+ "hazo_debug": "^3.1.0",
96
+ "hazo_ui": "^3.1.0",
97
+ "next": "^14.0.0",
98
+ "react": "^18.0.0",
99
+ "react-dom": "^18.0.0"
95
100
  },
96
101
  "peerDependenciesMeta": {
102
+ "hazo_core": {
103
+ "optional": true
104
+ },
97
105
  "hazo_debug": {
98
106
  "optional": true
99
107
  },