mcp-wordpress 1.1.7 → 1.2.2

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 (255) hide show
  1. package/README.md +388 -66
  2. package/dist/cache/CacheInvalidation.d.ts +118 -0
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -0
  4. package/dist/cache/CacheInvalidation.js +349 -0
  5. package/dist/cache/CacheInvalidation.js.map +1 -0
  6. package/dist/cache/CacheManager.d.ts +143 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -0
  8. package/dist/cache/CacheManager.js +308 -0
  9. package/dist/cache/CacheManager.js.map +1 -0
  10. package/dist/cache/HttpCacheWrapper.d.ts +121 -0
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -0
  12. package/dist/cache/HttpCacheWrapper.js +280 -0
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -0
  14. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +5 -0
  15. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +1 -0
  16. package/dist/cache/__tests__/CacheInvalidation.test.js +236 -0
  17. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -0
  18. package/dist/cache/__tests__/CacheManager.test.d.ts +5 -0
  19. package/dist/cache/__tests__/CacheManager.test.d.ts.map +1 -0
  20. package/dist/cache/__tests__/CacheManager.test.js +233 -0
  21. package/dist/cache/__tests__/CacheManager.test.js.map +1 -0
  22. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +5 -0
  23. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +1 -0
  24. package/dist/cache/__tests__/CachedWordPressClient.test.js +228 -0
  25. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -0
  26. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +5 -0
  27. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +1 -0
  28. package/dist/cache/__tests__/HttpCacheWrapper.test.js +296 -0
  29. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -0
  30. package/dist/cache/index.d.ts +12 -0
  31. package/dist/cache/index.d.ts.map +1 -0
  32. package/dist/cache/index.js +9 -0
  33. package/dist/cache/index.js.map +1 -0
  34. package/dist/client/CachedWordPressClient.d.ts +160 -0
  35. package/dist/client/CachedWordPressClient.d.ts.map +1 -0
  36. package/dist/client/CachedWordPressClient.js +338 -0
  37. package/dist/client/CachedWordPressClient.js.map +1 -0
  38. package/dist/client/WordPressClient.d.ts +81 -0
  39. package/dist/client/WordPressClient.d.ts.map +1 -0
  40. package/dist/client/WordPressClient.js +354 -0
  41. package/dist/client/WordPressClient.js.map +1 -0
  42. package/dist/config/ConfigurationSchema.d.ts +281 -0
  43. package/dist/config/ConfigurationSchema.d.ts.map +1 -0
  44. package/dist/config/ConfigurationSchema.js +205 -0
  45. package/dist/config/ConfigurationSchema.js.map +1 -0
  46. package/dist/config/ServerConfiguration.d.ts +38 -0
  47. package/dist/config/ServerConfiguration.d.ts.map +1 -0
  48. package/dist/config/ServerConfiguration.js +158 -0
  49. package/dist/config/ServerConfiguration.js.map +1 -0
  50. package/dist/docs/DocumentationGenerator.d.ts +184 -0
  51. package/dist/docs/DocumentationGenerator.d.ts.map +1 -0
  52. package/dist/docs/DocumentationGenerator.js +735 -0
  53. package/dist/docs/DocumentationGenerator.js.map +1 -0
  54. package/dist/docs/MarkdownFormatter.d.ts +84 -0
  55. package/dist/docs/MarkdownFormatter.d.ts.map +1 -0
  56. package/dist/docs/MarkdownFormatter.js +448 -0
  57. package/dist/docs/MarkdownFormatter.js.map +1 -0
  58. package/dist/docs/index.d.ts +8 -0
  59. package/dist/docs/index.d.ts.map +1 -0
  60. package/dist/docs/index.js +7 -0
  61. package/dist/docs/index.js.map +1 -0
  62. package/dist/index.d.ts +1 -4
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +12 -212
  65. package/dist/index.js.map +1 -1
  66. package/dist/performance/AnomalyDetector.d.ts +63 -0
  67. package/dist/performance/AnomalyDetector.d.ts.map +1 -0
  68. package/dist/performance/AnomalyDetector.js +222 -0
  69. package/dist/performance/AnomalyDetector.js.map +1 -0
  70. package/dist/performance/BenchmarkAnalyzer.d.ts +67 -0
  71. package/dist/performance/BenchmarkAnalyzer.d.ts.map +1 -0
  72. package/dist/performance/BenchmarkAnalyzer.js +301 -0
  73. package/dist/performance/BenchmarkAnalyzer.js.map +1 -0
  74. package/dist/performance/MetricsCollector.d.ts +139 -0
  75. package/dist/performance/MetricsCollector.d.ts.map +1 -0
  76. package/dist/performance/MetricsCollector.js +320 -0
  77. package/dist/performance/MetricsCollector.js.map +1 -0
  78. package/dist/performance/PerformanceAnalytics.d.ts +162 -0
  79. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -0
  80. package/dist/performance/PerformanceAnalytics.js +554 -0
  81. package/dist/performance/PerformanceAnalytics.js.map +1 -0
  82. package/dist/performance/PerformanceMonitor.d.ts +202 -0
  83. package/dist/performance/PerformanceMonitor.d.ts.map +1 -0
  84. package/dist/performance/PerformanceMonitor.js +478 -0
  85. package/dist/performance/PerformanceMonitor.js.map +1 -0
  86. package/dist/performance/TrendAnalyzer.d.ts +69 -0
  87. package/dist/performance/TrendAnalyzer.d.ts.map +1 -0
  88. package/dist/performance/TrendAnalyzer.js +203 -0
  89. package/dist/performance/TrendAnalyzer.js.map +1 -0
  90. package/dist/performance/index.d.ts +11 -0
  91. package/dist/performance/index.d.ts.map +1 -0
  92. package/dist/performance/index.js +8 -0
  93. package/dist/performance/index.js.map +1 -0
  94. package/dist/security/InputValidator.d.ts +215 -0
  95. package/dist/security/InputValidator.d.ts.map +1 -0
  96. package/dist/security/InputValidator.js +278 -0
  97. package/dist/security/InputValidator.js.map +1 -0
  98. package/dist/security/SecurityConfig.d.ts +129 -0
  99. package/dist/security/SecurityConfig.d.ts.map +1 -0
  100. package/dist/security/SecurityConfig.js +262 -0
  101. package/dist/security/SecurityConfig.js.map +1 -0
  102. package/dist/server/ConnectionTester.d.ts +24 -0
  103. package/dist/server/ConnectionTester.d.ts.map +1 -0
  104. package/dist/server/ConnectionTester.js +61 -0
  105. package/dist/server/ConnectionTester.js.map +1 -0
  106. package/dist/server/ToolRegistry.d.ts +46 -0
  107. package/dist/server/ToolRegistry.d.ts.map +1 -0
  108. package/dist/server/ToolRegistry.js +148 -0
  109. package/dist/server/ToolRegistry.js.map +1 -0
  110. package/dist/tools/BaseToolClass.d.ts +76 -0
  111. package/dist/tools/BaseToolClass.d.ts.map +1 -0
  112. package/dist/tools/BaseToolClass.js +104 -0
  113. package/dist/tools/BaseToolClass.js.map +1 -0
  114. package/dist/tools/BaseToolManager.d.ts +26 -0
  115. package/dist/tools/BaseToolManager.d.ts.map +1 -0
  116. package/dist/tools/BaseToolManager.js +56 -0
  117. package/dist/tools/BaseToolManager.js.map +1 -0
  118. package/dist/tools/base.d.ts +37 -0
  119. package/dist/tools/base.d.ts.map +1 -0
  120. package/dist/tools/base.js +60 -0
  121. package/dist/tools/base.js.map +1 -0
  122. package/dist/tools/cache.d.ts +260 -0
  123. package/dist/tools/cache.d.ts.map +1 -0
  124. package/dist/tools/cache.js +237 -0
  125. package/dist/tools/cache.js.map +1 -0
  126. package/dist/tools/index.d.ts +2 -0
  127. package/dist/tools/index.d.ts.map +1 -1
  128. package/dist/tools/index.js +2 -0
  129. package/dist/tools/index.js.map +1 -1
  130. package/dist/tools/performance.d.ts +63 -0
  131. package/dist/tools/performance.d.ts.map +1 -0
  132. package/dist/tools/performance.js +865 -0
  133. package/dist/tools/performance.js.map +1 -0
  134. package/dist/types/client.d.ts +1 -0
  135. package/dist/types/client.d.ts.map +1 -1
  136. package/dist/types/client.js.map +1 -1
  137. package/dist/utils/toolWrapper.d.ts +4 -0
  138. package/dist/utils/toolWrapper.d.ts.map +1 -1
  139. package/dist/utils/toolWrapper.js +11 -0
  140. package/dist/utils/toolWrapper.js.map +1 -1
  141. package/dist/utils/validation.d.ts +68 -0
  142. package/dist/utils/validation.d.ts.map +1 -0
  143. package/dist/utils/validation.js +185 -0
  144. package/dist/utils/validation.js.map +1 -0
  145. package/docs/CACHING.md +340 -0
  146. package/docs/DOCKER.md +451 -0
  147. package/docs/PERFORMANCE_MONITORING.md +471 -0
  148. package/docs/SECURITY_TESTING.md +393 -0
  149. package/docs/api/README.md +200 -0
  150. package/docs/api/categories/auth.md +40 -0
  151. package/docs/api/categories/cache.md +41 -0
  152. package/docs/api/categories/comment.md +44 -0
  153. package/docs/api/categories/media.md +43 -0
  154. package/docs/api/categories/page.md +43 -0
  155. package/docs/api/categories/performance.md +44 -0
  156. package/docs/api/categories/post.md +43 -0
  157. package/docs/api/categories/site.md +43 -0
  158. package/docs/api/categories/taxonomy.md +47 -0
  159. package/docs/api/categories/user.md +43 -0
  160. package/docs/api/openapi.json +3305 -0
  161. package/docs/api/summary.json +12 -0
  162. package/docs/api/tools/wp_approve_comment.md +98 -0
  163. package/docs/api/tools/wp_cache_clear.md +120 -0
  164. package/docs/api/tools/wp_cache_info.md +119 -0
  165. package/docs/api/tools/wp_cache_stats.md +119 -0
  166. package/docs/api/tools/wp_cache_warm.md +119 -0
  167. package/docs/api/tools/wp_create_application_password.md +102 -0
  168. package/docs/api/tools/wp_create_category.md +102 -0
  169. package/docs/api/tools/wp_create_comment.md +128 -0
  170. package/docs/api/tools/wp_create_page.md +135 -0
  171. package/docs/api/tools/wp_create_post.md +147 -0
  172. package/docs/api/tools/wp_create_tag.md +101 -0
  173. package/docs/api/tools/wp_create_user.md +135 -0
  174. package/docs/api/tools/wp_delete_application_password.md +101 -0
  175. package/docs/api/tools/wp_delete_category.md +100 -0
  176. package/docs/api/tools/wp_delete_comment.md +101 -0
  177. package/docs/api/tools/wp_delete_media.md +108 -0
  178. package/docs/api/tools/wp_delete_page.md +108 -0
  179. package/docs/api/tools/wp_delete_post.md +117 -0
  180. package/docs/api/tools/wp_delete_tag.md +100 -0
  181. package/docs/api/tools/wp_delete_user.md +108 -0
  182. package/docs/api/tools/wp_get_application_passwords.md +103 -0
  183. package/docs/api/tools/wp_get_auth_status.md +101 -0
  184. package/docs/api/tools/wp_get_category.md +103 -0
  185. package/docs/api/tools/wp_get_comment.md +103 -0
  186. package/docs/api/tools/wp_get_current_user.md +101 -0
  187. package/docs/api/tools/wp_get_media.md +103 -0
  188. package/docs/api/tools/wp_get_page.md +103 -0
  189. package/docs/api/tools/wp_get_page_revisions.md +103 -0
  190. package/docs/api/tools/wp_get_post.md +112 -0
  191. package/docs/api/tools/wp_get_post_revisions.md +103 -0
  192. package/docs/api/tools/wp_get_site_settings.md +108 -0
  193. package/docs/api/tools/wp_get_tag.md +103 -0
  194. package/docs/api/tools/wp_get_user.md +103 -0
  195. package/docs/api/tools/wp_list_categories.md +111 -0
  196. package/docs/api/tools/wp_list_comments.md +111 -0
  197. package/docs/api/tools/wp_list_media.md +145 -0
  198. package/docs/api/tools/wp_list_pages.md +145 -0
  199. package/docs/api/tools/wp_list_posts.md +156 -0
  200. package/docs/api/tools/wp_list_tags.md +110 -0
  201. package/docs/api/tools/wp_list_users.md +111 -0
  202. package/docs/api/tools/wp_performance_alerts.md +162 -0
  203. package/docs/api/tools/wp_performance_benchmark.md +160 -0
  204. package/docs/api/tools/wp_performance_export.md +162 -0
  205. package/docs/api/tools/wp_performance_history.md +161 -0
  206. package/docs/api/tools/wp_performance_optimize.md +162 -0
  207. package/docs/api/tools/wp_performance_stats.md +160 -0
  208. package/docs/api/tools/wp_search_site.md +99 -0
  209. package/docs/api/tools/wp_spam_comment.md +98 -0
  210. package/docs/api/tools/wp_switch_auth_method.md +122 -0
  211. package/docs/api/tools/wp_test_auth.md +96 -0
  212. package/docs/api/tools/wp_update_category.md +102 -0
  213. package/docs/api/tools/wp_update_comment.md +127 -0
  214. package/docs/api/tools/wp_update_media.md +129 -0
  215. package/docs/api/tools/wp_update_page.md +135 -0
  216. package/docs/api/tools/wp_update_post.md +144 -0
  217. package/docs/api/tools/wp_update_site_settings.md +127 -0
  218. package/docs/api/tools/wp_update_tag.md +102 -0
  219. package/docs/api/tools/wp_update_user.md +134 -0
  220. package/docs/api/tools/wp_upload_media.md +131 -0
  221. package/docs/api/types/WordPressPost.md +39 -0
  222. package/docs/contract-testing.md +183 -0
  223. package/docs/developer/NPM_AUTH_SETUP.md +3 -3
  224. package/docs/wordpress-rest-api-authentication-troubleshooting.md +218 -0
  225. package/package.json +84 -64
  226. package/src/cache/CacheInvalidation.ts +421 -0
  227. package/src/cache/CacheManager.ts +391 -0
  228. package/src/cache/HttpCacheWrapper.ts +372 -0
  229. package/src/cache/__tests__/CacheInvalidation.test.ts +299 -0
  230. package/src/cache/__tests__/CacheManager.test.ts +300 -0
  231. package/src/cache/__tests__/CachedWordPressClient.test.ts +304 -0
  232. package/src/cache/__tests__/HttpCacheWrapper.test.ts +359 -0
  233. package/src/cache/index.ts +26 -0
  234. package/src/client/CachedWordPressClient.ts +442 -0
  235. package/src/config/ConfigurationSchema.ts +246 -0
  236. package/src/config/ServerConfiguration.ts +215 -0
  237. package/src/docs/DocumentationGenerator.ts +952 -0
  238. package/src/docs/MarkdownFormatter.ts +494 -0
  239. package/src/docs/index.ts +21 -0
  240. package/src/index.ts +14 -274
  241. package/src/performance/MetricsCollector.ts +447 -0
  242. package/src/performance/PerformanceAnalytics.ts +762 -0
  243. package/src/performance/PerformanceMonitor.ts +649 -0
  244. package/src/performance/index.ts +28 -0
  245. package/src/security/InputValidator.ts +319 -0
  246. package/src/security/SecurityConfig.ts +301 -0
  247. package/src/server/ConnectionTester.ts +74 -0
  248. package/src/server/ToolRegistry.ts +194 -0
  249. package/src/tools/BaseToolManager.ts +66 -0
  250. package/src/tools/cache.ts +259 -0
  251. package/src/tools/index.ts +2 -0
  252. package/src/tools/performance.ts +948 -0
  253. package/src/types/client.ts +1 -0
  254. package/src/utils/toolWrapper.ts +11 -0
  255. package/src/utils/validation.ts +259 -0
@@ -0,0 +1,338 @@
1
+ /**
2
+ * Cached WordPress API Client
3
+ * Extends the base WordPress client with intelligent caching capabilities and performance monitoring
4
+ */
5
+ import { WordPressClient } from './api.js';
6
+ import { CacheManager } from '../cache/CacheManager.js';
7
+ import { HttpCacheWrapper } from '../cache/HttpCacheWrapper.js';
8
+ import { CacheInvalidation } from '../cache/CacheInvalidation.js';
9
+ import { SecurityConfig } from '../security/SecurityConfig.js';
10
+ /**
11
+ * WordPress client with intelligent caching
12
+ */
13
+ export class CachedWordPressClient extends WordPressClient {
14
+ cacheManager;
15
+ httpCache;
16
+ cacheInvalidation;
17
+ siteId;
18
+ constructor(config, siteId = 'default') {
19
+ super(config);
20
+ this.siteId = siteId;
21
+ // Initialize caching system
22
+ this.cacheManager = new CacheManager({
23
+ maxSize: SecurityConfig.cache.maxSize,
24
+ defaultTTL: SecurityConfig.cache.defaultTTL,
25
+ enableLRU: SecurityConfig.cache.enableLRU,
26
+ enableStats: SecurityConfig.cache.enableStats,
27
+ sitePrefix: siteId
28
+ });
29
+ this.httpCache = new HttpCacheWrapper(this.cacheManager, siteId);
30
+ this.cacheInvalidation = new CacheInvalidation(this.httpCache);
31
+ }
32
+ /**
33
+ * Override request method to add caching
34
+ */
35
+ async request(method, endpoint, data = null, options = {}) {
36
+ // Only cache GET requests
37
+ if (method.toUpperCase() !== 'GET' || !SecurityConfig.cache.enabled) {
38
+ const response = await super.request(method, endpoint, data, options);
39
+ // Trigger cache invalidation for write operations
40
+ if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(method.toUpperCase())) {
41
+ await this.handleCacheInvalidation(method, endpoint, data);
42
+ }
43
+ return response;
44
+ }
45
+ // Use cached request for GET operations
46
+ const requestFn = () => super.request(method, endpoint, data, options);
47
+ const requestOptions = {
48
+ method,
49
+ url: `${this.config.baseUrl}/wp-json/wp/v2/${endpoint}`,
50
+ headers: {},
51
+ params: {},
52
+ data
53
+ };
54
+ const cacheOptions = this.getCacheOptions(endpoint);
55
+ const response = await this.httpCache.request(async () => {
56
+ const result = await requestFn();
57
+ return {
58
+ data: result,
59
+ status: 200,
60
+ headers: {}
61
+ };
62
+ }, requestOptions, cacheOptions);
63
+ return response.data;
64
+ }
65
+ /**
66
+ * Enhanced methods with caching optimization
67
+ */
68
+ /**
69
+ * Get posts with intelligent caching
70
+ */
71
+ async getPosts(params = {}) {
72
+ return await this.request('GET', 'posts', null, { params });
73
+ }
74
+ /**
75
+ * Get single post with caching
76
+ */
77
+ async getPost(id) {
78
+ return await this.request('GET', `posts/${id}`);
79
+ }
80
+ /**
81
+ * Create post with cache invalidation
82
+ */
83
+ async createPost(data) {
84
+ const post = await super.createPost(data);
85
+ // Invalidate related caches
86
+ await this.cacheInvalidation.invalidateResource('posts', post.id, 'create');
87
+ return post;
88
+ }
89
+ /**
90
+ * Update post with cache invalidation
91
+ */
92
+ async updatePost(data) {
93
+ const post = await super.updatePost(data);
94
+ // Invalidate related caches
95
+ await this.cacheInvalidation.invalidateResource('posts', post.id, 'update');
96
+ return post;
97
+ }
98
+ /**
99
+ * Delete post with cache invalidation
100
+ */
101
+ async deletePost(id, force) {
102
+ const result = await super.deletePost(id, force);
103
+ // Invalidate related caches
104
+ await this.cacheInvalidation.invalidateResource('posts', id, 'delete');
105
+ return result;
106
+ }
107
+ /**
108
+ * Get current user with session caching
109
+ */
110
+ async getCurrentUser() {
111
+ return await this.request('GET', 'users/me');
112
+ }
113
+ /**
114
+ * Get categories with semi-static caching
115
+ */
116
+ async getCategories(params = {}) {
117
+ return await this.request('GET', 'categories', null, { params });
118
+ }
119
+ /**
120
+ * Get tags with semi-static caching
121
+ */
122
+ async getTags(params = {}) {
123
+ return await this.request('GET', 'tags', null, { params });
124
+ }
125
+ /**
126
+ * Get site settings with static caching
127
+ */
128
+ async getSiteSettings() {
129
+ return await this.request('GET', 'settings');
130
+ }
131
+ /**
132
+ * Cache management methods
133
+ */
134
+ /**
135
+ * Private helper methods
136
+ */
137
+ extractEndpoint(url) {
138
+ // Simple approach - use the endpoint part
139
+ return url.replace(/^.*\/wp-json\/wp\/v2\//, '').split('?')[0];
140
+ }
141
+ /**
142
+ * Get cache options based on endpoint
143
+ */
144
+ getCacheOptions(endpoint) {
145
+ // Determine cache type based on endpoint
146
+ if (this.isStaticEndpoint(endpoint)) {
147
+ return {
148
+ ttl: SecurityConfig.cache.ttlPresets.static,
149
+ cacheControl: SecurityConfig.cache.cacheHeaders.static
150
+ };
151
+ }
152
+ if (this.isSemiStaticEndpoint(endpoint)) {
153
+ return {
154
+ ttl: SecurityConfig.cache.ttlPresets.semiStatic,
155
+ cacheControl: SecurityConfig.cache.cacheHeaders.semiStatic
156
+ };
157
+ }
158
+ if (this.isSessionEndpoint(endpoint)) {
159
+ return {
160
+ ttl: SecurityConfig.cache.ttlPresets.session,
161
+ cacheControl: SecurityConfig.cache.cacheHeaders.session,
162
+ private: true
163
+ };
164
+ }
165
+ // Default to dynamic caching
166
+ return {
167
+ ttl: SecurityConfig.cache.ttlPresets.dynamic,
168
+ cacheControl: SecurityConfig.cache.cacheHeaders.dynamic
169
+ };
170
+ }
171
+ /**
172
+ * Handle cache invalidation for write operations
173
+ */
174
+ async handleCacheInvalidation(method, endpoint, data) {
175
+ const resource = this.extractResourceFromEndpoint(endpoint);
176
+ const id = this.extractIdFromEndpoint(endpoint);
177
+ let operationType;
178
+ switch (method.toUpperCase()) {
179
+ case 'POST':
180
+ operationType = 'create';
181
+ break;
182
+ case 'PUT':
183
+ case 'PATCH':
184
+ operationType = 'update';
185
+ break;
186
+ case 'DELETE':
187
+ operationType = 'delete';
188
+ break;
189
+ default:
190
+ return;
191
+ }
192
+ await this.cacheInvalidation.invalidateResource(resource, id, operationType);
193
+ }
194
+ /**
195
+ * Extract resource type from endpoint
196
+ */
197
+ extractResourceFromEndpoint(endpoint) {
198
+ const parts = endpoint.split('/');
199
+ return parts[0] || 'unknown';
200
+ }
201
+ /**
202
+ * Extract ID from endpoint
203
+ */
204
+ extractIdFromEndpoint(endpoint) {
205
+ const match = endpoint.match(/\/(\d+)(?:\/|$)/);
206
+ return match ? parseInt(match[1], 10) : undefined;
207
+ }
208
+ /**
209
+ * Check if endpoint contains static data
210
+ */
211
+ isStaticEndpoint(endpoint) {
212
+ const staticEndpoints = ['settings', 'types', 'statuses'];
213
+ return staticEndpoints.some(pattern => endpoint.includes(pattern));
214
+ }
215
+ /**
216
+ * Check if endpoint contains semi-static data
217
+ */
218
+ isSemiStaticEndpoint(endpoint) {
219
+ const semiStaticEndpoints = ['categories', 'tags', 'users', 'taxonomies'];
220
+ return semiStaticEndpoints.some(pattern => endpoint.includes(pattern));
221
+ }
222
+ /**
223
+ * Check if endpoint is session-related
224
+ */
225
+ isSessionEndpoint(endpoint) {
226
+ const sessionEndpoints = ['users/me', 'application-passwords'];
227
+ return sessionEndpoints.some(pattern => endpoint.includes(pattern));
228
+ }
229
+ /**
230
+ * Performance monitoring and cache management methods
231
+ */
232
+ /**
233
+ * Get cache statistics for performance monitoring
234
+ */
235
+ getCacheStats() {
236
+ return this.cacheManager.getStats();
237
+ }
238
+ /**
239
+ * Get cache manager instance (for performance monitoring integration)
240
+ */
241
+ getCacheManager() {
242
+ return this.cacheManager;
243
+ }
244
+ /**
245
+ * Clear cache entries (for cache management tools)
246
+ */
247
+ clearCache() {
248
+ const stats = this.cacheManager.getStats();
249
+ this.cacheManager.clear();
250
+ return stats.totalSize;
251
+ }
252
+ /**
253
+ * Clear cache entries matching pattern
254
+ */
255
+ clearCachePattern(pattern) {
256
+ const regex = new RegExp(pattern, 'i');
257
+ return this.cacheManager.clearPattern(regex);
258
+ }
259
+ /**
260
+ * Warm cache with essential data
261
+ */
262
+ async warmCache() {
263
+ try {
264
+ // Pre-load frequently accessed data
265
+ const warmupOperations = [
266
+ () => this.getCurrentUser().catch(() => null),
267
+ () => this.getCategories().catch(() => null),
268
+ () => this.getTags().catch(() => null),
269
+ () => this.getSiteSettings().catch(() => null)
270
+ ];
271
+ // Execute warmup operations in parallel
272
+ await Promise.allSettled(warmupOperations.map(op => op()));
273
+ }
274
+ catch (_error) {
275
+ // Ignore warmup errors - they shouldn't fail the cache warming
276
+ }
277
+ }
278
+ /**
279
+ * Get cache efficiency metrics
280
+ */
281
+ getCacheEfficiency() {
282
+ const stats = this.cacheManager.getStats();
283
+ const total = stats.hits + stats.misses;
284
+ const hitRate = total > 0 ? stats.hits / total : 0;
285
+ const missRate = 1 - hitRate;
286
+ let efficiency = 'Poor';
287
+ if (hitRate >= 0.9)
288
+ efficiency = 'Excellent';
289
+ else if (hitRate >= 0.8)
290
+ efficiency = 'Good';
291
+ else if (hitRate >= 0.6)
292
+ efficiency = 'Fair';
293
+ return {
294
+ hitRate,
295
+ missRate,
296
+ efficiency,
297
+ memoryUsage: this.estimateMemoryUsage(),
298
+ totalEntries: stats.totalSize
299
+ };
300
+ }
301
+ /**
302
+ * Get cache configuration info
303
+ */
304
+ getCacheInfo() {
305
+ const stats = this.cacheManager.getStats();
306
+ return {
307
+ enabled: SecurityConfig.cache.enabled,
308
+ siteId: this.siteId,
309
+ maxSize: SecurityConfig.cache.maxSize,
310
+ defaultTTL: SecurityConfig.cache.defaultTTL,
311
+ currentSize: stats.totalSize,
312
+ ttlPresets: SecurityConfig.cache.ttlPresets
313
+ };
314
+ }
315
+ /**
316
+ * Estimate memory usage of cache (in MB)
317
+ */
318
+ estimateMemoryUsage() {
319
+ const stats = this.cacheManager.getStats();
320
+ // Rough estimate: ~1KB per cache entry
321
+ return (stats.totalSize * 1024) / (1024 * 1024);
322
+ }
323
+ /**
324
+ * Get detailed cache performance metrics
325
+ */
326
+ getDetailedCacheMetrics() {
327
+ return {
328
+ statistics: this.getCacheStats(),
329
+ efficiency: this.getCacheEfficiency(),
330
+ configuration: this.getCacheInfo(),
331
+ siteInfo: {
332
+ siteId: this.siteId,
333
+ baseUrl: this.config.baseUrl
334
+ }
335
+ };
336
+ }
337
+ }
338
+ //# sourceMappingURL=CachedWordPressClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CachedWordPressClient.js","sourceRoot":"","sources":["../../src/client/CachedWordPressClient.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Refactored WordPress API Client
3
+ * Uses composition pattern with specialized managers
4
+ */
5
+ import type { IWordPressClient, WordPressClientConfig, ClientStats } from "../types/client.js";
6
+ import type { WordPressPost, WordPressPage, WordPressMedia, WordPressUser, WordPressComment, WordPressSiteSettings, WordPressApplicationPassword, PostQueryParams, MediaQueryParams, UserQueryParams, CreatePostRequest, UpdatePostRequest, CreatePageRequest, UpdatePageRequest, CreateUserRequest, UpdateUserRequest, UploadMediaRequest } from "../types/wordpress.js";
7
+ export declare class WordPressClient implements IWordPressClient {
8
+ private authManager;
9
+ private requestManager;
10
+ private clientConfig;
11
+ constructor(options?: Partial<WordPressClientConfig>);
12
+ get config(): WordPressClientConfig;
13
+ get isAuthenticated(): boolean;
14
+ get stats(): ClientStats;
15
+ initialize(): Promise<void>;
16
+ authenticate(): Promise<boolean>;
17
+ disconnect(): Promise<void>;
18
+ request<T = any>(method: any, endpoint: string, data?: any, options?: any): Promise<T>;
19
+ get<T = any>(endpoint: string, options?: any): Promise<T>;
20
+ post<T = any>(endpoint: string, data?: any, options?: any): Promise<T>;
21
+ put<T = any>(endpoint: string, data?: any, options?: any): Promise<T>;
22
+ patch<T = any>(endpoint: string, data?: any, options?: any): Promise<T>;
23
+ delete<T = any>(endpoint: string, options?: any): Promise<T>;
24
+ testAuthentication(): Promise<{
25
+ success: boolean;
26
+ user?: WordPressUser;
27
+ }>;
28
+ private authenticatedRequest;
29
+ getPosts(params?: PostQueryParams): Promise<WordPressPost[]>;
30
+ getPost(id: number): Promise<WordPressPost>;
31
+ createPost(data: CreatePostRequest): Promise<WordPressPost>;
32
+ updatePost(data: UpdatePostRequest): Promise<WordPressPost>;
33
+ deletePost(id: number, force?: boolean): Promise<{
34
+ deleted: boolean;
35
+ previous?: WordPressPost;
36
+ }>;
37
+ getPostRevisions(id: number): Promise<WordPressPost[]>;
38
+ getPages(params?: any): Promise<WordPressPage[]>;
39
+ getPage(id: number): Promise<WordPressPage>;
40
+ createPage(data: CreatePageRequest): Promise<WordPressPage>;
41
+ updatePage(data: UpdatePageRequest): Promise<WordPressPage>;
42
+ deletePage(id: number, force?: boolean): Promise<{
43
+ deleted: boolean;
44
+ previous?: WordPressPage;
45
+ }>;
46
+ getPageRevisions(id: number): Promise<WordPressPage[]>;
47
+ getMedia(params?: MediaQueryParams): Promise<WordPressMedia[]>;
48
+ getMediaItem(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressMedia>;
49
+ uploadFile(fileData: Buffer, filename: string, mimeType: string, meta?: Partial<UploadMediaRequest>, options?: any): Promise<WordPressMedia>;
50
+ getUsers(params?: UserQueryParams): Promise<WordPressUser[]>;
51
+ getUser(id: number | string): Promise<WordPressUser>;
52
+ getCurrentUser(): Promise<WordPressUser>;
53
+ createUser(data: CreateUserRequest): Promise<WordPressUser>;
54
+ updateUser(data: UpdateUserRequest): Promise<WordPressUser>;
55
+ deleteUser(id: number, reassign?: number): Promise<{
56
+ deleted: boolean;
57
+ previous?: WordPressUser;
58
+ }>;
59
+ approveComment(id: number): Promise<WordPressComment>;
60
+ rejectComment(id: number): Promise<WordPressComment>;
61
+ spamComment(id: number): Promise<WordPressComment>;
62
+ getSiteSettings(): Promise<WordPressSiteSettings>;
63
+ updateSiteSettings(settings: Partial<WordPressSiteSettings>): Promise<WordPressSiteSettings>;
64
+ getSiteInfo(): Promise<any>;
65
+ getApplicationPasswords(userId: number): Promise<WordPressApplicationPassword[]>;
66
+ createApplicationPassword(userId: number | 'me', name: string, appId?: string): Promise<WordPressApplicationPassword>;
67
+ deleteApplicationPassword(userId: number, uuid: string): Promise<{
68
+ deleted: boolean;
69
+ }>;
70
+ search(query: string, types?: string[], subtype?: string): Promise<Array<{
71
+ id: number;
72
+ title: string;
73
+ url: string;
74
+ type: string;
75
+ subtype: string;
76
+ }>>;
77
+ ping(): Promise<boolean>;
78
+ private buildConfig;
79
+ private validateConfig;
80
+ }
81
+ //# sourceMappingURL=WordPressClient.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WordPressClient.d.ts","sourceRoot":"","sources":["../../src/client/WordPressClient.ts"],"names":[],"mappings":"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"}