mcp-wordpress 2.5.1 → 2.5.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.
- package/package.json +1 -1
- package/dist/src/cache/CacheInvalidation.d.ts +0 -120
- package/dist/src/cache/CacheInvalidation.d.ts.map +0 -1
- package/dist/src/cache/CacheInvalidation.js +0 -355
- package/dist/src/cache/CacheInvalidation.js.map +0 -1
- package/dist/src/cache/CacheManager.d.ts +0 -149
- package/dist/src/cache/CacheManager.d.ts.map +0 -1
- package/dist/src/cache/CacheManager.js +0 -326
- package/dist/src/cache/CacheManager.js.map +0 -1
- package/dist/src/cache/HttpCacheWrapper.d.ts +0 -122
- package/dist/src/cache/HttpCacheWrapper.d.ts.map +0 -1
- package/dist/src/cache/HttpCacheWrapper.js +0 -283
- package/dist/src/cache/HttpCacheWrapper.js.map +0 -1
- package/dist/src/cache/index.d.ts +0 -12
- package/dist/src/cache/index.d.ts.map +0 -1
- package/dist/src/cache/index.js +0 -9
- package/dist/src/cache/index.js.map +0 -1
- package/dist/src/client/CachedWordPressClient.d.ts +0 -174
- package/dist/src/client/CachedWordPressClient.d.ts.map +0 -1
- package/dist/src/client/CachedWordPressClient.js +0 -345
- package/dist/src/client/CachedWordPressClient.js.map +0 -1
- package/dist/src/client/MockWordPressClient.d.ts +0 -56
- package/dist/src/client/MockWordPressClient.d.ts.map +0 -1
- package/dist/src/client/MockWordPressClient.js +0 -371
- package/dist/src/client/MockWordPressClient.js.map +0 -1
- package/dist/src/client/api.d.ts +0 -235
- package/dist/src/client/api.d.ts.map +0 -1
- package/dist/src/client/api.js +0 -896
- package/dist/src/client/api.js.map +0 -1
- package/dist/src/client/auth.d.ts +0 -121
- package/dist/src/client/auth.d.ts.map +0 -1
- package/dist/src/client/auth.js +0 -429
- package/dist/src/client/auth.js.map +0 -1
- package/dist/src/client/managers/AuthenticationManager.d.ts +0 -92
- package/dist/src/client/managers/AuthenticationManager.d.ts.map +0 -1
- package/dist/src/client/managers/AuthenticationManager.js +0 -369
- package/dist/src/client/managers/AuthenticationManager.js.map +0 -1
- package/dist/src/client/managers/BaseManager.d.ts +0 -22
- package/dist/src/client/managers/BaseManager.d.ts.map +0 -1
- package/dist/src/client/managers/BaseManager.js +0 -53
- package/dist/src/client/managers/BaseManager.js.map +0 -1
- package/dist/src/client/managers/RequestManager.d.ts +0 -47
- package/dist/src/client/managers/RequestManager.d.ts.map +0 -1
- package/dist/src/client/managers/RequestManager.js +0 -193
- package/dist/src/client/managers/RequestManager.js.map +0 -1
- package/dist/src/client/managers/index.d.ts +0 -8
- package/dist/src/client/managers/index.d.ts.map +0 -1
- package/dist/src/client/managers/index.js +0 -8
- package/dist/src/client/managers/index.js.map +0 -1
- package/dist/src/config/Config.d.ts +0 -155
- package/dist/src/config/Config.d.ts.map +0 -1
- package/dist/src/config/Config.js +0 -215
- package/dist/src/config/Config.js.map +0 -1
- package/dist/src/config/ConfigurationSchema.d.ts +0 -281
- package/dist/src/config/ConfigurationSchema.d.ts.map +0 -1
- package/dist/src/config/ConfigurationSchema.js +0 -205
- package/dist/src/config/ConfigurationSchema.js.map +0 -1
- package/dist/src/config/ServerConfiguration.d.ts +0 -47
- package/dist/src/config/ServerConfiguration.d.ts.map +0 -1
- package/dist/src/config/ServerConfiguration.js +0 -255
- package/dist/src/config/ServerConfiguration.js.map +0 -1
- package/dist/src/docs/DocumentationGenerator.d.ts +0 -185
- package/dist/src/docs/DocumentationGenerator.d.ts.map +0 -1
- package/dist/src/docs/DocumentationGenerator.js +0 -777
- package/dist/src/docs/DocumentationGenerator.js.map +0 -1
- package/dist/src/docs/MarkdownFormatter.d.ts +0 -84
- package/dist/src/docs/MarkdownFormatter.d.ts.map +0 -1
- package/dist/src/docs/MarkdownFormatter.js +0 -458
- package/dist/src/docs/MarkdownFormatter.js.map +0 -1
- package/dist/src/docs/index.d.ts +0 -8
- package/dist/src/docs/index.d.ts.map +0 -1
- package/dist/src/docs/index.js +0 -7
- package/dist/src/docs/index.js.map +0 -1
- package/dist/src/dxt-entry.d.ts +0 -6
- package/dist/src/dxt-entry.d.ts.map +0 -1
- package/dist/src/dxt-entry.js +0 -39
- package/dist/src/dxt-entry.js.map +0 -1
- package/dist/src/index.d.ts +0 -18
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -143
- package/dist/src/index.js.map +0 -1
- package/dist/src/performance/MetricsCollector.d.ts +0 -145
- package/dist/src/performance/MetricsCollector.d.ts.map +0 -1
- package/dist/src/performance/MetricsCollector.js +0 -368
- package/dist/src/performance/MetricsCollector.js.map +0 -1
- package/dist/src/performance/PerformanceAnalytics.d.ts +0 -168
- package/dist/src/performance/PerformanceAnalytics.d.ts.map +0 -1
- package/dist/src/performance/PerformanceAnalytics.js +0 -570
- package/dist/src/performance/PerformanceAnalytics.js.map +0 -1
- package/dist/src/performance/PerformanceMonitor.d.ts +0 -203
- package/dist/src/performance/PerformanceMonitor.d.ts.map +0 -1
- package/dist/src/performance/PerformanceMonitor.js +0 -478
- package/dist/src/performance/PerformanceMonitor.js.map +0 -1
- package/dist/src/performance/index.d.ts +0 -11
- package/dist/src/performance/index.d.ts.map +0 -1
- package/dist/src/performance/index.js +0 -8
- package/dist/src/performance/index.js.map +0 -1
- package/dist/src/security/AISecurityScanner.d.ts +0 -176
- package/dist/src/security/AISecurityScanner.d.ts.map +0 -1
- package/dist/src/security/AISecurityScanner.js +0 -655
- package/dist/src/security/AISecurityScanner.js.map +0 -1
- package/dist/src/security/AutomatedRemediation.d.ts +0 -146
- package/dist/src/security/AutomatedRemediation.d.ts.map +0 -1
- package/dist/src/security/AutomatedRemediation.js +0 -566
- package/dist/src/security/AutomatedRemediation.js.map +0 -1
- package/dist/src/security/InputValidator.d.ts +0 -219
- package/dist/src/security/InputValidator.d.ts.map +0 -1
- package/dist/src/security/InputValidator.js +0 -295
- package/dist/src/security/InputValidator.js.map +0 -1
- package/dist/src/security/SecurityCIPipeline.d.ts +0 -213
- package/dist/src/security/SecurityCIPipeline.d.ts.map +0 -1
- package/dist/src/security/SecurityCIPipeline.js +0 -693
- package/dist/src/security/SecurityCIPipeline.js.map +0 -1
- package/dist/src/security/SecurityConfig.d.ts +0 -129
- package/dist/src/security/SecurityConfig.d.ts.map +0 -1
- package/dist/src/security/SecurityConfig.js +0 -266
- package/dist/src/security/SecurityConfig.js.map +0 -1
- package/dist/src/security/SecurityConfigManager.d.ts +0 -294
- package/dist/src/security/SecurityConfigManager.d.ts.map +0 -1
- package/dist/src/security/SecurityConfigManager.js +0 -558
- package/dist/src/security/SecurityConfigManager.js.map +0 -1
- package/dist/src/security/SecurityMonitoring.d.ts +0 -245
- package/dist/src/security/SecurityMonitoring.d.ts.map +0 -1
- package/dist/src/security/SecurityMonitoring.js +0 -598
- package/dist/src/security/SecurityMonitoring.js.map +0 -1
- package/dist/src/security/SecurityReviewer.d.ts +0 -168
- package/dist/src/security/SecurityReviewer.d.ts.map +0 -1
- package/dist/src/security/SecurityReviewer.js +0 -686
- package/dist/src/security/SecurityReviewer.js.map +0 -1
- package/dist/src/security/index.d.ts +0 -183
- package/dist/src/security/index.d.ts.map +0 -1
- package/dist/src/security/index.js +0 -218
- package/dist/src/security/index.js.map +0 -1
- package/dist/src/server/ConnectionTester.d.ts +0 -32
- package/dist/src/server/ConnectionTester.d.ts.map +0 -1
- package/dist/src/server/ConnectionTester.js +0 -135
- package/dist/src/server/ConnectionTester.js.map +0 -1
- package/dist/src/server/ToolRegistry.d.ts +0 -50
- package/dist/src/server/ToolRegistry.d.ts.map +0 -1
- package/dist/src/server/ToolRegistry.js +0 -219
- package/dist/src/server/ToolRegistry.js.map +0 -1
- package/dist/src/server.d.ts +0 -7
- package/dist/src/server.d.ts.map +0 -1
- package/dist/src/server.js +0 -7
- package/dist/src/server.js.map +0 -1
- package/dist/src/tools/BaseToolManager.d.ts +0 -62
- package/dist/src/tools/BaseToolManager.d.ts.map +0 -1
- package/dist/src/tools/BaseToolManager.js +0 -195
- package/dist/src/tools/BaseToolManager.js.map +0 -1
- package/dist/src/tools/auth.d.ts +0 -50
- package/dist/src/tools/auth.d.ts.map +0 -1
- package/dist/src/tools/auth.js +0 -133
- package/dist/src/tools/auth.js.map +0 -1
- package/dist/src/tools/cache.d.ts +0 -260
- package/dist/src/tools/cache.d.ts.map +0 -1
- package/dist/src/tools/cache.js +0 -232
- package/dist/src/tools/cache.js.map +0 -1
- package/dist/src/tools/comments.d.ts +0 -33
- package/dist/src/tools/comments.d.ts.map +0 -1
- package/dist/src/tools/comments.js +0 -235
- package/dist/src/tools/comments.js.map +0 -1
- package/dist/src/tools/index.d.ts +0 -11
- package/dist/src/tools/index.d.ts.map +0 -1
- package/dist/src/tools/index.js +0 -11
- package/dist/src/tools/index.js.map +0 -1
- package/dist/src/tools/media.d.ts +0 -70
- package/dist/src/tools/media.d.ts.map +0 -1
- package/dist/src/tools/media.js +0 -248
- package/dist/src/tools/media.js.map +0 -1
- package/dist/src/tools/pages.d.ts +0 -32
- package/dist/src/tools/pages.d.ts.map +0 -1
- package/dist/src/tools/pages.js +0 -215
- package/dist/src/tools/pages.js.map +0 -1
- package/dist/src/tools/performance.d.ts +0 -73
- package/dist/src/tools/performance.d.ts.map +0 -1
- package/dist/src/tools/performance.js +0 -922
- package/dist/src/tools/performance.js.map +0 -1
- package/dist/src/tools/posts/PostHandlers.d.ts +0 -46
- package/dist/src/tools/posts/PostHandlers.d.ts.map +0 -1
- package/dist/src/tools/posts/PostHandlers.js +0 -400
- package/dist/src/tools/posts/PostHandlers.js.map +0 -1
- package/dist/src/tools/posts/PostToolDefinitions.d.ts +0 -37
- package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +0 -1
- package/dist/src/tools/posts/PostToolDefinitions.js +0 -236
- package/dist/src/tools/posts/PostToolDefinitions.js.map +0 -1
- package/dist/src/tools/posts/index.d.ts +0 -138
- package/dist/src/tools/posts/index.d.ts.map +0 -1
- package/dist/src/tools/posts/index.js +0 -163
- package/dist/src/tools/posts/index.js.map +0 -1
- package/dist/src/tools/posts.d.ts +0 -15
- package/dist/src/tools/posts.d.ts.map +0 -1
- package/dist/src/tools/posts.js +0 -16
- package/dist/src/tools/posts.js.map +0 -1
- package/dist/src/tools/site.d.ts +0 -32
- package/dist/src/tools/site.d.ts.map +0 -1
- package/dist/src/tools/site.js +0 -234
- package/dist/src/tools/site.js.map +0 -1
- package/dist/src/tools/taxonomies.d.ts +0 -36
- package/dist/src/tools/taxonomies.d.ts.map +0 -1
- package/dist/src/tools/taxonomies.js +0 -286
- package/dist/src/tools/taxonomies.js.map +0 -1
- package/dist/src/tools/users.d.ts +0 -33
- package/dist/src/tools/users.d.ts.map +0 -1
- package/dist/src/tools/users.js +0 -308
- package/dist/src/tools/users.js.map +0 -1
- package/dist/src/types/client.d.ts +0 -223
- package/dist/src/types/client.d.ts.map +0 -1
- package/dist/src/types/client.js +0 -97
- package/dist/src/types/client.js.map +0 -1
- package/dist/src/types/enhanced.d.ts +0 -237
- package/dist/src/types/enhanced.d.ts.map +0 -1
- package/dist/src/types/enhanced.js +0 -49
- package/dist/src/types/enhanced.js.map +0 -1
- package/dist/src/types/index.d.ts +0 -160
- package/dist/src/types/index.d.ts.map +0 -1
- package/dist/src/types/index.js +0 -14
- package/dist/src/types/index.js.map +0 -1
- package/dist/src/types/mcp.d.ts +0 -178
- package/dist/src/types/mcp.d.ts.map +0 -1
- package/dist/src/types/mcp.js +0 -7
- package/dist/src/types/mcp.js.map +0 -1
- package/dist/src/types/requests.d.ts +0 -322
- package/dist/src/types/requests.d.ts.map +0 -1
- package/dist/src/types/requests.js +0 -8
- package/dist/src/types/requests.js.map +0 -1
- package/dist/src/types/tools.d.ts +0 -506
- package/dist/src/types/tools.d.ts.map +0 -1
- package/dist/src/types/tools.js +0 -8
- package/dist/src/types/tools.js.map +0 -1
- package/dist/src/types/wordpress.d.ts +0 -471
- package/dist/src/types/wordpress.d.ts.map +0 -1
- package/dist/src/types/wordpress.js +0 -14
- package/dist/src/types/wordpress.js.map +0 -1
- package/dist/src/utils/debug.d.ts +0 -71
- package/dist/src/utils/debug.d.ts.map +0 -1
- package/dist/src/utils/debug.js +0 -235
- package/dist/src/utils/debug.js.map +0 -1
- package/dist/src/utils/enhancedError.d.ts +0 -61
- package/dist/src/utils/enhancedError.d.ts.map +0 -1
- package/dist/src/utils/enhancedError.js +0 -221
- package/dist/src/utils/enhancedError.js.map +0 -1
- package/dist/src/utils/error.d.ts +0 -17
- package/dist/src/utils/error.d.ts.map +0 -1
- package/dist/src/utils/error.js +0 -108
- package/dist/src/utils/error.js.map +0 -1
- package/dist/src/utils/logger.d.ts +0 -106
- package/dist/src/utils/logger.d.ts.map +0 -1
- package/dist/src/utils/logger.js +0 -280
- package/dist/src/utils/logger.js.map +0 -1
- package/dist/src/utils/streaming.d.ts +0 -104
- package/dist/src/utils/streaming.d.ts.map +0 -1
- package/dist/src/utils/streaming.js +0 -331
- package/dist/src/utils/streaming.js.map +0 -1
- package/dist/src/utils/toolWrapper.d.ts +0 -42
- package/dist/src/utils/toolWrapper.d.ts.map +0 -1
- package/dist/src/utils/toolWrapper.js +0 -101
- package/dist/src/utils/toolWrapper.js.map +0 -1
- package/dist/src/utils/validation/core.d.ts +0 -21
- package/dist/src/utils/validation/core.d.ts.map +0 -1
- package/dist/src/utils/validation/core.js +0 -71
- package/dist/src/utils/validation/core.js.map +0 -1
- package/dist/src/utils/validation/index.d.ts +0 -25
- package/dist/src/utils/validation/index.d.ts.map +0 -1
- package/dist/src/utils/validation/index.js +0 -29
- package/dist/src/utils/validation/index.js.map +0 -1
- package/dist/src/utils/validation/network.d.ts +0 -19
- package/dist/src/utils/validation/network.d.ts.map +0 -1
- package/dist/src/utils/validation/network.js +0 -93
- package/dist/src/utils/validation/network.js.map +0 -1
- package/dist/src/utils/validation/rateLimit.d.ts +0 -21
- package/dist/src/utils/validation/rateLimit.d.ts.map +0 -1
- package/dist/src/utils/validation/rateLimit.js +0 -43
- package/dist/src/utils/validation/rateLimit.js.map +0 -1
- package/dist/src/utils/validation/security.d.ts +0 -29
- package/dist/src/utils/validation/security.d.ts.map +0 -1
- package/dist/src/utils/validation/security.js +0 -327
- package/dist/src/utils/validation/security.js.map +0 -1
- package/dist/src/utils/validation/wordpress.d.ts +0 -31
- package/dist/src/utils/validation/wordpress.d.ts.map +0 -1
- package/dist/src/utils/validation/wordpress.js +0 -146
- package/dist/src/utils/validation/wordpress.js.map +0 -1
- package/dist/src/utils/validation.d.ts +0 -15
- package/dist/src/utils/validation.d.ts.map +0 -1
- package/dist/src/utils/validation.js +0 -27
- package/dist/src/utils/validation.js.map +0 -1
- package/dist/tests/vitest.setup.d.ts +0 -6
- package/dist/tests/vitest.setup.d.ts.map +0 -1
- package/dist/tests/vitest.setup.js +0 -39
- package/dist/tests/vitest.setup.js.map +0 -1
|
@@ -1,283 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTTP-level caching wrapper with ETags and Cache-Control headers
|
|
3
|
-
* Implements WordPress REST API caching best practices
|
|
4
|
-
*/
|
|
5
|
-
import { CachePresets } from "./CacheManager.js";
|
|
6
|
-
import * as crypto from "crypto";
|
|
7
|
-
import { LoggerFactory } from "../utils/logger.js";
|
|
8
|
-
/**
|
|
9
|
-
* HTTP caching wrapper that adds intelligent caching to HTTP requests
|
|
10
|
-
*/
|
|
11
|
-
export class HttpCacheWrapper {
|
|
12
|
-
cacheManager;
|
|
13
|
-
siteId;
|
|
14
|
-
logger = LoggerFactory.cache();
|
|
15
|
-
constructor(cacheManager, siteId) {
|
|
16
|
-
this.cacheManager = cacheManager;
|
|
17
|
-
this.siteId = siteId;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Execute request with intelligent caching
|
|
21
|
-
*/
|
|
22
|
-
async request(requestFn, options, cacheOptions) {
|
|
23
|
-
// Only cache GET requests
|
|
24
|
-
if (options.method.toUpperCase() !== "GET") {
|
|
25
|
-
return await requestFn();
|
|
26
|
-
}
|
|
27
|
-
const cacheKey = this.generateCacheKey(options);
|
|
28
|
-
const cachedEntry = this.cacheManager.getEntry(cacheKey);
|
|
29
|
-
// Check for conditional request support
|
|
30
|
-
if (cachedEntry && this.cacheManager.supportsConditionalRequest(cacheKey)) {
|
|
31
|
-
const conditionalHeaders = this.cacheManager.getConditionalHeaders(cacheKey);
|
|
32
|
-
// Add conditional headers to request
|
|
33
|
-
const requestWithHeaders = {
|
|
34
|
-
...options,
|
|
35
|
-
headers: {
|
|
36
|
-
...options.headers,
|
|
37
|
-
...conditionalHeaders,
|
|
38
|
-
},
|
|
39
|
-
};
|
|
40
|
-
try {
|
|
41
|
-
const response = await this.executeRequestWithHeaders(requestFn, requestWithHeaders);
|
|
42
|
-
// 304 Not Modified - return cached data
|
|
43
|
-
if (response.status === 304) {
|
|
44
|
-
return {
|
|
45
|
-
data: cachedEntry.value.data,
|
|
46
|
-
status: 200,
|
|
47
|
-
headers: cachedEntry.value.headers,
|
|
48
|
-
cached: true,
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
// Content changed - update cache
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
53
|
-
return await this.cacheAndReturn(response, cacheKey, cacheOptions);
|
|
54
|
-
}
|
|
55
|
-
catch (error) {
|
|
56
|
-
// If conditional request fails, try without conditions
|
|
57
|
-
this.logger.warn("Conditional request failed, falling back to regular request", {
|
|
58
|
-
error: error instanceof Error ? error.message : String(error),
|
|
59
|
-
siteId: this.siteId
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
// Check for valid cached response
|
|
64
|
-
const cached = this.cacheManager.get(cacheKey);
|
|
65
|
-
if (cached) {
|
|
66
|
-
return {
|
|
67
|
-
data: cached.data,
|
|
68
|
-
status: cached.status,
|
|
69
|
-
headers: cached.headers,
|
|
70
|
-
cached: true,
|
|
71
|
-
};
|
|
72
|
-
}
|
|
73
|
-
// Execute fresh request
|
|
74
|
-
const response = await requestFn();
|
|
75
|
-
return await this.cacheAndReturn(response, cacheKey, cacheOptions);
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Invalidate cache for specific endpoint
|
|
79
|
-
*/
|
|
80
|
-
invalidate(endpoint, params) {
|
|
81
|
-
const cacheKey = this.cacheManager.generateKey(this.siteId, endpoint, params);
|
|
82
|
-
this.cacheManager.delete(cacheKey);
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Invalidate cache entries matching pattern
|
|
86
|
-
*/
|
|
87
|
-
invalidatePattern(pattern) {
|
|
88
|
-
const regex = new RegExp(`${this.siteId}:${pattern}`);
|
|
89
|
-
return this.cacheManager.clearPattern(regex);
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Invalidate all cache for this site
|
|
93
|
-
*/
|
|
94
|
-
invalidateAll() {
|
|
95
|
-
return this.cacheManager.clearSite(this.siteId);
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Pre-warm cache with data
|
|
99
|
-
*/
|
|
100
|
-
warm(endpoint, data, params, cacheOptions) {
|
|
101
|
-
const cacheKey = this.cacheManager.generateKey(this.siteId, endpoint, params);
|
|
102
|
-
const ttl = cacheOptions?.ttl || this.getDefaultTTL(endpoint);
|
|
103
|
-
const cachedResponse = {
|
|
104
|
-
data,
|
|
105
|
-
status: 200,
|
|
106
|
-
headers: this.generateCacheHeaders(cacheOptions, endpoint),
|
|
107
|
-
etag: this.generateETag(data),
|
|
108
|
-
lastModified: new Date().toUTCString(),
|
|
109
|
-
cacheControl: cacheOptions?.cacheControl || this.getDefaultCacheControl(endpoint),
|
|
110
|
-
};
|
|
111
|
-
this.cacheManager.set(cacheKey, cachedResponse, ttl, cachedResponse.etag, cachedResponse.lastModified);
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Get cache statistics for this site
|
|
115
|
-
*/
|
|
116
|
-
getStats() {
|
|
117
|
-
return this.cacheManager.getStats();
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Generate cache key for request
|
|
121
|
-
*/
|
|
122
|
-
generateCacheKey(options) {
|
|
123
|
-
const endpoint = this.extractEndpoint(options.url);
|
|
124
|
-
return this.cacheManager.generateKey(this.siteId, endpoint, {
|
|
125
|
-
...options.params,
|
|
126
|
-
// Include relevant headers that affect response
|
|
127
|
-
...this.extractCacheableHeaders(options.headers),
|
|
128
|
-
});
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Extract endpoint from full URL
|
|
132
|
-
*/
|
|
133
|
-
extractEndpoint(url) {
|
|
134
|
-
// Extract the path after /wp-json/wp/v2/
|
|
135
|
-
const match = url.match(/\/wp-json\/wp\/v2\/(.+?)(?:\?|$)/);
|
|
136
|
-
return match ? match[1] : url;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Extract headers that affect caching
|
|
140
|
-
*/
|
|
141
|
-
extractCacheableHeaders(headers) {
|
|
142
|
-
if (!headers)
|
|
143
|
-
return {};
|
|
144
|
-
const cacheableHeaders = {};
|
|
145
|
-
const relevantHeaders = ["accept", "accept-language", "authorization"];
|
|
146
|
-
for (const header of relevantHeaders) {
|
|
147
|
-
if (headers[header]) {
|
|
148
|
-
cacheableHeaders[header] = headers[header];
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return cacheableHeaders;
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Execute request with modified headers
|
|
155
|
-
*/
|
|
156
|
-
async executeRequestWithHeaders(requestFn, options) {
|
|
157
|
-
// This is a simplified approach - in practice, you'd need to modify the actual request
|
|
158
|
-
// The actual implementation would depend on your HTTP client (axios, fetch, etc.)
|
|
159
|
-
return await requestFn();
|
|
160
|
-
}
|
|
161
|
-
/**
|
|
162
|
-
* Cache response and return with cache metadata
|
|
163
|
-
*/
|
|
164
|
-
async cacheAndReturn(response, cacheKey, cacheOptions) {
|
|
165
|
-
// Don't cache error responses (unless specifically configured)
|
|
166
|
-
if (response.status >= 400) {
|
|
167
|
-
return response;
|
|
168
|
-
}
|
|
169
|
-
const endpoint = this.extractEndpointFromKey(cacheKey);
|
|
170
|
-
const ttl = cacheOptions?.ttl || this.getDefaultTTL(endpoint);
|
|
171
|
-
// Generate ETags and cache headers
|
|
172
|
-
const etag = this.generateETag(response.data);
|
|
173
|
-
const lastModified = new Date().toUTCString();
|
|
174
|
-
const cacheControl = cacheOptions?.cacheControl || this.getDefaultCacheControl(endpoint);
|
|
175
|
-
const cachedResponse = {
|
|
176
|
-
data: response.data,
|
|
177
|
-
status: response.status,
|
|
178
|
-
headers: {
|
|
179
|
-
...response.headers,
|
|
180
|
-
etag: etag,
|
|
181
|
-
"last-modified": lastModified,
|
|
182
|
-
"cache-control": cacheControl,
|
|
183
|
-
},
|
|
184
|
-
etag,
|
|
185
|
-
lastModified,
|
|
186
|
-
cacheControl,
|
|
187
|
-
};
|
|
188
|
-
// Store in cache
|
|
189
|
-
this.cacheManager.set(cacheKey, cachedResponse, ttl, etag, lastModified);
|
|
190
|
-
return {
|
|
191
|
-
data: response.data,
|
|
192
|
-
status: response.status,
|
|
193
|
-
headers: cachedResponse.headers,
|
|
194
|
-
cached: false,
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Generate ETag for response data
|
|
199
|
-
*/
|
|
200
|
-
generateETag(data) {
|
|
201
|
-
const hash = crypto.createHash("md5").update(JSON.stringify(data)).digest("hex");
|
|
202
|
-
return `"${hash}"`;
|
|
203
|
-
}
|
|
204
|
-
/**
|
|
205
|
-
* Get default TTL based on endpoint type
|
|
206
|
-
*/
|
|
207
|
-
getDefaultTTL(endpoint) {
|
|
208
|
-
// Static data endpoints
|
|
209
|
-
if (this.isStaticEndpoint(endpoint)) {
|
|
210
|
-
return CachePresets.STATIC.ttl;
|
|
211
|
-
}
|
|
212
|
-
// Semi-static data endpoints
|
|
213
|
-
if (this.isSemiStaticEndpoint(endpoint)) {
|
|
214
|
-
return CachePresets.SEMI_STATIC.ttl;
|
|
215
|
-
}
|
|
216
|
-
// Session/auth endpoints
|
|
217
|
-
if (this.isSessionEndpoint(endpoint)) {
|
|
218
|
-
return CachePresets.SESSION.ttl;
|
|
219
|
-
}
|
|
220
|
-
// Default to dynamic for posts, comments, etc.
|
|
221
|
-
return CachePresets.DYNAMIC.ttl;
|
|
222
|
-
}
|
|
223
|
-
/**
|
|
224
|
-
* Get default Cache-Control header based on endpoint
|
|
225
|
-
*/
|
|
226
|
-
getDefaultCacheControl(endpoint) {
|
|
227
|
-
if (this.isStaticEndpoint(endpoint)) {
|
|
228
|
-
return CachePresets.STATIC.cacheControl;
|
|
229
|
-
}
|
|
230
|
-
if (this.isSemiStaticEndpoint(endpoint)) {
|
|
231
|
-
return CachePresets.SEMI_STATIC.cacheControl;
|
|
232
|
-
}
|
|
233
|
-
if (this.isSessionEndpoint(endpoint)) {
|
|
234
|
-
return CachePresets.SESSION.cacheControl;
|
|
235
|
-
}
|
|
236
|
-
return CachePresets.DYNAMIC.cacheControl;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* Generate cache headers
|
|
240
|
-
*/
|
|
241
|
-
generateCacheHeaders(options, endpoint) {
|
|
242
|
-
const headers = {};
|
|
243
|
-
if (options?.cacheControl) {
|
|
244
|
-
headers["cache-control"] = options.cacheControl;
|
|
245
|
-
}
|
|
246
|
-
else if (endpoint) {
|
|
247
|
-
headers["cache-control"] = this.getDefaultCacheControl(endpoint);
|
|
248
|
-
}
|
|
249
|
-
if (options?.varyHeaders?.length) {
|
|
250
|
-
headers["vary"] = options.varyHeaders.join(", ");
|
|
251
|
-
}
|
|
252
|
-
return headers;
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Check if endpoint contains static data
|
|
256
|
-
*/
|
|
257
|
-
isStaticEndpoint(endpoint) {
|
|
258
|
-
const staticEndpoints = ["settings", "types", "statuses"];
|
|
259
|
-
return staticEndpoints.some((pattern) => endpoint.includes(pattern));
|
|
260
|
-
}
|
|
261
|
-
/**
|
|
262
|
-
* Check if endpoint contains semi-static data
|
|
263
|
-
*/
|
|
264
|
-
isSemiStaticEndpoint(endpoint) {
|
|
265
|
-
const semiStaticEndpoints = ["categories", "tags", "users", "taxonomies"];
|
|
266
|
-
return semiStaticEndpoints.some((pattern) => endpoint.includes(pattern));
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Check if endpoint is session-related
|
|
270
|
-
*/
|
|
271
|
-
isSessionEndpoint(endpoint) {
|
|
272
|
-
const sessionEndpoints = ["users/me", "application-passwords"];
|
|
273
|
-
return sessionEndpoints.some((pattern) => endpoint.includes(pattern));
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Extract endpoint from cache key
|
|
277
|
-
*/
|
|
278
|
-
extractEndpointFromKey(cacheKey) {
|
|
279
|
-
const parts = cacheKey.split(":");
|
|
280
|
-
return parts[1] || "";
|
|
281
|
-
}
|
|
282
|
-
}
|
|
283
|
-
//# sourceMappingURL=HttpCacheWrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HttpCacheWrapper.js","sourceRoot":"","sources":["../../../src/cache/HttpCacheWrapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cache system exports
|
|
3
|
-
* Provides centralized access to all caching components
|
|
4
|
-
*/
|
|
5
|
-
export { CacheManager, CachePresets } from "./CacheManager.js";
|
|
6
|
-
export { HttpCacheWrapper } from "./HttpCacheWrapper.js";
|
|
7
|
-
export { CacheInvalidation, WordPressCachePatterns, CacheWarmer } from "./CacheInvalidation.js";
|
|
8
|
-
export { CachedWordPressClient } from "../client/CachedWordPressClient.js";
|
|
9
|
-
export type { CacheEntry, CacheStats, CacheConfig } from "./CacheManager.js";
|
|
10
|
-
export type { HttpCacheOptions, CachedResponse, RequestOptions } from "./HttpCacheWrapper.js";
|
|
11
|
-
export type { InvalidationRule, InvalidationEvent } from "./CacheInvalidation.js";
|
|
12
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE3E,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE7E,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE9F,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC"}
|
package/dist/src/cache/index.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Cache system exports
|
|
3
|
-
* Provides centralized access to all caching components
|
|
4
|
-
*/
|
|
5
|
-
export { CacheManager, CachePresets } from "./CacheManager.js";
|
|
6
|
-
export { HttpCacheWrapper } from "./HttpCacheWrapper.js";
|
|
7
|
-
export { CacheInvalidation, WordPressCachePatterns, CacheWarmer } from "./CacheInvalidation.js";
|
|
8
|
-
export { CachedWordPressClient } from "../client/CachedWordPressClient.js";
|
|
9
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cache/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC"}
|
|
@@ -1,174 +0,0 @@
|
|
|
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, type CacheStats } from "../cache/CacheManager.js";
|
|
7
|
-
import type { WordPressClientConfig, HTTPMethod, RequestOptions } from "../types/client.js";
|
|
8
|
-
import type { WordPressPost, WordPressUser, WordPressCategory, WordPressTag, WordPressSiteSettings, PostQueryParams, CreatePostRequest, UpdatePostRequest } from "../types/wordpress.js";
|
|
9
|
-
/**
|
|
10
|
-
* WordPress client with intelligent caching
|
|
11
|
-
*/
|
|
12
|
-
export declare class CachedWordPressClient extends WordPressClient {
|
|
13
|
-
private cacheManager;
|
|
14
|
-
private httpCache;
|
|
15
|
-
private cacheInvalidation;
|
|
16
|
-
private siteId;
|
|
17
|
-
constructor(config: WordPressClientConfig, siteId?: string);
|
|
18
|
-
/**
|
|
19
|
-
* Override request method to add caching
|
|
20
|
-
*/
|
|
21
|
-
request<T = unknown>(method: HTTPMethod, endpoint: string, data?: unknown, options?: RequestOptions): Promise<T>;
|
|
22
|
-
/**
|
|
23
|
-
* Enhanced methods with caching optimization
|
|
24
|
-
*/
|
|
25
|
-
/**
|
|
26
|
-
* Get posts with intelligent caching
|
|
27
|
-
*/
|
|
28
|
-
getPosts(params?: PostQueryParams): Promise<WordPressPost[]>;
|
|
29
|
-
/**
|
|
30
|
-
* Get single post with caching
|
|
31
|
-
*/
|
|
32
|
-
getPost(id: number): Promise<WordPressPost>;
|
|
33
|
-
/**
|
|
34
|
-
* Create post with cache invalidation
|
|
35
|
-
*/
|
|
36
|
-
createPost(data: CreatePostRequest): Promise<WordPressPost>;
|
|
37
|
-
/**
|
|
38
|
-
* Update post with cache invalidation
|
|
39
|
-
*/
|
|
40
|
-
updatePost(data: UpdatePostRequest): Promise<WordPressPost>;
|
|
41
|
-
/**
|
|
42
|
-
* Delete post with cache invalidation
|
|
43
|
-
*/
|
|
44
|
-
deletePost(id: number, force?: boolean): Promise<{
|
|
45
|
-
deleted: boolean;
|
|
46
|
-
previous?: WordPressPost;
|
|
47
|
-
}>;
|
|
48
|
-
/**
|
|
49
|
-
* Get current user with session caching
|
|
50
|
-
*/
|
|
51
|
-
getCurrentUser(): Promise<WordPressUser>;
|
|
52
|
-
/**
|
|
53
|
-
* Get categories with semi-static caching
|
|
54
|
-
*/
|
|
55
|
-
getCategories(params?: Record<string, unknown>): Promise<WordPressCategory[]>;
|
|
56
|
-
/**
|
|
57
|
-
* Get tags with semi-static caching
|
|
58
|
-
*/
|
|
59
|
-
getTags(params?: Record<string, unknown>): Promise<WordPressTag[]>;
|
|
60
|
-
/**
|
|
61
|
-
* Get site settings with static caching
|
|
62
|
-
*/
|
|
63
|
-
getSiteSettings(): Promise<WordPressSiteSettings>;
|
|
64
|
-
/**
|
|
65
|
-
* Cache management methods
|
|
66
|
-
*/
|
|
67
|
-
/**
|
|
68
|
-
* Private helper methods
|
|
69
|
-
*/
|
|
70
|
-
private extractEndpoint;
|
|
71
|
-
/**
|
|
72
|
-
* Get cache options based on endpoint
|
|
73
|
-
*/
|
|
74
|
-
private getCacheOptions;
|
|
75
|
-
/**
|
|
76
|
-
* Handle cache invalidation for write operations
|
|
77
|
-
*/
|
|
78
|
-
private handleCacheInvalidation;
|
|
79
|
-
/**
|
|
80
|
-
* Extract resource type from endpoint
|
|
81
|
-
*/
|
|
82
|
-
private extractResourceFromEndpoint;
|
|
83
|
-
/**
|
|
84
|
-
* Extract ID from endpoint
|
|
85
|
-
*/
|
|
86
|
-
private extractIdFromEndpoint;
|
|
87
|
-
/**
|
|
88
|
-
* Check if endpoint contains static data
|
|
89
|
-
*/
|
|
90
|
-
private isStaticEndpoint;
|
|
91
|
-
/**
|
|
92
|
-
* Check if endpoint contains semi-static data
|
|
93
|
-
*/
|
|
94
|
-
private isSemiStaticEndpoint;
|
|
95
|
-
/**
|
|
96
|
-
* Check if endpoint is session-related
|
|
97
|
-
*/
|
|
98
|
-
private isSessionEndpoint;
|
|
99
|
-
/**
|
|
100
|
-
* Performance monitoring and cache management methods
|
|
101
|
-
*/
|
|
102
|
-
/**
|
|
103
|
-
* Get cache statistics for performance monitoring
|
|
104
|
-
*/
|
|
105
|
-
getCacheStats(): {
|
|
106
|
-
cache: CacheStats;
|
|
107
|
-
invalidation: {
|
|
108
|
-
queueSize: number;
|
|
109
|
-
rulesCount: number;
|
|
110
|
-
processing: boolean;
|
|
111
|
-
};
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* Get cache manager instance (for performance monitoring integration)
|
|
115
|
-
*/
|
|
116
|
-
getCacheManager(): CacheManager;
|
|
117
|
-
/**
|
|
118
|
-
* Clear cache entries (for cache management tools)
|
|
119
|
-
*/
|
|
120
|
-
clearCache(): number;
|
|
121
|
-
/**
|
|
122
|
-
* Clear cache entries matching pattern
|
|
123
|
-
*/
|
|
124
|
-
clearCachePattern(pattern: string): number;
|
|
125
|
-
/**
|
|
126
|
-
* Warm cache with essential data
|
|
127
|
-
*/
|
|
128
|
-
warmCache(): Promise<void>;
|
|
129
|
-
/**
|
|
130
|
-
* Get cache efficiency metrics
|
|
131
|
-
*/
|
|
132
|
-
getCacheEfficiency(): {
|
|
133
|
-
hitRate: number;
|
|
134
|
-
missRate: number;
|
|
135
|
-
efficiency: string;
|
|
136
|
-
memoryUsage: number;
|
|
137
|
-
totalEntries: number;
|
|
138
|
-
};
|
|
139
|
-
/**
|
|
140
|
-
* Get cache configuration info
|
|
141
|
-
*/
|
|
142
|
-
getCacheInfo(): {
|
|
143
|
-
enabled: boolean;
|
|
144
|
-
siteId: string;
|
|
145
|
-
maxSize: number;
|
|
146
|
-
defaultTTL: number;
|
|
147
|
-
currentSize: number;
|
|
148
|
-
ttlPresets: Record<string, unknown>;
|
|
149
|
-
};
|
|
150
|
-
/**
|
|
151
|
-
* Estimate memory usage of cache (in MB)
|
|
152
|
-
*/
|
|
153
|
-
private estimateMemoryUsage;
|
|
154
|
-
/**
|
|
155
|
-
* Get detailed cache performance metrics
|
|
156
|
-
*/
|
|
157
|
-
getDetailedCacheMetrics(): {
|
|
158
|
-
statistics: {
|
|
159
|
-
cache: CacheStats;
|
|
160
|
-
invalidation: {
|
|
161
|
-
queueSize: number;
|
|
162
|
-
rulesCount: number;
|
|
163
|
-
processing: boolean;
|
|
164
|
-
};
|
|
165
|
-
};
|
|
166
|
-
efficiency: Record<string, unknown>;
|
|
167
|
-
configuration: Record<string, unknown>;
|
|
168
|
-
siteInfo: {
|
|
169
|
-
siteId: string;
|
|
170
|
-
baseUrl: string;
|
|
171
|
-
};
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
//# sourceMappingURL=CachedWordPressClient.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CachedWordPressClient.d.ts","sourceRoot":"","sources":["../../../src/client/CachedWordPressClient.ts"],"names":[],"mappings":"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"}
|