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.
- package/README.md +388 -66
- package/dist/cache/CacheInvalidation.d.ts +118 -0
- package/dist/cache/CacheInvalidation.d.ts.map +1 -0
- package/dist/cache/CacheInvalidation.js +349 -0
- package/dist/cache/CacheInvalidation.js.map +1 -0
- package/dist/cache/CacheManager.d.ts +143 -0
- package/dist/cache/CacheManager.d.ts.map +1 -0
- package/dist/cache/CacheManager.js +308 -0
- package/dist/cache/CacheManager.js.map +1 -0
- package/dist/cache/HttpCacheWrapper.d.ts +121 -0
- package/dist/cache/HttpCacheWrapper.d.ts.map +1 -0
- package/dist/cache/HttpCacheWrapper.js +280 -0
- package/dist/cache/HttpCacheWrapper.js.map +1 -0
- package/dist/cache/__tests__/CacheInvalidation.test.d.ts +5 -0
- package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +1 -0
- package/dist/cache/__tests__/CacheInvalidation.test.js +236 -0
- package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -0
- package/dist/cache/__tests__/CacheManager.test.d.ts +5 -0
- package/dist/cache/__tests__/CacheManager.test.d.ts.map +1 -0
- package/dist/cache/__tests__/CacheManager.test.js +233 -0
- package/dist/cache/__tests__/CacheManager.test.js.map +1 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +5 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +1 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.js +228 -0
- package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +5 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +1 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.js +296 -0
- package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -0
- package/dist/cache/index.d.ts +12 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +9 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/client/CachedWordPressClient.d.ts +160 -0
- package/dist/client/CachedWordPressClient.d.ts.map +1 -0
- package/dist/client/CachedWordPressClient.js +338 -0
- package/dist/client/CachedWordPressClient.js.map +1 -0
- package/dist/client/WordPressClient.d.ts +81 -0
- package/dist/client/WordPressClient.d.ts.map +1 -0
- package/dist/client/WordPressClient.js +354 -0
- package/dist/client/WordPressClient.js.map +1 -0
- package/dist/config/ConfigurationSchema.d.ts +281 -0
- package/dist/config/ConfigurationSchema.d.ts.map +1 -0
- package/dist/config/ConfigurationSchema.js +205 -0
- package/dist/config/ConfigurationSchema.js.map +1 -0
- package/dist/config/ServerConfiguration.d.ts +38 -0
- package/dist/config/ServerConfiguration.d.ts.map +1 -0
- package/dist/config/ServerConfiguration.js +158 -0
- package/dist/config/ServerConfiguration.js.map +1 -0
- package/dist/docs/DocumentationGenerator.d.ts +184 -0
- package/dist/docs/DocumentationGenerator.d.ts.map +1 -0
- package/dist/docs/DocumentationGenerator.js +735 -0
- package/dist/docs/DocumentationGenerator.js.map +1 -0
- package/dist/docs/MarkdownFormatter.d.ts +84 -0
- package/dist/docs/MarkdownFormatter.d.ts.map +1 -0
- package/dist/docs/MarkdownFormatter.js +448 -0
- package/dist/docs/MarkdownFormatter.js.map +1 -0
- package/dist/docs/index.d.ts +8 -0
- package/dist/docs/index.d.ts.map +1 -0
- package/dist/docs/index.js +7 -0
- package/dist/docs/index.js.map +1 -0
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -212
- package/dist/index.js.map +1 -1
- package/dist/performance/AnomalyDetector.d.ts +63 -0
- package/dist/performance/AnomalyDetector.d.ts.map +1 -0
- package/dist/performance/AnomalyDetector.js +222 -0
- package/dist/performance/AnomalyDetector.js.map +1 -0
- package/dist/performance/BenchmarkAnalyzer.d.ts +67 -0
- package/dist/performance/BenchmarkAnalyzer.d.ts.map +1 -0
- package/dist/performance/BenchmarkAnalyzer.js +301 -0
- package/dist/performance/BenchmarkAnalyzer.js.map +1 -0
- package/dist/performance/MetricsCollector.d.ts +139 -0
- package/dist/performance/MetricsCollector.d.ts.map +1 -0
- package/dist/performance/MetricsCollector.js +320 -0
- package/dist/performance/MetricsCollector.js.map +1 -0
- package/dist/performance/PerformanceAnalytics.d.ts +162 -0
- package/dist/performance/PerformanceAnalytics.d.ts.map +1 -0
- package/dist/performance/PerformanceAnalytics.js +554 -0
- package/dist/performance/PerformanceAnalytics.js.map +1 -0
- package/dist/performance/PerformanceMonitor.d.ts +202 -0
- package/dist/performance/PerformanceMonitor.d.ts.map +1 -0
- package/dist/performance/PerformanceMonitor.js +478 -0
- package/dist/performance/PerformanceMonitor.js.map +1 -0
- package/dist/performance/TrendAnalyzer.d.ts +69 -0
- package/dist/performance/TrendAnalyzer.d.ts.map +1 -0
- package/dist/performance/TrendAnalyzer.js +203 -0
- package/dist/performance/TrendAnalyzer.js.map +1 -0
- package/dist/performance/index.d.ts +11 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +8 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/security/InputValidator.d.ts +215 -0
- package/dist/security/InputValidator.d.ts.map +1 -0
- package/dist/security/InputValidator.js +278 -0
- package/dist/security/InputValidator.js.map +1 -0
- package/dist/security/SecurityConfig.d.ts +129 -0
- package/dist/security/SecurityConfig.d.ts.map +1 -0
- package/dist/security/SecurityConfig.js +262 -0
- package/dist/security/SecurityConfig.js.map +1 -0
- package/dist/server/ConnectionTester.d.ts +24 -0
- package/dist/server/ConnectionTester.d.ts.map +1 -0
- package/dist/server/ConnectionTester.js +61 -0
- package/dist/server/ConnectionTester.js.map +1 -0
- package/dist/server/ToolRegistry.d.ts +46 -0
- package/dist/server/ToolRegistry.d.ts.map +1 -0
- package/dist/server/ToolRegistry.js +148 -0
- package/dist/server/ToolRegistry.js.map +1 -0
- package/dist/tools/BaseToolClass.d.ts +76 -0
- package/dist/tools/BaseToolClass.d.ts.map +1 -0
- package/dist/tools/BaseToolClass.js +104 -0
- package/dist/tools/BaseToolClass.js.map +1 -0
- package/dist/tools/BaseToolManager.d.ts +26 -0
- package/dist/tools/BaseToolManager.d.ts.map +1 -0
- package/dist/tools/BaseToolManager.js +56 -0
- package/dist/tools/BaseToolManager.js.map +1 -0
- package/dist/tools/base.d.ts +37 -0
- package/dist/tools/base.d.ts.map +1 -0
- package/dist/tools/base.js +60 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/cache.d.ts +260 -0
- package/dist/tools/cache.d.ts.map +1 -0
- package/dist/tools/cache.js +237 -0
- package/dist/tools/cache.js.map +1 -0
- package/dist/tools/index.d.ts +2 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +2 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/performance.d.ts +63 -0
- package/dist/tools/performance.d.ts.map +1 -0
- package/dist/tools/performance.js +865 -0
- package/dist/tools/performance.js.map +1 -0
- package/dist/types/client.d.ts +1 -0
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.js.map +1 -1
- package/dist/utils/toolWrapper.d.ts +4 -0
- package/dist/utils/toolWrapper.d.ts.map +1 -1
- package/dist/utils/toolWrapper.js +11 -0
- package/dist/utils/toolWrapper.js.map +1 -1
- package/dist/utils/validation.d.ts +68 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +185 -0
- package/dist/utils/validation.js.map +1 -0
- package/docs/CACHING.md +340 -0
- package/docs/DOCKER.md +451 -0
- package/docs/PERFORMANCE_MONITORING.md +471 -0
- package/docs/SECURITY_TESTING.md +393 -0
- package/docs/api/README.md +200 -0
- package/docs/api/categories/auth.md +40 -0
- package/docs/api/categories/cache.md +41 -0
- package/docs/api/categories/comment.md +44 -0
- package/docs/api/categories/media.md +43 -0
- package/docs/api/categories/page.md +43 -0
- package/docs/api/categories/performance.md +44 -0
- package/docs/api/categories/post.md +43 -0
- package/docs/api/categories/site.md +43 -0
- package/docs/api/categories/taxonomy.md +47 -0
- package/docs/api/categories/user.md +43 -0
- package/docs/api/openapi.json +3305 -0
- package/docs/api/summary.json +12 -0
- package/docs/api/tools/wp_approve_comment.md +98 -0
- package/docs/api/tools/wp_cache_clear.md +120 -0
- package/docs/api/tools/wp_cache_info.md +119 -0
- package/docs/api/tools/wp_cache_stats.md +119 -0
- package/docs/api/tools/wp_cache_warm.md +119 -0
- package/docs/api/tools/wp_create_application_password.md +102 -0
- package/docs/api/tools/wp_create_category.md +102 -0
- package/docs/api/tools/wp_create_comment.md +128 -0
- package/docs/api/tools/wp_create_page.md +135 -0
- package/docs/api/tools/wp_create_post.md +147 -0
- package/docs/api/tools/wp_create_tag.md +101 -0
- package/docs/api/tools/wp_create_user.md +135 -0
- package/docs/api/tools/wp_delete_application_password.md +101 -0
- package/docs/api/tools/wp_delete_category.md +100 -0
- package/docs/api/tools/wp_delete_comment.md +101 -0
- package/docs/api/tools/wp_delete_media.md +108 -0
- package/docs/api/tools/wp_delete_page.md +108 -0
- package/docs/api/tools/wp_delete_post.md +117 -0
- package/docs/api/tools/wp_delete_tag.md +100 -0
- package/docs/api/tools/wp_delete_user.md +108 -0
- package/docs/api/tools/wp_get_application_passwords.md +103 -0
- package/docs/api/tools/wp_get_auth_status.md +101 -0
- package/docs/api/tools/wp_get_category.md +103 -0
- package/docs/api/tools/wp_get_comment.md +103 -0
- package/docs/api/tools/wp_get_current_user.md +101 -0
- package/docs/api/tools/wp_get_media.md +103 -0
- package/docs/api/tools/wp_get_page.md +103 -0
- package/docs/api/tools/wp_get_page_revisions.md +103 -0
- package/docs/api/tools/wp_get_post.md +112 -0
- package/docs/api/tools/wp_get_post_revisions.md +103 -0
- package/docs/api/tools/wp_get_site_settings.md +108 -0
- package/docs/api/tools/wp_get_tag.md +103 -0
- package/docs/api/tools/wp_get_user.md +103 -0
- package/docs/api/tools/wp_list_categories.md +111 -0
- package/docs/api/tools/wp_list_comments.md +111 -0
- package/docs/api/tools/wp_list_media.md +145 -0
- package/docs/api/tools/wp_list_pages.md +145 -0
- package/docs/api/tools/wp_list_posts.md +156 -0
- package/docs/api/tools/wp_list_tags.md +110 -0
- package/docs/api/tools/wp_list_users.md +111 -0
- package/docs/api/tools/wp_performance_alerts.md +162 -0
- package/docs/api/tools/wp_performance_benchmark.md +160 -0
- package/docs/api/tools/wp_performance_export.md +162 -0
- package/docs/api/tools/wp_performance_history.md +161 -0
- package/docs/api/tools/wp_performance_optimize.md +162 -0
- package/docs/api/tools/wp_performance_stats.md +160 -0
- package/docs/api/tools/wp_search_site.md +99 -0
- package/docs/api/tools/wp_spam_comment.md +98 -0
- package/docs/api/tools/wp_switch_auth_method.md +122 -0
- package/docs/api/tools/wp_test_auth.md +96 -0
- package/docs/api/tools/wp_update_category.md +102 -0
- package/docs/api/tools/wp_update_comment.md +127 -0
- package/docs/api/tools/wp_update_media.md +129 -0
- package/docs/api/tools/wp_update_page.md +135 -0
- package/docs/api/tools/wp_update_post.md +144 -0
- package/docs/api/tools/wp_update_site_settings.md +127 -0
- package/docs/api/tools/wp_update_tag.md +102 -0
- package/docs/api/tools/wp_update_user.md +134 -0
- package/docs/api/tools/wp_upload_media.md +131 -0
- package/docs/api/types/WordPressPost.md +39 -0
- package/docs/contract-testing.md +183 -0
- package/docs/developer/NPM_AUTH_SETUP.md +3 -3
- package/docs/wordpress-rest-api-authentication-troubleshooting.md +218 -0
- package/package.json +84 -64
- package/src/cache/CacheInvalidation.ts +421 -0
- package/src/cache/CacheManager.ts +391 -0
- package/src/cache/HttpCacheWrapper.ts +372 -0
- package/src/cache/__tests__/CacheInvalidation.test.ts +299 -0
- package/src/cache/__tests__/CacheManager.test.ts +300 -0
- package/src/cache/__tests__/CachedWordPressClient.test.ts +304 -0
- package/src/cache/__tests__/HttpCacheWrapper.test.ts +359 -0
- package/src/cache/index.ts +26 -0
- package/src/client/CachedWordPressClient.ts +442 -0
- package/src/config/ConfigurationSchema.ts +246 -0
- package/src/config/ServerConfiguration.ts +215 -0
- package/src/docs/DocumentationGenerator.ts +952 -0
- package/src/docs/MarkdownFormatter.ts +494 -0
- package/src/docs/index.ts +21 -0
- package/src/index.ts +14 -274
- package/src/performance/MetricsCollector.ts +447 -0
- package/src/performance/PerformanceAnalytics.ts +762 -0
- package/src/performance/PerformanceMonitor.ts +649 -0
- package/src/performance/index.ts +28 -0
- package/src/security/InputValidator.ts +319 -0
- package/src/security/SecurityConfig.ts +301 -0
- package/src/server/ConnectionTester.ts +74 -0
- package/src/server/ToolRegistry.ts +194 -0
- package/src/tools/BaseToolManager.ts +66 -0
- package/src/tools/cache.ts +259 -0
- package/src/tools/index.ts +2 -0
- package/src/tools/performance.ts +948 -0
- package/src/types/client.ts +1 -0
- package/src/utils/toolWrapper.ts +11 -0
- package/src/utils/validation.ts +259 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { getErrorMessage } from '../utils/error.js';
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all WordPress tool implementations
|
|
4
|
+
* Provides common functionality and patterns used across tool classes
|
|
5
|
+
*/
|
|
6
|
+
export class BaseToolClass {
|
|
7
|
+
/**
|
|
8
|
+
* Format a list response with consistent styling
|
|
9
|
+
*/
|
|
10
|
+
formatListResponse(items, entityName, formatter, totalCount) {
|
|
11
|
+
if (items.length === 0) {
|
|
12
|
+
return `No ${entityName} found matching the criteria.`;
|
|
13
|
+
}
|
|
14
|
+
const countText = totalCount !== undefined
|
|
15
|
+
? `Found ${items.length} of ${totalCount} ${entityName}:`
|
|
16
|
+
: `Found ${items.length} ${entityName}:`;
|
|
17
|
+
return `${countText}\n\n${items.map(formatter).join('\n')}`;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Format a single entity response
|
|
21
|
+
*/
|
|
22
|
+
formatDetailResponse(entity, entityName) {
|
|
23
|
+
const details = Object.entries(entity)
|
|
24
|
+
.filter(([key, value]) => value !== null && value !== undefined)
|
|
25
|
+
.map(([key, value]) => {
|
|
26
|
+
const displayKey = key.replace(/_/g, ' ').replace(/\b\w/g, l => l.toUpperCase());
|
|
27
|
+
if (typeof value === 'object') {
|
|
28
|
+
return `${displayKey}: ${JSON.stringify(value, null, 2)}`;
|
|
29
|
+
}
|
|
30
|
+
return `${displayKey}: ${value}`;
|
|
31
|
+
})
|
|
32
|
+
.join('\n');
|
|
33
|
+
return `${entityName} Details:\n\n${details}`;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Format a success response for create/update operations
|
|
37
|
+
*/
|
|
38
|
+
formatSuccessResponse(action, entityName, entity) {
|
|
39
|
+
const id = entity.id || entity.term_id || 'unknown';
|
|
40
|
+
const title = entity.title?.rendered || entity.name || entity.slug || 'Untitled';
|
|
41
|
+
return `✅ ${entityName} ${action} successfully with ID: ${id}\nTitle: ${title}`;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Handle errors consistently across all tools
|
|
45
|
+
*/
|
|
46
|
+
handleError(error, operation) {
|
|
47
|
+
const errorMessage = getErrorMessage(error);
|
|
48
|
+
throw new Error(`Failed to ${operation}: ${errorMessage}`);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Validate required parameters
|
|
52
|
+
*/
|
|
53
|
+
validateRequiredParams(params, requiredFields) {
|
|
54
|
+
for (const field of requiredFields) {
|
|
55
|
+
if (params[field] === undefined || params[field] === null || params[field] === '') {
|
|
56
|
+
throw new Error(`Missing required parameter: ${field}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create common pagination parameters
|
|
62
|
+
*/
|
|
63
|
+
getPaginationParameters() {
|
|
64
|
+
return [
|
|
65
|
+
{
|
|
66
|
+
name: 'per_page',
|
|
67
|
+
type: 'number',
|
|
68
|
+
description: 'Number of items to return per page (max 100).'
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'page',
|
|
72
|
+
type: 'number',
|
|
73
|
+
description: 'Page number to retrieve (1-based).'
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
name: 'search',
|
|
77
|
+
type: 'string',
|
|
78
|
+
description: 'Limit results to those matching a search term.'
|
|
79
|
+
}
|
|
80
|
+
];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Create common status parameter
|
|
84
|
+
*/
|
|
85
|
+
getStatusParameter(validStatuses) {
|
|
86
|
+
return {
|
|
87
|
+
name: 'status',
|
|
88
|
+
type: 'string',
|
|
89
|
+
description: 'Filter by status.',
|
|
90
|
+
enum: validStatuses
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Create site parameter for multi-site support
|
|
95
|
+
*/
|
|
96
|
+
getSiteParameter() {
|
|
97
|
+
return {
|
|
98
|
+
name: 'site',
|
|
99
|
+
type: 'string',
|
|
100
|
+
description: 'Site identifier for multi-site configurations.'
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=BaseToolClass.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseToolClass.js","sourceRoot":"","sources":["../../src/tools/BaseToolClass.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base utility class for tool managers to reduce code duplication
|
|
3
|
+
*/
|
|
4
|
+
export declare class BaseToolUtils {
|
|
5
|
+
/**
|
|
6
|
+
* Validate required parameters
|
|
7
|
+
*/
|
|
8
|
+
static validateParams(params: Record<string, any>, required: string[]): void;
|
|
9
|
+
/**
|
|
10
|
+
* Validate ID parameter
|
|
11
|
+
*/
|
|
12
|
+
static validateId(id: unknown, name?: string): number;
|
|
13
|
+
/**
|
|
14
|
+
* Handle errors consistently across all tools
|
|
15
|
+
*/
|
|
16
|
+
static handleError(error: unknown, operation: string): string;
|
|
17
|
+
/**
|
|
18
|
+
* Cache key generation helper
|
|
19
|
+
*/
|
|
20
|
+
static generateCacheKey(operation: string, params: Record<string, unknown>): string;
|
|
21
|
+
/**
|
|
22
|
+
* Format consistent response messages
|
|
23
|
+
*/
|
|
24
|
+
static formatSuccessMessage(operation: string, details?: string): string;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=BaseToolManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseToolManager.d.ts","sourceRoot":"","sources":["../../src/tools/BaseToolManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAY5E;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,SAAO,GAAG,MAAM;IAQnD;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAK7D;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM;IAUT;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;CAKzE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base utility class for tool managers to reduce code duplication
|
|
3
|
+
*/
|
|
4
|
+
import { getErrorMessage } from '../utils/error.js';
|
|
5
|
+
export class BaseToolUtils {
|
|
6
|
+
/**
|
|
7
|
+
* Validate required parameters
|
|
8
|
+
*/
|
|
9
|
+
static validateParams(params, required) {
|
|
10
|
+
for (const field of required) {
|
|
11
|
+
if (!(field in params) ||
|
|
12
|
+
params[field] === undefined ||
|
|
13
|
+
params[field] === null) {
|
|
14
|
+
throw new Error(`Missing required parameter: ${field}`);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate ID parameter
|
|
20
|
+
*/
|
|
21
|
+
static validateId(id, name = 'id') {
|
|
22
|
+
const numId = Number(id);
|
|
23
|
+
if (!Number.isInteger(numId) || numId <= 0) {
|
|
24
|
+
throw new Error(`Invalid ${name}: must be a positive integer`);
|
|
25
|
+
}
|
|
26
|
+
return numId;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Handle errors consistently across all tools
|
|
30
|
+
*/
|
|
31
|
+
static handleError(error, operation) {
|
|
32
|
+
const errorMessage = getErrorMessage(error);
|
|
33
|
+
return `Error in ${operation}: ${errorMessage}`;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Cache key generation helper
|
|
37
|
+
*/
|
|
38
|
+
static generateCacheKey(operation, params) {
|
|
39
|
+
const site = params.site || 'default';
|
|
40
|
+
const paramStr = Object.entries(params)
|
|
41
|
+
.filter(([key]) => key !== 'site')
|
|
42
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
43
|
+
.map(([key, value]) => `${key}:${value}`)
|
|
44
|
+
.join('|');
|
|
45
|
+
return `${site}:${operation}:${paramStr}`;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Format consistent response messages
|
|
49
|
+
*/
|
|
50
|
+
static formatSuccessMessage(operation, details) {
|
|
51
|
+
return details
|
|
52
|
+
? `${operation}: ${details}`
|
|
53
|
+
: `${operation} completed successfully`;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=BaseToolManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseToolManager.js","sourceRoot":"","sources":["../../src/tools/BaseToolManager.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,OAAO,aAAa;IACxB;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAA2B,EAAE,QAAkB;QACnE,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IACE,CAAC,CAAC,KAAK,IAAI,MAAM,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS;gBAC3B,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EACtB,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,EAAW,EAAE,IAAI,GAAG,IAAI;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,WAAW,IAAI,8BAA8B,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,KAAc,EAAE,SAAiB;QAClD,MAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,YAAY,SAAS,KAAK,YAAY,EAAE,CAAC;IAClD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CACrB,SAAiB,EACjB,MAA+B;QAE/B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,IAAI,SAAS,CAAC;QACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;aACpC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,MAAM,CAAC;aACjC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;aACtC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;aACxC,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,OAAO,GAAG,IAAI,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,SAAiB,EAAE,OAAgB;QAC7D,OAAO,OAAO;YACZ,CAAC,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE;YAC5B,CAAC,CAAC,GAAG,SAAS,yBAAyB,CAAC;IAC5C,CAAC;CACF"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { WordPressClient } from "../client/api.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all WordPress tool categories.
|
|
4
|
+
* Provides common functionality and error handling for tool implementations.
|
|
5
|
+
*/
|
|
6
|
+
export declare abstract class BaseToolClass {
|
|
7
|
+
protected client: WordPressClient;
|
|
8
|
+
constructor(client: WordPressClient);
|
|
9
|
+
/**
|
|
10
|
+
* Abstract method that must be implemented by subclasses to return their tool definitions.
|
|
11
|
+
* @returns An array of MCPTool definitions.
|
|
12
|
+
*/
|
|
13
|
+
abstract getTools(): any[];
|
|
14
|
+
/**
|
|
15
|
+
* Common error handler for all tools.
|
|
16
|
+
* @param error The error to handle
|
|
17
|
+
* @param operation The operation that failed
|
|
18
|
+
* @throws Error with formatted message
|
|
19
|
+
*/
|
|
20
|
+
protected handleError(error: unknown, operation: string): never;
|
|
21
|
+
/**
|
|
22
|
+
* Validates required parameters are not undefined or null.
|
|
23
|
+
* @param params Object containing parameters to validate
|
|
24
|
+
* @param required Array of required parameter names
|
|
25
|
+
* @throws Error if any required parameter is missing
|
|
26
|
+
*/
|
|
27
|
+
protected validateRequiredParams(params: Record<string, any>, required: string[]): void;
|
|
28
|
+
/**
|
|
29
|
+
* Resolves the appropriate WordPress client for multi-site support.
|
|
30
|
+
* @param site Optional site ID for multi-site configurations
|
|
31
|
+
* @param clients Map of site IDs to WordPress clients
|
|
32
|
+
* @returns The resolved WordPress client
|
|
33
|
+
* @throws Error if site is not found or ambiguous
|
|
34
|
+
*/
|
|
35
|
+
protected resolveClient(site: string | undefined, clients: Map<string, WordPressClient>): WordPressClient;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=base.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;;GAGG;AACH,8BAAsB,aAAa;IACrB,SAAS,CAAC,MAAM,EAAE,eAAe;gBAAvB,MAAM,EAAE,eAAe;IAE7C;;;OAGG;IACH,QAAQ,CAAC,QAAQ,IAAI,GAAG,EAAE;IAE1B;;;;;OAKG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAI/D;;;;;OAKG;IACH,SAAS,CAAC,sBAAsB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAQvF;;;;;;OAMG;IACH,SAAS,CAAC,aAAa,CACrB,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,GACpC,eAAe;CA6BnB"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { getErrorMessage } from "../utils/error.js";
|
|
2
|
+
/**
|
|
3
|
+
* Base class for all WordPress tool categories.
|
|
4
|
+
* Provides common functionality and error handling for tool implementations.
|
|
5
|
+
*/
|
|
6
|
+
export class BaseToolClass {
|
|
7
|
+
client;
|
|
8
|
+
constructor(client) {
|
|
9
|
+
this.client = client;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Common error handler for all tools.
|
|
13
|
+
* @param error The error to handle
|
|
14
|
+
* @param operation The operation that failed
|
|
15
|
+
* @throws Error with formatted message
|
|
16
|
+
*/
|
|
17
|
+
handleError(error, operation) {
|
|
18
|
+
throw new Error(`Failed to ${operation}: ${getErrorMessage(error)}`);
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Validates required parameters are not undefined or null.
|
|
22
|
+
* @param params Object containing parameters to validate
|
|
23
|
+
* @param required Array of required parameter names
|
|
24
|
+
* @throws Error if any required parameter is missing
|
|
25
|
+
*/
|
|
26
|
+
validateRequiredParams(params, required) {
|
|
27
|
+
for (const param of required) {
|
|
28
|
+
if (params[param] === undefined || params[param] === null) {
|
|
29
|
+
throw new Error(`Missing required parameter: ${param}`);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Resolves the appropriate WordPress client for multi-site support.
|
|
35
|
+
* @param site Optional site ID for multi-site configurations
|
|
36
|
+
* @param clients Map of site IDs to WordPress clients
|
|
37
|
+
* @returns The resolved WordPress client
|
|
38
|
+
* @throws Error if site is not found or ambiguous
|
|
39
|
+
*/
|
|
40
|
+
resolveClient(site, clients) {
|
|
41
|
+
if (clients.size === 0) {
|
|
42
|
+
throw new Error("No WordPress clients configured");
|
|
43
|
+
}
|
|
44
|
+
if (clients.size === 1 && !site) {
|
|
45
|
+
return Array.from(clients.values())[0];
|
|
46
|
+
}
|
|
47
|
+
if (!site && clients.size > 1) {
|
|
48
|
+
throw new Error(`Multiple sites configured. Please specify --site parameter with one of: ${Array.from(clients.keys()).join(", ")}`);
|
|
49
|
+
}
|
|
50
|
+
if (site) {
|
|
51
|
+
const client = clients.get(site);
|
|
52
|
+
if (!client) {
|
|
53
|
+
throw new Error(`Site "${site}" not found. Available sites: ${Array.from(clients.keys()).join(", ")}`);
|
|
54
|
+
}
|
|
55
|
+
return client;
|
|
56
|
+
}
|
|
57
|
+
return this.client;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=base.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base.js","sourceRoot":"","sources":["../../src/tools/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD;;;GAGG;AACH,MAAM,OAAgB,aAAa;IACX;IAAtB,YAAsB,MAAuB;QAAvB,WAAM,GAAN,MAAM,CAAiB;IAAG,CAAC;IAQjD;;;;;OAKG;IACO,WAAW,CAAC,KAAc,EAAE,SAAiB;QACrD,MAAM,IAAI,KAAK,CAAC,aAAa,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACO,sBAAsB,CAAC,MAA2B,EAAE,QAAkB;QAC9E,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;YAC7B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,EAAE,CAAC,CAAC;YAC1D,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACO,aAAa,CACrB,IAAwB,EACxB,OAAqC;QAErC,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CACb,2EAA2E,KAAK,CAAC,IAAI,CACnF,OAAO,CAAC,IAAI,EAAE,CACf,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACf,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,KAAK,CACb,SAAS,IAAI,iCAAiC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACtF,CAAC;YACJ,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;CACF"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cache management tools for WordPress MCP Server
|
|
3
|
+
* Provides cache inspection, clearing, and warming capabilities
|
|
4
|
+
*/
|
|
5
|
+
import type { WordPressClient } from '../client/api.js';
|
|
6
|
+
/**
|
|
7
|
+
* Cache management tools class
|
|
8
|
+
*/
|
|
9
|
+
export declare class CacheTools {
|
|
10
|
+
private clients;
|
|
11
|
+
constructor(clients: Map<string, WordPressClient>);
|
|
12
|
+
/**
|
|
13
|
+
* Get cache management tools
|
|
14
|
+
*/
|
|
15
|
+
getTools(): ({
|
|
16
|
+
name: string;
|
|
17
|
+
description: string;
|
|
18
|
+
parameters: {
|
|
19
|
+
name: string;
|
|
20
|
+
type: string;
|
|
21
|
+
description: string;
|
|
22
|
+
}[];
|
|
23
|
+
handler: (params: {
|
|
24
|
+
site?: string;
|
|
25
|
+
}) => Promise<{
|
|
26
|
+
caching_enabled: boolean;
|
|
27
|
+
message: string;
|
|
28
|
+
cache_stats?: never;
|
|
29
|
+
invalidation_stats?: never;
|
|
30
|
+
} | {
|
|
31
|
+
caching_enabled: boolean;
|
|
32
|
+
cache_stats: {
|
|
33
|
+
hits: any;
|
|
34
|
+
misses: any;
|
|
35
|
+
hit_rate: string;
|
|
36
|
+
total_entries: any;
|
|
37
|
+
evictions: any;
|
|
38
|
+
};
|
|
39
|
+
invalidation_stats: {
|
|
40
|
+
queue_size: any;
|
|
41
|
+
rules_count: any;
|
|
42
|
+
processing: any;
|
|
43
|
+
};
|
|
44
|
+
message?: never;
|
|
45
|
+
}>;
|
|
46
|
+
} | {
|
|
47
|
+
name: string;
|
|
48
|
+
description: string;
|
|
49
|
+
parameters: {
|
|
50
|
+
name: string;
|
|
51
|
+
type: string;
|
|
52
|
+
description: string;
|
|
53
|
+
}[];
|
|
54
|
+
handler: (params: {
|
|
55
|
+
site?: string;
|
|
56
|
+
pattern?: string;
|
|
57
|
+
}) => Promise<{
|
|
58
|
+
success: boolean;
|
|
59
|
+
message: string;
|
|
60
|
+
cleared_entries?: never;
|
|
61
|
+
pattern?: never;
|
|
62
|
+
} | {
|
|
63
|
+
success: boolean;
|
|
64
|
+
message: string;
|
|
65
|
+
cleared_entries: number;
|
|
66
|
+
pattern: string;
|
|
67
|
+
} | {
|
|
68
|
+
success: boolean;
|
|
69
|
+
message: string;
|
|
70
|
+
cleared_entries: number;
|
|
71
|
+
pattern?: never;
|
|
72
|
+
}>;
|
|
73
|
+
} | {
|
|
74
|
+
name: string;
|
|
75
|
+
description: string;
|
|
76
|
+
parameters: {
|
|
77
|
+
name: string;
|
|
78
|
+
type: string;
|
|
79
|
+
description: string;
|
|
80
|
+
}[];
|
|
81
|
+
handler: (params: {
|
|
82
|
+
site?: string;
|
|
83
|
+
}) => Promise<{
|
|
84
|
+
success: boolean;
|
|
85
|
+
message: string;
|
|
86
|
+
cache_entries_after_warming?: never;
|
|
87
|
+
warmed_data?: never;
|
|
88
|
+
} | {
|
|
89
|
+
success: boolean;
|
|
90
|
+
message: string;
|
|
91
|
+
cache_entries_after_warming: any;
|
|
92
|
+
warmed_data: string[];
|
|
93
|
+
}>;
|
|
94
|
+
} | {
|
|
95
|
+
name: string;
|
|
96
|
+
description: string;
|
|
97
|
+
parameters: {
|
|
98
|
+
name: string;
|
|
99
|
+
type: string;
|
|
100
|
+
description: string;
|
|
101
|
+
}[];
|
|
102
|
+
handler: (params: {
|
|
103
|
+
site?: string;
|
|
104
|
+
}) => Promise<{
|
|
105
|
+
caching_enabled: boolean;
|
|
106
|
+
message: string;
|
|
107
|
+
how_to_enable: string;
|
|
108
|
+
cache_configuration?: never;
|
|
109
|
+
ttl_presets?: never;
|
|
110
|
+
current_stats?: never;
|
|
111
|
+
invalidation_info?: never;
|
|
112
|
+
performance_benefits?: never;
|
|
113
|
+
} | {
|
|
114
|
+
caching_enabled: boolean;
|
|
115
|
+
cache_configuration: {
|
|
116
|
+
max_size: string;
|
|
117
|
+
default_ttl: string;
|
|
118
|
+
lru_enabled: string;
|
|
119
|
+
stats_enabled: string;
|
|
120
|
+
};
|
|
121
|
+
ttl_presets: {
|
|
122
|
+
static_data: string;
|
|
123
|
+
semi_static_data: string;
|
|
124
|
+
dynamic_data: string;
|
|
125
|
+
session_data: string;
|
|
126
|
+
realtime_data: string;
|
|
127
|
+
};
|
|
128
|
+
current_stats: {
|
|
129
|
+
total_entries: any;
|
|
130
|
+
hit_rate: string;
|
|
131
|
+
hits: any;
|
|
132
|
+
misses: any;
|
|
133
|
+
evictions: any;
|
|
134
|
+
};
|
|
135
|
+
invalidation_info: {
|
|
136
|
+
queue_size: any;
|
|
137
|
+
rules_registered: any;
|
|
138
|
+
currently_processing: any;
|
|
139
|
+
};
|
|
140
|
+
performance_benefits: string[];
|
|
141
|
+
message?: never;
|
|
142
|
+
how_to_enable?: never;
|
|
143
|
+
}>;
|
|
144
|
+
})[];
|
|
145
|
+
/**
|
|
146
|
+
* Get cache statistics
|
|
147
|
+
*/
|
|
148
|
+
handleGetCacheStats(params: {
|
|
149
|
+
site?: string;
|
|
150
|
+
}): Promise<{
|
|
151
|
+
caching_enabled: boolean;
|
|
152
|
+
message: string;
|
|
153
|
+
cache_stats?: never;
|
|
154
|
+
invalidation_stats?: never;
|
|
155
|
+
} | {
|
|
156
|
+
caching_enabled: boolean;
|
|
157
|
+
cache_stats: {
|
|
158
|
+
hits: any;
|
|
159
|
+
misses: any;
|
|
160
|
+
hit_rate: string;
|
|
161
|
+
total_entries: any;
|
|
162
|
+
evictions: any;
|
|
163
|
+
};
|
|
164
|
+
invalidation_stats: {
|
|
165
|
+
queue_size: any;
|
|
166
|
+
rules_count: any;
|
|
167
|
+
processing: any;
|
|
168
|
+
};
|
|
169
|
+
message?: never;
|
|
170
|
+
}>;
|
|
171
|
+
/**
|
|
172
|
+
* Clear cache
|
|
173
|
+
*/
|
|
174
|
+
handleClearCache(params: {
|
|
175
|
+
site?: string;
|
|
176
|
+
pattern?: string;
|
|
177
|
+
}): Promise<{
|
|
178
|
+
success: boolean;
|
|
179
|
+
message: string;
|
|
180
|
+
cleared_entries?: never;
|
|
181
|
+
pattern?: never;
|
|
182
|
+
} | {
|
|
183
|
+
success: boolean;
|
|
184
|
+
message: string;
|
|
185
|
+
cleared_entries: number;
|
|
186
|
+
pattern: string;
|
|
187
|
+
} | {
|
|
188
|
+
success: boolean;
|
|
189
|
+
message: string;
|
|
190
|
+
cleared_entries: number;
|
|
191
|
+
pattern?: never;
|
|
192
|
+
}>;
|
|
193
|
+
/**
|
|
194
|
+
* Warm cache with essential data
|
|
195
|
+
*/
|
|
196
|
+
handleWarmCache(params: {
|
|
197
|
+
site?: string;
|
|
198
|
+
}): Promise<{
|
|
199
|
+
success: boolean;
|
|
200
|
+
message: string;
|
|
201
|
+
cache_entries_after_warming?: never;
|
|
202
|
+
warmed_data?: never;
|
|
203
|
+
} | {
|
|
204
|
+
success: boolean;
|
|
205
|
+
message: string;
|
|
206
|
+
cache_entries_after_warming: any;
|
|
207
|
+
warmed_data: string[];
|
|
208
|
+
}>;
|
|
209
|
+
/**
|
|
210
|
+
* Get detailed cache information
|
|
211
|
+
*/
|
|
212
|
+
handleGetCacheInfo(params: {
|
|
213
|
+
site?: string;
|
|
214
|
+
}): Promise<{
|
|
215
|
+
caching_enabled: boolean;
|
|
216
|
+
message: string;
|
|
217
|
+
how_to_enable: string;
|
|
218
|
+
cache_configuration?: never;
|
|
219
|
+
ttl_presets?: never;
|
|
220
|
+
current_stats?: never;
|
|
221
|
+
invalidation_info?: never;
|
|
222
|
+
performance_benefits?: never;
|
|
223
|
+
} | {
|
|
224
|
+
caching_enabled: boolean;
|
|
225
|
+
cache_configuration: {
|
|
226
|
+
max_size: string;
|
|
227
|
+
default_ttl: string;
|
|
228
|
+
lru_enabled: string;
|
|
229
|
+
stats_enabled: string;
|
|
230
|
+
};
|
|
231
|
+
ttl_presets: {
|
|
232
|
+
static_data: string;
|
|
233
|
+
semi_static_data: string;
|
|
234
|
+
dynamic_data: string;
|
|
235
|
+
session_data: string;
|
|
236
|
+
realtime_data: string;
|
|
237
|
+
};
|
|
238
|
+
current_stats: {
|
|
239
|
+
total_entries: any;
|
|
240
|
+
hit_rate: string;
|
|
241
|
+
hits: any;
|
|
242
|
+
misses: any;
|
|
243
|
+
evictions: any;
|
|
244
|
+
};
|
|
245
|
+
invalidation_info: {
|
|
246
|
+
queue_size: any;
|
|
247
|
+
rules_registered: any;
|
|
248
|
+
currently_processing: any;
|
|
249
|
+
};
|
|
250
|
+
performance_benefits: string[];
|
|
251
|
+
message?: never;
|
|
252
|
+
how_to_enable?: never;
|
|
253
|
+
}>;
|
|
254
|
+
/**
|
|
255
|
+
* Resolve client from site parameter
|
|
256
|
+
*/
|
|
257
|
+
private resolveClient;
|
|
258
|
+
}
|
|
259
|
+
export default CacheTools;
|
|
260
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../src/tools/cache.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAIxD;;GAEG;AACH,qBAAa,UAAU;IACT,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC;IAEzD;;OAEG;IACH,QAAQ;;;;;;;;0BA6D0B;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;0BAkCpB;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;0BAmCpC;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;0BAgCd;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAxGlD;;OAEG;IACG,mBAAmB,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;IA+BnD;;OAEG;IACG,gBAAgB,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;IAgClE;;OAEG;IACG,eAAe,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;IA6B/C;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmDlD;;OAEG;IACH,OAAO,CAAC,aAAa;CAsBtB;AAED,eAAe,UAAU,CAAC"}
|