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,331 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Streaming utilities for handling large result sets
|
|
3
|
-
* Implements streaming responses for better performance and memory usage
|
|
4
|
-
*/
|
|
5
|
-
// Node.js streaming imports removed - not currently used but available for future enhancement
|
|
6
|
-
import { sanitizeHtml } from "./validation/security.js";
|
|
7
|
-
/**
|
|
8
|
-
* Creates a streaming response for large datasets
|
|
9
|
-
*/
|
|
10
|
-
export class DataStreamer {
|
|
11
|
-
batchSize;
|
|
12
|
-
delay;
|
|
13
|
-
transformItem;
|
|
14
|
-
filterItem;
|
|
15
|
-
constructor(options = {}) {
|
|
16
|
-
this.batchSize = options.batchSize || 50;
|
|
17
|
-
this.delay = options.delay || 0;
|
|
18
|
-
this.transformItem = options.transformItem || undefined;
|
|
19
|
-
this.filterItem = options.filterItem || undefined;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Processes data in batches with streaming
|
|
23
|
-
*/
|
|
24
|
-
async *streamBatches(data, processor) {
|
|
25
|
-
const total = data.length;
|
|
26
|
-
let processed = 0;
|
|
27
|
-
for (let i = 0; i < data.length; i += this.batchSize) {
|
|
28
|
-
const batch = data.slice(i, i + this.batchSize);
|
|
29
|
-
// Apply filtering if provided
|
|
30
|
-
const filteredBatch = this.filterItem ? batch.filter(this.filterItem) : batch;
|
|
31
|
-
// Process the batch
|
|
32
|
-
const processedBatch = await processor(filteredBatch);
|
|
33
|
-
// Apply transformation if provided
|
|
34
|
-
const transformedBatch = this.transformItem
|
|
35
|
-
? processedBatch.map((item) => this.transformItem(item))
|
|
36
|
-
: processedBatch;
|
|
37
|
-
processed += batch.length;
|
|
38
|
-
const hasMore = processed < total;
|
|
39
|
-
yield {
|
|
40
|
-
data: transformedBatch,
|
|
41
|
-
hasMore,
|
|
42
|
-
cursor: hasMore ? String(i + this.batchSize) : undefined,
|
|
43
|
-
total,
|
|
44
|
-
processed,
|
|
45
|
-
};
|
|
46
|
-
// Add delay between batches if specified
|
|
47
|
-
if (this.delay > 0 && hasMore) {
|
|
48
|
-
await new Promise((resolve) => setTimeout(resolve, this.delay));
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Processes large datasets with pagination
|
|
54
|
-
*/
|
|
55
|
-
async *streamPages(fetcher, processor) {
|
|
56
|
-
let page = 1;
|
|
57
|
-
let totalProcessed = 0;
|
|
58
|
-
while (true) {
|
|
59
|
-
const result = await fetcher(page, this.batchSize);
|
|
60
|
-
if (result.data.length === 0) {
|
|
61
|
-
break;
|
|
62
|
-
}
|
|
63
|
-
// Apply filtering if provided
|
|
64
|
-
const filteredData = this.filterItem ? result.data.filter(this.filterItem) : result.data;
|
|
65
|
-
// Process the data
|
|
66
|
-
const processedData = await processor(filteredData);
|
|
67
|
-
// Apply transformation if provided
|
|
68
|
-
const transformedData = this.transformItem
|
|
69
|
-
? processedData.map((item) => this.transformItem(item))
|
|
70
|
-
: processedData;
|
|
71
|
-
totalProcessed += result.data.length;
|
|
72
|
-
yield {
|
|
73
|
-
data: transformedData,
|
|
74
|
-
hasMore: result.hasMore,
|
|
75
|
-
cursor: result.hasMore ? String(page + 1) : undefined,
|
|
76
|
-
total: undefined, // Unknown for paginated results
|
|
77
|
-
processed: totalProcessed,
|
|
78
|
-
};
|
|
79
|
-
if (!result.hasMore) {
|
|
80
|
-
break;
|
|
81
|
-
}
|
|
82
|
-
page++;
|
|
83
|
-
// Add delay between pages if specified
|
|
84
|
-
if (this.delay > 0) {
|
|
85
|
-
await new Promise((resolve) => setTimeout(resolve, this.delay));
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Streaming formatter for WordPress data
|
|
92
|
-
*/
|
|
93
|
-
export class WordPressDataStreamer {
|
|
94
|
-
/**
|
|
95
|
-
* Streams WordPress posts with author and taxonomy information
|
|
96
|
-
*/
|
|
97
|
-
static async *streamPosts(posts, options = {}) {
|
|
98
|
-
const streamer = new DataStreamer({
|
|
99
|
-
batchSize: options.batchSize || 20,
|
|
100
|
-
transformItem: (post) => {
|
|
101
|
-
const p = post;
|
|
102
|
-
const title = p.title;
|
|
103
|
-
const excerpt = p.excerpt;
|
|
104
|
-
return {
|
|
105
|
-
id: p.id,
|
|
106
|
-
title: title?.rendered || "Untitled",
|
|
107
|
-
excerpt: excerpt?.rendered ? sanitizeHtml(String(excerpt.rendered)).substring(0, 150) + "..." : "No excerpt",
|
|
108
|
-
status: p.status,
|
|
109
|
-
date: new Date(String(p.date)).toLocaleDateString(),
|
|
110
|
-
link: p.link,
|
|
111
|
-
author: options.includeAuthor ? p.author : undefined,
|
|
112
|
-
categories: options.includeCategories ? p.categories : undefined,
|
|
113
|
-
tags: options.includeTags ? p.tags : undefined,
|
|
114
|
-
};
|
|
115
|
-
},
|
|
116
|
-
filterItem: (post) => {
|
|
117
|
-
const p = post;
|
|
118
|
-
return p.status !== "trash";
|
|
119
|
-
}, // Filter out trashed posts
|
|
120
|
-
});
|
|
121
|
-
const processor = async (batch) => {
|
|
122
|
-
// Simulate processing time for large datasets
|
|
123
|
-
await new Promise((resolve) => setTimeout(resolve, 10));
|
|
124
|
-
return batch;
|
|
125
|
-
};
|
|
126
|
-
for await (const result of streamer.streamBatches(posts, processor)) {
|
|
127
|
-
yield result;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Streams WordPress users with role information
|
|
132
|
-
*/
|
|
133
|
-
static async *streamUsers(users, options = {}) {
|
|
134
|
-
const streamer = new DataStreamer({
|
|
135
|
-
batchSize: options.batchSize || 30,
|
|
136
|
-
transformItem: (user) => {
|
|
137
|
-
const u = user;
|
|
138
|
-
return {
|
|
139
|
-
id: u.id,
|
|
140
|
-
name: u.name || "No name",
|
|
141
|
-
username: u.slug || "unknown",
|
|
142
|
-
email: u.email || "No email",
|
|
143
|
-
roles: options.includeRoles ? u.roles : undefined,
|
|
144
|
-
capabilities: options.includeCapabilities
|
|
145
|
-
? Object.keys(u.capabilities || {})
|
|
146
|
-
: undefined,
|
|
147
|
-
registeredDate: u.registered_date ? new Date(String(u.registered_date)).toLocaleDateString() : "Unknown",
|
|
148
|
-
};
|
|
149
|
-
},
|
|
150
|
-
});
|
|
151
|
-
const processor = async (batch) => {
|
|
152
|
-
// Add user processing logic here if needed
|
|
153
|
-
return batch;
|
|
154
|
-
};
|
|
155
|
-
for await (const result of streamer.streamBatches(users, processor)) {
|
|
156
|
-
yield result;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Streams WordPress comments with moderation status
|
|
161
|
-
*/
|
|
162
|
-
static async *streamComments(comments, options = {}) {
|
|
163
|
-
const streamer = new DataStreamer({
|
|
164
|
-
batchSize: options.batchSize || 40,
|
|
165
|
-
transformItem: (comment) => {
|
|
166
|
-
const c = comment;
|
|
167
|
-
const content = c.content;
|
|
168
|
-
return {
|
|
169
|
-
id: c.id,
|
|
170
|
-
content: content?.rendered ? sanitizeHtml(String(content.rendered)).substring(0, 200) + "..." : "No content",
|
|
171
|
-
status: c.status,
|
|
172
|
-
date: new Date(String(c.date)).toLocaleDateString(),
|
|
173
|
-
author: options.includeAuthor
|
|
174
|
-
? {
|
|
175
|
-
name: c.author_name,
|
|
176
|
-
email: c.author_email,
|
|
177
|
-
url: c.author_url,
|
|
178
|
-
}
|
|
179
|
-
: undefined,
|
|
180
|
-
post: options.includePost ? c.post : undefined,
|
|
181
|
-
};
|
|
182
|
-
},
|
|
183
|
-
filterItem: (comment) => {
|
|
184
|
-
const c = comment;
|
|
185
|
-
return c.status !== "spam";
|
|
186
|
-
}, // Filter out spam comments
|
|
187
|
-
});
|
|
188
|
-
const processor = async (batch) => {
|
|
189
|
-
// Add comment processing logic here if needed
|
|
190
|
-
return batch;
|
|
191
|
-
};
|
|
192
|
-
for await (const result of streamer.streamBatches(comments, processor)) {
|
|
193
|
-
yield result;
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
/**
|
|
198
|
-
* Utility functions for streaming responses
|
|
199
|
-
*/
|
|
200
|
-
export class StreamingUtils {
|
|
201
|
-
/**
|
|
202
|
-
* Formats streaming results for display
|
|
203
|
-
*/
|
|
204
|
-
static formatStreamingResponse(results, type = "posts") {
|
|
205
|
-
const allData = results.flatMap((result) => result.data);
|
|
206
|
-
const totalProcessed = results[results.length - 1]?.processed || 0;
|
|
207
|
-
const hasMore = results[results.length - 1]?.hasMore || false;
|
|
208
|
-
const typeEmojis = {
|
|
209
|
-
posts: "📄",
|
|
210
|
-
users: "👥",
|
|
211
|
-
comments: "💬",
|
|
212
|
-
media: "📎",
|
|
213
|
-
};
|
|
214
|
-
const emoji = typeEmojis[type];
|
|
215
|
-
const typeName = type.charAt(0).toUpperCase() + type.slice(1);
|
|
216
|
-
let response = `${emoji} **${typeName} Results** (Streamed)\n\n`;
|
|
217
|
-
response += `📊 **Summary**: ${allData.length} items displayed, ${totalProcessed} processed total\n`;
|
|
218
|
-
if (hasMore) {
|
|
219
|
-
response += `⏳ **Status**: More data available (streaming in progress)\n`;
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
response += `✅ **Status**: Complete\n`;
|
|
223
|
-
}
|
|
224
|
-
response += `🕐 **Retrieved**: ${new Date().toLocaleString()}\n\n`;
|
|
225
|
-
// Format individual items
|
|
226
|
-
allData.forEach((item, index) => {
|
|
227
|
-
// Type-safe property access
|
|
228
|
-
const itemObj = item;
|
|
229
|
-
const title = itemObj.title || itemObj.name || itemObj.content?.substring(0, 50) || "Item";
|
|
230
|
-
response += `${index + 1}. **${title}**\n`;
|
|
231
|
-
if (itemObj.excerpt)
|
|
232
|
-
response += ` 📝 ${itemObj.excerpt}\n`;
|
|
233
|
-
if (itemObj.email)
|
|
234
|
-
response += ` 📧 ${itemObj.email}\n`;
|
|
235
|
-
if (itemObj.status)
|
|
236
|
-
response += ` 🏷️ Status: ${itemObj.status}\n`;
|
|
237
|
-
if (itemObj.date)
|
|
238
|
-
response += ` 📅 Date: ${itemObj.date}\n`;
|
|
239
|
-
response += "\n";
|
|
240
|
-
});
|
|
241
|
-
return response;
|
|
242
|
-
}
|
|
243
|
-
/**
|
|
244
|
-
* Implements progressive loading for large datasets
|
|
245
|
-
*/
|
|
246
|
-
static async loadProgressively(fetcher, options = {}) {
|
|
247
|
-
const initialLoad = options.initialLoad || 50;
|
|
248
|
-
const batchSize = options.batchSize || 25;
|
|
249
|
-
const maxItems = options.maxItems || 1000;
|
|
250
|
-
const results = [];
|
|
251
|
-
let offset = 0;
|
|
252
|
-
// Initial load
|
|
253
|
-
const initialBatch = await fetcher(offset, initialLoad);
|
|
254
|
-
results.push(...initialBatch);
|
|
255
|
-
offset += initialLoad;
|
|
256
|
-
if (options.onProgress) {
|
|
257
|
-
options.onProgress(results.length);
|
|
258
|
-
}
|
|
259
|
-
// Progressive loading
|
|
260
|
-
while (results.length < maxItems) {
|
|
261
|
-
const batch = await fetcher(offset, batchSize);
|
|
262
|
-
if (batch.length === 0) {
|
|
263
|
-
break;
|
|
264
|
-
}
|
|
265
|
-
results.push(...batch);
|
|
266
|
-
offset += batchSize;
|
|
267
|
-
if (options.onProgress) {
|
|
268
|
-
options.onProgress(results.length, maxItems);
|
|
269
|
-
}
|
|
270
|
-
// Small delay to prevent overwhelming the server
|
|
271
|
-
await new Promise((resolve) => setTimeout(resolve, 100));
|
|
272
|
-
}
|
|
273
|
-
return results.slice(0, maxItems);
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
* Memory-efficient data processor
|
|
278
|
-
*/
|
|
279
|
-
export class MemoryEfficientProcessor {
|
|
280
|
-
/**
|
|
281
|
-
* Processes large datasets with memory monitoring
|
|
282
|
-
*/
|
|
283
|
-
static async processLargeDataset(dataProvider, processor, options = {}) {
|
|
284
|
-
const maxMemory = options.maxMemoryUsage || 100; // 100MB default
|
|
285
|
-
const batchSize = options.batchSize || 50;
|
|
286
|
-
const results = [];
|
|
287
|
-
let processed = 0;
|
|
288
|
-
for await (const batch of dataProvider()) {
|
|
289
|
-
// Check memory usage
|
|
290
|
-
const memoryUsage = process.memoryUsage();
|
|
291
|
-
const memoryUsageMB = memoryUsage.heapUsed / 1024 / 1024;
|
|
292
|
-
if (memoryUsageMB > maxMemory) {
|
|
293
|
-
// If memory usage is too high, process in smaller batches
|
|
294
|
-
const smallerBatches = this.chunkArray(batch, Math.floor(batchSize / 2));
|
|
295
|
-
for (const smallBatch of smallerBatches) {
|
|
296
|
-
const processed_batch = await processor(smallBatch);
|
|
297
|
-
results.push(...processed_batch);
|
|
298
|
-
processed += smallBatch.length;
|
|
299
|
-
if (options.onProgress) {
|
|
300
|
-
options.onProgress(processed);
|
|
301
|
-
}
|
|
302
|
-
// Force garbage collection if available
|
|
303
|
-
if (global.gc) {
|
|
304
|
-
global.gc();
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
else {
|
|
309
|
-
// Normal processing
|
|
310
|
-
const processed_batch = await processor(batch);
|
|
311
|
-
results.push(...processed_batch);
|
|
312
|
-
processed += batch.length;
|
|
313
|
-
if (options.onProgress) {
|
|
314
|
-
options.onProgress(processed);
|
|
315
|
-
}
|
|
316
|
-
}
|
|
317
|
-
}
|
|
318
|
-
return results;
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Helper method to split arrays into chunks
|
|
322
|
-
*/
|
|
323
|
-
static chunkArray(array, chunkSize) {
|
|
324
|
-
const chunks = [];
|
|
325
|
-
for (let i = 0; i < array.length; i += chunkSize) {
|
|
326
|
-
chunks.push(array.slice(i, i + chunkSize));
|
|
327
|
-
}
|
|
328
|
-
return chunks;
|
|
329
|
-
}
|
|
330
|
-
}
|
|
331
|
-
//# sourceMappingURL=streaming.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"streaming.js","sourceRoot":"","sources":["../../../src/utils/streaming.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Wrapper Utility
|
|
3
|
-
* Standardizes error handling and reduces repetitive try-catch blocks
|
|
4
|
-
*/
|
|
5
|
-
import type { IWordPressClient } from '../types/client.js';
|
|
6
|
-
import type { BaseToolParams } from '../types/tools.js';
|
|
7
|
-
/**
|
|
8
|
-
* Wrapper for tool methods that standardizes error handling
|
|
9
|
-
*/
|
|
10
|
-
export declare function withErrorHandling<T extends readonly unknown[], R>(operation: string, fn: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
11
|
-
/**
|
|
12
|
-
* Wrapper for tool methods with validation
|
|
13
|
-
*/
|
|
14
|
-
export declare function withValidation<T extends readonly unknown[], R>(operation: string, validator: (...args: T) => void, fn: (...args: T) => Promise<R>): (...args: T) => Promise<R>;
|
|
15
|
-
/**
|
|
16
|
-
* Common validation functions
|
|
17
|
-
*/
|
|
18
|
-
export declare const validators: {
|
|
19
|
-
requireSite: (client: IWordPressClient | null | undefined, params: BaseToolParams) => void;
|
|
20
|
-
requireId: (params: {
|
|
21
|
-
id?: number | string;
|
|
22
|
-
}) => void;
|
|
23
|
-
requireNonEmpty: (value: unknown, fieldName: string) => void;
|
|
24
|
-
requireFields: (params: Record<string, unknown>, fields: readonly string[]) => void;
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Decorator for class methods to add error handling
|
|
28
|
-
*/
|
|
29
|
-
export declare function errorHandler(operation: string): (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
30
|
-
/**
|
|
31
|
-
* Helper to format success responses consistently
|
|
32
|
-
*/
|
|
33
|
-
export declare function formatSuccessResponse(content: string): string;
|
|
34
|
-
/**
|
|
35
|
-
* Helper to format error responses consistently
|
|
36
|
-
*/
|
|
37
|
-
export declare function formatErrorResponse(operation: string, error: unknown): never;
|
|
38
|
-
/**
|
|
39
|
-
* Simple tool wrapper for standalone async functions
|
|
40
|
-
*/
|
|
41
|
-
export declare function toolWrapper<T>(fn: () => Promise<T>): Promise<T>;
|
|
42
|
-
//# sourceMappingURL=toolWrapper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolWrapper.d.ts","sourceRoot":"","sources":["../../../src/utils/toolWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,CAAC,EAC/D,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAQ5B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EAAE,CAAC,EAC5D,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,IAAI,EAC/B,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7B,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAS5B;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;0BACC,gBAAgB,GAAG,IAAI,GAAG,SAAS,UAAU,cAAc;wBAM7D;QAAE,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;KAAE;6BAMnB,OAAO,aAAa,MAAM;4BAM3B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,UAAU,SAAS,MAAM,EAAE;CAO3E,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,IAC3B,QAAQ,OAAO,EAAE,aAAa,MAAM,EAAE,YAAY,kBAAkB,wBAatF;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE7D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,CAG5E;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMrE"}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Tool Wrapper Utility
|
|
3
|
-
* Standardizes error handling and reduces repetitive try-catch blocks
|
|
4
|
-
*/
|
|
5
|
-
import { getErrorMessage } from "./error.js";
|
|
6
|
-
/**
|
|
7
|
-
* Wrapper for tool methods that standardizes error handling
|
|
8
|
-
*/
|
|
9
|
-
export function withErrorHandling(operation, fn) {
|
|
10
|
-
return async (...args) => {
|
|
11
|
-
try {
|
|
12
|
-
return await fn(...args);
|
|
13
|
-
}
|
|
14
|
-
catch (error) {
|
|
15
|
-
throw new Error(`${operation}: ${getErrorMessage(error)}`);
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Wrapper for tool methods with validation
|
|
21
|
-
*/
|
|
22
|
-
export function withValidation(operation, validator, fn) {
|
|
23
|
-
return async (...args) => {
|
|
24
|
-
try {
|
|
25
|
-
validator(...args);
|
|
26
|
-
return await fn(...args);
|
|
27
|
-
}
|
|
28
|
-
catch (error) {
|
|
29
|
-
throw new Error(`${operation}: ${getErrorMessage(error)}`);
|
|
30
|
-
}
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Common validation functions
|
|
35
|
-
*/
|
|
36
|
-
export const validators = {
|
|
37
|
-
requireSite: (client, params) => {
|
|
38
|
-
if (!client) {
|
|
39
|
-
throw new Error("WordPress client is required");
|
|
40
|
-
}
|
|
41
|
-
},
|
|
42
|
-
requireId: (params) => {
|
|
43
|
-
if (!params.id) {
|
|
44
|
-
throw new Error("ID parameter is required");
|
|
45
|
-
}
|
|
46
|
-
},
|
|
47
|
-
requireNonEmpty: (value, fieldName) => {
|
|
48
|
-
if (!value || (typeof value === "string" && value.trim() === "")) {
|
|
49
|
-
throw new Error(`${fieldName} cannot be empty`);
|
|
50
|
-
}
|
|
51
|
-
},
|
|
52
|
-
requireFields: (params, fields) => {
|
|
53
|
-
for (const field of fields) {
|
|
54
|
-
if (params[field] === undefined || params[field] === null) {
|
|
55
|
-
throw new Error(`${field} is required`);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
},
|
|
59
|
-
};
|
|
60
|
-
/**
|
|
61
|
-
* Decorator for class methods to add error handling
|
|
62
|
-
*/
|
|
63
|
-
export function errorHandler(operation) {
|
|
64
|
-
return function (target, propertyKey, descriptor) {
|
|
65
|
-
const originalMethod = descriptor.value;
|
|
66
|
-
descriptor.value = async function (...args) {
|
|
67
|
-
try {
|
|
68
|
-
return await originalMethod.apply(this, args);
|
|
69
|
-
}
|
|
70
|
-
catch (error) {
|
|
71
|
-
throw new Error(`${operation}: ${getErrorMessage(error)}`);
|
|
72
|
-
}
|
|
73
|
-
};
|
|
74
|
-
return descriptor;
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
/**
|
|
78
|
-
* Helper to format success responses consistently
|
|
79
|
-
*/
|
|
80
|
-
export function formatSuccessResponse(content) {
|
|
81
|
-
return content;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Helper to format error responses consistently
|
|
85
|
-
*/
|
|
86
|
-
export function formatErrorResponse(operation, error) {
|
|
87
|
-
const message = getErrorMessage(error);
|
|
88
|
-
throw new Error(`${operation}: ${message}`);
|
|
89
|
-
}
|
|
90
|
-
/**
|
|
91
|
-
* Simple tool wrapper for standalone async functions
|
|
92
|
-
*/
|
|
93
|
-
export async function toolWrapper(fn) {
|
|
94
|
-
try {
|
|
95
|
-
return await fn();
|
|
96
|
-
}
|
|
97
|
-
catch (error) {
|
|
98
|
-
throw new Error(getErrorMessage(error));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=toolWrapper.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"toolWrapper.js","sourceRoot":"","sources":["../../../src/utils/toolWrapper.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAI7C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,EAA8B;IAE9B,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,SAAiB,EACjB,SAA+B,EAC/B,EAA8B;IAE9B,OAAO,KAAK,EAAE,GAAG,IAAO,EAAc,EAAE;QACtC,IAAI,CAAC;YACH,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC;YACnB,OAAO,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,WAAW,EAAE,CAAC,MAA2C,EAAE,MAAsB,EAAE,EAAE;QACnF,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,SAAS,EAAE,CAAC,MAAgC,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED,eAAe,EAAE,CAAC,KAAc,EAAE,SAAiB,EAAE,EAAE;QACrD,IAAI,CAAC,KAAK,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,kBAAkB,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,aAAa,EAAE,CAAC,MAA+B,EAAE,MAAyB,EAAE,EAAE;QAC5E,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,KAAK,CAAC,GAAG,KAAK,cAAc,CAAC,CAAC;YAC1C,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,OAAO,UAAU,MAAe,EAAE,WAAmB,EAAE,UAA8B;QACnF,MAAM,cAAc,GAAG,UAAU,CAAC,KAAK,CAAC;QAExC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAe;YACnD,IAAI,CAAC;gBACH,OAAO,MAAM,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAChD,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC7D,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,SAAiB,EAAE,KAAc;IACnE,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,IAAI,KAAK,CAAC,GAAG,SAAS,KAAK,OAAO,EAAE,CAAC,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAI,EAAoB;IACvD,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Validation Utilities
|
|
3
|
-
*
|
|
4
|
-
* Basic validation functions for common data types including IDs, strings, and arrays.
|
|
5
|
-
* These validators form the foundation for more specific validation logic.
|
|
6
|
-
*/
|
|
7
|
-
import { WordPressId } from "../../types/enhanced.js";
|
|
8
|
-
/**
|
|
9
|
-
* Validates and sanitizes numeric IDs with comprehensive edge case handling
|
|
10
|
-
* Returns branded WordPress ID type for enhanced type safety
|
|
11
|
-
*/
|
|
12
|
-
export declare function validateId(id: unknown, fieldName?: string): WordPressId;
|
|
13
|
-
/**
|
|
14
|
-
* Validates string length within bounds
|
|
15
|
-
*/
|
|
16
|
-
export declare function validateString(value: unknown, fieldName: string, minLength?: number, maxLength?: number): string;
|
|
17
|
-
/**
|
|
18
|
-
* Validates arrays with size constraints and type safety
|
|
19
|
-
*/
|
|
20
|
-
export declare function validateArray<T>(value: unknown, fieldName: string, minItems?: number, maxItems?: number): T[];
|
|
21
|
-
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation/core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAqB,MAAM,yBAAyB,CAAC;AAEzE;;;GAGG;AACH,wBAAgB,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,SAAS,GAAE,MAAa,GAAG,WAAW,CA6C7E;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,SAAS,EAAE,MAAM,EACjB,SAAS,GAAE,MAAU,EACrB,SAAS,GAAE,MAAa,GACvB,MAAM,CAeR;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,QAAQ,GAAE,MAAY,GAAG,CAAC,EAAE,CAkBrH"}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Core Validation Utilities
|
|
3
|
-
*
|
|
4
|
-
* Basic validation functions for common data types including IDs, strings, and arrays.
|
|
5
|
-
* These validators form the foundation for more specific validation logic.
|
|
6
|
-
*/
|
|
7
|
-
import { WordPressAPIError } from "../../types/client.js";
|
|
8
|
-
import { createWordPressId } from "../../types/enhanced.js";
|
|
9
|
-
/**
|
|
10
|
-
* Validates and sanitizes numeric IDs with comprehensive edge case handling
|
|
11
|
-
* Returns branded WordPress ID type for enhanced type safety
|
|
12
|
-
*/
|
|
13
|
-
export function validateId(id, fieldName = "id") {
|
|
14
|
-
// Handle null/undefined
|
|
15
|
-
if (id === null || id === undefined) {
|
|
16
|
-
throw new WordPressAPIError(`${fieldName} is required`, 400, "MISSING_PARAMETER");
|
|
17
|
-
}
|
|
18
|
-
// Convert to string first to handle various input types
|
|
19
|
-
const strId = String(id).trim();
|
|
20
|
-
// Check for empty string after trim
|
|
21
|
-
if (strId === "") {
|
|
22
|
-
throw new WordPressAPIError(`${fieldName} cannot be empty`, 400, "INVALID_PARAMETER");
|
|
23
|
-
}
|
|
24
|
-
// Handle decimal inputs
|
|
25
|
-
if (strId.includes(".")) {
|
|
26
|
-
throw new WordPressAPIError(`${fieldName} must be a whole number, not a decimal`, 400, "INVALID_PARAMETER");
|
|
27
|
-
}
|
|
28
|
-
const numId = parseInt(strId, 10);
|
|
29
|
-
// Check for NaN
|
|
30
|
-
if (isNaN(numId)) {
|
|
31
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: "${id}" is not a valid number`, 400, "INVALID_PARAMETER");
|
|
32
|
-
}
|
|
33
|
-
// Check for negative or zero
|
|
34
|
-
if (numId <= 0) {
|
|
35
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: must be a positive number (got ${numId})`, 400, "INVALID_PARAMETER");
|
|
36
|
-
}
|
|
37
|
-
// Check for max int32 limit (WordPress database limit)
|
|
38
|
-
if (numId > 2147483647) {
|
|
39
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: exceeds maximum allowed value (2147483647)`, 400, "INVALID_PARAMETER");
|
|
40
|
-
}
|
|
41
|
-
return createWordPressId(numId);
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Validates string length within bounds
|
|
45
|
-
*/
|
|
46
|
-
export function validateString(value, fieldName, minLength = 1, maxLength = 1000) {
|
|
47
|
-
if (typeof value !== "string") {
|
|
48
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: must be a string`, 400, "INVALID_PARAMETER");
|
|
49
|
-
}
|
|
50
|
-
const trimmed = value.trim();
|
|
51
|
-
if (trimmed.length < minLength || trimmed.length > maxLength) {
|
|
52
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: length must be between ${minLength} and ${maxLength} characters`, 400, "INVALID_PARAMETER");
|
|
53
|
-
}
|
|
54
|
-
return trimmed;
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Validates arrays with size constraints and type safety
|
|
58
|
-
*/
|
|
59
|
-
export function validateArray(value, fieldName, minItems = 0, maxItems = 100) {
|
|
60
|
-
if (!Array.isArray(value)) {
|
|
61
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: must be an array`, 400, "INVALID_PARAMETER");
|
|
62
|
-
}
|
|
63
|
-
if (value.length < minItems) {
|
|
64
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: must have at least ${minItems} items`, 400, "INVALID_PARAMETER");
|
|
65
|
-
}
|
|
66
|
-
if (value.length > maxItems) {
|
|
67
|
-
throw new WordPressAPIError(`Invalid ${fieldName}: cannot have more than ${maxItems} items`, 400, "INVALID_PARAMETER");
|
|
68
|
-
}
|
|
69
|
-
return value;
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=core.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sourceRoot":"","sources":["../../../../src/utils/validation/core.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAe,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEzE;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,EAAW,EAAE,YAAoB,IAAI;IAC9D,wBAAwB;IACxB,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;QACpC,MAAM,IAAI,iBAAiB,CAAC,GAAG,SAAS,cAAc,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACpF,CAAC;IAED,wDAAwD;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAEhC,oCAAoC;IACpC,IAAI,KAAK,KAAK,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,iBAAiB,CAAC,GAAG,SAAS,kBAAkB,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACxF,CAAC;IAED,wBAAwB;IACxB,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,iBAAiB,CAAC,GAAG,SAAS,wCAAwC,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC9G,CAAC;IAED,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAElC,gBAAgB;IAChB,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,iBAAiB,CAAC,WAAW,SAAS,MAAM,EAAE,yBAAyB,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAC/G,CAAC;IAED,6BAA6B;IAC7B,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,MAAM,IAAI,iBAAiB,CACzB,WAAW,SAAS,oCAAoC,KAAK,GAAG,EAChE,GAAG,EACH,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,KAAK,GAAG,UAAU,EAAE,CAAC;QACvB,MAAM,IAAI,iBAAiB,CACzB,WAAW,SAAS,8CAA8C,EAClE,GAAG,EACH,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,iBAAiB,CAAC,KAAK,CAAC,CAAC;AAClC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAC5B,KAAc,EACd,SAAiB,EACjB,YAAoB,CAAC,EACrB,YAAoB,IAAI;IAExB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,iBAAiB,CAAC,WAAW,SAAS,oBAAoB,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC7D,MAAM,IAAI,iBAAiB,CACzB,WAAW,SAAS,4BAA4B,SAAS,QAAQ,SAAS,aAAa,EACvF,GAAG,EACH,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAI,KAAc,EAAE,SAAiB,EAAE,WAAmB,CAAC,EAAE,WAAmB,GAAG;IAC9G,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,iBAAiB,CAAC,WAAW,SAAS,oBAAoB,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IAClG,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,iBAAiB,CAAC,WAAW,SAAS,wBAAwB,QAAQ,QAAQ,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;IACtH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,QAAQ,EAAE,CAAC;QAC5B,MAAM,IAAI,iBAAiB,CACzB,WAAW,SAAS,2BAA2B,QAAQ,QAAQ,EAC/D,GAAG,EACH,mBAAmB,CACpB,CAAC;IACJ,CAAC;IAED,OAAO,KAAY,CAAC;AACtB,CAAC"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Validation Utilities - Modular Export Index
|
|
3
|
-
*
|
|
4
|
-
* This module re-exports all validation functions from their focused modules
|
|
5
|
-
* for backward compatibility and convenient imports.
|
|
6
|
-
*
|
|
7
|
-
* @example
|
|
8
|
-
* ```typescript
|
|
9
|
-
* // Import all validators (backward compatible)
|
|
10
|
-
* import { validateId, validateUrl, validatePostParams } from "./utils/validation";
|
|
11
|
-
*
|
|
12
|
-
* // Or import from specific modules
|
|
13
|
-
* import { validateId } from "./utils/validation/core";
|
|
14
|
-
* import { validateUrl } from "./utils/validation/network";
|
|
15
|
-
* import { validatePostParams } from "./utils/validation/wordpress";
|
|
16
|
-
* ```
|
|
17
|
-
*/
|
|
18
|
-
export { validateId, validateString, validateArray } from "./core.js";
|
|
19
|
-
export { validateFilePath, validateFileSize, validateMimeType, sanitizeHtml } from "./security.js";
|
|
20
|
-
export { validateUrl, validateEmail, validateUsername } from "./network.js";
|
|
21
|
-
export { validatePostStatus, validateSearchQuery, validatePaginationParams, validatePostParams } from "./wordpress.js";
|
|
22
|
-
export { RateLimiter, authRateLimiter } from "./rateLimit.js";
|
|
23
|
-
export type { WordPressId } from "../../types/enhanced.js";
|
|
24
|
-
export { WordPressAPIError } from "../../types/client.js";
|
|
25
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/validation/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAGtE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGnG,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAG5E,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGvH,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAG9D,YAAY,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|