mcp-wordpress 2.4.2 → 2.5.1

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 (653) hide show
  1. package/README.md +124 -54
  2. package/bin/status.js +1 -1
  3. package/dist/cache/CacheInvalidation.d.ts +3 -1
  4. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  5. package/dist/cache/CacheInvalidation.js +10 -4
  6. package/dist/cache/CacheInvalidation.js.map +1 -1
  7. package/dist/cache/CacheManager.d.ts +3 -2
  8. package/dist/cache/CacheManager.d.ts.map +1 -1
  9. package/dist/cache/CacheManager.js +11 -3
  10. package/dist/cache/CacheManager.js.map +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts +7 -6
  12. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  13. package/dist/cache/HttpCacheWrapper.js +8 -5
  14. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  15. package/dist/cache/index.d.ts +3 -3
  16. package/dist/cache/index.d.ts.map +1 -1
  17. package/dist/cache/index.js +1 -1
  18. package/dist/cache/index.js.map +1 -1
  19. package/dist/client/CachedWordPressClient.d.ts +23 -9
  20. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  21. package/dist/client/CachedWordPressClient.js +4 -1
  22. package/dist/client/CachedWordPressClient.js.map +1 -1
  23. package/dist/client/MockWordPressClient.d.ts +2 -1
  24. package/dist/client/MockWordPressClient.d.ts.map +1 -1
  25. package/dist/client/MockWordPressClient.js +3 -1
  26. package/dist/client/MockWordPressClient.js.map +1 -1
  27. package/dist/client/api.d.ts +17 -13
  28. package/dist/client/api.d.ts.map +1 -1
  29. package/dist/client/api.js +135 -30
  30. package/dist/client/api.js.map +1 -1
  31. package/dist/client/auth.d.ts.map +1 -1
  32. package/dist/client/auth.js +2 -3
  33. package/dist/client/auth.js.map +1 -1
  34. package/dist/client/managers/AuthenticationManager.d.ts +55 -2
  35. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  36. package/dist/client/managers/AuthenticationManager.js +269 -71
  37. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  38. package/dist/client/managers/BaseManager.d.ts +3 -3
  39. package/dist/client/managers/BaseManager.d.ts.map +1 -1
  40. package/dist/client/managers/BaseManager.js +11 -5
  41. package/dist/client/managers/BaseManager.js.map +1 -1
  42. package/dist/client/managers/RequestManager.d.ts +2 -2
  43. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  44. package/dist/client/managers/RequestManager.js +25 -12
  45. package/dist/client/managers/RequestManager.js.map +1 -1
  46. package/dist/config/Config.d.ts +155 -0
  47. package/dist/config/Config.d.ts.map +1 -0
  48. package/dist/config/Config.js +215 -0
  49. package/dist/config/Config.js.map +1 -0
  50. package/dist/config/ConfigurationSchema.d.ts +21 -21
  51. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  52. package/dist/config/ConfigurationSchema.js +19 -2
  53. package/dist/config/ConfigurationSchema.js.map +1 -1
  54. package/dist/config/ServerConfiguration.d.ts +2 -1
  55. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  56. package/dist/config/ServerConfiguration.js +73 -43
  57. package/dist/config/ServerConfiguration.js.map +1 -1
  58. package/dist/docs/DocumentationGenerator.d.ts +9 -8
  59. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  60. package/dist/docs/DocumentationGenerator.js +10 -7
  61. package/dist/docs/DocumentationGenerator.js.map +1 -1
  62. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  63. package/dist/docs/MarkdownFormatter.js +3 -2
  64. package/dist/docs/MarkdownFormatter.js.map +1 -1
  65. package/dist/dxt-entry.js +15 -14
  66. package/dist/dxt-entry.js.map +1 -1
  67. package/dist/index.d.ts +3 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +37 -21
  70. package/dist/index.js.map +1 -1
  71. package/dist/performance/MetricsCollector.d.ts +13 -7
  72. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  73. package/dist/performance/MetricsCollector.js +69 -27
  74. package/dist/performance/MetricsCollector.js.map +1 -1
  75. package/dist/performance/PerformanceAnalytics.d.ts +8 -2
  76. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  77. package/dist/performance/PerformanceAnalytics.js +17 -47
  78. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  79. package/dist/performance/PerformanceMonitor.d.ts +2 -1
  80. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  81. package/dist/performance/PerformanceMonitor.js +12 -13
  82. package/dist/performance/PerformanceMonitor.js.map +1 -1
  83. package/dist/performance/index.d.ts +2 -2
  84. package/dist/performance/index.d.ts.map +1 -1
  85. package/dist/security/AISecurityScanner.d.ts +1 -0
  86. package/dist/security/AISecurityScanner.d.ts.map +1 -1
  87. package/dist/security/AISecurityScanner.js +22 -12
  88. package/dist/security/AISecurityScanner.js.map +1 -1
  89. package/dist/security/AutomatedRemediation.d.ts +4 -3
  90. package/dist/security/AutomatedRemediation.d.ts.map +1 -1
  91. package/dist/security/AutomatedRemediation.js +46 -15
  92. package/dist/security/AutomatedRemediation.js.map +1 -1
  93. package/dist/security/InputValidator.d.ts +13 -9
  94. package/dist/security/InputValidator.d.ts.map +1 -1
  95. package/dist/security/InputValidator.js +4 -2
  96. package/dist/security/InputValidator.js.map +1 -1
  97. package/dist/security/SecurityCIPipeline.d.ts +1 -1
  98. package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
  99. package/dist/security/SecurityCIPipeline.js +38 -29
  100. package/dist/security/SecurityCIPipeline.js.map +1 -1
  101. package/dist/security/SecurityConfig.d.ts +3 -3
  102. package/dist/security/SecurityConfig.d.ts.map +1 -1
  103. package/dist/security/SecurityConfig.js +13 -9
  104. package/dist/security/SecurityConfig.js.map +1 -1
  105. package/dist/security/SecurityConfigManager.d.ts +2 -2
  106. package/dist/security/SecurityConfigManager.d.ts.map +1 -1
  107. package/dist/security/SecurityConfigManager.js +20 -15
  108. package/dist/security/SecurityConfigManager.js.map +1 -1
  109. package/dist/security/SecurityMonitoring.d.ts +2 -2
  110. package/dist/security/SecurityMonitoring.d.ts.map +1 -1
  111. package/dist/security/SecurityMonitoring.js +19 -17
  112. package/dist/security/SecurityMonitoring.js.map +1 -1
  113. package/dist/security/SecurityReviewer.d.ts.map +1 -1
  114. package/dist/security/SecurityReviewer.js +10 -7
  115. package/dist/security/SecurityReviewer.js.map +1 -1
  116. package/dist/security/index.d.ts +24 -23
  117. package/dist/security/index.d.ts.map +1 -1
  118. package/dist/security/index.js +52 -23
  119. package/dist/security/index.js.map +1 -1
  120. package/dist/server/ConnectionTester.d.ts +12 -4
  121. package/dist/server/ConnectionTester.d.ts.map +1 -1
  122. package/dist/server/ConnectionTester.js +96 -22
  123. package/dist/server/ConnectionTester.js.map +1 -1
  124. package/dist/server/ToolRegistry.d.ts +2 -2
  125. package/dist/server/ToolRegistry.d.ts.map +1 -1
  126. package/dist/server/ToolRegistry.js +10 -5
  127. package/dist/server/ToolRegistry.js.map +1 -1
  128. package/dist/src/cache/CacheInvalidation.d.ts +120 -0
  129. package/dist/src/cache/CacheInvalidation.d.ts.map +1 -0
  130. package/dist/src/cache/CacheInvalidation.js +355 -0
  131. package/dist/src/cache/CacheInvalidation.js.map +1 -0
  132. package/dist/src/cache/CacheManager.d.ts +149 -0
  133. package/dist/src/cache/CacheManager.d.ts.map +1 -0
  134. package/dist/src/cache/CacheManager.js +326 -0
  135. package/dist/src/cache/CacheManager.js.map +1 -0
  136. package/dist/src/cache/HttpCacheWrapper.d.ts +122 -0
  137. package/dist/src/cache/HttpCacheWrapper.d.ts.map +1 -0
  138. package/dist/src/cache/HttpCacheWrapper.js +283 -0
  139. package/dist/src/cache/HttpCacheWrapper.js.map +1 -0
  140. package/dist/src/cache/index.d.ts +12 -0
  141. package/dist/src/cache/index.d.ts.map +1 -0
  142. package/dist/src/cache/index.js +9 -0
  143. package/dist/src/cache/index.js.map +1 -0
  144. package/dist/src/client/CachedWordPressClient.d.ts +174 -0
  145. package/dist/src/client/CachedWordPressClient.d.ts.map +1 -0
  146. package/dist/src/client/CachedWordPressClient.js +345 -0
  147. package/dist/src/client/CachedWordPressClient.js.map +1 -0
  148. package/dist/src/client/MockWordPressClient.d.ts +56 -0
  149. package/dist/src/client/MockWordPressClient.d.ts.map +1 -0
  150. package/dist/src/client/MockWordPressClient.js +371 -0
  151. package/dist/src/client/MockWordPressClient.js.map +1 -0
  152. package/dist/src/client/api.d.ts +235 -0
  153. package/dist/src/client/api.d.ts.map +1 -0
  154. package/dist/src/client/api.js +896 -0
  155. package/dist/src/client/api.js.map +1 -0
  156. package/dist/src/client/auth.d.ts +121 -0
  157. package/dist/src/client/auth.d.ts.map +1 -0
  158. package/dist/src/client/auth.js +429 -0
  159. package/dist/src/client/auth.js.map +1 -0
  160. package/dist/src/client/managers/AuthenticationManager.d.ts +92 -0
  161. package/dist/src/client/managers/AuthenticationManager.d.ts.map +1 -0
  162. package/dist/src/client/managers/AuthenticationManager.js +369 -0
  163. package/dist/src/client/managers/AuthenticationManager.js.map +1 -0
  164. package/dist/src/client/managers/BaseManager.d.ts +22 -0
  165. package/dist/src/client/managers/BaseManager.d.ts.map +1 -0
  166. package/dist/src/client/managers/BaseManager.js +53 -0
  167. package/dist/src/client/managers/BaseManager.js.map +1 -0
  168. package/dist/src/client/managers/RequestManager.d.ts +47 -0
  169. package/dist/src/client/managers/RequestManager.d.ts.map +1 -0
  170. package/dist/src/client/managers/RequestManager.js +193 -0
  171. package/dist/src/client/managers/RequestManager.js.map +1 -0
  172. package/dist/src/client/managers/index.d.ts +8 -0
  173. package/dist/src/client/managers/index.d.ts.map +1 -0
  174. package/dist/src/client/managers/index.js +8 -0
  175. package/dist/src/client/managers/index.js.map +1 -0
  176. package/dist/src/config/Config.d.ts +155 -0
  177. package/dist/src/config/Config.d.ts.map +1 -0
  178. package/dist/src/config/Config.js +215 -0
  179. package/dist/src/config/Config.js.map +1 -0
  180. package/dist/src/config/ConfigurationSchema.d.ts +281 -0
  181. package/dist/src/config/ConfigurationSchema.d.ts.map +1 -0
  182. package/dist/src/config/ConfigurationSchema.js +205 -0
  183. package/dist/src/config/ConfigurationSchema.js.map +1 -0
  184. package/dist/src/config/ServerConfiguration.d.ts +47 -0
  185. package/dist/src/config/ServerConfiguration.d.ts.map +1 -0
  186. package/dist/src/config/ServerConfiguration.js +255 -0
  187. package/dist/src/config/ServerConfiguration.js.map +1 -0
  188. package/dist/src/docs/DocumentationGenerator.d.ts +185 -0
  189. package/dist/src/docs/DocumentationGenerator.d.ts.map +1 -0
  190. package/dist/src/docs/DocumentationGenerator.js +777 -0
  191. package/dist/src/docs/DocumentationGenerator.js.map +1 -0
  192. package/dist/src/docs/MarkdownFormatter.d.ts +84 -0
  193. package/dist/src/docs/MarkdownFormatter.d.ts.map +1 -0
  194. package/dist/src/docs/MarkdownFormatter.js +458 -0
  195. package/dist/src/docs/MarkdownFormatter.js.map +1 -0
  196. package/dist/src/docs/index.d.ts +8 -0
  197. package/dist/src/docs/index.d.ts.map +1 -0
  198. package/dist/src/docs/index.js +7 -0
  199. package/dist/src/docs/index.js.map +1 -0
  200. package/dist/src/dxt-entry.d.ts +6 -0
  201. package/dist/src/dxt-entry.d.ts.map +1 -0
  202. package/dist/src/dxt-entry.js +39 -0
  203. package/dist/src/dxt-entry.js.map +1 -0
  204. package/dist/src/index.d.ts +18 -0
  205. package/dist/src/index.d.ts.map +1 -0
  206. package/dist/src/index.js +143 -0
  207. package/dist/src/index.js.map +1 -0
  208. package/dist/src/performance/MetricsCollector.d.ts +145 -0
  209. package/dist/src/performance/MetricsCollector.d.ts.map +1 -0
  210. package/dist/src/performance/MetricsCollector.js +368 -0
  211. package/dist/src/performance/MetricsCollector.js.map +1 -0
  212. package/dist/src/performance/PerformanceAnalytics.d.ts +168 -0
  213. package/dist/src/performance/PerformanceAnalytics.d.ts.map +1 -0
  214. package/dist/src/performance/PerformanceAnalytics.js +570 -0
  215. package/dist/src/performance/PerformanceAnalytics.js.map +1 -0
  216. package/dist/src/performance/PerformanceMonitor.d.ts +203 -0
  217. package/dist/src/performance/PerformanceMonitor.d.ts.map +1 -0
  218. package/dist/src/performance/PerformanceMonitor.js +478 -0
  219. package/dist/src/performance/PerformanceMonitor.js.map +1 -0
  220. package/dist/src/performance/index.d.ts +11 -0
  221. package/dist/src/performance/index.d.ts.map +1 -0
  222. package/dist/src/performance/index.js +8 -0
  223. package/dist/src/performance/index.js.map +1 -0
  224. package/dist/src/security/AISecurityScanner.d.ts +176 -0
  225. package/dist/src/security/AISecurityScanner.d.ts.map +1 -0
  226. package/dist/src/security/AISecurityScanner.js +655 -0
  227. package/dist/src/security/AISecurityScanner.js.map +1 -0
  228. package/dist/src/security/AutomatedRemediation.d.ts +146 -0
  229. package/dist/src/security/AutomatedRemediation.d.ts.map +1 -0
  230. package/dist/src/security/AutomatedRemediation.js +566 -0
  231. package/dist/src/security/AutomatedRemediation.js.map +1 -0
  232. package/dist/src/security/InputValidator.d.ts +219 -0
  233. package/dist/src/security/InputValidator.d.ts.map +1 -0
  234. package/dist/src/security/InputValidator.js +295 -0
  235. package/dist/src/security/InputValidator.js.map +1 -0
  236. package/dist/src/security/SecurityCIPipeline.d.ts +213 -0
  237. package/dist/src/security/SecurityCIPipeline.d.ts.map +1 -0
  238. package/dist/src/security/SecurityCIPipeline.js +693 -0
  239. package/dist/src/security/SecurityCIPipeline.js.map +1 -0
  240. package/dist/src/security/SecurityConfig.d.ts +129 -0
  241. package/dist/src/security/SecurityConfig.d.ts.map +1 -0
  242. package/dist/src/security/SecurityConfig.js +266 -0
  243. package/dist/src/security/SecurityConfig.js.map +1 -0
  244. package/dist/src/security/SecurityConfigManager.d.ts +294 -0
  245. package/dist/src/security/SecurityConfigManager.d.ts.map +1 -0
  246. package/dist/src/security/SecurityConfigManager.js +558 -0
  247. package/dist/src/security/SecurityConfigManager.js.map +1 -0
  248. package/dist/src/security/SecurityMonitoring.d.ts +245 -0
  249. package/dist/src/security/SecurityMonitoring.d.ts.map +1 -0
  250. package/dist/src/security/SecurityMonitoring.js +598 -0
  251. package/dist/src/security/SecurityMonitoring.js.map +1 -0
  252. package/dist/src/security/SecurityReviewer.d.ts +168 -0
  253. package/dist/src/security/SecurityReviewer.d.ts.map +1 -0
  254. package/dist/src/security/SecurityReviewer.js +686 -0
  255. package/dist/src/security/SecurityReviewer.js.map +1 -0
  256. package/dist/src/security/index.d.ts +183 -0
  257. package/dist/src/security/index.d.ts.map +1 -0
  258. package/dist/src/security/index.js +218 -0
  259. package/dist/src/security/index.js.map +1 -0
  260. package/dist/src/server/ConnectionTester.d.ts +32 -0
  261. package/dist/src/server/ConnectionTester.d.ts.map +1 -0
  262. package/dist/src/server/ConnectionTester.js +135 -0
  263. package/dist/src/server/ConnectionTester.js.map +1 -0
  264. package/dist/src/server/ToolRegistry.d.ts +50 -0
  265. package/dist/src/server/ToolRegistry.d.ts.map +1 -0
  266. package/dist/src/server/ToolRegistry.js +219 -0
  267. package/dist/src/server/ToolRegistry.js.map +1 -0
  268. package/dist/src/server.d.ts +7 -0
  269. package/dist/src/server.d.ts.map +1 -0
  270. package/dist/src/server.js +7 -0
  271. package/dist/src/server.js.map +1 -0
  272. package/dist/src/tools/BaseToolManager.d.ts +62 -0
  273. package/dist/src/tools/BaseToolManager.d.ts.map +1 -0
  274. package/dist/src/tools/BaseToolManager.js +195 -0
  275. package/dist/src/tools/BaseToolManager.js.map +1 -0
  276. package/dist/src/tools/auth.d.ts +50 -0
  277. package/dist/src/tools/auth.d.ts.map +1 -0
  278. package/dist/src/tools/auth.js +133 -0
  279. package/dist/src/tools/auth.js.map +1 -0
  280. package/dist/src/tools/cache.d.ts +260 -0
  281. package/dist/src/tools/cache.d.ts.map +1 -0
  282. package/dist/src/tools/cache.js +232 -0
  283. package/dist/src/tools/cache.js.map +1 -0
  284. package/dist/src/tools/comments.d.ts +33 -0
  285. package/dist/src/tools/comments.d.ts.map +1 -0
  286. package/dist/src/tools/comments.js +235 -0
  287. package/dist/src/tools/comments.js.map +1 -0
  288. package/dist/src/tools/index.d.ts +11 -0
  289. package/dist/src/tools/index.d.ts.map +1 -0
  290. package/dist/src/tools/index.js +11 -0
  291. package/dist/src/tools/index.js.map +1 -0
  292. package/dist/src/tools/media.d.ts +70 -0
  293. package/dist/src/tools/media.d.ts.map +1 -0
  294. package/dist/src/tools/media.js +248 -0
  295. package/dist/src/tools/media.js.map +1 -0
  296. package/dist/src/tools/pages.d.ts +32 -0
  297. package/dist/src/tools/pages.d.ts.map +1 -0
  298. package/dist/src/tools/pages.js +215 -0
  299. package/dist/src/tools/pages.js.map +1 -0
  300. package/dist/src/tools/performance.d.ts +73 -0
  301. package/dist/src/tools/performance.d.ts.map +1 -0
  302. package/dist/src/tools/performance.js +922 -0
  303. package/dist/src/tools/performance.js.map +1 -0
  304. package/dist/src/tools/posts/PostHandlers.d.ts +46 -0
  305. package/dist/src/tools/posts/PostHandlers.d.ts.map +1 -0
  306. package/dist/src/tools/posts/PostHandlers.js +400 -0
  307. package/dist/src/tools/posts/PostHandlers.js.map +1 -0
  308. package/dist/src/tools/posts/PostToolDefinitions.d.ts +37 -0
  309. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  310. package/dist/src/tools/posts/PostToolDefinitions.js +236 -0
  311. package/dist/src/tools/posts/PostToolDefinitions.js.map +1 -0
  312. package/dist/src/tools/posts/index.d.ts +138 -0
  313. package/dist/src/tools/posts/index.d.ts.map +1 -0
  314. package/dist/src/tools/posts/index.js +163 -0
  315. package/dist/src/tools/posts/index.js.map +1 -0
  316. package/dist/src/tools/posts.d.ts +15 -0
  317. package/dist/src/tools/posts.d.ts.map +1 -0
  318. package/dist/src/tools/posts.js +16 -0
  319. package/dist/src/tools/posts.js.map +1 -0
  320. package/dist/src/tools/site.d.ts +32 -0
  321. package/dist/src/tools/site.d.ts.map +1 -0
  322. package/dist/src/tools/site.js +234 -0
  323. package/dist/src/tools/site.js.map +1 -0
  324. package/dist/src/tools/taxonomies.d.ts +36 -0
  325. package/dist/src/tools/taxonomies.d.ts.map +1 -0
  326. package/dist/src/tools/taxonomies.js +286 -0
  327. package/dist/src/tools/taxonomies.js.map +1 -0
  328. package/dist/src/tools/users.d.ts +33 -0
  329. package/dist/src/tools/users.d.ts.map +1 -0
  330. package/dist/src/tools/users.js +308 -0
  331. package/dist/src/tools/users.js.map +1 -0
  332. package/dist/src/types/client.d.ts +223 -0
  333. package/dist/src/types/client.d.ts.map +1 -0
  334. package/dist/src/types/client.js +97 -0
  335. package/dist/src/types/client.js.map +1 -0
  336. package/dist/src/types/enhanced.d.ts +237 -0
  337. package/dist/src/types/enhanced.d.ts.map +1 -0
  338. package/dist/src/types/enhanced.js +49 -0
  339. package/dist/src/types/enhanced.js.map +1 -0
  340. package/dist/src/types/index.d.ts +160 -0
  341. package/dist/src/types/index.d.ts.map +1 -0
  342. package/dist/src/types/index.js +14 -0
  343. package/dist/src/types/index.js.map +1 -0
  344. package/dist/src/types/mcp.d.ts +178 -0
  345. package/dist/src/types/mcp.d.ts.map +1 -0
  346. package/dist/src/types/mcp.js +7 -0
  347. package/dist/src/types/mcp.js.map +1 -0
  348. package/dist/src/types/requests.d.ts +322 -0
  349. package/dist/src/types/requests.d.ts.map +1 -0
  350. package/dist/src/types/requests.js +8 -0
  351. package/dist/src/types/requests.js.map +1 -0
  352. package/dist/src/types/tools.d.ts +506 -0
  353. package/dist/src/types/tools.d.ts.map +1 -0
  354. package/dist/src/types/tools.js +8 -0
  355. package/dist/src/types/tools.js.map +1 -0
  356. package/dist/src/types/wordpress.d.ts +471 -0
  357. package/dist/src/types/wordpress.d.ts.map +1 -0
  358. package/dist/src/types/wordpress.js +14 -0
  359. package/dist/src/types/wordpress.js.map +1 -0
  360. package/dist/src/utils/debug.d.ts +71 -0
  361. package/dist/src/utils/debug.d.ts.map +1 -0
  362. package/dist/src/utils/debug.js +235 -0
  363. package/dist/src/utils/debug.js.map +1 -0
  364. package/dist/src/utils/enhancedError.d.ts +61 -0
  365. package/dist/src/utils/enhancedError.d.ts.map +1 -0
  366. package/dist/src/utils/enhancedError.js +221 -0
  367. package/dist/src/utils/enhancedError.js.map +1 -0
  368. package/dist/src/utils/error.d.ts +17 -0
  369. package/dist/src/utils/error.d.ts.map +1 -0
  370. package/dist/src/utils/error.js +108 -0
  371. package/dist/src/utils/error.js.map +1 -0
  372. package/dist/src/utils/logger.d.ts +106 -0
  373. package/dist/src/utils/logger.d.ts.map +1 -0
  374. package/dist/src/utils/logger.js +280 -0
  375. package/dist/src/utils/logger.js.map +1 -0
  376. package/dist/src/utils/streaming.d.ts +104 -0
  377. package/dist/src/utils/streaming.d.ts.map +1 -0
  378. package/dist/src/utils/streaming.js +331 -0
  379. package/dist/src/utils/streaming.js.map +1 -0
  380. package/dist/src/utils/toolWrapper.d.ts +42 -0
  381. package/dist/src/utils/toolWrapper.d.ts.map +1 -0
  382. package/dist/src/utils/toolWrapper.js +101 -0
  383. package/dist/src/utils/toolWrapper.js.map +1 -0
  384. package/dist/src/utils/validation/core.d.ts +21 -0
  385. package/dist/src/utils/validation/core.d.ts.map +1 -0
  386. package/dist/src/utils/validation/core.js +71 -0
  387. package/dist/src/utils/validation/core.js.map +1 -0
  388. package/dist/src/utils/validation/index.d.ts +25 -0
  389. package/dist/src/utils/validation/index.d.ts.map +1 -0
  390. package/dist/src/utils/validation/index.js +29 -0
  391. package/dist/src/utils/validation/index.js.map +1 -0
  392. package/dist/src/utils/validation/network.d.ts +19 -0
  393. package/dist/src/utils/validation/network.d.ts.map +1 -0
  394. package/dist/src/utils/validation/network.js +93 -0
  395. package/dist/src/utils/validation/network.js.map +1 -0
  396. package/dist/src/utils/validation/rateLimit.d.ts +21 -0
  397. package/dist/src/utils/validation/rateLimit.d.ts.map +1 -0
  398. package/dist/src/utils/validation/rateLimit.js +43 -0
  399. package/dist/src/utils/validation/rateLimit.js.map +1 -0
  400. package/dist/src/utils/validation/security.d.ts +29 -0
  401. package/dist/src/utils/validation/security.d.ts.map +1 -0
  402. package/dist/src/utils/validation/security.js +327 -0
  403. package/dist/src/utils/validation/security.js.map +1 -0
  404. package/dist/src/utils/validation/wordpress.d.ts +31 -0
  405. package/dist/src/utils/validation/wordpress.d.ts.map +1 -0
  406. package/dist/src/utils/validation/wordpress.js +146 -0
  407. package/dist/src/utils/validation/wordpress.js.map +1 -0
  408. package/dist/src/utils/validation.d.ts +15 -0
  409. package/dist/src/utils/validation.d.ts.map +1 -0
  410. package/dist/src/utils/validation.js +27 -0
  411. package/dist/src/utils/validation.js.map +1 -0
  412. package/dist/tests/vitest.setup.d.ts +6 -0
  413. package/dist/tests/vitest.setup.d.ts.map +1 -0
  414. package/dist/tests/vitest.setup.js +39 -0
  415. package/dist/tests/vitest.setup.js.map +1 -0
  416. package/dist/tools/BaseToolManager.d.ts +47 -11
  417. package/dist/tools/BaseToolManager.d.ts.map +1 -1
  418. package/dist/tools/BaseToolManager.js +168 -29
  419. package/dist/tools/BaseToolManager.js.map +1 -1
  420. package/dist/tools/auth.d.ts +16 -10
  421. package/dist/tools/auth.d.ts.map +1 -1
  422. package/dist/tools/auth.js +3 -2
  423. package/dist/tools/auth.js.map +1 -1
  424. package/dist/tools/cache.d.ts +30 -30
  425. package/dist/tools/cache.d.ts.map +1 -1
  426. package/dist/tools/cache.js +1 -6
  427. package/dist/tools/cache.js.map +1 -1
  428. package/dist/tools/comments.d.ts +20 -20
  429. package/dist/tools/comments.d.ts.map +1 -1
  430. package/dist/tools/comments.js +16 -9
  431. package/dist/tools/comments.js.map +1 -1
  432. package/dist/tools/media.d.ts +18 -16
  433. package/dist/tools/media.d.ts.map +1 -1
  434. package/dist/tools/media.js +16 -15
  435. package/dist/tools/media.js.map +1 -1
  436. package/dist/tools/pages.d.ts +19 -17
  437. package/dist/tools/pages.d.ts.map +1 -1
  438. package/dist/tools/pages.js +16 -12
  439. package/dist/tools/pages.js.map +1 -1
  440. package/dist/tools/performance.d.ts +11 -1
  441. package/dist/tools/performance.d.ts.map +1 -1
  442. package/dist/tools/performance.js +67 -34
  443. package/dist/tools/performance.js.map +1 -1
  444. package/dist/tools/posts/PostHandlers.d.ts +46 -0
  445. package/dist/tools/posts/PostHandlers.d.ts.map +1 -0
  446. package/dist/tools/posts/PostHandlers.js +400 -0
  447. package/dist/tools/posts/PostHandlers.js.map +1 -0
  448. package/dist/tools/posts/PostToolDefinitions.d.ts +37 -0
  449. package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  450. package/dist/tools/posts/PostToolDefinitions.js +236 -0
  451. package/dist/tools/posts/PostToolDefinitions.js.map +1 -0
  452. package/dist/tools/posts/index.d.ts +138 -0
  453. package/dist/tools/posts/index.d.ts.map +1 -0
  454. package/dist/tools/posts/index.js +163 -0
  455. package/dist/tools/posts/index.js.map +1 -0
  456. package/dist/tools/posts.d.ts +10 -246
  457. package/dist/tools/posts.d.ts.map +1 -1
  458. package/dist/tools/posts.js +11 -723
  459. package/dist/tools/posts.js.map +1 -1
  460. package/dist/tools/site.d.ts +19 -18
  461. package/dist/tools/site.d.ts.map +1 -1
  462. package/dist/tools/site.js +14 -10
  463. package/dist/tools/site.js.map +1 -1
  464. package/dist/tools/taxonomies.d.ts +23 -24
  465. package/dist/tools/taxonomies.d.ts.map +1 -1
  466. package/dist/tools/taxonomies.js +24 -18
  467. package/dist/tools/taxonomies.js.map +1 -1
  468. package/dist/tools/users.d.ts +20 -15
  469. package/dist/tools/users.d.ts.map +1 -1
  470. package/dist/tools/users.js +12 -8
  471. package/dist/tools/users.js.map +1 -1
  472. package/dist/types/client.d.ts +48 -41
  473. package/dist/types/client.d.ts.map +1 -1
  474. package/dist/types/client.js +30 -5
  475. package/dist/types/client.js.map +1 -1
  476. package/dist/types/enhanced.d.ts +237 -0
  477. package/dist/types/enhanced.d.ts.map +1 -0
  478. package/dist/types/enhanced.js +49 -0
  479. package/dist/types/enhanced.js.map +1 -0
  480. package/dist/types/index.d.ts +15 -12
  481. package/dist/types/index.d.ts.map +1 -1
  482. package/dist/types/index.js +2 -0
  483. package/dist/types/index.js.map +1 -1
  484. package/dist/types/mcp.d.ts +12 -12
  485. package/dist/types/mcp.d.ts.map +1 -1
  486. package/dist/types/requests.d.ts +322 -0
  487. package/dist/types/requests.d.ts.map +1 -0
  488. package/dist/types/requests.js +8 -0
  489. package/dist/types/requests.js.map +1 -0
  490. package/dist/types/tools.d.ts +506 -0
  491. package/dist/types/tools.d.ts.map +1 -0
  492. package/dist/types/tools.js +8 -0
  493. package/dist/types/tools.js.map +1 -0
  494. package/dist/types/wordpress.d.ts +43 -15
  495. package/dist/types/wordpress.d.ts.map +1 -1
  496. package/dist/types/wordpress.js +8 -1
  497. package/dist/types/wordpress.js.map +1 -1
  498. package/dist/utils/debug.d.ts +19 -11
  499. package/dist/utils/debug.d.ts.map +1 -1
  500. package/dist/utils/debug.js +46 -10
  501. package/dist/utils/debug.js.map +1 -1
  502. package/dist/utils/enhancedError.d.ts +8 -8
  503. package/dist/utils/enhancedError.d.ts.map +1 -1
  504. package/dist/utils/enhancedError.js.map +1 -1
  505. package/dist/utils/error.d.ts +2 -4
  506. package/dist/utils/error.d.ts.map +1 -1
  507. package/dist/utils/error.js +42 -5
  508. package/dist/utils/error.js.map +1 -1
  509. package/dist/utils/logger.d.ts +106 -0
  510. package/dist/utils/logger.d.ts.map +1 -0
  511. package/dist/utils/logger.js +280 -0
  512. package/dist/utils/logger.js.map +1 -0
  513. package/dist/utils/streaming.d.ts +9 -9
  514. package/dist/utils/streaming.d.ts.map +1 -1
  515. package/dist/utils/streaming.js +71 -52
  516. package/dist/utils/streaming.js.map +1 -1
  517. package/dist/utils/toolWrapper.d.ts +9 -7
  518. package/dist/utils/toolWrapper.d.ts.map +1 -1
  519. package/dist/utils/toolWrapper.js.map +1 -1
  520. package/dist/utils/validation/core.d.ts +21 -0
  521. package/dist/utils/validation/core.d.ts.map +1 -0
  522. package/dist/utils/validation/core.js +71 -0
  523. package/dist/utils/validation/core.js.map +1 -0
  524. package/dist/utils/validation/index.d.ts +25 -0
  525. package/dist/utils/validation/index.d.ts.map +1 -0
  526. package/dist/utils/validation/index.js +29 -0
  527. package/dist/utils/validation/index.js.map +1 -0
  528. package/dist/utils/validation/network.d.ts +19 -0
  529. package/dist/utils/validation/network.d.ts.map +1 -0
  530. package/dist/utils/validation/network.js +93 -0
  531. package/dist/utils/validation/network.js.map +1 -0
  532. package/dist/utils/validation/rateLimit.d.ts +21 -0
  533. package/dist/utils/validation/rateLimit.d.ts.map +1 -0
  534. package/dist/utils/validation/rateLimit.js +43 -0
  535. package/dist/utils/validation/rateLimit.js.map +1 -0
  536. package/dist/utils/validation/security.d.ts +29 -0
  537. package/dist/utils/validation/security.d.ts.map +1 -0
  538. package/dist/utils/validation/security.js +327 -0
  539. package/dist/utils/validation/security.js.map +1 -0
  540. package/dist/utils/validation/wordpress.d.ts +31 -0
  541. package/dist/utils/validation/wordpress.d.ts.map +1 -0
  542. package/dist/utils/validation/wordpress.js +146 -0
  543. package/dist/utils/validation/wordpress.js.map +1 -0
  544. package/dist/utils/validation.d.ts +13 -82
  545. package/dist/utils/validation.d.ts.map +1 -1
  546. package/dist/utils/validation.js +25 -343
  547. package/dist/utils/validation.js.map +1 -1
  548. package/docs/BADGE_UPDATES.md +132 -0
  549. package/docs/CI_CD_IMPROVEMENTS.md +191 -0
  550. package/docs/INCREMENTAL_COVERAGE.md +183 -0
  551. package/docs/INSTALLATION.md +4 -2
  552. package/docs/TROUBLESHOOTING.md +2 -1
  553. package/docs/api/README.md +3 -1
  554. package/docs/api/openapi.json +5 -1
  555. package/docs/api/summary.json +1 -1
  556. package/docs/api/tools/wp_create_post.md +12 -14
  557. package/docs/developer/TESTING.md +24 -19
  558. package/docs/examples/claude-desktop-config.md +1 -1
  559. package/docs/examples/docker-production.md +100 -93
  560. package/docs/examples/multi-site-setup.md +5 -4
  561. package/docs/examples/single-site-setup.md +3 -4
  562. package/docs/examples/use-case-workflows.md +4 -5
  563. package/docs/integrations/claude-desktop.md +39 -34
  564. package/docs/integrations/cline.md +4 -4
  565. package/docs/integrations/vs-code.md +9 -8
  566. package/docs/user-guides/DXT_INSTALLATION.md +2 -1
  567. package/docs/user-guides/SMITHERY_SETUP.md +10 -10
  568. package/package.json +57 -39
  569. package/src/cache/CacheInvalidation.ts +12 -5
  570. package/src/cache/CacheManager.ts +18 -15
  571. package/src/cache/HttpCacheWrapper.ts +30 -59
  572. package/src/cache/__tests__/HttpCacheWrapper.test.ts +6 -5
  573. package/src/cache/index.ts +3 -14
  574. package/src/client/CachedWordPressClient.ts +32 -30
  575. package/src/client/MockWordPressClient.ts +4 -2
  576. package/src/client/api.ts +186 -64
  577. package/src/client/auth.ts +15 -40
  578. package/src/client/managers/AuthenticationManager.ts +337 -77
  579. package/src/client/managers/BaseManager.ts +18 -30
  580. package/src/client/managers/RequestManager.ts +39 -44
  581. package/src/config/Config.ts +308 -0
  582. package/src/config/ConfigurationSchema.ts +23 -2
  583. package/src/config/ServerConfiguration.ts +73 -49
  584. package/src/docs/DocumentationGenerator.ts +50 -39
  585. package/src/docs/MarkdownFormatter.ts +19 -29
  586. package/src/dxt-entry.cjs +26 -16
  587. package/src/dxt-entry.ts +17 -27
  588. package/src/index.ts +42 -28
  589. package/src/performance/MetricsCollector.ts +108 -86
  590. package/src/performance/PerformanceAnalytics.ts +69 -164
  591. package/src/performance/PerformanceMonitor.ts +32 -47
  592. package/src/performance/index.ts +2 -10
  593. package/src/security/AISecurityScanner.ts +22 -12
  594. package/src/security/AutomatedRemediation.ts +49 -18
  595. package/src/security/InputValidator.ts +9 -6
  596. package/src/security/SecurityCIPipeline.ts +53 -37
  597. package/src/security/SecurityConfig.ts +22 -22
  598. package/src/security/SecurityConfigManager.ts +23 -19
  599. package/src/security/SecurityMonitoring.ts +24 -21
  600. package/src/security/SecurityReviewer.ts +10 -7
  601. package/src/security/index.ts +64 -29
  602. package/src/server/ConnectionTester.ts +120 -31
  603. package/src/server/ToolRegistry.ts +31 -21
  604. package/src/tools/BaseToolManager.ts +286 -33
  605. package/src/tools/auth.ts +20 -8
  606. package/src/tools/cache.ts +5 -15
  607. package/src/tools/comments.ts +34 -48
  608. package/src/tools/media.ts +41 -53
  609. package/src/tools/pages.ts +32 -54
  610. package/src/tools/performance.ts +141 -176
  611. package/src/tools/posts/PostHandlers.ts +474 -0
  612. package/src/tools/posts/PostToolDefinitions.ts +250 -0
  613. package/src/tools/posts/index.ts +192 -0
  614. package/src/tools/posts.ts +24 -780
  615. package/src/tools/site.ts +34 -19
  616. package/src/tools/taxonomies.ts +41 -57
  617. package/src/tools/users.ts +28 -16
  618. package/src/types/client.ts +114 -138
  619. package/src/types/enhanced.ts +318 -0
  620. package/src/types/index.ts +51 -30
  621. package/src/types/mcp.ts +20 -42
  622. package/src/types/requests.ts +378 -0
  623. package/src/types/tools.ts +608 -0
  624. package/src/types/wordpress.ts +56 -34
  625. package/src/utils/debug.ts +77 -59
  626. package/src/utils/enhancedError.ts +8 -8
  627. package/src/utils/error.ts +53 -31
  628. package/src/utils/logger.ts +351 -0
  629. package/src/utils/streaming.ts +86 -68
  630. package/src/utils/toolWrapper.ts +10 -12
  631. package/src/utils/validation/core.ts +108 -0
  632. package/src/utils/validation/index.ts +36 -0
  633. package/src/utils/validation/network.ts +132 -0
  634. package/src/utils/validation/rateLimit.ts +54 -0
  635. package/src/utils/validation/security.ts +361 -0
  636. package/src/utils/validation/wordpress.ts +180 -0
  637. package/src/utils/validation.ts +47 -470
  638. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +0 -5
  639. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +0 -1
  640. package/dist/cache/__tests__/CacheInvalidation.test.js +0 -238
  641. package/dist/cache/__tests__/CacheInvalidation.test.js.map +0 -1
  642. package/dist/cache/__tests__/CacheManager.test.d.ts +0 -5
  643. package/dist/cache/__tests__/CacheManager.test.d.ts.map +0 -1
  644. package/dist/cache/__tests__/CacheManager.test.js +0 -233
  645. package/dist/cache/__tests__/CacheManager.test.js.map +0 -1
  646. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +0 -5
  647. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +0 -1
  648. package/dist/cache/__tests__/CachedWordPressClient.test.js +0 -231
  649. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +0 -1
  650. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +0 -5
  651. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +0 -1
  652. package/dist/cache/__tests__/HttpCacheWrapper.test.js +0 -299
  653. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +0 -1
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Debug Utility for MCP Server
3
+ *
4
+ * This module provides debug logging that only outputs when DEBUG mode is enabled.
5
+ * This prevents console.log from interfering with MCP STDIO communication.
6
+ */
7
+ import { config } from "../config/Config.js";
8
+ import { ConfigHelpers } from "../config/Config.js";
9
+ // Check if debug mode is enabled
10
+ const isDebugMode = () => ConfigHelpers.shouldDebug();
11
+ // Get current timestamp
12
+ const getTimestamp = () => new Date().toISOString();
13
+ // Format log message with timestamp and level
14
+ const formatMessage = (level, args) => {
15
+ const timestamp = getTimestamp();
16
+ const prefix = `[${timestamp}] [${level.toUpperCase()}]`;
17
+ return `${prefix} ${args
18
+ .map((arg) => (typeof arg === "object" ? JSON.stringify(arg, null, 2) : String(arg)))
19
+ .join(" ")}`;
20
+ };
21
+ // Handle circular references in objects
22
+ const safeStringify = (obj) => {
23
+ try {
24
+ return JSON.stringify(obj, (key, value) => {
25
+ if (value instanceof Error) {
26
+ return {
27
+ name: value.name,
28
+ message: value.message,
29
+ stack: value.stack,
30
+ };
31
+ }
32
+ return value;
33
+ }, 2);
34
+ }
35
+ catch (_error) {
36
+ return "[Object with circular reference]";
37
+ }
38
+ };
39
+ /**
40
+ * Debug logger that only outputs in debug mode
41
+ */
42
+ export const debug = {
43
+ log: (...args) => {
44
+ if (isDebugMode()) {
45
+ console.error(formatMessage("debug", args)); // Use stderr for debug to avoid STDIO interference
46
+ }
47
+ },
48
+ info: (...args) => {
49
+ if (isDebugMode()) {
50
+ console.error(formatMessage("info", args));
51
+ }
52
+ },
53
+ warn: (...args) => {
54
+ if (isDebugMode()) {
55
+ console.error(formatMessage("warn", args));
56
+ }
57
+ },
58
+ error: (...args) => {
59
+ if (isDebugMode()) {
60
+ console.error(formatMessage("error", args));
61
+ }
62
+ },
63
+ };
64
+ /**
65
+ * Silent logger for production use
66
+ */
67
+ export const silent = {
68
+ log: () => { },
69
+ warn: () => { },
70
+ error: () => { },
71
+ info: () => { },
72
+ };
73
+ /**
74
+ * Enhanced structured logger
75
+ */
76
+ class StructuredLoggerImpl {
77
+ context;
78
+ enabled;
79
+ constructor(context = {}, enabled = isDebugMode()) {
80
+ this.context = context;
81
+ this.enabled = enabled;
82
+ }
83
+ output(level, args) {
84
+ if (!this.enabled)
85
+ return;
86
+ const debugInfo = {
87
+ timestamp: Date.now(),
88
+ level,
89
+ message: args.map((arg) => (typeof arg === "object" ? safeStringify(arg) : String(arg))).join(" "),
90
+ ...(Object.keys(this.context).length > 0 && { context: this.context }),
91
+ };
92
+ console.error(safeStringify(debugInfo));
93
+ }
94
+ log(...args) {
95
+ this.output("debug", args);
96
+ }
97
+ info(...args) {
98
+ this.output("info", args);
99
+ }
100
+ warn(...args) {
101
+ this.output("warn", args);
102
+ }
103
+ error(...args) {
104
+ this.output("error", args);
105
+ }
106
+ logStructured(info) {
107
+ if (!this.enabled)
108
+ return;
109
+ const enhancedInfo = {
110
+ ...info,
111
+ context: { ...this.context, ...info.context },
112
+ };
113
+ console.error(safeStringify(enhancedInfo));
114
+ }
115
+ child(context) {
116
+ return new StructuredLoggerImpl({ ...this.context, ...context }, this.enabled);
117
+ }
118
+ }
119
+ /**
120
+ * Create a structured logger instance
121
+ */
122
+ export const createStructuredLogger = (context = {}) => {
123
+ return new StructuredLoggerImpl(context);
124
+ };
125
+ /**
126
+ * Default logger instance
127
+ */
128
+ export const logger = debug;
129
+ /**
130
+ * Create a logger with context
131
+ */
132
+ export const createLogger = (context = {}) => {
133
+ return createStructuredLogger(context);
134
+ };
135
+ export const startTimer = (label) => {
136
+ const start = Date.now();
137
+ return {
138
+ end() {
139
+ return Date.now() - start;
140
+ },
141
+ endWithLog(message = "Operation") {
142
+ const duration = Date.now() - start;
143
+ debug.info(`${message} completed in ${duration}ms${label ? ` [${label}]` : ""}`);
144
+ return duration;
145
+ },
146
+ };
147
+ };
148
+ /**
149
+ * Log error with stack trace
150
+ */
151
+ export const logError = (error, context) => {
152
+ if (typeof error === "string") {
153
+ debug.error(error, context);
154
+ }
155
+ else {
156
+ debug.error(`${error.name}: ${error.message}`, {
157
+ stack: error.stack,
158
+ ...context,
159
+ });
160
+ }
161
+ };
162
+ /**
163
+ * Conditional logging
164
+ */
165
+ export const logIf = (condition, level = "debug") => {
166
+ if (!condition)
167
+ return silent;
168
+ const loggers = {
169
+ log: debug.log,
170
+ info: debug.info,
171
+ warn: debug.warn,
172
+ error: debug.error,
173
+ };
174
+ return loggers[level] || debug.log;
175
+ };
176
+ /**
177
+ * Type-safe environment variable getter with security logging
178
+ */
179
+ export const getEnvVar = (key, defaultValue) => {
180
+ const value = process.env[key];
181
+ if (value === undefined && defaultValue !== undefined) {
182
+ // Don't log sensitive environment variable names in production
183
+ const isSecretVar = /password|secret|token|key|auth/i.test(key);
184
+ if (!isSecretVar || !config().app.isProduction) {
185
+ debug.warn(`Environment variable ${key} not found, using default`);
186
+ }
187
+ return defaultValue;
188
+ }
189
+ return value;
190
+ };
191
+ /**
192
+ * Validate required environment variables with secure error messages
193
+ */
194
+ export const validateEnvVars = (required) => {
195
+ const missing = required.filter((key) => !process.env[key]);
196
+ if (missing.length > 0) {
197
+ // In production, don't expose which specific env vars are missing
198
+ const errorMessage = config().app.isProduction
199
+ ? `Missing ${missing.length} required environment variable(s)`
200
+ : `Missing required environment variables: ${missing.join(", ")}`;
201
+ const error = new Error(errorMessage);
202
+ logError(error);
203
+ throw error;
204
+ }
205
+ };
206
+ /**
207
+ * Sanitize environment variable for logging
208
+ */
209
+ export const sanitizeEnvValue = (key, value) => {
210
+ const sensitiveKeys = /password|secret|token|key|auth|credential/i;
211
+ if (sensitiveKeys.test(key)) {
212
+ if (!value || value.length === 0) {
213
+ return "[EMPTY]";
214
+ }
215
+ return `[REDACTED:${value.length}chars]`;
216
+ }
217
+ return value;
218
+ };
219
+ /**
220
+ * Get sanitized environment summary for debugging
221
+ */
222
+ export const getEnvSummary = (keys) => {
223
+ const summary = {};
224
+ for (const key of keys) {
225
+ const value = process.env[key];
226
+ if (value !== undefined) {
227
+ summary[key] = sanitizeEnvValue(key, value);
228
+ }
229
+ else {
230
+ summary[key] = "[NOT_SET]";
231
+ }
232
+ }
233
+ return summary;
234
+ };
235
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../../../src/utils/debug.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export interface ErrorContext {
2
+ operation: string;
3
+ parameters?: Record<string, unknown>;
4
+ suggestions?: string[];
5
+ troubleshooting?: string[];
6
+ }
7
+ /**
8
+ * Enhanced error handling with helpful messages and suggestions
9
+ */
10
+ export declare class EnhancedError extends Error {
11
+ suggestions: string[];
12
+ troubleshooting: string[];
13
+ context: ErrorContext;
14
+ constructor(message: string, context: ErrorContext);
15
+ /**
16
+ * Format error message with suggestions
17
+ */
18
+ toString(): string;
19
+ }
20
+ /**
21
+ * Common error handlers with context-aware suggestions
22
+ */
23
+ export declare class ErrorHandlers {
24
+ /**
25
+ * Handle post not found errors
26
+ */
27
+ static postNotFound(postId: number, originalError: unknown): EnhancedError;
28
+ /**
29
+ * Handle authentication errors
30
+ */
31
+ static authenticationFailed(originalError: unknown): EnhancedError;
32
+ /**
33
+ * Handle site parameter missing errors
34
+ */
35
+ static siteParameterMissing(availableSites: string[]): EnhancedError;
36
+ /**
37
+ * Handle site not found errors
38
+ */
39
+ static siteNotFound(siteId: string, availableSites: string[]): EnhancedError;
40
+ /**
41
+ * Handle permission errors
42
+ */
43
+ static permissionDenied(operation: string, originalError: unknown): EnhancedError;
44
+ /**
45
+ * Handle network/connection errors
46
+ */
47
+ static connectionError(originalError: unknown): EnhancedError;
48
+ /**
49
+ * Handle validation errors
50
+ */
51
+ static validationError(field: string, value: unknown, expectedType: string): EnhancedError;
52
+ /**
53
+ * Handle rate limiting errors
54
+ */
55
+ static rateLimitExceeded(originalError: unknown): EnhancedError;
56
+ /**
57
+ * Generic error handler with basic suggestions
58
+ */
59
+ static generic(operation: string, originalError: unknown): EnhancedError;
60
+ }
61
+ //# sourceMappingURL=enhancedError.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancedError.d.ts","sourceRoot":"","sources":["../../../src/utils/enhancedError.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;IAC/B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,YAAY,CAAC;gBAEjB,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY;IAQlD;;OAEG;IACH,QAAQ,IAAI,MAAM;CAmBnB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,aAAa;IAqB1E;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa;IAqBlE;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,aAAa;IAgBpE;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,aAAa;IAiB5E;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,aAAa;IAmBjF;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa;IAmB7D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,aAAa;IAiB1F;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa;IAmB/D;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,GAAG,aAAa;CAkBzE"}
@@ -0,0 +1,221 @@
1
+ import { getErrorMessage } from "./error.js";
2
+ /**
3
+ * Enhanced error handling with helpful messages and suggestions
4
+ */
5
+ export class EnhancedError extends Error {
6
+ suggestions;
7
+ troubleshooting;
8
+ context;
9
+ constructor(message, context) {
10
+ super(message);
11
+ this.name = "EnhancedError";
12
+ this.context = context;
13
+ this.suggestions = context.suggestions || [];
14
+ this.troubleshooting = context.troubleshooting || [];
15
+ }
16
+ /**
17
+ * Format error message with suggestions
18
+ */
19
+ toString() {
20
+ let message = `❌ ${this.message}`;
21
+ if (this.suggestions.length > 0) {
22
+ message += `\n\n💡 **Suggestions:**\n`;
23
+ this.suggestions.forEach((suggestion) => {
24
+ message += `• ${suggestion}\n`;
25
+ });
26
+ }
27
+ if (this.troubleshooting.length > 0) {
28
+ message += `\n🔧 **Troubleshooting:**\n`;
29
+ this.troubleshooting.forEach((step) => {
30
+ message += `• ${step}\n`;
31
+ });
32
+ }
33
+ return message;
34
+ }
35
+ }
36
+ /**
37
+ * Common error handlers with context-aware suggestions
38
+ */
39
+ export class ErrorHandlers {
40
+ /**
41
+ * Handle post not found errors
42
+ */
43
+ static postNotFound(postId, originalError) {
44
+ const errorMessage = getErrorMessage(originalError);
45
+ return new EnhancedError(`Post with ID ${postId} not found`, {
46
+ operation: "get_post",
47
+ parameters: { postId },
48
+ suggestions: [
49
+ "Check if the post ID is correct",
50
+ "Verify the post exists and is published",
51
+ "Try listing posts first with wp_list_posts to see available posts",
52
+ "Check if you have permission to view this post",
53
+ ],
54
+ troubleshooting: [
55
+ "Use wp_list_posts to see all available posts",
56
+ "Check the post status - it might be draft, private, or trashed",
57
+ "Verify your user permissions for viewing posts",
58
+ `Original error: ${errorMessage}`,
59
+ ],
60
+ });
61
+ }
62
+ /**
63
+ * Handle authentication errors
64
+ */
65
+ static authenticationFailed(originalError) {
66
+ const errorMessage = getErrorMessage(originalError);
67
+ return new EnhancedError("Authentication failed", {
68
+ operation: "authenticate",
69
+ suggestions: [
70
+ "Check your WordPress credentials (username and app password)",
71
+ "Verify the WordPress site URL is correct",
72
+ "Ensure application passwords are enabled on your WordPress site",
73
+ "Try regenerating your application password",
74
+ ],
75
+ troubleshooting: [
76
+ "Go to your WordPress admin → Users → Profile → Application Passwords",
77
+ "Create a new application password with a descriptive name",
78
+ "Make sure the WordPress site URL ends with wp-json/wp/v2",
79
+ "Check if your site has any security plugins blocking REST API",
80
+ `Original error: ${errorMessage}`,
81
+ ],
82
+ });
83
+ }
84
+ /**
85
+ * Handle site parameter missing errors
86
+ */
87
+ static siteParameterMissing(availableSites) {
88
+ return new EnhancedError("Multiple sites configured - site parameter required", {
89
+ operation: "site_selection",
90
+ suggestions: [
91
+ "Add --site parameter to specify which site to use",
92
+ `Available sites: ${availableSites.join(", ")}`,
93
+ 'Example: wp_list_posts --site="your-site-id"',
94
+ ],
95
+ troubleshooting: [
96
+ "Check your mcp-wordpress.config.json for configured sites",
97
+ "Use the site ID from your configuration file",
98
+ "Site IDs are defined in the 'id' field of each site config",
99
+ ],
100
+ });
101
+ }
102
+ /**
103
+ * Handle site not found errors
104
+ */
105
+ static siteNotFound(siteId, availableSites) {
106
+ return new EnhancedError(`Site with ID '${siteId}' not found`, {
107
+ operation: "site_selection",
108
+ parameters: { siteId },
109
+ suggestions: [
110
+ `Available sites: ${availableSites.join(", ")}`,
111
+ "Check the spelling of the site ID",
112
+ "Verify the site is configured in mcp-wordpress.config.json",
113
+ ],
114
+ troubleshooting: [
115
+ "Open mcp-wordpress.config.json to see configured sites",
116
+ "Check the 'id' field for each site configuration",
117
+ "Ensure the site ID matches exactly (case-sensitive)",
118
+ ],
119
+ });
120
+ }
121
+ /**
122
+ * Handle permission errors
123
+ */
124
+ static permissionDenied(operation, originalError) {
125
+ const errorMessage = getErrorMessage(originalError);
126
+ return new EnhancedError(`Permission denied for ${operation}`, {
127
+ operation,
128
+ suggestions: [
129
+ "Check if your user has the required permissions",
130
+ "Verify you're logged in with the correct user account",
131
+ "Contact your WordPress administrator for permission changes",
132
+ ],
133
+ troubleshooting: [
134
+ "Check your user role in WordPress admin → Users",
135
+ "Verify the required capabilities for this operation",
136
+ "Try using an administrator account",
137
+ `Original error: ${errorMessage}`,
138
+ ],
139
+ });
140
+ }
141
+ /**
142
+ * Handle network/connection errors
143
+ */
144
+ static connectionError(originalError) {
145
+ const errorMessage = getErrorMessage(originalError);
146
+ return new EnhancedError("Failed to connect to WordPress site", {
147
+ operation: "connection",
148
+ suggestions: [
149
+ "Check your internet connection",
150
+ "Verify the WordPress site URL is correct and accessible",
151
+ "Check if the site is temporarily down",
152
+ ],
153
+ troubleshooting: [
154
+ "Try accessing the site in your browser",
155
+ "Check if the REST API is enabled: visit yoursite.com/wp-json/",
156
+ "Verify there are no firewall or security plugins blocking access",
157
+ `Original error: ${errorMessage}`,
158
+ ],
159
+ });
160
+ }
161
+ /**
162
+ * Handle validation errors
163
+ */
164
+ static validationError(field, value, expectedType) {
165
+ return new EnhancedError(`Invalid ${field}: expected ${expectedType}, got ${typeof value}`, {
166
+ operation: "validation",
167
+ parameters: { field, value, expectedType },
168
+ suggestions: [
169
+ `Provide a valid ${expectedType} for ${field}`,
170
+ "Check the parameter format and type",
171
+ "Refer to the tool documentation for correct parameter format",
172
+ ],
173
+ troubleshooting: [
174
+ "Review the tool's parameter requirements",
175
+ "Check for typos in parameter names",
176
+ "Ensure parameter values match the expected type",
177
+ ],
178
+ });
179
+ }
180
+ /**
181
+ * Handle rate limiting errors
182
+ */
183
+ static rateLimitExceeded(originalError) {
184
+ const errorMessage = getErrorMessage(originalError);
185
+ return new EnhancedError("Rate limit exceeded", {
186
+ operation: "rate_limit",
187
+ suggestions: [
188
+ "Wait a few minutes before trying again",
189
+ "Reduce the frequency of requests",
190
+ "Use pagination for large operations",
191
+ ],
192
+ troubleshooting: [
193
+ "Check your WordPress hosting plan limits",
194
+ "Consider upgrading your hosting plan for higher limits",
195
+ "Implement delays between requests",
196
+ `Original error: ${errorMessage}`,
197
+ ],
198
+ });
199
+ }
200
+ /**
201
+ * Generic error handler with basic suggestions
202
+ */
203
+ static generic(operation, originalError) {
204
+ const errorMessage = getErrorMessage(originalError);
205
+ return new EnhancedError(`Failed to ${operation}`, {
206
+ operation,
207
+ suggestions: [
208
+ "Check your WordPress credentials and permissions",
209
+ "Verify the site is accessible and functioning",
210
+ "Try the operation again after a brief wait",
211
+ ],
212
+ troubleshooting: [
213
+ "Test your connection with a simpler operation first",
214
+ "Check WordPress admin for any issues",
215
+ "Review the WordPress error logs",
216
+ `Original error: ${errorMessage}`,
217
+ ],
218
+ });
219
+ }
220
+ }
221
+ //# sourceMappingURL=enhancedError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhancedError.js","sourceRoot":"","sources":["../../../src/utils/enhancedError.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare const __errorUtilsLogger: import("./logger.js").Logger;
2
+ export declare function getErrorMessage(error: unknown): string;
3
+ export declare function isError(error: unknown): error is Error;
4
+ export declare function logAndReturn<T>(error: unknown, defaultValue: T): T;
5
+ /**
6
+ * Enhanced error handler for consistent tool error handling
7
+ */
8
+ export declare function handleToolError(error: unknown, operation: string, context?: Record<string, unknown>): never;
9
+ /**
10
+ * Validates required parameters
11
+ */
12
+ export declare function validateRequired(params: Record<string, unknown> | unknown, required: string[]): void;
13
+ /**
14
+ * Validates site parameter for multi-site configurations
15
+ */
16
+ export declare function validateSite(site: string | undefined, availableSites: string[]): string;
17
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/utils/error.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,kBAAkB,8BAAS,CAAC;AAEzC,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CActD;AAED,wBAAgB,OAAO,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,KAAK,CAEtD;AAED,wBAAgB,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,GAAG,CAAC,CAQlE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAqC3G;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAWpG;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,MAAM,CAevF"}
@@ -0,0 +1,108 @@
1
+ /**
2
+ * Error handling utilities
3
+ */
4
+ import { LoggerFactory } from "./logger.js";
5
+ import { config } from "../config/Config.js";
6
+ const logger = LoggerFactory.server().child({ component: "ErrorUtils" });
7
+ // Environment flag to control legacy console logging noise. Default enabled to preserve
8
+ // backward compatibility and existing test expectations. Set LEGACY_ERROR_LOGS=0 to disable
9
+ // the direct console.error side-channel (structured logger still emits).
10
+ const LEGACY_ERROR_LOGS_ENABLED = config().error.legacyLogsEnabled;
11
+ // Internal helper to avoid sprinkling conditionals
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+ function legacyConsoleError(...args) {
14
+ if (LEGACY_ERROR_LOGS_ENABLED) {
15
+ console.error(...args);
16
+ }
17
+ }
18
+ // Test hook: exported only for instrumentation in unit tests (tree-shakeable)
19
+ // @__PURE__ This constant has no side effects and can be dropped in production builds
20
+ export const __errorUtilsLogger = logger;
21
+ export function getErrorMessage(error) {
22
+ if (error instanceof Error) {
23
+ return error.message;
24
+ }
25
+ if (typeof error === "string") {
26
+ return error;
27
+ }
28
+ if (error && typeof error === "object" && "message" in error) {
29
+ return String(error.message);
30
+ }
31
+ return "Unknown error occurred";
32
+ }
33
+ export function isError(error) {
34
+ return error instanceof Error;
35
+ }
36
+ export function logAndReturn(error, defaultValue) {
37
+ const message = getErrorMessage(error);
38
+ // Legacy console logging (can be disabled via LEGACY_ERROR_LOGS=0)
39
+ legacyConsoleError("Error occurred:", message);
40
+ logger.warn("Error occurred - returning default value", {
41
+ error: message,
42
+ });
43
+ return defaultValue;
44
+ }
45
+ /**
46
+ * Enhanced error handler for consistent tool error handling
47
+ */
48
+ export function handleToolError(error, operation, context) {
49
+ const message = getErrorMessage(error);
50
+ const errObj = error instanceof Error ? error : new Error(message);
51
+ // Legacy console logging (can be disabled via LEGACY_ERROR_LOGS=0)
52
+ legacyConsoleError(`Error in ${operation}:`, errObj);
53
+ if (context) {
54
+ legacyConsoleError("Context:", context);
55
+ }
56
+ logger.error(`Error in ${operation}`, {
57
+ error: message,
58
+ ...(context && { context }),
59
+ });
60
+ if (error instanceof Error && error.stack) {
61
+ logger.debug("Error stack trace", { stack: error.stack });
62
+ }
63
+ // Provide more specific error messages based on error content
64
+ if (message.includes("ECONNREFUSED") || message.includes("ENOTFOUND")) {
65
+ throw new Error(`Connection failed during ${operation}. Please check your WordPress site URL and network connection.`);
66
+ }
67
+ if (message.includes("401") || message.includes("Unauthorized")) {
68
+ throw new Error(`Authentication failed during ${operation}. Please check your WordPress credentials.`);
69
+ }
70
+ if (message.includes("403") || message.includes("Forbidden")) {
71
+ throw new Error(`Permission denied during ${operation}. Please check your user permissions.`);
72
+ }
73
+ if (message.includes("429") || message.includes("Too Many Requests")) {
74
+ throw new Error(`Rate limit exceeded during ${operation}. Please try again later.`);
75
+ }
76
+ throw new Error(`Failed to ${operation}: ${message}`);
77
+ }
78
+ /**
79
+ * Validates required parameters
80
+ */
81
+ export function validateRequired(params, required) {
82
+ // Runtime guard: ensure params is a non-null object (tests expect throw on invalid input)
83
+ if (params === null || typeof params !== "object") {
84
+ throw new Error("Parameters must be an object");
85
+ }
86
+ // Only treat undefined or null as missing; accept legitimate falsy values: 0, false, ""
87
+ const obj = params;
88
+ const missing = required.filter((key) => obj[key] === undefined || obj[key] === null);
89
+ if (missing.length > 0) {
90
+ throw new Error(`Missing required parameters: ${missing.join(", ")}`);
91
+ }
92
+ }
93
+ /**
94
+ * Validates site parameter for multi-site configurations
95
+ */
96
+ export function validateSite(site, availableSites) {
97
+ if (!site) {
98
+ if (availableSites.length === 1) {
99
+ return availableSites[0];
100
+ }
101
+ throw new Error(`Site parameter is required when multiple sites are configured. Available sites: ${availableSites.join(", ")}`);
102
+ }
103
+ if (!availableSites.includes(site)) {
104
+ throw new Error(`Site '${site}' not found. Available sites: ${availableSites.join(", ")}`);
105
+ }
106
+ return site;
107
+ }
108
+ //# sourceMappingURL=error.js.map