@loglayer/transport-pretty-terminal 3.1.0 → 3.1.2

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/index.js CHANGED
@@ -2,13 +2,10 @@
2
2
  import { LoggerlessTransport } from "@loglayer/transport";
3
3
  import chalk7 from "chalk";
4
4
 
5
- // src/views/SimpleView.ts
5
+ // src/views/DetailView.ts
6
+ import chalk3 from "chalk";
6
7
  import wrap from "wrap-ansi";
7
8
 
8
- // src/views/utils.ts
9
- import chalk2 from "chalk";
10
- import truncate from "cli-truncate";
11
-
12
9
  // src/vendor/prettyjson.js
13
10
  import chalk from "chalk";
14
11
 
@@ -18,7 +15,7 @@ function indent(numSpaces) {
18
15
  }
19
16
  function getMaxIndexLength(input) {
20
17
  var maxWidth = 0;
21
- Object.getOwnPropertyNames(input).forEach(function(key) {
18
+ Object.getOwnPropertyNames(input).forEach((key) => {
22
19
  if (input[key] === void 0) {
23
20
  return;
24
21
  }
@@ -38,7 +35,7 @@ function isIsoStringDate(isoString) {
38
35
  }
39
36
 
40
37
  // src/vendor/prettyjson.js
41
- var conflictChars = /[^\w\s\n\r\v\t\.,]/i;
38
+ var conflictChars = /[^\w\s\n\r\v\t.,]/i;
42
39
  var isPrintable = (input, options) => input !== void 0 || options.renderUndefined;
43
40
  var isSerializable = (input, onlyPrimitives, options) => {
44
41
  if (typeof input === "boolean" || typeof input === "number" || typeof input === "function" || input === null || input === void 0 || input instanceof Date) {
@@ -125,7 +122,7 @@ var renderToArray = (data, options, indentation) => {
125
122
  return [indent(indentation) + options.emptyArrayMsg];
126
123
  }
127
124
  if (options.collapseArrays && data.length > 0) {
128
- return [indent(indentation) + `[... ${data.length} items]`];
125
+ return [`${indent(indentation)}[... ${data.length} items]`];
129
126
  }
130
127
  const outputArray = [];
131
128
  data.forEach((element) => {
@@ -204,6 +201,8 @@ function render(data, options, indentation) {
204
201
  }
205
202
 
206
203
  // src/views/utils.ts
204
+ import chalk2 from "chalk";
205
+ import truncate from "cli-truncate";
207
206
  function formatTimestamp(timestamp, colorFn) {
208
207
  const date = new Date(timestamp);
209
208
  return colorFn(
@@ -245,66 +244,7 @@ function formatInlineData(data, config, maxDepth, maxLength, expanded = false) {
245
244
  return expanded ? result : truncate(result, maxLength);
246
245
  }
247
246
 
248
- // src/views/SimpleView.ts
249
- var SimpleView = class {
250
- termWidth;
251
- config;
252
- constructor(config) {
253
- this.config = config;
254
- this.termWidth = process.stdout.columns || 80;
255
- }
256
- updateTerminalWidth(width) {
257
- this.termWidth = width;
258
- }
259
- /**
260
- * Renders a single log entry based on the current view mode
261
- */
262
- renderLogLine(entry) {
263
- const levelColor = getLevelColor(entry.level, this.config.config.colors);
264
- const chevron = levelColor(`\u25B6 ${entry.level.toUpperCase()} `);
265
- const message = entry.message || "(no message)";
266
- const timestamp = formatTimestamp(entry.timestamp, this.config.config.logIdColor);
267
- switch (this.config.viewMode) {
268
- case "condensed": {
269
- const condensedLine = `${timestamp} ${chevron}${message}`;
270
- console.log(wrap(condensedLine, this.termWidth, { hard: true }));
271
- break;
272
- }
273
- case "full": {
274
- const logId = this.config.config.logIdColor(`[${entry.id}]`);
275
- const fullData = entry.data ? formatInlineData(
276
- JSON.parse(entry.data),
277
- this.config.config,
278
- this.config.maxInlineDepth,
279
- this.config.maxInlineLength,
280
- true
281
- ) : "";
282
- const expandedLine = `${timestamp} ${chevron}${logId} ${message}${fullData ? ` ${fullData}` : ""}`;
283
- console.log(wrap(expandedLine, this.termWidth, { hard: true }));
284
- break;
285
- }
286
- default: {
287
- const logId = this.config.config.logIdColor(`[${entry.id}]`);
288
- const normalData = entry.data ? formatInlineData(
289
- JSON.parse(entry.data),
290
- this.config.config,
291
- this.config.maxInlineDepth,
292
- this.config.maxInlineLength
293
- ) : "";
294
- const normalLine = `${timestamp} ${chevron}${logId} ${message}${normalData ? ` ${normalData}` : ""}`;
295
- console.log(wrap(normalLine, this.termWidth, { hard: true }));
296
- break;
297
- }
298
- }
299
- }
300
- render() {
301
- throw new Error("SimpleView.render() should not be called directly. Use renderLogLine() instead.");
302
- }
303
- };
304
-
305
247
  // src/views/DetailView.ts
306
- import chalk3 from "chalk";
307
- import wrap2 from "wrap-ansi";
308
248
  var DetailView = class {
309
249
  termWidth;
310
250
  config;
@@ -324,7 +264,7 @@ var DetailView = class {
324
264
  const levelColor = getLevelColor(entry.level, this.config.config.colors);
325
265
  const logId = this.config.config.logIdColor(`[${entry.id}]`);
326
266
  const line = `${prefix}${levelColor(entry.level.toUpperCase())} ${logId} ${entry.message}`;
327
- return this.config.config.separatorColor(wrap2(line, this.termWidth, { hard: true }));
267
+ return this.config.config.separatorColor(wrap(line, this.termWidth, { hard: true }));
328
268
  }
329
269
  /**
330
270
  * Formats a timestamp into a human-readable relative time
@@ -454,7 +394,7 @@ ${this.config.config.separatorColor("TAB to return to detailed view")}`);
454
394
 
455
395
  // src/views/SelectionView.ts
456
396
  import chalk4 from "chalk";
457
- import wrap3 from "wrap-ansi";
397
+ import wrap2 from "wrap-ansi";
458
398
  var SelectionView = class {
459
399
  termWidth;
460
400
  config;
@@ -496,7 +436,7 @@ var SelectionView = class {
496
436
  const message = entry.message;
497
437
  const data = entry.data ? ` ${formatInlineData(JSON.parse(entry.data), this.config.config, 0, 0, true)}` : "";
498
438
  const mainLine = `${prefix}${timestamp} ${chevron}${logId} ${message}${data}`;
499
- const wrappedText = wrap3(mainLine, this.termWidth - 2, { hard: true });
439
+ const wrappedText = wrap2(mainLine, this.termWidth - 2, { hard: true });
500
440
  if (isSelected) {
501
441
  const lines = wrappedText.split("\n");
502
442
  console.log(lines[0]);
@@ -522,6 +462,64 @@ var SelectionView = class {
522
462
  }
523
463
  };
524
464
 
465
+ // src/views/SimpleView.ts
466
+ import wrap3 from "wrap-ansi";
467
+ var SimpleView = class {
468
+ termWidth;
469
+ config;
470
+ constructor(config) {
471
+ this.config = config;
472
+ this.termWidth = process.stdout.columns || 80;
473
+ }
474
+ updateTerminalWidth(width) {
475
+ this.termWidth = width;
476
+ }
477
+ /**
478
+ * Renders a single log entry based on the current view mode
479
+ */
480
+ renderLogLine(entry) {
481
+ const levelColor = getLevelColor(entry.level, this.config.config.colors);
482
+ const chevron = levelColor(`\u25B6 ${entry.level.toUpperCase()} `);
483
+ const message = entry.message || "(no message)";
484
+ const timestamp = formatTimestamp(entry.timestamp, this.config.config.logIdColor);
485
+ switch (this.config.viewMode) {
486
+ case "condensed": {
487
+ const condensedLine = `${timestamp} ${chevron}${message}`;
488
+ console.log(wrap3(condensedLine, this.termWidth, { hard: true }));
489
+ break;
490
+ }
491
+ case "full": {
492
+ const logId = this.config.config.logIdColor(`[${entry.id}]`);
493
+ const fullData = entry.data ? formatInlineData(
494
+ JSON.parse(entry.data),
495
+ this.config.config,
496
+ this.config.maxInlineDepth,
497
+ this.config.maxInlineLength,
498
+ true
499
+ ) : "";
500
+ const expandedLine = `${timestamp} ${chevron}${logId} ${message}${fullData ? ` ${fullData}` : ""}`;
501
+ console.log(wrap3(expandedLine, this.termWidth, { hard: true }));
502
+ break;
503
+ }
504
+ default: {
505
+ const logId = this.config.config.logIdColor(`[${entry.id}]`);
506
+ const normalData = entry.data ? formatInlineData(
507
+ JSON.parse(entry.data),
508
+ this.config.config,
509
+ this.config.maxInlineDepth,
510
+ this.config.maxInlineLength
511
+ ) : "";
512
+ const normalLine = `${timestamp} ${chevron}${logId} ${message}${normalData ? ` ${normalData}` : ""}`;
513
+ console.log(wrap3(normalLine, this.termWidth, { hard: true }));
514
+ break;
515
+ }
516
+ }
517
+ }
518
+ render() {
519
+ throw new Error("SimpleView.render() should not be called directly. Use renderLogLine() instead.");
520
+ }
521
+ };
522
+
525
523
  // src/LogRenderer.ts
526
524
  var LogRenderer = class {
527
525
  /** Current terminal width in characters */
@@ -713,7 +711,7 @@ var LogRenderer = class {
713
711
  };
714
712
 
715
713
  // src/LogStorage.ts
716
- import { resolve } from "node:path";
714
+ import { resolve } from "path";
717
715
  import Database from "better-sqlite3";
718
716
  var LogStorage = class {
719
717
  /** SQLite database instance */
@@ -839,8 +837,295 @@ var LogStorage = class {
839
837
  }
840
838
  };
841
839
 
842
- // src/UIManager.ts
840
+ // src/themes.ts
843
841
  import chalk5 from "chalk";
842
+ var moonlight = {
843
+ simpleView: {
844
+ colors: {
845
+ trace: chalk5.rgb(114, 135, 153),
846
+ // Muted blue-grey for less important info
847
+ debug: chalk5.rgb(130, 170, 255),
848
+ // Soft blue that pops but doesn't strain
849
+ info: chalk5.rgb(195, 232, 141),
850
+ // Sage green for good readability
851
+ warn: chalk5.rgb(255, 203, 107),
852
+ // Warm yellow, less harsh than pure yellow
853
+ error: chalk5.rgb(247, 118, 142),
854
+ // Soft red that stands out without being aggressive
855
+ fatal: chalk5.bgRgb(247, 118, 142).white
856
+ // Inverted soft red for maximum visibility
857
+ },
858
+ logIdColor: chalk5.rgb(84, 98, 117),
859
+ // Darker blue-grey for secondary information
860
+ dataValueColor: chalk5.rgb(209, 219, 231),
861
+ // Light grey-blue for primary content
862
+ dataKeyColor: chalk5.rgb(130, 170, 255),
863
+ // Matching debug blue for consistency
864
+ selectorColor: chalk5.rgb(137, 221, 255)
865
+ // Ice blue for selection indicators
866
+ },
867
+ detailedView: {
868
+ colors: {
869
+ trace: chalk5.rgb(114, 135, 153),
870
+ debug: chalk5.rgb(130, 170, 255),
871
+ info: chalk5.rgb(195, 232, 141),
872
+ warn: chalk5.rgb(255, 203, 107),
873
+ error: chalk5.rgb(247, 118, 142),
874
+ fatal: chalk5.bgRgb(247, 118, 142).white
875
+ },
876
+ logIdColor: chalk5.rgb(84, 98, 117),
877
+ dataValueColor: chalk5.rgb(209, 219, 231),
878
+ dataKeyColor: chalk5.rgb(130, 170, 255),
879
+ selectorColor: chalk5.rgb(137, 221, 255),
880
+ // Ice blue for selection indicators
881
+ headerColor: chalk5.rgb(137, 221, 255),
882
+ labelColor: chalk5.rgb(137, 221, 255).bold,
883
+ separatorColor: chalk5.rgb(84, 98, 117),
884
+ jsonColors: {
885
+ keysColor: chalk5.rgb(130, 170, 255),
886
+ dashColor: chalk5.rgb(209, 219, 231),
887
+ numberColor: chalk5.rgb(247, 140, 108),
888
+ stringColor: chalk5.rgb(195, 232, 141),
889
+ multilineStringColor: chalk5.rgb(195, 232, 141),
890
+ positiveNumberColor: chalk5.rgb(195, 232, 141),
891
+ negativeNumberColor: chalk5.rgb(247, 118, 142),
892
+ booleanColor: chalk5.rgb(255, 203, 107),
893
+ nullUndefinedColor: chalk5.rgb(114, 135, 153),
894
+ dateColor: chalk5.rgb(199, 146, 234)
895
+ }
896
+ }
897
+ };
898
+ var sunlight = {
899
+ simpleView: {
900
+ colors: {
901
+ trace: chalk5.rgb(110, 110, 110),
902
+ // Dark grey for subtle information
903
+ debug: chalk5.rgb(32, 96, 159),
904
+ // Deep blue for strong contrast on white
905
+ info: chalk5.rgb(35, 134, 54),
906
+ // Forest green, easier on the eyes than bright green
907
+ warn: chalk5.rgb(176, 95, 0),
908
+ // Brown-orange for natural warning color
909
+ error: chalk5.rgb(191, 0, 0),
910
+ // Deep red for clear visibility on light backgrounds
911
+ fatal: chalk5.bgRgb(191, 0, 0).white
912
+ // White on deep red for critical issues
913
+ },
914
+ logIdColor: chalk5.rgb(110, 110, 110),
915
+ dataValueColor: chalk5.rgb(0, 0, 0),
916
+ dataKeyColor: chalk5.rgb(32, 96, 159),
917
+ selectorColor: chalk5.rgb(0, 91, 129)
918
+ // Deep blue for strong contrast
919
+ },
920
+ detailedView: {
921
+ colors: {
922
+ trace: chalk5.rgb(110, 110, 110),
923
+ debug: chalk5.rgb(32, 96, 159),
924
+ info: chalk5.rgb(35, 134, 54),
925
+ warn: chalk5.rgb(176, 95, 0),
926
+ error: chalk5.rgb(191, 0, 0),
927
+ fatal: chalk5.bgRgb(191, 0, 0).white
928
+ },
929
+ logIdColor: chalk5.rgb(110, 110, 110),
930
+ dataValueColor: chalk5.rgb(0, 0, 0),
931
+ dataKeyColor: chalk5.rgb(32, 96, 159),
932
+ selectorColor: chalk5.rgb(0, 91, 129),
933
+ // Deep blue for strong contrast
934
+ headerColor: chalk5.rgb(0, 91, 129),
935
+ labelColor: chalk5.rgb(0, 91, 129).bold,
936
+ separatorColor: chalk5.rgb(110, 110, 110),
937
+ jsonColors: {
938
+ keysColor: chalk5.rgb(32, 96, 159),
939
+ dashColor: chalk5.rgb(0, 0, 0),
940
+ numberColor: chalk5.rgb(170, 55, 49),
941
+ stringColor: chalk5.rgb(35, 134, 54),
942
+ multilineStringColor: chalk5.rgb(35, 134, 54),
943
+ positiveNumberColor: chalk5.rgb(46, 125, 50),
944
+ negativeNumberColor: chalk5.rgb(183, 28, 28),
945
+ booleanColor: chalk5.rgb(176, 95, 0),
946
+ nullUndefinedColor: chalk5.rgb(110, 110, 110),
947
+ dateColor: chalk5.rgb(123, 31, 162)
948
+ }
949
+ }
950
+ };
951
+ var neon = {
952
+ simpleView: {
953
+ colors: {
954
+ trace: chalk5.rgb(108, 108, 255),
955
+ // Electric blue
956
+ debug: chalk5.rgb(255, 82, 246),
957
+ // Hot pink
958
+ info: chalk5.rgb(0, 255, 163),
959
+ // Cyber green
960
+ warn: chalk5.rgb(255, 231, 46),
961
+ // Electric yellow
962
+ error: chalk5.rgb(255, 53, 91),
963
+ // Neon red
964
+ fatal: chalk5.bgRgb(255, 53, 91).rgb(0, 255, 163)
965
+ // Neon red bg with cyber green text
966
+ },
967
+ logIdColor: chalk5.rgb(187, 134, 252),
968
+ // Bright purple
969
+ dataValueColor: chalk5.rgb(255, 255, 255),
970
+ // Pure white
971
+ dataKeyColor: chalk5.rgb(0, 255, 240),
972
+ // Cyan
973
+ selectorColor: chalk5.rgb(0, 255, 240)
974
+ // Electric cyan for cyberpunk feel
975
+ },
976
+ detailedView: {
977
+ colors: {
978
+ trace: chalk5.rgb(108, 108, 255),
979
+ debug: chalk5.rgb(255, 82, 246),
980
+ info: chalk5.rgb(0, 255, 163),
981
+ warn: chalk5.rgb(255, 231, 46),
982
+ error: chalk5.rgb(255, 53, 91),
983
+ fatal: chalk5.bgRgb(255, 53, 91).rgb(0, 255, 163)
984
+ },
985
+ logIdColor: chalk5.rgb(187, 134, 252),
986
+ dataValueColor: chalk5.rgb(255, 255, 255),
987
+ dataKeyColor: chalk5.rgb(0, 255, 240),
988
+ selectorColor: chalk5.rgb(0, 255, 240),
989
+ // Electric cyan for cyberpunk feel
990
+ headerColor: chalk5.rgb(255, 82, 246),
991
+ labelColor: chalk5.rgb(255, 82, 246).bold,
992
+ separatorColor: chalk5.rgb(108, 108, 255),
993
+ jsonColors: {
994
+ keysColor: chalk5.rgb(0, 255, 240),
995
+ dashColor: chalk5.rgb(255, 255, 255),
996
+ numberColor: chalk5.rgb(255, 82, 246),
997
+ stringColor: chalk5.rgb(0, 255, 163),
998
+ multilineStringColor: chalk5.rgb(0, 255, 163),
999
+ positiveNumberColor: chalk5.rgb(0, 255, 163),
1000
+ negativeNumberColor: chalk5.rgb(255, 53, 91),
1001
+ booleanColor: chalk5.rgb(255, 231, 46),
1002
+ nullUndefinedColor: chalk5.rgb(108, 108, 255),
1003
+ dateColor: chalk5.rgb(187, 134, 252)
1004
+ }
1005
+ }
1006
+ };
1007
+ var nature = {
1008
+ simpleView: {
1009
+ colors: {
1010
+ trace: chalk5.rgb(121, 85, 72),
1011
+ // Wooden brown
1012
+ debug: chalk5.rgb(46, 125, 50),
1013
+ // Forest green
1014
+ info: chalk5.rgb(0, 105, 92),
1015
+ // Deep teal
1016
+ warn: chalk5.rgb(175, 115, 0),
1017
+ // Golden amber
1018
+ error: chalk5.rgb(183, 28, 28),
1019
+ // Autumn red
1020
+ fatal: chalk5.bgRgb(183, 28, 28).rgb(255, 250, 240)
1021
+ // Red bg with soft white
1022
+ },
1023
+ logIdColor: chalk5.rgb(93, 64, 55),
1024
+ // Deep bark brown
1025
+ dataValueColor: chalk5.rgb(27, 27, 27),
1026
+ // Near black
1027
+ dataKeyColor: chalk5.rgb(56, 142, 60),
1028
+ // Leaf green
1029
+ selectorColor: chalk5.rgb(0, 105, 92)
1030
+ // Deep teal for natural feel
1031
+ },
1032
+ detailedView: {
1033
+ colors: {
1034
+ trace: chalk5.rgb(121, 85, 72),
1035
+ debug: chalk5.rgb(46, 125, 50),
1036
+ info: chalk5.rgb(0, 105, 92),
1037
+ warn: chalk5.rgb(175, 115, 0),
1038
+ error: chalk5.rgb(183, 28, 28),
1039
+ fatal: chalk5.bgRgb(183, 28, 28).rgb(255, 250, 240)
1040
+ },
1041
+ logIdColor: chalk5.rgb(93, 64, 55),
1042
+ dataValueColor: chalk5.rgb(27, 27, 27),
1043
+ dataKeyColor: chalk5.rgb(56, 142, 60),
1044
+ selectorColor: chalk5.rgb(0, 105, 92),
1045
+ // Deep teal for natural feel
1046
+ headerColor: chalk5.rgb(0, 77, 64),
1047
+ labelColor: chalk5.rgb(0, 77, 64).bold,
1048
+ separatorColor: chalk5.rgb(121, 85, 72),
1049
+ jsonColors: {
1050
+ keysColor: chalk5.rgb(56, 142, 60),
1051
+ dashColor: chalk5.rgb(27, 27, 27),
1052
+ numberColor: chalk5.rgb(230, 81, 0),
1053
+ stringColor: chalk5.rgb(0, 105, 92),
1054
+ multilineStringColor: chalk5.rgb(0, 105, 92),
1055
+ positiveNumberColor: chalk5.rgb(46, 125, 50),
1056
+ negativeNumberColor: chalk5.rgb(183, 28, 28),
1057
+ booleanColor: chalk5.rgb(175, 115, 0),
1058
+ nullUndefinedColor: chalk5.rgb(121, 85, 72),
1059
+ dateColor: chalk5.rgb(123, 31, 162)
1060
+ }
1061
+ }
1062
+ };
1063
+ var pastel = {
1064
+ simpleView: {
1065
+ colors: {
1066
+ trace: chalk5.rgb(179, 189, 203),
1067
+ // Soft slate blue
1068
+ debug: chalk5.rgb(189, 178, 255),
1069
+ // Gentle lavender
1070
+ info: chalk5.rgb(170, 236, 205),
1071
+ // Mint green
1072
+ warn: chalk5.rgb(255, 223, 186),
1073
+ // Peach
1074
+ error: chalk5.rgb(255, 188, 188),
1075
+ // Soft coral
1076
+ fatal: chalk5.bgRgb(255, 188, 188).rgb(76, 40, 40)
1077
+ // Coral bg with deep brown
1078
+ },
1079
+ logIdColor: chalk5.rgb(203, 195, 227),
1080
+ // Dusty lavender
1081
+ dataValueColor: chalk5.rgb(236, 236, 236),
1082
+ // Soft white
1083
+ dataKeyColor: chalk5.rgb(186, 207, 255),
1084
+ // Baby blue
1085
+ selectorColor: chalk5.rgb(189, 178, 255)
1086
+ // Soft lavender for gentle highlighting
1087
+ },
1088
+ detailedView: {
1089
+ colors: {
1090
+ trace: chalk5.rgb(179, 189, 203),
1091
+ debug: chalk5.rgb(189, 178, 255),
1092
+ info: chalk5.rgb(170, 236, 205),
1093
+ warn: chalk5.rgb(255, 223, 186),
1094
+ error: chalk5.rgb(255, 188, 188),
1095
+ fatal: chalk5.bgRgb(255, 188, 188).rgb(76, 40, 40)
1096
+ },
1097
+ logIdColor: chalk5.rgb(203, 195, 227),
1098
+ dataValueColor: chalk5.rgb(236, 236, 236),
1099
+ dataKeyColor: chalk5.rgb(186, 207, 255),
1100
+ selectorColor: chalk5.rgb(189, 178, 255),
1101
+ // Soft lavender for gentle highlighting
1102
+ headerColor: chalk5.rgb(255, 198, 255),
1103
+ // Cotton candy pink
1104
+ labelColor: chalk5.rgb(255, 198, 255).bold,
1105
+ separatorColor: chalk5.rgb(179, 189, 203),
1106
+ jsonColors: {
1107
+ keysColor: chalk5.rgb(186, 207, 255),
1108
+ // Baby blue
1109
+ dashColor: chalk5.rgb(236, 236, 236),
1110
+ // Soft white
1111
+ numberColor: chalk5.rgb(255, 198, 255),
1112
+ // Cotton candy pink
1113
+ stringColor: chalk5.rgb(170, 236, 205),
1114
+ // Mint green
1115
+ multilineStringColor: chalk5.rgb(170, 236, 205),
1116
+ positiveNumberColor: chalk5.rgb(170, 236, 205),
1117
+ negativeNumberColor: chalk5.rgb(255, 188, 188),
1118
+ booleanColor: chalk5.rgb(255, 223, 186),
1119
+ // Peach
1120
+ nullUndefinedColor: chalk5.rgb(179, 189, 203),
1121
+ dateColor: chalk5.rgb(189, 178, 255)
1122
+ // Gentle lavender
1123
+ }
1124
+ }
1125
+ };
1126
+
1127
+ // src/UIManager.ts
1128
+ import chalk6 from "chalk";
844
1129
  import keypress from "keypress";
845
1130
  var UIManager = class {
846
1131
  /**
@@ -994,7 +1279,7 @@ var UIManager = class {
994
1279
  updateNewLogsNotification() {
995
1280
  if (!this.isSelectionMode || !this.selectionBuffer.length) return;
996
1281
  process.stdout.write(`\x1B[2A\r${" ".repeat(this.termWidth)}\r`);
997
- const notification = chalk5.dim(
1282
+ const notification = chalk6.dim(
998
1283
  `${this.selectionBuffer.length} new log${this.selectionBuffer.length === 1 ? "" : "s"} available (press \u2193 to view)`
999
1284
  );
1000
1285
  process.stdout.write(`${notification}
@@ -1021,7 +1306,7 @@ var UIManager = class {
1021
1306
  if (!this.isDetailView) {
1022
1307
  if (this.isPaused) {
1023
1308
  this.pauseBuffer.push(entry);
1024
- process.stdout.write(`\r${chalk5.yellow(`\u23F8 Paused (${this.pauseBuffer.length} new logs)`)}${" ".repeat(20)}`);
1309
+ process.stdout.write(`\r${chalk6.yellow(`\u23F8 Paused (${this.pauseBuffer.length} new logs)`)}${" ".repeat(20)}`);
1025
1310
  } else {
1026
1311
  this.renderer.renderLogLine(entry);
1027
1312
  }
@@ -1062,7 +1347,7 @@ var UIManager = class {
1062
1347
  }
1063
1348
  this.pauseBuffer = [];
1064
1349
  } else if (this.isPaused) {
1065
- process.stdout.write(`\r${chalk5.yellow("\u23F8 Paused (0 new logs)")}${" ".repeat(20)}`);
1350
+ process.stdout.write(`\r${chalk6.yellow("\u23F8 Paused (0 new logs)")}${" ".repeat(20)}`);
1066
1351
  }
1067
1352
  return;
1068
1353
  }
@@ -1089,7 +1374,7 @@ var UIManager = class {
1089
1374
  truncated: "Truncated view enabled (timestamp, ID, level, message, truncated data)",
1090
1375
  condensed: "Condensed view enabled (timestamp, level and message only)"
1091
1376
  };
1092
- process.stdout.write(`\r${chalk5.cyan(`\u2139 ${modeDescriptions[newMode]}`)}${" ".repeat(20)}`);
1377
+ process.stdout.write(`\r${chalk6.cyan(`\u2139 ${modeDescriptions[newMode]}`)}${" ".repeat(20)}`);
1093
1378
  setTimeout(() => {
1094
1379
  process.stdout.write(`\r${" ".repeat(100)}\r`);
1095
1380
  }, 3e3);
@@ -1373,293 +1658,6 @@ var UIManager = class {
1373
1658
  }
1374
1659
  };
1375
1660
 
1376
- // src/themes.ts
1377
- import chalk6 from "chalk";
1378
- var moonlight = {
1379
- simpleView: {
1380
- colors: {
1381
- trace: chalk6.rgb(114, 135, 153),
1382
- // Muted blue-grey for less important info
1383
- debug: chalk6.rgb(130, 170, 255),
1384
- // Soft blue that pops but doesn't strain
1385
- info: chalk6.rgb(195, 232, 141),
1386
- // Sage green for good readability
1387
- warn: chalk6.rgb(255, 203, 107),
1388
- // Warm yellow, less harsh than pure yellow
1389
- error: chalk6.rgb(247, 118, 142),
1390
- // Soft red that stands out without being aggressive
1391
- fatal: chalk6.bgRgb(247, 118, 142).white
1392
- // Inverted soft red for maximum visibility
1393
- },
1394
- logIdColor: chalk6.rgb(84, 98, 117),
1395
- // Darker blue-grey for secondary information
1396
- dataValueColor: chalk6.rgb(209, 219, 231),
1397
- // Light grey-blue for primary content
1398
- dataKeyColor: chalk6.rgb(130, 170, 255),
1399
- // Matching debug blue for consistency
1400
- selectorColor: chalk6.rgb(137, 221, 255)
1401
- // Ice blue for selection indicators
1402
- },
1403
- detailedView: {
1404
- colors: {
1405
- trace: chalk6.rgb(114, 135, 153),
1406
- debug: chalk6.rgb(130, 170, 255),
1407
- info: chalk6.rgb(195, 232, 141),
1408
- warn: chalk6.rgb(255, 203, 107),
1409
- error: chalk6.rgb(247, 118, 142),
1410
- fatal: chalk6.bgRgb(247, 118, 142).white
1411
- },
1412
- logIdColor: chalk6.rgb(84, 98, 117),
1413
- dataValueColor: chalk6.rgb(209, 219, 231),
1414
- dataKeyColor: chalk6.rgb(130, 170, 255),
1415
- selectorColor: chalk6.rgb(137, 221, 255),
1416
- // Ice blue for selection indicators
1417
- headerColor: chalk6.rgb(137, 221, 255),
1418
- labelColor: chalk6.rgb(137, 221, 255).bold,
1419
- separatorColor: chalk6.rgb(84, 98, 117),
1420
- jsonColors: {
1421
- keysColor: chalk6.rgb(130, 170, 255),
1422
- dashColor: chalk6.rgb(209, 219, 231),
1423
- numberColor: chalk6.rgb(247, 140, 108),
1424
- stringColor: chalk6.rgb(195, 232, 141),
1425
- multilineStringColor: chalk6.rgb(195, 232, 141),
1426
- positiveNumberColor: chalk6.rgb(195, 232, 141),
1427
- negativeNumberColor: chalk6.rgb(247, 118, 142),
1428
- booleanColor: chalk6.rgb(255, 203, 107),
1429
- nullUndefinedColor: chalk6.rgb(114, 135, 153),
1430
- dateColor: chalk6.rgb(199, 146, 234)
1431
- }
1432
- }
1433
- };
1434
- var sunlight = {
1435
- simpleView: {
1436
- colors: {
1437
- trace: chalk6.rgb(110, 110, 110),
1438
- // Dark grey for subtle information
1439
- debug: chalk6.rgb(32, 96, 159),
1440
- // Deep blue for strong contrast on white
1441
- info: chalk6.rgb(35, 134, 54),
1442
- // Forest green, easier on the eyes than bright green
1443
- warn: chalk6.rgb(176, 95, 0),
1444
- // Brown-orange for natural warning color
1445
- error: chalk6.rgb(191, 0, 0),
1446
- // Deep red for clear visibility on light backgrounds
1447
- fatal: chalk6.bgRgb(191, 0, 0).white
1448
- // White on deep red for critical issues
1449
- },
1450
- logIdColor: chalk6.rgb(110, 110, 110),
1451
- dataValueColor: chalk6.rgb(0, 0, 0),
1452
- dataKeyColor: chalk6.rgb(32, 96, 159),
1453
- selectorColor: chalk6.rgb(0, 91, 129)
1454
- // Deep blue for strong contrast
1455
- },
1456
- detailedView: {
1457
- colors: {
1458
- trace: chalk6.rgb(110, 110, 110),
1459
- debug: chalk6.rgb(32, 96, 159),
1460
- info: chalk6.rgb(35, 134, 54),
1461
- warn: chalk6.rgb(176, 95, 0),
1462
- error: chalk6.rgb(191, 0, 0),
1463
- fatal: chalk6.bgRgb(191, 0, 0).white
1464
- },
1465
- logIdColor: chalk6.rgb(110, 110, 110),
1466
- dataValueColor: chalk6.rgb(0, 0, 0),
1467
- dataKeyColor: chalk6.rgb(32, 96, 159),
1468
- selectorColor: chalk6.rgb(0, 91, 129),
1469
- // Deep blue for strong contrast
1470
- headerColor: chalk6.rgb(0, 91, 129),
1471
- labelColor: chalk6.rgb(0, 91, 129).bold,
1472
- separatorColor: chalk6.rgb(110, 110, 110),
1473
- jsonColors: {
1474
- keysColor: chalk6.rgb(32, 96, 159),
1475
- dashColor: chalk6.rgb(0, 0, 0),
1476
- numberColor: chalk6.rgb(170, 55, 49),
1477
- stringColor: chalk6.rgb(35, 134, 54),
1478
- multilineStringColor: chalk6.rgb(35, 134, 54),
1479
- positiveNumberColor: chalk6.rgb(46, 125, 50),
1480
- negativeNumberColor: chalk6.rgb(183, 28, 28),
1481
- booleanColor: chalk6.rgb(176, 95, 0),
1482
- nullUndefinedColor: chalk6.rgb(110, 110, 110),
1483
- dateColor: chalk6.rgb(123, 31, 162)
1484
- }
1485
- }
1486
- };
1487
- var neon = {
1488
- simpleView: {
1489
- colors: {
1490
- trace: chalk6.rgb(108, 108, 255),
1491
- // Electric blue
1492
- debug: chalk6.rgb(255, 82, 246),
1493
- // Hot pink
1494
- info: chalk6.rgb(0, 255, 163),
1495
- // Cyber green
1496
- warn: chalk6.rgb(255, 231, 46),
1497
- // Electric yellow
1498
- error: chalk6.rgb(255, 53, 91),
1499
- // Neon red
1500
- fatal: chalk6.bgRgb(255, 53, 91).rgb(0, 255, 163)
1501
- // Neon red bg with cyber green text
1502
- },
1503
- logIdColor: chalk6.rgb(187, 134, 252),
1504
- // Bright purple
1505
- dataValueColor: chalk6.rgb(255, 255, 255),
1506
- // Pure white
1507
- dataKeyColor: chalk6.rgb(0, 255, 240),
1508
- // Cyan
1509
- selectorColor: chalk6.rgb(0, 255, 240)
1510
- // Electric cyan for cyberpunk feel
1511
- },
1512
- detailedView: {
1513
- colors: {
1514
- trace: chalk6.rgb(108, 108, 255),
1515
- debug: chalk6.rgb(255, 82, 246),
1516
- info: chalk6.rgb(0, 255, 163),
1517
- warn: chalk6.rgb(255, 231, 46),
1518
- error: chalk6.rgb(255, 53, 91),
1519
- fatal: chalk6.bgRgb(255, 53, 91).rgb(0, 255, 163)
1520
- },
1521
- logIdColor: chalk6.rgb(187, 134, 252),
1522
- dataValueColor: chalk6.rgb(255, 255, 255),
1523
- dataKeyColor: chalk6.rgb(0, 255, 240),
1524
- selectorColor: chalk6.rgb(0, 255, 240),
1525
- // Electric cyan for cyberpunk feel
1526
- headerColor: chalk6.rgb(255, 82, 246),
1527
- labelColor: chalk6.rgb(255, 82, 246).bold,
1528
- separatorColor: chalk6.rgb(108, 108, 255),
1529
- jsonColors: {
1530
- keysColor: chalk6.rgb(0, 255, 240),
1531
- dashColor: chalk6.rgb(255, 255, 255),
1532
- numberColor: chalk6.rgb(255, 82, 246),
1533
- stringColor: chalk6.rgb(0, 255, 163),
1534
- multilineStringColor: chalk6.rgb(0, 255, 163),
1535
- positiveNumberColor: chalk6.rgb(0, 255, 163),
1536
- negativeNumberColor: chalk6.rgb(255, 53, 91),
1537
- booleanColor: chalk6.rgb(255, 231, 46),
1538
- nullUndefinedColor: chalk6.rgb(108, 108, 255),
1539
- dateColor: chalk6.rgb(187, 134, 252)
1540
- }
1541
- }
1542
- };
1543
- var nature = {
1544
- simpleView: {
1545
- colors: {
1546
- trace: chalk6.rgb(121, 85, 72),
1547
- // Wooden brown
1548
- debug: chalk6.rgb(46, 125, 50),
1549
- // Forest green
1550
- info: chalk6.rgb(0, 105, 92),
1551
- // Deep teal
1552
- warn: chalk6.rgb(175, 115, 0),
1553
- // Golden amber
1554
- error: chalk6.rgb(183, 28, 28),
1555
- // Autumn red
1556
- fatal: chalk6.bgRgb(183, 28, 28).rgb(255, 250, 240)
1557
- // Red bg with soft white
1558
- },
1559
- logIdColor: chalk6.rgb(93, 64, 55),
1560
- // Deep bark brown
1561
- dataValueColor: chalk6.rgb(27, 27, 27),
1562
- // Near black
1563
- dataKeyColor: chalk6.rgb(56, 142, 60),
1564
- // Leaf green
1565
- selectorColor: chalk6.rgb(0, 105, 92)
1566
- // Deep teal for natural feel
1567
- },
1568
- detailedView: {
1569
- colors: {
1570
- trace: chalk6.rgb(121, 85, 72),
1571
- debug: chalk6.rgb(46, 125, 50),
1572
- info: chalk6.rgb(0, 105, 92),
1573
- warn: chalk6.rgb(175, 115, 0),
1574
- error: chalk6.rgb(183, 28, 28),
1575
- fatal: chalk6.bgRgb(183, 28, 28).rgb(255, 250, 240)
1576
- },
1577
- logIdColor: chalk6.rgb(93, 64, 55),
1578
- dataValueColor: chalk6.rgb(27, 27, 27),
1579
- dataKeyColor: chalk6.rgb(56, 142, 60),
1580
- selectorColor: chalk6.rgb(0, 105, 92),
1581
- // Deep teal for natural feel
1582
- headerColor: chalk6.rgb(0, 77, 64),
1583
- labelColor: chalk6.rgb(0, 77, 64).bold,
1584
- separatorColor: chalk6.rgb(121, 85, 72),
1585
- jsonColors: {
1586
- keysColor: chalk6.rgb(56, 142, 60),
1587
- dashColor: chalk6.rgb(27, 27, 27),
1588
- numberColor: chalk6.rgb(230, 81, 0),
1589
- stringColor: chalk6.rgb(0, 105, 92),
1590
- multilineStringColor: chalk6.rgb(0, 105, 92),
1591
- positiveNumberColor: chalk6.rgb(46, 125, 50),
1592
- negativeNumberColor: chalk6.rgb(183, 28, 28),
1593
- booleanColor: chalk6.rgb(175, 115, 0),
1594
- nullUndefinedColor: chalk6.rgb(121, 85, 72),
1595
- dateColor: chalk6.rgb(123, 31, 162)
1596
- }
1597
- }
1598
- };
1599
- var pastel = {
1600
- simpleView: {
1601
- colors: {
1602
- trace: chalk6.rgb(179, 189, 203),
1603
- // Soft slate blue
1604
- debug: chalk6.rgb(189, 178, 255),
1605
- // Gentle lavender
1606
- info: chalk6.rgb(170, 236, 205),
1607
- // Mint green
1608
- warn: chalk6.rgb(255, 223, 186),
1609
- // Peach
1610
- error: chalk6.rgb(255, 188, 188),
1611
- // Soft coral
1612
- fatal: chalk6.bgRgb(255, 188, 188).rgb(76, 40, 40)
1613
- // Coral bg with deep brown
1614
- },
1615
- logIdColor: chalk6.rgb(203, 195, 227),
1616
- // Dusty lavender
1617
- dataValueColor: chalk6.rgb(236, 236, 236),
1618
- // Soft white
1619
- dataKeyColor: chalk6.rgb(186, 207, 255),
1620
- // Baby blue
1621
- selectorColor: chalk6.rgb(189, 178, 255)
1622
- // Soft lavender for gentle highlighting
1623
- },
1624
- detailedView: {
1625
- colors: {
1626
- trace: chalk6.rgb(179, 189, 203),
1627
- debug: chalk6.rgb(189, 178, 255),
1628
- info: chalk6.rgb(170, 236, 205),
1629
- warn: chalk6.rgb(255, 223, 186),
1630
- error: chalk6.rgb(255, 188, 188),
1631
- fatal: chalk6.bgRgb(255, 188, 188).rgb(76, 40, 40)
1632
- },
1633
- logIdColor: chalk6.rgb(203, 195, 227),
1634
- dataValueColor: chalk6.rgb(236, 236, 236),
1635
- dataKeyColor: chalk6.rgb(186, 207, 255),
1636
- selectorColor: chalk6.rgb(189, 178, 255),
1637
- // Soft lavender for gentle highlighting
1638
- headerColor: chalk6.rgb(255, 198, 255),
1639
- // Cotton candy pink
1640
- labelColor: chalk6.rgb(255, 198, 255).bold,
1641
- separatorColor: chalk6.rgb(179, 189, 203),
1642
- jsonColors: {
1643
- keysColor: chalk6.rgb(186, 207, 255),
1644
- // Baby blue
1645
- dashColor: chalk6.rgb(236, 236, 236),
1646
- // Soft white
1647
- numberColor: chalk6.rgb(255, 198, 255),
1648
- // Cotton candy pink
1649
- stringColor: chalk6.rgb(170, 236, 205),
1650
- // Mint green
1651
- multilineStringColor: chalk6.rgb(170, 236, 205),
1652
- positiveNumberColor: chalk6.rgb(170, 236, 205),
1653
- negativeNumberColor: chalk6.rgb(255, 188, 188),
1654
- booleanColor: chalk6.rgb(255, 223, 186),
1655
- // Peach
1656
- nullUndefinedColor: chalk6.rgb(179, 189, 203),
1657
- dateColor: chalk6.rgb(189, 178, 255)
1658
- // Gentle lavender
1659
- }
1660
- }
1661
- };
1662
-
1663
1661
  // src/PrettyTerminalTransport.ts
1664
1662
  var PrettyTerminalTransport = class _PrettyTerminalTransport extends LoggerlessTransport {
1665
1663
  /** Singleton instance of the transport */