mcp-wordpress 2.11.4 → 2.11.6

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 (32) hide show
  1. package/dist/cache/HttpCacheWrapper.d.ts +1 -2
  2. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  3. package/dist/cache/HttpCacheWrapper.js +2 -7
  4. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  5. package/dist/client/CachedWordPressClient.d.ts +2 -0
  6. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  7. package/dist/client/CachedWordPressClient.js +68 -13
  8. package/dist/client/CachedWordPressClient.js.map +1 -1
  9. package/dist/client/api.d.ts +7 -0
  10. package/dist/client/api.d.ts.map +1 -1
  11. package/dist/client/api.js +204 -159
  12. package/dist/client/api.js.map +1 -1
  13. package/dist/client/managers/AuthenticationManager.d.ts +1 -7
  14. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  15. package/dist/client/managers/AuthenticationManager.js +55 -17
  16. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  17. package/dist/config/ConfigurationSchema.d.ts +75 -198
  18. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  19. package/dist/security/InputValidator.d.ts +48 -124
  20. package/dist/security/InputValidator.d.ts.map +1 -1
  21. package/dist/types/seo.d.ts +76 -240
  22. package/dist/types/seo.d.ts.map +1 -1
  23. package/dist/utils/version.d.ts +1 -0
  24. package/dist/utils/version.d.ts.map +1 -1
  25. package/dist/utils/version.js +9 -10
  26. package/dist/utils/version.js.map +1 -1
  27. package/package.json +7 -7
  28. package/src/cache/HttpCacheWrapper.ts +3 -16
  29. package/src/client/CachedWordPressClient.ts +83 -13
  30. package/src/client/api.ts +268 -178
  31. package/src/client/managers/AuthenticationManager.ts +63 -21
  32. package/src/utils/version.ts +10 -10
@@ -68,11 +68,7 @@ export class VersionManager {
68
68
  getPackageInfo() {
69
69
  if (!this.packageJson) {
70
70
  // Return fallback package info if not loaded
71
- this.packageJson = {
72
- name: "mcp-wordpress",
73
- version: "2.7.0", // Fallback version
74
- description: "MCP WordPress Server",
75
- };
71
+ this.packageJson = this.getFallbackPackageInfo();
76
72
  }
77
73
  return this.packageJson;
78
74
  }
@@ -116,11 +112,7 @@ export class VersionManager {
116
112
  catch (_error) {
117
113
  // Fallback for runtime environments where package.json might not be available
118
114
  // Note: Using fallback version - should match package.json
119
- return {
120
- name: "mcp-wordpress",
121
- version: "2.7.0", // Fallback version - should match package.json
122
- description: "MCP WordPress Server",
123
- };
115
+ return this.getFallbackPackageInfo();
124
116
  }
125
117
  }
126
118
  /**
@@ -277,6 +269,13 @@ export class VersionManager {
277
269
  const color = info.prerelease ? "orange" : "blue";
278
270
  return `https://img.shields.io/badge/version-${info.version}-${color}`;
279
271
  }
272
+ getFallbackPackageInfo() {
273
+ return {
274
+ name: "mcp-wordpress",
275
+ version: process.env.npm_package_version || "2.11.3",
276
+ description: "MCP WordPress Server",
277
+ };
278
+ }
280
279
  }
281
280
  /**
282
281
  * Singleton instance export for convenience
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/utils/version.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mcp-wordpress",
3
- "version": "2.11.4",
3
+ "version": "2.11.6",
4
4
  "description": "Comprehensive Model Context Protocol server for WordPress management with composition-based architecture, 59 tools, SEO toolkit, performance monitoring, intelligent caching, and production-ready authentication",
5
5
  "keywords": [
6
6
  "mcp",
@@ -96,9 +96,9 @@
96
96
  "test:memory-config": "npm run build && NODE_OPTIONS=\"--max-old-space-size=6144\" vitest run --config vitest.memory-safe.config.ts",
97
97
  "test:memory-safe": "npm run build && NODE_OPTIONS=\"--max-old-space-size=6144 --max-semi-space-size=256\" vitest run --no-coverage --reporter=default",
98
98
  "test:performance": "npm run build && vitest run tests/performance/",
99
+ "test:performance:ci": "npm run build && mkdir -p tests/results && NODE_OPTIONS=\"--max-old-space-size=4096\" vitest run tests/performance/ --reporter=json --outputFile=tests/results/performance-results.json",
99
100
  "test:pre-push": "bash scripts/test-pre-push.sh",
100
101
  "test:production-security": "npm audit --omit=dev",
101
- "test:performance:ci": "npm run build && mkdir -p tests/results && NODE_OPTIONS=\"--max-old-space-size=4096\" vitest run tests/performance/ --reporter=json --outputFile=tests/results/performance-results.json",
102
102
  "test:safe": "node scripts/run-tests-safe.cjs",
103
103
  "test:security": "npm run build && vitest run tests/security/",
104
104
  "test:security:validation": "npm run build && vitest run tests/security/penetration-tests.test.js",
@@ -133,7 +133,7 @@
133
133
  "@modelcontextprotocol/sdk": "^1.17.4",
134
134
  "dotenv": "^17.2.1",
135
135
  "form-data": "^4.0.4",
136
- "zod": "^3.25.0"
136
+ "zod": "^4.1.12"
137
137
  },
138
138
  "devDependencies": {
139
139
  "@eslint/js": "^9.34.0",
@@ -144,8 +144,8 @@
144
144
  "@types/node": "^24.3.0",
145
145
  "@typescript-eslint/eslint-plugin": "^8.40.0",
146
146
  "@typescript-eslint/parser": "^8.40.0",
147
- "@vitest/coverage-v8": "^3.2.4",
148
- "@vitest/ui": "^3.2.4",
147
+ "@vitest/coverage-v8": "^4.0.8",
148
+ "@vitest/ui": "^4.0.8",
149
149
  "archiver": "^7.0.1",
150
150
  "conventional-changelog-conventionalcommits": "^9.1.0",
151
151
  "eslint": "^9.34.0",
@@ -161,12 +161,12 @@
161
161
  "node-fetch": "^3.3.2",
162
162
  "open": "^10.2.0",
163
163
  "prettier": "^3.6.2",
164
- "semantic-release": "^24.2.7",
164
+ "semantic-release": "^25.0.2",
165
165
  "sort-package-json": "^3.4.0",
166
166
  "tsc-alias": "^1.8.16",
167
167
  "typescript": "^5.9.2",
168
168
  "vite-tsconfig-paths": "^5.1.4",
169
- "vitest": "^3.2.4"
169
+ "vitest": "^4.0.8"
170
170
  },
171
171
  "engines": {
172
172
  "node": ">=20.8.1"
@@ -47,7 +47,7 @@ export class HttpCacheWrapper {
47
47
  * Execute request with intelligent caching
48
48
  */
49
49
  async request<T = unknown>(
50
- requestFn: () => Promise<{
50
+ requestFn: (extraHeaders?: Record<string, string>) => Promise<{
51
51
  data: T;
52
52
  status: number;
53
53
  headers: Record<string, string>;
@@ -73,7 +73,7 @@ export class HttpCacheWrapper {
73
73
  const conditionalHeaders = this.cacheManager.getConditionalHeaders(cacheKey);
74
74
 
75
75
  // Add conditional headers to request
76
- const requestWithHeaders = {
76
+ const _requestWithHeaders = {
77
77
  ...options,
78
78
  headers: {
79
79
  ...options.headers,
@@ -82,7 +82,7 @@ export class HttpCacheWrapper {
82
82
  };
83
83
 
84
84
  try {
85
- const response = await this.executeRequestWithHeaders(requestFn, requestWithHeaders);
85
+ const response = await requestFn(conditionalHeaders);
86
86
 
87
87
  // 304 Not Modified - return cached data
88
88
  if (response.status === 304) {
@@ -216,19 +216,6 @@ export class HttpCacheWrapper {
216
216
  /**
217
217
  * Execute request with modified headers
218
218
  */
219
- private async executeRequestWithHeaders(
220
- requestFn: () => Promise<{
221
- data: unknown;
222
- status: number;
223
- headers: Record<string, string>;
224
- }>,
225
- options: RequestOptions,
226
- ) {
227
- // This is a simplified approach - in practice, you'd need to modify the actual request
228
- // The actual implementation would depend on your HTTP client (axios, fetch, etc.)
229
- return await requestFn();
230
- }
231
-
232
219
  /**
233
220
  * Cache response and return with cache metadata
234
221
  */
@@ -55,41 +55,54 @@ export class CachedWordPressClient extends WordPressClient {
55
55
  data: unknown = null,
56
56
  options: RequestOptions = {},
57
57
  ): Promise<T> {
58
+ const upperMethod = method.toUpperCase();
59
+
58
60
  // Only cache GET requests
59
- if (method.toUpperCase() !== "GET" || !SecurityConfig.cache.enabled) {
61
+ if (upperMethod !== "GET" || !SecurityConfig.cache.enabled) {
60
62
  const response = await super.request<T>(method, endpoint, data, options);
61
63
 
62
64
  // Trigger cache invalidation for write operations
63
- if (["POST", "PUT", "PATCH", "DELETE"].includes(method.toUpperCase())) {
65
+ if (["POST", "PUT", "PATCH", "DELETE"].includes(upperMethod)) {
64
66
  await this.handleCacheInvalidation(method, endpoint, data);
65
67
  }
66
68
 
67
69
  return response;
68
70
  }
69
71
 
70
- // Use cached request for GET operations
71
- const requestFn = () => super.request<T>(method, endpoint, data, options);
72
+ // Normalize endpoint/query params so both the HTTP request and cache key stay in sync
73
+ const { normalizedEndpoint, normalizedParams } = this.normalizeEndpoint(endpoint, options.params);
74
+
75
+ // Ensure we don't leak params to the super call (the parent client expects query strings)
76
+ const baseOptions: RequestOptions = { ...options };
77
+ delete baseOptions.params;
72
78
 
73
- const requestOptions = {
79
+ const cacheRequestOptions = {
74
80
  method,
75
- url: `${this.config.baseUrl}/wp-json/wp/v2/${endpoint}`,
76
- headers: {},
77
- params: {},
81
+ url: this.buildRequestUrl(normalizedEndpoint),
82
+ headers: { ...(baseOptions.headers || {}) },
83
+ params: normalizedParams,
78
84
  data,
79
85
  };
80
86
 
81
- const cacheOptions = this.getCacheOptions(endpoint);
87
+ const cacheOptions = this.getCacheOptions(normalizedEndpoint);
82
88
 
83
89
  const response = await this.httpCache.request(
84
- async () => {
85
- const result = await requestFn();
90
+ async (extraHeaders) => {
91
+ const mergedOptions: RequestOptions = {
92
+ ...baseOptions,
93
+ headers: {
94
+ ...(baseOptions.headers || {}),
95
+ ...(extraHeaders || {}),
96
+ },
97
+ };
98
+ const result = await super.request<T>(method, normalizedEndpoint, data, mergedOptions);
86
99
  return {
87
100
  data: result,
88
101
  status: 200,
89
- headers: {},
102
+ headers: mergedOptions.headers || {},
90
103
  };
91
104
  },
92
- requestOptions,
105
+ cacheRequestOptions,
93
106
  cacheOptions,
94
107
  );
95
108
 
@@ -230,6 +243,63 @@ export class CachedWordPressClient extends WordPressClient {
230
243
  };
231
244
  }
232
245
 
246
+ private normalizeEndpoint(
247
+ endpoint: string,
248
+ params: Record<string, unknown> | undefined,
249
+ ): { normalizedEndpoint: string; normalizedParams: Record<string, unknown> } {
250
+ const [pathPart, queryPart] = endpoint.split("?");
251
+ const collectedParams: Record<string, string[]> = {};
252
+
253
+ if (queryPart) {
254
+ const searchParams = new URLSearchParams(queryPart);
255
+ for (const [key, value] of searchParams.entries()) {
256
+ if (!collectedParams[key]) {
257
+ collectedParams[key] = [];
258
+ }
259
+ collectedParams[key].push(value);
260
+ }
261
+ }
262
+
263
+ if (params) {
264
+ for (const [key, value] of Object.entries(params)) {
265
+ if (value === undefined || value === null) continue;
266
+ const values = Array.isArray(value) ? value : [value];
267
+ collectedParams[key] = values.map((item) => String(item));
268
+ }
269
+ }
270
+
271
+ const searchParams = new URLSearchParams();
272
+ Object.keys(collectedParams)
273
+ .sort()
274
+ .forEach((key) => {
275
+ collectedParams[key].forEach((value) => searchParams.append(key, value));
276
+ });
277
+
278
+ const normalizedParams: Record<string, unknown> = {};
279
+ for (const [key, value] of Object.entries(collectedParams)) {
280
+ normalizedParams[key] = value.length === 1 ? value[0] : [...value];
281
+ }
282
+
283
+ const normalizedEndpoint = searchParams.toString() ? `${pathPart}?${searchParams.toString()}` : pathPart;
284
+
285
+ return { normalizedEndpoint, normalizedParams };
286
+ }
287
+
288
+ private buildRequestUrl(endpoint: string): string {
289
+ if (endpoint.startsWith("http")) {
290
+ return endpoint;
291
+ }
292
+
293
+ const cleanEndpoint = endpoint.replace(/^\/+/, "");
294
+ const siteUrl = this.getSiteUrl().replace(/\/$/, "");
295
+
296
+ if (cleanEndpoint.startsWith("wp-json/")) {
297
+ return `${siteUrl}/${cleanEndpoint}`;
298
+ }
299
+
300
+ return `${siteUrl}/wp-json/wp/v2/${cleanEndpoint}`;
301
+ }
302
+
233
303
  /**
234
304
  * Handle cache invalidation for write operations
235
305
  */