traceperf 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (57) hide show
  1. package/README.md +230 -263
  2. package/dist/browser.d.ts +52 -7
  3. package/dist/browser.js +198 -35
  4. package/dist/browser.js.map +1 -1
  5. package/dist/core/index.d.ts +1 -0
  6. package/dist/core/index.js +1 -0
  7. package/dist/core/index.js.map +1 -1
  8. package/dist/core/optimized-performance-monitor.d.ts +227 -0
  9. package/dist/core/optimized-performance-monitor.js +543 -0
  10. package/dist/core/optimized-performance-monitor.js.map +1 -0
  11. package/dist/esm/browser.d.ts +52 -7
  12. package/dist/esm/browser.js +196 -34
  13. package/dist/esm/browser.js.map +1 -1
  14. package/dist/esm/core/index.d.ts +1 -0
  15. package/dist/esm/core/index.js +1 -0
  16. package/dist/esm/core/index.js.map +1 -1
  17. package/dist/esm/core/optimized-performance-monitor.d.ts +227 -0
  18. package/dist/esm/core/optimized-performance-monitor.js +535 -0
  19. package/dist/esm/core/optimized-performance-monitor.js.map +1 -0
  20. package/dist/esm/index.d.ts +7 -8
  21. package/dist/esm/index.js +18 -19
  22. package/dist/esm/index.js.map +1 -1
  23. package/dist/esm/trackers/execution.d.ts +34 -26
  24. package/dist/esm/trackers/execution.js +99 -60
  25. package/dist/esm/trackers/execution.js.map +1 -1
  26. package/dist/esm/trackers/performance.d.ts +7 -21
  27. package/dist/esm/trackers/performance.js +25 -19
  28. package/dist/esm/trackers/performance.js.map +1 -1
  29. package/dist/esm/types/config.d.ts +16 -2
  30. package/dist/esm/types/index.d.ts +32 -34
  31. package/dist/esm/types/logger.d.ts +11 -2
  32. package/dist/esm/utils/colors.js +12 -0
  33. package/dist/esm/utils/colors.js.map +1 -1
  34. package/dist/esm/utils/string.d.ts +29 -0
  35. package/dist/esm/utils/string.js +45 -0
  36. package/dist/esm/utils/string.js.map +1 -0
  37. package/dist/index.d.ts +7 -8
  38. package/dist/index.js +42 -20
  39. package/dist/index.js.map +1 -1
  40. package/dist/trackers/execution.d.ts +34 -26
  41. package/dist/trackers/execution.js +98 -59
  42. package/dist/trackers/execution.js.map +1 -1
  43. package/dist/trackers/performance.d.ts +7 -21
  44. package/dist/trackers/performance.js +25 -19
  45. package/dist/trackers/performance.js.map +1 -1
  46. package/dist/types/config.d.ts +16 -2
  47. package/dist/types/index.d.ts +32 -34
  48. package/dist/types/logger.d.ts +11 -2
  49. package/dist/types.d.ts +65 -0
  50. package/dist/types.js +6 -0
  51. package/dist/types.js.map +1 -0
  52. package/dist/utils/colors.js +12 -0
  53. package/dist/utils/colors.js.map +1 -1
  54. package/dist/utils/string.d.ts +29 -0
  55. package/dist/utils/string.js +50 -0
  56. package/dist/utils/string.js.map +1 -0
  57. package/package.json +11 -8
@@ -0,0 +1,535 @@
1
+ /**
2
+ * Optimized Performance Monitoring Library
3
+ *
4
+ * This implementation incorporates all optimizations from benchmarking:
5
+ * 1. Tiered tracking modes for performance vs. detail balance
6
+ * 2. Context preservation for object methods
7
+ * 3. Async/Promise support
8
+ * 4. Browser/Node.js environment detection
9
+ * 5. Memory usage tracking optimizations
10
+ * 6. Module registration capability
11
+ * 7. Enhanced visualization
12
+ */
13
+ // Define tracking mode constants directly to avoid circular dependency
14
+ export const TrackingModes = {
15
+ PERFORMANCE: 'performance',
16
+ BALANCED: 'balanced',
17
+ DETAILED: 'detailed',
18
+ DEBUG: 'debug'
19
+ };
20
+ // Define default tracking mode separately to avoid circular dependency
21
+ const DEFAULT_TRACKING_MODE = TrackingModes.BALANCED;
22
+ /**
23
+ * Get current memory usage with environment detection
24
+ * @returns Memory usage in bytes
25
+ */
26
+ export const getMemoryUsage = () => {
27
+ var _a;
28
+ // Safe check for Node.js process.memoryUsage()
29
+ if (typeof process !== 'undefined' && process.memoryUsage) {
30
+ const mem = process.memoryUsage();
31
+ return mem.heapUsed;
32
+ }
33
+ // Browser memory API if available
34
+ else if (typeof performance !== 'undefined' && 'memory' in performance) {
35
+ // @ts-expect-error This is a browser-specific check
36
+ return ((_a = window.performance.memory) === null || _a === void 0 ? void 0 : _a.usedJSHeapSize) || 0;
37
+ }
38
+ // Fallback when no memory API available
39
+ return 0;
40
+ };
41
+ /**
42
+ * Get high-resolution timestamp with environment detection
43
+ * @returns Timestamp in nanoseconds
44
+ */
45
+ export const getTimestamp = () => {
46
+ // Use performance.now() in browsers (convert to nanoseconds)
47
+ if (typeof performance !== 'undefined' && performance.now) {
48
+ return performance.now() * 1000000;
49
+ }
50
+ // Use process.hrtime() in Node.js
51
+ else if (typeof process !== 'undefined' && process.hrtime) {
52
+ const hrTime = process.hrtime();
53
+ return hrTime[0] * 1000000000 + hrTime[1];
54
+ }
55
+ // Fallback to Date.now() (converted to nanoseconds)
56
+ return Date.now() * 1000000;
57
+ };
58
+ /**
59
+ * Calculate time difference between two timestamps
60
+ * @param startTime Starting timestamp in nanoseconds
61
+ * @returns Duration in nanoseconds
62
+ */
63
+ export const getDuration = (startTime) => {
64
+ return getTimestamp() - startTime;
65
+ };
66
+ /**
67
+ * Optimized tracker for individual function executions
68
+ */
69
+ export class OptimizedExecutionTracker {
70
+ /**
71
+ * Create a new execution tracker
72
+ * @param options Tracker configuration options
73
+ */
74
+ constructor(options = {}) {
75
+ var _a, _b, _c, _d, _e;
76
+ this.executionTree = {};
77
+ this.currentExecutionId = 0;
78
+ this.activeExecutions = new Map();
79
+ // Formatters for flow chart generation
80
+ this._formatters = {
81
+ indent: ' ',
82
+ childPrefix: '├─ ',
83
+ lastChildPrefix: '└─ ',
84
+ linePrefix: '│ ',
85
+ emptyPrefix: ' ',
86
+ errorMarker: '✖ ',
87
+ memoryLabel: '📊 '
88
+ };
89
+ this.showMemoryUsage = (_a = options.showMemoryUsage) !== null && _a !== void 0 ? _a : true;
90
+ this.enableNestedTracking = (_b = options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
91
+ this.silent = (_c = options.silent) !== null && _c !== void 0 ? _c : false;
92
+ this.trackingMode = (_d = options.trackingMode) !== null && _d !== void 0 ? _d : TrackingModes.BALANCED;
93
+ this.defaultThreshold = (_e = options.threshold) !== null && _e !== void 0 ? _e : 100;
94
+ }
95
+ /**
96
+ * Start timing a function execution
97
+ * @param label Function name or label
98
+ * @param parentExecutionId ID of parent execution if nested
99
+ * @param options Additional options
100
+ * @returns Execution ID
101
+ */
102
+ startTimer(label, parentExecutionId = null, options = {}) {
103
+ // Skip detailed tracking in performance mode
104
+ const collectMemory = this.trackingMode !== TrackingModes.PERFORMANCE && this.showMemoryUsage;
105
+ const startTime = getTimestamp();
106
+ const executionId = (++this.currentExecutionId).toString();
107
+ const execution = {
108
+ id: executionId,
109
+ label: label || 'anonymous',
110
+ startTime,
111
+ endTime: 0,
112
+ duration: 0,
113
+ parentId: parentExecutionId,
114
+ children: [],
115
+ args: options.captureArgs && options.args ?
116
+ Array.from(options.args).map(arg => String(arg).substring(0, 50)) : [],
117
+ complete: false
118
+ };
119
+ // Collect memory usage if enabled
120
+ if (collectMemory) {
121
+ execution.memoryAtStart = getMemoryUsage();
122
+ execution.memoryAtEnd = 0;
123
+ execution.memoryDelta = 0;
124
+ }
125
+ // Add to parent's children if parent exists
126
+ if (parentExecutionId && this.activeExecutions.has(parentExecutionId)) {
127
+ const parent = this.activeExecutions.get(parentExecutionId);
128
+ if (parent && parent.children) {
129
+ parent.children.push(executionId);
130
+ }
131
+ }
132
+ // Store in active executions map
133
+ this.activeExecutions.set(executionId, execution);
134
+ return executionId;
135
+ }
136
+ /**
137
+ * End timing a function execution
138
+ * @param executionId ID of the execution to end
139
+ * @param result Result of the function
140
+ * @param error Error if the function threw
141
+ * @returns Execution data
142
+ */
143
+ endTimer(executionId, result, error = null) {
144
+ if (!this.activeExecutions.has(executionId)) {
145
+ return null;
146
+ }
147
+ const execution = this.activeExecutions.get(executionId);
148
+ execution.endTime = getTimestamp();
149
+ execution.duration = execution.endTime - execution.startTime;
150
+ execution.result = result;
151
+ execution.error = error;
152
+ execution.complete = true;
153
+ // Only collect memory in non-performance modes
154
+ if (this.trackingMode !== TrackingModes.PERFORMANCE && this.showMemoryUsage) {
155
+ execution.memoryAtEnd = getMemoryUsage();
156
+ execution.memoryDelta = execution.memoryAtEnd - (execution.memoryAtStart || 0);
157
+ }
158
+ // Store in the execution tree
159
+ this.executionTree[executionId] = { ...execution };
160
+ // Generate flow chart if not silent
161
+ if (!this.silent && this.trackingMode !== TrackingModes.PERFORMANCE) {
162
+ const flowChart = this._generateExecutionFlowChart(execution);
163
+ console.log(flowChart);
164
+ }
165
+ return execution;
166
+ }
167
+ /**
168
+ * Generate a visualization of the execution flow
169
+ * @param execution The execution to visualize
170
+ * @param depth Current depth in the tree
171
+ * @param isLastChild Whether this is the last child
172
+ * @param ancestors Array tracking if parents were last children
173
+ * @returns Formatted execution flow chart
174
+ */
175
+ _generateExecutionFlowChart(execution, depth = 0, isLastChild = true, ancestors = []) {
176
+ // Skip in performance mode
177
+ if (this.trackingMode === TrackingModes.PERFORMANCE) {
178
+ return '';
179
+ }
180
+ // Build the flow chart
181
+ let flowChart = '';
182
+ // Format the execution line based on tracking mode
183
+ const durationStr = (execution.duration / 1000000).toFixed(3);
184
+ const formatters = this._formatters;
185
+ let line = `${formatters.indent.repeat(depth)}${isLastChild ? formatters.lastChildPrefix : formatters.childPrefix}${execution.label}: ${durationStr} ms`;
186
+ // Add memory usage if enabled and in detailed modes
187
+ if (this.showMemoryUsage &&
188
+ execution.memoryDelta !== undefined &&
189
+ this.trackingMode !== TrackingModes.PERFORMANCE) {
190
+ const memoryStr = (execution.memoryDelta / 1024).toFixed(2);
191
+ const sign = execution.memoryDelta >= 0 ? '+' : '';
192
+ line += ` ${formatters.memoryLabel}${sign}${memoryStr} KB`;
193
+ }
194
+ // Add error indicator
195
+ if (execution.error && (this.trackingMode === TrackingModes.DETAILED || this.trackingMode === TrackingModes.DEBUG)) {
196
+ line += ` ${formatters.errorMarker}${execution.error.message}`;
197
+ }
198
+ flowChart += line + '\n';
199
+ // Process children (skip in performance mode)
200
+ if (execution.children && execution.children.length > 0 && this.trackingMode !== TrackingModes.PERFORMANCE) {
201
+ const childExecutions = execution.children
202
+ .map(childId => this.executionTree[childId] || this.activeExecutions.get(childId))
203
+ .filter(Boolean);
204
+ for (let i = 0; i < childExecutions.length; i++) {
205
+ const isLast = i === childExecutions.length - 1;
206
+ const childFlowChart = this._generateExecutionFlowChart(childExecutions[i], depth + 1, isLast, [...ancestors, !isLastChild]);
207
+ flowChart += childFlowChart;
208
+ }
209
+ }
210
+ return flowChart;
211
+ }
212
+ /**
213
+ * Create a trackable version of a function
214
+ * @param fn Function to track
215
+ * @param options Tracking options
216
+ * @returns Tracked version of the function
217
+ */
218
+ createTrackable(fn, options = {}) {
219
+ if (typeof fn !== 'function') {
220
+ throw new Error('First argument must be a function');
221
+ }
222
+ const label = options.label || fn.name || 'anonymous';
223
+ const parentExecutionId = options.parentExecutionId || null;
224
+ const silent = options.hasOwnProperty('silent') ? options.silent : this.silent;
225
+ const trackingMode = options.trackingMode || this.trackingMode;
226
+ const sampleRate = options.hasOwnProperty('sampleRate') ?
227
+ Math.max(0, Math.min(1, options.sampleRate)) : 1.0;
228
+ // Performance optimization - if in performance mode and silent, return original function
229
+ if (trackingMode === TrackingModes.PERFORMANCE &&
230
+ (options.silent || this.silent) &&
231
+ !this.enableNestedTracking) {
232
+ return fn;
233
+ }
234
+ // Create the tracked function using arrow function to preserve 'this'
235
+ const trackedFn = (...args) => {
236
+ // Apply sampling - randomly decide whether to track this call
237
+ const shouldSample = Math.random() < sampleRate;
238
+ // If not sampling this call, just execute the function directly
239
+ if (!shouldSample) {
240
+ return fn.apply(this, args);
241
+ }
242
+ // Start tracking the execution
243
+ const executionId = this.startTimer(label, parentExecutionId, {
244
+ trackMemory: options.trackMemory !== undefined ? options.trackMemory : this.showMemoryUsage,
245
+ captureArgs: options.captureArgs,
246
+ args: args
247
+ });
248
+ try {
249
+ // Execute the function with correct this context
250
+ const result = fn.apply(this, args);
251
+ // Handle promises
252
+ if (result && typeof result.then === 'function') {
253
+ return result
254
+ .then((resolvedValue) => {
255
+ this.endTimer(executionId, resolvedValue);
256
+ return resolvedValue;
257
+ })
258
+ .catch((error) => {
259
+ this.endTimer(executionId, undefined, error);
260
+ throw error; // Re-throw to preserve error behavior
261
+ });
262
+ }
263
+ // Handle synchronous functions
264
+ this.endTimer(executionId, result);
265
+ return result;
266
+ }
267
+ catch (error) {
268
+ // Handle synchronous errors
269
+ this.endTimer(executionId, undefined, error);
270
+ throw error; // Re-throw to preserve error behavior
271
+ }
272
+ };
273
+ // Preserve function properties
274
+ Object.defineProperty(trackedFn, 'name', { value: fn.name, configurable: true });
275
+ Object.defineProperty(trackedFn, 'length', { value: fn.length });
276
+ return trackedFn;
277
+ }
278
+ /**
279
+ * Track a module's methods
280
+ * @param module Module to track
281
+ * @param options Tracking options
282
+ * @returns Tracked module
283
+ */
284
+ trackModule(module, options = {}) {
285
+ if (!module || typeof module !== 'object') {
286
+ throw new Error('Module must be an object');
287
+ }
288
+ const prefix = options.prefix || '';
289
+ const trackingMode = options.trackingMode || this.trackingMode;
290
+ // Performance optimization - if in performance mode and silent, return original module
291
+ if (trackingMode === TrackingModes.PERFORMANCE &&
292
+ (options.silent || this.silent) &&
293
+ !this.enableNestedTracking) {
294
+ return module;
295
+ }
296
+ // Create a new object to avoid modifying the original
297
+ const trackedModule = Object.create(Object.getPrototypeOf(module));
298
+ // Copy own properties
299
+ Object.getOwnPropertyNames(module).forEach(key => {
300
+ const descriptor = Object.getOwnPropertyDescriptor(module, key);
301
+ if (!descriptor)
302
+ return;
303
+ // If it's a method, track it
304
+ if (typeof module[key] === 'function') {
305
+ const methodOptions = {
306
+ ...options,
307
+ label: `${prefix}${key}`
308
+ };
309
+ trackedModule[key] = this.createTrackable(module[key], methodOptions);
310
+ }
311
+ else {
312
+ // Otherwise, just copy the property
313
+ Object.defineProperty(trackedModule, key, descriptor);
314
+ }
315
+ });
316
+ return trackedModule;
317
+ }
318
+ /**
319
+ * Track a function execution directly
320
+ * @param fn Function to track
321
+ * @param options Tracking options
322
+ * @returns Function result
323
+ */
324
+ track(fn, options = {}) {
325
+ // Create a trackable version and call it immediately
326
+ const trackableFn = this.createTrackable(fn, options);
327
+ return trackableFn.apply(options.thisContext || this, options.args || []);
328
+ }
329
+ /**
330
+ * Reset the tracker state
331
+ */
332
+ reset() {
333
+ this.executionTree = {};
334
+ this.currentExecutionId = 0;
335
+ this.activeExecutions = new Map();
336
+ }
337
+ }
338
+ /**
339
+ * Main performance monitoring interface
340
+ */
341
+ export class OptimizedPerformanceMonitor {
342
+ /**
343
+ * Create a new performance monitor instance
344
+ * @param options Configuration options
345
+ */
346
+ constructor(options = {}) {
347
+ this.config = {
348
+ trackingMode: options.trackingMode || DEFAULT_TRACKING_MODE,
349
+ silent: options.silent || false,
350
+ trackMemory: options.trackMemory !== undefined ? options.trackMemory : true,
351
+ enableNestedTracking: options.enableNestedTracking !== undefined ? options.enableNestedTracking : true,
352
+ threshold: options.threshold || 100,
353
+ sampleRate: options.sampleRate !== undefined ?
354
+ Math.max(0, Math.min(1, options.sampleRate)) : 1.0 // Clamp between 0 and 1
355
+ };
356
+ this.executionTracker = new OptimizedExecutionTracker({
357
+ trackingMode: this.config.trackingMode,
358
+ silent: this.config.silent,
359
+ showMemoryUsage: this.config.trackMemory,
360
+ enableNestedTracking: this.config.enableNestedTracking,
361
+ threshold: this.config.threshold
362
+ });
363
+ }
364
+ /**
365
+ * Track a function execution
366
+ * @param fn The function to track
367
+ * @param options Tracking options
368
+ * @returns Result of the tracked function
369
+ */
370
+ track(fn, options = {}) {
371
+ if (typeof fn !== 'function') {
372
+ throw new Error('First argument must be a function');
373
+ }
374
+ // Merge global config with function-specific options
375
+ const trackingOptions = {
376
+ label: options.label || fn.name || 'anonymous',
377
+ trackingMode: options.trackingMode || this.config.trackingMode,
378
+ silent: options.hasOwnProperty('silent') ? options.silent : this.config.silent,
379
+ trackMemory: options.hasOwnProperty('trackMemory') ? options.trackMemory : this.config.trackMemory,
380
+ sampleRate: options.hasOwnProperty('sampleRate') ? options.sampleRate : this.config.sampleRate,
381
+ captureArgs: options.hasOwnProperty('captureArgs') ? options.captureArgs : false,
382
+ parentExecutionId: options.parentExecutionId || null,
383
+ thisContext: options.thisContext,
384
+ args: options.args
385
+ };
386
+ // Use the tracker to directly track the function
387
+ return this.executionTracker.track(fn, trackingOptions);
388
+ }
389
+ /**
390
+ * Create a trackable version of a function
391
+ * @param fn The function to track
392
+ * @param options Tracking options
393
+ * @returns Tracked version of the function
394
+ */
395
+ createTrackable(fn, options = {}) {
396
+ if (typeof fn !== 'function') {
397
+ throw new Error('First argument must be a function');
398
+ }
399
+ // Merge global config with function-specific options
400
+ const trackingOptions = {
401
+ label: options.label || fn.name || 'anonymous',
402
+ trackingMode: options.trackingMode || this.config.trackingMode,
403
+ silent: options.hasOwnProperty('silent') ? options.silent : this.config.silent,
404
+ trackMemory: options.hasOwnProperty('trackMemory') ? options.trackMemory : this.config.trackMemory,
405
+ sampleRate: options.hasOwnProperty('sampleRate') ? options.sampleRate : this.config.sampleRate,
406
+ captureArgs: options.hasOwnProperty('captureArgs') ? options.captureArgs : false,
407
+ parentExecutionId: options.parentExecutionId || null
408
+ };
409
+ return this.executionTracker.createTrackable(fn, trackingOptions);
410
+ }
411
+ /**
412
+ * Register a module for tracking
413
+ * @param module The module or object containing methods to track
414
+ * @param options Tracking options
415
+ * @returns Modified module with tracked methods
416
+ */
417
+ registerModule(module, options = {}) {
418
+ if (!module || typeof module !== 'object') {
419
+ throw new Error('Module must be an object');
420
+ }
421
+ // Merge global config with module-specific options
422
+ const trackingOptions = {
423
+ prefix: options.prefix || '',
424
+ trackingMode: options.trackingMode || this.config.trackingMode,
425
+ silent: options.hasOwnProperty('silent') ? options.silent : this.config.silent,
426
+ trackMemory: options.hasOwnProperty('trackMemory') ? options.trackMemory : this.config.trackMemory,
427
+ sampleRate: options.hasOwnProperty('sampleRate') ? options.sampleRate : this.config.sampleRate,
428
+ captureArgs: options.hasOwnProperty('captureArgs') ? options.captureArgs : false
429
+ };
430
+ return this.executionTracker.trackModule(module, trackingOptions);
431
+ }
432
+ /**
433
+ * Set configuration options
434
+ * @param config Configuration to update
435
+ * @returns Current configuration after update
436
+ */
437
+ setConfig(config = {}) {
438
+ // Update trackingMode if specified
439
+ if (config.trackingMode) {
440
+ this.config.trackingMode = config.trackingMode;
441
+ this.executionTracker.trackingMode = config.trackingMode;
442
+ }
443
+ // Update silent if specified
444
+ if (config.silent !== undefined) {
445
+ this.config.silent = config.silent;
446
+ this.executionTracker.silent = config.silent;
447
+ }
448
+ // Update trackMemory if specified
449
+ if (config.trackMemory !== undefined) {
450
+ this.config.trackMemory = config.trackMemory;
451
+ this.executionTracker.showMemoryUsage = config.trackMemory;
452
+ }
453
+ // Update enableNestedTracking if specified
454
+ if (config.enableNestedTracking !== undefined) {
455
+ this.config.enableNestedTracking = config.enableNestedTracking;
456
+ this.executionTracker.enableNestedTracking = config.enableNestedTracking;
457
+ }
458
+ // Update threshold if specified
459
+ if (config.threshold !== undefined) {
460
+ this.config.threshold = config.threshold;
461
+ this.executionTracker.defaultThreshold = config.threshold;
462
+ }
463
+ // Update sampleRate if specified
464
+ if (config.sampleRate !== undefined) {
465
+ this.config.sampleRate = Math.max(0, Math.min(1, config.sampleRate));
466
+ }
467
+ return { ...this.config };
468
+ }
469
+ /**
470
+ * Enable silent mode (no console output)
471
+ * @returns This instance for chaining
472
+ */
473
+ enableSilentMode() {
474
+ this.config.silent = true;
475
+ this.executionTracker.silent = true;
476
+ return this;
477
+ }
478
+ /**
479
+ * Disable silent mode (allow console output)
480
+ * @returns This instance for chaining
481
+ */
482
+ disableSilentMode() {
483
+ this.config.silent = false;
484
+ this.executionTracker.silent = false;
485
+ return this;
486
+ }
487
+ /**
488
+ * Set the tracking mode
489
+ * @param mode Tracking mode from TrackingMode enum
490
+ * @returns This instance for chaining
491
+ */
492
+ setTrackingMode(mode) {
493
+ this.config.trackingMode = mode;
494
+ this.executionTracker.trackingMode = mode;
495
+ return this;
496
+ }
497
+ /**
498
+ * Enable memory usage tracking
499
+ * @returns This instance for chaining
500
+ */
501
+ enableMemoryTracking() {
502
+ this.config.trackMemory = true;
503
+ this.executionTracker.showMemoryUsage = true;
504
+ return this;
505
+ }
506
+ /**
507
+ * Disable memory usage tracking
508
+ * @returns This instance for chaining
509
+ */
510
+ disableMemoryTracking() {
511
+ this.config.trackMemory = false;
512
+ this.executionTracker.showMemoryUsage = false;
513
+ return this;
514
+ }
515
+ /**
516
+ * Set the sampling rate
517
+ * @param rate Sampling rate between 0.0 and 1.0
518
+ * @returns This instance for chaining
519
+ */
520
+ setSampleRate(rate) {
521
+ this.config.sampleRate = Math.max(0, Math.min(1, rate));
522
+ return this;
523
+ }
524
+ /**
525
+ * Reset the tracker state
526
+ * @returns This instance for chaining
527
+ */
528
+ reset() {
529
+ this.executionTracker.reset();
530
+ return this;
531
+ }
532
+ }
533
+ // Remove singleton instance to avoid circular dependency - it will be created in index.ts
534
+ // export const optimizedTracePerf = new OptimizedPerformanceMonitor();
535
+ //# sourceMappingURL=optimized-performance-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optimized-performance-monitor.js","sourceRoot":"","sources":["../../../src/core/optimized-performance-monitor.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,9 @@
1
- import { Logger } from './core/logger';
2
- import { ILoggerConfig } from './types';
3
- declare const defaultLogger: Logger;
4
- export default defaultLogger;
5
- export declare function createLogger(config?: Partial<ILoggerConfig>): Logger;
1
+ import { OptimizedPerformanceMonitor, TrackingModes } from './core/optimized-performance-monitor';
2
+ import { ITracePerfConfig } from './types';
3
+ declare const tracePerf: OptimizedPerformanceMonitor;
4
+ export default tracePerf;
5
+ export declare function createTracePerf(config?: Partial<ITracePerfConfig>): OptimizedPerformanceMonitor;
6
6
  export * from './types';
7
7
  export * from './core';
8
- export * from './formatters';
9
- export * from './trackers';
10
- export * from './utils';
8
+ export { OptimizedPerformanceMonitor };
9
+ export { TrackingModes as TrackingMode };
package/dist/esm/index.js CHANGED
@@ -1,29 +1,28 @@
1
- import { Logger } from './core/logger';
2
- // Create a singleton instance of the logger
3
- const defaultLogger = new Logger();
1
+ // Import optimized performance monitor from core
2
+ import { OptimizedPerformanceMonitor, TrackingModes } from './core/optimized-performance-monitor';
3
+ import * as typesExports from './types';
4
+ // Create singleton instance
5
+ const tracePerf = new OptimizedPerformanceMonitor();
4
6
  // Export the singleton instance as the default export
5
- export default defaultLogger;
6
- // Export a function to create a new logger instance
7
- export function createLogger(config = {}) {
8
- return new Logger(config);
7
+ export default tracePerf;
8
+ // Export a function to create a new tracePerf instance
9
+ export function createTracePerf(config = {}) {
10
+ return new OptimizedPerformanceMonitor(config);
9
11
  }
10
12
  // Export types and classes for advanced usage
11
13
  export * from './types';
12
14
  export * from './core';
13
- export * from './formatters';
14
- export * from './trackers';
15
- export * from './utils';
15
+ export { OptimizedPerformanceMonitor };
16
+ export { TrackingModes as TrackingMode };
16
17
  // Add CommonJS compatibility
17
18
  if (typeof module !== 'undefined' && module.exports) {
18
- module.exports = Object.assign(defaultLogger, {
19
- default: defaultLogger,
20
- createLogger,
21
- // Re-export everything from the modules
22
- ...require('./types'),
23
- ...require('./core'),
24
- ...require('./formatters'),
25
- ...require('./trackers'),
26
- ...require('./utils')
19
+ module.exports = Object.assign(tracePerf, {
20
+ default: tracePerf,
21
+ createTracePerf,
22
+ OptimizedPerformanceMonitor,
23
+ TrackingMode: TrackingModes,
24
+ // Re-export types
25
+ ...typesExports
27
26
  });
28
27
  }
29
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGvC,4CAA4C;AAC5C,MAAM,aAAa,GAAG,IAAI,MAAM,EAAE,CAAC;AAEnC,sDAAsD;AACtD,eAAe,aAAa,CAAC;AAE7B,oDAAoD;AACpD,MAAM,UAAU,YAAY,CAAC,SAAiC,EAAE;IAC9D,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,8CAA8C;AAC9C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AAExB,6BAA6B;AAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE;QAC5C,OAAO,EAAE,aAAa;QACtB,YAAY;QACZ,wCAAwC;QACxC,GAAG,OAAO,CAAC,SAAS,CAAC;QACrB,GAAG,OAAO,CAAC,QAAQ,CAAC;QACpB,GAAG,OAAO,CAAC,cAAc,CAAC;QAC1B,GAAG,OAAO,CAAC,YAAY,CAAC;QACxB,GAAG,OAAO,CAAC,SAAS,CAAC;KACtB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,OAAO,EAAE,2BAA2B,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAElG,OAAO,KAAK,YAAY,MAAM,SAAS,CAAC;AAExC,4BAA4B;AAC5B,MAAM,SAAS,GAAG,IAAI,2BAA2B,EAAE,CAAC;AAEpD,sDAAsD;AACtD,eAAe,SAAS,CAAC;AAEzB,uDAAuD;AACvD,MAAM,UAAU,eAAe,CAAC,SAAoC,EAAE;IACpE,OAAO,IAAI,2BAA2B,CAAC,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,8CAA8C;AAC9C,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,OAAO,EAAE,2BAA2B,EAAE,CAAC;AACvC,OAAO,EAAE,aAAa,IAAI,YAAY,EAAE,CAAC;AAEzC,6BAA6B;AAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;IACpD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE;QACxC,OAAO,EAAE,SAAS;QAClB,eAAe;QACf,2BAA2B;QAC3B,YAAY,EAAE,aAAa;QAC3B,kBAAkB;QAClB,GAAG,YAAY;KAChB,CAAC,CAAC;AACL,CAAC"}