traceperf 0.2.1 → 1.3.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.
- package/README.md +608 -253
- package/dist/__tests__/helpers/console.d.ts +9 -0
- package/dist/__tests__/helpers/console.js +25 -0
- package/dist/__tests__/helpers/console.js.map +1 -0
- package/dist/auto.d.ts +30 -0
- package/dist/auto.js +91 -0
- package/dist/auto.js.map +1 -0
- package/dist/browser.d.ts +52 -144
- package/dist/browser.js +112 -439
- package/dist/browser.js.map +1 -1
- package/dist/cli.d.ts +68 -0
- package/dist/cli.js +528 -0
- package/dist/cli.js.map +1 -0
- package/dist/core/allocations.d.ts +38 -0
- package/dist/core/allocations.js +85 -0
- package/dist/core/allocations.js.map +1 -0
- package/dist/core/cpu-profile.d.ts +84 -0
- package/dist/core/cpu-profile.js +181 -0
- package/dist/core/cpu-profile.js.map +1 -0
- package/dist/core/env.d.ts +10 -0
- package/dist/core/env.js +40 -0
- package/dist/core/env.js.map +1 -0
- package/dist/core/event-loop.d.ts +30 -0
- package/dist/core/event-loop.js +43 -0
- package/dist/core/event-loop.js.map +1 -0
- package/dist/core/explain.d.ts +48 -0
- package/dist/core/explain.js +236 -0
- package/dist/core/explain.js.map +1 -0
- package/dist/core/exporters.d.ts +111 -0
- package/dist/core/exporters.js +236 -0
- package/dist/core/exporters.js.map +1 -0
- package/dist/core/index.d.ts +9 -3
- package/dist/core/index.js +9 -3
- package/dist/core/index.js.map +1 -1
- package/dist/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/core/optimized-performance-monitor.js +687 -175
- package/dist/core/optimized-performance-monitor.js.map +1 -1
- package/dist/core/prometheus.d.ts +36 -0
- package/dist/core/prometheus.js +93 -0
- package/dist/core/prometheus.js.map +1 -0
- package/dist/core/records.d.ts +97 -0
- package/dist/core/records.js +87 -0
- package/dist/core/records.js.map +1 -0
- package/dist/core/stats.d.ts +45 -0
- package/dist/core/stats.js +136 -0
- package/dist/core/stats.js.map +1 -0
- package/dist/core/timeline.d.ts +28 -0
- package/dist/core/timeline.js +65 -0
- package/dist/core/timeline.js.map +1 -0
- package/dist/drivers.d.ts +51 -0
- package/dist/drivers.js +205 -0
- package/dist/drivers.js.map +1 -0
- package/dist/esm/auto.d.ts +30 -0
- package/dist/esm/auto.js +87 -0
- package/dist/esm/auto.js.map +1 -0
- package/dist/esm/browser.d.ts +52 -144
- package/dist/esm/browser.js +101 -445
- package/dist/esm/browser.js.map +1 -1
- package/dist/esm/cli.d.ts +68 -0
- package/dist/esm/cli.js +520 -0
- package/dist/esm/cli.js.map +1 -0
- package/dist/esm/core/allocations.d.ts +38 -0
- package/dist/esm/core/allocations.js +82 -0
- package/dist/esm/core/allocations.js.map +1 -0
- package/dist/esm/core/cpu-profile.d.ts +84 -0
- package/dist/esm/core/cpu-profile.js +176 -0
- package/dist/esm/core/cpu-profile.js.map +1 -0
- package/dist/esm/core/env.d.ts +10 -0
- package/dist/esm/core/env.js +35 -0
- package/dist/esm/core/env.js.map +1 -0
- package/dist/esm/core/event-loop.d.ts +30 -0
- package/dist/esm/core/event-loop.js +40 -0
- package/dist/esm/core/event-loop.js.map +1 -0
- package/dist/esm/core/explain.d.ts +48 -0
- package/dist/esm/core/explain.js +232 -0
- package/dist/esm/core/explain.js.map +1 -0
- package/dist/esm/core/exporters.d.ts +111 -0
- package/dist/esm/core/exporters.js +229 -0
- package/dist/esm/core/exporters.js.map +1 -0
- package/dist/esm/core/index.d.ts +10 -4
- package/dist/esm/core/index.js +10 -4
- package/dist/esm/core/index.js.map +1 -1
- package/dist/esm/core/optimized-performance-monitor.d.ts +180 -26
- package/dist/esm/core/optimized-performance-monitor.js +685 -173
- package/dist/esm/core/optimized-performance-monitor.js.map +1 -1
- package/dist/esm/core/prometheus.d.ts +36 -0
- package/dist/esm/core/prometheus.js +89 -0
- package/dist/esm/core/prometheus.js.map +1 -0
- package/dist/esm/core/records.d.ts +97 -0
- package/dist/esm/core/records.js +82 -0
- package/dist/esm/core/records.js.map +1 -0
- package/dist/esm/core/stats.d.ts +45 -0
- package/dist/esm/core/stats.js +131 -0
- package/dist/esm/core/stats.js.map +1 -0
- package/dist/esm/core/timeline.d.ts +28 -0
- package/dist/esm/core/timeline.js +62 -0
- package/dist/esm/core/timeline.js.map +1 -0
- package/dist/esm/drivers.d.ts +51 -0
- package/dist/esm/drivers.js +197 -0
- package/dist/esm/drivers.js.map +1 -0
- package/dist/esm/index.d.ts +13 -5
- package/dist/esm/index.js +21 -17
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instrument.d.ts +88 -0
- package/dist/esm/instrument.js +274 -0
- package/dist/esm/instrument.js.map +1 -0
- package/dist/esm/integrations.d.ts +70 -0
- package/dist/esm/integrations.js +197 -0
- package/dist/esm/integrations.js.map +1 -0
- package/dist/esm/node-builtins.d.ts +1 -0
- package/dist/esm/node-builtins.js +32 -0
- package/dist/esm/node-builtins.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/dist/esm/register.d.ts +20 -0
- package/dist/esm/register.js +98 -0
- package/dist/esm/register.js.map +1 -0
- package/dist/esm/report-html.d.ts +11 -0
- package/dist/esm/report-html.js +106 -0
- package/dist/esm/report-html.js.map +1 -0
- package/dist/esm/types/index.d.ts +4 -80
- package/dist/esm/types/index.js +1 -2
- package/dist/esm/types/index.js.map +1 -1
- package/dist/esm/types/options.d.ts +72 -0
- package/dist/esm/types/options.js +2 -0
- package/dist/esm/types/options.js.map +1 -0
- package/dist/esm/watch.d.ts +17 -0
- package/dist/esm/watch.js +87 -0
- package/dist/esm/watch.js.map +1 -0
- package/dist/index.d.ts +10 -2
- package/dist/index.js +26 -29
- package/dist/index.js.map +1 -1
- package/dist/instrument.d.ts +88 -0
- package/dist/instrument.js +282 -0
- package/dist/instrument.js.map +1 -0
- package/dist/integrations.d.ts +70 -0
- package/dist/integrations.js +205 -0
- package/dist/integrations.js.map +1 -0
- package/dist/node-builtins.d.ts +1 -0
- package/dist/node-builtins.js +67 -0
- package/dist/node-builtins.js.map +1 -0
- package/dist/register.d.ts +20 -0
- package/dist/register.js +103 -0
- package/dist/register.js.map +1 -0
- package/dist/report-html.d.ts +11 -0
- package/dist/report-html.js +109 -0
- package/dist/report-html.js.map +1 -0
- package/dist/traceperf.browser.js +1910 -0
- package/dist/traceperf.browser.min.js +6 -0
- package/dist/types/index.d.ts +4 -80
- package/dist/types/index.js +1 -2
- package/dist/types/index.js.map +1 -1
- package/dist/types/options.d.ts +72 -0
- package/dist/types/{config.js → options.js} +1 -1
- package/dist/types/options.js.map +1 -0
- package/dist/watch.d.ts +17 -0
- package/dist/watch.js +90 -0
- package/dist/watch.js.map +1 -0
- package/package.json +99 -19
- package/dist/core/config.d.ts +0 -77
- package/dist/core/config.js +0 -116
- package/dist/core/config.js.map +0 -1
- package/dist/core/constants.d.ts +0 -78
- package/dist/core/constants.js +0 -109
- package/dist/core/constants.js.map +0 -1
- package/dist/core/logger.d.ts +0 -97
- package/dist/core/logger.js +0 -186
- package/dist/core/logger.js.map +0 -1
- package/dist/esm/core/config.d.ts +0 -77
- package/dist/esm/core/config.js +0 -112
- package/dist/esm/core/config.js.map +0 -1
- package/dist/esm/core/constants.d.ts +0 -78
- package/dist/esm/core/constants.js +0 -106
- package/dist/esm/core/constants.js.map +0 -1
- package/dist/esm/core/logger.d.ts +0 -97
- package/dist/esm/core/logger.js +0 -182
- package/dist/esm/core/logger.js.map +0 -1
- package/dist/esm/formatters/ascii.d.ts +0 -52
- package/dist/esm/formatters/ascii.js +0 -100
- package/dist/esm/formatters/ascii.js.map +0 -1
- package/dist/esm/formatters/cli.d.ts +0 -50
- package/dist/esm/formatters/cli.js +0 -96
- package/dist/esm/formatters/cli.js.map +0 -1
- package/dist/esm/formatters/index.d.ts +0 -3
- package/dist/esm/formatters/index.js +0 -4
- package/dist/esm/formatters/index.js.map +0 -1
- package/dist/esm/formatters/json.d.ts +0 -45
- package/dist/esm/formatters/json.js +0 -85
- package/dist/esm/formatters/json.js.map +0 -1
- package/dist/esm/trackers/execution.d.ts +0 -101
- package/dist/esm/trackers/execution.js +0 -226
- package/dist/esm/trackers/execution.js.map +0 -1
- package/dist/esm/trackers/index.d.ts +0 -2
- package/dist/esm/trackers/index.js +0 -3
- package/dist/esm/trackers/index.js.map +0 -1
- package/dist/esm/trackers/performance.d.ts +0 -68
- package/dist/esm/trackers/performance.js +0 -112
- package/dist/esm/trackers/performance.js.map +0 -1
- package/dist/esm/types/config.d.ts +0 -142
- package/dist/esm/types/config.js +0 -2
- package/dist/esm/types/config.js.map +0 -1
- package/dist/esm/types/logger.d.ts +0 -147
- package/dist/esm/types/logger.js +0 -2
- package/dist/esm/types/logger.js.map +0 -1
- package/dist/esm/utils/colors.d.ts +0 -87
- package/dist/esm/utils/colors.js +0 -146
- package/dist/esm/utils/colors.js.map +0 -1
- package/dist/esm/utils/index.d.ts +0 -3
- package/dist/esm/utils/index.js +0 -4
- package/dist/esm/utils/index.js.map +0 -1
- package/dist/esm/utils/proxy-tracker.d.ts +0 -68
- package/dist/esm/utils/proxy-tracker.js +0 -127
- package/dist/esm/utils/proxy-tracker.js.map +0 -1
- package/dist/esm/utils/stack.d.ts +0 -63
- package/dist/esm/utils/stack.js +0 -110
- package/dist/esm/utils/stack.js.map +0 -1
- package/dist/esm/utils/string.d.ts +0 -29
- package/dist/esm/utils/string.js +0 -45
- package/dist/esm/utils/string.js.map +0 -1
- package/dist/esm/utils/timing.d.ts +0 -65
- package/dist/esm/utils/timing.js +0 -99
- package/dist/esm/utils/timing.js.map +0 -1
- package/dist/formatters/ascii.d.ts +0 -52
- package/dist/formatters/ascii.js +0 -104
- package/dist/formatters/ascii.js.map +0 -1
- package/dist/formatters/cli.d.ts +0 -50
- package/dist/formatters/cli.js +0 -100
- package/dist/formatters/cli.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -3
- package/dist/formatters/index.js +0 -20
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/json.d.ts +0 -45
- package/dist/formatters/json.js +0 -89
- package/dist/formatters/json.js.map +0 -1
- package/dist/trackers/execution.d.ts +0 -101
- package/dist/trackers/execution.js +0 -230
- package/dist/trackers/execution.js.map +0 -1
- package/dist/trackers/index.d.ts +0 -2
- package/dist/trackers/index.js +0 -19
- package/dist/trackers/index.js.map +0 -1
- package/dist/trackers/performance.d.ts +0 -68
- package/dist/trackers/performance.js +0 -116
- package/dist/trackers/performance.js.map +0 -1
- package/dist/types/config.d.ts +0 -142
- package/dist/types/config.js.map +0 -1
- package/dist/types/logger.d.ts +0 -147
- package/dist/types/logger.js +0 -3
- package/dist/types/logger.js.map +0 -1
- package/dist/types.d.ts +0 -65
- package/dist/types.js +0 -6
- package/dist/types.js.map +0 -1
- package/dist/utils/colors.d.ts +0 -87
- package/dist/utils/colors.js +0 -160
- package/dist/utils/colors.js.map +0 -1
- package/dist/utils/index.d.ts +0 -3
- package/dist/utils/index.js +0 -20
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/proxy-tracker.d.ts +0 -68
- package/dist/utils/proxy-tracker.js +0 -131
- package/dist/utils/proxy-tracker.js.map +0 -1
- package/dist/utils/stack.d.ts +0 -63
- package/dist/utils/stack.js +0 -116
- package/dist/utils/stack.js.map +0 -1
- package/dist/utils/string.d.ts +0 -29
- package/dist/utils/string.js +0 -50
- package/dist/utils/string.js.map +0 -1
- package/dist/utils/timing.d.ts +0 -65
- package/dist/utils/timing.js +0 -106
- package/dist/utils/timing.js.map +0 -1
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PerformanceMonitor = void 0;
|
|
4
|
-
const timing_1 = require("../utils/timing");
|
|
5
|
-
const uuid_1 = require("uuid");
|
|
6
|
-
/**
|
|
7
|
-
* Performance monitor for tracking execution times and memory usage
|
|
8
|
-
*/
|
|
9
|
-
class PerformanceMonitor {
|
|
10
|
-
/**
|
|
11
|
-
* Create a new PerformanceMonitor instance
|
|
12
|
-
*
|
|
13
|
-
* @param options - Monitor options
|
|
14
|
-
*/
|
|
15
|
-
constructor(options = {}) {
|
|
16
|
-
var _a;
|
|
17
|
-
this._timers = new Map();
|
|
18
|
-
this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Start timing an operation
|
|
22
|
-
*
|
|
23
|
-
* @param label - Label for the operation
|
|
24
|
-
* @returns A unique identifier for the timing operation
|
|
25
|
-
*/
|
|
26
|
-
startTimer(label) {
|
|
27
|
-
const id = `${label}-${(0, uuid_1.v4)()}`;
|
|
28
|
-
this._timers.set(id, (0, timing_1.getHighResTime)());
|
|
29
|
-
return id;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* End timing an operation
|
|
33
|
-
*
|
|
34
|
-
* @param id - The identifier returned by startTimer
|
|
35
|
-
* @returns The duration in milliseconds
|
|
36
|
-
* @throws Error if the timer doesn't exist
|
|
37
|
-
*/
|
|
38
|
-
endTimer(id) {
|
|
39
|
-
const startTime = this._timers.get(id);
|
|
40
|
-
if (!startTime) {
|
|
41
|
-
throw new Error(`Timer with id ${id} not found`);
|
|
42
|
-
}
|
|
43
|
-
const duration = (0, timing_1.getDuration)(startTime);
|
|
44
|
-
this._timers.delete(id);
|
|
45
|
-
return duration;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Check if an operation exceeds the performance threshold
|
|
49
|
-
*
|
|
50
|
-
* @param duration - The duration in milliseconds
|
|
51
|
-
* @param threshold - The threshold to check against
|
|
52
|
-
* @returns Whether the operation is considered slow
|
|
53
|
-
*/
|
|
54
|
-
isBottleneck(duration, threshold) {
|
|
55
|
-
const effectiveThreshold = threshold !== null && threshold !== void 0 ? threshold : this._defaultThreshold;
|
|
56
|
-
return duration > effectiveThreshold;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Get memory usage information
|
|
60
|
-
*
|
|
61
|
-
* @returns Memory usage object
|
|
62
|
-
*/
|
|
63
|
-
getMemoryUsage() {
|
|
64
|
-
try {
|
|
65
|
-
return process.memoryUsage();
|
|
66
|
-
}
|
|
67
|
-
catch (e) {
|
|
68
|
-
console.warn('Unable to track memory usage:', e);
|
|
69
|
-
return undefined;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Calculate memory difference between current and start memory
|
|
74
|
-
*
|
|
75
|
-
* @param start - Starting memory usage snapshot
|
|
76
|
-
* @returns Memory difference or undefined
|
|
77
|
-
*/
|
|
78
|
-
getMemoryDiff(start) {
|
|
79
|
-
try {
|
|
80
|
-
const current = this.getMemoryUsage();
|
|
81
|
-
if (!current)
|
|
82
|
-
return 0;
|
|
83
|
-
const diff = current.heapUsed - start.heapUsed;
|
|
84
|
-
// Return zero instead of negative values
|
|
85
|
-
// Negative values usually indicate garbage collection, not actual memory release
|
|
86
|
-
return Math.max(0, diff);
|
|
87
|
-
}
|
|
88
|
-
catch (e) {
|
|
89
|
-
console.warn('Error calculating memory usage:', e);
|
|
90
|
-
return 0;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Generate a suggestion for a bottleneck
|
|
95
|
-
*
|
|
96
|
-
* @param functionName - The name of the function
|
|
97
|
-
* @param duration - The duration in milliseconds
|
|
98
|
-
* @param memoryUsage - Memory usage in bytes
|
|
99
|
-
* @returns A suggestion for improving performance
|
|
100
|
-
*/
|
|
101
|
-
generateSuggestion(functionName, duration, memoryUsage) {
|
|
102
|
-
// Simple heuristic-based suggestions
|
|
103
|
-
if (memoryUsage && memoryUsage > 10 * 1024 * 1024) {
|
|
104
|
-
return `🛠 Potential Fix: Check for memory leaks or large object allocations in ${functionName}`;
|
|
105
|
-
}
|
|
106
|
-
if (duration > 1000) {
|
|
107
|
-
return `🛠 Potential Fix: Consider optimizing or adding caching to ${functionName}`;
|
|
108
|
-
}
|
|
109
|
-
if (duration > 500) {
|
|
110
|
-
return `🛠 Potential Fix: Look for blocking operations in ${functionName}`;
|
|
111
|
-
}
|
|
112
|
-
return `🛠 Potential Fix: Review ${functionName} for performance optimizations`;
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
exports.PerformanceMonitor = PerformanceMonitor;
|
|
116
|
-
//# sourceMappingURL=performance.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"performance.js","sourceRoot":"","sources":["../../src/trackers/performance.ts"],"names":[],"mappings":";;;AACA,4CAA8D;AAC9D,+BAAoC;AAEpC;;GAEG;AACH,MAAa,kBAAkB;IAI7B;;;;OAIG;IACH,YAAY,UAAyC,EAAE;;QAR/C,YAAO,GAAkC,IAAI,GAAG,EAAE,CAAC;QASzD,IAAI,CAAC,iBAAiB,GAAG,MAAA,OAAO,CAAC,gBAAgB,mCAAI,GAAG,CAAC,CAAC,KAAK;IACjE,CAAC;IAED;;;;;OAKG;IACI,UAAU,CAAC,KAAa;QAC7B,MAAM,EAAE,GAAG,GAAG,KAAK,IAAI,IAAA,SAAM,GAAE,EAAE,CAAC;QAClC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,IAAA,uBAAc,GAAE,CAAC,CAAC;QACvC,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;;;;OAMG;IACI,QAAQ,CAAC,EAAU;QACxB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAExB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;;;OAMG;IACI,YAAY,CAAC,QAAgB,EAAE,SAAkB;QACtD,MAAM,kBAAkB,GAAG,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,IAAI,CAAC,iBAAiB,CAAC;QAC/D,OAAO,QAAQ,GAAG,kBAAkB,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACI,cAAc;QACnB,IAAI,CAAC;YACH,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC;QAC/B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,CAAC,CAAC,CAAC;YACjD,OAAO,SAAS,CAAC;QACnB,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,aAAa,CAAC,KAA2B;QAC9C,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;YACtC,IAAI,CAAC,OAAO;gBAAE,OAAO,CAAC,CAAC;YAEvB,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YAE/C,yCAAyC;YACzC,iFAAiF;YACjF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;YACnD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,kBAAkB,CACvB,YAAoB,EACpB,QAAgB,EAChB,WAAoB;QAEpB,qCAAqC;QACrC,IAAI,WAAW,IAAI,WAAW,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC;YAClD,OAAO,2EAA2E,YAAY,EAAE,CAAC;QACnG,CAAC;QAED,IAAI,QAAQ,GAAG,IAAI,EAAE,CAAC;YACpB,OAAO,8DAA8D,YAAY,EAAE,CAAC;QACtF,CAAC;QAED,IAAI,QAAQ,GAAG,GAAG,EAAE,CAAC;YACnB,OAAO,qDAAqD,YAAY,EAAE,CAAC;QAC7E,CAAC;QAED,OAAO,4BAA4B,YAAY,gCAAgC,CAAC;IAClF,CAAC;CACF;AAxHD,gDAwHC"}
|
package/dist/types/config.d.ts
DELETED
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* LogLevel - Defines the severity levels for logging
|
|
3
|
-
*/
|
|
4
|
-
export type LogLevel = 'debug' | 'info' | 'warn' | 'error';
|
|
5
|
-
/**
|
|
6
|
-
* LogMode - Defines the operational modes for the logger
|
|
7
|
-
*/
|
|
8
|
-
export type LogMode = 'dev' | 'staging' | 'prod' | string;
|
|
9
|
-
/**
|
|
10
|
-
* Transport - Interface for log output destinations
|
|
11
|
-
*/
|
|
12
|
-
export interface ITransport {
|
|
13
|
-
/**
|
|
14
|
-
* Write a log entry to the destination
|
|
15
|
-
*
|
|
16
|
-
* @param entry - The formatted log entry to write
|
|
17
|
-
*/
|
|
18
|
-
write(entry: string): void;
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Formatter - Interface for log formatters
|
|
22
|
-
*/
|
|
23
|
-
export interface IFormatter {
|
|
24
|
-
/**
|
|
25
|
-
* Format a log entry
|
|
26
|
-
*
|
|
27
|
-
* @param level - The log level
|
|
28
|
-
* @param message - The log message
|
|
29
|
-
* @param args - Additional arguments
|
|
30
|
-
* @param meta - Metadata for the log entry
|
|
31
|
-
* @returns The formatted log entry
|
|
32
|
-
*/
|
|
33
|
-
format(level: LogLevel, message: string | object, args: any[], meta: LogMeta): string;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* LogMeta - Metadata for log entries
|
|
37
|
-
*/
|
|
38
|
-
export interface LogMeta {
|
|
39
|
-
timestamp: Date;
|
|
40
|
-
level: LogLevel;
|
|
41
|
-
indentLevel: number;
|
|
42
|
-
[key: string]: any;
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* TrackOptions - Options for function execution tracking
|
|
46
|
-
*/
|
|
47
|
-
export interface ITrackOptions {
|
|
48
|
-
/**
|
|
49
|
-
* Custom label for the tracked function
|
|
50
|
-
*/
|
|
51
|
-
label?: string;
|
|
52
|
-
/**
|
|
53
|
-
* Performance threshold in milliseconds
|
|
54
|
-
* Functions exceeding this threshold will be flagged as bottlenecks
|
|
55
|
-
*/
|
|
56
|
-
threshold?: number;
|
|
57
|
-
/**
|
|
58
|
-
* Whether to track memory usage
|
|
59
|
-
*/
|
|
60
|
-
trackMemory?: boolean;
|
|
61
|
-
/**
|
|
62
|
-
* Whether to suppress logging for this tracking
|
|
63
|
-
*/
|
|
64
|
-
silent?: boolean;
|
|
65
|
-
/**
|
|
66
|
-
* Whether to enable nested tracking
|
|
67
|
-
*
|
|
68
|
-
* When enabled, TracePerf will track nested function calls
|
|
69
|
-
* if they are also wrapped with track().
|
|
70
|
-
*
|
|
71
|
-
* @default true
|
|
72
|
-
*/
|
|
73
|
-
enableNestedTracking?: boolean;
|
|
74
|
-
/**
|
|
75
|
-
* Tracking mode to use for this function
|
|
76
|
-
* Controls the level of detail and performance impact
|
|
77
|
-
*/
|
|
78
|
-
trackingMode?: string;
|
|
79
|
-
/**
|
|
80
|
-
* Any other custom options
|
|
81
|
-
*/
|
|
82
|
-
[key: string]: any;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Logger configuration
|
|
86
|
-
*/
|
|
87
|
-
export interface ILoggerConfig {
|
|
88
|
-
/**
|
|
89
|
-
* Operational mode
|
|
90
|
-
*
|
|
91
|
-
* - dev: All logs are shown
|
|
92
|
-
* - staging: Only warn and error logs are shown
|
|
93
|
-
* - prod: Only error logs are shown
|
|
94
|
-
*/
|
|
95
|
-
mode: LogMode;
|
|
96
|
-
/**
|
|
97
|
-
* Minimum log level to show
|
|
98
|
-
*/
|
|
99
|
-
level: LogLevel;
|
|
100
|
-
/**
|
|
101
|
-
* Whether to colorize logs
|
|
102
|
-
*/
|
|
103
|
-
colorize: boolean;
|
|
104
|
-
/**
|
|
105
|
-
* Whether to include timestamps in logs
|
|
106
|
-
*/
|
|
107
|
-
timestamp: boolean;
|
|
108
|
-
/**
|
|
109
|
-
* Performance threshold in milliseconds
|
|
110
|
-
*
|
|
111
|
-
* Functions that take longer than this threshold will be marked as bottlenecks
|
|
112
|
-
*/
|
|
113
|
-
performanceThreshold: number;
|
|
114
|
-
/**
|
|
115
|
-
* Indentation size for nested logs
|
|
116
|
-
*/
|
|
117
|
-
indentSize: number;
|
|
118
|
-
/**
|
|
119
|
-
* Whether to automatically track nested function calls
|
|
120
|
-
*
|
|
121
|
-
* When enabled, TracePerf will automatically track nested function calls
|
|
122
|
-
* using a proxy-based approach.
|
|
123
|
-
*
|
|
124
|
-
* @default true
|
|
125
|
-
*/
|
|
126
|
-
autoTracking?: boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Log output destinations
|
|
129
|
-
* @default [ConsoleTransport]
|
|
130
|
-
*/
|
|
131
|
-
transports?: ITransport[];
|
|
132
|
-
/**
|
|
133
|
-
* Log formatters
|
|
134
|
-
* @default [CliFormatter]
|
|
135
|
-
*/
|
|
136
|
-
formatters?: IFormatter[];
|
|
137
|
-
/**
|
|
138
|
-
* Tracking mode to use for performance monitoring
|
|
139
|
-
* Controls the level of detail and performance impact
|
|
140
|
-
*/
|
|
141
|
-
trackingMode?: string;
|
|
142
|
-
}
|
package/dist/types/config.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
|
package/dist/types/logger.d.ts
DELETED
|
@@ -1,147 +0,0 @@
|
|
|
1
|
-
import { LogMode, ITrackOptions } from './config';
|
|
2
|
-
/**
|
|
3
|
-
* ILogger - Interface for the main logger functionality
|
|
4
|
-
*/
|
|
5
|
-
export interface ILogger {
|
|
6
|
-
/**
|
|
7
|
-
* Log an informational message
|
|
8
|
-
*
|
|
9
|
-
* @param message - The message to log
|
|
10
|
-
* @param args - Additional arguments to include in the log
|
|
11
|
-
*/
|
|
12
|
-
info(message: string | object, ...args: any[]): void;
|
|
13
|
-
/**
|
|
14
|
-
* Log a warning message
|
|
15
|
-
*
|
|
16
|
-
* @param message - The message to log
|
|
17
|
-
* @param args - Additional arguments to include in the log
|
|
18
|
-
*/
|
|
19
|
-
warn(message: string | object, ...args: any[]): void;
|
|
20
|
-
/**
|
|
21
|
-
* Log an error message
|
|
22
|
-
*
|
|
23
|
-
* @param message - The message to log
|
|
24
|
-
* @param args - Additional arguments to include in the log
|
|
25
|
-
*/
|
|
26
|
-
error(message: string | object, ...args: any[]): void;
|
|
27
|
-
/**
|
|
28
|
-
* Log a debug message
|
|
29
|
-
*
|
|
30
|
-
* @param message - The message to log
|
|
31
|
-
* @param args - Additional arguments to include in the log
|
|
32
|
-
*/
|
|
33
|
-
debug(message: string | object, ...args: any[]): void;
|
|
34
|
-
/**
|
|
35
|
-
* Start a new log group with the given label
|
|
36
|
-
*
|
|
37
|
-
* @param label - The label for the group
|
|
38
|
-
*/
|
|
39
|
-
group(label: string): void;
|
|
40
|
-
/**
|
|
41
|
-
* End the current log group
|
|
42
|
-
*/
|
|
43
|
-
groupEnd(): void;
|
|
44
|
-
/**
|
|
45
|
-
* Set the operational mode for the logger
|
|
46
|
-
*
|
|
47
|
-
* @param mode - The mode to set
|
|
48
|
-
*/
|
|
49
|
-
setMode(mode: LogMode): void;
|
|
50
|
-
/**
|
|
51
|
-
* Get the current operational mode
|
|
52
|
-
*
|
|
53
|
-
* @returns The current mode
|
|
54
|
-
*/
|
|
55
|
-
getMode(): LogMode;
|
|
56
|
-
/**
|
|
57
|
-
* Track the execution of a function and log performance metrics
|
|
58
|
-
*
|
|
59
|
-
* @param fn - The function to track
|
|
60
|
-
* @param options - Options for tracking
|
|
61
|
-
* @returns The return value of the tracked function
|
|
62
|
-
*/
|
|
63
|
-
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
64
|
-
/**
|
|
65
|
-
* Create a trackable version of a function
|
|
66
|
-
*
|
|
67
|
-
* This is a helper method to create a tracked version of a function
|
|
68
|
-
* that can be used for nested function tracking.
|
|
69
|
-
*
|
|
70
|
-
* @param fn - The function to make trackable
|
|
71
|
-
* @param options - Options for tracking
|
|
72
|
-
* @returns A tracked version of the function
|
|
73
|
-
*/
|
|
74
|
-
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: any): (...args: Parameters<T>) => ReturnType<T>;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* IExecutionTracker - Interface for tracking function execution
|
|
78
|
-
*/
|
|
79
|
-
export interface IExecutionTracker {
|
|
80
|
-
/**
|
|
81
|
-
* Track the execution of a function
|
|
82
|
-
*
|
|
83
|
-
* @param fn - The function to track
|
|
84
|
-
* @param options - Options for tracking
|
|
85
|
-
* @returns The return value of the tracked function
|
|
86
|
-
*/
|
|
87
|
-
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
88
|
-
/**
|
|
89
|
-
* Get the current call stack
|
|
90
|
-
*
|
|
91
|
-
* @returns The current call stack
|
|
92
|
-
*/
|
|
93
|
-
getCallStack(): string[];
|
|
94
|
-
/**
|
|
95
|
-
* Generate a visual representation of the execution flow
|
|
96
|
-
*
|
|
97
|
-
* @returns ASCII flow chart of the execution
|
|
98
|
-
*/
|
|
99
|
-
generateFlowChart(): string;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* IPerformanceMonitor - Interface for monitoring performance
|
|
103
|
-
*/
|
|
104
|
-
export interface IPerformanceMonitor {
|
|
105
|
-
/**
|
|
106
|
-
* Start timing an operation
|
|
107
|
-
*
|
|
108
|
-
* @param label - Label for the operation
|
|
109
|
-
* @returns A unique identifier for the timing operation
|
|
110
|
-
*/
|
|
111
|
-
startTimer(label: string): string;
|
|
112
|
-
/**
|
|
113
|
-
* End timing an operation
|
|
114
|
-
*
|
|
115
|
-
* @param id - The identifier returned by startTimer
|
|
116
|
-
* @returns The duration in milliseconds
|
|
117
|
-
*/
|
|
118
|
-
endTimer(id: string): number;
|
|
119
|
-
/**
|
|
120
|
-
* Check if an operation exceeds the performance threshold
|
|
121
|
-
*
|
|
122
|
-
* @param duration - The duration in milliseconds
|
|
123
|
-
* @param threshold - The threshold to check against
|
|
124
|
-
* @returns Whether the operation is considered slow
|
|
125
|
-
*/
|
|
126
|
-
isBottleneck(duration: number, threshold?: number): boolean;
|
|
127
|
-
/**
|
|
128
|
-
* Get memory usage information
|
|
129
|
-
*
|
|
130
|
-
* @returns Memory usage object or undefined if not available
|
|
131
|
-
*/
|
|
132
|
-
getMemoryUsage(): {
|
|
133
|
-
heapUsed: number;
|
|
134
|
-
heapTotal: number;
|
|
135
|
-
external: number;
|
|
136
|
-
rss: number;
|
|
137
|
-
} | undefined;
|
|
138
|
-
/**
|
|
139
|
-
* Calculate memory difference between current and start memory
|
|
140
|
-
*
|
|
141
|
-
* @param start - Starting memory usage snapshot
|
|
142
|
-
* @returns Memory difference in bytes
|
|
143
|
-
*/
|
|
144
|
-
getMemoryDiff(start: {
|
|
145
|
-
heapUsed: number;
|
|
146
|
-
}): number;
|
|
147
|
-
}
|
package/dist/types/logger.js
DELETED
package/dist/types/logger.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/types/logger.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
DELETED
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Module for defining common types used throughout the application
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Options for tracking function execution
|
|
6
|
-
*/
|
|
7
|
-
export interface ITrackOptions {
|
|
8
|
-
/**
|
|
9
|
-
* Custom label for the function
|
|
10
|
-
*/
|
|
11
|
-
label?: string;
|
|
12
|
-
/**
|
|
13
|
-
* Threshold in milliseconds for slow function detection
|
|
14
|
-
*/
|
|
15
|
-
threshold?: number;
|
|
16
|
-
/**
|
|
17
|
-
* Whether to include memory usage in the tracking
|
|
18
|
-
*/
|
|
19
|
-
includeMemory?: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Whether to enable nested function tracking
|
|
22
|
-
* If true, functions called within the tracked function will also be tracked
|
|
23
|
-
* Default: true
|
|
24
|
-
*/
|
|
25
|
-
enableNestedTracking?: boolean;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Interface for execution trackers
|
|
29
|
-
*/
|
|
30
|
-
export interface IExecutionTracker {
|
|
31
|
-
/**
|
|
32
|
-
* Track the execution of a function
|
|
33
|
-
*
|
|
34
|
-
* @param fn - The function to track
|
|
35
|
-
* @param options - Options for tracking
|
|
36
|
-
* @returns The return value of the tracked function
|
|
37
|
-
*/
|
|
38
|
-
track<T>(fn: () => T, options?: ITrackOptions): T;
|
|
39
|
-
/**
|
|
40
|
-
* Create a trackable version of a function
|
|
41
|
-
*
|
|
42
|
-
* @param fn - The function to make trackable
|
|
43
|
-
* @param options - Options for tracking
|
|
44
|
-
* @returns A tracked version of the function
|
|
45
|
-
*/
|
|
46
|
-
createTrackable<T extends (...args: any[]) => any>(fn: T, options?: Omit<ITrackOptions, 'label'> & {
|
|
47
|
-
label?: string;
|
|
48
|
-
}): (...args: Parameters<T>) => ReturnType<T>;
|
|
49
|
-
/**
|
|
50
|
-
* Get the current call stack
|
|
51
|
-
*
|
|
52
|
-
* @returns The current call stack
|
|
53
|
-
*/
|
|
54
|
-
getCallStack(): string[];
|
|
55
|
-
/**
|
|
56
|
-
* Generate a visual representation of the execution flow
|
|
57
|
-
*
|
|
58
|
-
* @returns ASCII flow chart of the execution
|
|
59
|
-
*/
|
|
60
|
-
generateFlowChart(): string;
|
|
61
|
-
/**
|
|
62
|
-
* Clear all execution records
|
|
63
|
-
*/
|
|
64
|
-
clear(): void;
|
|
65
|
-
}
|
package/dist/types.js
DELETED
package/dist/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
|
package/dist/utils/colors.d.ts
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Utilities for working with terminal colors
|
|
3
|
-
*/
|
|
4
|
-
/**
|
|
5
|
-
* Apply color to a string
|
|
6
|
-
*
|
|
7
|
-
* @param text - The text to colorize
|
|
8
|
-
* @param color - The color to apply
|
|
9
|
-
* @returns The colorized string
|
|
10
|
-
*/
|
|
11
|
-
export declare function colorize(text: string, color: string): string;
|
|
12
|
-
/**
|
|
13
|
-
* Apply bold formatting to a string
|
|
14
|
-
*
|
|
15
|
-
* @param text - The text to make bold
|
|
16
|
-
* @returns The bold string
|
|
17
|
-
*/
|
|
18
|
-
export declare function bold(text: string): string;
|
|
19
|
-
/**
|
|
20
|
-
* Apply dim formatting to a string
|
|
21
|
-
*
|
|
22
|
-
* @param text - The text to make dim
|
|
23
|
-
* @returns The dim string
|
|
24
|
-
*/
|
|
25
|
-
export declare function dim(text: string): string;
|
|
26
|
-
/**
|
|
27
|
-
* Apply underline formatting to a string
|
|
28
|
-
*
|
|
29
|
-
* @param text - The text to underline
|
|
30
|
-
* @returns The underlined string
|
|
31
|
-
*/
|
|
32
|
-
export declare function underline(text: string): string;
|
|
33
|
-
/**
|
|
34
|
-
* Apply red color to a string
|
|
35
|
-
*
|
|
36
|
-
* @param text - The text to colorize
|
|
37
|
-
* @returns The red string
|
|
38
|
-
*/
|
|
39
|
-
export declare function red(text: string): string;
|
|
40
|
-
/**
|
|
41
|
-
* Apply green color to a string
|
|
42
|
-
*
|
|
43
|
-
* @param text - The text to colorize
|
|
44
|
-
* @returns The green string
|
|
45
|
-
*/
|
|
46
|
-
export declare function green(text: string): string;
|
|
47
|
-
/**
|
|
48
|
-
* Apply yellow color to a string
|
|
49
|
-
*
|
|
50
|
-
* @param text - The text to colorize
|
|
51
|
-
* @returns The yellow string
|
|
52
|
-
*/
|
|
53
|
-
export declare function yellow(text: string): string;
|
|
54
|
-
/**
|
|
55
|
-
* Apply blue color to a string
|
|
56
|
-
*
|
|
57
|
-
* @param text - The text to colorize
|
|
58
|
-
* @returns The blue string
|
|
59
|
-
*/
|
|
60
|
-
export declare function blue(text: string): string;
|
|
61
|
-
/**
|
|
62
|
-
* Apply magenta color to a string
|
|
63
|
-
*
|
|
64
|
-
* @param text - The text to colorize
|
|
65
|
-
* @returns The magenta string
|
|
66
|
-
*/
|
|
67
|
-
export declare function magenta(text: string): string;
|
|
68
|
-
/**
|
|
69
|
-
* Apply cyan color to a string
|
|
70
|
-
*
|
|
71
|
-
* @param text - The text to colorize
|
|
72
|
-
* @returns The cyan string
|
|
73
|
-
*/
|
|
74
|
-
export declare function cyan(text: string): string;
|
|
75
|
-
/**
|
|
76
|
-
* Apply gray color to a string
|
|
77
|
-
*
|
|
78
|
-
* @param text - The text to colorize
|
|
79
|
-
* @returns The gray string
|
|
80
|
-
*/
|
|
81
|
-
export declare function gray(text: string): string;
|
|
82
|
-
/**
|
|
83
|
-
* Check if terminal supports colors
|
|
84
|
-
*
|
|
85
|
-
* @returns Whether the terminal supports colors
|
|
86
|
-
*/
|
|
87
|
-
export declare function supportsColor(): boolean;
|