@mks2508/better-logger 2.0.0 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/bun.lock +333 -0
  2. package/dist/Logger.d.ts +704 -0
  3. package/dist/Logger.d.ts.map +1 -0
  4. package/dist/ScopedLogger.d.ts +310 -0
  5. package/dist/ScopedLogger.d.ts.map +1 -0
  6. package/dist/chunks/Logger-B7L-ujY4.js +3503 -0
  7. package/dist/chunks/Logger-B7L-ujY4.js.map +1 -0
  8. package/dist/chunks/Logger-DzU_c5sX.js +2 -0
  9. package/dist/chunks/Logger-DzU_c5sX.js.map +1 -0
  10. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
  11. package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
  12. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
  13. package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
  14. package/dist/chunks/ScopedLogger-BY3-E8Ov.js +2 -0
  15. package/dist/chunks/ScopedLogger-BY3-E8Ov.js.map +1 -0
  16. package/dist/chunks/ScopedLogger-D-RbiFZn.js +361 -0
  17. package/dist/chunks/ScopedLogger-D-RbiFZn.js.map +1 -0
  18. package/dist/chunks/environment-Ba5kShbx.js +4 -0
  19. package/dist/chunks/environment-Ba5kShbx.js.map +1 -0
  20. package/dist/chunks/environment-TI2ByCPT.js +1209 -0
  21. package/dist/chunks/environment-TI2ByCPT.js.map +1 -0
  22. package/dist/chunks/formatting-Blwy-f0W.js +2 -0
  23. package/dist/chunks/formatting-Blwy-f0W.js.map +1 -0
  24. package/dist/chunks/formatting-CuNUqGks.js +380 -0
  25. package/dist/chunks/formatting-CuNUqGks.js.map +1 -0
  26. package/dist/cli/CommandProcessor.d.ts +100 -0
  27. package/dist/cli/CommandProcessor.d.ts.map +1 -0
  28. package/dist/cli/commands/ConfigCommand.d.ts +14 -0
  29. package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
  30. package/dist/cli/commands/ExportCommand.d.ts +48 -0
  31. package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
  32. package/dist/cli/commands/HistoryCommand.d.ts +47 -0
  33. package/dist/cli/commands/HistoryCommand.d.ts.map +1 -0
  34. package/dist/cli/commands/StatusCommand.d.ts +30 -0
  35. package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
  36. package/dist/cli/commands/ThemeCommand.d.ts +30 -0
  37. package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
  38. package/dist/cli/help.d.ts +12 -0
  39. package/dist/cli/help.d.ts.map +1 -0
  40. package/dist/cli/index.d.ts +15 -0
  41. package/dist/cli/index.d.ts.map +1 -0
  42. package/dist/constants.d.ts +227 -0
  43. package/dist/constants.d.ts.map +1 -0
  44. package/dist/core.cjs +2 -0
  45. package/dist/core.cjs.map +1 -0
  46. package/dist/core.d.ts +127 -0
  47. package/dist/core.d.ts.map +1 -0
  48. package/dist/core.js +291 -0
  49. package/dist/core.js.map +1 -0
  50. package/dist/example.d.ts +18 -0
  51. package/dist/example.d.ts.map +1 -0
  52. package/dist/exports-module.d.ts +196 -0
  53. package/dist/exports-module.d.ts.map +1 -0
  54. package/dist/exports.cjs +2 -0
  55. package/dist/exports.cjs.map +1 -0
  56. package/dist/exports.js +238 -0
  57. package/dist/exports.js.map +1 -0
  58. package/dist/handlers/AnalyticsLogHandler.d.ts +8 -0
  59. package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
  60. package/dist/handlers/ExportLogHandler.d.ts +100 -0
  61. package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
  62. package/dist/handlers/FileLogHandler.d.ts +33 -0
  63. package/dist/handlers/FileLogHandler.d.ts.map +1 -0
  64. package/dist/handlers/RemoteLogHandler.d.ts +11 -0
  65. package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
  66. package/dist/handlers/index.d.ts +8 -0
  67. package/dist/handlers/index.d.ts.map +1 -0
  68. package/dist/index.cjs +2 -0
  69. package/dist/index.cjs.map +1 -0
  70. package/dist/index.d.ts +124 -0
  71. package/dist/index.d.ts.map +1 -0
  72. package/dist/index.js +247 -0
  73. package/dist/index.js.map +1 -0
  74. package/dist/main.d.ts +2 -0
  75. package/dist/main.d.ts.map +1 -0
  76. package/dist/styling/LogStyleBuilder.d.ts +146 -0
  77. package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
  78. package/dist/styling/SemanticStyles.d.ts +178 -0
  79. package/dist/styling/SemanticStyles.d.ts.map +1 -0
  80. package/dist/styling/SmartPresets.d.ts +22 -0
  81. package/dist/styling/SmartPresets.d.ts.map +1 -0
  82. package/dist/styling/StyleBuilder.d.ts +140 -0
  83. package/dist/styling/StyleBuilder.d.ts.map +1 -0
  84. package/dist/styling/banners.d.ts +42 -0
  85. package/dist/styling/banners.d.ts.map +1 -0
  86. package/dist/styling/index.d.ts +10 -0
  87. package/dist/styling/index.d.ts.map +1 -0
  88. package/dist/styling/themes.d.ts +7 -0
  89. package/dist/styling/themes.d.ts.map +1 -0
  90. package/dist/styling-module.d.ts +178 -0
  91. package/dist/styling-module.d.ts.map +1 -0
  92. package/dist/styling.cjs +2 -0
  93. package/dist/styling.cjs.map +1 -0
  94. package/dist/styling.js +146 -0
  95. package/dist/styling.js.map +1 -0
  96. package/dist/terminal/terminal-renderer.d.ts +63 -0
  97. package/dist/terminal/terminal-renderer.d.ts.map +1 -0
  98. package/dist/types/core.d.ts +234 -0
  99. package/dist/types/core.d.ts.map +1 -0
  100. package/dist/types/handlers.d.ts +85 -0
  101. package/dist/types/handlers.d.ts.map +1 -0
  102. package/dist/types/index.d.ts +7 -0
  103. package/dist/types/index.d.ts.map +1 -0
  104. package/dist/utils/adapter.d.ts +48 -0
  105. package/dist/utils/adapter.d.ts.map +1 -0
  106. package/dist/utils/ansi-colors.d.ts +156 -0
  107. package/dist/utils/ansi-colors.d.ts.map +1 -0
  108. package/dist/utils/environment-detector.d.ts +35 -0
  109. package/dist/utils/environment-detector.d.ts.map +1 -0
  110. package/dist/utils/environment.d.ts +47 -0
  111. package/dist/utils/environment.d.ts.map +1 -0
  112. package/dist/utils/formatting.d.ts +58 -0
  113. package/dist/utils/formatting.d.ts.map +1 -0
  114. package/dist/utils/index.d.ts +8 -0
  115. package/dist/utils/index.d.ts.map +1 -0
  116. package/dist/utils/opentui-detection.d.ts +34 -0
  117. package/dist/utils/opentui-detection.d.ts.map +1 -0
  118. package/dist/utils/output.d.ts +46 -0
  119. package/dist/utils/output.d.ts.map +1 -0
  120. package/dist/utils/stackTrace.d.ts +6 -0
  121. package/dist/utils/stackTrace.d.ts.map +1 -0
  122. package/dist/utils/timestamps.d.ts +20 -0
  123. package/dist/utils/timestamps.d.ts.map +1 -0
  124. package/dist/vite.svg +1 -0
  125. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ import { ICommand } from '../CommandProcessor.js';
2
+ import { Logger } from '../../Logger.js';
3
+ /**
4
+ * Status command - show logger configuration and statistics
5
+ */
6
+ export declare class StatusCommand implements ICommand {
7
+ name: string;
8
+ description: string;
9
+ usage: string;
10
+ execute(_args: string, logger: Logger): void;
11
+ }
12
+ /**
13
+ * Reset command - reset logger to defaults
14
+ */
15
+ export declare class ResetCommand implements ICommand {
16
+ name: string;
17
+ description: string;
18
+ usage: string;
19
+ execute(_args: string, logger: Logger): void;
20
+ }
21
+ /**
22
+ * Demo command - show logger feature demonstration
23
+ */
24
+ export declare class DemoCommand implements ICommand {
25
+ name: string;
26
+ description: string;
27
+ usage: string;
28
+ execute(_args: string, logger: Logger): void;
29
+ }
30
+ //# sourceMappingURL=StatusCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/StatusCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAkD;IAC7D,KAAK,SAAa;IAElB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAkC/C;AAED;;GAEG;AACH,qBAAa,YAAa,YAAW,QAAQ;IACzC,IAAI,SAAW;IACf,WAAW,SAA4C;IACvD,KAAK,SAAY;IAEjB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAG/C;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IACxC,IAAI,SAAU;IACd,WAAW,SAA8C;IACzD,KAAK,SAAW;IAEhB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAuC/C"}
@@ -0,0 +1,30 @@
1
+ import { ICommand } from '../CommandProcessor.js';
2
+ import { Logger } from '../../Logger.js';
3
+ /**
4
+ * Themes command - show available themes
5
+ */
6
+ export declare class ThemesCommand implements ICommand {
7
+ name: string;
8
+ description: string;
9
+ usage: string;
10
+ execute(_args: string, logger: Logger): void;
11
+ }
12
+ /**
13
+ * Banners command - show available banner types
14
+ */
15
+ export declare class BannersCommand implements ICommand {
16
+ name: string;
17
+ description: string;
18
+ usage: string;
19
+ execute(_args: string, logger: Logger): void;
20
+ }
21
+ /**
22
+ * Banner command - change/show banner type
23
+ */
24
+ export declare class BannerCommand implements ICommand {
25
+ name: string;
26
+ description: string;
27
+ usage: string;
28
+ execute(args: string, logger: Logger): void;
29
+ }
30
+ //# sourceMappingURL=ThemeCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeCommand.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/ThemeCommand.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAK9C;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAkC;IAC7C,KAAK,SAAa;IAElB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAgB/C;AAED;;GAEG;AACH,qBAAa,cAAe,YAAW,QAAQ;IAC3C,IAAI,SAAa;IACjB,WAAW,SAAiC;IAC5C,KAAK,SAAc;IAEnB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAoB/C;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,QAAQ;IAC1C,IAAI,SAAY;IAChB,WAAW,SAAwC;IACnD,KAAK,SAAoB;IAEzB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CAa9C"}
@@ -0,0 +1,12 @@
1
+ import { ICommand } from './CommandProcessor.js';
2
+ import { Logger } from '../Logger.js';
3
+ /**
4
+ * Help command - show comprehensive CLI help
5
+ */
6
+ export declare class HelpCommand implements ICommand {
7
+ name: string;
8
+ description: string;
9
+ usage: string;
10
+ execute(_args: string, logger: Logger): void;
11
+ }
12
+ //# sourceMappingURL=help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help.d.ts","sourceRoot":"","sources":["../../src/cli/help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C;;GAEG;AACH,qBAAa,WAAY,YAAW,QAAQ;IACxC,IAAI,SAAU;IACd,WAAW,SAA0C;IACrD,KAAK,SAAqB;IAE1B,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;CA8G/C"}
@@ -0,0 +1,15 @@
1
+ import { CommandProcessor } from './CommandProcessor.js';
2
+ /**
3
+ * @fileoverview CLI system exports for Advanced Logger
4
+ */
5
+ export { CommandProcessor, type ICommand } from './CommandProcessor.js';
6
+ export { ConfigCommand } from './commands/ConfigCommand.js';
7
+ export { ThemesCommand, BannersCommand, BannerCommand } from './commands/ThemeCommand.js';
8
+ export { StatusCommand, ResetCommand, DemoCommand } from './commands/StatusCommand.js';
9
+ export { ExportCommand, CopyCommand, BufferSizeCommand, ClearBufferCommand, BufferInfoCommand } from './commands/ExportCommand.js';
10
+ export { HelpCommand } from './help.js';
11
+ /**
12
+ * Create and configure default CLI processor
13
+ */
14
+ export declare function createDefaultCLI(): CommandProcessor;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EACH,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACpB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAqBxC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAyBnD"}
@@ -0,0 +1,227 @@
1
+ import { LogLevel } from './types/index.js';
2
+ import { LevelStyleConfig } from './utils/index.js';
3
+ /**
4
+ * Default configuration values
5
+ */
6
+ export declare const DEFAULT_CONFIG: {
7
+ readonly verbosity: "info";
8
+ readonly enableColors: true;
9
+ readonly enableTimestamps: true;
10
+ readonly enableStackTrace: true;
11
+ readonly theme: "default";
12
+ readonly bannerType: "simple";
13
+ readonly bufferSize: 1000;
14
+ readonly autoDetectTheme: true;
15
+ readonly outputFormat: "auto";
16
+ };
17
+ /**
18
+ * Basic level styles for core module (minimal CSS styling)
19
+ */
20
+ export declare const LEVEL_STYLES: Record<LogLevel | 'success', LevelStyleConfig>;
21
+ /**
22
+ * Maximum allowed buffer sizes for performance
23
+ */
24
+ export declare const BUFFER_LIMITS: {
25
+ readonly MIN_SIZE: 50;
26
+ readonly DEFAULT_SIZE: 1000;
27
+ readonly MAX_SIZE: 10000;
28
+ };
29
+ /**
30
+ * Export format definitions with extensions
31
+ */
32
+ export declare const EXPORT_FORMATS: {
33
+ readonly json: {
34
+ readonly extension: ".json";
35
+ readonly mimeType: "application/json";
36
+ };
37
+ readonly csv: {
38
+ readonly extension: ".csv";
39
+ readonly mimeType: "text/csv";
40
+ };
41
+ readonly markdown: {
42
+ readonly extension: ".md";
43
+ readonly mimeType: "text/markdown";
44
+ };
45
+ readonly plain: {
46
+ readonly extension: ".txt";
47
+ readonly mimeType: "text/plain";
48
+ };
49
+ readonly html: {
50
+ readonly extension: ".html";
51
+ readonly mimeType: "text/html";
52
+ };
53
+ };
54
+ /**
55
+ * CLI command definitions
56
+ */
57
+ export declare const CLI_COMMANDS: {
58
+ readonly config: "config";
59
+ readonly help: "help";
60
+ readonly themes: "themes";
61
+ readonly banners: "banners";
62
+ readonly banner: "banner";
63
+ readonly status: "status";
64
+ readonly reset: "reset";
65
+ readonly demo: "demo";
66
+ readonly export: "export";
67
+ readonly copy: "copy";
68
+ readonly 'buffer-size': "buffer-size";
69
+ readonly 'clear-buffer': "clear-buffer";
70
+ readonly 'buffer-info': "buffer-info";
71
+ };
72
+ /**
73
+ * Time parsing constants for relative time filters
74
+ */
75
+ export declare const TIME_UNITS: {
76
+ readonly ms: 1;
77
+ readonly s: 1000;
78
+ readonly m: number;
79
+ readonly h: number;
80
+ readonly d: number;
81
+ };
82
+ /**
83
+ * Default styling values
84
+ */
85
+ export declare const STYLE_DEFAULTS: {
86
+ readonly FONT_FAMILY: "Monaco, Consolas, monospace";
87
+ readonly FONT_SIZE: "12px";
88
+ readonly BORDER_RADIUS: "4px";
89
+ readonly PADDING: "4px 8px";
90
+ };
91
+ /**
92
+ * Level priority mapping for filtering
93
+ */
94
+ export declare const LEVEL_PRIORITIES: Record<LogLevel, number>;
95
+ /**
96
+ * Adaptive color configurations for DevTools theme compatibility
97
+ */
98
+ export declare const ADAPTIVE_COLORS: {
99
+ readonly timestamp: {
100
+ readonly light: "#666666";
101
+ readonly dark: "#a0a0a0";
102
+ };
103
+ readonly messageText: {
104
+ readonly light: "#2d3748";
105
+ readonly dark: "#f7fafc";
106
+ };
107
+ readonly prefix: {
108
+ readonly light: "#2d3748";
109
+ readonly dark: "#e2e8f0";
110
+ };
111
+ readonly prefixBackground: {
112
+ readonly light: "#2d3748";
113
+ readonly dark: "#4a5568";
114
+ };
115
+ readonly location: {
116
+ readonly light: "#718096";
117
+ readonly dark: "#a0aec0";
118
+ };
119
+ };
120
+ /**
121
+ * Presets específicos para diferentes entornos de build
122
+ */
123
+ export declare const BUILD_PRESETS: {
124
+ /**
125
+ * Configuración optimizada para Next.js builds
126
+ */
127
+ readonly nextjs: {
128
+ readonly verbosity: "info";
129
+ readonly enableColors: true;
130
+ readonly enableTimestamps: false;
131
+ readonly enableStackTrace: false;
132
+ readonly autoDetectTheme: false;
133
+ readonly outputFormat: "build";
134
+ };
135
+ /**
136
+ * Configuración para Webpack builds
137
+ */
138
+ readonly webpack: {
139
+ readonly verbosity: "info";
140
+ readonly enableColors: true;
141
+ readonly enableTimestamps: true;
142
+ readonly enableStackTrace: false;
143
+ readonly autoDetectTheme: false;
144
+ readonly outputFormat: "build";
145
+ };
146
+ /**
147
+ * Configuración para CI/CD environments
148
+ */
149
+ readonly ci: {
150
+ readonly verbosity: "info";
151
+ readonly enableColors: false;
152
+ readonly enableTimestamps: true;
153
+ readonly enableStackTrace: true;
154
+ readonly autoDetectTheme: false;
155
+ readonly outputFormat: "ci";
156
+ };
157
+ /**
158
+ * Configuración para desarrollo terminal
159
+ */
160
+ readonly terminal: {
161
+ readonly verbosity: "debug";
162
+ readonly enableColors: true;
163
+ readonly enableTimestamps: true;
164
+ readonly enableStackTrace: true;
165
+ readonly autoDetectTheme: false;
166
+ readonly outputFormat: "ansi";
167
+ };
168
+ };
169
+ /**
170
+ * Mapeo de variables de entorno a presets
171
+ */
172
+ export declare const ENVIRONMENT_DETECTION: {
173
+ readonly isNextJS: string | boolean;
174
+ readonly isWebpack: string | boolean;
175
+ readonly isCI: string | false | undefined;
176
+ readonly isBuild: boolean;
177
+ readonly isTerminal: boolean;
178
+ };
179
+ /**
180
+ * Auto-detects the best preset based on current environment
181
+ */
182
+ export declare function detectEnvironmentPreset(): keyof typeof BUILD_PRESETS;
183
+ /**
184
+ * Gets the optimal configuration for current environment
185
+ */
186
+ export declare function getOptimalConfig(): {
187
+ verbosity: "info";
188
+ enableColors: true;
189
+ enableTimestamps: false;
190
+ enableStackTrace: false;
191
+ autoDetectTheme: false;
192
+ outputFormat: "build";
193
+ theme: "default";
194
+ bannerType: "simple";
195
+ bufferSize: 1000;
196
+ } | {
197
+ verbosity: "info";
198
+ enableColors: true;
199
+ enableTimestamps: true;
200
+ enableStackTrace: false;
201
+ autoDetectTheme: false;
202
+ outputFormat: "build";
203
+ theme: "default";
204
+ bannerType: "simple";
205
+ bufferSize: 1000;
206
+ } | {
207
+ verbosity: "info";
208
+ enableColors: false;
209
+ enableTimestamps: true;
210
+ enableStackTrace: true;
211
+ autoDetectTheme: false;
212
+ outputFormat: "ci";
213
+ theme: "default";
214
+ bannerType: "simple";
215
+ bufferSize: 1000;
216
+ } | {
217
+ verbosity: "debug";
218
+ enableColors: true;
219
+ enableTimestamps: true;
220
+ enableStackTrace: true;
221
+ autoDetectTheme: false;
222
+ outputFormat: "ansi";
223
+ theme: "default";
224
+ bannerType: "simple";
225
+ bufferSize: 1000;
226
+ };
227
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAkB,MAAM,kBAAkB,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;CAUjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,QAAQ,GAAG,SAAS,EAAE,gBAAgB,CAiD9D,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;CAMjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcf,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;CAMb,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,CAM5C,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;CAqBuB,CAAC;AAEpD;;GAEG;AACH,eAAO,MAAM,aAAa;IACtB;;OAEG;;;;;;;;;IAUH;;OAEG;;;;;;;;;IAUH;;OAEG;;;;;;;;;IAUH;;OAEG;;;;;;;;;CASG,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,qBAAqB;;;;;;CAqCxB,CAAC;AAEX;;GAEG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,OAAO,aAAa,CAkBpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/B"}
package/dist/core.cjs ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/environment-Ba5kShbx.js"),o=require("./chunks/formatting-Blwy-f0W.js");class CoreLogger{config;scopedPrefix;handlers=[];timers=/* @__PURE__ */new Map;groupDepth=0;constructor(o={}){this.config={...e.DEFAULT_CONFIG,...o,enableColors:o.enableColors??!!e.isBrowser,enableTimestamps:o.enableTimestamps??!0,enableStackTrace:o.enableStackTrace??!1,autoDetectTheme:o.autoDetectTheme??!0,outputFormat:o.outputFormat??"auto"}}getConfig(){return{...this.config}}setGlobalPrefix(e){this.config.globalPrefix=e}setVerbosity(e){this.config.verbosity=e}scope(e){const o=new CoreLogger(this.config);return o.scopedPrefix=e,o.handlers=[...this.handlers],o}addHandler(e){this.handlers.push(e)}shouldLog(e){if("silent"===this.config.verbosity)return!1;const o={debug:0,info:1,warn:2,error:3,critical:4};return o[e]>=o[this.config.verbosity]}getEffectivePrefix(){const e=[this.config.globalPrefix,this.scopedPrefix].filter(Boolean);return e.length>0?e.join(":"):void 0}log(t,...r){if(!this.shouldLog(t))return;const s=this.getEffectivePrefix(),i=String(r[0]||""),n=this.config.enableStackTrace?e.parseStackTrace():null,c=o.getConsoleMethod(t);if(e.isBrowser&&this.config.enableColors&&e.supportsCSSColors())try{const[o,...l]=e.createStyledOutput(t,e.LEVEL_STYLES,s,i,n,this.config.autoDetectTheme);console[c](o,...l,...r.slice(1))}catch(g){const e=o.createOutput(t,i,s,n,this.config.outputFormat);console[c](e,...r.slice(1))}else{const e=" ".repeat(this.groupDepth)+o.createOutput(t,i,s,n,this.config.outputFormat);console[c](e,...r.slice(1))}const l=o.createLogEntry(t,i,r,s,n),a={timestamp:l.timestamp,level:t,prefix:s,stackInfo:l.location};this.handlers.forEach(e=>{try{e.handle(t,i,r,a)}catch(g){console.error("Log handler failed:",g)}})}debug(...e){this.log("debug",...e)}info(...e){this.log("info",...e)}warn(...e){this.log("warn",...e)}error(...e){this.log("error",...e)}critical(...e){this.log("critical",...e)}trace(...e){this.log("debug",...e),this.shouldLog("debug")&&console.trace(...e)}table(t,r){if(!this.shouldLog("info"))return;const s=this.getEffectivePrefix(),i=`[TABLE]${s?` [${s}]`:""}:`;if(e.isBrowser&&"function"==typeof console.table)console.log(i),r?console.table(t,r):console.table(t);else{console.log(i);const e=o.formatTablePlain(t,r);console.log(e)}}group(o,t=!1){const r=this.getEffectivePrefix(),s=`${r?`[${r}] `:""}${o}`;if(e.isBrowser&&console.group&&console.groupCollapsed)t?console.groupCollapsed(s):console.group(s);else{const e="┌─ "+s;console.log(e)}this.groupDepth++}groupEnd(){if(this.groupDepth>0){if(e.isBrowser&&console.groupEnd)console.groupEnd();else{const e="└─ (end group)";console.log(e)}this.groupDepth--}}time(e){const t={label:e,startTime:this.getPerformanceNow()};this.timers.set(e,t);const r=this.getEffectivePrefix(),s=`Timer started: ${e}`,i=o.createPlainOutput("info",s,r);console.log(i)}timeEnd(e){const t=this.timers.get(e);if(!t)return void this.warn(`Timer '${e}' does not exist`);const r=this.getPerformanceNow()-t.startTime;this.timers.delete(e);const s=this.getEffectivePrefix(),i=`Timer ended: ${e} - ${r.toFixed(2)}ms`,n=o.createPlainOutput("info",i,s);console.log(n)}getPerformanceNow(){if("undefined"!=typeof performance&&performance.now)return performance.now();if(e.isNode&&process.hrtime){const[e,o]=process.hrtime();return 1e3*e+o/1e6}return Date.now()}}const t=new CoreLogger;exports.CoreLogger=CoreLogger,exports.addHandler=e=>t.addHandler(e),exports.critical=(...e)=>t.critical(...e),exports.debug=(...e)=>t.debug(...e),exports.default=t,exports.error=(...e)=>t.error(...e),exports.group=(e,o)=>t.group(e,o),exports.groupEnd=()=>t.groupEnd(),exports.info=(...e)=>t.info(...e),exports.scope=e=>t.scope(e),exports.setGlobalPrefix=e=>t.setGlobalPrefix(e),exports.setVerbosity=e=>t.setVerbosity(e),exports.table=(e,o)=>t.table(e,o),exports.time=e=>t.time(e),exports.timeEnd=e=>t.timeEnd(e),exports.trace=(...e)=>t.trace(...e),exports.warn=(...e)=>t.warn(...e);
2
+ //# sourceMappingURL=core.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.cjs","sources":["../src/core.ts"],"sourcesContent":["/**\n * @fileoverview Core Logger Module - Minimal logging without advanced features\n * @version 0.0.1\n * \n * This module provides the essential logging functionality without visual enhancements,\n * SVG support, or advanced styling. Perfect for lightweight applications or server-side usage.\n */\n\n// Core types\nimport type {\n LogLevel,\n Verbosity,\n LoggerConfig,\n ILogHandler,\n LogMetadata,\n TimerEntry\n} from './types/index.js';\n\n// Core utilities\nimport {\n parseStackTrace,\n formatTimestamp\n} from './utils/index.js';\n\n// Universal formatting and environment detection\nimport {\n createPlainOutput,\n createOutput,\n getConsoleMethod,\n createLogEntry,\n formatTablePlain,\n safeSerialize,\n detectOptimalFormat,\n type OutputFormat\n} from './utils/formatting.js';\n\nimport {\n isBrowser,\n isNode,\n getRuntimeEnvironment,\n supportsColors,\n supportsCSSColors\n} from './utils/environment.js';\n\nimport { createStyledOutput } from './utils/output.js';\n\n// Constants\nimport { DEFAULT_CONFIG, LEVEL_STYLES } from './constants.js';\n\n/**\n * Minimal Logger class with core functionality only\n * \n * @example\n * ```typescript\n * import { CoreLogger } from '@mks2508/better-logger/core';\n * \n * const logger = new CoreLogger();\n * logger.info('Hello world');\n * logger.error('Something went wrong', error);\n * ```\n */\nexport class CoreLogger {\n private config: LoggerConfig;\n private scopedPrefix?: string;\n private handlers: ILogHandler[] = [];\n private timers: Map<string, TimerEntry> = new Map();\n private groupDepth: number = 0;\n\n /**\n * Creates a new CoreLogger instance\n * @param config - Optional configuration\n */\n constructor(config: Partial<LoggerConfig> = {}) {\n this.config = {\n ...DEFAULT_CONFIG,\n ...config,\n // Auto-configure based on environment\n enableColors: config.enableColors ?? (isBrowser ? true : false),\n enableTimestamps: config.enableTimestamps ?? true,\n enableStackTrace: config.enableStackTrace ?? false,\n autoDetectTheme: config.autoDetectTheme ?? true,\n outputFormat: config.outputFormat ?? 'auto'\n };\n }\n\n // ===== CONFIGURATION METHODS =====\n\n /**\n * Get current configuration\n */\n getConfig(): LoggerConfig {\n return { ...this.config };\n }\n\n /**\n * Sets the global prefix for all log messages\n */\n setGlobalPrefix(prefix: string): void {\n this.config.globalPrefix = prefix;\n }\n\n /**\n * Sets the verbosity level for filtering log output\n */\n setVerbosity(level: Verbosity): void {\n this.config.verbosity = level;\n }\n\n /**\n * Creates a scoped logger with a specific prefix\n */\n scope(prefix: string): CoreLogger {\n const scopedLogger = new CoreLogger(this.config);\n scopedLogger.scopedPrefix = prefix;\n scopedLogger.handlers = [...this.handlers];\n return scopedLogger;\n }\n\n /**\n * Adds a custom log handler for extensibility\n */\n addHandler(handler: ILogHandler): void {\n this.handlers.push(handler);\n }\n\n // ===== CORE LOGGING METHODS =====\n\n /**\n * Checks if a log level should be output based on current verbosity\n */\n private shouldLog(level: LogLevel): boolean {\n if (this.config.verbosity === 'silent') return false;\n const levels = { debug: 0, info: 1, warn: 2, error: 3, critical: 4 };\n return levels[level] >= levels[this.config.verbosity];\n }\n\n /**\n * Gets the effective prefix (global + scoped)\n */\n private getEffectivePrefix(): string | undefined {\n const parts = [this.config.globalPrefix, this.scopedPrefix].filter(Boolean);\n return parts.length > 0 ? parts.join(':') : undefined;\n }\n\n /**\n * Core logging method with universal formatting\n */\n private log(level: LogLevel, ...args: any[]): void {\n if (!this.shouldLog(level)) return;\n\n const prefix = this.getEffectivePrefix();\n const message = String(args[0] || '');\n const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;\n const consoleMethod = getConsoleMethod(level);\n\n // Choose formatting based on environment and configuration\n if (isBrowser && this.config.enableColors && supportsCSSColors()) {\n // Browser with CSS styling\n try {\n const [format, ...styles] = createStyledOutput(\n level,\n LEVEL_STYLES,\n prefix,\n message,\n stackInfo,\n this.config.autoDetectTheme\n );\n console[consoleMethod](format, ...styles, ...args.slice(1));\n } catch (error) {\n // Fallback to universal formatting if CSS fails\n const output = createOutput(level, message, prefix, stackInfo, this.config.outputFormat);\n console[consoleMethod](output, ...args.slice(1));\n }\n } else {\n // Node.js or browser without colors - use universal formatting\n const groupIndent = ' '.repeat(this.groupDepth);\n const output = groupIndent + createOutput(level, message, prefix, stackInfo, this.config.outputFormat);\n console[consoleMethod](output, ...args.slice(1));\n }\n\n // Call custom handlers with structured metadata\n const logEntry = createLogEntry(level, message, args, prefix, stackInfo);\n const metadata: LogMetadata = {\n timestamp: logEntry.timestamp,\n level,\n prefix,\n stackInfo: logEntry.location,\n };\n\n this.handlers.forEach(handler => {\n try {\n handler.handle(level, message, args, metadata);\n } catch (error) {\n console.error('Log handler failed:', error);\n }\n });\n }\n\n /**\n * Logs debug information (lowest priority)\n */\n debug(...args: any[]): void {\n this.log('debug', ...args);\n }\n\n /**\n * Logs informational messages\n */\n info(...args: any[]): void {\n this.log('info', ...args);\n }\n\n /**\n * Logs warning messages\n */\n warn(...args: any[]): void {\n this.log('warn', ...args);\n }\n\n /**\n * Logs error messages\n */\n error(...args: any[]): void {\n this.log('error', ...args);\n }\n\n /**\n * Logs critical errors (highest priority)\n */\n critical(...args: any[]): void {\n this.log('critical', ...args);\n }\n\n /**\n * Logs trace information (detailed debugging)\n */\n trace(...args: any[]): void {\n this.log('debug', ...args);\n if (this.shouldLog('debug')) {\n console.trace(...args);\n }\n }\n\n // ===== BASIC ADVANCED FEATURES =====\n\n /**\n * Displays data in a table format\n */\n table(data: any, columns?: string[]): void {\n if (!this.shouldLog('info')) return;\n\n const prefix = this.getEffectivePrefix();\n const tableHeader = `[TABLE]${prefix ? ` [${prefix}]` : ''}:`;\n \n if (isBrowser && typeof console.table === 'function') {\n // Browser has native table support\n console.log(tableHeader);\n if (columns) {\n console.table(data, columns);\n } else {\n console.table(data);\n }\n } else {\n // Node.js or fallback - use plain text formatting\n console.log(tableHeader);\n const tableText = formatTablePlain(data, columns);\n console.log(tableText);\n }\n }\n\n /**\n * Starts a collapsible group in the console\n */\n group(label: string, collapsed: boolean = false): void {\n const prefix = this.getEffectivePrefix();\n const fullLabel = `${prefix ? `[${prefix}] ` : ''}${label}`;\n \n if (isBrowser && console.group && console.groupCollapsed) {\n // Browser supports native grouping\n if (collapsed) {\n console.groupCollapsed(fullLabel);\n } else {\n console.group(fullLabel);\n }\n } else {\n // Node.js fallback - just log the group label\n const groupStart = '┌─ ' + fullLabel;\n console.log(groupStart);\n }\n \n this.groupDepth++;\n }\n\n /**\n * Ends the current console group\n */\n groupEnd(): void {\n if (this.groupDepth > 0) {\n if (isBrowser && console.groupEnd) {\n console.groupEnd();\n } else {\n // Node.js fallback - log group end\n const groupEnd = '└─ (end group)';\n console.log(groupEnd);\n }\n this.groupDepth--;\n }\n }\n\n /**\n * Starts a timer with the given label\n */\n time(label: string): void {\n const startTime = this.getPerformanceNow();\n const timer: TimerEntry = {\n label,\n startTime,\n };\n this.timers.set(label, timer);\n \n const prefix = this.getEffectivePrefix();\n const message = `Timer started: ${label}`;\n const output = createPlainOutput('info', message, prefix);\n console.log(output);\n }\n\n /**\n * Ends a timer and logs the elapsed time\n */\n timeEnd(label: string): void {\n const timer = this.timers.get(label);\n if (!timer) {\n this.warn(`Timer '${label}' does not exist`);\n return;\n }\n\n const elapsed = this.getPerformanceNow() - timer.startTime;\n this.timers.delete(label);\n \n const prefix = this.getEffectivePrefix();\n const message = `Timer ended: ${label} - ${elapsed.toFixed(2)}ms`;\n const output = createPlainOutput('info', message, prefix);\n console.log(output);\n }\n\n /**\n * Gets performance.now() or fallback for older environments\n */\n private getPerformanceNow(): number {\n if (typeof performance !== 'undefined' && performance.now) {\n return performance.now();\n }\n \n if (isNode && process.hrtime) {\n // Node.js high-resolution time\n const [seconds, nanoseconds] = process.hrtime();\n return seconds * 1000 + nanoseconds / 1000000;\n }\n \n // Fallback to Date.now()\n return Date.now();\n }\n}\n\n// Create and export singleton instance for convenience\nconst coreLogger = new CoreLogger();\n\n/**\n * Export individual methods for convenience (with proper binding)\n */\nexport const debug = (...args: any[]) => coreLogger.debug(...args);\nexport const info = (...args: any[]) => coreLogger.info(...args);\nexport const warn = (...args: any[]) => coreLogger.warn(...args);\nexport const error = (...args: any[]) => coreLogger.error(...args);\nexport const critical = (...args: any[]) => coreLogger.critical(...args);\nexport const trace = (...args: any[]) => coreLogger.trace(...args);\nexport const table = (data: any, columns?: string[]) => coreLogger.table(data, columns);\nexport const group = (label: string, collapsed?: boolean) => coreLogger.group(label, collapsed);\nexport const groupEnd = () => coreLogger.groupEnd();\nexport const time = (label: string) => coreLogger.time(label);\nexport const timeEnd = (label: string) => coreLogger.timeEnd(label);\nexport const setGlobalPrefix = (prefix: string) => coreLogger.setGlobalPrefix(prefix);\nexport const scope = (prefix: string) => coreLogger.scope(prefix);\nexport const setVerbosity = (level: Verbosity) => coreLogger.setVerbosity(level);\nexport const addHandler = (handler: ILogHandler) => coreLogger.addHandler(handler);\n\n// Export the singleton as default\nexport default coreLogger;\n\n// Re-export core types\nexport type {\n LogLevel,\n Verbosity,\n LoggerConfig,\n ILogHandler,\n LogMetadata\n} from './types/index.js';"],"names":["CoreLogger","config","scopedPrefix","handlers","timers","Map","groupDepth","constructor","this","DEFAULT_CONFIG","enableColors","isBrowser","enableTimestamps","enableStackTrace","autoDetectTheme","outputFormat","getConfig","setGlobalPrefix","prefix","globalPrefix","setVerbosity","level","verbosity","scope","scopedLogger","addHandler","handler","push","shouldLog","levels","debug","info","warn","error","critical","getEffectivePrefix","parts","filter","Boolean","length","join","log","args","message","String","stackInfo","parseStackTrace","consoleMethod","getConsoleMethod","supportsCSSColors","format","styles","createStyledOutput","LEVEL_STYLES","console","slice","output","createOutput","repeat","logEntry","createLogEntry","metadata","timestamp","location","forEach","handle","trace","table","data","columns","tableHeader","tableText","formatTablePlain","group","label","collapsed","fullLabel","groupCollapsed","groupStart","groupEnd","time","timer","startTime","getPerformanceNow","set","createPlainOutput","timeEnd","get","elapsed","delete","toFixed","performance","now","isNode","process","hrtime","seconds","nanoseconds","Date","coreLogger"],"mappings":"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"}
package/dist/core.d.ts ADDED
@@ -0,0 +1,127 @@
1
+ import { Verbosity, LoggerConfig, ILogHandler } from './types/index.js';
2
+ /**
3
+ * Minimal Logger class with core functionality only
4
+ *
5
+ * @example
6
+ * ```typescript
7
+ * import { CoreLogger } from '@mks2508/better-logger/core';
8
+ *
9
+ * const logger = new CoreLogger();
10
+ * logger.info('Hello world');
11
+ * logger.error('Something went wrong', error);
12
+ * ```
13
+ */
14
+ export declare class CoreLogger {
15
+ private config;
16
+ private scopedPrefix?;
17
+ private handlers;
18
+ private timers;
19
+ private groupDepth;
20
+ /**
21
+ * Creates a new CoreLogger instance
22
+ * @param config - Optional configuration
23
+ */
24
+ constructor(config?: Partial<LoggerConfig>);
25
+ /**
26
+ * Get current configuration
27
+ */
28
+ getConfig(): LoggerConfig;
29
+ /**
30
+ * Sets the global prefix for all log messages
31
+ */
32
+ setGlobalPrefix(prefix: string): void;
33
+ /**
34
+ * Sets the verbosity level for filtering log output
35
+ */
36
+ setVerbosity(level: Verbosity): void;
37
+ /**
38
+ * Creates a scoped logger with a specific prefix
39
+ */
40
+ scope(prefix: string): CoreLogger;
41
+ /**
42
+ * Adds a custom log handler for extensibility
43
+ */
44
+ addHandler(handler: ILogHandler): void;
45
+ /**
46
+ * Checks if a log level should be output based on current verbosity
47
+ */
48
+ private shouldLog;
49
+ /**
50
+ * Gets the effective prefix (global + scoped)
51
+ */
52
+ private getEffectivePrefix;
53
+ /**
54
+ * Core logging method with universal formatting
55
+ */
56
+ private log;
57
+ /**
58
+ * Logs debug information (lowest priority)
59
+ */
60
+ debug(...args: any[]): void;
61
+ /**
62
+ * Logs informational messages
63
+ */
64
+ info(...args: any[]): void;
65
+ /**
66
+ * Logs warning messages
67
+ */
68
+ warn(...args: any[]): void;
69
+ /**
70
+ * Logs error messages
71
+ */
72
+ error(...args: any[]): void;
73
+ /**
74
+ * Logs critical errors (highest priority)
75
+ */
76
+ critical(...args: any[]): void;
77
+ /**
78
+ * Logs trace information (detailed debugging)
79
+ */
80
+ trace(...args: any[]): void;
81
+ /**
82
+ * Displays data in a table format
83
+ */
84
+ table(data: any, columns?: string[]): void;
85
+ /**
86
+ * Starts a collapsible group in the console
87
+ */
88
+ group(label: string, collapsed?: boolean): void;
89
+ /**
90
+ * Ends the current console group
91
+ */
92
+ groupEnd(): void;
93
+ /**
94
+ * Starts a timer with the given label
95
+ */
96
+ time(label: string): void;
97
+ /**
98
+ * Ends a timer and logs the elapsed time
99
+ */
100
+ timeEnd(label: string): void;
101
+ /**
102
+ * Gets performance.now() or fallback for older environments
103
+ */
104
+ private getPerformanceNow;
105
+ }
106
+ declare const coreLogger: CoreLogger;
107
+ /**
108
+ * Export individual methods for convenience (with proper binding)
109
+ */
110
+ export declare const debug: (...args: any[]) => void;
111
+ export declare const info: (...args: any[]) => void;
112
+ export declare const warn: (...args: any[]) => void;
113
+ export declare const error: (...args: any[]) => void;
114
+ export declare const critical: (...args: any[]) => void;
115
+ export declare const trace: (...args: any[]) => void;
116
+ export declare const table: (data: any, columns?: string[]) => void;
117
+ export declare const group: (label: string, collapsed?: boolean) => void;
118
+ export declare const groupEnd: () => void;
119
+ export declare const time: (label: string) => void;
120
+ export declare const timeEnd: (label: string) => void;
121
+ export declare const setGlobalPrefix: (prefix: string) => void;
122
+ export declare const scope: (prefix: string) => CoreLogger;
123
+ export declare const setVerbosity: (level: Verbosity) => void;
124
+ export declare const addHandler: (handler: ILogHandler) => void;
125
+ export default coreLogger;
126
+ export type { LogLevel, Verbosity, LoggerConfig, ILogHandler, LogMetadata } from './types/index.js';
127
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}