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,193 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* HTTP Request Manager
|
|
3
|
-
* Handles all HTTP operations, rate limiting, and retries
|
|
4
|
-
*/
|
|
5
|
-
import { WordPressAPIError, RateLimitError } from "../../types/client.js";
|
|
6
|
-
import { config } from "../../config/Config.js";
|
|
7
|
-
import { BaseManager } from "./BaseManager.js";
|
|
8
|
-
import { debug, startTimer } from "../../utils/debug.js";
|
|
9
|
-
export class RequestManager extends BaseManager {
|
|
10
|
-
stats;
|
|
11
|
-
lastRequestTime = 0;
|
|
12
|
-
requestInterval;
|
|
13
|
-
authManager;
|
|
14
|
-
constructor(clientConfig, authManager) {
|
|
15
|
-
super(clientConfig);
|
|
16
|
-
this.authManager = authManager;
|
|
17
|
-
this.requestInterval = 60000 / config().security.rateLimit;
|
|
18
|
-
this.stats = {
|
|
19
|
-
totalRequests: 0,
|
|
20
|
-
successfulRequests: 0,
|
|
21
|
-
failedRequests: 0,
|
|
22
|
-
averageResponseTime: 0,
|
|
23
|
-
rateLimitHits: 0,
|
|
24
|
-
authFailures: 0,
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Make HTTP request with retry logic and rate limiting
|
|
29
|
-
*/
|
|
30
|
-
async request(method, endpoint, data, options = {}) {
|
|
31
|
-
const timer = startTimer();
|
|
32
|
-
try {
|
|
33
|
-
await this.enforceRateLimit();
|
|
34
|
-
const response = await this.makeRequestWithRetry(method, endpoint, data, options);
|
|
35
|
-
this.stats.successfulRequests++;
|
|
36
|
-
this.updateAverageResponseTime(timer.end());
|
|
37
|
-
return response;
|
|
38
|
-
}
|
|
39
|
-
catch (error) {
|
|
40
|
-
this.stats.failedRequests++;
|
|
41
|
-
this.handleError(error, `${method} ${endpoint}`);
|
|
42
|
-
}
|
|
43
|
-
finally {
|
|
44
|
-
this.stats.totalRequests++;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Make request with retry logic
|
|
49
|
-
*/
|
|
50
|
-
async makeRequestWithRetry(method, endpoint, data, options = {}) {
|
|
51
|
-
let lastError;
|
|
52
|
-
const maxRetries = options.retries ?? this.config.maxRetries ?? 3;
|
|
53
|
-
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
54
|
-
try {
|
|
55
|
-
return await this.makeRequest(method, endpoint, data, options);
|
|
56
|
-
}
|
|
57
|
-
catch (error) {
|
|
58
|
-
lastError = error;
|
|
59
|
-
// Type guard for error-like objects
|
|
60
|
-
const isErrorLike = (err) => {
|
|
61
|
-
return typeof err === "object" && err !== null;
|
|
62
|
-
};
|
|
63
|
-
// Don't retry on authentication errors or client errors
|
|
64
|
-
if ((isErrorLike(error) && error.statusCode && error.statusCode < 500) || attempt === maxRetries) {
|
|
65
|
-
throw error;
|
|
66
|
-
}
|
|
67
|
-
const errorMessage = isErrorLike(error) && error.message ? error.message : String(error);
|
|
68
|
-
debug.log(`Request failed (attempt ${attempt}/${maxRetries}):`, errorMessage);
|
|
69
|
-
// Exponential backoff
|
|
70
|
-
const delay = Math.min(1000 * Math.pow(2, attempt - 1), 5000);
|
|
71
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
throw lastError;
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Make single HTTP request
|
|
78
|
-
*/
|
|
79
|
-
async makeRequest(method, endpoint, data, options = {}) {
|
|
80
|
-
const url = this.buildUrl(endpoint);
|
|
81
|
-
const timeout = options.timeout ?? this.config.timeout ?? 30000;
|
|
82
|
-
const controller = new AbortController();
|
|
83
|
-
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
84
|
-
try {
|
|
85
|
-
// Get authentication headers
|
|
86
|
-
const authHeaders = await this.authManager.getAuthHeaders();
|
|
87
|
-
const fetchOptions = {
|
|
88
|
-
method,
|
|
89
|
-
headers: {
|
|
90
|
-
"Content-Type": "application/json",
|
|
91
|
-
"User-Agent": "MCP-WordPress/1.1.1",
|
|
92
|
-
...authHeaders, // Add auth headers before custom headers
|
|
93
|
-
...options.headers,
|
|
94
|
-
},
|
|
95
|
-
signal: controller.signal,
|
|
96
|
-
};
|
|
97
|
-
if (data && method !== "GET") {
|
|
98
|
-
if (data instanceof FormData ||
|
|
99
|
-
(typeof data === "object" && data && "append" in data && typeof data.append === "function")) {
|
|
100
|
-
// For FormData, don't set Content-Type (let fetch set it with boundary)
|
|
101
|
-
if (fetchOptions.headers &&
|
|
102
|
-
typeof fetchOptions.headers === "object" &&
|
|
103
|
-
"Content-Type" in fetchOptions.headers) {
|
|
104
|
-
delete fetchOptions.headers["Content-Type"];
|
|
105
|
-
}
|
|
106
|
-
fetchOptions.body = data;
|
|
107
|
-
}
|
|
108
|
-
else if (Buffer.isBuffer(data)) {
|
|
109
|
-
// For Buffer data, keep Content-Type from headers
|
|
110
|
-
fetchOptions.body = data;
|
|
111
|
-
}
|
|
112
|
-
else if (typeof data === "string") {
|
|
113
|
-
fetchOptions.body = data;
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
fetchOptions.body = JSON.stringify(data);
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
debug.log(`API Request: ${method} ${url}`);
|
|
120
|
-
const response = await fetch(url, fetchOptions);
|
|
121
|
-
if (!response.ok) {
|
|
122
|
-
await this.handleErrorResponse(response);
|
|
123
|
-
}
|
|
124
|
-
const responseData = await response.json();
|
|
125
|
-
return responseData;
|
|
126
|
-
}
|
|
127
|
-
finally {
|
|
128
|
-
clearTimeout(timeoutId);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* Handle HTTP error responses
|
|
133
|
-
*/
|
|
134
|
-
async handleErrorResponse(response) {
|
|
135
|
-
let errorData = {};
|
|
136
|
-
try {
|
|
137
|
-
const jsonData = await response.json();
|
|
138
|
-
if (typeof jsonData === "object" && jsonData !== null) {
|
|
139
|
-
errorData = jsonData;
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
catch {
|
|
143
|
-
// Ignore JSON parsing errors
|
|
144
|
-
}
|
|
145
|
-
const message = (typeof errorData.message === "string" ? errorData.message : undefined) ||
|
|
146
|
-
`HTTP ${response.status}: ${response.statusText}`;
|
|
147
|
-
const code = (typeof errorData.code === "string" ? errorData.code : undefined) || "http_error";
|
|
148
|
-
if (response.status === 429) {
|
|
149
|
-
this.stats.rateLimitHits++;
|
|
150
|
-
throw new RateLimitError(message, Date.now() + 60000); // Retry after 1 minute
|
|
151
|
-
}
|
|
152
|
-
if (response.status === 401 || response.status === 403) {
|
|
153
|
-
this.stats.authFailures++;
|
|
154
|
-
}
|
|
155
|
-
throw new WordPressAPIError(message, response.status, code, errorData);
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Build full URL from endpoint
|
|
159
|
-
*/
|
|
160
|
-
buildUrl(endpoint) {
|
|
161
|
-
const baseUrl = this.config.baseUrl.replace(/\/$/, "");
|
|
162
|
-
const apiBase = "/wp-json/wp/v2";
|
|
163
|
-
const cleanEndpoint = endpoint.startsWith("/") ? endpoint : `/${endpoint}`;
|
|
164
|
-
return `${baseUrl}${apiBase}${cleanEndpoint}`;
|
|
165
|
-
}
|
|
166
|
-
/**
|
|
167
|
-
* Enforce rate limiting
|
|
168
|
-
*/
|
|
169
|
-
async enforceRateLimit() {
|
|
170
|
-
const now = Date.now();
|
|
171
|
-
const timeSinceLastRequest = now - this.lastRequestTime;
|
|
172
|
-
if (timeSinceLastRequest < this.requestInterval) {
|
|
173
|
-
const delay = this.requestInterval - timeSinceLastRequest;
|
|
174
|
-
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
175
|
-
}
|
|
176
|
-
this.lastRequestTime = Date.now();
|
|
177
|
-
}
|
|
178
|
-
/**
|
|
179
|
-
* Update average response time
|
|
180
|
-
*/
|
|
181
|
-
updateAverageResponseTime(responseTime) {
|
|
182
|
-
const totalRequests = this.stats.successfulRequests;
|
|
183
|
-
const currentAverage = this.stats.averageResponseTime;
|
|
184
|
-
this.stats.averageResponseTime = (currentAverage * (totalRequests - 1) + responseTime) / totalRequests;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Get request statistics
|
|
188
|
-
*/
|
|
189
|
-
getStats() {
|
|
190
|
-
return { ...this.stats };
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
//# sourceMappingURL=RequestManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RequestManager.js","sourceRoot":"","sources":["../../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client Managers Index
|
|
3
|
-
* Exports all manager classes for the WordPress client
|
|
4
|
-
*/
|
|
5
|
-
export { BaseManager } from "./BaseManager.js";
|
|
6
|
-
export { AuthenticationManager } from "./AuthenticationManager.js";
|
|
7
|
-
export { RequestManager } from "./RequestManager.js";
|
|
8
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Client Managers Index
|
|
3
|
-
* Exports all manager classes for the WordPress client
|
|
4
|
-
*/
|
|
5
|
-
export { BaseManager } from "./BaseManager.js";
|
|
6
|
-
export { AuthenticationManager } from "./AuthenticationManager.js";
|
|
7
|
-
export { RequestManager } from "./RequestManager.js";
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -1,155 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Centralized Configuration Management
|
|
3
|
-
*
|
|
4
|
-
* Provides typed access to all environment variables and configuration options.
|
|
5
|
-
* Centralizes configuration logic and eliminates scattered process.env access.
|
|
6
|
-
*/
|
|
7
|
-
export interface AppConfig {
|
|
8
|
-
readonly wordpress: {
|
|
9
|
-
readonly siteUrl: string | undefined;
|
|
10
|
-
readonly username: string | undefined;
|
|
11
|
-
readonly appPassword: string | undefined;
|
|
12
|
-
readonly password: string | undefined;
|
|
13
|
-
readonly authMethod: string;
|
|
14
|
-
readonly timeout: number;
|
|
15
|
-
readonly maxRetries: number;
|
|
16
|
-
readonly jwtSecret: string | undefined;
|
|
17
|
-
readonly apiKey: string | undefined;
|
|
18
|
-
readonly cookieNonce: string | undefined;
|
|
19
|
-
readonly jwtPassword: string | undefined;
|
|
20
|
-
};
|
|
21
|
-
readonly app: {
|
|
22
|
-
readonly nodeEnv: string;
|
|
23
|
-
readonly isDevelopment: boolean;
|
|
24
|
-
readonly isProduction: boolean;
|
|
25
|
-
readonly isTest: boolean;
|
|
26
|
-
readonly isDXT: boolean;
|
|
27
|
-
readonly isCI: boolean;
|
|
28
|
-
};
|
|
29
|
-
readonly debug: {
|
|
30
|
-
readonly enabled: boolean;
|
|
31
|
-
readonly logLevel: string;
|
|
32
|
-
};
|
|
33
|
-
readonly cache: {
|
|
34
|
-
readonly disabled: boolean;
|
|
35
|
-
readonly ttl: number;
|
|
36
|
-
readonly maxItems: number;
|
|
37
|
-
readonly maxMemoryMB: number;
|
|
38
|
-
};
|
|
39
|
-
readonly security: {
|
|
40
|
-
readonly rateLimitEnabled: boolean;
|
|
41
|
-
readonly rateLimitRequests: number;
|
|
42
|
-
readonly rateLimitWindow: number;
|
|
43
|
-
readonly rateLimit: number;
|
|
44
|
-
readonly strictMode: boolean;
|
|
45
|
-
};
|
|
46
|
-
readonly error: {
|
|
47
|
-
readonly legacyLogsEnabled: boolean;
|
|
48
|
-
};
|
|
49
|
-
readonly testing: {
|
|
50
|
-
readonly coverageTolerance: number;
|
|
51
|
-
readonly skipPactTests: boolean;
|
|
52
|
-
readonly performanceTest: boolean;
|
|
53
|
-
};
|
|
54
|
-
readonly ci: {
|
|
55
|
-
readonly isCI: boolean;
|
|
56
|
-
readonly provider: string | null;
|
|
57
|
-
readonly isGitHubActions: boolean;
|
|
58
|
-
readonly isTravis: boolean;
|
|
59
|
-
readonly isCircleCI: boolean;
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Centralized Configuration Class
|
|
64
|
-
*
|
|
65
|
-
* Singleton that provides type-safe access to all configuration values.
|
|
66
|
-
* Replaces scattered process.env access throughout the codebase.
|
|
67
|
-
*/
|
|
68
|
-
export declare class Config {
|
|
69
|
-
private static instance;
|
|
70
|
-
private readonly config;
|
|
71
|
-
private constructor();
|
|
72
|
-
/**
|
|
73
|
-
* Get singleton instance
|
|
74
|
-
*/
|
|
75
|
-
static getInstance(): Config;
|
|
76
|
-
/**
|
|
77
|
-
* Get configuration object (read-only)
|
|
78
|
-
*/
|
|
79
|
-
get(): AppConfig;
|
|
80
|
-
/**
|
|
81
|
-
* Load and validate all configuration from environment
|
|
82
|
-
*/
|
|
83
|
-
private loadConfiguration;
|
|
84
|
-
/**
|
|
85
|
-
* Check if a string value should be considered truthy
|
|
86
|
-
* Accepts common truthy string representations
|
|
87
|
-
*/
|
|
88
|
-
private isTruthy;
|
|
89
|
-
/**
|
|
90
|
-
* Detect if running in CI environment
|
|
91
|
-
*/
|
|
92
|
-
private detectCIEnvironment;
|
|
93
|
-
/**
|
|
94
|
-
* Detect CI provider
|
|
95
|
-
*/
|
|
96
|
-
private detectCIProvider;
|
|
97
|
-
/**
|
|
98
|
-
* Should log debug information?
|
|
99
|
-
*/
|
|
100
|
-
shouldDebug(): boolean;
|
|
101
|
-
/**
|
|
102
|
-
* Should use caching?
|
|
103
|
-
*/
|
|
104
|
-
shouldUseCache(): boolean;
|
|
105
|
-
/**
|
|
106
|
-
* Should log info messages? (not in test or DXT mode)
|
|
107
|
-
*/
|
|
108
|
-
shouldLogInfo(): boolean;
|
|
109
|
-
/**
|
|
110
|
-
* Is WordPress configuration complete?
|
|
111
|
-
*/
|
|
112
|
-
hasWordPressConfig(): boolean;
|
|
113
|
-
/**
|
|
114
|
-
* Get environment-appropriate timeout for operations
|
|
115
|
-
*/
|
|
116
|
-
getOperationTimeout(): number;
|
|
117
|
-
/**
|
|
118
|
-
* Reset singleton (for testing)
|
|
119
|
-
*/
|
|
120
|
-
static reset(): void;
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Global configuration instance getter
|
|
124
|
-
* Use this throughout the application instead of process.env
|
|
125
|
-
*/
|
|
126
|
-
export declare const config: () => AppConfig;
|
|
127
|
-
/**
|
|
128
|
-
* Configuration helper utilities
|
|
129
|
-
*/
|
|
130
|
-
export declare const ConfigHelpers: {
|
|
131
|
-
/**
|
|
132
|
-
* Get config instance
|
|
133
|
-
*/
|
|
134
|
-
get: () => Config;
|
|
135
|
-
/**
|
|
136
|
-
* Quick environment checks
|
|
137
|
-
*/
|
|
138
|
-
isDev: () => boolean;
|
|
139
|
-
isProd: () => boolean;
|
|
140
|
-
isTest: () => boolean;
|
|
141
|
-
isDXT: () => boolean;
|
|
142
|
-
isCI: () => boolean;
|
|
143
|
-
/**
|
|
144
|
-
* Quick feature flags
|
|
145
|
-
*/
|
|
146
|
-
shouldDebug: () => boolean;
|
|
147
|
-
shouldUseCache: () => boolean;
|
|
148
|
-
shouldLogInfo: () => boolean;
|
|
149
|
-
hasWordPressConfig: () => boolean;
|
|
150
|
-
/**
|
|
151
|
-
* Get timeout for different operation types
|
|
152
|
-
*/
|
|
153
|
-
getTimeout: (type?: "operation" | "upload" | "test") => number;
|
|
154
|
-
};
|
|
155
|
-
//# sourceMappingURL=Config.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.d.ts","sourceRoot":"","sources":["../../../src/config/Config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,215 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Centralized Configuration Management
|
|
3
|
-
*
|
|
4
|
-
* Provides typed access to all environment variables and configuration options.
|
|
5
|
-
* Centralizes configuration logic and eliminates scattered process.env access.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* Centralized Configuration Class
|
|
9
|
-
*
|
|
10
|
-
* Singleton that provides type-safe access to all configuration values.
|
|
11
|
-
* Replaces scattered process.env access throughout the codebase.
|
|
12
|
-
*/
|
|
13
|
-
export class Config {
|
|
14
|
-
static instance = null;
|
|
15
|
-
config;
|
|
16
|
-
constructor() {
|
|
17
|
-
this.config = this.loadConfiguration();
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Get singleton instance
|
|
21
|
-
*/
|
|
22
|
-
static getInstance() {
|
|
23
|
-
if (!Config.instance) {
|
|
24
|
-
Config.instance = new Config();
|
|
25
|
-
}
|
|
26
|
-
return Config.instance;
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Get configuration object (read-only)
|
|
30
|
-
*/
|
|
31
|
-
get() {
|
|
32
|
-
return this.config;
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Load and validate all configuration from environment
|
|
36
|
-
*/
|
|
37
|
-
loadConfiguration() {
|
|
38
|
-
const nodeEnv = process.env.NODE_ENV || "development";
|
|
39
|
-
return {
|
|
40
|
-
wordpress: {
|
|
41
|
-
siteUrl: process.env.WORDPRESS_SITE_URL,
|
|
42
|
-
username: process.env.WORDPRESS_USERNAME,
|
|
43
|
-
appPassword: process.env.WORDPRESS_APP_PASSWORD,
|
|
44
|
-
password: process.env.WORDPRESS_PASSWORD,
|
|
45
|
-
authMethod: process.env.WORDPRESS_AUTH_METHOD || "app-password",
|
|
46
|
-
timeout: parseInt(process.env.WORDPRESS_TIMEOUT || "30000", 10),
|
|
47
|
-
maxRetries: parseInt(process.env.WORDPRESS_MAX_RETRIES || "3", 10),
|
|
48
|
-
jwtSecret: process.env.WORDPRESS_JWT_SECRET,
|
|
49
|
-
apiKey: process.env.WORDPRESS_API_KEY,
|
|
50
|
-
cookieNonce: process.env.WORDPRESS_COOKIE_NONCE,
|
|
51
|
-
jwtPassword: process.env.WORDPRESS_JWT_PASSWORD,
|
|
52
|
-
},
|
|
53
|
-
app: {
|
|
54
|
-
nodeEnv,
|
|
55
|
-
isDevelopment: nodeEnv === "development",
|
|
56
|
-
isProduction: nodeEnv === "production",
|
|
57
|
-
isTest: nodeEnv === "test",
|
|
58
|
-
isDXT: nodeEnv === "dxt",
|
|
59
|
-
isCI: this.detectCIEnvironment(),
|
|
60
|
-
},
|
|
61
|
-
debug: {
|
|
62
|
-
enabled: process.env.DEBUG === "true",
|
|
63
|
-
logLevel: process.env.LOG_LEVEL || "info",
|
|
64
|
-
},
|
|
65
|
-
cache: {
|
|
66
|
-
disabled: this.isTruthy(process.env.CACHE_DISABLED) || this.isTruthy(process.env.DISABLE_CACHE),
|
|
67
|
-
ttl: parseInt(process.env.CACHE_TTL || "300", 10), // 5 minutes default
|
|
68
|
-
maxItems: parseInt(process.env.CACHE_MAX_ITEMS || "1000", 10),
|
|
69
|
-
maxMemoryMB: parseInt(process.env.CACHE_MAX_MEMORY_MB || "50", 10),
|
|
70
|
-
},
|
|
71
|
-
security: {
|
|
72
|
-
rateLimitEnabled: process.env.RATE_LIMIT_ENABLED !== "false",
|
|
73
|
-
rateLimitRequests: parseInt(process.env.RATE_LIMIT_REQUESTS || "100", 10),
|
|
74
|
-
rateLimitWindow: parseInt(process.env.RATE_LIMIT_WINDOW || "60000", 10), // 1 minute
|
|
75
|
-
rateLimit: parseInt(process.env.RATE_LIMIT || "60", 10),
|
|
76
|
-
strictMode: process.env.SECURITY_STRICT_MODE === "true",
|
|
77
|
-
},
|
|
78
|
-
error: {
|
|
79
|
-
legacyLogsEnabled: process.env.LEGACY_ERROR_LOGS !== "0",
|
|
80
|
-
},
|
|
81
|
-
testing: {
|
|
82
|
-
coverageTolerance: parseFloat(process.env.COVERAGE_TOLERANCE || "1.0"),
|
|
83
|
-
skipPactTests: process.env.SKIP_PACT_TESTS === "true",
|
|
84
|
-
performanceTest: process.env.PERFORMANCE_TEST === "true",
|
|
85
|
-
},
|
|
86
|
-
ci: {
|
|
87
|
-
isCI: this.detectCIEnvironment(),
|
|
88
|
-
provider: this.detectCIProvider(),
|
|
89
|
-
isGitHubActions: process.env.GITHUB_ACTIONS === "true",
|
|
90
|
-
isTravis: process.env.TRAVIS === "true",
|
|
91
|
-
isCircleCI: process.env.CIRCLECI === "true",
|
|
92
|
-
},
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Check if a string value should be considered truthy
|
|
97
|
-
* Accepts common truthy string representations
|
|
98
|
-
*/
|
|
99
|
-
isTruthy(value) {
|
|
100
|
-
if (!value)
|
|
101
|
-
return false;
|
|
102
|
-
const lowerValue = value.trim().toLowerCase();
|
|
103
|
-
return ["true", "1", "yes", "on", "enable", "enabled"].includes(lowerValue);
|
|
104
|
-
}
|
|
105
|
-
/**
|
|
106
|
-
* Detect if running in CI environment
|
|
107
|
-
*/
|
|
108
|
-
detectCIEnvironment() {
|
|
109
|
-
return (process.env.CI === "true" ||
|
|
110
|
-
process.env.NODE_ENV === "ci" ||
|
|
111
|
-
process.env.GITHUB_ACTIONS === "true" ||
|
|
112
|
-
process.env.TRAVIS === "true" ||
|
|
113
|
-
process.env.CIRCLECI === "true");
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Detect CI provider
|
|
117
|
-
*/
|
|
118
|
-
detectCIProvider() {
|
|
119
|
-
if (process.env.GITHUB_ACTIONS === "true")
|
|
120
|
-
return "github-actions";
|
|
121
|
-
if (process.env.TRAVIS === "true")
|
|
122
|
-
return "travis";
|
|
123
|
-
if (process.env.CIRCLECI === "true")
|
|
124
|
-
return "circleci";
|
|
125
|
-
if (process.env.CI === "true")
|
|
126
|
-
return "generic";
|
|
127
|
-
return null;
|
|
128
|
-
}
|
|
129
|
-
// Convenience methods for common checks
|
|
130
|
-
/**
|
|
131
|
-
* Should log debug information?
|
|
132
|
-
*/
|
|
133
|
-
shouldDebug() {
|
|
134
|
-
return this.config.debug.enabled && !this.config.app.isDXT;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Should use caching?
|
|
138
|
-
*/
|
|
139
|
-
shouldUseCache() {
|
|
140
|
-
return !this.config.cache.disabled;
|
|
141
|
-
}
|
|
142
|
-
/**
|
|
143
|
-
* Should log info messages? (not in test or DXT mode)
|
|
144
|
-
*/
|
|
145
|
-
shouldLogInfo() {
|
|
146
|
-
return !this.config.app.isTest && !this.config.app.isDXT;
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Is WordPress configuration complete?
|
|
150
|
-
*/
|
|
151
|
-
hasWordPressConfig() {
|
|
152
|
-
const wp = this.config.wordpress;
|
|
153
|
-
return !!(wp.siteUrl && wp.username && wp.appPassword);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Get environment-appropriate timeout for operations
|
|
157
|
-
*/
|
|
158
|
-
getOperationTimeout() {
|
|
159
|
-
if (this.config.app.isTest)
|
|
160
|
-
return 5000; // 5 seconds in tests
|
|
161
|
-
if (this.config.app.isCI)
|
|
162
|
-
return 30000; // 30 seconds in CI
|
|
163
|
-
return 60000; // 1 minute in development/production
|
|
164
|
-
}
|
|
165
|
-
/**
|
|
166
|
-
* Reset singleton (for testing)
|
|
167
|
-
*/
|
|
168
|
-
static reset() {
|
|
169
|
-
Config.instance = null;
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
/**
|
|
173
|
-
* Global configuration instance getter
|
|
174
|
-
* Use this throughout the application instead of process.env
|
|
175
|
-
*/
|
|
176
|
-
export const config = () => Config.getInstance().get();
|
|
177
|
-
/**
|
|
178
|
-
* Configuration helper utilities
|
|
179
|
-
*/
|
|
180
|
-
export const ConfigHelpers = {
|
|
181
|
-
/**
|
|
182
|
-
* Get config instance
|
|
183
|
-
*/
|
|
184
|
-
get: () => Config.getInstance(),
|
|
185
|
-
/**
|
|
186
|
-
* Quick environment checks
|
|
187
|
-
*/
|
|
188
|
-
isDev: () => config().app.isDevelopment,
|
|
189
|
-
isProd: () => config().app.isProduction,
|
|
190
|
-
isTest: () => config().app.isTest,
|
|
191
|
-
isDXT: () => config().app.isDXT,
|
|
192
|
-
isCI: () => config().app.isCI,
|
|
193
|
-
/**
|
|
194
|
-
* Quick feature flags
|
|
195
|
-
*/
|
|
196
|
-
shouldDebug: () => Config.getInstance().shouldDebug(),
|
|
197
|
-
shouldUseCache: () => Config.getInstance().shouldUseCache(),
|
|
198
|
-
shouldLogInfo: () => Config.getInstance().shouldLogInfo(),
|
|
199
|
-
hasWordPressConfig: () => Config.getInstance().hasWordPressConfig(),
|
|
200
|
-
/**
|
|
201
|
-
* Get timeout for different operation types
|
|
202
|
-
*/
|
|
203
|
-
getTimeout: (type = "operation") => {
|
|
204
|
-
const instance = Config.getInstance();
|
|
205
|
-
switch (type) {
|
|
206
|
-
case "upload":
|
|
207
|
-
return instance.getOperationTimeout() * 5; // 5x longer for uploads
|
|
208
|
-
case "test":
|
|
209
|
-
return config().app.isCI ? 30000 : 10000;
|
|
210
|
-
default:
|
|
211
|
-
return instance.getOperationTimeout();
|
|
212
|
-
}
|
|
213
|
-
},
|
|
214
|
-
};
|
|
215
|
-
//# sourceMappingURL=Config.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Config.js","sourceRoot":"","sources":["../../../src/config/Config.ts"],"names":[],"mappings":"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"}
|