mcp-wordpress 1.2.2 → 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 (251) hide show
  1. package/README.md +210 -182
  2. package/dist/cache/CacheInvalidation.d.ts +3 -3
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  4. package/dist/cache/CacheInvalidation.js +119 -119
  5. package/dist/cache/CacheInvalidation.js.map +1 -1
  6. package/dist/cache/CacheManager.d.ts +5 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -1
  8. package/dist/cache/CacheManager.js +26 -16
  9. package/dist/cache/CacheManager.js.map +1 -1
  10. package/dist/cache/HttpCacheWrapper.d.ts +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  12. package/dist/cache/HttpCacheWrapper.js +29 -29
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  14. package/dist/cache/__tests__/CacheInvalidation.test.js +96 -94
  15. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -1
  16. package/dist/cache/__tests__/CacheManager.test.js +113 -113
  17. package/dist/cache/__tests__/CacheManager.test.js.map +1 -1
  18. package/dist/cache/__tests__/CachedWordPressClient.test.js +102 -99
  19. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -1
  20. package/dist/cache/__tests__/HttpCacheWrapper.test.js +98 -95
  21. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
  22. package/dist/cache/index.d.ts +7 -7
  23. package/dist/cache/index.d.ts.map +1 -1
  24. package/dist/cache/index.js +4 -4
  25. package/dist/cache/index.js.map +1 -1
  26. package/dist/client/CachedWordPressClient.d.ts +4 -4
  27. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  28. package/dist/client/CachedWordPressClient.js +55 -51
  29. package/dist/client/CachedWordPressClient.js.map +1 -1
  30. package/dist/client/api.d.ts +10 -10
  31. package/dist/client/api.js +158 -158
  32. package/dist/client/api.js.map +1 -1
  33. package/dist/client/auth.d.ts +2 -2
  34. package/dist/client/auth.js +72 -72
  35. package/dist/client/managers/AuthenticationManager.d.ts +2 -2
  36. package/dist/client/managers/AuthenticationManager.js +46 -46
  37. package/dist/client/managers/BaseManager.d.ts +1 -1
  38. package/dist/client/managers/BaseManager.js +9 -9
  39. package/dist/client/managers/RequestManager.d.ts +5 -3
  40. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  41. package/dist/client/managers/RequestManager.js +39 -19
  42. package/dist/client/managers/RequestManager.js.map +1 -1
  43. package/dist/client/managers/index.d.ts +3 -3
  44. package/dist/client/managers/index.js +3 -3
  45. package/dist/config/ConfigurationSchema.d.ts +2 -2
  46. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  47. package/dist/config/ConfigurationSchema.js +40 -40
  48. package/dist/config/ConfigurationSchema.js.map +1 -1
  49. package/dist/config/ServerConfiguration.d.ts +2 -2
  50. package/dist/config/ServerConfiguration.js +35 -35
  51. package/dist/config/ServerConfiguration.js.map +1 -1
  52. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  53. package/dist/docs/DocumentationGenerator.js +296 -255
  54. package/dist/docs/DocumentationGenerator.js.map +1 -1
  55. package/dist/docs/MarkdownFormatter.d.ts +1 -1
  56. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  57. package/dist/docs/MarkdownFormatter.js +60 -51
  58. package/dist/docs/MarkdownFormatter.js.map +1 -1
  59. package/dist/docs/index.d.ts +3 -3
  60. package/dist/docs/index.d.ts.map +1 -1
  61. package/dist/docs/index.js +2 -2
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +16 -16
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp-wordpress-1.3.0.tgz +0 -0
  66. package/dist/performance/MetricsCollector.d.ts +3 -3
  67. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  68. package/dist/performance/MetricsCollector.js +33 -27
  69. package/dist/performance/MetricsCollector.js.map +1 -1
  70. package/dist/performance/PerformanceAnalytics.d.ts +12 -12
  71. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  72. package/dist/performance/PerformanceAnalytics.js +200 -154
  73. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  74. package/dist/performance/PerformanceMonitor.d.ts +5 -5
  75. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  76. package/dist/performance/PerformanceMonitor.js +53 -52
  77. package/dist/performance/PerformanceMonitor.js.map +1 -1
  78. package/dist/performance/index.d.ts +6 -6
  79. package/dist/performance/index.d.ts.map +1 -1
  80. package/dist/performance/index.js +3 -3
  81. package/dist/security/InputValidator.d.ts +1 -1
  82. package/dist/security/InputValidator.d.ts.map +1 -1
  83. package/dist/security/InputValidator.js +111 -88
  84. package/dist/security/InputValidator.js.map +1 -1
  85. package/dist/security/SecurityConfig.d.ts +5 -5
  86. package/dist/security/SecurityConfig.js +92 -92
  87. package/dist/security/SecurityConfig.js.map +1 -1
  88. package/dist/server/ConnectionTester.d.ts +1 -1
  89. package/dist/server/ConnectionTester.d.ts.map +1 -1
  90. package/dist/server/ConnectionTester.js +4 -4
  91. package/dist/server/ConnectionTester.js.map +1 -1
  92. package/dist/server/ToolRegistry.d.ts +2 -2
  93. package/dist/server/ToolRegistry.d.ts.map +1 -1
  94. package/dist/server/ToolRegistry.js +35 -32
  95. package/dist/server/ToolRegistry.js.map +1 -1
  96. package/dist/server.d.ts +2 -2
  97. package/dist/server.js +2 -2
  98. package/dist/tools/BaseToolManager.js +5 -5
  99. package/dist/tools/auth.d.ts +2 -2
  100. package/dist/tools/auth.d.ts.map +1 -1
  101. package/dist/tools/auth.js +32 -31
  102. package/dist/tools/auth.js.map +1 -1
  103. package/dist/tools/cache.d.ts +1 -1
  104. package/dist/tools/cache.d.ts.map +1 -1
  105. package/dist/tools/cache.js +71 -71
  106. package/dist/tools/cache.js.map +1 -1
  107. package/dist/tools/comments.d.ts +2 -2
  108. package/dist/tools/comments.d.ts.map +1 -1
  109. package/dist/tools/comments.js +79 -79
  110. package/dist/tools/comments.js.map +1 -1
  111. package/dist/tools/index.d.ts +10 -10
  112. package/dist/tools/index.js +10 -10
  113. package/dist/tools/media.d.ts +2 -2
  114. package/dist/tools/media.js +80 -80
  115. package/dist/tools/pages.d.ts +2 -2
  116. package/dist/tools/pages.d.ts.map +1 -1
  117. package/dist/tools/pages.js +75 -75
  118. package/dist/tools/pages.js.map +1 -1
  119. package/dist/tools/performance.d.ts +1 -1
  120. package/dist/tools/performance.d.ts.map +1 -1
  121. package/dist/tools/performance.js +311 -287
  122. package/dist/tools/performance.js.map +1 -1
  123. package/dist/tools/posts.d.ts +2 -2
  124. package/dist/tools/posts.d.ts.map +1 -1
  125. package/dist/tools/posts.js +94 -94
  126. package/dist/tools/posts.js.map +1 -1
  127. package/dist/tools/site.d.ts +2 -2
  128. package/dist/tools/site.d.ts.map +1 -1
  129. package/dist/tools/site.js +60 -60
  130. package/dist/tools/site.js.map +1 -1
  131. package/dist/tools/taxonomies.d.ts +2 -2
  132. package/dist/tools/taxonomies.js +89 -89
  133. package/dist/tools/users.d.ts +2 -2
  134. package/dist/tools/users.js +68 -68
  135. package/dist/tools/users.js.map +1 -1
  136. package/dist/types/client.d.ts +13 -13
  137. package/dist/types/client.d.ts.map +1 -1
  138. package/dist/types/client.js +12 -12
  139. package/dist/types/client.js.map +1 -1
  140. package/dist/types/index.d.ts +19 -19
  141. package/dist/types/index.d.ts.map +1 -1
  142. package/dist/types/index.js +3 -3
  143. package/dist/types/mcp.d.ts +7 -7
  144. package/dist/types/wordpress.d.ts +21 -21
  145. package/dist/types/wordpress.d.ts.map +1 -1
  146. package/dist/utils/debug.d.ts +2 -2
  147. package/dist/utils/debug.js +28 -28
  148. package/dist/utils/error.d.ts.map +1 -1
  149. package/dist/utils/error.js +13 -13
  150. package/dist/utils/error.js.map +1 -1
  151. package/dist/utils/toolWrapper.d.ts.map +1 -1
  152. package/dist/utils/toolWrapper.js +5 -5
  153. package/dist/utils/toolWrapper.js.map +1 -1
  154. package/dist/utils/validation.d.ts.map +1 -1
  155. package/dist/utils/validation.js +41 -31
  156. package/dist/utils/validation.js.map +1 -1
  157. package/docs/CACHING.md +36 -2
  158. package/docs/DOCKER.md +24 -18
  159. package/docs/PERFORMANCE_MONITORING.md +49 -1
  160. package/docs/SECURITY_TESTING.md +30 -1
  161. package/docs/api/README.md +9 -1
  162. package/docs/api/summary.json +1 -1
  163. package/docs/contract-testing.md +24 -3
  164. package/docs/developer/GITHUB_ACTIONS_SETUP.md +8 -2
  165. package/docs/developer/MAINTENANCE.md +29 -3
  166. package/docs/developer/MIGRATION_GUIDE.md +13 -1
  167. package/docs/developer/NPM_AUTH_SETUP.md +13 -2
  168. package/docs/developer/REFACTORING.md +31 -1
  169. package/docs/releases/COMMUNITY_ANNOUNCEMENT_v1.1.2.md +18 -7
  170. package/docs/releases/RELEASE_NOTES_v1.1.2.md +31 -5
  171. package/docs/user-guides/DOCKER_SETUP.md +264 -0
  172. package/docs/user-guides/DTX_SETUP.md +327 -0
  173. package/docs/user-guides/NPM_SETUP.md +109 -0
  174. package/docs/user-guides/NPX_SETUP.md +281 -0
  175. package/docs/wordpress-rest-api-authentication-troubleshooting.md +13 -2
  176. package/package.json +27 -8
  177. package/src/cache/CacheInvalidation.ts +140 -132
  178. package/src/cache/CacheManager.ts +40 -29
  179. package/src/cache/HttpCacheWrapper.ts +105 -68
  180. package/src/cache/__tests__/CacheInvalidation.test.ts +123 -118
  181. package/src/cache/__tests__/CacheManager.test.ts +156 -152
  182. package/src/cache/__tests__/CachedWordPressClient.test.ts +131 -116
  183. package/src/cache/__tests__/HttpCacheWrapper.test.ts +118 -115
  184. package/src/cache/index.ts +13 -13
  185. package/src/client/CachedWordPressClient.ts +90 -80
  186. package/src/client/api.ts +205 -205
  187. package/src/client/auth.ts +80 -80
  188. package/src/client/managers/AuthenticationManager.ts +61 -61
  189. package/src/client/managers/BaseManager.ts +11 -11
  190. package/src/client/managers/RequestManager.ts +79 -47
  191. package/src/client/managers/index.ts +3 -3
  192. package/src/config/ConfigurationSchema.ts +44 -44
  193. package/src/config/ServerConfiguration.ts +39 -39
  194. package/src/docs/DocumentationGenerator.ts +402 -295
  195. package/src/docs/MarkdownFormatter.ts +94 -69
  196. package/src/docs/index.ts +4 -4
  197. package/src/index.ts +24 -21
  198. package/src/performance/MetricsCollector.ts +90 -58
  199. package/src/performance/PerformanceAnalytics.ts +386 -262
  200. package/src/performance/PerformanceMonitor.ts +152 -118
  201. package/src/performance/index.ts +9 -9
  202. package/src/security/InputValidator.ts +148 -91
  203. package/src/security/SecurityConfig.ts +94 -94
  204. package/src/server/ConnectionTester.ts +21 -15
  205. package/src/server/ToolRegistry.ts +64 -51
  206. package/src/server.ts +2 -2
  207. package/src/tools/BaseToolManager.ts +6 -6
  208. package/src/tools/auth.ts +42 -37
  209. package/src/tools/cache.ts +85 -81
  210. package/src/tools/comments.ts +93 -91
  211. package/src/tools/index.ts +10 -10
  212. package/src/tools/media.ts +89 -89
  213. package/src/tools/pages.ts +89 -87
  214. package/src/tools/performance.ts +443 -352
  215. package/src/tools/posts.ts +109 -107
  216. package/src/tools/site.ts +86 -77
  217. package/src/tools/taxonomies.ts +102 -102
  218. package/src/tools/users.ts +77 -77
  219. package/src/types/client.ts +157 -60
  220. package/src/types/index.ts +49 -27
  221. package/src/types/mcp.ts +15 -15
  222. package/src/types/wordpress.ts +57 -29
  223. package/src/utils/debug.ts +37 -37
  224. package/src/utils/error.ts +47 -25
  225. package/src/utils/toolWrapper.ts +12 -8
  226. package/src/utils/validation.ts +116 -65
  227. package/dist/client/WordPressClient.d.ts +0 -81
  228. package/dist/client/WordPressClient.d.ts.map +0 -1
  229. package/dist/client/WordPressClient.js +0 -354
  230. package/dist/client/WordPressClient.js.map +0 -1
  231. package/dist/performance/AnomalyDetector.d.ts +0 -63
  232. package/dist/performance/AnomalyDetector.d.ts.map +0 -1
  233. package/dist/performance/AnomalyDetector.js +0 -222
  234. package/dist/performance/AnomalyDetector.js.map +0 -1
  235. package/dist/performance/BenchmarkAnalyzer.d.ts +0 -67
  236. package/dist/performance/BenchmarkAnalyzer.d.ts.map +0 -1
  237. package/dist/performance/BenchmarkAnalyzer.js +0 -301
  238. package/dist/performance/BenchmarkAnalyzer.js.map +0 -1
  239. package/dist/performance/TrendAnalyzer.d.ts +0 -69
  240. package/dist/performance/TrendAnalyzer.d.ts.map +0 -1
  241. package/dist/performance/TrendAnalyzer.js +0 -203
  242. package/dist/performance/TrendAnalyzer.js.map +0 -1
  243. package/dist/tools/BaseToolClass.d.ts +0 -76
  244. package/dist/tools/BaseToolClass.d.ts.map +0 -1
  245. package/dist/tools/BaseToolClass.js +0 -104
  246. package/dist/tools/BaseToolClass.js.map +0 -1
  247. package/dist/tools/base.d.ts +0 -37
  248. package/dist/tools/base.d.ts.map +0 -1
  249. package/dist/tools/base.js +0 -60
  250. package/dist/tools/base.js.map +0 -1
  251. package/docs/user-guides/CLAUDE_DESKTOP_SETUP.md +0 -187
@@ -1 +0,0 @@
1
- {"version":3,"file":"AnomalyDetector.js","sourceRoot":"","sources":["../../src/performance/AnomalyDetector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAmBH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAyB;IAC/B,iBAAiB,GAAyB,EAAE,CAAC;IAErD,YAAY,MAA8B;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACI,eAAe,CACpB,cAAkC,EAClC,cAAoC;QAEpC,MAAM,SAAS,GAAyB,EAAE,CAAC;QAE3C,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,CAAC,kCAAkC;QACtD,CAAC;QAED,kCAAkC;QAClC,MAAM,cAAc,GAAG;YACrB,cAAc;YACd,aAAa;YACb,cAAc;YACd,WAAW;YACX,YAAY;SACb,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;YACxC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;YACpF,IAAI,OAAO,EAAE,CAAC;gBACZ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,kBAAkB,CACxB,UAAkB,EAClB,OAA2B,EAC3B,UAAgC;QAEhC,MAAM,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,YAAY,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEvC,MAAM,gBAAgB,GAAG,UAAU;aAChC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;aAChD,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAa,CAAC;QAEvC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAE7C,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;QACpE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;QAExD,uDAAuD;QACvD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7C,IAAI,MAAM,GAAG,SAAS;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;QAC/D,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QAE3D,OAAO;YACL,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,MAAM,EAAE,UAAU;YAClB,aAAa,EAAE,IAAI;YACnB,WAAW,EAAE,YAAY;YACzB,SAAS;YACT,QAAQ;YACR,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,YAAY,GAAG,IAAI,CAAC;SAC7E,CAAC;IACJ,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,UAAkB,EAAE,OAA2B;QACxE,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,cAAc;gBACjB,OAAO,OAAO,CAAC,QAAQ,EAAE,mBAAmB,IAAI,IAAI,CAAC;YACvD,KAAK,aAAa;gBAChB,OAAO,OAAO,CAAC,MAAM,EAAE,WAAW,IAAI,IAAI,CAAC;YAC7C,KAAK,cAAc;gBACjB,OAAO,OAAO,CAAC,KAAK,EAAE,OAAO,IAAI,IAAI,CAAC;YACxC,KAAK,WAAW;gBACd,OAAO,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC;oBAChC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK;oBAClD,CAAC,CAAC,IAAI,CAAC;YACX,KAAK,YAAY;gBACf,OAAO,OAAO,CAAC,QAAQ,EAAE,iBAAiB,IAAI,IAAI,CAAC;YACrD;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,mBAAmB,CAAC,MAAgB;QAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACvE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QAC/F,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED;;OAEG;IACK,mBAAmB;QACzB,QAAQ,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,CAAC,OAAO,GAAG,CAAC,CAAG,iBAAiB;YAC5C,KAAK,QAAQ,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,WAAW;YACtC,KAAK,KAAK,CAAC,CAAC,OAAO,GAAG,CAAC,CAAI,iBAAiB;YAC5C,OAAO,CAAC,CAAC,OAAO,GAAG,CAAC;QACtB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB,CAAC,SAAiB,EAAE,MAAc;QACzD,IAAI,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,GAAG;YAAE,OAAO,UAAU,CAAC;QACrD,IAAI,MAAM,GAAG,CAAC,IAAI,SAAS,GAAG,EAAE;YAAE,OAAO,OAAO,CAAC;QACjD,IAAI,MAAM,GAAG,GAAG,IAAI,SAAS,GAAG,EAAE;YAAE,OAAO,UAAU,CAAC;QACtD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;OAEG;IACK,sBAAsB,CAAC,UAAkB,EAAE,UAAmB;QACpE,MAAM,MAAM,GAAkE;YAC5E,YAAY,EAAE;gBACZ,QAAQ,EAAE;oBACR,+BAA+B;oBAC/B,mCAAmC;oBACnC,0CAA0C;oBAC1C,kCAAkC;oBAClC,8CAA8C;iBAC/C;gBACD,QAAQ,EAAE;oBACR,gCAAgC;oBAChC,uBAAuB;oBACvB,qBAAqB;oBACrB,sBAAsB;iBACvB;aACF;YACD,WAAW,EAAE;gBACX,QAAQ,EAAE;oBACR,kCAAkC;oBAClC,0BAA0B;oBAC1B,gCAAgC;oBAChC,8BAA8B;oBAC9B,gCAAgC;iBACjC;gBACD,QAAQ,EAAE;oBACR,iCAAiC;oBACjC,eAAe;oBACf,yBAAyB;oBACzB,qBAAqB;iBACtB;aACF;YACD,YAAY,EAAE;gBACZ,QAAQ,EAAE;oBACR,wBAAwB;oBACxB,6BAA6B;oBAC7B,4BAA4B;oBAC5B,mCAAmC;iBACpC;gBACD,QAAQ,EAAE;oBACR,2BAA2B;oBAC3B,0BAA0B;oBAC1B,2BAA2B;oBAC3B,uBAAuB;oBACvB,0CAA0C;iBAC3C;aACF;YACD,SAAS,EAAE;gBACT,QAAQ,EAAE;oBACR,wCAAwC;oBACxC,8BAA8B;oBAC9B,2BAA2B;oBAC3B,qBAAqB;oBACrB,mCAAmC;iBACpC;gBACD,QAAQ,EAAE;oBACR,oBAAoB;oBACpB,yBAAyB;oBACzB,uCAAuC;oBACvC,4BAA4B;iBAC7B;aACF;YACD,UAAU,EAAE;gBACV,QAAQ,EAAE;oBACR,2BAA2B;oBAC3B,wBAAwB;oBACxB,6BAA6B;oBAC7B,0BAA0B;iBAC3B;gBACD,QAAQ,EAAE;oBACR,8BAA8B;oBAC9B,sBAAsB;oBACtB,6BAA6B;oBAC7B,qBAAqB;oBACrB,2BAA2B;iBAC5B;aACF;SACF,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACxC,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,+CAA+C,CAAC,CAAC;QAE5E,OAAO,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,CAAC;IACpE,CAAC;IAED;;OAEG;IACI,oBAAoB;QACzB,OAAO,CAAC,GAAG,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED;;OAEG;IACI,mBAAmB,CAAC,eAAuB;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,eAAe,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CACpD,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,GAAG,MAAM,CACtC,CAAC;IACJ,CAAC;CACF"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Benchmark Analysis for Performance Metrics
3
- * Compares current performance against industry standards
4
- */
5
- import { PerformanceMetrics } from './PerformanceMonitor.js';
6
- export interface BenchmarkComparison {
7
- category: string;
8
- currentValue: number;
9
- benchmarkValue: number;
10
- percentile: number;
11
- status: 'excellent' | 'good' | 'average' | 'below_average' | 'poor';
12
- improvement: number;
13
- }
14
- export interface BenchmarkThresholds {
15
- excellent: number;
16
- good: number;
17
- average: number;
18
- below_average: number;
19
- poor: number;
20
- }
21
- /**
22
- * Analyzes performance against industry benchmarks
23
- */
24
- export declare class BenchmarkAnalyzer {
25
- private benchmarks;
26
- /**
27
- * Compare current metrics against benchmarks
28
- */
29
- compareToBenchmarks(metrics: PerformanceMetrics): BenchmarkComparison[];
30
- /**
31
- * Create a benchmark comparison for a specific metric
32
- */
33
- private createBenchmarkComparison;
34
- /**
35
- * Determine performance status based on thresholds
36
- */
37
- private determineStatus;
38
- /**
39
- * Calculate percentile ranking
40
- */
41
- private calculatePercentile;
42
- /**
43
- * Get the benchmark value for a given status
44
- */
45
- private getBenchmarkValue;
46
- /**
47
- * Calculate improvement needed to reach next tier
48
- */
49
- private calculateImprovement;
50
- /**
51
- * Generate benchmark report
52
- */
53
- generateBenchmarkReport(comparisons: BenchmarkComparison[]): string;
54
- /**
55
- * Get emoji for performance status
56
- */
57
- private getStatusEmoji;
58
- /**
59
- * Get recommendations based on benchmark results
60
- */
61
- getRecommendations(comparisons: BenchmarkComparison[]): string[];
62
- /**
63
- * Get specific recommendations for a metric
64
- */
65
- private getMetricRecommendations;
66
- }
67
- //# sourceMappingURL=BenchmarkAnalyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BenchmarkAnalyzer.d.ts","sourceRoot":"","sources":["../../src/performance/BenchmarkAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,MAAM,CAAC;IACpE,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAE5B,OAAO,CAAC,UAAU,CAoChB;IAEF;;OAEG;IACI,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,GAAG,mBAAmB,EAAE;IAyD9E;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsBjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAkC5B;;OAEG;IACI,uBAAuB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,MAAM;IA6C1E;;OAEG;IACH,OAAO,CAAC,cAAc;IAWtB;;OAEG;IACI,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,EAAE,GAAG,MAAM,EAAE;IAYvE;;OAEG;IACH,OAAO,CAAC,wBAAwB;CAkDjC"}
@@ -1,301 +0,0 @@
1
- /**
2
- * Benchmark Analysis for Performance Metrics
3
- * Compares current performance against industry standards
4
- */
5
- /**
6
- * Analyzes performance against industry benchmarks
7
- */
8
- export class BenchmarkAnalyzer {
9
- // Performance benchmarks (based on industry standards)
10
- benchmarks = {
11
- responseTime: {
12
- excellent: 200, // <200ms
13
- good: 500, // 200-500ms
14
- average: 1000, // 500ms-1s
15
- below_average: 2000, // 1-2s
16
- poor: Infinity // >2s
17
- },
18
- cacheHitRate: {
19
- excellent: 0.95, // >95%
20
- good: 0.85, // 85-95%
21
- average: 0.70, // 70-85%
22
- below_average: 0.50, // 50-70%
23
- poor: 0 // <50%
24
- },
25
- errorRate: {
26
- excellent: 0.001, // <0.1%
27
- good: 0.01, // 0.1-1%
28
- average: 0.02, // 1-2%
29
- below_average: 0.05, // 2-5%
30
- poor: Infinity // >5%
31
- },
32
- memoryUsage: {
33
- excellent: 50, // <50%
34
- good: 70, // 50-70%
35
- average: 80, // 70-80%
36
- below_average: 90, // 80-90%
37
- poor: 100 // >90%
38
- },
39
- throughput: {
40
- excellent: 1000, // >1000 req/s
41
- good: 500, // 500-1000 req/s
42
- average: 100, // 100-500 req/s
43
- below_average: 50, // 50-100 req/s
44
- poor: 0 // <50 req/s
45
- }
46
- };
47
- /**
48
- * Compare current metrics against benchmarks
49
- */
50
- compareToBenchmarks(metrics) {
51
- const comparisons = [];
52
- // Response Time
53
- if (metrics.requests?.averageResponseTime !== undefined) {
54
- comparisons.push(this.createBenchmarkComparison('responseTime', 'Response Time', metrics.requests.averageResponseTime, false // Lower is better
55
- ));
56
- }
57
- // Cache Hit Rate
58
- if (metrics.cache?.hitRate !== undefined) {
59
- comparisons.push(this.createBenchmarkComparison('cacheHitRate', 'Cache Hit Rate', metrics.cache.hitRate, true // Higher is better
60
- ));
61
- }
62
- // Error Rate
63
- if (metrics.requests?.total && metrics.requests.total > 0) {
64
- const errorRate = metrics.requests.failed / metrics.requests.total;
65
- comparisons.push(this.createBenchmarkComparison('errorRate', 'Error Rate', errorRate, false // Lower is better
66
- ));
67
- }
68
- // Memory Usage
69
- if (metrics.system?.memoryUsage !== undefined) {
70
- comparisons.push(this.createBenchmarkComparison('memoryUsage', 'Memory Usage', metrics.system.memoryUsage, false // Lower is better
71
- ));
72
- }
73
- // Throughput
74
- if (metrics.requests?.requestsPerSecond !== undefined) {
75
- comparisons.push(this.createBenchmarkComparison('throughput', 'Throughput', metrics.requests.requestsPerSecond, true // Higher is better
76
- ));
77
- }
78
- return comparisons;
79
- }
80
- /**
81
- * Create a benchmark comparison for a specific metric
82
- */
83
- createBenchmarkComparison(metricKey, category, currentValue, higherIsBetter) {
84
- const thresholds = this.benchmarks[metricKey];
85
- const status = this.determineStatus(currentValue, thresholds, higherIsBetter);
86
- const percentile = this.calculatePercentile(currentValue, thresholds, higherIsBetter);
87
- const benchmarkValue = this.getBenchmarkValue(status, thresholds);
88
- const improvement = this.calculateImprovement(currentValue, status, thresholds, higherIsBetter);
89
- return {
90
- category,
91
- currentValue,
92
- benchmarkValue,
93
- percentile,
94
- status,
95
- improvement
96
- };
97
- }
98
- /**
99
- * Determine performance status based on thresholds
100
- */
101
- determineStatus(value, thresholds, higherIsBetter) {
102
- if (higherIsBetter) {
103
- if (value >= thresholds.excellent)
104
- return 'excellent';
105
- if (value >= thresholds.good)
106
- return 'good';
107
- if (value >= thresholds.average)
108
- return 'average';
109
- if (value >= thresholds.below_average)
110
- return 'below_average';
111
- return 'poor';
112
- }
113
- else {
114
- if (value <= thresholds.excellent)
115
- return 'excellent';
116
- if (value <= thresholds.good)
117
- return 'good';
118
- if (value <= thresholds.average)
119
- return 'average';
120
- if (value <= thresholds.below_average)
121
- return 'below_average';
122
- return 'poor';
123
- }
124
- }
125
- /**
126
- * Calculate percentile ranking
127
- */
128
- calculatePercentile(value, thresholds, higherIsBetter) {
129
- const values = [
130
- thresholds.poor,
131
- thresholds.below_average,
132
- thresholds.average,
133
- thresholds.good,
134
- thresholds.excellent
135
- ];
136
- if (higherIsBetter) {
137
- values.reverse();
138
- }
139
- // Find position in sorted array
140
- let position = 0;
141
- for (let i = 0; i < values.length; i++) {
142
- if (higherIsBetter ? value >= values[i] : value <= values[i]) {
143
- position = i + 1;
144
- }
145
- }
146
- return Math.round((position / values.length) * 100);
147
- }
148
- /**
149
- * Get the benchmark value for a given status
150
- */
151
- getBenchmarkValue(status, thresholds) {
152
- switch (status) {
153
- case 'excellent': return thresholds.excellent;
154
- case 'good': return thresholds.good;
155
- case 'average': return thresholds.average;
156
- case 'below_average': return thresholds.below_average;
157
- case 'poor': return thresholds.poor === Infinity ? thresholds.below_average * 2 : thresholds.poor;
158
- default: return thresholds.average;
159
- }
160
- }
161
- /**
162
- * Calculate improvement needed to reach next tier
163
- */
164
- calculateImprovement(currentValue, status, thresholds, higherIsBetter) {
165
- let targetValue;
166
- switch (status) {
167
- case 'poor':
168
- targetValue = thresholds.below_average;
169
- break;
170
- case 'below_average':
171
- targetValue = thresholds.average;
172
- break;
173
- case 'average':
174
- targetValue = thresholds.good;
175
- break;
176
- case 'good':
177
- targetValue = thresholds.excellent;
178
- break;
179
- case 'excellent':
180
- return 0; // Already at top tier
181
- default:
182
- targetValue = thresholds.good;
183
- }
184
- if (higherIsBetter) {
185
- return Math.max(0, targetValue - currentValue);
186
- }
187
- else {
188
- return Math.max(0, currentValue - targetValue);
189
- }
190
- }
191
- /**
192
- * Generate benchmark report
193
- */
194
- generateBenchmarkReport(comparisons) {
195
- if (comparisons.length === 0) {
196
- return 'No benchmark data available.';
197
- }
198
- const report = ['📊 Performance Benchmark Analysis\n'];
199
- for (const comparison of comparisons) {
200
- const statusEmoji = this.getStatusEmoji(comparison.status);
201
- const improvementText = comparison.improvement > 0
202
- ? ` (${comparison.improvement.toFixed(2)} improvement needed)`
203
- : ' (optimal)';
204
- report.push(`${statusEmoji} ${comparison.category}: ${comparison.status.toUpperCase()}`, ` Current: ${comparison.currentValue.toFixed(2)}`, ` Benchmark: ${comparison.benchmarkValue.toFixed(2)}`, ` Percentile: ${comparison.percentile}th${improvementText}`, '');
205
- }
206
- // Add overall assessment
207
- const excellentCount = comparisons.filter(c => c.status === 'excellent').length;
208
- const goodCount = comparisons.filter(c => c.status === 'good').length;
209
- const avgCount = comparisons.filter(c => c.status === 'average').length;
210
- const belowCount = comparisons.filter(c => c.status === 'below_average').length;
211
- const poorCount = comparisons.filter(c => c.status === 'poor').length;
212
- let overallAssessment = '';
213
- if (excellentCount + goodCount >= comparisons.length * 0.8) {
214
- overallAssessment = '🎉 Overall Performance: EXCELLENT - Your system is performing very well!';
215
- }
216
- else if (excellentCount + goodCount + avgCount >= comparisons.length * 0.7) {
217
- overallAssessment = '✅ Overall Performance: GOOD - Most metrics are performing adequately.';
218
- }
219
- else if (belowCount + poorCount >= comparisons.length * 0.5) {
220
- overallAssessment = '⚠️ Overall Performance: NEEDS ATTENTION - Several metrics require optimization.';
221
- }
222
- else {
223
- overallAssessment = '🔧 Overall Performance: AVERAGE - Room for improvement in key areas.';
224
- }
225
- report.push(overallAssessment);
226
- return report.join('\n');
227
- }
228
- /**
229
- * Get emoji for performance status
230
- */
231
- getStatusEmoji(status) {
232
- switch (status) {
233
- case 'excellent': return '🟢';
234
- case 'good': return '🔵';
235
- case 'average': return '🟡';
236
- case 'below_average': return '🟠';
237
- case 'poor': return '🔴';
238
- default: return '⚪';
239
- }
240
- }
241
- /**
242
- * Get recommendations based on benchmark results
243
- */
244
- getRecommendations(comparisons) {
245
- const recommendations = [];
246
- for (const comparison of comparisons) {
247
- if (comparison.status === 'poor' || comparison.status === 'below_average') {
248
- recommendations.push(...this.getMetricRecommendations(comparison));
249
- }
250
- }
251
- return recommendations;
252
- }
253
- /**
254
- * Get specific recommendations for a metric
255
- */
256
- getMetricRecommendations(comparison) {
257
- const category = comparison.category.toLowerCase();
258
- if (category.includes('response time')) {
259
- return [
260
- 'Optimize database queries and add proper indexing',
261
- 'Implement or improve caching strategies',
262
- 'Consider using a CDN for static assets',
263
- 'Optimize WordPress plugins and themes'
264
- ];
265
- }
266
- if (category.includes('cache hit rate')) {
267
- return [
268
- 'Review cache configuration and increase cache size',
269
- 'Implement better cache warming strategies',
270
- 'Optimize cache key design and expiration policies',
271
- 'Consider implementing multiple cache layers'
272
- ];
273
- }
274
- if (category.includes('error rate')) {
275
- return [
276
- 'Review application logs and fix recurring errors',
277
- 'Implement better error handling and recovery',
278
- 'Monitor external service dependencies',
279
- 'Add health checks and monitoring alerts'
280
- ];
281
- }
282
- if (category.includes('memory usage')) {
283
- return [
284
- 'Identify and fix memory leaks',
285
- 'Optimize data structures and algorithms',
286
- 'Implement proper garbage collection strategies',
287
- 'Consider increasing available memory resources'
288
- ];
289
- }
290
- if (category.includes('throughput')) {
291
- return [
292
- 'Scale horizontally with load balancing',
293
- 'Optimize application performance and reduce overhead',
294
- 'Implement connection pooling and async processing',
295
- 'Consider upgrading hardware resources'
296
- ];
297
- }
298
- return ['Review and optimize this metric based on specific requirements'];
299
- }
300
- }
301
- //# sourceMappingURL=BenchmarkAnalyzer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BenchmarkAnalyzer.js","sourceRoot":"","sources":["../../src/performance/BenchmarkAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -1,69 +0,0 @@
1
- /**
2
- * Trend Analysis for Performance Metrics
3
- * Analyzes performance trends and makes predictions
4
- */
5
- import { PerformanceMetrics } from './PerformanceMonitor.js';
6
- export interface PerformanceTrend {
7
- metric: string;
8
- direction: 'improving' | 'declining' | 'stable';
9
- changeRate: number;
10
- confidence: number;
11
- prediction: {
12
- nextValue: number;
13
- timeframe: number;
14
- confidence: number;
15
- };
16
- }
17
- export interface TrendAnalysisConfig {
18
- enablePredictiveAnalysis: boolean;
19
- lookbackPeriod: number;
20
- predictionTimeframe: number;
21
- }
22
- /**
23
- * Analyzes performance trends using linear regression and statistical analysis
24
- */
25
- export declare class TrendAnalyzer {
26
- private config;
27
- constructor(config: TrendAnalysisConfig);
28
- /**
29
- * Analyze trends in historical performance data
30
- */
31
- analyzeTrends(historicalData: PerformanceMetrics[]): PerformanceTrend[];
32
- /**
33
- * Analyze trend for a specific metric
34
- */
35
- private analyzeMetricTrend;
36
- /**
37
- * Extract time series data for a specific metric
38
- */
39
- private extractMetricTimeSeries;
40
- /**
41
- * Extract metric value from performance metrics object
42
- */
43
- private extractMetricValue;
44
- /**
45
- * Calculate linear regression for trend analysis
46
- */
47
- private calculateLinearRegression;
48
- /**
49
- * Determine trend direction based on slope and metric type
50
- */
51
- private determineTrendDirection;
52
- /**
53
- * Calculate percentage change rate over the analysis period
54
- */
55
- private calculateChangeRate;
56
- /**
57
- * Calculate confidence level based on R-squared and data consistency
58
- */
59
- private calculateConfidence;
60
- /**
61
- * Make prediction for future metric value
62
- */
63
- private makePrediction;
64
- /**
65
- * Generate trend summary for reporting
66
- */
67
- generateTrendSummary(trends: PerformanceTrend[]): string;
68
- }
69
- //# sourceMappingURL=TrendAnalyzer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TrendAnalyzer.d.ts","sourceRoot":"","sources":["../../src/performance/TrendAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,QAAQ,CAAC;IAChD,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,wBAAwB,EAAE,OAAO,CAAC;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,mBAAmB,EAAE,MAAM,CAAC;CAC7B;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAsB;gBAExB,MAAM,EAAE,mBAAmB;IAIvC;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,kBAAkB,EAAE,GAAG,gBAAgB,EAAE;IAwB9E;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA8B1B;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAc/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAmB1B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAyBjC;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAa3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA4B3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAoBtB;;OAEG;IACI,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM;CAehE"}
@@ -1,203 +0,0 @@
1
- /**
2
- * Trend Analysis for Performance Metrics
3
- * Analyzes performance trends and makes predictions
4
- */
5
- /**
6
- * Analyzes performance trends using linear regression and statistical analysis
7
- */
8
- export class TrendAnalyzer {
9
- config;
10
- constructor(config) {
11
- this.config = config;
12
- }
13
- /**
14
- * Analyze trends in historical performance data
15
- */
16
- analyzeTrends(historicalData) {
17
- if (historicalData.length < 3) {
18
- return []; // Need sufficient data for trend analysis
19
- }
20
- const trends = [];
21
- const metricsToAnalyze = [
22
- 'responseTime',
23
- 'memoryUsage',
24
- 'cacheHitRate',
25
- 'errorRate',
26
- 'throughput'
27
- ];
28
- for (const metricName of metricsToAnalyze) {
29
- const trend = this.analyzeMetricTrend(metricName, historicalData);
30
- if (trend) {
31
- trends.push(trend);
32
- }
33
- }
34
- return trends;
35
- }
36
- /**
37
- * Analyze trend for a specific metric
38
- */
39
- analyzeMetricTrend(metricName, historicalData) {
40
- const dataPoints = this.extractMetricTimeSeries(metricName, historicalData);
41
- if (dataPoints.length < 3)
42
- return null;
43
- const regression = this.calculateLinearRegression(dataPoints);
44
- const direction = this.determineTrendDirection(regression.slope, metricName);
45
- const changeRate = this.calculateChangeRate(dataPoints);
46
- const confidence = this.calculateConfidence(dataPoints, regression);
47
- let prediction = null;
48
- if (this.config.enablePredictiveAnalysis) {
49
- prediction = this.makePrediction(regression, dataPoints, this.config.predictionTimeframe);
50
- }
51
- return {
52
- metric: metricName,
53
- direction,
54
- changeRate,
55
- confidence,
56
- prediction: prediction || {
57
- nextValue: 0,
58
- timeframe: 0,
59
- confidence: 0
60
- }
61
- };
62
- }
63
- /**
64
- * Extract time series data for a specific metric
65
- */
66
- extractMetricTimeSeries(metricName, data) {
67
- return data
68
- .map((metrics, index) => {
69
- const value = this.extractMetricValue(metricName, metrics);
70
- // Use index-based timestamp if timestamp not available
71
- const timestamp = Date.now() - (data.length - index) * 60000; // 1 minute intervals
72
- return value !== null ? { timestamp, value } : null;
73
- })
74
- .filter(point => point !== null);
75
- }
76
- /**
77
- * Extract metric value from performance metrics object
78
- */
79
- extractMetricValue(metricName, metrics) {
80
- switch (metricName) {
81
- case 'responseTime':
82
- return metrics.requests?.averageResponseTime || null;
83
- case 'memoryUsage':
84
- return metrics.system?.memoryUsage || null;
85
- case 'cacheHitRate':
86
- return metrics.cache?.hitRate || null;
87
- case 'errorRate':
88
- return metrics.requests?.total > 0
89
- ? metrics.requests.failed / metrics.requests.total
90
- : null;
91
- case 'throughput':
92
- return metrics.requests?.requestsPerSecond || null;
93
- default:
94
- return null;
95
- }
96
- }
97
- /**
98
- * Calculate linear regression for trend analysis
99
- */
100
- calculateLinearRegression(dataPoints) {
101
- const n = dataPoints.length;
102
- const sumX = dataPoints.reduce((sum, point) => sum + point.timestamp, 0);
103
- const sumY = dataPoints.reduce((sum, point) => sum + point.value, 0);
104
- const sumXY = dataPoints.reduce((sum, point) => sum + point.timestamp * point.value, 0);
105
- const sumXX = dataPoints.reduce((sum, point) => sum + point.timestamp * point.timestamp, 0);
106
- const sumYY = dataPoints.reduce((sum, point) => sum + point.value * point.value, 0);
107
- const slope = (n * sumXY - sumX * sumY) / (n * sumXX - sumX * sumX);
108
- const intercept = (sumY - slope * sumX) / n;
109
- // Calculate R-squared
110
- const meanY = sumY / n;
111
- const ssTotal = dataPoints.reduce((sum, point) => sum + Math.pow(point.value - meanY, 2), 0);
112
- const ssResidual = dataPoints.reduce((sum, point) => {
113
- const predicted = slope * point.timestamp + intercept;
114
- return sum + Math.pow(point.value - predicted, 2);
115
- }, 0);
116
- const rSquared = 1 - (ssResidual / ssTotal);
117
- return { slope, intercept, rSquared };
118
- }
119
- /**
120
- * Determine trend direction based on slope and metric type
121
- */
122
- determineTrendDirection(slope, metricName) {
123
- const isPositiveGood = ['cacheHitRate', 'throughput'].includes(metricName);
124
- const threshold = 0.001; // Minimal slope threshold
125
- if (Math.abs(slope) < threshold) {
126
- return 'stable';
127
- }
128
- if (isPositiveGood) {
129
- return slope > 0 ? 'improving' : 'declining';
130
- }
131
- else {
132
- return slope > 0 ? 'declining' : 'improving';
133
- }
134
- }
135
- /**
136
- * Calculate percentage change rate over the analysis period
137
- */
138
- calculateChangeRate(dataPoints) {
139
- if (dataPoints.length < 2)
140
- return 0;
141
- const firstValue = dataPoints[0].value;
142
- const lastValue = dataPoints[dataPoints.length - 1].value;
143
- if (firstValue === 0)
144
- return 0;
145
- return ((lastValue - firstValue) / firstValue) * 100;
146
- }
147
- /**
148
- * Calculate confidence level based on R-squared and data consistency
149
- */
150
- calculateConfidence(dataPoints, regression) {
151
- // Base confidence on R-squared value
152
- let confidence = Math.max(0, Math.min(1, regression.rSquared));
153
- // Adjust based on data points count
154
- if (dataPoints.length < 5) {
155
- confidence *= 0.7; // Reduce confidence for small datasets
156
- }
157
- else if (dataPoints.length > 20) {
158
- confidence *= 1.1; // Slight boost for larger datasets
159
- confidence = Math.min(1, confidence);
160
- }
161
- // Adjust based on data variance
162
- const values = dataPoints.map(p => p.value);
163
- const mean = values.reduce((sum, val) => sum + val, 0) / values.length;
164
- const variance = values.reduce((sum, val) => sum + Math.pow(val - mean, 2), 0) / values.length;
165
- const coefficientOfVariation = Math.sqrt(variance) / mean;
166
- if (coefficientOfVariation > 0.5) {
167
- confidence *= 0.8; // Reduce confidence for highly variable data
168
- }
169
- return Math.max(0, Math.min(1, confidence));
170
- }
171
- /**
172
- * Make prediction for future metric value
173
- */
174
- makePrediction(regression, dataPoints, timeframe) {
175
- const lastTimestamp = dataPoints[dataPoints.length - 1].timestamp;
176
- const futureTimestamp = lastTimestamp + timeframe;
177
- const predictedValue = regression.slope * futureTimestamp + regression.intercept;
178
- // Calculate prediction confidence (decreases with distance)
179
- const timeFactor = Math.exp(-timeframe / (7 * 24 * 60 * 60 * 1000)); // Decay over week
180
- const confidence = Math.max(0.1, timeFactor);
181
- return {
182
- nextValue: Math.max(0, predictedValue), // Ensure non-negative predictions
183
- timeframe,
184
- confidence
185
- };
186
- }
187
- /**
188
- * Generate trend summary for reporting
189
- */
190
- generateTrendSummary(trends) {
191
- if (trends.length === 0) {
192
- return 'Insufficient data for trend analysis.';
193
- }
194
- const summary = trends.map(trend => {
195
- const direction = trend.direction === 'improving' ? '📈' :
196
- trend.direction === 'declining' ? '📉' : '➡️';
197
- const confidence = Math.round(trend.confidence * 100);
198
- return `${direction} ${trend.metric}: ${trend.direction} (${trend.changeRate.toFixed(1)}% change, ${confidence}% confidence)`;
199
- }).join('\n');
200
- return `Performance Trends:\n${summary}`;
201
- }
202
- }
203
- //# sourceMappingURL=TrendAnalyzer.js.map