@mks2508/better-logger 0.12.0-alpha.1 → 0.13.0-alpha.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.
- package/CHANGELOG.json +18 -1
- package/README.md +70 -6
- package/dist/Logger.d.ts +101 -5
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +198 -16
- package/dist/ScopedLogger.d.ts +126 -0
- package/dist/ScopedLogger.d.ts.map +1 -0
- package/dist/ScopedLogger.js +234 -0
- package/dist/chunks/{Logger-CVwk8cgA.js → Logger-C9rpLMQi.js} +1220 -22
- package/dist/chunks/Logger-C9rpLMQi.js.map +1 -0
- package/dist/chunks/Logger-ixFndDfJ.js +2 -0
- package/dist/chunks/Logger-ixFndDfJ.js.map +1 -0
- package/dist/chunks/StyleBuilder-BZbXkD4y.js +4 -0
- package/dist/chunks/{StyleBuilder-LPLzsoHY.js.map → StyleBuilder-BZbXkD4y.js.map} +1 -1
- package/dist/chunks/{StyleBuilder-BoJTmskd.js → StyleBuilder-D9UozmKq.js} +38 -2
- package/dist/chunks/StyleBuilder-D9UozmKq.js.map +1 -0
- package/dist/constants.d.ts +26 -0
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +26 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +2 -2
- package/dist/core.d.ts.map +1 -1
- package/dist/core.js +2 -2
- package/dist/core.js.map +1 -1
- package/dist/example.js +4 -4
- package/dist/exports-module.d.ts +1 -1
- package/dist/exports-module.d.ts.map +1 -1
- package/dist/exports-module.js +1 -1
- package/dist/exports.cjs +1 -1
- package/dist/exports.cjs.map +1 -1
- package/dist/exports.js +3 -3
- package/dist/exports.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.js +3 -3
- package/dist/styling/LogStyleBuilder.d.ts +149 -0
- package/dist/styling/LogStyleBuilder.d.ts.map +1 -0
- package/dist/styling/LogStyleBuilder.js +289 -0
- package/dist/styling/SemanticStyles.d.ts +181 -0
- package/dist/styling/SemanticStyles.d.ts.map +1 -0
- package/dist/styling/SemanticStyles.js +339 -0
- package/dist/styling/SmartPresets.d.ts +25 -0
- package/dist/styling/SmartPresets.d.ts.map +1 -0
- package/dist/styling/SmartPresets.js +276 -0
- package/dist/styling/StyleBuilder.d.ts +8 -0
- package/dist/styling/StyleBuilder.d.ts.map +1 -1
- package/dist/styling/StyleBuilder.js +12 -0
- package/dist/styling/index.d.ts +3 -0
- package/dist/styling/index.d.ts.map +1 -1
- package/dist/styling/index.js +3 -0
- package/dist/styling-module.d.ts +1 -1
- package/dist/styling-module.d.ts.map +1 -1
- package/dist/styling-module.js +1 -1
- package/dist/styling.cjs +1 -1
- package/dist/styling.cjs.map +1 -1
- package/dist/styling.js +5 -5
- package/dist/styling.js.map +1 -1
- package/dist/types/Logger.d.ts +101 -5
- package/dist/types/Logger.d.ts.map +1 -1
- package/dist/types/ScopedLogger.d.ts +123 -0
- package/dist/types/ScopedLogger.d.ts.map +1 -0
- package/dist/types/constants.d.ts +26 -0
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/core.d.ts +54 -0
- package/dist/types/core.d.ts.map +1 -1
- package/dist/types/exports-module.d.ts +1 -1
- package/dist/types/exports-module.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/styling/LogStyleBuilder.d.ts +146 -0
- package/dist/types/styling/LogStyleBuilder.d.ts.map +1 -0
- package/dist/types/styling/SemanticStyles.d.ts +178 -0
- package/dist/types/styling/SemanticStyles.d.ts.map +1 -0
- package/dist/types/styling/SmartPresets.d.ts +22 -0
- package/dist/types/styling/SmartPresets.d.ts.map +1 -0
- package/dist/types/styling/StyleBuilder.d.ts +8 -0
- package/dist/types/styling/StyleBuilder.d.ts.map +1 -1
- package/dist/types/styling/index.d.ts +3 -0
- package/dist/types/styling/index.d.ts.map +1 -1
- package/dist/types/styling-module.d.ts +1 -1
- package/dist/types/styling-module.d.ts.map +1 -1
- package/dist/types/types/core.d.ts +54 -0
- package/dist/types/types/core.d.ts.map +1 -1
- package/dist/types/types/index.d.ts +1 -1
- package/dist/types/types/index.d.ts.map +1 -1
- package/dist/types/utils/index.d.ts +1 -1
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/output.d.ts +14 -2
- package/dist/types/utils/output.d.ts.map +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/utils/output.d.ts +14 -2
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +60 -7
- package/docs/CORE.md +10 -10
- package/examples/simplified-api.js +124 -0
- package/package.json +1 -1
- package/packages/core/package.json +1 -1
- package/packages/exports/package.json +2 -2
- package/packages/styling/package.json +2 -2
- package/src/Logger.ts +251 -17
- package/src/ScopedLogger.ts +262 -0
- package/src/constants.ts +29 -2
- package/src/core.ts +2 -2
- package/src/example.ts +4 -4
- package/src/exports-module.ts +1 -1
- package/src/index.ts +1 -1
- package/src/main.ts +3 -3
- package/src/styling/LogStyleBuilder.ts +355 -0
- package/src/styling/SemanticStyles.ts +380 -0
- package/src/styling/SmartPresets.ts +288 -0
- package/src/styling/StyleBuilder.ts +14 -0
- package/src/styling/index.ts +16 -1
- package/src/styling-module.ts +1 -1
- package/src/types/core.ts +60 -0
- package/src/types/index.ts +6 -0
- package/src/utils/index.ts +3 -0
- package/src/utils/output.ts +66 -8
- package/dist/chunks/Logger-C2-cR3No.js +0 -2
- package/dist/chunks/Logger-C2-cR3No.js.map +0 -1
- package/dist/chunks/Logger-CVwk8cgA.js.map +0 -1
- package/dist/chunks/StyleBuilder-BoJTmskd.js.map +0 -1
- package/dist/chunks/StyleBuilder-LPLzsoHY.js +0 -4
- package/src/Logger.ts.backup +0 -1684
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,23 @@
|
|
|
1
1
|
{
|
|
2
|
-
"current_version": "0.
|
|
2
|
+
"current_version": "0.13.0-alpha.1",
|
|
3
3
|
"versions": [
|
|
4
|
+
{
|
|
5
|
+
"version": "0.13.0-alpha.1",
|
|
6
|
+
"date": "2025-09-02",
|
|
7
|
+
"type": "minor",
|
|
8
|
+
"title": "Versión Alpha - Mejoras y optimizaciones",
|
|
9
|
+
"changes": [
|
|
10
|
+
{
|
|
11
|
+
"type": "improvement",
|
|
12
|
+
"title": "chore: release 0.12.0-alpha.1 [skip ci]",
|
|
13
|
+
"description": "chore: release 0.12.0-alpha.1 [skip ci]"
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"technical_notes": "- Implementado SmartPresets system con 6 presets predefinidos\n- Creado ScopedLogger con soporte para badges múltiples\n- Añadido ContextLogger con auto-cleanup temporal\n- Migrado createStyledOutput para usar colores adaptativos\n- Eliminado código duplicado y referencias obsoletas\n- Consolidado sistemas de temas (THEME_PRESETS + SMART_PRESETS)\n- Refactorizado API exports para mejor tree-shaking",
|
|
17
|
+
"breaking_changes": [],
|
|
18
|
+
"commit_hash": "0d9da59c46f0565703c118ba96a4a59128b33982",
|
|
19
|
+
"prefix": "alpha"
|
|
20
|
+
},
|
|
4
21
|
{
|
|
5
22
|
"version": "0.12.0-alpha.1",
|
|
6
23
|
"date": "2025-08-30",
|
package/README.md
CHANGED
|
@@ -11,15 +11,15 @@ Transform your console logging experience with beautiful styling, professional t
|
|
|
11
11
|
|
|
12
12
|
## ✨ Features
|
|
13
13
|
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
14
|
+
- 🚀 **Simplified API** - 80% less code for basic use cases
|
|
15
|
+
- 🎨 **Smart Presets** - Apply beautiful themes in one line: `logger.preset('cyberpunk')`
|
|
16
|
+
- 🏷️ **Auto-Badges** - Component and API loggers with automatic tagging
|
|
17
|
+
- 🌗 **Adaptive Themes** - Automatic light/dark mode detection
|
|
18
|
+
- ⚡ **Context Logging** - Temporary scopes that auto-cleanup
|
|
19
|
+
- 🎛️ **Toggle Controls** - Show/hide elements with simple methods
|
|
18
20
|
- 📊 **Data Export** - CSV, JSON, XML export with filtering
|
|
19
|
-
- 📡 **Remote Logging** - Send logs to external services
|
|
20
21
|
- 💻 **Interactive CLI** - Built-in command interface
|
|
21
22
|
- 🔧 **Modular Architecture** - Import only what you need
|
|
22
|
-
- 📱 **Universal Compatibility** - Browser & Node.js with graceful fallbacks
|
|
23
23
|
- 🎯 **TypeScript First** - Complete type safety and IntelliSense
|
|
24
24
|
|
|
25
25
|
## 📦 Installation
|
|
@@ -47,6 +47,70 @@ npm install @mks2508/better-logger-exports
|
|
|
47
47
|
|
|
48
48
|
## 🚀 Quick Start
|
|
49
49
|
|
|
50
|
+
### Basic Usage (Zero Configuration)
|
|
51
|
+
```javascript
|
|
52
|
+
import logger from '@mks2508/better-logger';
|
|
53
|
+
|
|
54
|
+
// Works perfectly out-of-the-box with adaptive themes
|
|
55
|
+
logger.info('Application started');
|
|
56
|
+
logger.success('Database connected');
|
|
57
|
+
logger.warn('High memory usage');
|
|
58
|
+
logger.error('Connection failed');
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### One-Line Styling
|
|
62
|
+
```javascript
|
|
63
|
+
// Apply beautiful presets instantly
|
|
64
|
+
logger.preset('cyberpunk'); // Neon colors, glowing effects
|
|
65
|
+
logger.preset('glassmorphism'); // Modern blur effects
|
|
66
|
+
logger.preset('minimal'); // Clean and simple
|
|
67
|
+
logger.preset('debug'); // Detailed development mode
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
### Toggle Features
|
|
71
|
+
```javascript
|
|
72
|
+
// Control visibility with simple methods
|
|
73
|
+
logger.hideTimestamp();
|
|
74
|
+
logger.showLocation();
|
|
75
|
+
logger.hideBadges();
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Component & API Logging
|
|
79
|
+
```javascript
|
|
80
|
+
// Scoped loggers with auto-badges
|
|
81
|
+
const auth = logger.component('UserAuth');
|
|
82
|
+
auth.info('Login attempt'); // [COMPONENT] [UserAuth] Login attempt
|
|
83
|
+
auth.success('User verified'); // [COMPONENT] [UserAuth] User verified
|
|
84
|
+
|
|
85
|
+
// API loggers with multiple badges
|
|
86
|
+
const api = logger.api('GraphQL').badges(['SLOW', 'CACHE']);
|
|
87
|
+
api.warn('Query timeout'); // [API] [SLOW] [CACHE] [GraphQL] Query timeout
|
|
88
|
+
api.auth('Invalid token'); // [API] [AUTH] [GraphQL] Invalid token
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### Smart Context System
|
|
92
|
+
```javascript
|
|
93
|
+
const dbLogger = logger.component('Database');
|
|
94
|
+
|
|
95
|
+
// Context auto-removes after execution
|
|
96
|
+
dbLogger.context('Migration').run(() => {
|
|
97
|
+
dbLogger.info('Starting migration'); // [Database:Migration] Starting migration
|
|
98
|
+
dbLogger.success('Tables created'); // [Database:Migration] Tables created
|
|
99
|
+
});
|
|
100
|
+
// Context automatically cleaned up
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### Simple Customization
|
|
104
|
+
```javascript
|
|
105
|
+
// Minimal configuration for specific needs
|
|
106
|
+
logger.customize({
|
|
107
|
+
message: { color: '#007bff', size: '15px' },
|
|
108
|
+
timestamp: { show: false },
|
|
109
|
+
spacing: 'compact'
|
|
110
|
+
});
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Advanced Styling (Power Users)
|
|
50
114
|
```typescript
|
|
51
115
|
import { Logger } from '@mks2508/better-logger';
|
|
52
116
|
|
package/dist/Logger.d.ts
CHANGED
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* @fileoverview Refactored Advanced Logger with modular architecture
|
|
3
3
|
* @version 2.0.0
|
|
4
4
|
*/
|
|
5
|
-
import type { Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions } from './types/index.js';
|
|
5
|
+
import type { LogLevel, Verbosity, ThemeVariant, BannerType, LoggerConfig, ILogHandler, StyleOptions } from './types/index.js';
|
|
6
|
+
import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|
|
6
7
|
import { ExportLogHandler } from './handlers/index.js';
|
|
7
8
|
/**
|
|
8
9
|
* Main Logger class implementing state-of-the-art logging capabilities
|
|
@@ -15,10 +16,16 @@ export declare class Logger {
|
|
|
15
16
|
private groupDepth;
|
|
16
17
|
private exportHandler?;
|
|
17
18
|
private cliProcessor?;
|
|
19
|
+
private themeChangeListener?;
|
|
20
|
+
private displaySettings;
|
|
18
21
|
/**
|
|
19
22
|
* Creates a new Logger instance
|
|
20
23
|
*/
|
|
21
24
|
constructor(config?: Partial<LoggerConfig>);
|
|
25
|
+
/**
|
|
26
|
+
* Sets up automatic theme detection with change listener
|
|
27
|
+
*/
|
|
28
|
+
private setupAutoThemeDetection;
|
|
22
29
|
/**
|
|
23
30
|
* Get current configuration
|
|
24
31
|
*/
|
|
@@ -48,9 +55,84 @@ export declare class Logger {
|
|
|
48
55
|
*/
|
|
49
56
|
resetConfig(): void;
|
|
50
57
|
/**
|
|
51
|
-
*
|
|
58
|
+
* Cleanup method to remove event listeners and free resources
|
|
59
|
+
*/
|
|
60
|
+
cleanup(): void;
|
|
61
|
+
/**
|
|
62
|
+
* Apply a smart preset - works perfectly out-of-the-box
|
|
63
|
+
*/
|
|
64
|
+
preset(name: string): void;
|
|
65
|
+
/**
|
|
66
|
+
* List available presets
|
|
67
|
+
*/
|
|
68
|
+
presets(): string[];
|
|
69
|
+
/**
|
|
70
|
+
* Hide timestamp in logs
|
|
71
|
+
*/
|
|
72
|
+
hideTimestamp(): void;
|
|
73
|
+
/**
|
|
74
|
+
* Show timestamp in logs
|
|
75
|
+
*/
|
|
76
|
+
showTimestamp(): void;
|
|
77
|
+
/**
|
|
78
|
+
* Hide location info in logs
|
|
79
|
+
*/
|
|
80
|
+
hideLocation(): void;
|
|
81
|
+
/**
|
|
82
|
+
* Show location info in logs
|
|
83
|
+
*/
|
|
84
|
+
showLocation(): void;
|
|
85
|
+
/**
|
|
86
|
+
* Hide badges in logs
|
|
87
|
+
*/
|
|
88
|
+
hideBadges(): void;
|
|
89
|
+
/**
|
|
90
|
+
* Show badges in logs
|
|
91
|
+
*/
|
|
92
|
+
showBadges(): void;
|
|
93
|
+
/**
|
|
94
|
+
* Create a component logger with automatic styling
|
|
95
|
+
*/
|
|
96
|
+
component(name: string): ComponentLogger;
|
|
97
|
+
/**
|
|
98
|
+
* Create an API logger with automatic badges
|
|
99
|
+
*/
|
|
100
|
+
api(name: string): APILogger;
|
|
101
|
+
/**
|
|
102
|
+
* Create a general scoped logger with badges support
|
|
103
|
+
*/
|
|
104
|
+
scope(name: string): ScopedLogger;
|
|
105
|
+
/**
|
|
106
|
+
* Simple customization with minimal configuration
|
|
107
|
+
*/
|
|
108
|
+
customize(overrides: {
|
|
109
|
+
message?: {
|
|
110
|
+
color?: string;
|
|
111
|
+
font?: string;
|
|
112
|
+
size?: string;
|
|
113
|
+
};
|
|
114
|
+
timestamp?: {
|
|
115
|
+
show?: boolean;
|
|
116
|
+
color?: string;
|
|
117
|
+
};
|
|
118
|
+
location?: {
|
|
119
|
+
show?: boolean;
|
|
120
|
+
color?: string;
|
|
121
|
+
};
|
|
122
|
+
level?: {
|
|
123
|
+
uppercase?: boolean;
|
|
124
|
+
style?: string;
|
|
125
|
+
};
|
|
126
|
+
prefix?: {
|
|
127
|
+
show?: boolean;
|
|
128
|
+
style?: string;
|
|
129
|
+
};
|
|
130
|
+
spacing?: 'compact' | 'normal' | 'spacious';
|
|
131
|
+
}): void;
|
|
132
|
+
/**
|
|
133
|
+
* Access advanced styling API (for power users)
|
|
52
134
|
*/
|
|
53
|
-
|
|
135
|
+
styles(): any;
|
|
54
136
|
/**
|
|
55
137
|
* Adds a custom log handler for extensibility
|
|
56
138
|
*/
|
|
@@ -74,7 +156,7 @@ export declare class Logger {
|
|
|
74
156
|
/**
|
|
75
157
|
* Core logging method that handles styling and formatting
|
|
76
158
|
*/
|
|
77
|
-
|
|
159
|
+
protected log(level: LogLevel, ...args: any[]): void;
|
|
78
160
|
/**
|
|
79
161
|
* Logs debug information (lowest priority)
|
|
80
162
|
*/
|
|
@@ -162,7 +244,6 @@ export declare const groupEnd: () => void;
|
|
|
162
244
|
export declare const time: (label: string) => void;
|
|
163
245
|
export declare const timeEnd: (label: string) => void;
|
|
164
246
|
export declare const setGlobalPrefix: (prefix: string) => void;
|
|
165
|
-
export declare const createScopedLogger: (prefix: string) => Logger;
|
|
166
247
|
export declare const setVerbosity: (level: Verbosity) => void;
|
|
167
248
|
export declare const addHandler: (handler: ILogHandler) => void;
|
|
168
249
|
export declare const setTheme: (theme: ThemeVariant) => void;
|
|
@@ -171,6 +252,21 @@ export declare const showBanner: (bannerType?: BannerType) => void;
|
|
|
171
252
|
export declare const logWithSVG: (message: string, svgContent?: string, options?: StyleOptions) => void;
|
|
172
253
|
export declare const logAnimated: (message: string, duration?: number) => void;
|
|
173
254
|
export declare const cli: (command: string) => Promise<void>;
|
|
255
|
+
export declare const cleanup: () => void;
|
|
256
|
+
export declare const preset: (name: string) => void;
|
|
257
|
+
export declare const presets: () => string[];
|
|
258
|
+
export declare const hideTimestamp: () => void;
|
|
259
|
+
export declare const showTimestamp: () => void;
|
|
260
|
+
export declare const hideLocation: () => void;
|
|
261
|
+
export declare const showLocation: () => void;
|
|
262
|
+
export declare const hideBadges: () => void;
|
|
263
|
+
export declare const showBadges: () => void;
|
|
264
|
+
export declare const component: (name: string) => ComponentLogger;
|
|
265
|
+
export declare const api: (name: string) => APILogger;
|
|
266
|
+
export declare const scope: (name: string) => ScopedLogger;
|
|
267
|
+
export declare const customize: (overrides: any) => void;
|
|
268
|
+
export declare const styles: () => any;
|
|
174
269
|
export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
|
|
175
270
|
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
271
|
+
export { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|
|
176
272
|
//# sourceMappingURL=Logger.d.ts.map
|
package/dist/Logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"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"}
|
package/dist/Logger.js
CHANGED
|
@@ -3,9 +3,13 @@
|
|
|
3
3
|
* @version 2.0.0
|
|
4
4
|
*/
|
|
5
5
|
// Utility imports
|
|
6
|
-
import { parseStackTrace, formatTimestamp, createStyledOutput } from './utils/index.js';
|
|
6
|
+
import { parseStackTrace, formatTimestamp, createStyledOutput, setupThemeChangeListener } from './utils/index.js';
|
|
7
7
|
// Styling imports
|
|
8
8
|
import { THEME_PRESETS, THEME_BANNERS, displayInitBanner, StylePresets, StyleBuilder } from './styling/index.js';
|
|
9
|
+
// Smart presets and scoped loggers
|
|
10
|
+
import { getSmartPreset, getAvailablePresets, hasPreset } from './styling/SmartPresets.js';
|
|
11
|
+
import { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|
|
12
|
+
import { createLogStyleBuilder } from './styling/LogStyleBuilder.js';
|
|
9
13
|
// Handler imports
|
|
10
14
|
import { ExportLogHandler } from './handlers/index.js';
|
|
11
15
|
// CLI imports
|
|
@@ -27,6 +31,12 @@ export class Logger {
|
|
|
27
31
|
groupDepth = 0;
|
|
28
32
|
exportHandler;
|
|
29
33
|
cliProcessor;
|
|
34
|
+
themeChangeListener;
|
|
35
|
+
displaySettings = {
|
|
36
|
+
showTimestamp: true,
|
|
37
|
+
showLocation: true,
|
|
38
|
+
showBadges: true
|
|
39
|
+
};
|
|
30
40
|
/**
|
|
31
41
|
* Creates a new Logger instance
|
|
32
42
|
*/
|
|
@@ -42,6 +52,27 @@ export class Logger {
|
|
|
42
52
|
}
|
|
43
53
|
// Initialize CLI processor
|
|
44
54
|
this.cliProcessor = createDefaultCLI();
|
|
55
|
+
// Set up theme change listener if auto-detection is enabled
|
|
56
|
+
if (this.config.autoDetectTheme) {
|
|
57
|
+
this.setupAutoThemeDetection();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// ===== PRIVATE HELPER METHODS =====
|
|
61
|
+
/**
|
|
62
|
+
* Sets up automatic theme detection with change listener
|
|
63
|
+
*/
|
|
64
|
+
setupAutoThemeDetection() {
|
|
65
|
+
// Clean up existing listener if any
|
|
66
|
+
if (this.themeChangeListener) {
|
|
67
|
+
this.themeChangeListener();
|
|
68
|
+
this.themeChangeListener = null;
|
|
69
|
+
}
|
|
70
|
+
// Set up new listener
|
|
71
|
+
this.themeChangeListener = setupThemeChangeListener((theme) => {
|
|
72
|
+
// Theme changed - logs will automatically use new colors on next call
|
|
73
|
+
// No need to update anything as colors are resolved dynamically
|
|
74
|
+
this.debug(`DevTools theme changed to: ${theme}`);
|
|
75
|
+
});
|
|
45
76
|
}
|
|
46
77
|
// ===== CONFIGURATION METHODS =====
|
|
47
78
|
/**
|
|
@@ -54,7 +85,18 @@ export class Logger {
|
|
|
54
85
|
* Update configuration
|
|
55
86
|
*/
|
|
56
87
|
updateConfig(updates) {
|
|
88
|
+
const previousAutoDetect = this.config.autoDetectTheme;
|
|
57
89
|
this.config = { ...this.config, ...updates };
|
|
90
|
+
// Handle auto-detection changes
|
|
91
|
+
if (updates.autoDetectTheme !== undefined && updates.autoDetectTheme !== previousAutoDetect) {
|
|
92
|
+
if (updates.autoDetectTheme) {
|
|
93
|
+
this.setupAutoThemeDetection();
|
|
94
|
+
}
|
|
95
|
+
else if (this.themeChangeListener) {
|
|
96
|
+
this.themeChangeListener();
|
|
97
|
+
this.themeChangeListener = null;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
58
100
|
}
|
|
59
101
|
/**
|
|
60
102
|
* Sets the global prefix for all log messages
|
|
@@ -72,6 +114,12 @@ export class Logger {
|
|
|
72
114
|
* Sets the logger theme
|
|
73
115
|
*/
|
|
74
116
|
setTheme(theme) {
|
|
117
|
+
// First check if it's a smart preset
|
|
118
|
+
if (hasPreset(theme)) {
|
|
119
|
+
this.preset(theme);
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
// Fallback to old theme system
|
|
75
123
|
if (theme in THEME_PRESETS) {
|
|
76
124
|
LEVEL_STYLES = THEME_PRESETS[theme];
|
|
77
125
|
this.config.theme = theme;
|
|
@@ -83,7 +131,7 @@ export class Logger {
|
|
|
83
131
|
this.success(`Theme changed to: ${theme}`);
|
|
84
132
|
}
|
|
85
133
|
else {
|
|
86
|
-
this.error(`Invalid theme: ${theme}. Available
|
|
134
|
+
this.error(`Invalid theme: ${theme}. Available:`, [...getAvailablePresets(), ...Object.keys(THEME_PRESETS)]);
|
|
87
135
|
}
|
|
88
136
|
}
|
|
89
137
|
/**
|
|
@@ -97,20 +145,140 @@ export class Logger {
|
|
|
97
145
|
* Reset logger to default configuration
|
|
98
146
|
*/
|
|
99
147
|
resetConfig() {
|
|
148
|
+
// Clean up theme listener
|
|
149
|
+
if (this.themeChangeListener) {
|
|
150
|
+
this.themeChangeListener();
|
|
151
|
+
this.themeChangeListener = null;
|
|
152
|
+
}
|
|
100
153
|
this.config = { ...DEFAULT_CONFIG };
|
|
101
154
|
LEVEL_STYLES = THEME_PRESETS.default;
|
|
155
|
+
// Re-setup auto theme detection if enabled in default config
|
|
156
|
+
if (this.config.autoDetectTheme) {
|
|
157
|
+
this.setupAutoThemeDetection();
|
|
158
|
+
}
|
|
102
159
|
this.success('Logger configuration reset to defaults');
|
|
103
160
|
}
|
|
104
|
-
// ===== SCOPED LOGGER =====
|
|
105
161
|
/**
|
|
106
|
-
*
|
|
162
|
+
* Cleanup method to remove event listeners and free resources
|
|
163
|
+
*/
|
|
164
|
+
cleanup() {
|
|
165
|
+
if (this.themeChangeListener) {
|
|
166
|
+
this.themeChangeListener();
|
|
167
|
+
this.themeChangeListener = null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// ===== SIMPLIFIED API =====
|
|
171
|
+
/**
|
|
172
|
+
* Apply a smart preset - works perfectly out-of-the-box
|
|
173
|
+
*/
|
|
174
|
+
preset(name) {
|
|
175
|
+
if (!hasPreset(name)) {
|
|
176
|
+
this.error(`Unknown preset: ${name}. Available presets:`, getAvailablePresets());
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const presetConfig = getSmartPreset(name);
|
|
180
|
+
if (presetConfig) {
|
|
181
|
+
// Apply the smart preset configuration
|
|
182
|
+
this.displaySettings.showTimestamp = presetConfig.timestamp?.show ?? true;
|
|
183
|
+
this.displaySettings.showLocation = presetConfig.location?.show ?? true;
|
|
184
|
+
// Store the preset config for use in createStyledOutput
|
|
185
|
+
this._activePreset = presetConfig;
|
|
186
|
+
this._activePresetName = name;
|
|
187
|
+
this.success(`Applied preset: ${name}`);
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* List available presets
|
|
192
|
+
*/
|
|
193
|
+
presets() {
|
|
194
|
+
return getAvailablePresets();
|
|
195
|
+
}
|
|
196
|
+
// ===== TOGGLE METHODS =====
|
|
197
|
+
/**
|
|
198
|
+
* Hide timestamp in logs
|
|
199
|
+
*/
|
|
200
|
+
hideTimestamp() {
|
|
201
|
+
this.displaySettings.showTimestamp = false;
|
|
202
|
+
this.success('Timestamp hidden');
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Show timestamp in logs
|
|
206
|
+
*/
|
|
207
|
+
showTimestamp() {
|
|
208
|
+
this.displaySettings.showTimestamp = true;
|
|
209
|
+
this.success('Timestamp shown');
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* Hide location info in logs
|
|
213
|
+
*/
|
|
214
|
+
hideLocation() {
|
|
215
|
+
this.displaySettings.showLocation = false;
|
|
216
|
+
this.success('Location info hidden');
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Show location info in logs
|
|
220
|
+
*/
|
|
221
|
+
showLocation() {
|
|
222
|
+
this.displaySettings.showLocation = true;
|
|
223
|
+
this.success('Location info shown');
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Hide badges in logs
|
|
227
|
+
*/
|
|
228
|
+
hideBadges() {
|
|
229
|
+
this.displaySettings.showBadges = false;
|
|
230
|
+
this.success('Badges hidden');
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Show badges in logs
|
|
234
|
+
*/
|
|
235
|
+
showBadges() {
|
|
236
|
+
this.displaySettings.showBadges = true;
|
|
237
|
+
this.success('Badges shown');
|
|
238
|
+
}
|
|
239
|
+
// ===== SCOPED LOGGERS =====
|
|
240
|
+
/**
|
|
241
|
+
* Create a component logger with automatic styling
|
|
242
|
+
*/
|
|
243
|
+
component(name) {
|
|
244
|
+
return new ComponentLogger(this, name);
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* Create an API logger with automatic badges
|
|
248
|
+
*/
|
|
249
|
+
api(name) {
|
|
250
|
+
return new APILogger(this, name);
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Create a general scoped logger with badges support
|
|
254
|
+
*/
|
|
255
|
+
scope(name) {
|
|
256
|
+
return new ScopedLogger(this, name);
|
|
257
|
+
}
|
|
258
|
+
// ===== SIMPLE CUSTOMIZATION =====
|
|
259
|
+
/**
|
|
260
|
+
* Simple customization with minimal configuration
|
|
261
|
+
*/
|
|
262
|
+
customize(overrides) {
|
|
263
|
+
// Apply simple overrides
|
|
264
|
+
if (overrides.timestamp?.show !== undefined) {
|
|
265
|
+
this.displaySettings.showTimestamp = overrides.timestamp.show;
|
|
266
|
+
}
|
|
267
|
+
if (overrides.location?.show !== undefined) {
|
|
268
|
+
this.displaySettings.showLocation = overrides.location.show;
|
|
269
|
+
}
|
|
270
|
+
if (overrides.prefix?.show !== undefined) {
|
|
271
|
+
// Will be handled when we integrate with preset system
|
|
272
|
+
}
|
|
273
|
+
// Store customization for use in createStyledOutput
|
|
274
|
+
this._customization = overrides;
|
|
275
|
+
this.success('Customization applied');
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Access advanced styling API (for power users)
|
|
107
279
|
*/
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
scopedLogger.scopedPrefix = prefix;
|
|
111
|
-
scopedLogger.handlers = [...this.handlers];
|
|
112
|
-
scopedLogger.exportHandler = this.exportHandler;
|
|
113
|
-
return scopedLogger;
|
|
280
|
+
styles() {
|
|
281
|
+
return createLogStyleBuilder(this);
|
|
114
282
|
}
|
|
115
283
|
// ===== HANDLER MANAGEMENT =====
|
|
116
284
|
/**
|
|
@@ -158,8 +326,8 @@ export class Logger {
|
|
|
158
326
|
const prefix = this.getEffectivePrefix();
|
|
159
327
|
const message = args.length > 0 ? String(args[0]) : '';
|
|
160
328
|
const additionalArgs = args.slice(1);
|
|
161
|
-
// Create styled output
|
|
162
|
-
const [format, ...styles] = createStyledOutput(level, LEVEL_STYLES, prefix, message, stackInfo);
|
|
329
|
+
// Create styled output with theme detection and display settings
|
|
330
|
+
const [format, ...styles] = createStyledOutput(level, LEVEL_STYLES, prefix, message, this.displaySettings.showLocation ? stackInfo : null, this.config.autoDetectTheme);
|
|
163
331
|
// Add group indentation
|
|
164
332
|
const groupIndent = ' '.repeat(this.groupDepth);
|
|
165
333
|
const finalFormat = groupIndent + format;
|
|
@@ -225,7 +393,7 @@ export class Logger {
|
|
|
225
393
|
const message = args.length > 0 ? String(args[0]) : '';
|
|
226
394
|
const additionalArgs = args.slice(1);
|
|
227
395
|
// Handle success as special case - use info level with success styling
|
|
228
|
-
const [format, ...styles] = createStyledOutput('info', LEVEL_STYLES, prefix, message, stackInfo);
|
|
396
|
+
const [format, ...styles] = createStyledOutput('info', LEVEL_STYLES, prefix, message, this.displaySettings.showLocation ? stackInfo : null, this.config.autoDetectTheme);
|
|
229
397
|
// Override with success styling
|
|
230
398
|
const successStyle = LEVEL_STYLES.success;
|
|
231
399
|
let emoji = '✅';
|
|
@@ -483,7 +651,6 @@ export const groupEnd = () => defaultLogger.groupEnd();
|
|
|
483
651
|
export const time = (label) => defaultLogger.time(label);
|
|
484
652
|
export const timeEnd = (label) => defaultLogger.timeEnd(label);
|
|
485
653
|
export const setGlobalPrefix = (prefix) => defaultLogger.setGlobalPrefix(prefix);
|
|
486
|
-
export const createScopedLogger = (prefix) => defaultLogger.createScopedLogger(prefix);
|
|
487
654
|
export const setVerbosity = (level) => defaultLogger.setVerbosity(level);
|
|
488
655
|
export const addHandler = (handler) => defaultLogger.addHandler(handler);
|
|
489
656
|
export const setTheme = (theme) => defaultLogger.setTheme(theme);
|
|
@@ -492,7 +659,22 @@ export const showBanner = (bannerType) => defaultLogger.showBanner(bannerType);
|
|
|
492
659
|
export const logWithSVG = (message, svgContent, options) => defaultLogger.logWithSVG(message, svgContent, options);
|
|
493
660
|
export const logAnimated = (message, duration) => defaultLogger.logAnimated(message, duration);
|
|
494
661
|
export const cli = (command) => defaultLogger.cli(command);
|
|
662
|
+
export const cleanup = () => defaultLogger.cleanup();
|
|
663
|
+
// Simplified API exports
|
|
664
|
+
export const preset = (name) => defaultLogger.preset(name);
|
|
665
|
+
export const presets = () => defaultLogger.presets();
|
|
666
|
+
export const hideTimestamp = () => defaultLogger.hideTimestamp();
|
|
667
|
+
export const showTimestamp = () => defaultLogger.showTimestamp();
|
|
668
|
+
export const hideLocation = () => defaultLogger.hideLocation();
|
|
669
|
+
export const showLocation = () => defaultLogger.showLocation();
|
|
670
|
+
export const hideBadges = () => defaultLogger.hideBadges();
|
|
671
|
+
export const showBadges = () => defaultLogger.showBadges();
|
|
672
|
+
export const component = (name) => defaultLogger.component(name);
|
|
673
|
+
export const api = (name) => defaultLogger.api(name);
|
|
674
|
+
export const scope = (name) => defaultLogger.scope(name);
|
|
675
|
+
export const customize = (overrides) => defaultLogger.customize(overrides);
|
|
676
|
+
export const styles = () => defaultLogger.styles();
|
|
495
677
|
// Re-export handlers and utilities for backward compatibility
|
|
496
678
|
export { FileLogHandler, RemoteLogHandler, AnalyticsLogHandler, ExportLogHandler } from './handlers/index.js';
|
|
497
|
-
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
498
|
-
|
|
679
|
+
export { StyleBuilder, StylePresets as Styles } from './styling/index.js';
|
|
680
|
+
export { ScopedLogger, APILogger, ComponentLogger } from './ScopedLogger.js';
|