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,146 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* WordPress-Specific Validation Utilities
|
|
3
|
-
*
|
|
4
|
-
* Validation functions specific to WordPress data structures including post parameters,
|
|
5
|
-
* pagination, search queries, and status validation.
|
|
6
|
-
*/
|
|
7
|
-
import { WordPressAPIError } from "../../types/client.js";
|
|
8
|
-
import { validateId } from "./core.js";
|
|
9
|
-
import { validateString, validateArray } from "./core.js";
|
|
10
|
-
import { sanitizeHtml } from "./security.js";
|
|
11
|
-
/**
|
|
12
|
-
* Validates WordPress post status values
|
|
13
|
-
*/
|
|
14
|
-
export function validatePostStatus(status) {
|
|
15
|
-
const validStatuses = ["publish", "draft", "pending", "private", "future", "auto-draft", "trash"];
|
|
16
|
-
if (!validStatuses.includes(status)) {
|
|
17
|
-
throw new WordPressAPIError(`Invalid status: must be one of ${validStatuses.join(", ")}`, 400, "INVALID_PARAMETER");
|
|
18
|
-
}
|
|
19
|
-
return status;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Validates and sanitizes search queries
|
|
23
|
-
*/
|
|
24
|
-
export function validateSearchQuery(query) {
|
|
25
|
-
// Remove potentially dangerous characters while preserving search functionality
|
|
26
|
-
let sanitized = query.trim();
|
|
27
|
-
// Limit length to prevent DoS
|
|
28
|
-
if (sanitized.length > 200) {
|
|
29
|
-
sanitized = sanitized.substring(0, 200);
|
|
30
|
-
}
|
|
31
|
-
// Remove SQL-like patterns (basic protection)
|
|
32
|
-
sanitized = sanitized.replace(/(\b(union|select|insert|update|delete|drop|create)\b)/gi, "");
|
|
33
|
-
// Remove special characters that might be used for injection
|
|
34
|
-
sanitized = sanitized.replace(/[<>'"`;\\]/g, "");
|
|
35
|
-
return sanitized;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Validates pagination parameters as a set
|
|
39
|
-
*/
|
|
40
|
-
export function validatePaginationParams(params) {
|
|
41
|
-
const validated = {};
|
|
42
|
-
// Validate page
|
|
43
|
-
if (params.page !== undefined) {
|
|
44
|
-
const page = parseInt(String(params.page), 10);
|
|
45
|
-
if (isNaN(page) || page < 1) {
|
|
46
|
-
throw new WordPressAPIError("Page must be a positive integer", 400, "INVALID_PARAMETER");
|
|
47
|
-
}
|
|
48
|
-
if (page > 10000) {
|
|
49
|
-
throw new WordPressAPIError("Page number too high (max 10000)", 400, "INVALID_PARAMETER");
|
|
50
|
-
}
|
|
51
|
-
validated.page = page;
|
|
52
|
-
}
|
|
53
|
-
// Validate per_page
|
|
54
|
-
if (params.per_page !== undefined) {
|
|
55
|
-
const perPage = parseInt(String(params.per_page), 10);
|
|
56
|
-
if (isNaN(perPage) || perPage < 1) {
|
|
57
|
-
throw new WordPressAPIError("Per page must be a positive integer", 400, "INVALID_PARAMETER");
|
|
58
|
-
}
|
|
59
|
-
if (perPage > 100) {
|
|
60
|
-
throw new WordPressAPIError(`Per page exceeds maximum allowed (100), got ${perPage}`, 400, "INVALID_PARAMETER");
|
|
61
|
-
}
|
|
62
|
-
validated.per_page = perPage;
|
|
63
|
-
}
|
|
64
|
-
// Validate offset
|
|
65
|
-
if (params.offset !== undefined) {
|
|
66
|
-
const offset = parseInt(String(params.offset), 10);
|
|
67
|
-
if (isNaN(offset) || offset < 0) {
|
|
68
|
-
throw new WordPressAPIError("Offset must be a non-negative integer", 400, "INVALID_PARAMETER");
|
|
69
|
-
}
|
|
70
|
-
if (offset > 1000000) {
|
|
71
|
-
throw new WordPressAPIError("Offset too large (max 1000000)", 400, "INVALID_PARAMETER");
|
|
72
|
-
}
|
|
73
|
-
validated.offset = offset;
|
|
74
|
-
}
|
|
75
|
-
// Check for conflicting parameters
|
|
76
|
-
if (validated.page && validated.offset) {
|
|
77
|
-
throw new WordPressAPIError("Cannot use both 'page' and 'offset' parameters together", 400, "CONFLICTING_PARAMETERS");
|
|
78
|
-
}
|
|
79
|
-
return validated;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Validates complex post creation parameters
|
|
83
|
-
*/
|
|
84
|
-
export function validatePostParams(params) {
|
|
85
|
-
const validated = {};
|
|
86
|
-
// Type guard to ensure params is an object
|
|
87
|
-
if (typeof params !== "object" || params === null || Array.isArray(params)) {
|
|
88
|
-
throw new WordPressAPIError("Post parameters must be an object", 400, "INVALID_PARAMETER");
|
|
89
|
-
}
|
|
90
|
-
const typedParams = params;
|
|
91
|
-
// Title validation
|
|
92
|
-
if (!typedParams.title || typeof typedParams.title !== "string") {
|
|
93
|
-
throw new WordPressAPIError("Post title is required and must be a string", 400, "INVALID_PARAMETER");
|
|
94
|
-
}
|
|
95
|
-
validated.title = validateString(typedParams.title, "title", 1, 200);
|
|
96
|
-
// Content validation
|
|
97
|
-
if (typedParams.content !== undefined) {
|
|
98
|
-
validated.content = sanitizeHtml(String(typedParams.content));
|
|
99
|
-
}
|
|
100
|
-
// Status validation with context
|
|
101
|
-
if (typedParams.status) {
|
|
102
|
-
if (typeof typedParams.status !== "string") {
|
|
103
|
-
throw new WordPressAPIError("Status must be a string", 400, "INVALID_PARAMETER");
|
|
104
|
-
}
|
|
105
|
-
validated.status = validatePostStatus(typedParams.status);
|
|
106
|
-
// Future posts need a date
|
|
107
|
-
if (validated.status === "future" && !typedParams.date) {
|
|
108
|
-
throw new WordPressAPIError("Future posts require a 'date' parameter", 400, "MISSING_PARAMETER");
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
// Categories and tags validation
|
|
112
|
-
if (typedParams.categories) {
|
|
113
|
-
const categories = validateArray(typedParams.categories, "categories", 0, 50);
|
|
114
|
-
validated.categories = categories.map((id) => validateId(id, "category ID"));
|
|
115
|
-
}
|
|
116
|
-
if (typedParams.tags) {
|
|
117
|
-
const tags = validateArray(typedParams.tags, "tags", 0, 100);
|
|
118
|
-
validated.tags = tags.map((id) => validateId(id, "tag ID"));
|
|
119
|
-
}
|
|
120
|
-
// Featured media validation
|
|
121
|
-
if (typedParams.featured_media !== undefined) {
|
|
122
|
-
if (typedParams.featured_media === null || typedParams.featured_media === 0) {
|
|
123
|
-
// Allow null or 0 to remove featured media
|
|
124
|
-
validated.featured_media = 0;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
validated.featured_media = validateId(typedParams.featured_media, "featured_media");
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Date validation for scheduled posts
|
|
131
|
-
if (typedParams.date) {
|
|
132
|
-
try {
|
|
133
|
-
const date = new Date(String(typedParams.date));
|
|
134
|
-
if (isNaN(date.getTime())) {
|
|
135
|
-
throw new Error("Invalid date");
|
|
136
|
-
}
|
|
137
|
-
// WordPress expects ISO 8601 format
|
|
138
|
-
validated.date = date.toISOString();
|
|
139
|
-
}
|
|
140
|
-
catch {
|
|
141
|
-
throw new WordPressAPIError("Invalid date format. Use ISO 8601 format (YYYY-MM-DDTHH:mm:ss)", 400, "INVALID_PARAMETER");
|
|
142
|
-
}
|
|
143
|
-
}
|
|
144
|
-
return validated;
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=wordpress.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"wordpress.js","sourceRoot":"","sources":["../../../../src/utils/validation/wordpress.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enhanced Security-Focused Validation Utilities - Legacy Export Module
|
|
3
|
-
*
|
|
4
|
-
* This file maintains backward compatibility while the codebase transitions
|
|
5
|
-
* to the new modular structure. The actual implementations have been refactored
|
|
6
|
-
* into focused modules under ./validation/ directory.
|
|
7
|
-
*
|
|
8
|
-
* @deprecated Use direct imports from ./validation/ modules instead
|
|
9
|
-
* @see ./validation/index.ts for the new modular implementation
|
|
10
|
-
*/
|
|
11
|
-
export { validateId, validateString, validateArray, validateFilePath, validateFileSize, validateMimeType, sanitizeHtml, validateUrl, validateEmail, validateUsername, validatePostStatus, validateSearchQuery, validatePaginationParams, validatePostParams, RateLimiter, authRateLimiter, type WordPressId, WordPressAPIError, } from "./validation/index.js";
|
|
12
|
-
export { validateId as validateWordPressId } from "./validation/core.js";
|
|
13
|
-
export { validatePostParams as validatePostData } from "./validation/wordpress.js";
|
|
14
|
-
export { sanitizeHtml as cleanHtml } from "./validation/security.js";
|
|
15
|
-
//# sourceMappingURL=validation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAEL,UAAU,EACV,cAAc,EACd,aAAa,EAGb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EAGZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAGhB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB,EAGlB,WAAW,EACX,eAAe,EAGf,KAAK,WAAW,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,kBAAkB,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Enhanced Security-Focused Validation Utilities - Legacy Export Module
|
|
3
|
-
*
|
|
4
|
-
* This file maintains backward compatibility while the codebase transitions
|
|
5
|
-
* to the new modular structure. The actual implementations have been refactored
|
|
6
|
-
* into focused modules under ./validation/ directory.
|
|
7
|
-
*
|
|
8
|
-
* @deprecated Use direct imports from ./validation/ modules instead
|
|
9
|
-
* @see ./validation/index.ts for the new modular implementation
|
|
10
|
-
*/
|
|
11
|
-
// Re-export everything from the modular structure for backward compatibility
|
|
12
|
-
export {
|
|
13
|
-
// Core validators
|
|
14
|
-
validateId, validateString, validateArray,
|
|
15
|
-
// Security validators
|
|
16
|
-
validateFilePath, validateFileSize, validateMimeType, sanitizeHtml,
|
|
17
|
-
// Network validators
|
|
18
|
-
validateUrl, validateEmail, validateUsername,
|
|
19
|
-
// WordPress-specific validators
|
|
20
|
-
validatePostStatus, validateSearchQuery, validatePaginationParams, validatePostParams,
|
|
21
|
-
// Rate limiting
|
|
22
|
-
RateLimiter, authRateLimiter, WordPressAPIError, } from "./validation/index.js";
|
|
23
|
-
// Legacy re-exports for specific components (advanced usage)
|
|
24
|
-
export { validateId as validateWordPressId } from "./validation/core.js";
|
|
25
|
-
export { validatePostParams as validatePostData } from "./validation/wordpress.js";
|
|
26
|
-
export { sanitizeHtml as cleanHtml } from "./validation/security.js";
|
|
27
|
-
//# sourceMappingURL=validation.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validation.js","sourceRoot":"","sources":["../../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,6EAA6E;AAC7E,OAAO;AACL,kBAAkB;AAClB,UAAU,EACV,cAAc,EACd,aAAa;AAEb,sBAAsB;AACtB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,YAAY;AAEZ,qBAAqB;AACrB,WAAW,EACX,aAAa,EACb,gBAAgB;AAEhB,gCAAgC;AAChC,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,kBAAkB;AAElB,gBAAgB;AAChB,WAAW,EACX,eAAe,EAIf,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,6DAA6D;AAC7D,OAAO,EAAE,UAAU,IAAI,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,kBAAkB,IAAI,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,YAAY,IAAI,SAAS,EAAE,MAAM,0BAA0B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.setup.d.ts","sourceRoot":"","sources":["../../tests/vitest.setup.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Vitest setup and teardown to ensure proper cleanup of resources
|
|
3
|
-
* This helps prevent worker processes from hanging
|
|
4
|
-
*/
|
|
5
|
-
import { beforeAll, afterAll, afterEach } from 'vitest';
|
|
6
|
-
// Global setup
|
|
7
|
-
beforeAll(() => {
|
|
8
|
-
// Set execution context for compatibility
|
|
9
|
-
globalThis.__EXECUTION_CONTEXT__ = 'vitest';
|
|
10
|
-
});
|
|
11
|
-
// Cleanup after each test
|
|
12
|
-
afterEach(() => {
|
|
13
|
-
// Clear all timers and intervals
|
|
14
|
-
if (typeof globalThis.clearImmediate === "function") {
|
|
15
|
-
globalThis.clearImmediate();
|
|
16
|
-
}
|
|
17
|
-
// Force garbage collection if available
|
|
18
|
-
if (globalThis.gc) {
|
|
19
|
-
globalThis.gc();
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
// Global teardown
|
|
23
|
-
afterAll(() => {
|
|
24
|
-
// Force garbage collection if available
|
|
25
|
-
if (globalThis.gc) {
|
|
26
|
-
globalThis.gc();
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
// Handle uncaught exceptions in test environment
|
|
30
|
-
process.on("uncaughtException", (error) => {
|
|
31
|
-
console.error("Uncaught exception in test:", error);
|
|
32
|
-
process.exit(1);
|
|
33
|
-
});
|
|
34
|
-
// Handle unhandled promise rejections in test environment
|
|
35
|
-
process.on("unhandledRejection", (reason, _promise) => {
|
|
36
|
-
console.error("Unhandled promise rejection in test:", reason);
|
|
37
|
-
process.exit(1);
|
|
38
|
-
});
|
|
39
|
-
//# sourceMappingURL=vitest.setup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"vitest.setup.js","sourceRoot":"","sources":["../../tests/vitest.setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExD,eAAe;AACf,SAAS,CAAC,GAAG,EAAE;IACb,0CAA0C;IACzC,UAAkB,CAAC,qBAAqB,GAAG,QAAQ,CAAC;AACvD,CAAC,CAAC,CAAC;AAEH,0BAA0B;AAC1B,SAAS,CAAC,GAAG,EAAE;IACb,iCAAiC;IACjC,IAAI,OAAQ,UAAkB,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QAC5D,UAAkB,CAAC,cAAc,EAAE,CAAC;IACvC,CAAC;IAED,wCAAwC;IACxC,IAAK,UAAkB,CAAC,EAAE,EAAE,CAAC;QAC1B,UAAkB,CAAC,EAAE,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,kBAAkB;AAClB,QAAQ,CAAC,GAAG,EAAE;IACZ,wCAAwC;IACxC,IAAK,UAAkB,CAAC,EAAE,EAAE,CAAC;QAC1B,UAAkB,CAAC,EAAE,EAAE,CAAC;IAC3B,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,iDAAiD;AACjD,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,0DAA0D;AAC1D,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE;IACpD,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|