traceperf 0.1.0 → 0.1.2

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 (75) hide show
  1. package/README.md +110 -1
  2. package/dist/browser.d.ts +67 -5
  3. package/dist/browser.js +207 -36
  4. package/dist/browser.js.map +1 -1
  5. package/dist/esm/browser.d.ts +129 -0
  6. package/dist/esm/browser.js +426 -0
  7. package/dist/esm/browser.js.map +1 -0
  8. package/dist/esm/core/config.d.ts +77 -0
  9. package/dist/esm/core/config.js +112 -0
  10. package/dist/esm/core/config.js.map +1 -0
  11. package/dist/esm/core/constants.d.ts +78 -0
  12. package/dist/esm/core/constants.js +106 -0
  13. package/dist/esm/core/constants.js.map +1 -0
  14. package/dist/esm/core/index.d.ts +3 -0
  15. package/dist/esm/core/index.js +4 -0
  16. package/dist/esm/core/index.js.map +1 -0
  17. package/dist/esm/core/logger.d.ts +84 -0
  18. package/dist/esm/core/logger.js +170 -0
  19. package/dist/esm/core/logger.js.map +1 -0
  20. package/dist/esm/formatters/ascii.d.ts +52 -0
  21. package/dist/esm/formatters/ascii.js +100 -0
  22. package/dist/esm/formatters/ascii.js.map +1 -0
  23. package/dist/esm/formatters/cli.d.ts +50 -0
  24. package/dist/esm/formatters/cli.js +96 -0
  25. package/dist/esm/formatters/cli.js.map +1 -0
  26. package/dist/esm/formatters/index.d.ts +3 -0
  27. package/dist/esm/formatters/index.js +4 -0
  28. package/dist/esm/formatters/index.js.map +1 -0
  29. package/dist/esm/formatters/json.d.ts +45 -0
  30. package/dist/esm/formatters/json.js +85 -0
  31. package/dist/esm/formatters/json.js.map +1 -0
  32. package/dist/esm/index.d.ts +10 -0
  33. package/dist/esm/index.js +29 -0
  34. package/dist/esm/index.js.map +1 -0
  35. package/dist/esm/trackers/execution.d.ts +88 -0
  36. package/dist/esm/trackers/execution.js +214 -0
  37. package/dist/esm/trackers/execution.js.map +1 -0
  38. package/dist/esm/trackers/index.d.ts +2 -0
  39. package/dist/esm/trackers/index.js +3 -0
  40. package/dist/esm/trackers/index.js.map +1 -0
  41. package/dist/esm/trackers/performance.d.ts +82 -0
  42. package/dist/esm/trackers/performance.js +106 -0
  43. package/dist/esm/trackers/performance.js.map +1 -0
  44. package/dist/esm/types/config.d.ts +110 -0
  45. package/dist/esm/types/config.js +2 -0
  46. package/dist/esm/types/config.js.map +1 -0
  47. package/dist/esm/types/index.d.ts +34 -0
  48. package/dist/esm/types/index.js +3 -0
  49. package/dist/esm/types/index.js.map +1 -0
  50. package/dist/esm/types/logger.d.ts +127 -0
  51. package/dist/esm/types/logger.js +2 -0
  52. package/dist/esm/types/logger.js.map +1 -0
  53. package/dist/esm/utils/colors.d.ts +87 -0
  54. package/dist/esm/utils/colors.js +134 -0
  55. package/dist/esm/utils/colors.js.map +1 -0
  56. package/dist/esm/utils/index.d.ts +3 -0
  57. package/dist/esm/utils/index.js +4 -0
  58. package/dist/esm/utils/index.js.map +1 -0
  59. package/dist/esm/utils/stack.d.ts +63 -0
  60. package/dist/esm/utils/stack.js +110 -0
  61. package/dist/esm/utils/stack.js.map +1 -0
  62. package/dist/esm/utils/timing.d.ts +65 -0
  63. package/dist/esm/utils/timing.js +99 -0
  64. package/dist/esm/utils/timing.js.map +1 -0
  65. package/dist/index.js +13 -0
  66. package/dist/index.js.map +1 -1
  67. package/dist/trackers/execution.d.ts +23 -7
  68. package/dist/trackers/execution.js +100 -29
  69. package/dist/trackers/execution.js.map +1 -1
  70. package/dist/types/config.js +2 -1
  71. package/dist/types/index.d.ts +32 -0
  72. package/dist/types/index.js +18 -2
  73. package/dist/types/index.js.map +1 -1
  74. package/dist/types/logger.js +2 -1
  75. package/package.json +16 -2
package/README.md CHANGED
@@ -9,10 +9,12 @@ Advanced console logging & performance tracking for Node.js applications.
9
9
 
10
10
  - **Structured and Visually Appealing Logs**: A better alternative to `console.log()` with colors, icons, and formatting.
11
11
  - **Execution Flow Tracing**: Track function calls and visualize the execution flow with ASCII art.
12
+ - **Nested Function Tracking**: Multiple approaches to track nested function calls with detailed visualization.
12
13
  - **Performance Bottleneck Detection**: Identify slow functions and get suggestions for optimization.
13
14
  - **Conditional Logging Modes**: Different logging levels for development, staging, and production.
14
15
  - **Nested Logging**: Group related logs with indentation for better readability.
15
16
  - **Auto-Remove Debug Logs**: Automatically filter out debug logs in production.
17
+ - **Universal Module Compatibility**: Works with both CommonJS and ESM environments.
16
18
 
17
19
  ## Installation
18
20
 
@@ -22,6 +24,8 @@ npm install traceperf
22
24
 
23
25
  ## Basic Usage
24
26
 
27
+ ### CommonJS (Node.js)
28
+
25
29
  ```javascript
26
30
  const tracePerf = require('traceperf');
27
31
 
@@ -41,6 +45,15 @@ tracePerf.warn('Invalid password attempt');
41
45
  tracePerf.groupEnd();
42
46
  ```
43
47
 
48
+ ### ESM (ECMAScript Modules)
49
+
50
+ ```javascript
51
+ import tracePerf from 'traceperf';
52
+
53
+ // Use the same API as with CommonJS
54
+ tracePerf.info('This is an info message');
55
+ ```
56
+
44
57
  ## Execution Flow Tracking
45
58
 
46
59
  ```javascript
@@ -108,12 +121,31 @@ tracePerf.error('Error message'); // Shown
108
121
 
109
122
  TracePerf also provides a browser-compatible version for use in frontend applications:
110
123
 
124
+ ### ESM (Modern Browsers)
125
+
111
126
  ```javascript
112
127
  // Import the browser version
113
128
  import tracePerf from 'traceperf/browser';
114
129
 
115
130
  // Use it just like the Node.js version
116
131
  tracePerf.info('This works in the browser!');
132
+ ```
133
+
134
+ ### CommonJS (Bundlers with CommonJS support)
135
+
136
+ ```javascript
137
+ // Import the browser version with require
138
+ const tracePerf = require('traceperf/browser');
139
+
140
+ // Use it just like the Node.js version
141
+ tracePerf.info('This works in the browser with CommonJS bundlers!');
142
+ ```
143
+
144
+ ### Browser Example
145
+
146
+ ```javascript
147
+ // Import using your preferred method
148
+ import tracePerf from 'traceperf/browser';
117
149
 
118
150
  // Track function performance
119
151
  function expensiveCalculation() {
@@ -199,4 +231,81 @@ logger.info('Custom logger');
199
231
 
200
232
  ## License
201
233
 
202
- MIT
234
+ MIT
235
+
236
+ ## Advanced Usage
237
+
238
+ ### Tracking Nested Function Calls
239
+
240
+ TracePerf provides several approaches to track nested function calls:
241
+
242
+ #### Approach 1: Manual Tracking (Recommended)
243
+
244
+ The most reliable way to track nested function calls is to manually track each function:
245
+
246
+ ```javascript
247
+ function fetchData() {
248
+ // Simulate API call
249
+ const data = { items: [1, 2, 3, 4, 5] };
250
+
251
+ // Process the data with manual tracking
252
+ const processedData = tracePerf.track(() => {
253
+ // Data processing logic
254
+ return data.items.map(item => item * 2);
255
+ }, { label: "processData" });
256
+
257
+ // Calculate results with manual tracking
258
+ const results = tracePerf.track(() => {
259
+ // Calculation logic
260
+ return processedData.reduce((sum, item) => sum + item, 0);
261
+ }, { label: "calculateResults" });
262
+
263
+ return results;
264
+ }
265
+
266
+ // Track the main function
267
+ tracePerf.track(fetchData, { label: "fetchData" });
268
+ ```
269
+
270
+ This approach gives you the most control and provides accurate timing for each function.
271
+
272
+ #### Approach 2: Wrapper Functions
273
+
274
+ You can create tracked versions of your functions:
275
+
276
+ ```javascript
277
+ // Original functions
278
+ function processData(data) {
279
+ return data.items.map(item => item * 2);
280
+ }
281
+
282
+ function calculateResults(processedData) {
283
+ return processedData.reduce((sum, item) => sum + item, 0);
284
+ }
285
+
286
+ // Create tracked versions
287
+ const trackedProcessData = (data) => {
288
+ return tracePerf.track(() => processData(data), { label: "processData" });
289
+ };
290
+
291
+ const trackedCalculateResults = (data) => {
292
+ return tracePerf.track(() => calculateResults(data), { label: "calculateResults" });
293
+ };
294
+
295
+ // Use tracked versions in your main function
296
+ function fetchData() {
297
+ const data = { items: [1, 2, 3, 4, 5] };
298
+ const processedData = trackedProcessData(data);
299
+ const results = trackedCalculateResults(processedData);
300
+ return results;
301
+ }
302
+
303
+ // Track the main function
304
+ tracePerf.track(fetchData, { label: "fetchData" });
305
+ ```
306
+
307
+ This approach allows you to keep your original functions clean while still tracking their performance.
308
+
309
+ ### Customizing Performance Thresholds
310
+
311
+ // ... existing code ...
package/dist/browser.d.ts CHANGED
@@ -26,19 +26,75 @@ declare class BrowserPerformanceMonitor {
26
26
  generateSuggestion(functionName: string, duration: number, memoryUsage?: number): string;
27
27
  }
28
28
  /**
29
- * Browser-compatible execution tracker
29
+ * Browser-compatible execution tracker for tracking function calls and generating flow charts
30
30
  */
31
31
  declare class BrowserExecutionTracker {
32
32
  private _callStack;
33
33
  private _executions;
34
34
  private _currentExecution;
35
35
  private _defaultThreshold;
36
+ private _instrumentedFunctions;
37
+ private _isInstrumented;
38
+ /**
39
+ * Create a new BrowserExecutionTracker instance
40
+ *
41
+ * @param options - Tracker options
42
+ */
36
43
  constructor(options?: {
37
44
  defaultThreshold?: number;
38
45
  });
39
- track<T>(fn: () => T, options?: ITrackOptions): T;
46
+ /**
47
+ * Generate a performance optimization suggestion based on execution duration
48
+ *
49
+ * @param name - Function name
50
+ * @param duration - Execution duration in ms
51
+ * @returns Optimization suggestion
52
+ */
53
+ private generateSuggestion;
54
+ /**
55
+ * Track the execution of a function
56
+ *
57
+ * @param fn - The function to track
58
+ * @param options - Options for tracking
59
+ * @returns The return value of the tracked function
60
+ */
61
+ track<T>(fn: () => T, options?: any): T;
62
+ /**
63
+ * Instrument a function to track nested function calls
64
+ *
65
+ * @param fn - The function to instrument
66
+ * @returns The instrumented function
67
+ */
68
+ private instrumentFunction;
69
+ /**
70
+ * Get the current call stack
71
+ *
72
+ * @returns The current call stack
73
+ */
40
74
  getCallStack(): string[];
75
+ /**
76
+ * Generate a visual representation of the execution flow
77
+ *
78
+ * @returns ASCII flow chart of the execution
79
+ */
41
80
  generateFlowChart(): string;
81
+ /**
82
+ * Prepare execution data for the flow chart
83
+ *
84
+ * @param executions - The execution records to prepare
85
+ * @returns A list of execution data
86
+ */
87
+ private prepareExecutionData;
88
+ /**
89
+ * Add children to the result list
90
+ *
91
+ * @param children - The children to add
92
+ * @param result - The result list
93
+ */
94
+ private addChildrenToResult;
95
+ /**
96
+ * Clear all execution records
97
+ */
42
98
  clear(): void;
43
99
  }
44
100
  /**
@@ -61,7 +117,13 @@ declare class BrowserLogger {
61
117
  track<T>(fn: () => T, options?: ITrackOptions): T;
62
118
  private log;
63
119
  }
64
- declare const browserLogger: BrowserLogger;
65
- export default browserLogger;
120
+ /**
121
+ * Create a new browser logger instance
122
+ *
123
+ * @param config - Configuration options
124
+ * @returns A new BrowserLogger instance
125
+ */
66
126
  export declare function createBrowserLogger(config?: Partial<ILoggerConfig>): BrowserLogger;
67
- export { BrowserLogger, BrowserExecutionTracker, BrowserPerformanceMonitor };
127
+ declare const defaultBrowserLogger: BrowserLogger;
128
+ export default defaultBrowserLogger;
129
+ export { BrowserLogger, BrowserPerformanceMonitor, BrowserExecutionTracker };
package/dist/browser.js CHANGED
@@ -1,9 +1,13 @@
1
+ "use strict";
1
2
  /**
2
3
  * Browser-compatible version of TracePerf
3
4
  *
4
5
  * This file provides a browser-compatible version of TracePerf that can be used
5
6
  * in React, Next.js, or other frontend applications.
6
7
  */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BrowserExecutionTracker = exports.BrowserPerformanceMonitor = exports.BrowserLogger = void 0;
10
+ exports.createBrowserLogger = createBrowserLogger;
7
11
  /**
8
12
  * Browser-compatible performance monitoring
9
13
  */
@@ -60,23 +64,56 @@ class BrowserPerformanceMonitor {
60
64
  return `🛠 Potential Fix: Review ${functionName} for performance optimizations`;
61
65
  }
62
66
  }
67
+ exports.BrowserPerformanceMonitor = BrowserPerformanceMonitor;
63
68
  /**
64
- * Browser-compatible execution tracker
69
+ * Browser-compatible execution tracker for tracking function calls and generating flow charts
65
70
  */
66
71
  class BrowserExecutionTracker {
72
+ /**
73
+ * Create a new BrowserExecutionTracker instance
74
+ *
75
+ * @param options - Tracker options
76
+ */
67
77
  constructor(options = {}) {
68
78
  var _a;
69
79
  this._callStack = [];
70
80
  this._executions = [];
71
81
  this._currentExecution = null;
82
+ this._instrumentedFunctions = new Map();
83
+ this._isInstrumented = false;
72
84
  this._defaultThreshold = (_a = options.defaultThreshold) !== null && _a !== void 0 ? _a : 100; // ms
73
85
  }
74
- track(fn, options) {
75
- var _a;
76
- const fnName = (options === null || options === void 0 ? void 0 : options.label) || fn.name || '<anonymous>';
77
- const threshold = (_a = options === null || options === void 0 ? void 0 : options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
78
- // Start timing
79
- const startTime = performance.now();
86
+ /**
87
+ * Generate a performance optimization suggestion based on execution duration
88
+ *
89
+ * @param name - Function name
90
+ * @param duration - Execution duration in ms
91
+ * @returns Optimization suggestion
92
+ */
93
+ generateSuggestion(name, duration) {
94
+ if (duration > 500) {
95
+ return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing or breaking it down into smaller functions.`;
96
+ }
97
+ else if (duration > 200) {
98
+ return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Consider optimizing if called frequently.`;
99
+ }
100
+ else if (duration > 100) {
101
+ return `Function "${name}" took ${duration.toFixed(2)}ms to execute. Monitor if called in critical paths.`;
102
+ }
103
+ return '';
104
+ }
105
+ /**
106
+ * Track the execution of a function
107
+ *
108
+ * @param fn - The function to track
109
+ * @param options - Options for tracking
110
+ * @returns The return value of the tracked function
111
+ */
112
+ track(fn, options = {}) {
113
+ var _a, _b;
114
+ const fnName = options.label || fn.name || 'anonymous';
115
+ const threshold = (_a = options.threshold) !== null && _a !== void 0 ? _a : this._defaultThreshold;
116
+ const enableNestedTracking = (_b = options.enableNestedTracking) !== null && _b !== void 0 ? _b : true;
80
117
  // Add to call stack
81
118
  this._callStack.push(fnName);
82
119
  // Create execution record
@@ -85,7 +122,7 @@ class BrowserExecutionTracker {
85
122
  duration: 0,
86
123
  isSlow: false,
87
124
  level: this._callStack.length - 1,
88
- startTime,
125
+ startTime: performance.now(),
89
126
  children: [],
90
127
  };
91
128
  // Set parent-child relationship
@@ -94,55 +131,175 @@ class BrowserExecutionTracker {
94
131
  this._currentExecution.children.push(execution);
95
132
  }
96
133
  else {
134
+ // This is a root execution
97
135
  this._executions.push(execution);
98
136
  }
99
137
  // Save the previous current execution
100
138
  const previousExecution = this._currentExecution;
101
139
  // Set this as the current execution
102
140
  this._currentExecution = execution;
141
+ // Flag to track if we're already instrumenting to avoid recursion
142
+ const wasInstrumented = this._isInstrumented;
143
+ let result;
103
144
  try {
104
- // Execute the function
105
- return fn();
145
+ // If this is the top-level call and nested tracking is enabled, instrument the function
146
+ if (enableNestedTracking && !wasInstrumented) {
147
+ this._isInstrumented = true;
148
+ // Instrument the function to track nested calls
149
+ const instrumentedFn = this.instrumentFunction(fn);
150
+ result = instrumentedFn();
151
+ }
152
+ else {
153
+ // Execute the function normally
154
+ result = fn();
155
+ }
106
156
  }
107
- finally {
157
+ catch (error) {
108
158
  // End timing
109
159
  const endTime = performance.now();
110
- // Calculate duration
111
- execution.duration = endTime - startTime;
112
- // Check if it's a bottleneck
160
+ execution.endTime = endTime;
161
+ execution.duration = endTime - execution.startTime;
113
162
  execution.isSlow = execution.duration > threshold;
114
163
  // Restore the previous current execution
115
164
  this._currentExecution = previousExecution;
116
165
  // Remove from call stack
117
166
  this._callStack.pop();
167
+ // Reset instrumentation flag if this was the top-level call
168
+ if (!wasInstrumented) {
169
+ this._isInstrumented = false;
170
+ }
171
+ // Re-throw the error
172
+ throw error;
173
+ }
174
+ // End timing
175
+ const endTime = performance.now();
176
+ execution.endTime = endTime;
177
+ execution.duration = endTime - execution.startTime;
178
+ execution.isSlow = execution.duration > threshold;
179
+ // Generate suggestion if slow
180
+ if (execution.isSlow) {
181
+ execution.suggestion = this.generateSuggestion(fnName, execution.duration);
182
+ }
183
+ // Restore the previous current execution
184
+ this._currentExecution = previousExecution;
185
+ // Remove from call stack
186
+ this._callStack.pop();
187
+ // Reset instrumentation flag if this was the top-level call
188
+ if (!wasInstrumented) {
189
+ this._isInstrumented = false;
118
190
  }
191
+ return result;
192
+ }
193
+ /**
194
+ * Instrument a function to track nested function calls
195
+ *
196
+ * @param fn - The function to instrument
197
+ * @returns The instrumented function
198
+ */
199
+ instrumentFunction(fn) {
200
+ // If we've already instrumented this function, return the instrumented version
201
+ if (this._instrumentedFunctions.has(fn)) {
202
+ return this._instrumentedFunctions.get(fn);
203
+ }
204
+ // Create a new instrumented function
205
+ const instrumentedFn = () => {
206
+ // Execute the function and track nested calls
207
+ try {
208
+ // We can't actually modify the function at runtime to track nested calls,
209
+ // so we'll just execute it and rely on the call stack for visualization
210
+ return fn();
211
+ }
212
+ catch (error) {
213
+ // Re-throw any errors
214
+ throw error;
215
+ }
216
+ };
217
+ // Cache the instrumented function
218
+ this._instrumentedFunctions.set(fn, instrumentedFn);
219
+ return instrumentedFn;
119
220
  }
221
+ /**
222
+ * Get the current call stack
223
+ *
224
+ * @returns The current call stack
225
+ */
120
226
  getCallStack() {
121
227
  return [...this._callStack];
122
228
  }
229
+ /**
230
+ * Generate a visual representation of the execution flow
231
+ *
232
+ * @returns ASCII flow chart of the execution
233
+ */
123
234
  generateFlowChart() {
124
- // Simplified flow chart for browser
125
- let chart = 'Execution Flow:\n';
126
- const flattenExecutions = (executions, level = 0) => {
127
- executions.forEach(execution => {
128
- const indent = ' '.repeat(level);
129
- const duration = execution.duration.toFixed(2);
130
- const slowMarker = execution.isSlow ? ' ⚠️ SLOW' : '';
131
- chart += `${indent}${execution.name} (${duration}ms)${slowMarker}\n`;
132
- if (execution.children && execution.children.length > 0) {
133
- flattenExecutions(execution.children, level + 1);
134
- }
235
+ let result = 'Execution Flow:\n';
236
+ // Process each execution
237
+ this.prepareExecutionData(this._executions).forEach(execution => {
238
+ const indent = ' '.repeat(execution.level);
239
+ const durationStr = execution.duration.toFixed(2);
240
+ const slowMarker = execution.isSlow ? ' [SLOW]' : '';
241
+ result += `${indent}→ ${execution.name} (${durationStr}ms)${slowMarker}\n`;
242
+ // Add suggestion if available
243
+ if (execution.suggestion) {
244
+ result += `${indent} ⚠️ ${execution.suggestion}\n`;
245
+ }
246
+ });
247
+ return result;
248
+ }
249
+ /**
250
+ * Prepare execution data for the flow chart
251
+ *
252
+ * @param executions - The execution records to prepare
253
+ * @returns A list of execution data
254
+ */
255
+ prepareExecutionData(executions) {
256
+ const result = [];
257
+ // Process each root execution
258
+ executions.forEach(execution => {
259
+ // Add the root execution
260
+ result.push({
261
+ name: execution.name,
262
+ duration: execution.duration,
263
+ isSlow: execution.isSlow,
264
+ suggestion: execution.suggestion,
265
+ level: execution.level,
135
266
  });
136
- };
137
- flattenExecutions(this._executions);
138
- return chart;
267
+ // Add children recursively
268
+ this.addChildrenToResult(execution.children, result);
269
+ });
270
+ return result;
139
271
  }
272
+ /**
273
+ * Add children to the result list
274
+ *
275
+ * @param children - The children to add
276
+ * @param result - The result list
277
+ */
278
+ addChildrenToResult(children, result) {
279
+ children.forEach(child => {
280
+ // Add the child
281
+ result.push({
282
+ name: child.name,
283
+ duration: child.duration,
284
+ isSlow: child.isSlow,
285
+ suggestion: child.suggestion,
286
+ level: child.level,
287
+ });
288
+ // Add grandchildren recursively
289
+ this.addChildrenToResult(child.children, result);
290
+ });
291
+ }
292
+ /**
293
+ * Clear all execution records
294
+ */
140
295
  clear() {
141
296
  this._executions = [];
142
297
  this._currentExecution = null;
143
298
  this._callStack = [];
299
+ this._instrumentedFunctions.clear();
144
300
  }
145
301
  }
302
+ exports.BrowserExecutionTracker = BrowserExecutionTracker;
146
303
  /**
147
304
  * Browser-compatible logger
148
305
  */
@@ -247,14 +404,28 @@ class BrowserLogger {
247
404
  }
248
405
  }
249
406
  }
250
- // Create a singleton instance of the browser logger
251
- const browserLogger = new BrowserLogger();
252
- // Export the singleton instance as the default export
253
- export default browserLogger;
254
- // Export a function to create a new logger instance
255
- export function createBrowserLogger(config = {}) {
407
+ exports.BrowserLogger = BrowserLogger;
408
+ /**
409
+ * Create a new browser logger instance
410
+ *
411
+ * @param config - Configuration options
412
+ * @returns A new BrowserLogger instance
413
+ */
414
+ function createBrowserLogger(config = {}) {
256
415
  return new BrowserLogger(config);
257
416
  }
258
- // Export types and classes for advanced usage
259
- export { BrowserLogger, BrowserExecutionTracker, BrowserPerformanceMonitor };
417
+ // Create a singleton instance
418
+ const defaultBrowserLogger = new BrowserLogger();
419
+ // Export the singleton instance as the default export
420
+ exports.default = defaultBrowserLogger;
421
+ // Add CommonJS compatibility
422
+ if (typeof module !== 'undefined' && module.exports) {
423
+ module.exports = Object.assign(defaultBrowserLogger, {
424
+ default: defaultBrowserLogger,
425
+ createBrowserLogger,
426
+ BrowserLogger,
427
+ BrowserPerformanceMonitor,
428
+ BrowserExecutionTracker
429
+ });
430
+ }
260
431
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}