mcp-wordpress 2.5.0 → 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 (318) hide show
  1. package/README.md +19 -15
  2. package/bin/status.js +1 -1
  3. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  4. package/dist/config/ServerConfiguration.js +23 -2
  5. package/dist/config/ServerConfiguration.js.map +1 -1
  6. package/dist/src/cache/CacheInvalidation.d.ts +120 -0
  7. package/dist/src/cache/CacheInvalidation.d.ts.map +1 -0
  8. package/dist/src/cache/CacheInvalidation.js +355 -0
  9. package/dist/src/cache/CacheInvalidation.js.map +1 -0
  10. package/dist/src/cache/CacheManager.d.ts +149 -0
  11. package/dist/src/cache/CacheManager.d.ts.map +1 -0
  12. package/dist/src/cache/CacheManager.js +326 -0
  13. package/dist/src/cache/CacheManager.js.map +1 -0
  14. package/dist/src/cache/HttpCacheWrapper.d.ts +122 -0
  15. package/dist/src/cache/HttpCacheWrapper.d.ts.map +1 -0
  16. package/dist/src/cache/HttpCacheWrapper.js +283 -0
  17. package/dist/src/cache/HttpCacheWrapper.js.map +1 -0
  18. package/dist/src/cache/index.d.ts +12 -0
  19. package/dist/src/cache/index.d.ts.map +1 -0
  20. package/dist/src/cache/index.js +9 -0
  21. package/dist/src/cache/index.js.map +1 -0
  22. package/dist/src/client/CachedWordPressClient.d.ts +174 -0
  23. package/dist/src/client/CachedWordPressClient.d.ts.map +1 -0
  24. package/dist/src/client/CachedWordPressClient.js +345 -0
  25. package/dist/src/client/CachedWordPressClient.js.map +1 -0
  26. package/dist/src/client/MockWordPressClient.d.ts +56 -0
  27. package/dist/src/client/MockWordPressClient.d.ts.map +1 -0
  28. package/dist/src/client/MockWordPressClient.js +371 -0
  29. package/dist/src/client/MockWordPressClient.js.map +1 -0
  30. package/dist/src/client/api.d.ts +235 -0
  31. package/dist/src/client/api.d.ts.map +1 -0
  32. package/dist/src/client/api.js +896 -0
  33. package/dist/src/client/api.js.map +1 -0
  34. package/dist/src/client/auth.d.ts +121 -0
  35. package/dist/src/client/auth.d.ts.map +1 -0
  36. package/dist/src/client/auth.js +429 -0
  37. package/dist/src/client/auth.js.map +1 -0
  38. package/dist/src/client/managers/AuthenticationManager.d.ts +92 -0
  39. package/dist/src/client/managers/AuthenticationManager.d.ts.map +1 -0
  40. package/dist/src/client/managers/AuthenticationManager.js +369 -0
  41. package/dist/src/client/managers/AuthenticationManager.js.map +1 -0
  42. package/dist/src/client/managers/BaseManager.d.ts +22 -0
  43. package/dist/src/client/managers/BaseManager.d.ts.map +1 -0
  44. package/dist/src/client/managers/BaseManager.js +53 -0
  45. package/dist/src/client/managers/BaseManager.js.map +1 -0
  46. package/dist/src/client/managers/RequestManager.d.ts +47 -0
  47. package/dist/src/client/managers/RequestManager.d.ts.map +1 -0
  48. package/dist/src/client/managers/RequestManager.js +193 -0
  49. package/dist/src/client/managers/RequestManager.js.map +1 -0
  50. package/dist/src/client/managers/index.d.ts +8 -0
  51. package/dist/src/client/managers/index.d.ts.map +1 -0
  52. package/dist/src/client/managers/index.js +8 -0
  53. package/dist/src/client/managers/index.js.map +1 -0
  54. package/dist/src/config/Config.d.ts +155 -0
  55. package/dist/src/config/Config.d.ts.map +1 -0
  56. package/dist/src/config/Config.js +215 -0
  57. package/dist/src/config/Config.js.map +1 -0
  58. package/dist/src/config/ConfigurationSchema.d.ts +281 -0
  59. package/dist/src/config/ConfigurationSchema.d.ts.map +1 -0
  60. package/dist/src/config/ConfigurationSchema.js +205 -0
  61. package/dist/src/config/ConfigurationSchema.js.map +1 -0
  62. package/dist/src/config/ServerConfiguration.d.ts +47 -0
  63. package/dist/src/config/ServerConfiguration.d.ts.map +1 -0
  64. package/dist/src/config/ServerConfiguration.js +255 -0
  65. package/dist/src/config/ServerConfiguration.js.map +1 -0
  66. package/dist/src/docs/DocumentationGenerator.d.ts +185 -0
  67. package/dist/src/docs/DocumentationGenerator.d.ts.map +1 -0
  68. package/dist/src/docs/DocumentationGenerator.js +777 -0
  69. package/dist/src/docs/DocumentationGenerator.js.map +1 -0
  70. package/dist/src/docs/MarkdownFormatter.d.ts +84 -0
  71. package/dist/src/docs/MarkdownFormatter.d.ts.map +1 -0
  72. package/dist/src/docs/MarkdownFormatter.js +458 -0
  73. package/dist/src/docs/MarkdownFormatter.js.map +1 -0
  74. package/dist/src/docs/index.d.ts +8 -0
  75. package/dist/src/docs/index.d.ts.map +1 -0
  76. package/dist/src/docs/index.js +7 -0
  77. package/dist/src/docs/index.js.map +1 -0
  78. package/dist/src/dxt-entry.d.ts +6 -0
  79. package/dist/src/dxt-entry.d.ts.map +1 -0
  80. package/dist/src/dxt-entry.js +39 -0
  81. package/dist/src/dxt-entry.js.map +1 -0
  82. package/dist/src/index.d.ts +18 -0
  83. package/dist/src/index.d.ts.map +1 -0
  84. package/dist/src/index.js +143 -0
  85. package/dist/src/index.js.map +1 -0
  86. package/dist/src/performance/MetricsCollector.d.ts +145 -0
  87. package/dist/src/performance/MetricsCollector.d.ts.map +1 -0
  88. package/dist/src/performance/MetricsCollector.js +368 -0
  89. package/dist/src/performance/MetricsCollector.js.map +1 -0
  90. package/dist/src/performance/PerformanceAnalytics.d.ts +168 -0
  91. package/dist/src/performance/PerformanceAnalytics.d.ts.map +1 -0
  92. package/dist/src/performance/PerformanceAnalytics.js +570 -0
  93. package/dist/src/performance/PerformanceAnalytics.js.map +1 -0
  94. package/dist/src/performance/PerformanceMonitor.d.ts +203 -0
  95. package/dist/src/performance/PerformanceMonitor.d.ts.map +1 -0
  96. package/dist/src/performance/PerformanceMonitor.js +478 -0
  97. package/dist/src/performance/PerformanceMonitor.js.map +1 -0
  98. package/dist/src/performance/index.d.ts +11 -0
  99. package/dist/src/performance/index.d.ts.map +1 -0
  100. package/dist/src/performance/index.js +8 -0
  101. package/dist/src/performance/index.js.map +1 -0
  102. package/dist/src/security/AISecurityScanner.d.ts +176 -0
  103. package/dist/src/security/AISecurityScanner.d.ts.map +1 -0
  104. package/dist/src/security/AISecurityScanner.js +655 -0
  105. package/dist/src/security/AISecurityScanner.js.map +1 -0
  106. package/dist/src/security/AutomatedRemediation.d.ts +146 -0
  107. package/dist/src/security/AutomatedRemediation.d.ts.map +1 -0
  108. package/dist/src/security/AutomatedRemediation.js +566 -0
  109. package/dist/src/security/AutomatedRemediation.js.map +1 -0
  110. package/dist/src/security/InputValidator.d.ts +219 -0
  111. package/dist/src/security/InputValidator.d.ts.map +1 -0
  112. package/dist/src/security/InputValidator.js +295 -0
  113. package/dist/src/security/InputValidator.js.map +1 -0
  114. package/dist/src/security/SecurityCIPipeline.d.ts +213 -0
  115. package/dist/src/security/SecurityCIPipeline.d.ts.map +1 -0
  116. package/dist/src/security/SecurityCIPipeline.js +693 -0
  117. package/dist/src/security/SecurityCIPipeline.js.map +1 -0
  118. package/dist/src/security/SecurityConfig.d.ts +129 -0
  119. package/dist/src/security/SecurityConfig.d.ts.map +1 -0
  120. package/dist/src/security/SecurityConfig.js +266 -0
  121. package/dist/src/security/SecurityConfig.js.map +1 -0
  122. package/dist/src/security/SecurityConfigManager.d.ts +294 -0
  123. package/dist/src/security/SecurityConfigManager.d.ts.map +1 -0
  124. package/dist/src/security/SecurityConfigManager.js +558 -0
  125. package/dist/src/security/SecurityConfigManager.js.map +1 -0
  126. package/dist/src/security/SecurityMonitoring.d.ts +245 -0
  127. package/dist/src/security/SecurityMonitoring.d.ts.map +1 -0
  128. package/dist/src/security/SecurityMonitoring.js +598 -0
  129. package/dist/src/security/SecurityMonitoring.js.map +1 -0
  130. package/dist/src/security/SecurityReviewer.d.ts +168 -0
  131. package/dist/src/security/SecurityReviewer.d.ts.map +1 -0
  132. package/dist/src/security/SecurityReviewer.js +686 -0
  133. package/dist/src/security/SecurityReviewer.js.map +1 -0
  134. package/dist/src/security/index.d.ts +183 -0
  135. package/dist/src/security/index.d.ts.map +1 -0
  136. package/dist/src/security/index.js +218 -0
  137. package/dist/src/security/index.js.map +1 -0
  138. package/dist/src/server/ConnectionTester.d.ts +32 -0
  139. package/dist/src/server/ConnectionTester.d.ts.map +1 -0
  140. package/dist/src/server/ConnectionTester.js +135 -0
  141. package/dist/src/server/ConnectionTester.js.map +1 -0
  142. package/dist/src/server/ToolRegistry.d.ts +50 -0
  143. package/dist/src/server/ToolRegistry.d.ts.map +1 -0
  144. package/dist/src/server/ToolRegistry.js +219 -0
  145. package/dist/src/server/ToolRegistry.js.map +1 -0
  146. package/dist/src/server.d.ts +7 -0
  147. package/dist/src/server.d.ts.map +1 -0
  148. package/dist/src/server.js +7 -0
  149. package/dist/src/server.js.map +1 -0
  150. package/dist/src/tools/BaseToolManager.d.ts +62 -0
  151. package/dist/src/tools/BaseToolManager.d.ts.map +1 -0
  152. package/dist/src/tools/BaseToolManager.js +195 -0
  153. package/dist/src/tools/BaseToolManager.js.map +1 -0
  154. package/dist/src/tools/auth.d.ts +50 -0
  155. package/dist/src/tools/auth.d.ts.map +1 -0
  156. package/dist/src/tools/auth.js +133 -0
  157. package/dist/src/tools/auth.js.map +1 -0
  158. package/dist/src/tools/cache.d.ts +260 -0
  159. package/dist/src/tools/cache.d.ts.map +1 -0
  160. package/dist/src/tools/cache.js +232 -0
  161. package/dist/src/tools/cache.js.map +1 -0
  162. package/dist/src/tools/comments.d.ts +33 -0
  163. package/dist/src/tools/comments.d.ts.map +1 -0
  164. package/dist/src/tools/comments.js +235 -0
  165. package/dist/src/tools/comments.js.map +1 -0
  166. package/dist/src/tools/index.d.ts +11 -0
  167. package/dist/src/tools/index.d.ts.map +1 -0
  168. package/dist/src/tools/index.js +11 -0
  169. package/dist/src/tools/index.js.map +1 -0
  170. package/dist/src/tools/media.d.ts +70 -0
  171. package/dist/src/tools/media.d.ts.map +1 -0
  172. package/dist/src/tools/media.js +248 -0
  173. package/dist/src/tools/media.js.map +1 -0
  174. package/dist/src/tools/pages.d.ts +32 -0
  175. package/dist/src/tools/pages.d.ts.map +1 -0
  176. package/dist/src/tools/pages.js +215 -0
  177. package/dist/src/tools/pages.js.map +1 -0
  178. package/dist/src/tools/performance.d.ts +73 -0
  179. package/dist/src/tools/performance.d.ts.map +1 -0
  180. package/dist/src/tools/performance.js +922 -0
  181. package/dist/src/tools/performance.js.map +1 -0
  182. package/dist/src/tools/posts/PostHandlers.d.ts +46 -0
  183. package/dist/src/tools/posts/PostHandlers.d.ts.map +1 -0
  184. package/dist/src/tools/posts/PostHandlers.js +400 -0
  185. package/dist/src/tools/posts/PostHandlers.js.map +1 -0
  186. package/dist/src/tools/posts/PostToolDefinitions.d.ts +37 -0
  187. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  188. package/dist/src/tools/posts/PostToolDefinitions.js +236 -0
  189. package/dist/src/tools/posts/PostToolDefinitions.js.map +1 -0
  190. package/dist/src/tools/posts/index.d.ts +138 -0
  191. package/dist/src/tools/posts/index.d.ts.map +1 -0
  192. package/dist/src/tools/posts/index.js +163 -0
  193. package/dist/src/tools/posts/index.js.map +1 -0
  194. package/dist/src/tools/posts.d.ts +15 -0
  195. package/dist/src/tools/posts.d.ts.map +1 -0
  196. package/dist/src/tools/posts.js +16 -0
  197. package/dist/src/tools/posts.js.map +1 -0
  198. package/dist/src/tools/site.d.ts +32 -0
  199. package/dist/src/tools/site.d.ts.map +1 -0
  200. package/dist/src/tools/site.js +234 -0
  201. package/dist/src/tools/site.js.map +1 -0
  202. package/dist/src/tools/taxonomies.d.ts +36 -0
  203. package/dist/src/tools/taxonomies.d.ts.map +1 -0
  204. package/dist/src/tools/taxonomies.js +286 -0
  205. package/dist/src/tools/taxonomies.js.map +1 -0
  206. package/dist/src/tools/users.d.ts +33 -0
  207. package/dist/src/tools/users.d.ts.map +1 -0
  208. package/dist/src/tools/users.js +308 -0
  209. package/dist/src/tools/users.js.map +1 -0
  210. package/dist/src/types/client.d.ts +223 -0
  211. package/dist/src/types/client.d.ts.map +1 -0
  212. package/dist/src/types/client.js +97 -0
  213. package/dist/src/types/client.js.map +1 -0
  214. package/dist/src/types/enhanced.d.ts +237 -0
  215. package/dist/src/types/enhanced.d.ts.map +1 -0
  216. package/dist/src/types/enhanced.js +49 -0
  217. package/dist/src/types/enhanced.js.map +1 -0
  218. package/dist/src/types/index.d.ts +160 -0
  219. package/dist/src/types/index.d.ts.map +1 -0
  220. package/dist/src/types/index.js +14 -0
  221. package/dist/src/types/index.js.map +1 -0
  222. package/dist/src/types/mcp.d.ts +178 -0
  223. package/dist/src/types/mcp.d.ts.map +1 -0
  224. package/dist/src/types/mcp.js +7 -0
  225. package/dist/src/types/mcp.js.map +1 -0
  226. package/dist/src/types/requests.d.ts +322 -0
  227. package/dist/src/types/requests.d.ts.map +1 -0
  228. package/dist/src/types/requests.js +8 -0
  229. package/dist/src/types/requests.js.map +1 -0
  230. package/dist/src/types/tools.d.ts +506 -0
  231. package/dist/src/types/tools.d.ts.map +1 -0
  232. package/dist/src/types/tools.js +8 -0
  233. package/dist/src/types/tools.js.map +1 -0
  234. package/dist/src/types/wordpress.d.ts +471 -0
  235. package/dist/src/types/wordpress.d.ts.map +1 -0
  236. package/dist/src/types/wordpress.js +14 -0
  237. package/dist/src/types/wordpress.js.map +1 -0
  238. package/dist/src/utils/debug.d.ts +71 -0
  239. package/dist/src/utils/debug.d.ts.map +1 -0
  240. package/dist/src/utils/debug.js +235 -0
  241. package/dist/src/utils/debug.js.map +1 -0
  242. package/dist/src/utils/enhancedError.d.ts +61 -0
  243. package/dist/src/utils/enhancedError.d.ts.map +1 -0
  244. package/dist/src/utils/enhancedError.js +221 -0
  245. package/dist/src/utils/enhancedError.js.map +1 -0
  246. package/dist/src/utils/error.d.ts +17 -0
  247. package/dist/src/utils/error.d.ts.map +1 -0
  248. package/dist/src/utils/error.js +108 -0
  249. package/dist/src/utils/error.js.map +1 -0
  250. package/dist/src/utils/logger.d.ts +106 -0
  251. package/dist/src/utils/logger.d.ts.map +1 -0
  252. package/dist/src/utils/logger.js +280 -0
  253. package/dist/src/utils/logger.js.map +1 -0
  254. package/dist/src/utils/streaming.d.ts +104 -0
  255. package/dist/src/utils/streaming.d.ts.map +1 -0
  256. package/dist/src/utils/streaming.js +331 -0
  257. package/dist/src/utils/streaming.js.map +1 -0
  258. package/dist/src/utils/toolWrapper.d.ts +42 -0
  259. package/dist/src/utils/toolWrapper.d.ts.map +1 -0
  260. package/dist/src/utils/toolWrapper.js +101 -0
  261. package/dist/src/utils/toolWrapper.js.map +1 -0
  262. package/dist/src/utils/validation/core.d.ts +21 -0
  263. package/dist/src/utils/validation/core.d.ts.map +1 -0
  264. package/dist/src/utils/validation/core.js +71 -0
  265. package/dist/src/utils/validation/core.js.map +1 -0
  266. package/dist/src/utils/validation/index.d.ts +25 -0
  267. package/dist/src/utils/validation/index.d.ts.map +1 -0
  268. package/dist/src/utils/validation/index.js +29 -0
  269. package/dist/src/utils/validation/index.js.map +1 -0
  270. package/dist/src/utils/validation/network.d.ts +19 -0
  271. package/dist/src/utils/validation/network.d.ts.map +1 -0
  272. package/dist/src/utils/validation/network.js +93 -0
  273. package/dist/src/utils/validation/network.js.map +1 -0
  274. package/dist/src/utils/validation/rateLimit.d.ts +21 -0
  275. package/dist/src/utils/validation/rateLimit.d.ts.map +1 -0
  276. package/dist/src/utils/validation/rateLimit.js +43 -0
  277. package/dist/src/utils/validation/rateLimit.js.map +1 -0
  278. package/dist/src/utils/validation/security.d.ts +29 -0
  279. package/dist/src/utils/validation/security.d.ts.map +1 -0
  280. package/dist/src/utils/validation/security.js +327 -0
  281. package/dist/src/utils/validation/security.js.map +1 -0
  282. package/dist/src/utils/validation/wordpress.d.ts +31 -0
  283. package/dist/src/utils/validation/wordpress.d.ts.map +1 -0
  284. package/dist/src/utils/validation/wordpress.js +146 -0
  285. package/dist/src/utils/validation/wordpress.js.map +1 -0
  286. package/dist/src/utils/validation.d.ts +15 -0
  287. package/dist/src/utils/validation.d.ts.map +1 -0
  288. package/dist/src/utils/validation.js +27 -0
  289. package/dist/src/utils/validation.js.map +1 -0
  290. package/dist/tests/vitest.setup.d.ts +6 -0
  291. package/dist/tests/vitest.setup.d.ts.map +1 -0
  292. package/dist/tests/vitest.setup.js +39 -0
  293. package/dist/tests/vitest.setup.js.map +1 -0
  294. package/docs/INSTALLATION.md +4 -2
  295. package/docs/TROUBLESHOOTING.md +2 -1
  296. package/docs/developer/TESTING.md +24 -19
  297. package/docs/integrations/claude-desktop.md +9 -4
  298. package/docs/user-guides/DXT_INSTALLATION.md +2 -1
  299. package/package.json +28 -29
  300. package/src/config/ServerConfiguration.ts +22 -2
  301. package/dist/ajv-patch.js +0 -34
  302. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +0 -5
  303. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +0 -1
  304. package/dist/cache/__tests__/CacheInvalidation.test.js +0 -238
  305. package/dist/cache/__tests__/CacheInvalidation.test.js.map +0 -1
  306. package/dist/cache/__tests__/CacheManager.test.d.ts +0 -5
  307. package/dist/cache/__tests__/CacheManager.test.d.ts.map +0 -1
  308. package/dist/cache/__tests__/CacheManager.test.js +0 -233
  309. package/dist/cache/__tests__/CacheManager.test.js.map +0 -1
  310. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +0 -5
  311. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +0 -1
  312. package/dist/cache/__tests__/CachedWordPressClient.test.js +0 -231
  313. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +0 -1
  314. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +0 -5
  315. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +0 -1
  316. package/dist/cache/__tests__/HttpCacheWrapper.test.js +0 -300
  317. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +0 -1
  318. package/dist/dxt-entry.cjs +0 -81
package/README.md CHANGED
@@ -16,16 +16,16 @@ Manage WordPress sites with natural language through AI tools like Claude Deskto
16
16
  [![NPM Downloads](https://img.shields.io/npm/dm/mcp-wordpress?logo=npm&logoColor=white)](https://www.npmjs.com/package/mcp-wordpress)
17
17
  [![NPM Total Downloads](https://img.shields.io/npm/dt/mcp-wordpress?logo=npm&logoColor=white&label=total%20downloads)](https://www.npmjs.com/package/mcp-wordpress)
18
18
  [![Docker Pulls](https://img.shields.io/docker/pulls/docdyhr/mcp-wordpress?logo=docker&logoColor=white)](https://hub.docker.com/r/docdyhr/mcp-wordpress)
19
- [![Line Coverage](https://img.shields.io/badge/lines%20coverage-96.17%25-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
20
- [![Branch Coverage](https://img.shields.io/badge/branch%20coverage-95.83%25-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
21
- [![Function Coverage](https://img.shields.io/badge/function%20coverage-100.00%25-brightgreen?logo=jest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
22
- [![Test Results](https://img.shields.io/badge/tests-884%2F1040%20passing-green?logo=checkmarx&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
19
+ [![Line Coverage](https://img.shields.io/badge/lines%20coverage-96.17%25-brightgreen?logo=vitest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
20
+ [![Branch Coverage](https://img.shields.io/badge/branch%20coverage-95.83%25-brightgreen?logo=vitest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
21
+ [![Function Coverage](https://img.shields.io/badge/function%20coverage-100.00%25-brightgreen?logo=vitest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
22
+ [![Test Results](https://img.shields.io/badge/tests-512%2F512%20passing-brightgreen?logo=vitest&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
23
23
  [![MCP Evaluation](https://img.shields.io/badge/mcp%20evaluation-4.5%2F5.0-brightgreen?logo=openai&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/actions/workflows/mcp-evaluations.yml)
24
24
 
25
25
  [![TypeScript](https://img.shields.io/badge/TypeScript-100%25-blue?logo=typescript&logoColor=white)](https://github.com/docdyhr/mcp-wordpress)
26
- [![Security Tests](https://img.shields.io/badge/security%20tests-40%2F40%20passing-brightgreen?logo=shield&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/tree/main/tests/security)
26
+ [![Security Tests](https://img.shields.io/badge/security%20tests-%2F%20passing-brightgreen?logo=shield&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/tree/main/tests/security)
27
27
  [![Vulnerabilities](https://img.shields.io/badge/vulnerabilities-0%20known-brightgreen?logo=security&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/security/advisories)
28
- [![Penetration Testing](https://img.shields.io/badge/penetration%20testing-28%2F28%20passing-brightgreen?logo=bug&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/blob/main/tests/security/penetration-tests.test.js)
28
+ [![Penetration Testing](https://img.shields.io/badge/penetration%20testing-%2F%20passing-brightgreen?logo=bug&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/blob/main/tests/security/penetration-tests.test.js)
29
29
  [![Docker](https://img.shields.io/badge/docker-ready-blue?logo=docker&logoColor=white)](https://hub.docker.com/r/docdyhr/mcp-wordpress)
30
30
  [![License](https://img.shields.io/badge/license-MIT-green?logo=opensource&logoColor=white)](https://github.com/docdyhr/mcp-wordpress/blob/main/LICENSE)
31
31
  [![smithery badge](https://smithery.ai/badge/@docdyhr/mcp-wordpress)](https://smithery.ai/server/@docdyhr/mcp-wordpress)
@@ -45,7 +45,7 @@ Manage WordPress sites with natural language through AI tools like Claude Deskto
45
45
 
46
46
  - 🏆 **Most Complete**: 59 tools vs 20-30 in alternatives
47
47
  - ⚡ **Fastest Setup**: 2-click Claude Desktop installation via DXT
48
- - 🔒 **Production Ready**: 404 tests (expanding), security audited, battle-tested
48
+ - 🔒 **Production Ready**: 512 tests (100% pass rate), security audited, battle-tested
49
49
  - 🎯 **TypeScript Native**: 100% type safety, best-in-class developer experience
50
50
  - 🌐 **Multi-Site**: Manage unlimited WordPress sites from one place
51
51
 
@@ -73,7 +73,7 @@ WordPress Admin → Users → Profile → Application Passwords → Add New
73
73
 
74
74
  ```bash
75
75
  # Download and install in Claude Desktop
76
- curl -L https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt -o mcp-wordpress.dxt
76
+ curl -L https://github.com/docdyhr/mcp-wordpress/releases/latest/download/mcp-wordpress.dxt -o mcp-wordpress.dxt
77
77
  # Then: Claude Desktop → Extensions → Install → Select DXT file
78
78
  ```
79
79
 
@@ -99,7 +99,8 @@ Response: "✅ Authentication successful! Connected to: Your Site Name"
99
99
 
100
100
  **Easiest installation - just 2 clicks!**
101
101
 
102
- 1. **Download**: [`mcp-wordpress.dxt`](https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt) (2.6MB)
102
+ 1. **Download**: [`mcp-wordpress.dxt`](https://github.com/docdyhr/mcp-wordpress/releases/latest/download/mcp-wordpress.dxt)
103
+ (3.4MB)
103
104
  2. **Install**: Claude Desktop → Extensions → Install → Select DXT file
104
105
  3. **Configure**: Enter your WordPress site URL and credentials
105
106
 
@@ -362,7 +363,7 @@ define('JWT_AUTH_CORS_ENABLE', true);
362
363
 
363
364
  - **⚡ Intelligent Caching** - 50-70% performance improvement
364
365
  - **📊 Real-Time Monitoring** - Performance metrics and optimization insights
365
- - **🔒 Production Ready** - Security-reviewed, growing coverage (30% lines) after expanding test suite
366
+ - **🔒 Production Ready** - Security-reviewed, 96.17% line coverage with Vitest testing framework
366
367
  - **🔄 Zero Downtime** - Graceful error handling and automatic recovery
367
368
 
368
369
  #### Developer Experience
@@ -926,10 +927,10 @@ os-info >> debug-report.txt
926
927
 
927
928
  ### Current Test Status ✅
928
929
 
929
- - **Main Test Suite**: 404/404 passed (100%)
930
+ - **Main Test Suite**: 512/512 passed (100%) with Vitest
930
931
  - **Security Tests**: 40/40 passed (100%)
931
932
  - **Performance Tests**: 8/8 passed (100%)
932
- - **CI/CD Pipeline**: Fully functional
933
+ - **CI/CD Pipeline**: Fully functional with Vitest integration
933
934
 
934
935
  ### Test Your Installation
935
936
 
@@ -937,9 +938,12 @@ os-info >> debug-report.txt
937
938
  # Check connection status
938
939
  npm run status
939
940
 
940
- # Run full test suite
941
+ # Run full test suite (Vitest)
941
942
  npm test
942
943
 
944
+ # Run tests with coverage
945
+ npm run test:coverage
946
+
943
947
  # Quick validation
944
948
  npm run test:fast
945
949
  ```
@@ -1056,7 +1060,6 @@ npm run setup
1056
1060
  - **[Contributing](CONTRIBUTING.md)** - Development guidelines
1057
1061
  - **[Plugin Development](docs/developer/plugins.md)** - Extend functionality
1058
1062
 
1059
-
1060
1063
  ### Deployment & Operations
1061
1064
 
1062
1065
  - **[Docker Deployment](docs/deployment/docker.md)** - Container deployment
@@ -1114,7 +1117,8 @@ docker pull docdyhr/mcp-wordpress:1.3.1
1114
1117
 
1115
1118
  **Ready to transform your WordPress management?**
1116
1119
 
1117
- 1. **🏆 [Download DXT Extension](https://github.com/docdyhr/mcp-wordpress/raw/main/mcp-wordpress.dxt)** - Easiest setup
1120
+ 1. **🏆 [Download DXT Extension](https://github.com/docdyhr/mcp-wordpress/releases/latest/download/mcp-wordpress.dxt)** -
1121
+ Easiest setup
1118
1122
  (2 minutes)
1119
1123
  2. **⚡ [Try NPX Method](docs/user-guides/NPX_SETUP.md)** - Power user setup (5 minutes)
1120
1124
  3. **📚 [Explore All Tools](docs/api/README.md)** - See what's possible
package/bin/status.js CHANGED
@@ -18,7 +18,7 @@ class WordPressStatus {
18
18
 
19
19
  loadConfig() {
20
20
  if (existsSync(this.envPath)) {
21
- dotenv.config({ path: this.envPath });
21
+ dotenv.config({ path: this.envPath, debug: false });
22
22
  }
23
23
  }
24
24
 
@@ -1 +1 @@
1
- {"version":3,"file":"ServerConfiguration.d.ts","sourceRoot":"","sources":["../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EAEL,KAAK,QAAQ,IAAI,UAAU,EAC3B,KAAK,mBAAmB,IAAI,eAAe,EAC3C,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;AAE3D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;;IAqBxB;;OAEG;WACW,WAAW,IAAI,mBAAmB;IAOhD;;;OAGG;IACI,wBAAwB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG;QAC1D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtC,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB;IAkBD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4F7B;;OAEG;IACI,UAAU,IAAI,MAAM;CAG5B"}
1
+ {"version":3,"file":"ServerConfiguration.d.ts","sourceRoot":"","sources":["../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EAEL,KAAK,QAAQ,IAAI,UAAU,EAC3B,KAAK,mBAAmB,IAAI,eAAe,EAC3C,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;AAE3D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;;IAyCxB;;OAEG;WACW,WAAW,IAAI,mBAAmB;IAOhD;;;OAGG;IACI,wBAAwB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG;QAC1D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtC,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB;IAkBD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4F7B;;OAEG;IACI,UAAU,IAAI,MAAM;CAG5B"}
@@ -23,8 +23,29 @@ export class ServerConfiguration {
23
23
  const __dirname = path.dirname(__filename);
24
24
  this.rootDir = path.resolve(__dirname, "../..");
25
25
  this.envPath = path.resolve(this.rootDir, ".env");
26
- // Load environment variables
27
- dotenv.config({ path: this.envPath });
26
+ // Load environment variables (completely silent for MCP compatibility)
27
+ // Suppress dotenv output that could interfere with JSON-RPC communication
28
+ // eslint-disable-next-line no-console
29
+ const originalConsoleLog = console.log;
30
+ // eslint-disable-next-line no-console
31
+ const originalConsoleError = console.error;
32
+ try {
33
+ // eslint-disable-next-line no-console
34
+ console.log = () => { };
35
+ // eslint-disable-next-line no-console
36
+ console.error = () => { };
37
+ dotenv.config({
38
+ path: this.envPath,
39
+ debug: false,
40
+ override: false
41
+ });
42
+ }
43
+ finally {
44
+ // eslint-disable-next-line no-console
45
+ console.log = originalConsoleLog;
46
+ // eslint-disable-next-line no-console
47
+ console.error = originalConsoleError;
48
+ }
28
49
  // Debug output for DXT troubleshooting (reduced in DXT mode)
29
50
  if (ConfigHelpers.shouldDebug()) {
30
51
  this.logger.debug("ServerConfiguration initialized", {
@@ -1 +1 @@
1
- {"version":3,"file":"ServerConfiguration.js","sourceRoot":"","sources":["../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ServerConfiguration.js","sourceRoot":"","sources":["../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,120 @@
1
+ /**
2
+ * Intelligent cache invalidation strategies for WordPress MCP Server
3
+ * Implements event-based and pattern-based invalidation
4
+ */
5
+ import { HttpCacheWrapper } from "./HttpCacheWrapper.js";
6
+ export interface InvalidationRule {
7
+ trigger: string;
8
+ patterns: string[];
9
+ immediate?: boolean;
10
+ cascade?: boolean;
11
+ }
12
+ export interface InvalidationEvent {
13
+ type: "create" | "update" | "delete";
14
+ resource: string;
15
+ id?: number | undefined;
16
+ siteId: string;
17
+ timestamp: number;
18
+ data?: unknown;
19
+ }
20
+ /**
21
+ * Cache invalidation manager that handles intelligent cache clearing
22
+ */
23
+ export declare class CacheInvalidation {
24
+ private httpCache;
25
+ private invalidationRules;
26
+ private eventQueue;
27
+ private processing;
28
+ private logger;
29
+ constructor(httpCache: HttpCacheWrapper);
30
+ /**
31
+ * Register invalidation rule
32
+ */
33
+ registerRule(resource: string, rule: InvalidationRule): void;
34
+ /**
35
+ * Trigger invalidation event
36
+ */
37
+ trigger(event: InvalidationEvent): Promise<void>;
38
+ /**
39
+ * Invalidate cache for specific resource
40
+ */
41
+ invalidateResource(resource: string, id?: number, type?: "create" | "update" | "delete"): Promise<void>;
42
+ /**
43
+ * Setup default invalidation rules
44
+ */
45
+ private setupDefaultRules;
46
+ /**
47
+ * Process invalidation event queue
48
+ */
49
+ private processQueue;
50
+ /**
51
+ * Process single invalidation event
52
+ */
53
+ private processEvent;
54
+ /**
55
+ * Apply invalidation rule to cache
56
+ */
57
+ private applyInvalidationRule;
58
+ /**
59
+ * Get invalidation statistics
60
+ */
61
+ getStats(): {
62
+ queueSize: number;
63
+ rulesCount: number;
64
+ processing: boolean;
65
+ };
66
+ /**
67
+ * Clear all invalidation rules
68
+ */
69
+ clearRules(): void;
70
+ /**
71
+ * Get all registered rules
72
+ */
73
+ getRules(): Record<string, InvalidationRule[]>;
74
+ }
75
+ /**
76
+ * Cache invalidation patterns for common WordPress operations
77
+ */
78
+ export declare class WordPressCachePatterns {
79
+ /**
80
+ * Invalidate all content-related caches
81
+ */
82
+ static invalidateContent(cache: HttpCacheWrapper): number;
83
+ /**
84
+ * Invalidate all taxonomy-related caches
85
+ */
86
+ static invalidateTaxonomies(cache: HttpCacheWrapper): number;
87
+ /**
88
+ * Invalidate all user-related caches
89
+ */
90
+ static invalidateUsers(cache: HttpCacheWrapper): number;
91
+ /**
92
+ * Invalidate search-related caches
93
+ */
94
+ static invalidateSearch(cache: HttpCacheWrapper): number;
95
+ /**
96
+ * Invalidate all caches (nuclear option)
97
+ */
98
+ static invalidateAll(cache: HttpCacheWrapper): number;
99
+ }
100
+ /**
101
+ * Cache warming strategies for common WordPress data
102
+ */
103
+ export declare class CacheWarmer {
104
+ private httpCache;
105
+ private logger;
106
+ constructor(httpCache: HttpCacheWrapper);
107
+ /**
108
+ * Warm cache with essential WordPress data
109
+ */
110
+ warmEssentials(): Promise<void>;
111
+ /**
112
+ * Warm cache with taxonomy data
113
+ */
114
+ warmTaxonomies(): Promise<void>;
115
+ /**
116
+ * Warm cache with user data
117
+ */
118
+ warmUsers(): Promise<void>;
119
+ }
120
+ //# sourceMappingURL=CacheInvalidation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CacheInvalidation.d.ts","sourceRoot":"","sources":["../../../src/cache/CacheInvalidation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,iBAAiB;IAMhB,OAAO,CAAC,SAAS;IAL7B,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAyB;gBAEnB,SAAS,EAAE,gBAAgB;IAI/C;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI;IAO5D;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQtD;;OAEG;IACG,kBAAkB,CACtB,QAAQ,EAAE,MAAM,EAChB,EAAE,CAAC,EAAE,MAAM,EACX,IAAI,GAAE,QAAQ,GAAG,QAAQ,GAAG,QAAmB,GAC9C,OAAO,CAAC,IAAI,CAAC;IAYhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAuLzB;;OAEG;YACW,YAAY;IAiB1B;;OAEG;YACW,YAAY;IAU1B;;OAEG;YACW,qBAAqB;IAqBnC;;OAEG;IACH,QAAQ,IAAI;QACV,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;KACrB;IAQD;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,gBAAgB,EAAE,CAAC;CAO/C;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAIzD;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAI5D;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAIvD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;IAIxD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM;CAGtD;AAED;;GAEG;AACH,qBAAa,WAAW;IAGV,OAAO,CAAC,SAAS;IAF7B,OAAO,CAAC,MAAM,CAAyB;gBAEnB,SAAS,EAAE,gBAAgB;IAE/C;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAMrC;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrC;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;CAGjC"}
@@ -0,0 +1,355 @@
1
+ /**
2
+ * Intelligent cache invalidation strategies for WordPress MCP Server
3
+ * Implements event-based and pattern-based invalidation
4
+ */
5
+ import { LoggerFactory } from "../utils/logger.js";
6
+ /**
7
+ * Cache invalidation manager that handles intelligent cache clearing
8
+ */
9
+ export class CacheInvalidation {
10
+ httpCache;
11
+ invalidationRules = new Map();
12
+ eventQueue = [];
13
+ processing = false;
14
+ logger = LoggerFactory.cache();
15
+ constructor(httpCache) {
16
+ this.httpCache = httpCache;
17
+ this.setupDefaultRules();
18
+ }
19
+ /**
20
+ * Register invalidation rule
21
+ */
22
+ registerRule(resource, rule) {
23
+ if (!this.invalidationRules.has(resource)) {
24
+ this.invalidationRules.set(resource, []);
25
+ }
26
+ this.invalidationRules.get(resource).push(rule);
27
+ }
28
+ /**
29
+ * Trigger invalidation event
30
+ */
31
+ async trigger(event) {
32
+ this.eventQueue.push(event);
33
+ if (!this.processing) {
34
+ await this.processQueue();
35
+ }
36
+ }
37
+ /**
38
+ * Invalidate cache for specific resource
39
+ */
40
+ async invalidateResource(resource, id, type = "update") {
41
+ const event = {
42
+ type,
43
+ resource,
44
+ id,
45
+ siteId: this.httpCache["siteId"], // Access private property
46
+ timestamp: Date.now(),
47
+ };
48
+ await this.trigger(event);
49
+ }
50
+ /**
51
+ * Setup default invalidation rules
52
+ */
53
+ setupDefaultRules() {
54
+ // Post invalidation rules
55
+ this.registerRule("posts", {
56
+ trigger: "create",
57
+ patterns: [
58
+ "posts", // All posts listings
59
+ "posts/\\d+", // Specific post
60
+ "categories", // Category listings (if post has categories)
61
+ "tags", // Tag listings (if post has tags)
62
+ "search", // Search results
63
+ ],
64
+ immediate: true,
65
+ cascade: true,
66
+ });
67
+ this.registerRule("posts", {
68
+ trigger: "update",
69
+ patterns: [
70
+ "posts/\\d+", // Specific post
71
+ "posts.*", // All posts with parameters
72
+ "search", // Search results
73
+ ],
74
+ immediate: true,
75
+ });
76
+ this.registerRule("posts", {
77
+ trigger: "delete",
78
+ patterns: [
79
+ "posts", // All posts listings
80
+ "posts/\\d+", // Specific post
81
+ "categories", // Category counts might change
82
+ "tags", // Tag counts might change
83
+ "search", // Search results
84
+ ],
85
+ immediate: true,
86
+ cascade: true,
87
+ });
88
+ // Page invalidation rules
89
+ this.registerRule("pages", {
90
+ trigger: "create",
91
+ patterns: ["pages", "pages/\\d+"],
92
+ immediate: true,
93
+ });
94
+ this.registerRule("pages", {
95
+ trigger: "update",
96
+ patterns: ["pages/\\d+", "pages.*"],
97
+ immediate: true,
98
+ });
99
+ this.registerRule("pages", {
100
+ trigger: "delete",
101
+ patterns: ["pages", "pages/\\d+"],
102
+ immediate: true,
103
+ });
104
+ // Comment invalidation rules
105
+ this.registerRule("comments", {
106
+ trigger: "create",
107
+ patterns: [
108
+ "comments",
109
+ "comments.*",
110
+ "posts/\\d+.*", // Parent post cache
111
+ ],
112
+ immediate: true,
113
+ });
114
+ this.registerRule("comments", {
115
+ trigger: "update",
116
+ patterns: [
117
+ "comments/\\d+",
118
+ "comments.*",
119
+ "posts/\\d+.*", // Parent post cache
120
+ ],
121
+ immediate: true,
122
+ });
123
+ this.registerRule("comments", {
124
+ trigger: "delete",
125
+ patterns: [
126
+ "comments",
127
+ "comments/\\d+",
128
+ "posts/\\d+.*", // Parent post cache
129
+ ],
130
+ immediate: true,
131
+ });
132
+ // Media invalidation rules
133
+ this.registerRule("media", {
134
+ trigger: "create",
135
+ patterns: ["media", "media.*"],
136
+ immediate: true,
137
+ });
138
+ this.registerRule("media", {
139
+ trigger: "update",
140
+ patterns: ["media/\\d+", "media.*"],
141
+ immediate: true,
142
+ });
143
+ this.registerRule("media", {
144
+ trigger: "delete",
145
+ patterns: ["media", "media/\\d+"],
146
+ immediate: true,
147
+ });
148
+ // User invalidation rules
149
+ this.registerRule("users", {
150
+ trigger: "create",
151
+ patterns: ["users", "users.*"],
152
+ immediate: true,
153
+ });
154
+ this.registerRule("users", {
155
+ trigger: "update",
156
+ patterns: [
157
+ "users/\\d+",
158
+ "users.*",
159
+ "users/me", // Current user info
160
+ ],
161
+ immediate: true,
162
+ });
163
+ this.registerRule("users", {
164
+ trigger: "delete",
165
+ patterns: ["users", "users/\\d+"],
166
+ immediate: true,
167
+ });
168
+ // Category invalidation rules
169
+ this.registerRule("categories", {
170
+ trigger: "create",
171
+ patterns: ["categories", "categories.*", "posts.*"],
172
+ immediate: true,
173
+ cascade: true,
174
+ });
175
+ this.registerRule("categories", {
176
+ trigger: "update",
177
+ patterns: ["categories/\\d+", "categories.*", "posts.*"],
178
+ immediate: true,
179
+ cascade: true,
180
+ });
181
+ this.registerRule("categories", {
182
+ trigger: "delete",
183
+ patterns: ["categories", "categories/\\d+", "posts.*"],
184
+ immediate: true,
185
+ cascade: true,
186
+ });
187
+ // Tag invalidation rules
188
+ this.registerRule("tags", {
189
+ trigger: "create",
190
+ patterns: ["tags", "tags.*", "posts.*"],
191
+ immediate: true,
192
+ cascade: true,
193
+ });
194
+ this.registerRule("tags", {
195
+ trigger: "update",
196
+ patterns: ["tags/\\d+", "tags.*", "posts.*"],
197
+ immediate: true,
198
+ cascade: true,
199
+ });
200
+ this.registerRule("tags", {
201
+ trigger: "delete",
202
+ patterns: ["tags", "tags/\\d+", "posts.*"],
203
+ immediate: true,
204
+ cascade: true,
205
+ });
206
+ // Settings invalidation rules (rarely change)
207
+ this.registerRule("settings", {
208
+ trigger: "update",
209
+ patterns: ["settings.*"],
210
+ immediate: true,
211
+ cascade: false,
212
+ });
213
+ }
214
+ /**
215
+ * Process invalidation event queue
216
+ */
217
+ async processQueue() {
218
+ if (this.processing || this.eventQueue.length === 0) {
219
+ return;
220
+ }
221
+ this.processing = true;
222
+ try {
223
+ while (this.eventQueue.length > 0) {
224
+ const event = this.eventQueue.shift();
225
+ await this.processEvent(event);
226
+ }
227
+ }
228
+ finally {
229
+ this.processing = false;
230
+ }
231
+ }
232
+ /**
233
+ * Process single invalidation event
234
+ */
235
+ async processEvent(event) {
236
+ const rules = this.invalidationRules.get(event.resource) || [];
237
+ for (const rule of rules) {
238
+ if (rule.trigger === event.type || rule.trigger === "*") {
239
+ await this.applyInvalidationRule(event, rule);
240
+ }
241
+ }
242
+ }
243
+ /**
244
+ * Apply invalidation rule to cache
245
+ */
246
+ async applyInvalidationRule(event, rule) {
247
+ for (const pattern of rule.patterns) {
248
+ let invalidationPattern = pattern;
249
+ // Replace placeholders with actual values
250
+ if (event.id) {
251
+ invalidationPattern = invalidationPattern.replace("\\d+", event.id.toString());
252
+ }
253
+ // Invalidate matching cache entries
254
+ const invalidated = this.httpCache.invalidatePattern(invalidationPattern);
255
+ if (invalidated > 0) {
256
+ this.logger.info("Cache entries invalidated", {
257
+ count: invalidated,
258
+ pattern: invalidationPattern,
259
+ });
260
+ }
261
+ }
262
+ }
263
+ /**
264
+ * Get invalidation statistics
265
+ */
266
+ getStats() {
267
+ return {
268
+ queueSize: this.eventQueue.length,
269
+ rulesCount: Array.from(this.invalidationRules.values()).reduce((acc, rules) => acc + rules.length, 0),
270
+ processing: this.processing,
271
+ };
272
+ }
273
+ /**
274
+ * Clear all invalidation rules
275
+ */
276
+ clearRules() {
277
+ this.invalidationRules.clear();
278
+ }
279
+ /**
280
+ * Get all registered rules
281
+ */
282
+ getRules() {
283
+ const rules = {};
284
+ for (const [resource, ruleList] of this.invalidationRules.entries()) {
285
+ rules[resource] = [...ruleList];
286
+ }
287
+ return rules;
288
+ }
289
+ }
290
+ /**
291
+ * Cache invalidation patterns for common WordPress operations
292
+ */
293
+ export class WordPressCachePatterns {
294
+ /**
295
+ * Invalidate all content-related caches
296
+ */
297
+ static invalidateContent(cache) {
298
+ return cache.invalidatePattern("(posts|pages|comments|media)");
299
+ }
300
+ /**
301
+ * Invalidate all taxonomy-related caches
302
+ */
303
+ static invalidateTaxonomies(cache) {
304
+ return cache.invalidatePattern("(categories|tags|taxonomies)");
305
+ }
306
+ /**
307
+ * Invalidate all user-related caches
308
+ */
309
+ static invalidateUsers(cache) {
310
+ return cache.invalidatePattern("users");
311
+ }
312
+ /**
313
+ * Invalidate search-related caches
314
+ */
315
+ static invalidateSearch(cache) {
316
+ return cache.invalidatePattern("search");
317
+ }
318
+ /**
319
+ * Invalidate all caches (nuclear option)
320
+ */
321
+ static invalidateAll(cache) {
322
+ return cache.invalidateAll();
323
+ }
324
+ }
325
+ /**
326
+ * Cache warming strategies for common WordPress data
327
+ */
328
+ export class CacheWarmer {
329
+ httpCache;
330
+ logger = LoggerFactory.cache();
331
+ constructor(httpCache) {
332
+ this.httpCache = httpCache;
333
+ }
334
+ /**
335
+ * Warm cache with essential WordPress data
336
+ */
337
+ async warmEssentials() {
338
+ // Implementation would depend on your specific WordPress client
339
+ // This is a placeholder for the structure
340
+ this.logger.info("Warming essential caches");
341
+ }
342
+ /**
343
+ * Warm cache with taxonomy data
344
+ */
345
+ async warmTaxonomies() {
346
+ this.logger.info("Warming taxonomy caches");
347
+ }
348
+ /**
349
+ * Warm cache with user data
350
+ */
351
+ async warmUsers() {
352
+ this.logger.info("Warming user caches");
353
+ }
354
+ }
355
+ //# sourceMappingURL=CacheInvalidation.js.map