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.
- package/README.md +19 -15
- package/bin/status.js +1 -1
- package/dist/config/ServerConfiguration.d.ts.map +1 -1
- package/dist/config/ServerConfiguration.js +23 -2
- package/dist/config/ServerConfiguration.js.map +1 -1
- package/dist/src/cache/CacheInvalidation.d.ts +120 -0
- package/dist/src/cache/CacheInvalidation.d.ts.map +1 -0
- package/dist/src/cache/CacheInvalidation.js +355 -0
- package/dist/src/cache/CacheInvalidation.js.map +1 -0
- package/dist/src/cache/CacheManager.d.ts +149 -0
- package/dist/src/cache/CacheManager.d.ts.map +1 -0
- package/dist/src/cache/CacheManager.js +326 -0
- package/dist/src/cache/CacheManager.js.map +1 -0
- package/dist/src/cache/HttpCacheWrapper.d.ts +122 -0
- package/dist/src/cache/HttpCacheWrapper.d.ts.map +1 -0
- package/dist/src/cache/HttpCacheWrapper.js +283 -0
- package/dist/src/cache/HttpCacheWrapper.js.map +1 -0
- package/dist/src/cache/index.d.ts +12 -0
- package/dist/src/cache/index.d.ts.map +1 -0
- package/dist/src/cache/index.js +9 -0
- package/dist/src/cache/index.js.map +1 -0
- package/dist/src/client/CachedWordPressClient.d.ts +174 -0
- package/dist/src/client/CachedWordPressClient.d.ts.map +1 -0
- package/dist/src/client/CachedWordPressClient.js +345 -0
- package/dist/src/client/CachedWordPressClient.js.map +1 -0
- package/dist/src/client/MockWordPressClient.d.ts +56 -0
- package/dist/src/client/MockWordPressClient.d.ts.map +1 -0
- package/dist/src/client/MockWordPressClient.js +371 -0
- package/dist/src/client/MockWordPressClient.js.map +1 -0
- package/dist/src/client/api.d.ts +235 -0
- package/dist/src/client/api.d.ts.map +1 -0
- package/dist/src/client/api.js +896 -0
- package/dist/src/client/api.js.map +1 -0
- package/dist/src/client/auth.d.ts +121 -0
- package/dist/src/client/auth.d.ts.map +1 -0
- package/dist/src/client/auth.js +429 -0
- package/dist/src/client/auth.js.map +1 -0
- package/dist/src/client/managers/AuthenticationManager.d.ts +92 -0
- package/dist/src/client/managers/AuthenticationManager.d.ts.map +1 -0
- package/dist/src/client/managers/AuthenticationManager.js +369 -0
- package/dist/src/client/managers/AuthenticationManager.js.map +1 -0
- package/dist/src/client/managers/BaseManager.d.ts +22 -0
- package/dist/src/client/managers/BaseManager.d.ts.map +1 -0
- package/dist/src/client/managers/BaseManager.js +53 -0
- package/dist/src/client/managers/BaseManager.js.map +1 -0
- package/dist/src/client/managers/RequestManager.d.ts +47 -0
- package/dist/src/client/managers/RequestManager.d.ts.map +1 -0
- package/dist/src/client/managers/RequestManager.js +193 -0
- package/dist/src/client/managers/RequestManager.js.map +1 -0
- package/dist/src/client/managers/index.d.ts +8 -0
- package/dist/src/client/managers/index.d.ts.map +1 -0
- package/dist/src/client/managers/index.js +8 -0
- package/dist/src/client/managers/index.js.map +1 -0
- package/dist/src/config/Config.d.ts +155 -0
- package/dist/src/config/Config.d.ts.map +1 -0
- package/dist/src/config/Config.js +215 -0
- package/dist/src/config/Config.js.map +1 -0
- package/dist/src/config/ConfigurationSchema.d.ts +281 -0
- package/dist/src/config/ConfigurationSchema.d.ts.map +1 -0
- package/dist/src/config/ConfigurationSchema.js +205 -0
- package/dist/src/config/ConfigurationSchema.js.map +1 -0
- package/dist/src/config/ServerConfiguration.d.ts +47 -0
- package/dist/src/config/ServerConfiguration.d.ts.map +1 -0
- package/dist/src/config/ServerConfiguration.js +255 -0
- package/dist/src/config/ServerConfiguration.js.map +1 -0
- package/dist/src/docs/DocumentationGenerator.d.ts +185 -0
- package/dist/src/docs/DocumentationGenerator.d.ts.map +1 -0
- package/dist/src/docs/DocumentationGenerator.js +777 -0
- package/dist/src/docs/DocumentationGenerator.js.map +1 -0
- package/dist/src/docs/MarkdownFormatter.d.ts +84 -0
- package/dist/src/docs/MarkdownFormatter.d.ts.map +1 -0
- package/dist/src/docs/MarkdownFormatter.js +458 -0
- package/dist/src/docs/MarkdownFormatter.js.map +1 -0
- package/dist/src/docs/index.d.ts +8 -0
- package/dist/src/docs/index.d.ts.map +1 -0
- package/dist/src/docs/index.js +7 -0
- package/dist/src/docs/index.js.map +1 -0
- package/dist/src/dxt-entry.d.ts +6 -0
- package/dist/src/dxt-entry.d.ts.map +1 -0
- package/dist/src/dxt-entry.js +39 -0
- package/dist/src/dxt-entry.js.map +1 -0
- package/dist/src/index.d.ts +18 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +143 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/performance/MetricsCollector.d.ts +145 -0
- package/dist/src/performance/MetricsCollector.d.ts.map +1 -0
- package/dist/src/performance/MetricsCollector.js +368 -0
- package/dist/src/performance/MetricsCollector.js.map +1 -0
- package/dist/src/performance/PerformanceAnalytics.d.ts +168 -0
- package/dist/src/performance/PerformanceAnalytics.d.ts.map +1 -0
- package/dist/src/performance/PerformanceAnalytics.js +570 -0
- package/dist/src/performance/PerformanceAnalytics.js.map +1 -0
- package/dist/src/performance/PerformanceMonitor.d.ts +203 -0
- package/dist/src/performance/PerformanceMonitor.d.ts.map +1 -0
- package/dist/src/performance/PerformanceMonitor.js +478 -0
- package/dist/src/performance/PerformanceMonitor.js.map +1 -0
- package/dist/src/performance/index.d.ts +11 -0
- package/dist/src/performance/index.d.ts.map +1 -0
- package/dist/src/performance/index.js +8 -0
- package/dist/src/performance/index.js.map +1 -0
- package/dist/src/security/AISecurityScanner.d.ts +176 -0
- package/dist/src/security/AISecurityScanner.d.ts.map +1 -0
- package/dist/src/security/AISecurityScanner.js +655 -0
- package/dist/src/security/AISecurityScanner.js.map +1 -0
- package/dist/src/security/AutomatedRemediation.d.ts +146 -0
- package/dist/src/security/AutomatedRemediation.d.ts.map +1 -0
- package/dist/src/security/AutomatedRemediation.js +566 -0
- package/dist/src/security/AutomatedRemediation.js.map +1 -0
- package/dist/src/security/InputValidator.d.ts +219 -0
- package/dist/src/security/InputValidator.d.ts.map +1 -0
- package/dist/src/security/InputValidator.js +295 -0
- package/dist/src/security/InputValidator.js.map +1 -0
- package/dist/src/security/SecurityCIPipeline.d.ts +213 -0
- package/dist/src/security/SecurityCIPipeline.d.ts.map +1 -0
- package/dist/src/security/SecurityCIPipeline.js +693 -0
- package/dist/src/security/SecurityCIPipeline.js.map +1 -0
- package/dist/src/security/SecurityConfig.d.ts +129 -0
- package/dist/src/security/SecurityConfig.d.ts.map +1 -0
- package/dist/src/security/SecurityConfig.js +266 -0
- package/dist/src/security/SecurityConfig.js.map +1 -0
- package/dist/src/security/SecurityConfigManager.d.ts +294 -0
- package/dist/src/security/SecurityConfigManager.d.ts.map +1 -0
- package/dist/src/security/SecurityConfigManager.js +558 -0
- package/dist/src/security/SecurityConfigManager.js.map +1 -0
- package/dist/src/security/SecurityMonitoring.d.ts +245 -0
- package/dist/src/security/SecurityMonitoring.d.ts.map +1 -0
- package/dist/src/security/SecurityMonitoring.js +598 -0
- package/dist/src/security/SecurityMonitoring.js.map +1 -0
- package/dist/src/security/SecurityReviewer.d.ts +168 -0
- package/dist/src/security/SecurityReviewer.d.ts.map +1 -0
- package/dist/src/security/SecurityReviewer.js +686 -0
- package/dist/src/security/SecurityReviewer.js.map +1 -0
- package/dist/src/security/index.d.ts +183 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +218 -0
- package/dist/src/security/index.js.map +1 -0
- package/dist/src/server/ConnectionTester.d.ts +32 -0
- package/dist/src/server/ConnectionTester.d.ts.map +1 -0
- package/dist/src/server/ConnectionTester.js +135 -0
- package/dist/src/server/ConnectionTester.js.map +1 -0
- package/dist/src/server/ToolRegistry.d.ts +50 -0
- package/dist/src/server/ToolRegistry.d.ts.map +1 -0
- package/dist/src/server/ToolRegistry.js +219 -0
- package/dist/src/server/ToolRegistry.js.map +1 -0
- package/dist/src/server.d.ts +7 -0
- package/dist/src/server.d.ts.map +1 -0
- package/dist/src/server.js +7 -0
- package/dist/src/server.js.map +1 -0
- package/dist/src/tools/BaseToolManager.d.ts +62 -0
- package/dist/src/tools/BaseToolManager.d.ts.map +1 -0
- package/dist/src/tools/BaseToolManager.js +195 -0
- package/dist/src/tools/BaseToolManager.js.map +1 -0
- package/dist/src/tools/auth.d.ts +50 -0
- package/dist/src/tools/auth.d.ts.map +1 -0
- package/dist/src/tools/auth.js +133 -0
- package/dist/src/tools/auth.js.map +1 -0
- package/dist/src/tools/cache.d.ts +260 -0
- package/dist/src/tools/cache.d.ts.map +1 -0
- package/dist/src/tools/cache.js +232 -0
- package/dist/src/tools/cache.js.map +1 -0
- package/dist/src/tools/comments.d.ts +33 -0
- package/dist/src/tools/comments.d.ts.map +1 -0
- package/dist/src/tools/comments.js +235 -0
- package/dist/src/tools/comments.js.map +1 -0
- package/dist/src/tools/index.d.ts +11 -0
- package/dist/src/tools/index.d.ts.map +1 -0
- package/dist/src/tools/index.js +11 -0
- package/dist/src/tools/index.js.map +1 -0
- package/dist/src/tools/media.d.ts +70 -0
- package/dist/src/tools/media.d.ts.map +1 -0
- package/dist/src/tools/media.js +248 -0
- package/dist/src/tools/media.js.map +1 -0
- package/dist/src/tools/pages.d.ts +32 -0
- package/dist/src/tools/pages.d.ts.map +1 -0
- package/dist/src/tools/pages.js +215 -0
- package/dist/src/tools/pages.js.map +1 -0
- package/dist/src/tools/performance.d.ts +73 -0
- package/dist/src/tools/performance.d.ts.map +1 -0
- package/dist/src/tools/performance.js +922 -0
- package/dist/src/tools/performance.js.map +1 -0
- package/dist/src/tools/posts/PostHandlers.d.ts +46 -0
- package/dist/src/tools/posts/PostHandlers.d.ts.map +1 -0
- package/dist/src/tools/posts/PostHandlers.js +400 -0
- package/dist/src/tools/posts/PostHandlers.js.map +1 -0
- package/dist/src/tools/posts/PostToolDefinitions.d.ts +37 -0
- package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +1 -0
- package/dist/src/tools/posts/PostToolDefinitions.js +236 -0
- package/dist/src/tools/posts/PostToolDefinitions.js.map +1 -0
- package/dist/src/tools/posts/index.d.ts +138 -0
- package/dist/src/tools/posts/index.d.ts.map +1 -0
- package/dist/src/tools/posts/index.js +163 -0
- package/dist/src/tools/posts/index.js.map +1 -0
- package/dist/src/tools/posts.d.ts +15 -0
- package/dist/src/tools/posts.d.ts.map +1 -0
- package/dist/src/tools/posts.js +16 -0
- package/dist/src/tools/posts.js.map +1 -0
- package/dist/src/tools/site.d.ts +32 -0
- package/dist/src/tools/site.d.ts.map +1 -0
- package/dist/src/tools/site.js +234 -0
- package/dist/src/tools/site.js.map +1 -0
- package/dist/src/tools/taxonomies.d.ts +36 -0
- package/dist/src/tools/taxonomies.d.ts.map +1 -0
- package/dist/src/tools/taxonomies.js +286 -0
- package/dist/src/tools/taxonomies.js.map +1 -0
- package/dist/src/tools/users.d.ts +33 -0
- package/dist/src/tools/users.d.ts.map +1 -0
- package/dist/src/tools/users.js +308 -0
- package/dist/src/tools/users.js.map +1 -0
- package/dist/src/types/client.d.ts +223 -0
- package/dist/src/types/client.d.ts.map +1 -0
- package/dist/src/types/client.js +97 -0
- package/dist/src/types/client.js.map +1 -0
- package/dist/src/types/enhanced.d.ts +237 -0
- package/dist/src/types/enhanced.d.ts.map +1 -0
- package/dist/src/types/enhanced.js +49 -0
- package/dist/src/types/enhanced.js.map +1 -0
- package/dist/src/types/index.d.ts +160 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +14 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/types/mcp.d.ts +178 -0
- package/dist/src/types/mcp.d.ts.map +1 -0
- package/dist/src/types/mcp.js +7 -0
- package/dist/src/types/mcp.js.map +1 -0
- package/dist/src/types/requests.d.ts +322 -0
- package/dist/src/types/requests.d.ts.map +1 -0
- package/dist/src/types/requests.js +8 -0
- package/dist/src/types/requests.js.map +1 -0
- package/dist/src/types/tools.d.ts +506 -0
- package/dist/src/types/tools.d.ts.map +1 -0
- package/dist/src/types/tools.js +8 -0
- package/dist/src/types/tools.js.map +1 -0
- package/dist/src/types/wordpress.d.ts +471 -0
- package/dist/src/types/wordpress.d.ts.map +1 -0
- package/dist/src/types/wordpress.js +14 -0
- package/dist/src/types/wordpress.js.map +1 -0
- package/dist/src/utils/debug.d.ts +71 -0
- package/dist/src/utils/debug.d.ts.map +1 -0
- package/dist/src/utils/debug.js +235 -0
- package/dist/src/utils/debug.js.map +1 -0
- package/dist/src/utils/enhancedError.d.ts +61 -0
- package/dist/src/utils/enhancedError.d.ts.map +1 -0
- package/dist/src/utils/enhancedError.js +221 -0
- package/dist/src/utils/enhancedError.js.map +1 -0
- package/dist/src/utils/error.d.ts +17 -0
- package/dist/src/utils/error.d.ts.map +1 -0
- package/dist/src/utils/error.js +108 -0
- package/dist/src/utils/error.js.map +1 -0
- package/dist/src/utils/logger.d.ts +106 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +280 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/streaming.d.ts +104 -0
- package/dist/src/utils/streaming.d.ts.map +1 -0
- package/dist/src/utils/streaming.js +331 -0
- package/dist/src/utils/streaming.js.map +1 -0
- package/dist/src/utils/toolWrapper.d.ts +42 -0
- package/dist/src/utils/toolWrapper.d.ts.map +1 -0
- package/dist/src/utils/toolWrapper.js +101 -0
- package/dist/src/utils/toolWrapper.js.map +1 -0
- package/dist/src/utils/validation/core.d.ts +21 -0
- package/dist/src/utils/validation/core.d.ts.map +1 -0
- package/dist/src/utils/validation/core.js +71 -0
- package/dist/src/utils/validation/core.js.map +1 -0
- package/dist/src/utils/validation/index.d.ts +25 -0
- package/dist/src/utils/validation/index.d.ts.map +1 -0
- package/dist/src/utils/validation/index.js +29 -0
- package/dist/src/utils/validation/index.js.map +1 -0
- package/dist/src/utils/validation/network.d.ts +19 -0
- package/dist/src/utils/validation/network.d.ts.map +1 -0
- package/dist/src/utils/validation/network.js +93 -0
- package/dist/src/utils/validation/network.js.map +1 -0
- package/dist/src/utils/validation/rateLimit.d.ts +21 -0
- package/dist/src/utils/validation/rateLimit.d.ts.map +1 -0
- package/dist/src/utils/validation/rateLimit.js +43 -0
- package/dist/src/utils/validation/rateLimit.js.map +1 -0
- package/dist/src/utils/validation/security.d.ts +29 -0
- package/dist/src/utils/validation/security.d.ts.map +1 -0
- package/dist/src/utils/validation/security.js +327 -0
- package/dist/src/utils/validation/security.js.map +1 -0
- package/dist/src/utils/validation/wordpress.d.ts +31 -0
- package/dist/src/utils/validation/wordpress.d.ts.map +1 -0
- package/dist/src/utils/validation/wordpress.js +146 -0
- package/dist/src/utils/validation/wordpress.js.map +1 -0
- package/dist/src/utils/validation.d.ts +15 -0
- package/dist/src/utils/validation.d.ts.map +1 -0
- package/dist/src/utils/validation.js +27 -0
- package/dist/src/utils/validation.js.map +1 -0
- package/dist/tests/vitest.setup.d.ts +6 -0
- package/dist/tests/vitest.setup.d.ts.map +1 -0
- package/dist/tests/vitest.setup.js +39 -0
- package/dist/tests/vitest.setup.js.map +1 -0
- package/docs/INSTALLATION.md +4 -2
- package/docs/TROUBLESHOOTING.md +2 -1
- package/docs/developer/TESTING.md +24 -19
- package/docs/integrations/claude-desktop.md +9 -4
- package/docs/user-guides/DXT_INSTALLATION.md +2 -1
- package/package.json +28 -29
- package/src/config/ServerConfiguration.ts +22 -2
- package/dist/ajv-patch.js +0 -34
- package/dist/cache/__tests__/CacheInvalidation.test.d.ts +0 -5
- package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +0 -1
- package/dist/cache/__tests__/CacheInvalidation.test.js +0 -238
- package/dist/cache/__tests__/CacheInvalidation.test.js.map +0 -1
- package/dist/cache/__tests__/CacheManager.test.d.ts +0 -5
- package/dist/cache/__tests__/CacheManager.test.d.ts.map +0 -1
- package/dist/cache/__tests__/CacheManager.test.js +0 -233
- package/dist/cache/__tests__/CacheManager.test.js.map +0 -1
- package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +0 -5
- package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +0 -1
- package/dist/cache/__tests__/CachedWordPressClient.test.js +0 -231
- package/dist/cache/__tests__/CachedWordPressClient.test.js.map +0 -1
- package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +0 -5
- package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +0 -1
- package/dist/cache/__tests__/HttpCacheWrapper.test.js +0 -300
- package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +0 -1
- 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
|
[](https://www.npmjs.com/package/mcp-wordpress)
|
|
17
17
|
[](https://www.npmjs.com/package/mcp-wordpress)
|
|
18
18
|
[](https://hub.docker.com/r/docdyhr/mcp-wordpress)
|
|
19
|
-
[](https://github.com/docdyhr/mcp-wordpress)
|
|
20
|
+
[](https://github.com/docdyhr/mcp-wordpress)
|
|
21
|
+
[](https://github.com/docdyhr/mcp-wordpress)
|
|
22
|
+
[](https://github.com/docdyhr/mcp-wordpress)
|
|
23
23
|
[](https://github.com/docdyhr/mcp-wordpress/actions/workflows/mcp-evaluations.yml)
|
|
24
24
|
|
|
25
25
|
[](https://github.com/docdyhr/mcp-wordpress)
|
|
26
|
-
[](https://github.com/docdyhr/mcp-wordpress/tree/main/tests/security)
|
|
27
27
|
[](https://github.com/docdyhr/mcp-wordpress/security/advisories)
|
|
28
|
-
[](https://github.com/docdyhr/mcp-wordpress/blob/main/tests/security/penetration-tests.test.js)
|
|
29
29
|
[](https://hub.docker.com/r/docdyhr/mcp-wordpress)
|
|
30
30
|
[](https://github.com/docdyhr/mcp-wordpress/blob/main/LICENSE)
|
|
31
31
|
[](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**:
|
|
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/
|
|
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/
|
|
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,
|
|
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**:
|
|
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/
|
|
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
|
@@ -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;;
|
|
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
|
|
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":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EACL,sBAAsB,GAIvB,MAAM,0BAA0B,CAAC;AAKlC;;;GAGG;AACH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,QAAQ,CAAsB;IAC5B,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;IACzC,OAAO,CAAS;IAChB,OAAO,CAAS;IAExB;QACE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAChD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAElD,
|
|
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
|