mcp-wordpress 2.6.4 → 2.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cache/CacheInvalidation.d.ts +25 -6
- package/dist/cache/CacheInvalidation.d.ts.map +1 -1
- package/dist/cache/CacheInvalidation.js +168 -16
- package/dist/cache/CacheInvalidation.js.map +1 -1
- package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
- package/dist/cache/HttpCacheWrapper.js +3 -4
- package/dist/cache/HttpCacheWrapper.js.map +1 -1
- package/dist/cache/SEOCacheManager.d.ts +150 -0
- package/dist/cache/SEOCacheManager.d.ts.map +1 -0
- package/dist/cache/SEOCacheManager.js +275 -0
- package/dist/cache/SEOCacheManager.js.map +1 -0
- package/dist/client/SEOWordPressClient.d.ts +164 -0
- package/dist/client/SEOWordPressClient.d.ts.map +1 -0
- package/dist/client/SEOWordPressClient.js +674 -0
- package/dist/client/SEOWordPressClient.js.map +1 -0
- package/dist/client/api.d.ts.map +1 -1
- package/dist/client/api.js +50 -20
- package/dist/client/api.js.map +1 -1
- package/dist/client/auth.js +19 -19
- package/dist/client/auth.js.map +1 -1
- package/dist/client/index.d.ts +11 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +14 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/managers/AuthManager.d.ts +39 -0
- package/dist/client/managers/AuthManager.d.ts.map +1 -0
- package/dist/client/managers/AuthManager.js +142 -0
- package/dist/client/managers/AuthManager.js.map +1 -0
- package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
- package/dist/client/managers/AuthenticationManager.js +10 -9
- package/dist/client/managers/AuthenticationManager.js.map +1 -1
- package/dist/client/managers/BaseManager.d.ts.map +1 -1
- package/dist/client/managers/BaseManager.js +12 -0
- package/dist/client/managers/BaseManager.js.map +1 -1
- package/dist/client/managers/ComposedAuthenticationManager.d.ts +94 -0
- package/dist/client/managers/ComposedAuthenticationManager.d.ts.map +1 -0
- package/dist/client/managers/ComposedAuthenticationManager.js +340 -0
- package/dist/client/managers/ComposedAuthenticationManager.js.map +1 -0
- package/dist/client/managers/ComposedManagerFactory.d.ts +104 -0
- package/dist/client/managers/ComposedManagerFactory.d.ts.map +1 -0
- package/dist/client/managers/ComposedManagerFactory.js +180 -0
- package/dist/client/managers/ComposedManagerFactory.js.map +1 -0
- package/dist/client/managers/ComposedRequestManager.d.ts +82 -0
- package/dist/client/managers/ComposedRequestManager.d.ts.map +1 -0
- package/dist/client/managers/ComposedRequestManager.js +260 -0
- package/dist/client/managers/ComposedRequestManager.js.map +1 -0
- package/dist/client/managers/JWTAuthImplementation.d.ts +86 -0
- package/dist/client/managers/JWTAuthImplementation.d.ts.map +1 -0
- package/dist/client/managers/JWTAuthImplementation.js +240 -0
- package/dist/client/managers/JWTAuthImplementation.js.map +1 -0
- package/dist/client/managers/ManagersIndex.d.ts +6 -0
- package/dist/client/managers/ManagersIndex.d.ts.map +1 -0
- package/dist/client/managers/ManagersIndex.js +6 -0
- package/dist/client/managers/ManagersIndex.js.map +1 -0
- package/dist/client/managers/RequestManager.d.ts.map +1 -1
- package/dist/client/managers/RequestManager.js +5 -3
- package/dist/client/managers/RequestManager.js.map +1 -1
- package/dist/client/managers/composed/MigrationAdapter.d.ts +80 -0
- package/dist/client/managers/composed/MigrationAdapter.d.ts.map +1 -0
- package/dist/client/managers/composed/MigrationAdapter.js +214 -0
- package/dist/client/managers/composed/MigrationAdapter.js.map +1 -0
- package/dist/client/managers/composed/index.d.ts +23 -0
- package/dist/client/managers/composed/index.d.ts.map +1 -0
- package/dist/client/managers/composed/index.js +26 -0
- package/dist/client/managers/composed/index.js.map +1 -0
- package/dist/client/managers/implementations/ConfigurationProviderImpl.d.ts +27 -0
- package/dist/client/managers/implementations/ConfigurationProviderImpl.d.ts.map +1 -0
- package/dist/client/managers/implementations/ConfigurationProviderImpl.js +41 -0
- package/dist/client/managers/implementations/ConfigurationProviderImpl.js.map +1 -0
- package/dist/client/managers/implementations/ErrorHandlerImpl.d.ts +31 -0
- package/dist/client/managers/implementations/ErrorHandlerImpl.d.ts.map +1 -0
- package/dist/client/managers/implementations/ErrorHandlerImpl.js +73 -0
- package/dist/client/managers/implementations/ErrorHandlerImpl.js.map +1 -0
- package/dist/client/managers/implementations/ParameterValidatorImpl.d.ts +47 -0
- package/dist/client/managers/implementations/ParameterValidatorImpl.d.ts.map +1 -0
- package/dist/client/managers/implementations/ParameterValidatorImpl.js +141 -0
- package/dist/client/managers/implementations/ParameterValidatorImpl.js.map +1 -0
- package/dist/client/managers/interfaces/ManagerInterfaces.d.ts +147 -0
- package/dist/client/managers/interfaces/ManagerInterfaces.d.ts.map +1 -0
- package/dist/client/managers/interfaces/ManagerInterfaces.js +6 -0
- package/dist/client/managers/interfaces/ManagerInterfaces.js.map +1 -0
- package/dist/config/Config.d.ts +30 -0
- package/dist/config/Config.d.ts.map +1 -1
- package/dist/config/Config.js +30 -0
- package/dist/config/Config.js.map +1 -1
- package/dist/config/ConfigurationSchema.d.ts +75 -198
- package/dist/config/ConfigurationSchema.d.ts.map +1 -1
- package/dist/config/ConfigurationSchema.js +17 -17
- package/dist/config/ConfigurationSchema.js.map +1 -1
- package/dist/config/ServerConfiguration.d.ts +2 -2
- package/dist/config/ServerConfiguration.d.ts.map +1 -1
- package/dist/config/ServerConfiguration.js +15 -13
- package/dist/config/ServerConfiguration.js.map +1 -1
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +11 -0
- package/dist/config/index.js.map +1 -0
- package/dist/docs/DocumentationGenerator.js +2 -2
- package/dist/docs/DocumentationGenerator.js.map +1 -1
- package/dist/dxt-entry.js +3 -3
- package/dist/dxt-entry.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -37
- package/dist/index.js.map +1 -1
- package/dist/performance/MetricsCollector.d.ts.map +1 -1
- package/dist/performance/MetricsCollector.js +5 -4
- package/dist/performance/MetricsCollector.js.map +1 -1
- package/dist/security/AISecurityScanner.js +7 -7
- package/dist/security/AISecurityScanner.js.map +1 -1
- package/dist/security/AutomatedRemediation.d.ts.map +1 -1
- package/dist/security/AutomatedRemediation.js +11 -11
- package/dist/security/AutomatedRemediation.js.map +1 -1
- package/dist/security/InputValidator.d.ts +50 -126
- package/dist/security/InputValidator.d.ts.map +1 -1
- package/dist/security/InputValidator.js +9 -9
- package/dist/security/InputValidator.js.map +1 -1
- package/dist/security/SecurityCIPipeline.d.ts +47 -5
- package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
- package/dist/security/SecurityCIPipeline.js +390 -49
- package/dist/security/SecurityCIPipeline.js.map +1 -1
- package/dist/security/SecurityConfigManager.js +10 -10
- package/dist/security/SecurityConfigManager.js.map +1 -1
- package/dist/security/SecurityMonitoring.js +4 -4
- package/dist/security/SecurityMonitoring.js.map +1 -1
- package/dist/security/SecurityReviewer.d.ts.map +1 -1
- package/dist/security/SecurityReviewer.js +13 -6
- package/dist/security/SecurityReviewer.js.map +1 -1
- package/dist/security/index.js +3 -3
- package/dist/security/index.js.map +1 -1
- package/dist/server/ConnectionTester.js +5 -5
- package/dist/server/ConnectionTester.js.map +1 -1
- package/dist/server/ToolRegistry.d.ts +2 -2
- package/dist/server/ToolRegistry.d.ts.map +1 -1
- package/dist/server/ToolRegistry.js +7 -6
- package/dist/server/ToolRegistry.js.map +1 -1
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +9 -0
- package/dist/server/index.js.map +1 -0
- package/dist/tools/BaseToolManager.d.ts.map +1 -1
- package/dist/tools/BaseToolManager.js +11 -11
- package/dist/tools/BaseToolManager.js.map +1 -1
- package/dist/tools/auth.d.ts.map +1 -1
- package/dist/tools/auth.js +7 -7
- package/dist/tools/auth.js.map +1 -1
- package/dist/tools/comments.d.ts.map +1 -1
- package/dist/tools/comments.js +14 -14
- package/dist/tools/comments.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/media.d.ts.map +1 -1
- package/dist/tools/media.js +14 -11
- package/dist/tools/media.js.map +1 -1
- package/dist/tools/pages.d.ts.map +1 -1
- package/dist/tools/pages.js +12 -12
- package/dist/tools/pages.js.map +1 -1
- package/dist/tools/performance.d.ts.map +1 -1
- package/dist/tools/performance.js +13 -11
- package/dist/tools/performance.js.map +1 -1
- package/dist/tools/posts/PostHandlers.d.ts.map +1 -1
- package/dist/tools/posts/PostHandlers.js +16 -16
- package/dist/tools/posts/PostHandlers.js.map +1 -1
- package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -1
- package/dist/tools/posts/index.d.ts.map +1 -1
- package/dist/tools/seo/BulkOperations.d.ts +113 -0
- package/dist/tools/seo/BulkOperations.d.ts.map +1 -0
- package/dist/tools/seo/BulkOperations.js +398 -0
- package/dist/tools/seo/BulkOperations.js.map +1 -0
- package/dist/tools/seo/SEOHandlers.d.ts +55 -0
- package/dist/tools/seo/SEOHandlers.d.ts.map +1 -0
- package/dist/tools/seo/SEOHandlers.js +255 -0
- package/dist/tools/seo/SEOHandlers.js.map +1 -0
- package/dist/tools/seo/SEOToolDefinitions.d.ts +59 -0
- package/dist/tools/seo/SEOToolDefinitions.d.ts.map +1 -0
- package/dist/tools/seo/SEOToolDefinitions.js +385 -0
- package/dist/tools/seo/SEOToolDefinitions.js.map +1 -0
- package/dist/tools/seo/SEOTools.d.ts +203 -0
- package/dist/tools/seo/SEOTools.d.ts.map +1 -0
- package/dist/tools/seo/SEOTools.js +708 -0
- package/dist/tools/seo/SEOTools.js.map +1 -0
- package/dist/tools/seo/analyzers/ContentAnalyzer.d.ts +94 -0
- package/dist/tools/seo/analyzers/ContentAnalyzer.d.ts.map +1 -0
- package/dist/tools/seo/analyzers/ContentAnalyzer.js +402 -0
- package/dist/tools/seo/analyzers/ContentAnalyzer.js.map +1 -0
- package/dist/tools/seo/auditors/SiteAuditor.d.ts +121 -0
- package/dist/tools/seo/auditors/SiteAuditor.d.ts.map +1 -0
- package/dist/tools/seo/auditors/SiteAuditor.js +600 -0
- package/dist/tools/seo/auditors/SiteAuditor.js.map +1 -0
- package/dist/tools/seo/generators/MetaGenerator.d.ts +128 -0
- package/dist/tools/seo/generators/MetaGenerator.d.ts.map +1 -0
- package/dist/tools/seo/generators/MetaGenerator.js +547 -0
- package/dist/tools/seo/generators/MetaGenerator.js.map +1 -0
- package/dist/tools/seo/generators/SchemaGenerator.d.ts +204 -0
- package/dist/tools/seo/generators/SchemaGenerator.d.ts.map +1 -0
- package/dist/tools/seo/generators/SchemaGenerator.js +670 -0
- package/dist/tools/seo/generators/SchemaGenerator.js.map +1 -0
- package/dist/tools/seo/index.d.ts +17 -0
- package/dist/tools/seo/index.d.ts.map +1 -0
- package/dist/tools/seo/index.js +18 -0
- package/dist/tools/seo/index.js.map +1 -0
- package/dist/tools/seo/optimizers/InternalLinkingSuggester.d.ts +186 -0
- package/dist/tools/seo/optimizers/InternalLinkingSuggester.d.ts.map +1 -0
- package/dist/tools/seo/optimizers/InternalLinkingSuggester.js +683 -0
- package/dist/tools/seo/optimizers/InternalLinkingSuggester.js.map +1 -0
- package/dist/tools/site.d.ts.map +1 -1
- package/dist/tools/site.js +12 -12
- package/dist/tools/site.js.map +1 -1
- package/dist/tools/taxonomies.d.ts.map +1 -1
- package/dist/tools/taxonomies.js +20 -20
- package/dist/tools/taxonomies.js.map +1 -1
- package/dist/tools/users.d.ts.map +1 -1
- package/dist/tools/users.js +12 -12
- package/dist/tools/users.js.map +1 -1
- package/dist/types/client.d.ts +8 -6
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/client.js.map +1 -1
- package/dist/types/seo.d.ts +473 -0
- package/dist/types/seo.d.ts.map +1 -0
- package/dist/types/seo.js +94 -0
- package/dist/types/seo.js.map +1 -0
- package/dist/utils/enhancedError.js +1 -1
- package/dist/utils/enhancedError.js.map +1 -1
- package/dist/utils/error.d.ts.map +1 -1
- package/dist/utils/error.js +0 -1
- package/dist/utils/error.js.map +1 -1
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.js +3 -3
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/toolWrapper.d.ts +2 -2
- package/dist/utils/toolWrapper.js +8 -8
- package/dist/utils/toolWrapper.js.map +1 -1
- package/dist/utils/validation/core.d.ts.map +1 -1
- package/dist/utils/validation/core.js.map +1 -1
- package/dist/utils/validation/index.d.ts.map +1 -1
- package/dist/utils/validation/index.js.map +1 -1
- package/dist/utils/validation/network.js +3 -3
- package/dist/utils/validation/network.js.map +1 -1
- package/dist/utils/validation/rateLimit.js.map +1 -1
- package/dist/utils/validation/security.js.map +1 -1
- package/dist/utils/validation/wordpress.js.map +1 -1
- package/dist/utils/version.d.ts +144 -0
- package/dist/utils/version.d.ts.map +1 -0
- package/dist/utils/version.js +318 -0
- package/dist/utils/version.js.map +1 -0
- package/package.json +21 -55
- package/src/cache/CacheInvalidation.ts +183 -20
- package/src/cache/HttpCacheWrapper.ts +8 -5
- package/src/cache/SEOCacheManager.ts +330 -0
- package/src/cache/__tests__/CacheInvalidation.test.ts +6 -11
- package/src/cache/__tests__/CachedWordPressClient.test.ts +37 -62
- package/src/client/SEOWordPressClient.ts +876 -0
- package/src/client/api.ts +50 -21
- package/src/client/auth.ts +19 -19
- package/src/client/index.ts +16 -0
- package/src/client/managers/AuthManager.ts +175 -0
- package/src/client/managers/AuthenticationManager.ts +16 -14
- package/src/client/managers/BaseManager.ts +24 -5
- package/src/client/managers/ComposedAuthenticationManager.ts +409 -0
- package/src/client/managers/ComposedManagerFactory.ts +231 -0
- package/src/client/managers/ComposedRequestManager.ts +336 -0
- package/src/client/managers/JWTAuthImplementation.ts +326 -0
- package/src/client/managers/ManagersIndex.ts +6 -0
- package/src/client/managers/RequestManager.ts +9 -7
- package/src/client/managers/composed/MigrationAdapter.ts +263 -0
- package/src/client/managers/composed/index.ts +47 -0
- package/src/client/managers/implementations/ConfigurationProviderImpl.ts +52 -0
- package/src/client/managers/implementations/ErrorHandlerImpl.ts +102 -0
- package/src/client/managers/implementations/ParameterValidatorImpl.ts +221 -0
- package/src/client/managers/interfaces/ManagerInterfaces.ts +171 -0
- package/src/config/Config.ts +63 -0
- package/src/config/ConfigurationSchema.ts +17 -17
- package/src/config/ServerConfiguration.ts +18 -16
- package/src/config/index.ts +13 -0
- package/src/docs/DocumentationGenerator.ts +2 -2
- package/src/dxt-entry.ts +3 -3
- package/src/index.ts +43 -43
- package/src/performance/MetricsCollector.ts +15 -11
- package/src/security/AISecurityScanner.ts +7 -7
- package/src/security/AutomatedRemediation.ts +13 -11
- package/src/security/InputValidator.ts +10 -9
- package/src/security/SecurityCIPipeline.ts +494 -56
- package/src/security/SecurityConfigManager.ts +10 -10
- package/src/security/SecurityMonitoring.ts +5 -5
- package/src/security/SecurityReviewer.ts +13 -6
- package/src/security/index.ts +3 -3
- package/src/server/ConnectionTester.ts +5 -5
- package/src/server/ToolRegistry.ts +9 -8
- package/src/server/index.ts +10 -0
- package/src/tools/BaseToolManager.ts +55 -83
- package/src/tools/auth.ts +21 -12
- package/src/tools/comments.ts +23 -19
- package/src/tools/index.ts +1 -0
- package/src/tools/media.ts +23 -20
- package/src/tools/pages.ts +20 -13
- package/src/tools/performance.ts +101 -32
- package/src/tools/posts/PostHandlers.ts +23 -23
- package/src/tools/posts/PostToolDefinitions.ts +1 -1
- package/src/tools/posts/index.ts +2 -2
- package/src/tools/seo/BulkOperations.ts +557 -0
- package/src/tools/seo/SEOHandlers.ts +296 -0
- package/src/tools/seo/SEOToolDefinitions.ts +402 -0
- package/src/tools/seo/SEOTools.ts +871 -0
- package/src/tools/seo/analyzers/ContentAnalyzer.ts +493 -0
- package/src/tools/seo/auditors/SiteAuditor.ts +787 -0
- package/src/tools/seo/generators/MetaGenerator.ts +694 -0
- package/src/tools/seo/generators/SchemaGenerator.ts +955 -0
- package/src/tools/seo/index.ts +47 -0
- package/src/tools/seo/optimizers/InternalLinkingSuggester.ts +934 -0
- package/src/tools/site.ts +27 -26
- package/src/tools/taxonomies.ts +29 -25
- package/src/tools/users.ts +20 -13
- package/src/types/client.ts +8 -6
- package/src/types/seo.ts +546 -0
- package/src/utils/enhancedError.ts +1 -1
- package/src/utils/error.ts +1 -2
- package/src/utils/index.ts +23 -0
- package/src/utils/logger.ts +3 -3
- package/src/utils/toolWrapper.ts +10 -10
- package/src/utils/validation/core.ts +2 -2
- package/src/utils/validation/index.ts +2 -2
- package/src/utils/validation/network.ts +5 -5
- package/src/utils/validation/rateLimit.ts +1 -1
- package/src/utils/validation/security.ts +1 -1
- package/src/utils/validation/wordpress.ts +1 -1
- package/src/utils/version.ts +402 -0
|
@@ -0,0 +1,340 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composed Authentication Manager
|
|
3
|
+
* Uses composition instead of inheritance for better flexibility and testability
|
|
4
|
+
*/
|
|
5
|
+
import { AuthenticationError } from "../../types/client.js";
|
|
6
|
+
import { AUTH_METHODS } from "../../types/wordpress.js";
|
|
7
|
+
import { debug } from "../../utils/debug.js";
|
|
8
|
+
import { ConfigurationProviderImpl } from "./implementations/ConfigurationProviderImpl.js";
|
|
9
|
+
import { ErrorHandlerImpl } from "./implementations/ErrorHandlerImpl.js";
|
|
10
|
+
import { ParameterValidatorImpl } from "./implementations/ParameterValidatorImpl.js";
|
|
11
|
+
export class ComposedAuthenticationManager {
|
|
12
|
+
dependencies;
|
|
13
|
+
isAuth = false;
|
|
14
|
+
authToken = null;
|
|
15
|
+
tokenExpiry = null;
|
|
16
|
+
lastAuthAttempt = null;
|
|
17
|
+
authMethod;
|
|
18
|
+
constructor(dependencies) {
|
|
19
|
+
this.dependencies = dependencies;
|
|
20
|
+
this.authMethod = this.getAuthMethodFromConfig();
|
|
21
|
+
this.validateAuthConfiguration();
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Factory method to create ComposedAuthenticationManager with default implementations
|
|
25
|
+
*/
|
|
26
|
+
static create(clientConfig) {
|
|
27
|
+
const configProvider = new ConfigurationProviderImpl(clientConfig);
|
|
28
|
+
const errorHandler = new ErrorHandlerImpl(configProvider);
|
|
29
|
+
const validator = new ParameterValidatorImpl();
|
|
30
|
+
return new ComposedAuthenticationManager({
|
|
31
|
+
configProvider,
|
|
32
|
+
errorHandler,
|
|
33
|
+
validator,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Authenticate with the configured method
|
|
38
|
+
*/
|
|
39
|
+
async authenticate() {
|
|
40
|
+
try {
|
|
41
|
+
this.lastAuthAttempt = new Date();
|
|
42
|
+
switch (this.authMethod) {
|
|
43
|
+
case "app-password":
|
|
44
|
+
return await this.authenticateAppPassword();
|
|
45
|
+
case "jwt":
|
|
46
|
+
return await this.authenticateJWT();
|
|
47
|
+
case "basic":
|
|
48
|
+
return await this.authenticateBasic();
|
|
49
|
+
case "api-key":
|
|
50
|
+
return await this.authenticateApiKey();
|
|
51
|
+
default:
|
|
52
|
+
throw new AuthenticationError(`Unsupported authentication method: ${this.authMethod}`, this.authMethod);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
this.isAuth = false;
|
|
57
|
+
this.authToken = null;
|
|
58
|
+
this.dependencies.errorHandler.handleError(error, "authentication");
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Check if currently authenticated
|
|
63
|
+
*/
|
|
64
|
+
isAuthenticated() {
|
|
65
|
+
if (!this.isAuth) {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
// Check token expiry for JWT
|
|
69
|
+
if (this.authMethod === "jwt" && this.tokenExpiry) {
|
|
70
|
+
if (new Date() > this.tokenExpiry) {
|
|
71
|
+
this.isAuth = false;
|
|
72
|
+
this.authToken = null;
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get authentication headers for requests
|
|
80
|
+
*/
|
|
81
|
+
getAuthHeaders() {
|
|
82
|
+
const headers = {};
|
|
83
|
+
switch (this.authMethod) {
|
|
84
|
+
case "app-password":
|
|
85
|
+
case "basic":
|
|
86
|
+
headers.Authorization = this.getBasicAuthHeader();
|
|
87
|
+
break;
|
|
88
|
+
case "jwt":
|
|
89
|
+
if (this.authToken) {
|
|
90
|
+
headers.Authorization = `Bearer ${this.authToken}`;
|
|
91
|
+
}
|
|
92
|
+
break;
|
|
93
|
+
case "api-key":
|
|
94
|
+
const apiKey = this.getApiKeyFromConfig();
|
|
95
|
+
if (apiKey) {
|
|
96
|
+
headers["X-API-Key"] = apiKey;
|
|
97
|
+
}
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
return headers;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Handle authentication failure
|
|
104
|
+
*/
|
|
105
|
+
async handleAuthFailure(error) {
|
|
106
|
+
debug.log("Handling authentication failure", { error: String(error), method: this.authMethod });
|
|
107
|
+
this.isAuth = false;
|
|
108
|
+
this.authToken = null;
|
|
109
|
+
// For JWT, try to refresh token
|
|
110
|
+
if (this.authMethod === "jwt") {
|
|
111
|
+
try {
|
|
112
|
+
return await this.refreshJWTToken();
|
|
113
|
+
}
|
|
114
|
+
catch (_refreshError) {
|
|
115
|
+
// If refresh fails, try full re-authentication
|
|
116
|
+
return await this.authenticate();
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
// For other methods, try full re-authentication
|
|
120
|
+
return await this.authenticate();
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Get authentication status
|
|
124
|
+
*/
|
|
125
|
+
getAuthStatus() {
|
|
126
|
+
return {
|
|
127
|
+
isAuthenticated: this.isAuthenticated(),
|
|
128
|
+
method: this.authMethod,
|
|
129
|
+
lastAuthAttempt: this.lastAuthAttempt,
|
|
130
|
+
tokenExpiry: this.tokenExpiry,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* App Password authentication
|
|
135
|
+
*/
|
|
136
|
+
async authenticateAppPassword() {
|
|
137
|
+
const credentials = this.getAppPasswordCredentials();
|
|
138
|
+
// App passwords are stateless - just validate credentials format
|
|
139
|
+
this.dependencies.validator.validateString(credentials.username, "username", { required: true });
|
|
140
|
+
this.dependencies.validator.validateString(credentials.appPassword, "appPassword", { required: true });
|
|
141
|
+
this.isAuth = true;
|
|
142
|
+
debug.log("App password authentication configured");
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* JWT authentication
|
|
147
|
+
*/
|
|
148
|
+
async authenticateJWT() {
|
|
149
|
+
const credentials = this.getJWTCredentials();
|
|
150
|
+
const tokenEndpoint = "/jwt-auth/v1/token";
|
|
151
|
+
try {
|
|
152
|
+
const response = await fetch(`${this.dependencies.configProvider.config.baseUrl}/wp-json${tokenEndpoint}`, {
|
|
153
|
+
method: "POST",
|
|
154
|
+
headers: {
|
|
155
|
+
"Content-Type": "application/json",
|
|
156
|
+
},
|
|
157
|
+
body: JSON.stringify({
|
|
158
|
+
username: credentials.username,
|
|
159
|
+
password: credentials.password,
|
|
160
|
+
}),
|
|
161
|
+
});
|
|
162
|
+
if (!response.ok) {
|
|
163
|
+
throw new AuthenticationError(`JWT authentication failed: ${response.statusText}`, "jwt");
|
|
164
|
+
}
|
|
165
|
+
const data = (await response.json());
|
|
166
|
+
if (!data.token) {
|
|
167
|
+
throw new AuthenticationError("No token received from JWT authentication", "jwt");
|
|
168
|
+
}
|
|
169
|
+
this.authToken = data.token;
|
|
170
|
+
this.isAuth = true;
|
|
171
|
+
// Set token expiry (default to 24 hours if not provided)
|
|
172
|
+
const expiresIn = data.expires_in || 86400; // 24 hours in seconds
|
|
173
|
+
this.tokenExpiry = new Date(Date.now() + expiresIn * 1000);
|
|
174
|
+
debug.log("JWT authentication successful", {
|
|
175
|
+
expiresIn,
|
|
176
|
+
expiry: this.tokenExpiry.toISOString(),
|
|
177
|
+
});
|
|
178
|
+
return true;
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
throw new AuthenticationError(`JWT authentication failed: ${String(error)}`, "jwt");
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Basic authentication
|
|
186
|
+
*/
|
|
187
|
+
async authenticateBasic() {
|
|
188
|
+
const credentials = this.getBasicCredentials();
|
|
189
|
+
this.dependencies.validator.validateString(credentials.username, "username", { required: true });
|
|
190
|
+
this.dependencies.validator.validateString(credentials.password, "password", { required: true });
|
|
191
|
+
this.isAuth = true;
|
|
192
|
+
debug.log("Basic authentication configured");
|
|
193
|
+
return true;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* API Key authentication
|
|
197
|
+
*/
|
|
198
|
+
async authenticateApiKey() {
|
|
199
|
+
const apiKey = this.getApiKeyFromConfig();
|
|
200
|
+
this.dependencies.validator.validateString(apiKey, "apiKey", { required: true });
|
|
201
|
+
this.isAuth = true;
|
|
202
|
+
debug.log("API key authentication configured");
|
|
203
|
+
return true;
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Refresh JWT token
|
|
207
|
+
*/
|
|
208
|
+
async refreshJWTToken() {
|
|
209
|
+
if (!this.authToken) {
|
|
210
|
+
throw new AuthenticationError("No token to refresh", "jwt");
|
|
211
|
+
}
|
|
212
|
+
const refreshEndpoint = "/jwt-auth/v1/token/validate";
|
|
213
|
+
try {
|
|
214
|
+
const response = await fetch(`${this.dependencies.configProvider.config.baseUrl}/wp-json${refreshEndpoint}`, {
|
|
215
|
+
method: "POST",
|
|
216
|
+
headers: {
|
|
217
|
+
Authorization: `Bearer ${this.authToken}`,
|
|
218
|
+
"Content-Type": "application/json",
|
|
219
|
+
},
|
|
220
|
+
});
|
|
221
|
+
if (response.ok) {
|
|
222
|
+
// Token is still valid
|
|
223
|
+
debug.log("JWT token validated successfully");
|
|
224
|
+
return true;
|
|
225
|
+
}
|
|
226
|
+
// Token invalid, need to re-authenticate
|
|
227
|
+
this.authToken = null;
|
|
228
|
+
return await this.authenticateJWT();
|
|
229
|
+
}
|
|
230
|
+
catch (error) {
|
|
231
|
+
throw new AuthenticationError(`JWT token refresh failed: ${String(error)}`, "jwt");
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Get Basic auth header
|
|
236
|
+
*/
|
|
237
|
+
getBasicAuthHeader() {
|
|
238
|
+
let credentials;
|
|
239
|
+
if (this.authMethod === "app-password") {
|
|
240
|
+
credentials = this.getAppPasswordCredentials();
|
|
241
|
+
const auth = `${credentials.username}:${credentials.appPassword}`;
|
|
242
|
+
return `Basic ${Buffer.from(auth).toString("base64")}`;
|
|
243
|
+
}
|
|
244
|
+
else {
|
|
245
|
+
credentials = this.getBasicCredentials();
|
|
246
|
+
const auth = `${credentials.username}:${credentials.password}`;
|
|
247
|
+
return `Basic ${Buffer.from(auth).toString("base64")}`;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Extract auth method from configuration
|
|
252
|
+
*/
|
|
253
|
+
getAuthMethodFromConfig() {
|
|
254
|
+
const authConfig = this.dependencies.configProvider.config.auth;
|
|
255
|
+
if (authConfig.method && Object.values(AUTH_METHODS).includes(authConfig.method)) {
|
|
256
|
+
return authConfig.method;
|
|
257
|
+
}
|
|
258
|
+
// Auto-detect based on available credentials
|
|
259
|
+
if (authConfig.appPassword)
|
|
260
|
+
return "app-password";
|
|
261
|
+
if (authConfig.secret || authConfig.password)
|
|
262
|
+
return "jwt";
|
|
263
|
+
if (authConfig.apiKey)
|
|
264
|
+
return "api-key";
|
|
265
|
+
return "basic"; // fallback
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Validate authentication configuration
|
|
269
|
+
*/
|
|
270
|
+
validateAuthConfiguration() {
|
|
271
|
+
const authConfig = this.dependencies.configProvider.config.auth;
|
|
272
|
+
if (!authConfig) {
|
|
273
|
+
throw new AuthenticationError("No authentication configuration provided", this.authMethod);
|
|
274
|
+
}
|
|
275
|
+
switch (this.authMethod) {
|
|
276
|
+
case "app-password":
|
|
277
|
+
if (!authConfig.username || !authConfig.appPassword) {
|
|
278
|
+
throw new AuthenticationError("App password authentication requires username and appPassword", this.authMethod);
|
|
279
|
+
}
|
|
280
|
+
break;
|
|
281
|
+
case "jwt":
|
|
282
|
+
if (!authConfig.username || !authConfig.password) {
|
|
283
|
+
throw new AuthenticationError("JWT authentication requires username and password", this.authMethod);
|
|
284
|
+
}
|
|
285
|
+
break;
|
|
286
|
+
case "basic":
|
|
287
|
+
if (!authConfig.username || !authConfig.password) {
|
|
288
|
+
throw new AuthenticationError("Basic authentication requires username and password", this.authMethod);
|
|
289
|
+
}
|
|
290
|
+
break;
|
|
291
|
+
case "api-key":
|
|
292
|
+
if (!authConfig.apiKey) {
|
|
293
|
+
throw new AuthenticationError("API key authentication requires apiKey", this.authMethod);
|
|
294
|
+
}
|
|
295
|
+
break;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Get app password credentials from config
|
|
300
|
+
*/
|
|
301
|
+
getAppPasswordCredentials() {
|
|
302
|
+
const authConfig = this.dependencies.configProvider.config.auth;
|
|
303
|
+
return {
|
|
304
|
+
username: authConfig.username,
|
|
305
|
+
appPassword: authConfig.appPassword,
|
|
306
|
+
};
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Get JWT credentials from config
|
|
310
|
+
*/
|
|
311
|
+
getJWTCredentials() {
|
|
312
|
+
const authConfig = this.dependencies.configProvider.config.auth;
|
|
313
|
+
const credentials = {
|
|
314
|
+
username: authConfig.username,
|
|
315
|
+
password: authConfig.password,
|
|
316
|
+
};
|
|
317
|
+
if (authConfig.secret) {
|
|
318
|
+
credentials.jwtSecret = authConfig.secret;
|
|
319
|
+
}
|
|
320
|
+
return credentials;
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Get basic credentials from config
|
|
324
|
+
*/
|
|
325
|
+
getBasicCredentials() {
|
|
326
|
+
const authConfig = this.dependencies.configProvider.config.auth;
|
|
327
|
+
return {
|
|
328
|
+
username: authConfig.username,
|
|
329
|
+
password: authConfig.password,
|
|
330
|
+
};
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Get API key from config
|
|
334
|
+
*/
|
|
335
|
+
getApiKeyFromConfig() {
|
|
336
|
+
const authConfig = this.dependencies.configProvider.config.auth;
|
|
337
|
+
return authConfig.apiKey || "";
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
//# sourceMappingURL=ComposedAuthenticationManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComposedAuthenticationManager.js","sourceRoot":"","sources":["../../../src/client/managers/ComposedAuthenticationManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composed Manager Factory
|
|
3
|
+
* Factory for creating managers using composition instead of inheritance
|
|
4
|
+
*/
|
|
5
|
+
import type { WordPressClientConfig } from "../../types/client.js";
|
|
6
|
+
import type { ManagerFactory, ConfigurationProvider, ErrorHandler, ParameterValidator, AuthenticationProvider, RequestHandler, ManagerCompositionConfig } from "./interfaces/ManagerInterfaces.js";
|
|
7
|
+
export declare class ComposedManagerFactory implements ManagerFactory {
|
|
8
|
+
/**
|
|
9
|
+
* Create configuration provider
|
|
10
|
+
*/
|
|
11
|
+
createConfigurationProvider(config: WordPressClientConfig): ConfigurationProvider;
|
|
12
|
+
/**
|
|
13
|
+
* Create error handler
|
|
14
|
+
*/
|
|
15
|
+
createErrorHandler(config: WordPressClientConfig): ErrorHandler;
|
|
16
|
+
/**
|
|
17
|
+
* Create parameter validator
|
|
18
|
+
*/
|
|
19
|
+
createParameterValidator(): ParameterValidator;
|
|
20
|
+
/**
|
|
21
|
+
* Create authentication provider
|
|
22
|
+
*/
|
|
23
|
+
createAuthenticationProvider(config: WordPressClientConfig): AuthenticationProvider;
|
|
24
|
+
/**
|
|
25
|
+
* Create request handler
|
|
26
|
+
*/
|
|
27
|
+
createRequestHandler(config: WordPressClientConfig, authProvider: AuthenticationProvider): RequestHandler;
|
|
28
|
+
/**
|
|
29
|
+
* Create a complete composed client with all managers
|
|
30
|
+
*/
|
|
31
|
+
createComposedClient(config: ManagerCompositionConfig): Promise<ComposedWordPressClient>;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Complete Composed WordPress Client
|
|
35
|
+
* Demonstrates how to combine all composed managers
|
|
36
|
+
*/
|
|
37
|
+
export interface ComposedWordPressClientDependencies {
|
|
38
|
+
configProvider: ConfigurationProvider;
|
|
39
|
+
errorHandler: ErrorHandler;
|
|
40
|
+
validator: ParameterValidator;
|
|
41
|
+
authProvider: AuthenticationProvider;
|
|
42
|
+
requestHandler: RequestHandler;
|
|
43
|
+
}
|
|
44
|
+
export declare class ComposedWordPressClient {
|
|
45
|
+
private dependencies;
|
|
46
|
+
private initialized;
|
|
47
|
+
constructor(dependencies: ComposedWordPressClientDependencies);
|
|
48
|
+
/**
|
|
49
|
+
* Initialize the client
|
|
50
|
+
*/
|
|
51
|
+
initialize(): Promise<void>;
|
|
52
|
+
/**
|
|
53
|
+
* Make HTTP requests (delegates to request manager)
|
|
54
|
+
*/
|
|
55
|
+
request<T>(method: string, endpoint: string, data?: unknown, options?: unknown): Promise<T>;
|
|
56
|
+
/**
|
|
57
|
+
* Get client configuration
|
|
58
|
+
*/
|
|
59
|
+
get config(): WordPressClientConfig;
|
|
60
|
+
/**
|
|
61
|
+
* Check authentication status
|
|
62
|
+
*/
|
|
63
|
+
isAuthenticated(): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Get request statistics
|
|
66
|
+
*/
|
|
67
|
+
getStats(): unknown;
|
|
68
|
+
/**
|
|
69
|
+
* WordPress-specific convenience methods
|
|
70
|
+
*/
|
|
71
|
+
/**
|
|
72
|
+
* Get posts
|
|
73
|
+
*/
|
|
74
|
+
getPosts(params?: unknown): Promise<unknown[]>;
|
|
75
|
+
/**
|
|
76
|
+
* Get single post
|
|
77
|
+
*/
|
|
78
|
+
getPost(id: number): Promise<unknown>;
|
|
79
|
+
/**
|
|
80
|
+
* Create post
|
|
81
|
+
*/
|
|
82
|
+
createPost(postData: unknown): Promise<unknown>;
|
|
83
|
+
/**
|
|
84
|
+
* Update post
|
|
85
|
+
*/
|
|
86
|
+
updatePost(id: number, postData: unknown): Promise<unknown>;
|
|
87
|
+
/**
|
|
88
|
+
* Delete post
|
|
89
|
+
*/
|
|
90
|
+
deletePost(id: number, force?: boolean): Promise<unknown>;
|
|
91
|
+
/**
|
|
92
|
+
* Cleanup resources
|
|
93
|
+
*/
|
|
94
|
+
dispose(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Ensure client is initialized
|
|
97
|
+
*/
|
|
98
|
+
private ensureInitialized;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Convenience factory function
|
|
102
|
+
*/
|
|
103
|
+
export declare function createComposedWordPressClient(config: WordPressClientConfig): Promise<ComposedWordPressClient>;
|
|
104
|
+
//# sourceMappingURL=ComposedManagerFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComposedManagerFactory.d.ts","sourceRoot":"","sources":["../../../src/client/managers/ComposedManagerFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,wBAAwB,EACzB,MAAM,mCAAmC,CAAC;AAQ3C,qBAAa,sBAAuB,YAAW,cAAc;IAC3D;;OAEG;IACH,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,qBAAqB;IAIjF;;OAEG;IACH,kBAAkB,CAAC,MAAM,EAAE,qBAAqB,GAAG,YAAY;IAK/D;;OAEG;IACH,wBAAwB,IAAI,kBAAkB;IAI9C;;OAEG;IACH,4BAA4B,CAAC,MAAM,EAAE,qBAAqB,GAAG,sBAAsB;IAInF;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,sBAAsB,GAAG,cAAc;IAIzG;;OAEG;IACG,oBAAoB,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;CAmB/F;AAED;;;GAGG;AACH,MAAM,WAAW,mCAAmC;IAClD,cAAc,EAAE,qBAAqB,CAAC;IACtC,YAAY,EAAE,YAAY,CAAC;IAC3B,SAAS,EAAE,kBAAkB,CAAC;IAC9B,YAAY,EAAE,sBAAsB,CAAC;IACrC,cAAc,EAAE,cAAc,CAAC;CAChC;AAED,qBAAa,uBAAuB;IAGtB,OAAO,CAAC,YAAY;IAFhC,OAAO,CAAC,WAAW,CAAkB;gBAEjB,YAAY,EAAE,mCAAmC;IAErE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IAKjG;;OAEG;IACH,IAAI,MAAM,IAAI,qBAAqB,CAElC;IAED;;OAEG;IACH,eAAe,IAAI,OAAO;IAI1B;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IAEH;;OAEG;IACG,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIpD;;OAEG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAK3C;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAKrD;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IAKjE;;OAEG;IACG,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,GAAE,OAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAMtE;;OAEG;IACH,OAAO,IAAI,IAAI;IAUf;;OAEG;IACH,OAAO,CAAC,iBAAiB;CAK1B;AAED;;GAEG;AACH,wBAAsB,6BAA6B,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAKnH"}
|
|
@@ -0,0 +1,180 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composed Manager Factory
|
|
3
|
+
* Factory for creating managers using composition instead of inheritance
|
|
4
|
+
*/
|
|
5
|
+
import { ConfigurationProviderImpl } from "./implementations/ConfigurationProviderImpl.js";
|
|
6
|
+
import { ErrorHandlerImpl } from "./implementations/ErrorHandlerImpl.js";
|
|
7
|
+
import { ParameterValidatorImpl } from "./implementations/ParameterValidatorImpl.js";
|
|
8
|
+
import { ComposedAuthenticationManager } from "./ComposedAuthenticationManager.js";
|
|
9
|
+
import { ComposedRequestManager } from "./ComposedRequestManager.js";
|
|
10
|
+
export class ComposedManagerFactory {
|
|
11
|
+
/**
|
|
12
|
+
* Create configuration provider
|
|
13
|
+
*/
|
|
14
|
+
createConfigurationProvider(config) {
|
|
15
|
+
return new ConfigurationProviderImpl(config);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Create error handler
|
|
19
|
+
*/
|
|
20
|
+
createErrorHandler(config) {
|
|
21
|
+
const configProvider = this.createConfigurationProvider(config);
|
|
22
|
+
return new ErrorHandlerImpl(configProvider);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Create parameter validator
|
|
26
|
+
*/
|
|
27
|
+
createParameterValidator() {
|
|
28
|
+
return new ParameterValidatorImpl();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Create authentication provider
|
|
32
|
+
*/
|
|
33
|
+
createAuthenticationProvider(config) {
|
|
34
|
+
return ComposedAuthenticationManager.create(config);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Create request handler
|
|
38
|
+
*/
|
|
39
|
+
createRequestHandler(config, authProvider) {
|
|
40
|
+
return ComposedRequestManager.create(config, authProvider);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Create a complete composed client with all managers
|
|
44
|
+
*/
|
|
45
|
+
async createComposedClient(config) {
|
|
46
|
+
const configProvider = this.createConfigurationProvider(config.clientConfig);
|
|
47
|
+
const errorHandler = config.customErrorHandler || this.createErrorHandler(config.clientConfig);
|
|
48
|
+
const validator = config.customValidator || this.createParameterValidator();
|
|
49
|
+
const authProvider = config.customAuthProvider || this.createAuthenticationProvider(config.clientConfig);
|
|
50
|
+
// Initialize authentication
|
|
51
|
+
await authProvider.authenticate();
|
|
52
|
+
const requestHandler = this.createRequestHandler(config.clientConfig, authProvider);
|
|
53
|
+
return new ComposedWordPressClient({
|
|
54
|
+
configProvider,
|
|
55
|
+
errorHandler,
|
|
56
|
+
validator,
|
|
57
|
+
authProvider,
|
|
58
|
+
requestHandler,
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
export class ComposedWordPressClient {
|
|
63
|
+
dependencies;
|
|
64
|
+
initialized = false;
|
|
65
|
+
constructor(dependencies) {
|
|
66
|
+
this.dependencies = dependencies;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Initialize the client
|
|
70
|
+
*/
|
|
71
|
+
async initialize() {
|
|
72
|
+
if (this.initialized) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
try {
|
|
76
|
+
// Initialize all components
|
|
77
|
+
await this.dependencies.authProvider.authenticate();
|
|
78
|
+
if ("initialize" in this.dependencies.requestHandler &&
|
|
79
|
+
typeof this.dependencies.requestHandler.initialize === "function") {
|
|
80
|
+
await this.dependencies.requestHandler.initialize();
|
|
81
|
+
}
|
|
82
|
+
this.initialized = true;
|
|
83
|
+
this.dependencies.errorHandler.logSuccess("client initialization");
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
this.dependencies.errorHandler.handleError(error, "client initialization");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Make HTTP requests (delegates to request manager)
|
|
91
|
+
*/
|
|
92
|
+
async request(method, endpoint, data, options) {
|
|
93
|
+
this.ensureInitialized();
|
|
94
|
+
return this.dependencies.requestHandler.request(method, endpoint, data, options);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Get client configuration
|
|
98
|
+
*/
|
|
99
|
+
get config() {
|
|
100
|
+
return this.dependencies.configProvider.config;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Check authentication status
|
|
104
|
+
*/
|
|
105
|
+
isAuthenticated() {
|
|
106
|
+
return this.dependencies.authProvider.isAuthenticated();
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Get request statistics
|
|
110
|
+
*/
|
|
111
|
+
getStats() {
|
|
112
|
+
return this.dependencies.requestHandler.getStats();
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* WordPress-specific convenience methods
|
|
116
|
+
*/
|
|
117
|
+
/**
|
|
118
|
+
* Get posts
|
|
119
|
+
*/
|
|
120
|
+
async getPosts(params) {
|
|
121
|
+
return this.request("GET", "/wp/v2/posts", params);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get single post
|
|
125
|
+
*/
|
|
126
|
+
async getPost(id) {
|
|
127
|
+
this.dependencies.validator.validateWordPressId(id, "post ID");
|
|
128
|
+
return this.request("GET", `/wp/v2/posts/${id}`);
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create post
|
|
132
|
+
*/
|
|
133
|
+
async createPost(postData) {
|
|
134
|
+
this.dependencies.validator.validateRequired(postData, ["title", "content"]);
|
|
135
|
+
return this.request("POST", "/wp/v2/posts", postData);
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Update post
|
|
139
|
+
*/
|
|
140
|
+
async updatePost(id, postData) {
|
|
141
|
+
this.dependencies.validator.validateWordPressId(id, "post ID");
|
|
142
|
+
return this.request("PUT", `/wp/v2/posts/${id}`, postData);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Delete post
|
|
146
|
+
*/
|
|
147
|
+
async deletePost(id, force = false) {
|
|
148
|
+
this.dependencies.validator.validateWordPressId(id, "post ID");
|
|
149
|
+
const params = force ? { force: true } : {};
|
|
150
|
+
return this.request("DELETE", `/wp/v2/posts/${id}`, params);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Cleanup resources
|
|
154
|
+
*/
|
|
155
|
+
dispose() {
|
|
156
|
+
if ("dispose" in this.dependencies.requestHandler &&
|
|
157
|
+
typeof this.dependencies.requestHandler.dispose === "function") {
|
|
158
|
+
this.dependencies.requestHandler.dispose();
|
|
159
|
+
}
|
|
160
|
+
this.initialized = false;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Ensure client is initialized
|
|
164
|
+
*/
|
|
165
|
+
ensureInitialized() {
|
|
166
|
+
if (!this.initialized) {
|
|
167
|
+
throw new Error("ComposedWordPressClient not initialized. Call initialize() first.");
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Convenience factory function
|
|
173
|
+
*/
|
|
174
|
+
export async function createComposedWordPressClient(config) {
|
|
175
|
+
const factory = new ComposedManagerFactory();
|
|
176
|
+
const client = await factory.createComposedClient({ clientConfig: config });
|
|
177
|
+
await client.initialize();
|
|
178
|
+
return client;
|
|
179
|
+
}
|
|
180
|
+
//# sourceMappingURL=ComposedManagerFactory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComposedManagerFactory.js","sourceRoot":"","sources":["../../../src/client/managers/ComposedManagerFactory.ts"],"names":[],"mappings":"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"}
|