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.
Files changed (268) hide show
  1. package/README.md +608 -253
  2. package/dist/__tests__/helpers/console.d.ts +9 -0
  3. package/dist/__tests__/helpers/console.js +25 -0
  4. package/dist/__tests__/helpers/console.js.map +1 -0
  5. package/dist/auto.d.ts +30 -0
  6. package/dist/auto.js +91 -0
  7. package/dist/auto.js.map +1 -0
  8. package/dist/browser.d.ts +52 -144
  9. package/dist/browser.js +112 -439
  10. package/dist/browser.js.map +1 -1
  11. package/dist/cli.d.ts +68 -0
  12. package/dist/cli.js +528 -0
  13. package/dist/cli.js.map +1 -0
  14. package/dist/core/allocations.d.ts +38 -0
  15. package/dist/core/allocations.js +85 -0
  16. package/dist/core/allocations.js.map +1 -0
  17. package/dist/core/cpu-profile.d.ts +84 -0
  18. package/dist/core/cpu-profile.js +181 -0
  19. package/dist/core/cpu-profile.js.map +1 -0
  20. package/dist/core/env.d.ts +10 -0
  21. package/dist/core/env.js +40 -0
  22. package/dist/core/env.js.map +1 -0
  23. package/dist/core/event-loop.d.ts +30 -0
  24. package/dist/core/event-loop.js +43 -0
  25. package/dist/core/event-loop.js.map +1 -0
  26. package/dist/core/explain.d.ts +48 -0
  27. package/dist/core/explain.js +236 -0
  28. package/dist/core/explain.js.map +1 -0
  29. package/dist/core/exporters.d.ts +111 -0
  30. package/dist/core/exporters.js +236 -0
  31. package/dist/core/exporters.js.map +1 -0
  32. package/dist/core/index.d.ts +9 -3
  33. package/dist/core/index.js +9 -3
  34. package/dist/core/index.js.map +1 -1
  35. package/dist/core/optimized-performance-monitor.d.ts +180 -26
  36. package/dist/core/optimized-performance-monitor.js +687 -175
  37. package/dist/core/optimized-performance-monitor.js.map +1 -1
  38. package/dist/core/prometheus.d.ts +36 -0
  39. package/dist/core/prometheus.js +93 -0
  40. package/dist/core/prometheus.js.map +1 -0
  41. package/dist/core/records.d.ts +97 -0
  42. package/dist/core/records.js +87 -0
  43. package/dist/core/records.js.map +1 -0
  44. package/dist/core/stats.d.ts +45 -0
  45. package/dist/core/stats.js +136 -0
  46. package/dist/core/stats.js.map +1 -0
  47. package/dist/core/timeline.d.ts +28 -0
  48. package/dist/core/timeline.js +65 -0
  49. package/dist/core/timeline.js.map +1 -0
  50. package/dist/drivers.d.ts +51 -0
  51. package/dist/drivers.js +205 -0
  52. package/dist/drivers.js.map +1 -0
  53. package/dist/esm/auto.d.ts +30 -0
  54. package/dist/esm/auto.js +87 -0
  55. package/dist/esm/auto.js.map +1 -0
  56. package/dist/esm/browser.d.ts +52 -144
  57. package/dist/esm/browser.js +101 -445
  58. package/dist/esm/browser.js.map +1 -1
  59. package/dist/esm/cli.d.ts +68 -0
  60. package/dist/esm/cli.js +520 -0
  61. package/dist/esm/cli.js.map +1 -0
  62. package/dist/esm/core/allocations.d.ts +38 -0
  63. package/dist/esm/core/allocations.js +82 -0
  64. package/dist/esm/core/allocations.js.map +1 -0
  65. package/dist/esm/core/cpu-profile.d.ts +84 -0
  66. package/dist/esm/core/cpu-profile.js +176 -0
  67. package/dist/esm/core/cpu-profile.js.map +1 -0
  68. package/dist/esm/core/env.d.ts +10 -0
  69. package/dist/esm/core/env.js +35 -0
  70. package/dist/esm/core/env.js.map +1 -0
  71. package/dist/esm/core/event-loop.d.ts +30 -0
  72. package/dist/esm/core/event-loop.js +40 -0
  73. package/dist/esm/core/event-loop.js.map +1 -0
  74. package/dist/esm/core/explain.d.ts +48 -0
  75. package/dist/esm/core/explain.js +232 -0
  76. package/dist/esm/core/explain.js.map +1 -0
  77. package/dist/esm/core/exporters.d.ts +111 -0
  78. package/dist/esm/core/exporters.js +229 -0
  79. package/dist/esm/core/exporters.js.map +1 -0
  80. package/dist/esm/core/index.d.ts +10 -4
  81. package/dist/esm/core/index.js +10 -4
  82. package/dist/esm/core/index.js.map +1 -1
  83. package/dist/esm/core/optimized-performance-monitor.d.ts +180 -26
  84. package/dist/esm/core/optimized-performance-monitor.js +685 -173
  85. package/dist/esm/core/optimized-performance-monitor.js.map +1 -1
  86. package/dist/esm/core/prometheus.d.ts +36 -0
  87. package/dist/esm/core/prometheus.js +89 -0
  88. package/dist/esm/core/prometheus.js.map +1 -0
  89. package/dist/esm/core/records.d.ts +97 -0
  90. package/dist/esm/core/records.js +82 -0
  91. package/dist/esm/core/records.js.map +1 -0
  92. package/dist/esm/core/stats.d.ts +45 -0
  93. package/dist/esm/core/stats.js +131 -0
  94. package/dist/esm/core/stats.js.map +1 -0
  95. package/dist/esm/core/timeline.d.ts +28 -0
  96. package/dist/esm/core/timeline.js +62 -0
  97. package/dist/esm/core/timeline.js.map +1 -0
  98. package/dist/esm/drivers.d.ts +51 -0
  99. package/dist/esm/drivers.js +197 -0
  100. package/dist/esm/drivers.js.map +1 -0
  101. package/dist/esm/index.d.ts +13 -5
  102. package/dist/esm/index.js +21 -17
  103. package/dist/esm/index.js.map +1 -1
  104. package/dist/esm/instrument.d.ts +88 -0
  105. package/dist/esm/instrument.js +274 -0
  106. package/dist/esm/instrument.js.map +1 -0
  107. package/dist/esm/integrations.d.ts +70 -0
  108. package/dist/esm/integrations.js +197 -0
  109. package/dist/esm/integrations.js.map +1 -0
  110. package/dist/esm/node-builtins.d.ts +1 -0
  111. package/dist/esm/node-builtins.js +32 -0
  112. package/dist/esm/node-builtins.js.map +1 -0
  113. package/dist/esm/package.json +3 -0
  114. package/dist/esm/register.d.ts +20 -0
  115. package/dist/esm/register.js +98 -0
  116. package/dist/esm/register.js.map +1 -0
  117. package/dist/esm/report-html.d.ts +11 -0
  118. package/dist/esm/report-html.js +106 -0
  119. package/dist/esm/report-html.js.map +1 -0
  120. package/dist/esm/types/index.d.ts +4 -80
  121. package/dist/esm/types/index.js +1 -2
  122. package/dist/esm/types/index.js.map +1 -1
  123. package/dist/esm/types/options.d.ts +72 -0
  124. package/dist/esm/types/options.js +2 -0
  125. package/dist/esm/types/options.js.map +1 -0
  126. package/dist/esm/watch.d.ts +17 -0
  127. package/dist/esm/watch.js +87 -0
  128. package/dist/esm/watch.js.map +1 -0
  129. package/dist/index.d.ts +10 -2
  130. package/dist/index.js +26 -29
  131. package/dist/index.js.map +1 -1
  132. package/dist/instrument.d.ts +88 -0
  133. package/dist/instrument.js +282 -0
  134. package/dist/instrument.js.map +1 -0
  135. package/dist/integrations.d.ts +70 -0
  136. package/dist/integrations.js +205 -0
  137. package/dist/integrations.js.map +1 -0
  138. package/dist/node-builtins.d.ts +1 -0
  139. package/dist/node-builtins.js +67 -0
  140. package/dist/node-builtins.js.map +1 -0
  141. package/dist/register.d.ts +20 -0
  142. package/dist/register.js +103 -0
  143. package/dist/register.js.map +1 -0
  144. package/dist/report-html.d.ts +11 -0
  145. package/dist/report-html.js +109 -0
  146. package/dist/report-html.js.map +1 -0
  147. package/dist/traceperf.browser.js +1910 -0
  148. package/dist/traceperf.browser.min.js +6 -0
  149. package/dist/types/index.d.ts +4 -80
  150. package/dist/types/index.js +1 -2
  151. package/dist/types/index.js.map +1 -1
  152. package/dist/types/options.d.ts +72 -0
  153. package/dist/types/{config.js → options.js} +1 -1
  154. package/dist/types/options.js.map +1 -0
  155. package/dist/watch.d.ts +17 -0
  156. package/dist/watch.js +90 -0
  157. package/dist/watch.js.map +1 -0
  158. package/package.json +99 -19
  159. package/dist/core/config.d.ts +0 -77
  160. package/dist/core/config.js +0 -116
  161. package/dist/core/config.js.map +0 -1
  162. package/dist/core/constants.d.ts +0 -78
  163. package/dist/core/constants.js +0 -109
  164. package/dist/core/constants.js.map +0 -1
  165. package/dist/core/logger.d.ts +0 -97
  166. package/dist/core/logger.js +0 -186
  167. package/dist/core/logger.js.map +0 -1
  168. package/dist/esm/core/config.d.ts +0 -77
  169. package/dist/esm/core/config.js +0 -112
  170. package/dist/esm/core/config.js.map +0 -1
  171. package/dist/esm/core/constants.d.ts +0 -78
  172. package/dist/esm/core/constants.js +0 -106
  173. package/dist/esm/core/constants.js.map +0 -1
  174. package/dist/esm/core/logger.d.ts +0 -97
  175. package/dist/esm/core/logger.js +0 -182
  176. package/dist/esm/core/logger.js.map +0 -1
  177. package/dist/esm/formatters/ascii.d.ts +0 -52
  178. package/dist/esm/formatters/ascii.js +0 -100
  179. package/dist/esm/formatters/ascii.js.map +0 -1
  180. package/dist/esm/formatters/cli.d.ts +0 -50
  181. package/dist/esm/formatters/cli.js +0 -96
  182. package/dist/esm/formatters/cli.js.map +0 -1
  183. package/dist/esm/formatters/index.d.ts +0 -3
  184. package/dist/esm/formatters/index.js +0 -4
  185. package/dist/esm/formatters/index.js.map +0 -1
  186. package/dist/esm/formatters/json.d.ts +0 -45
  187. package/dist/esm/formatters/json.js +0 -85
  188. package/dist/esm/formatters/json.js.map +0 -1
  189. package/dist/esm/trackers/execution.d.ts +0 -101
  190. package/dist/esm/trackers/execution.js +0 -226
  191. package/dist/esm/trackers/execution.js.map +0 -1
  192. package/dist/esm/trackers/index.d.ts +0 -2
  193. package/dist/esm/trackers/index.js +0 -3
  194. package/dist/esm/trackers/index.js.map +0 -1
  195. package/dist/esm/trackers/performance.d.ts +0 -68
  196. package/dist/esm/trackers/performance.js +0 -112
  197. package/dist/esm/trackers/performance.js.map +0 -1
  198. package/dist/esm/types/config.d.ts +0 -142
  199. package/dist/esm/types/config.js +0 -2
  200. package/dist/esm/types/config.js.map +0 -1
  201. package/dist/esm/types/logger.d.ts +0 -147
  202. package/dist/esm/types/logger.js +0 -2
  203. package/dist/esm/types/logger.js.map +0 -1
  204. package/dist/esm/utils/colors.d.ts +0 -87
  205. package/dist/esm/utils/colors.js +0 -146
  206. package/dist/esm/utils/colors.js.map +0 -1
  207. package/dist/esm/utils/index.d.ts +0 -3
  208. package/dist/esm/utils/index.js +0 -4
  209. package/dist/esm/utils/index.js.map +0 -1
  210. package/dist/esm/utils/proxy-tracker.d.ts +0 -68
  211. package/dist/esm/utils/proxy-tracker.js +0 -127
  212. package/dist/esm/utils/proxy-tracker.js.map +0 -1
  213. package/dist/esm/utils/stack.d.ts +0 -63
  214. package/dist/esm/utils/stack.js +0 -110
  215. package/dist/esm/utils/stack.js.map +0 -1
  216. package/dist/esm/utils/string.d.ts +0 -29
  217. package/dist/esm/utils/string.js +0 -45
  218. package/dist/esm/utils/string.js.map +0 -1
  219. package/dist/esm/utils/timing.d.ts +0 -65
  220. package/dist/esm/utils/timing.js +0 -99
  221. package/dist/esm/utils/timing.js.map +0 -1
  222. package/dist/formatters/ascii.d.ts +0 -52
  223. package/dist/formatters/ascii.js +0 -104
  224. package/dist/formatters/ascii.js.map +0 -1
  225. package/dist/formatters/cli.d.ts +0 -50
  226. package/dist/formatters/cli.js +0 -100
  227. package/dist/formatters/cli.js.map +0 -1
  228. package/dist/formatters/index.d.ts +0 -3
  229. package/dist/formatters/index.js +0 -20
  230. package/dist/formatters/index.js.map +0 -1
  231. package/dist/formatters/json.d.ts +0 -45
  232. package/dist/formatters/json.js +0 -89
  233. package/dist/formatters/json.js.map +0 -1
  234. package/dist/trackers/execution.d.ts +0 -101
  235. package/dist/trackers/execution.js +0 -230
  236. package/dist/trackers/execution.js.map +0 -1
  237. package/dist/trackers/index.d.ts +0 -2
  238. package/dist/trackers/index.js +0 -19
  239. package/dist/trackers/index.js.map +0 -1
  240. package/dist/trackers/performance.d.ts +0 -68
  241. package/dist/trackers/performance.js +0 -116
  242. package/dist/trackers/performance.js.map +0 -1
  243. package/dist/types/config.d.ts +0 -142
  244. package/dist/types/config.js.map +0 -1
  245. package/dist/types/logger.d.ts +0 -147
  246. package/dist/types/logger.js +0 -3
  247. package/dist/types/logger.js.map +0 -1
  248. package/dist/types.d.ts +0 -65
  249. package/dist/types.js +0 -6
  250. package/dist/types.js.map +0 -1
  251. package/dist/utils/colors.d.ts +0 -87
  252. package/dist/utils/colors.js +0 -160
  253. package/dist/utils/colors.js.map +0 -1
  254. package/dist/utils/index.d.ts +0 -3
  255. package/dist/utils/index.js +0 -20
  256. package/dist/utils/index.js.map +0 -1
  257. package/dist/utils/proxy-tracker.d.ts +0 -68
  258. package/dist/utils/proxy-tracker.js +0 -131
  259. package/dist/utils/proxy-tracker.js.map +0 -1
  260. package/dist/utils/stack.d.ts +0 -63
  261. package/dist/utils/stack.js +0 -116
  262. package/dist/utils/stack.js.map +0 -1
  263. package/dist/utils/string.d.ts +0 -29
  264. package/dist/utils/string.js +0 -50
  265. package/dist/utils/string.js.map +0 -1
  266. package/dist/utils/timing.d.ts +0 -65
  267. package/dist/utils/timing.js +0 -106
  268. 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"}
@@ -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
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":""}
@@ -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
- }
@@ -1,3 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=logger.js.map
@@ -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
@@ -1,6 +0,0 @@
1
- "use strict";
2
- /**
3
- * Module for defining common types used throughout the application
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- //# sourceMappingURL=types.js.map
package/dist/types.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";AAAA;;GAEG"}
@@ -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;