@mks2508/better-logger 0.0.2-alpha.2 → 0.8.1-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/.github/workflows/ci-quality.yml +356 -0
- package/.github/workflows/docs-demo.yml +123 -0
- package/.github/workflows/releases-core.yml +448 -0
- package/.github/workflows/releases-full.yml +404 -0
- package/.github/{workflows → workflows-backup}/ci.yml +12 -110
- package/.github/workflows-backup/nightly.yml +196 -0
- package/.github/workflows-backup/release-optimized.yml +373 -0
- package/.release-notes-0.2.0.md +129 -0
- package/CHANGELOG.json +658 -0
- package/README.md +110 -512
- package/demo.html +9 -2
- package/dist/Logger.d.ts +176 -0
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +498 -0
- package/dist/chunks/{Logger-BrFKFZcD.js → Logger-CbCUS5pQ.js} +987 -5
- package/dist/chunks/Logger-CbCUS5pQ.js.map +1 -0
- package/dist/chunks/Logger-PCfgYKTP.js +2 -0
- package/dist/chunks/Logger-PCfgYKTP.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js +33 -0
- package/dist/chunks/RemoteLogHandler-CjWpWZGl.js.map +1 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js +2 -0
- package/dist/chunks/RemoteLogHandler-ymkQ97xl.js.map +1 -0
- package/dist/chunks/StyleBuilder-BoJTmskd.js +361 -0
- package/dist/chunks/StyleBuilder-BoJTmskd.js.map +1 -0
- package/dist/chunks/StyleBuilder-LPLzsoHY.js +4 -0
- package/dist/chunks/StyleBuilder-LPLzsoHY.js.map +1 -0
- package/dist/cli/CommandProcessor.d.ts +40 -0
- package/dist/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/cli/CommandProcessor.js +57 -0
- package/dist/cli/commands/ConfigCommand.d.ts +17 -0
- package/dist/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/cli/commands/ConfigCommand.js +88 -0
- package/dist/cli/commands/ExportCommand.d.ts +51 -0
- package/dist/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/cli/commands/ExportCommand.js +243 -0
- package/dist/cli/commands/StatusCommand.d.ts +33 -0
- package/dist/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/cli/commands/StatusCommand.js +93 -0
- package/dist/cli/commands/ThemeCommand.d.ts +33 -0
- package/dist/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/cli/commands/ThemeCommand.js +79 -0
- package/dist/cli/help.d.ts +15 -0
- package/dist/cli/help.d.ts.map +1 -0
- package/dist/cli/help.js +118 -0
- package/dist/cli/index.d.ts +15 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +40 -0
- package/dist/constants.d.ts +91 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +80 -0
- package/dist/core.cjs +1 -1
- package/dist/core.cjs.map +1 -1
- package/dist/core.d.ts +130 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +258 -242
- package/dist/core.js.map +1 -1
- package/dist/example.d.ts +18 -0
- package/dist/example.d.ts.map +1 -0
- package/dist/example.js +154 -0
- package/dist/exports-module.d.ts +203 -0
- package/dist/exports-module.d.ts.map +1 -0
- package/dist/exports-module.js +260 -0
- package/dist/exports.cjs +1 -1
- package/dist/exports.cjs.map +1 -1
- package/dist/exports.js +2 -2
- package/dist/handlers/AnalyticsLogHandler.d.ts +11 -0
- package/dist/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/handlers/AnalyticsLogHandler.js +19 -0
- package/dist/handlers/ExportLogHandler.d.ts +103 -0
- package/dist/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/handlers/ExportLogHandler.js +516 -0
- package/dist/handlers/FileLogHandler.d.ts +13 -0
- package/dist/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/handlers/FileLogHandler.js +24 -0
- package/dist/handlers/RemoteLogHandler.d.ts +14 -0
- package/dist/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/dist/handlers/RemoteLogHandler.js +37 -0
- package/dist/handlers/index.d.ts +8 -0
- package/dist/handlers/index.d.ts.map +1 -0
- package/dist/handlers/index.js +7 -0
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +86 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +89 -103
- package/dist/main.d.ts +2 -0
- package/dist/main.d.ts.map +1 -0
- package/dist/main.js +139 -0
- package/dist/styling/StyleBuilder.d.ts +132 -0
- package/dist/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/styling/StyleBuilder.js +268 -0
- package/dist/styling/banners.d.ts +45 -0
- package/dist/styling/banners.d.ts.map +1 -0
- package/dist/styling/banners.js +155 -0
- package/dist/styling/index.d.ts +7 -0
- package/dist/styling/index.d.ts.map +1 -0
- package/dist/styling/index.js +6 -0
- package/dist/styling/themes.d.ts +10 -0
- package/dist/styling/themes.d.ts.map +1 -0
- package/dist/styling/themes.js +231 -0
- package/dist/styling-module.d.ts +185 -0
- package/dist/styling-module.d.ts.map +1 -0
- package/dist/styling-module.js +199 -0
- package/dist/styling.cjs +1 -1
- package/dist/styling.cjs.map +1 -1
- package/dist/styling.js +4 -4
- package/dist/types/Logger.d.ts +172 -0
- package/dist/types/Logger.d.ts.map +1 -0
- package/dist/types/cli/CommandProcessor.d.ts +37 -0
- package/dist/types/cli/CommandProcessor.d.ts.map +1 -0
- package/dist/types/cli/commands/ConfigCommand.d.ts +14 -0
- package/dist/types/cli/commands/ConfigCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/ExportCommand.d.ts +48 -0
- package/dist/types/cli/commands/ExportCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/StatusCommand.d.ts +30 -0
- package/dist/types/cli/commands/StatusCommand.d.ts.map +1 -0
- package/dist/types/cli/commands/ThemeCommand.d.ts +30 -0
- package/dist/types/cli/commands/ThemeCommand.d.ts.map +1 -0
- package/dist/types/cli/help.d.ts +12 -0
- package/dist/types/cli/help.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +15 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/constants.d.ts +88 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/core.d.ts +71 -211
- package/dist/types/core.d.ts.map +1 -0
- package/dist/types/core.js +13 -0
- package/dist/types/example.d.ts +18 -0
- package/dist/types/example.d.ts.map +1 -0
- package/dist/types/exports-module.d.ts +196 -0
- package/dist/types/exports-module.d.ts.map +1 -0
- package/dist/types/handlers/AnalyticsLogHandler.d.ts +8 -0
- package/dist/types/handlers/AnalyticsLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/ExportLogHandler.d.ts +100 -0
- package/dist/types/handlers/ExportLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/FileLogHandler.d.ts +10 -0
- package/dist/types/handlers/FileLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/RemoteLogHandler.d.ts +11 -0
- package/dist/types/handlers/RemoteLogHandler.d.ts.map +1 -0
- package/dist/types/handlers/index.d.ts +8 -0
- package/dist/types/handlers/index.d.ts.map +1 -0
- package/dist/types/handlers.d.ts +88 -0
- package/dist/types/handlers.d.ts.map +1 -0
- package/dist/types/handlers.js +4 -0
- package/dist/types/index.d.ts +7 -675
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/main.d.ts +2 -0
- package/dist/types/main.d.ts.map +1 -0
- package/dist/types/styling/StyleBuilder.d.ts +132 -0
- package/dist/types/styling/StyleBuilder.d.ts.map +1 -0
- package/dist/types/styling/banners.d.ts +42 -0
- package/dist/types/styling/banners.d.ts.map +1 -0
- package/dist/types/styling/index.d.ts +7 -0
- package/dist/types/styling/index.d.ts.map +1 -0
- package/dist/types/styling/themes.d.ts +7 -0
- package/dist/types/styling/themes.d.ts.map +1 -0
- package/dist/types/styling-module.d.ts +178 -0
- package/dist/types/styling-module.d.ts.map +1 -0
- package/dist/types/types/core.d.ts +71 -0
- package/dist/types/types/core.d.ts.map +1 -0
- package/dist/types/types/handlers.d.ts +85 -0
- package/dist/types/types/handlers.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +7 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +7 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/output.d.ts +29 -0
- package/dist/types/utils/output.d.ts.map +1 -0
- package/dist/types/utils/stackTrace.d.ts +6 -0
- package/dist/types/utils/stackTrace.d.ts.map +1 -0
- package/dist/types/utils/timestamps.d.ts +20 -0
- package/dist/types/utils/timestamps.d.ts.map +1 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/output.d.ts +32 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +97 -0
- package/dist/utils/stackTrace.d.ts +9 -0
- package/dist/utils/stackTrace.d.ts.map +1 -0
- package/dist/utils/stackTrace.js +81 -0
- package/dist/utils/timestamps.d.ts +20 -0
- package/dist/utils/timestamps.d.ts.map +1 -0
- package/dist/utils/timestamps.js +71 -0
- package/docs/API.md +607 -0
- package/docs/DEVELOPMENT.md +731 -0
- package/docs/_config.yml +36 -0
- package/docs/index.md +179 -0
- package/examples/README.md +208 -0
- package/examples/basic-logging.js +75 -0
- package/examples/data-export.js +234 -0
- package/examples/package.json +16 -0
- package/examples/performance-timing.js +170 -0
- package/examples/styling-themes.js +207 -0
- package/package.json +24 -21
- package/packages/core/package.json +35 -0
- package/packages/exports/package.json +41 -0
- package/packages/styling/package.json +41 -0
- package/project-utils/README.md +172 -0
- package/project-utils/auto-release-gemini.ts +1193 -0
- package/project-utils/commit-generator.ts +1000 -0
- package/project-utils/commit-ui.ts +246 -0
- package/project-utils/git-utils.ts +199 -0
- package/project-utils/github-release-manager.ts +466 -0
- package/project-utils/prompt-templates.js +345 -0
- package/project-utils/prompt-templates.ts +422 -0
- package/project-utils/version-manager.ts +1078 -0
- package/src/Logger.ts +2 -1
- package/src/handlers/ExportLogHandler.ts +141 -0
- package/vite.config.ts +152 -50
- package/.claude/settings.local.json +0 -22
- package/.npmrc.bak +0 -1
- package/dist/chunks/Logger-BQhMKy_T.js +0 -2
- package/dist/chunks/Logger-BQhMKy_T.js.map +0 -1
- package/dist/chunks/Logger-BrFKFZcD.js.map +0 -1
- package/dist/chunks/core-2opW4Pi3.js +0 -194
- package/dist/chunks/core-2opW4Pi3.js.map +0 -1
- package/dist/chunks/core-DyugwSYZ.js +0 -4
- package/dist/chunks/core-DyugwSYZ.js.map +0 -1
- package/dist/chunks/exports-BNP3R7dp.js +0 -421
- package/dist/chunks/exports-BNP3R7dp.js.map +0 -1
- package/dist/chunks/exports-U1xLBXrY.js +0 -2
- package/dist/chunks/exports-U1xLBXrY.js.map +0 -1
- package/dist/chunks/styling-DhUDzwlE.js +0 -654
- package/dist/chunks/styling-DhUDzwlE.js.map +0 -1
- package/dist/chunks/styling-tmRDI28D.js +0 -2
- package/dist/chunks/styling-tmRDI28D.js.map +0 -1
- package/dist/types/exports.d.ts +0 -600
- package/dist/types/styling.d.ts +0 -751
- /package/.github/{workflows → workflows-backup}/release.yml +0 -0
package/dist/cli/help.js
ADDED
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Help system for Advanced Logger CLI
|
|
3
|
+
*/
|
|
4
|
+
import { StyleBuilder } from '../styling/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Help command - show comprehensive CLI help
|
|
7
|
+
*/
|
|
8
|
+
export class HelpCommand {
|
|
9
|
+
name = 'help';
|
|
10
|
+
description = 'Show CLI help and available commands';
|
|
11
|
+
usage = '/help [command]';
|
|
12
|
+
execute(_args, logger) {
|
|
13
|
+
const helpStyle = new StyleBuilder()
|
|
14
|
+
.bg('linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%)')
|
|
15
|
+
.color('#495057')
|
|
16
|
+
.padding('15px 20px')
|
|
17
|
+
.rounded('8px')
|
|
18
|
+
.border('1px solid #dee2e6')
|
|
19
|
+
.font('Monaco, Consolas, monospace')
|
|
20
|
+
.size('13px')
|
|
21
|
+
.build();
|
|
22
|
+
const helpText = `
|
|
23
|
+
╭─────────────── ADVANCED LOGGER CLI COMMANDS ─────────────────╮
|
|
24
|
+
│ │
|
|
25
|
+
│ CONFIGURATION │
|
|
26
|
+
│ /config Show current configuration │
|
|
27
|
+
│ /config {json} Apply JSON configuration │
|
|
28
|
+
│ /config key=val Apply key-value configuration │
|
|
29
|
+
│ /themes Show available themes │
|
|
30
|
+
│ /banners Show available banner types │
|
|
31
|
+
│ /banner [type] Change/show banner type │
|
|
32
|
+
│ /status Show logger status & buffer stats │
|
|
33
|
+
│ /demo Show feature demonstration │
|
|
34
|
+
│ /reset Reset to default configuration │
|
|
35
|
+
│ │
|
|
36
|
+
│ EXPORT & CLIPBOARD │
|
|
37
|
+
│ /export <format> Export logs (json|csv|md|plain|html) │
|
|
38
|
+
│ /copy <format> Copy logs to clipboard │
|
|
39
|
+
│ /buffer-size N Set log buffer size │
|
|
40
|
+
│ /buffer-info Show buffer statistics │
|
|
41
|
+
│ /clear-buffer Clear stored logs │
|
|
42
|
+
│ │
|
|
43
|
+
│ EXPORT FILTERS (for export/copy commands) │
|
|
44
|
+
│ --level error,warn Filter by log levels │
|
|
45
|
+
│ --since 2h Logs from last 2 hours │
|
|
46
|
+
│ --until 1h Logs until 1 hour ago │
|
|
47
|
+
│ --prefix API,DB Filter by prefixes │
|
|
48
|
+
│ --exclude-prefix INT Exclude prefixes │
|
|
49
|
+
│ --last 50 Last 50 logs only │
|
|
50
|
+
│ --first 25 First 25 logs only │
|
|
51
|
+
│ --search "error" Search in log messages │
|
|
52
|
+
│ --with-stack Only logs with stack traces │
|
|
53
|
+
│ --errors-only Only error + critical logs │
|
|
54
|
+
│ --group-by level Group by level/prefix/hour │
|
|
55
|
+
│ │
|
|
56
|
+
│ EXPORT OPTIONS │
|
|
57
|
+
│ --minimal Minimal output format │
|
|
58
|
+
│ --compact Remove extra whitespace │
|
|
59
|
+
│ --styled Include styling (HTML format) │
|
|
60
|
+
│ │
|
|
61
|
+
├──────────────────── CONFIGURATION OPTIONS ─────────────────┤
|
|
62
|
+
│ │
|
|
63
|
+
│ theme: default | dark | light | neon | minimal | cyberpunk│
|
|
64
|
+
│ bannerType: simple | ascii | unicode | svg | animated │
|
|
65
|
+
│ verbosity: debug | info | warn | error | critical | silent│
|
|
66
|
+
│ enableColors: true | false │
|
|
67
|
+
│ enableTimestamps: true | false │
|
|
68
|
+
│ enableStackTrace: true | false │
|
|
69
|
+
│ globalPrefix: "string" │
|
|
70
|
+
│ bufferSize: number (50-10000) │
|
|
71
|
+
│ │
|
|
72
|
+
├──────────────────────── EXAMPLES ──────────────────────────┤
|
|
73
|
+
│ │
|
|
74
|
+
│ Basic Configuration: │
|
|
75
|
+
│ /config {"theme":"dark","verbosity":"debug"} │
|
|
76
|
+
│ /config theme=neon,bufferSize=2000 │
|
|
77
|
+
│ /banner animated Change to animated banner │
|
|
78
|
+
│ │
|
|
79
|
+
│ Export Examples: │
|
|
80
|
+
│ /export json --level=error,warn --last=25 │
|
|
81
|
+
│ /export csv --since=2h --prefix=API │
|
|
82
|
+
│ /export markdown --group-by=level --errors-only │
|
|
83
|
+
│ /export html --styled --since=1h │
|
|
84
|
+
│ │
|
|
85
|
+
│ Clipboard Examples: │
|
|
86
|
+
│ /copy plain --minimal --last=10 │
|
|
87
|
+
│ /copy json --search="authentication" --compact │
|
|
88
|
+
│ /copy csv --since=30m --exclude-prefix=DEBUG │
|
|
89
|
+
│ │
|
|
90
|
+
│ Buffer Management: │
|
|
91
|
+
│ /buffer-size 5000 Increase buffer to 5000 logs │
|
|
92
|
+
│ /buffer-info Show detailed buffer statistics │
|
|
93
|
+
│ /clear-buffer Clear all stored logs │
|
|
94
|
+
│ │
|
|
95
|
+
│ Time Formats: │
|
|
96
|
+
│ --since=2h 2 hours ago │
|
|
97
|
+
│ --since=30m 30 minutes ago │
|
|
98
|
+
│ --since=1d 1 day ago │
|
|
99
|
+
│ --since="2024-01-01T10:00:00Z" Specific ISO date │
|
|
100
|
+
│ │
|
|
101
|
+
╰─────────────────────────────────────────────────────────────╯`;
|
|
102
|
+
console.log(`%c${helpText}`, helpStyle);
|
|
103
|
+
// Show quick tips
|
|
104
|
+
logger.group('💡 Quick Tips');
|
|
105
|
+
const tips = [
|
|
106
|
+
'Use /demo to see all logger features in action',
|
|
107
|
+
'Logs are automatically stored in a circular buffer for export',
|
|
108
|
+
'Export formats: JSON (structured), CSV (Excel), Markdown (readable), Plain (simple), HTML (styled)',
|
|
109
|
+
'Time filters support relative (2h, 30m) and absolute (ISO) formats',
|
|
110
|
+
'Combine multiple filters: /export json --level=error --since=1h --search="auth"',
|
|
111
|
+
'Use /copy for quick clipboard access instead of /export'
|
|
112
|
+
];
|
|
113
|
+
tips.forEach(tip => {
|
|
114
|
+
logger.info(`• ${tip}`);
|
|
115
|
+
});
|
|
116
|
+
logger.groupEnd();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview CLI system exports for Advanced Logger
|
|
3
|
+
*/
|
|
4
|
+
export { CommandProcessor, type ICommand } from './CommandProcessor.js';
|
|
5
|
+
import { CommandProcessor } 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;AAexC;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,gBAAgB,CAmBnD"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview CLI system exports for Advanced Logger
|
|
3
|
+
*/
|
|
4
|
+
// Core CLI system
|
|
5
|
+
export { CommandProcessor } from './CommandProcessor.js';
|
|
6
|
+
import { CommandProcessor } from './CommandProcessor.js';
|
|
7
|
+
// Commands
|
|
8
|
+
export { ConfigCommand } from './commands/ConfigCommand.js';
|
|
9
|
+
export { ThemesCommand, BannersCommand, BannerCommand } from './commands/ThemeCommand.js';
|
|
10
|
+
export { StatusCommand, ResetCommand, DemoCommand } from './commands/StatusCommand.js';
|
|
11
|
+
export { ExportCommand, CopyCommand, BufferSizeCommand, ClearBufferCommand, BufferInfoCommand } from './commands/ExportCommand.js';
|
|
12
|
+
// Help system
|
|
13
|
+
export { HelpCommand } from './help.js';
|
|
14
|
+
// Import all commands
|
|
15
|
+
import { HelpCommand } from './help.js';
|
|
16
|
+
import { ConfigCommand } from './commands/ConfigCommand.js';
|
|
17
|
+
import { ThemesCommand, BannersCommand, BannerCommand } from './commands/ThemeCommand.js';
|
|
18
|
+
import { StatusCommand, ResetCommand, DemoCommand } from './commands/StatusCommand.js';
|
|
19
|
+
import { ExportCommand, CopyCommand, BufferSizeCommand, ClearBufferCommand, BufferInfoCommand } from './commands/ExportCommand.js';
|
|
20
|
+
/**
|
|
21
|
+
* Create and configure default CLI processor
|
|
22
|
+
*/
|
|
23
|
+
export function createDefaultCLI() {
|
|
24
|
+
const processor = new CommandProcessor();
|
|
25
|
+
// Register all default commands
|
|
26
|
+
processor.registerCommand(new HelpCommand());
|
|
27
|
+
processor.registerCommand(new ConfigCommand());
|
|
28
|
+
processor.registerCommand(new ThemesCommand());
|
|
29
|
+
processor.registerCommand(new BannersCommand());
|
|
30
|
+
processor.registerCommand(new BannerCommand());
|
|
31
|
+
processor.registerCommand(new StatusCommand());
|
|
32
|
+
processor.registerCommand(new ResetCommand());
|
|
33
|
+
processor.registerCommand(new DemoCommand());
|
|
34
|
+
processor.registerCommand(new ExportCommand());
|
|
35
|
+
processor.registerCommand(new CopyCommand());
|
|
36
|
+
processor.registerCommand(new BufferSizeCommand());
|
|
37
|
+
processor.registerCommand(new ClearBufferCommand());
|
|
38
|
+
processor.registerCommand(new BufferInfoCommand());
|
|
39
|
+
return processor;
|
|
40
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Global constants for Advanced Logger
|
|
3
|
+
*/
|
|
4
|
+
import type { LogLevel } from './types/index.js';
|
|
5
|
+
/**
|
|
6
|
+
* Default configuration values
|
|
7
|
+
*/
|
|
8
|
+
export declare const DEFAULT_CONFIG: {
|
|
9
|
+
readonly verbosity: "info";
|
|
10
|
+
readonly enableColors: true;
|
|
11
|
+
readonly enableTimestamps: true;
|
|
12
|
+
readonly enableStackTrace: true;
|
|
13
|
+
readonly theme: "default";
|
|
14
|
+
readonly bannerType: "simple";
|
|
15
|
+
readonly bufferSize: 1000;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Maximum allowed buffer sizes for performance
|
|
19
|
+
*/
|
|
20
|
+
export declare const BUFFER_LIMITS: {
|
|
21
|
+
readonly MIN_SIZE: 50;
|
|
22
|
+
readonly DEFAULT_SIZE: 1000;
|
|
23
|
+
readonly MAX_SIZE: 10000;
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Export format definitions with extensions
|
|
27
|
+
*/
|
|
28
|
+
export declare const EXPORT_FORMATS: {
|
|
29
|
+
readonly json: {
|
|
30
|
+
readonly extension: ".json";
|
|
31
|
+
readonly mimeType: "application/json";
|
|
32
|
+
};
|
|
33
|
+
readonly csv: {
|
|
34
|
+
readonly extension: ".csv";
|
|
35
|
+
readonly mimeType: "text/csv";
|
|
36
|
+
};
|
|
37
|
+
readonly markdown: {
|
|
38
|
+
readonly extension: ".md";
|
|
39
|
+
readonly mimeType: "text/markdown";
|
|
40
|
+
};
|
|
41
|
+
readonly plain: {
|
|
42
|
+
readonly extension: ".txt";
|
|
43
|
+
readonly mimeType: "text/plain";
|
|
44
|
+
};
|
|
45
|
+
readonly html: {
|
|
46
|
+
readonly extension: ".html";
|
|
47
|
+
readonly mimeType: "text/html";
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* CLI command definitions
|
|
52
|
+
*/
|
|
53
|
+
export declare const CLI_COMMANDS: {
|
|
54
|
+
readonly config: "config";
|
|
55
|
+
readonly help: "help";
|
|
56
|
+
readonly themes: "themes";
|
|
57
|
+
readonly banners: "banners";
|
|
58
|
+
readonly banner: "banner";
|
|
59
|
+
readonly status: "status";
|
|
60
|
+
readonly reset: "reset";
|
|
61
|
+
readonly demo: "demo";
|
|
62
|
+
readonly export: "export";
|
|
63
|
+
readonly copy: "copy";
|
|
64
|
+
readonly 'buffer-size': "buffer-size";
|
|
65
|
+
readonly 'clear-buffer': "clear-buffer";
|
|
66
|
+
readonly 'buffer-info': "buffer-info";
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Time parsing constants for relative time filters
|
|
70
|
+
*/
|
|
71
|
+
export declare const TIME_UNITS: {
|
|
72
|
+
readonly ms: 1;
|
|
73
|
+
readonly s: 1000;
|
|
74
|
+
readonly m: number;
|
|
75
|
+
readonly h: number;
|
|
76
|
+
readonly d: number;
|
|
77
|
+
};
|
|
78
|
+
/**
|
|
79
|
+
* Default styling values
|
|
80
|
+
*/
|
|
81
|
+
export declare const STYLE_DEFAULTS: {
|
|
82
|
+
readonly FONT_FAMILY: "Monaco, Consolas, monospace";
|
|
83
|
+
readonly FONT_SIZE: "12px";
|
|
84
|
+
readonly BORDER_RADIUS: "4px";
|
|
85
|
+
readonly PADDING: "4px 8px";
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Level priority mapping for filtering
|
|
89
|
+
*/
|
|
90
|
+
export declare const LEVEL_PRIORITIES: Record<LogLevel, number>;
|
|
91
|
+
//# 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,EAAE,MAAM,kBAAkB,CAAC;AAEjD;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;CAQjB,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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Global constants for Advanced Logger
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Default configuration values
|
|
6
|
+
*/
|
|
7
|
+
export const DEFAULT_CONFIG = {
|
|
8
|
+
verbosity: 'info',
|
|
9
|
+
enableColors: true,
|
|
10
|
+
enableTimestamps: true,
|
|
11
|
+
enableStackTrace: true,
|
|
12
|
+
theme: 'default',
|
|
13
|
+
bannerType: 'simple',
|
|
14
|
+
bufferSize: 1000,
|
|
15
|
+
};
|
|
16
|
+
/**
|
|
17
|
+
* Maximum allowed buffer sizes for performance
|
|
18
|
+
*/
|
|
19
|
+
export const BUFFER_LIMITS = {
|
|
20
|
+
MIN_SIZE: 50,
|
|
21
|
+
DEFAULT_SIZE: 1000,
|
|
22
|
+
MAX_SIZE: 10000,
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Export format definitions with extensions
|
|
26
|
+
*/
|
|
27
|
+
export const EXPORT_FORMATS = {
|
|
28
|
+
json: { extension: '.json', mimeType: 'application/json' },
|
|
29
|
+
csv: { extension: '.csv', mimeType: 'text/csv' },
|
|
30
|
+
markdown: { extension: '.md', mimeType: 'text/markdown' },
|
|
31
|
+
plain: { extension: '.txt', mimeType: 'text/plain' },
|
|
32
|
+
html: { extension: '.html', mimeType: 'text/html' },
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* CLI command definitions
|
|
36
|
+
*/
|
|
37
|
+
export const CLI_COMMANDS = {
|
|
38
|
+
config: 'config',
|
|
39
|
+
help: 'help',
|
|
40
|
+
themes: 'themes',
|
|
41
|
+
banners: 'banners',
|
|
42
|
+
banner: 'banner',
|
|
43
|
+
status: 'status',
|
|
44
|
+
reset: 'reset',
|
|
45
|
+
demo: 'demo',
|
|
46
|
+
export: 'export',
|
|
47
|
+
copy: 'copy',
|
|
48
|
+
'buffer-size': 'buffer-size',
|
|
49
|
+
'clear-buffer': 'clear-buffer',
|
|
50
|
+
'buffer-info': 'buffer-info',
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* Time parsing constants for relative time filters
|
|
54
|
+
*/
|
|
55
|
+
export const TIME_UNITS = {
|
|
56
|
+
ms: 1,
|
|
57
|
+
s: 1000,
|
|
58
|
+
m: 60 * 1000,
|
|
59
|
+
h: 60 * 60 * 1000,
|
|
60
|
+
d: 24 * 60 * 60 * 1000,
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Default styling values
|
|
64
|
+
*/
|
|
65
|
+
export const STYLE_DEFAULTS = {
|
|
66
|
+
FONT_FAMILY: 'Monaco, Consolas, monospace',
|
|
67
|
+
FONT_SIZE: '12px',
|
|
68
|
+
BORDER_RADIUS: '4px',
|
|
69
|
+
PADDING: '4px 8px',
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Level priority mapping for filtering
|
|
73
|
+
*/
|
|
74
|
+
export const LEVEL_PRIORITIES = {
|
|
75
|
+
debug: 0,
|
|
76
|
+
info: 1,
|
|
77
|
+
warn: 2,
|
|
78
|
+
error: 3,
|
|
79
|
+
critical: 4,
|
|
80
|
+
};
|
package/dist/core.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./chunks/StyleBuilder-LPLzsoHY.js");class CoreLogger{config;scopedPrefix;handlers=[];timers=/* @__PURE__ */new Map;groupDepth=0;constructor(o={}){this.config={...e.DEFAULT_CONFIG,...o,enableColors:!1,enableTimestamps:o.enableTimestamps??!0,enableStackTrace:o.enableStackTrace??!1}}getConfig(){return{...this.config}}setGlobalPrefix(e){this.config.globalPrefix=e}setVerbosity(e){this.config.verbosity=e}createScopedLogger(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(o,...t){if(!this.shouldLog(o))return;const r=this.getEffectivePrefix(),s=this.config.enableTimestamps?e.formatTimestamp():null,i=this.config.enableStackTrace?e.parseStackTrace():null,n=[];s&&n.push(`[${s.slice(11,23)}]`),n.push(`[${o.toUpperCase()}]`),r&&n.push(`[${r}]`);const l=" ".repeat(this.groupDepth)+n.join(" ");console.log(l,...t),i&&this.config.enableStackTrace&&console.log(` at ${i.file}:${i.line}:${i.column}`);const a={timestamp:s||e.formatTimestamp(),level:o,prefix:r,stackInfo:i||void 0};this.handlers.forEach(e=>{try{e.handle(o,String(t[0]||""),t,a)}catch(r){console.error("Log handler failed:",r)}})}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(e,o){if(!this.shouldLog("info"))return;const t=this.getEffectivePrefix();console.log(`[TABLE]${t?` [${t}]`:""}:`),o?console.table(e,o):console.table(e)}group(e,o=!1){const t=this.getEffectivePrefix(),r=`${t?`[${t}] `:""}${e}`;o?console.groupCollapsed(r):console.group(r),this.groupDepth++}groupEnd(){this.groupDepth>0&&(console.groupEnd(),this.groupDepth--)}time(e){const o={label:e,startTime:performance.now()};this.timers.set(e,o),console.log(`[TIMER] Started: ${e}`)}timeEnd(e){const o=this.timers.get(e);if(!o)return void this.warn(`Timer '${e}' does not exist`);const t=performance.now()-o.startTime;this.timers.delete(e),console.log(`[TIMER] ${e}: ${t.toFixed(2)}ms`)}}const o=new CoreLogger;exports.CoreLogger=CoreLogger,exports.addHandler=e=>o.addHandler(e),exports.createScopedLogger=e=>o.createScopedLogger(e),exports.critical=(...e)=>o.critical(...e),exports.debug=(...e)=>o.debug(...e),exports.default=o,exports.error=(...e)=>o.error(...e),exports.group=(e,t)=>o.group(e,t),exports.groupEnd=()=>o.groupEnd(),exports.info=(...e)=>o.info(...e),exports.setGlobalPrefix=e=>o.setGlobalPrefix(e),exports.setVerbosity=e=>o.setVerbosity(e),exports.table=(e,t)=>o.table(e,t),exports.time=e=>o.time(e),exports.timeEnd=e=>o.timeEnd(e),exports.trace=(...e)=>o.trace(...e),exports.warn=(...e)=>o.warn(...e);
|
|
2
2
|
//# sourceMappingURL=core.cjs.map
|
package/dist/core.cjs.map
CHANGED
|
@@ -1 +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 only\nimport {\n parseStackTrace,\n formatTimestamp\n} from './utils/index.js';\n\n// Minimal constants\nimport { DEFAULT_CONFIG } 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 // Force disable advanced features for core module\n enableColors: false,\n enableTimestamps: config.enableTimestamps ?? true,\n enableStackTrace: config.enableStackTrace ?? false,\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 createScopedLogger(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 minimal formatting\n */\n private log(level: LogLevel, ...args: any[]): void {\n if (!this.shouldLog(level)) return;\n\n const prefix = this.getEffectivePrefix();\n const timestamp = this.config.enableTimestamps ? formatTimestamp() : null;\n const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;\n \n // Simple formatting without CSS styling\n const parts: string[] = [];\n \n if (timestamp) {\n parts.push(`[${timestamp.slice(11, 23)}]`);\n }\n \n parts.push(`[${level.toUpperCase()}]`);\n \n if (prefix) {\n parts.push(`[${prefix}]`);\n }\n\n const groupIndent = ' '.repeat(this.groupDepth);\n const logPrefix = groupIndent + parts.join(' ');\n \n // Output to console with simple formatting\n console.log(logPrefix, ...args);\n \n if (stackInfo && this.config.enableStackTrace) {\n console.log(` at ${stackInfo.file}:${stackInfo.line}:${stackInfo.column}`);\n }\n\n // Call custom handlers\n const metadata: LogMetadata = {\n timestamp: timestamp || formatTimestamp(),\n level,\n prefix,\n stackInfo: stackInfo || undefined,\n };\n\n this.handlers.forEach(handler => {\n try {\n handler.handle(level, String(args[0] || ''), 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 console.log(`[TABLE]${prefix ? ` [${prefix}]` : ''}:`);\n \n if (columns) {\n console.table(data, columns);\n } else {\n console.table(data);\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 (collapsed) {\n console.groupCollapsed(fullLabel);\n } else {\n console.group(fullLabel);\n }\n \n this.groupDepth++;\n }\n\n /**\n * Ends the current console group\n */\n groupEnd(): void {\n if (this.groupDepth > 0) {\n console.groupEnd();\n this.groupDepth--;\n }\n }\n\n /**\n * Starts a timer with the given label\n */\n time(label: string): void {\n const timer: TimerEntry = {\n label,\n startTime: performance.now(),\n };\n this.timers.set(label, timer);\n console.log(`[TIMER] Started: ${label}`);\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 = performance.now() - timer.startTime;\n this.timers.delete(label);\n console.log(`[TIMER] ${label}: ${elapsed.toFixed(2)}ms`);\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 createScopedLogger = (prefix: string) => coreLogger.createScopedLogger(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","enableTimestamps","enableStackTrace","getConfig","setGlobalPrefix","prefix","globalPrefix","setVerbosity","level","verbosity","createScopedLogger","scopedLogger","addHandler","handler","push","shouldLog","levels","debug","info","warn","error","critical","getEffectivePrefix","parts","filter","Boolean","length","join","log","args","timestamp","formatTimestamp","stackInfo","parseStackTrace","slice","toUpperCase","logPrefix","repeat","console","file","line","column","metadata","forEach","handle","String","trace","table","data","columns","group","label","collapsed","fullLabel","groupCollapsed","groupEnd","time","timer","startTime","performance","now","set","timeEnd","get","elapsed","delete","toFixed","coreLogger"],"mappings":"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"}
|
|
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 only\nimport {\n parseStackTrace,\n formatTimestamp\n} from './utils/index.js';\n\n// Minimal constants\nimport { DEFAULT_CONFIG } 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 // Force disable advanced features for core module\n enableColors: false,\n enableTimestamps: config.enableTimestamps ?? true,\n enableStackTrace: config.enableStackTrace ?? false,\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 createScopedLogger(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 minimal formatting\n */\n private log(level: LogLevel, ...args: any[]): void {\n if (!this.shouldLog(level)) return;\n\n const prefix = this.getEffectivePrefix();\n const timestamp = this.config.enableTimestamps ? formatTimestamp() : null;\n const stackInfo = this.config.enableStackTrace ? parseStackTrace() : null;\n \n // Simple formatting without CSS styling\n const parts: string[] = [];\n \n if (timestamp) {\n parts.push(`[${timestamp.slice(11, 23)}]`);\n }\n \n parts.push(`[${level.toUpperCase()}]`);\n \n if (prefix) {\n parts.push(`[${prefix}]`);\n }\n\n const groupIndent = ' '.repeat(this.groupDepth);\n const logPrefix = groupIndent + parts.join(' ');\n \n // Output to console with simple formatting\n console.log(logPrefix, ...args);\n \n if (stackInfo && this.config.enableStackTrace) {\n console.log(` at ${stackInfo.file}:${stackInfo.line}:${stackInfo.column}`);\n }\n\n // Call custom handlers\n const metadata: LogMetadata = {\n timestamp: timestamp || formatTimestamp(),\n level,\n prefix,\n stackInfo: stackInfo || undefined,\n };\n\n this.handlers.forEach(handler => {\n try {\n handler.handle(level, String(args[0] || ''), 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 console.log(`[TABLE]${prefix ? ` [${prefix}]` : ''}:`);\n \n if (columns) {\n console.table(data, columns);\n } else {\n console.table(data);\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 (collapsed) {\n console.groupCollapsed(fullLabel);\n } else {\n console.group(fullLabel);\n }\n \n this.groupDepth++;\n }\n\n /**\n * Ends the current console group\n */\n groupEnd(): void {\n if (this.groupDepth > 0) {\n console.groupEnd();\n this.groupDepth--;\n }\n }\n\n /**\n * Starts a timer with the given label\n */\n time(label: string): void {\n const timer: TimerEntry = {\n label,\n startTime: performance.now(),\n };\n this.timers.set(label, timer);\n console.log(`[TIMER] Started: ${label}`);\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 = performance.now() - timer.startTime;\n this.timers.delete(label);\n console.log(`[TIMER] ${label}: ${elapsed.toFixed(2)}ms`);\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 createScopedLogger = (prefix: string) => coreLogger.createScopedLogger(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","enableTimestamps","enableStackTrace","getConfig","setGlobalPrefix","prefix","globalPrefix","setVerbosity","level","verbosity","createScopedLogger","scopedLogger","addHandler","handler","push","shouldLog","levels","debug","info","warn","error","critical","getEffectivePrefix","parts","filter","Boolean","length","join","log","args","timestamp","formatTimestamp","stackInfo","parseStackTrace","slice","toUpperCase","logPrefix","repeat","console","file","line","column","metadata","forEach","handle","String","trace","table","data","columns","group","label","collapsed","fullLabel","groupCollapsed","groupEnd","time","timer","startTime","performance","now","set","timeEnd","get","elapsed","delete","toFixed","coreLogger"],"mappings":"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"}
|
package/dist/core.d.ts
ADDED
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Core Logger Module - Minimal logging without advanced features
|
|
3
|
+
* @version 0.0.1
|
|
4
|
+
*
|
|
5
|
+
* This module provides the essential logging functionality without visual enhancements,
|
|
6
|
+
* SVG support, or advanced styling. Perfect for lightweight applications or server-side usage.
|
|
7
|
+
*/
|
|
8
|
+
import type { Verbosity, LoggerConfig, ILogHandler } from './types/index.js';
|
|
9
|
+
/**
|
|
10
|
+
* Minimal Logger class with core functionality only
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { CoreLogger } from '@mks2508/better-logger/core';
|
|
15
|
+
*
|
|
16
|
+
* const logger = new CoreLogger();
|
|
17
|
+
* logger.info('Hello world');
|
|
18
|
+
* logger.error('Something went wrong', error);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare class CoreLogger {
|
|
22
|
+
private config;
|
|
23
|
+
private scopedPrefix?;
|
|
24
|
+
private handlers;
|
|
25
|
+
private timers;
|
|
26
|
+
private groupDepth;
|
|
27
|
+
/**
|
|
28
|
+
* Creates a new CoreLogger instance
|
|
29
|
+
* @param config - Optional configuration
|
|
30
|
+
*/
|
|
31
|
+
constructor(config?: Partial<LoggerConfig>);
|
|
32
|
+
/**
|
|
33
|
+
* Get current configuration
|
|
34
|
+
*/
|
|
35
|
+
getConfig(): LoggerConfig;
|
|
36
|
+
/**
|
|
37
|
+
* Sets the global prefix for all log messages
|
|
38
|
+
*/
|
|
39
|
+
setGlobalPrefix(prefix: string): void;
|
|
40
|
+
/**
|
|
41
|
+
* Sets the verbosity level for filtering log output
|
|
42
|
+
*/
|
|
43
|
+
setVerbosity(level: Verbosity): void;
|
|
44
|
+
/**
|
|
45
|
+
* Creates a scoped logger with a specific prefix
|
|
46
|
+
*/
|
|
47
|
+
createScopedLogger(prefix: string): CoreLogger;
|
|
48
|
+
/**
|
|
49
|
+
* Adds a custom log handler for extensibility
|
|
50
|
+
*/
|
|
51
|
+
addHandler(handler: ILogHandler): void;
|
|
52
|
+
/**
|
|
53
|
+
* Checks if a log level should be output based on current verbosity
|
|
54
|
+
*/
|
|
55
|
+
private shouldLog;
|
|
56
|
+
/**
|
|
57
|
+
* Gets the effective prefix (global + scoped)
|
|
58
|
+
*/
|
|
59
|
+
private getEffectivePrefix;
|
|
60
|
+
/**
|
|
61
|
+
* Core logging method with minimal formatting
|
|
62
|
+
*/
|
|
63
|
+
private log;
|
|
64
|
+
/**
|
|
65
|
+
* Logs debug information (lowest priority)
|
|
66
|
+
*/
|
|
67
|
+
debug(...args: any[]): void;
|
|
68
|
+
/**
|
|
69
|
+
* Logs informational messages
|
|
70
|
+
*/
|
|
71
|
+
info(...args: any[]): void;
|
|
72
|
+
/**
|
|
73
|
+
* Logs warning messages
|
|
74
|
+
*/
|
|
75
|
+
warn(...args: any[]): void;
|
|
76
|
+
/**
|
|
77
|
+
* Logs error messages
|
|
78
|
+
*/
|
|
79
|
+
error(...args: any[]): void;
|
|
80
|
+
/**
|
|
81
|
+
* Logs critical errors (highest priority)
|
|
82
|
+
*/
|
|
83
|
+
critical(...args: any[]): void;
|
|
84
|
+
/**
|
|
85
|
+
* Logs trace information (detailed debugging)
|
|
86
|
+
*/
|
|
87
|
+
trace(...args: any[]): void;
|
|
88
|
+
/**
|
|
89
|
+
* Displays data in a table format
|
|
90
|
+
*/
|
|
91
|
+
table(data: any, columns?: string[]): void;
|
|
92
|
+
/**
|
|
93
|
+
* Starts a collapsible group in the console
|
|
94
|
+
*/
|
|
95
|
+
group(label: string, collapsed?: boolean): void;
|
|
96
|
+
/**
|
|
97
|
+
* Ends the current console group
|
|
98
|
+
*/
|
|
99
|
+
groupEnd(): void;
|
|
100
|
+
/**
|
|
101
|
+
* Starts a timer with the given label
|
|
102
|
+
*/
|
|
103
|
+
time(label: string): void;
|
|
104
|
+
/**
|
|
105
|
+
* Ends a timer and logs the elapsed time
|
|
106
|
+
*/
|
|
107
|
+
timeEnd(label: string): void;
|
|
108
|
+
}
|
|
109
|
+
declare const coreLogger: CoreLogger;
|
|
110
|
+
/**
|
|
111
|
+
* Export individual methods for convenience (with proper binding)
|
|
112
|
+
*/
|
|
113
|
+
export declare const debug: (...args: any[]) => void;
|
|
114
|
+
export declare const info: (...args: any[]) => void;
|
|
115
|
+
export declare const warn: (...args: any[]) => void;
|
|
116
|
+
export declare const error: (...args: any[]) => void;
|
|
117
|
+
export declare const critical: (...args: any[]) => void;
|
|
118
|
+
export declare const trace: (...args: any[]) => void;
|
|
119
|
+
export declare const table: (data: any, columns?: string[]) => void;
|
|
120
|
+
export declare const group: (label: string, collapsed?: boolean) => void;
|
|
121
|
+
export declare const groupEnd: () => void;
|
|
122
|
+
export declare const time: (label: string) => void;
|
|
123
|
+
export declare const timeEnd: (label: string) => void;
|
|
124
|
+
export declare const setGlobalPrefix: (prefix: string) => void;
|
|
125
|
+
export declare const createScopedLogger: (prefix: string) => CoreLogger;
|
|
126
|
+
export declare const setVerbosity: (level: Verbosity) => void;
|
|
127
|
+
export declare const addHandler: (handler: ILogHandler) => void;
|
|
128
|
+
export default coreLogger;
|
|
129
|
+
export type { LogLevel, Verbosity, LoggerConfig, ILogHandler, LogMetadata } from './types/index.js';
|
|
130
|
+
//# 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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"}
|