mcp-wordpress 2.6.3 → 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 +24 -58
- 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
- package/src/dxt-entry.cjs +0 -68
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composed Managers Export
|
|
3
|
+
*
|
|
4
|
+
* This module provides composition-based alternatives to the inheritance-based managers.
|
|
5
|
+
* The composed managers offer better testability, flexibility, and adherence to SOLID principles.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createComposedWordPressClient } from '../../managers/composed';
|
|
10
|
+
*
|
|
11
|
+
* const client = await createComposedWordPressClient(config);
|
|
12
|
+
* const posts = await client.getPosts();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export type { ConfigurationProvider, ErrorHandler, ParameterValidator, AuthenticationProvider, RequestHandler, BaseManagerContract, ComposedManager, ManagerFactory, ManagerCompositionConfig } from "../interfaces/ManagerInterfaces.js";
|
|
16
|
+
export { ConfigurationProviderImpl } from "../implementations/ConfigurationProviderImpl.js";
|
|
17
|
+
export { ErrorHandlerImpl } from "../implementations/ErrorHandlerImpl.js";
|
|
18
|
+
export { ParameterValidatorImpl } from "../implementations/ParameterValidatorImpl.js";
|
|
19
|
+
export { ComposedAuthenticationManager } from "../ComposedAuthenticationManager.js";
|
|
20
|
+
export { ComposedRequestManager } from "../ComposedRequestManager.js";
|
|
21
|
+
export { ComposedManagerFactory, ComposedWordPressClient, createComposedWordPressClient, type ComposedWordPressClientDependencies } from "../ComposedManagerFactory.js";
|
|
22
|
+
export { MigrationAdapter } from "./MigrationAdapter.js";
|
|
23
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/composed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,YAAY,EACV,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,sBAAsB,EACtB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,wBAAwB,EACzB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAGtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAGtE,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,mCAAmC,EACzC,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composed Managers Export
|
|
3
|
+
*
|
|
4
|
+
* This module provides composition-based alternatives to the inheritance-based managers.
|
|
5
|
+
* The composed managers offer better testability, flexibility, and adherence to SOLID principles.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { createComposedWordPressClient } from '../../managers/composed';
|
|
10
|
+
*
|
|
11
|
+
* const client = await createComposedWordPressClient(config);
|
|
12
|
+
* const posts = await client.getPosts();
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
// Implementations
|
|
16
|
+
export { ConfigurationProviderImpl } from "../implementations/ConfigurationProviderImpl.js";
|
|
17
|
+
export { ErrorHandlerImpl } from "../implementations/ErrorHandlerImpl.js";
|
|
18
|
+
export { ParameterValidatorImpl } from "../implementations/ParameterValidatorImpl.js";
|
|
19
|
+
// Composed Managers
|
|
20
|
+
export { ComposedAuthenticationManager } from "../ComposedAuthenticationManager.js";
|
|
21
|
+
export { ComposedRequestManager } from "../ComposedRequestManager.js";
|
|
22
|
+
// Factory and Client
|
|
23
|
+
export { ComposedManagerFactory, ComposedWordPressClient, createComposedWordPressClient } from "../ComposedManagerFactory.js";
|
|
24
|
+
// Migration utilities (for gradual migration from inheritance to composition)
|
|
25
|
+
export { MigrationAdapter } from "./MigrationAdapter.js";
|
|
26
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/managers/composed/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAeH,kBAAkB;AAClB,OAAO,EAAE,yBAAyB,EAAE,MAAM,iDAAiD,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,sBAAsB,EAAE,MAAM,8CAA8C,CAAC;AAEtF,oBAAoB;AACpB,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAEtE,qBAAqB;AACrB,OAAO,EACL,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAE9B,MAAM,8BAA8B,CAAC;AAEtC,8EAA8E;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Provider Implementation
|
|
3
|
+
* Provides centralized configuration management for managers
|
|
4
|
+
*/
|
|
5
|
+
import type { WordPressClientConfig } from "../../../types/client.js";
|
|
6
|
+
import type { ConfigurationProvider } from "../interfaces/ManagerInterfaces.js";
|
|
7
|
+
export declare class ConfigurationProviderImpl implements ConfigurationProvider {
|
|
8
|
+
readonly config: WordPressClientConfig;
|
|
9
|
+
constructor(config: WordPressClientConfig);
|
|
10
|
+
/**
|
|
11
|
+
* Get configuration value by path (dot notation)
|
|
12
|
+
*/
|
|
13
|
+
getConfigValue<T = unknown>(path: string, defaultValue?: T): T | undefined;
|
|
14
|
+
/**
|
|
15
|
+
* Validate configuration completeness
|
|
16
|
+
*/
|
|
17
|
+
validateConfiguration(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Get timeout value with fallbacks
|
|
20
|
+
*/
|
|
21
|
+
getTimeout(): number;
|
|
22
|
+
/**
|
|
23
|
+
* Check if debug mode is enabled
|
|
24
|
+
*/
|
|
25
|
+
isDebugEnabled(): boolean;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=ConfigurationProviderImpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationProviderImpl.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/implementations/ConfigurationProviderImpl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAEhF,qBAAa,yBAA0B,YAAW,qBAAqB;IACrE,SAAgB,MAAM,EAAE,qBAAqB,CAAC;gBAElC,MAAM,EAAE,qBAAqB;IAKzC;;OAEG;IACH,cAAc,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,SAAS;IAO1E;;OAEG;IACH,qBAAqB,IAAI,IAAI;IAS7B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;OAEG;IACH,cAAc,IAAI,OAAO;CAG1B"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Provider Implementation
|
|
3
|
+
* Provides centralized configuration management for managers
|
|
4
|
+
*/
|
|
5
|
+
export class ConfigurationProviderImpl {
|
|
6
|
+
config;
|
|
7
|
+
constructor(config) {
|
|
8
|
+
// Create defensive copy to prevent external mutation
|
|
9
|
+
this.config = Object.freeze({ ...config });
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Get configuration value by path (dot notation)
|
|
13
|
+
*/
|
|
14
|
+
getConfigValue(path, defaultValue) {
|
|
15
|
+
return (path.split(".").reduce((obj, key) => obj?.[key], this.config) ??
|
|
16
|
+
defaultValue);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Validate configuration completeness
|
|
20
|
+
*/
|
|
21
|
+
validateConfiguration() {
|
|
22
|
+
const required = ["baseUrl", "auth"];
|
|
23
|
+
const missing = required.filter((field) => !this.config[field]);
|
|
24
|
+
if (missing.length > 0) {
|
|
25
|
+
throw new Error(`Missing required configuration: ${missing.join(", ")}`);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Get timeout value with fallbacks
|
|
30
|
+
*/
|
|
31
|
+
getTimeout() {
|
|
32
|
+
return this.config.timeout || 30000;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Check if debug mode is enabled
|
|
36
|
+
*/
|
|
37
|
+
isDebugEnabled() {
|
|
38
|
+
return Boolean(this.config.debug);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=ConfigurationProviderImpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConfigurationProviderImpl.js","sourceRoot":"","sources":["../../../../src/client/managers/implementations/ConfigurationProviderImpl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,MAAM,OAAO,yBAAyB;IACpB,MAAM,CAAwB;IAE9C,YAAY,MAA6B;QACvC,qDAAqD;QACrD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IAC7C,CAAC;IAED;;OAEG;IACH,cAAc,CAAc,IAAY,EAAE,YAAgB;QACxD,OAAO,CACJ,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAE,GAA+B,EAAE,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,MAAiB,CAAO;YAC5G,YAAY,CACb,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,MAAM,QAAQ,GAAG,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAoC,CAAC,CAAC,CAAC;QAE/F,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,OAAO,OAAO,CAAE,IAAI,CAAC,MAA6C,CAAC,KAAK,CAAC,CAAC;IAC5E,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Handler Implementation
|
|
3
|
+
* Provides standardized error handling and logging for managers
|
|
4
|
+
*/
|
|
5
|
+
import { WordPressAPIError } from "../../../types/client.js";
|
|
6
|
+
import type { ErrorHandler, ConfigurationProvider } from "../interfaces/ManagerInterfaces.js";
|
|
7
|
+
export declare class ErrorHandlerImpl implements ErrorHandler {
|
|
8
|
+
private configProvider;
|
|
9
|
+
constructor(configProvider: ConfigurationProvider);
|
|
10
|
+
/**
|
|
11
|
+
* Handle and transform errors with context
|
|
12
|
+
*/
|
|
13
|
+
handleError(error: unknown, operation: string): never;
|
|
14
|
+
/**
|
|
15
|
+
* Log successful operations
|
|
16
|
+
*/
|
|
17
|
+
logSuccess(operation: string, details?: unknown): void;
|
|
18
|
+
/**
|
|
19
|
+
* Handle authentication errors specifically
|
|
20
|
+
*/
|
|
21
|
+
handleAuthError(error: unknown, operation: string): never;
|
|
22
|
+
/**
|
|
23
|
+
* Handle rate limit errors specifically
|
|
24
|
+
*/
|
|
25
|
+
handleRateLimitError(retryAfter?: number): never;
|
|
26
|
+
/**
|
|
27
|
+
* Create context-aware error
|
|
28
|
+
*/
|
|
29
|
+
createContextualError(baseError: unknown, context: Record<string, unknown>): WordPressAPIError;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=ErrorHandlerImpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorHandlerImpl.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/implementations/ErrorHandlerImpl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAGtD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAE9F,qBAAa,gBAAiB,YAAW,YAAY;IACvC,OAAO,CAAC,cAAc;gBAAd,cAAc,EAAE,qBAAqB;IAEzD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAkCrD;;OAEG;IACH,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAItD;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IAezD;;OAEG;IACH,oBAAoB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,KAAK;IAQhD;;OAEG;IACH,qBAAqB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,iBAAiB;CAY/F"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error Handler Implementation
|
|
3
|
+
* Provides standardized error handling and logging for managers
|
|
4
|
+
*/
|
|
5
|
+
import { WordPressAPIError } from "../../../types/client.js";
|
|
6
|
+
import { debug, logError } from "../../../utils/debug.js";
|
|
7
|
+
import { getErrorMessage } from "../../../utils/error.js";
|
|
8
|
+
export class ErrorHandlerImpl {
|
|
9
|
+
configProvider;
|
|
10
|
+
constructor(configProvider) {
|
|
11
|
+
this.configProvider = configProvider;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Handle and transform errors with context
|
|
15
|
+
*/
|
|
16
|
+
handleError(error, operation) {
|
|
17
|
+
logError(`${operation} failed:`, error);
|
|
18
|
+
if (error instanceof WordPressAPIError) {
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
// Type guard for error-like objects
|
|
22
|
+
const isErrorLike = (err) => {
|
|
23
|
+
return typeof err === "object" && err !== null;
|
|
24
|
+
};
|
|
25
|
+
if (isErrorLike(error)) {
|
|
26
|
+
if (error.name === "AbortError" || error.code === "ABORT_ERR") {
|
|
27
|
+
throw new WordPressAPIError(`Request timeout after ${this.configProvider.config.timeout}ms`, 408, "timeout");
|
|
28
|
+
}
|
|
29
|
+
if (error.code === "ECONNREFUSED" || error.code === "ENOTFOUND") {
|
|
30
|
+
throw new WordPressAPIError(`Cannot connect to WordPress site: ${this.configProvider.config.baseUrl}`, 503, "connection_failed");
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
const message = getErrorMessage(error);
|
|
34
|
+
throw new WordPressAPIError(`${operation} failed: ${message}`, 500, "unknown_error");
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Log successful operations
|
|
38
|
+
*/
|
|
39
|
+
logSuccess(operation, details) {
|
|
40
|
+
debug.log(`${operation} completed successfully`, details);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Handle authentication errors specifically
|
|
44
|
+
*/
|
|
45
|
+
handleAuthError(error, operation) {
|
|
46
|
+
logError(`Authentication failed during ${operation}:`, error);
|
|
47
|
+
if (error instanceof WordPressAPIError) {
|
|
48
|
+
throw error;
|
|
49
|
+
}
|
|
50
|
+
const message = getErrorMessage(error);
|
|
51
|
+
throw new WordPressAPIError(`Authentication failed during ${operation}: ${message}`, 401, "auth_failed");
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Handle rate limit errors specifically
|
|
55
|
+
*/
|
|
56
|
+
handleRateLimitError(retryAfter) {
|
|
57
|
+
const message = retryAfter
|
|
58
|
+
? `Rate limit exceeded. Retry after ${retryAfter} seconds.`
|
|
59
|
+
: "Rate limit exceeded.";
|
|
60
|
+
throw new WordPressAPIError(message, 429, "rate_limited");
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Create context-aware error
|
|
64
|
+
*/
|
|
65
|
+
createContextualError(baseError, context) {
|
|
66
|
+
const message = getErrorMessage(baseError);
|
|
67
|
+
const contextString = Object.entries(context)
|
|
68
|
+
.map(([key, value]) => `${key}=${String(value)}`)
|
|
69
|
+
.join(', ');
|
|
70
|
+
return new WordPressAPIError(`${message} (Context: ${contextString})`, 500, "contextual_error");
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=ErrorHandlerImpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ErrorHandlerImpl.js","sourceRoot":"","sources":["../../../../src/client/managers/implementations/ErrorHandlerImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameter Validator Implementation
|
|
3
|
+
* Provides comprehensive parameter validation for managers
|
|
4
|
+
*/
|
|
5
|
+
import type { ParameterValidator } from "../interfaces/ManagerInterfaces.js";
|
|
6
|
+
export declare class ParameterValidatorImpl implements ParameterValidator {
|
|
7
|
+
/**
|
|
8
|
+
* Validate required parameters are present
|
|
9
|
+
*/
|
|
10
|
+
validateRequired(params: Record<string, unknown>, requiredFields: string[]): void;
|
|
11
|
+
/**
|
|
12
|
+
* Validate parameter types and formats
|
|
13
|
+
*/
|
|
14
|
+
validateParameters<T>(params: unknown, schema?: unknown): T;
|
|
15
|
+
/**
|
|
16
|
+
* Validate string parameters
|
|
17
|
+
*/
|
|
18
|
+
validateString(value: unknown, fieldName: string, options?: {
|
|
19
|
+
required?: boolean;
|
|
20
|
+
minLength?: number;
|
|
21
|
+
maxLength?: number;
|
|
22
|
+
pattern?: RegExp;
|
|
23
|
+
}): string;
|
|
24
|
+
/**
|
|
25
|
+
* Validate numeric parameters
|
|
26
|
+
*/
|
|
27
|
+
validateNumber(value: unknown, fieldName: string, options?: {
|
|
28
|
+
required?: boolean;
|
|
29
|
+
min?: number;
|
|
30
|
+
max?: number;
|
|
31
|
+
integer?: boolean;
|
|
32
|
+
}): number;
|
|
33
|
+
/**
|
|
34
|
+
* Validate array parameters
|
|
35
|
+
*/
|
|
36
|
+
validateArray<T>(value: unknown, fieldName: string, options?: {
|
|
37
|
+
required?: boolean;
|
|
38
|
+
minLength?: number;
|
|
39
|
+
maxLength?: number;
|
|
40
|
+
itemValidator?: (item: unknown) => T;
|
|
41
|
+
}): T[];
|
|
42
|
+
/**
|
|
43
|
+
* Validate WordPress ID parameters
|
|
44
|
+
*/
|
|
45
|
+
validateWordPressId(value: unknown, fieldName?: string): number;
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=ParameterValidatorImpl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParameterValidatorImpl.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/implementations/ParameterValidatorImpl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAE7E,qBAAa,sBAAuB,YAAW,kBAAkB;IAC/D;;OAEG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;IAQjF;;OAEG;IACH,kBAAkB,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,CAAC;IAkB3D;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,MAAM;IAwCV;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,GAAG,MAAM;IAsCV;;OAEG;IACH,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAC5D,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,CAAC,CAAC;KACtC,GAAG,CAAC,EAAE;IAyDP;;OAEG;IACH,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,GAAE,MAAa,GAAG,MAAM;CAStE"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parameter Validator Implementation
|
|
3
|
+
* Provides comprehensive parameter validation for managers
|
|
4
|
+
*/
|
|
5
|
+
import { WordPressAPIError } from "../../../types/client.js";
|
|
6
|
+
export class ParameterValidatorImpl {
|
|
7
|
+
/**
|
|
8
|
+
* Validate required parameters are present
|
|
9
|
+
*/
|
|
10
|
+
validateRequired(params, requiredFields) {
|
|
11
|
+
for (const field of requiredFields) {
|
|
12
|
+
if (params[field] === undefined || params[field] === null) {
|
|
13
|
+
throw new WordPressAPIError(`Missing required parameter: ${field}`, 400, "missing_parameter");
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Validate parameter types and formats
|
|
19
|
+
*/
|
|
20
|
+
validateParameters(params, schema) {
|
|
21
|
+
if (params === null || params === undefined) {
|
|
22
|
+
throw new WordPressAPIError("Parameters cannot be null or undefined", 400, "invalid_parameters");
|
|
23
|
+
}
|
|
24
|
+
// If no schema provided, return params as-is with type assertion
|
|
25
|
+
if (!schema) {
|
|
26
|
+
return params;
|
|
27
|
+
}
|
|
28
|
+
// Basic runtime validation (can be extended with schema validation libraries)
|
|
29
|
+
if (typeof params !== "object") {
|
|
30
|
+
throw new WordPressAPIError("Parameters must be an object", 400, "invalid_parameters");
|
|
31
|
+
}
|
|
32
|
+
return params;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Validate string parameters
|
|
36
|
+
*/
|
|
37
|
+
validateString(value, fieldName, options) {
|
|
38
|
+
if (options?.required && (value === undefined || value === null || value === "")) {
|
|
39
|
+
throw new WordPressAPIError(`${fieldName} is required`, 400, "missing_parameter");
|
|
40
|
+
}
|
|
41
|
+
if (value === undefined || value === null) {
|
|
42
|
+
return "";
|
|
43
|
+
}
|
|
44
|
+
if (typeof value !== "string") {
|
|
45
|
+
throw new WordPressAPIError(`${fieldName} must be a string`, 400, "invalid_parameter_type");
|
|
46
|
+
}
|
|
47
|
+
if (options?.minLength && value.length < options.minLength) {
|
|
48
|
+
throw new WordPressAPIError(`${fieldName} must be at least ${options.minLength} characters`, 400, "parameter_too_short");
|
|
49
|
+
}
|
|
50
|
+
if (options?.maxLength && value.length > options.maxLength) {
|
|
51
|
+
throw new WordPressAPIError(`${fieldName} must be no more than ${options.maxLength} characters`, 400, "parameter_too_long");
|
|
52
|
+
}
|
|
53
|
+
if (options?.pattern && !options.pattern.test(value)) {
|
|
54
|
+
throw new WordPressAPIError(`${fieldName} format is invalid`, 400, "invalid_parameter_format");
|
|
55
|
+
}
|
|
56
|
+
return value;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Validate numeric parameters
|
|
60
|
+
*/
|
|
61
|
+
validateNumber(value, fieldName, options) {
|
|
62
|
+
if (options?.required && (value === undefined || value === null)) {
|
|
63
|
+
throw new WordPressAPIError(`${fieldName} is required`, 400, "missing_parameter");
|
|
64
|
+
}
|
|
65
|
+
if (value === undefined || value === null) {
|
|
66
|
+
return 0;
|
|
67
|
+
}
|
|
68
|
+
const numValue = typeof value === "string" ? parseFloat(value) : Number(value);
|
|
69
|
+
if (isNaN(numValue)) {
|
|
70
|
+
throw new WordPressAPIError(`${fieldName} must be a valid number`, 400, "invalid_parameter_type");
|
|
71
|
+
}
|
|
72
|
+
if (options?.integer && !Number.isInteger(numValue)) {
|
|
73
|
+
throw new WordPressAPIError(`${fieldName} must be an integer`, 400, "invalid_parameter_type");
|
|
74
|
+
}
|
|
75
|
+
if (options?.min !== undefined && numValue < options.min) {
|
|
76
|
+
throw new WordPressAPIError(`${fieldName} must be at least ${options.min}`, 400, "parameter_too_small");
|
|
77
|
+
}
|
|
78
|
+
if (options?.max !== undefined && numValue > options.max) {
|
|
79
|
+
throw new WordPressAPIError(`${fieldName} must be no more than ${options.max}`, 400, "parameter_too_large");
|
|
80
|
+
}
|
|
81
|
+
return numValue;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Validate array parameters
|
|
85
|
+
*/
|
|
86
|
+
validateArray(value, fieldName, options) {
|
|
87
|
+
if (options?.required && (value === undefined || value === null)) {
|
|
88
|
+
throw new WordPressAPIError(`${fieldName} is required`, 400, "missing_parameter");
|
|
89
|
+
}
|
|
90
|
+
if (value === undefined || value === null) {
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
if (!Array.isArray(value)) {
|
|
94
|
+
throw new WordPressAPIError(`${fieldName} must be an array`, 400, "invalid_parameter_type");
|
|
95
|
+
}
|
|
96
|
+
if (options?.minLength && value.length < options.minLength) {
|
|
97
|
+
throw new WordPressAPIError(`${fieldName} must contain at least ${options.minLength} items`, 400, "array_too_short");
|
|
98
|
+
}
|
|
99
|
+
if (options?.maxLength && value.length > options.maxLength) {
|
|
100
|
+
throw new WordPressAPIError(`${fieldName} must contain no more than ${options.maxLength} items`, 400, "array_too_long");
|
|
101
|
+
}
|
|
102
|
+
if (options?.itemValidator) {
|
|
103
|
+
try {
|
|
104
|
+
return value.map((item, index) => {
|
|
105
|
+
try {
|
|
106
|
+
return options.itemValidator(item);
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
throw new WordPressAPIError(`${fieldName}[${index}] validation failed: ${getErrorMessage(error)}`, 400, "array_item_invalid");
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
catch (error) {
|
|
114
|
+
if (error instanceof WordPressAPIError) {
|
|
115
|
+
throw error;
|
|
116
|
+
}
|
|
117
|
+
throw new WordPressAPIError(`${fieldName} validation failed: ${getErrorMessage(error)}`, 400, "array_validation_failed");
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return value;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Validate WordPress ID parameters
|
|
124
|
+
*/
|
|
125
|
+
validateWordPressId(value, fieldName = "id") {
|
|
126
|
+
const id = this.validateNumber(value, fieldName, {
|
|
127
|
+
required: true,
|
|
128
|
+
min: 1,
|
|
129
|
+
integer: true
|
|
130
|
+
});
|
|
131
|
+
return id;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Helper function to get error message
|
|
135
|
+
function getErrorMessage(error) {
|
|
136
|
+
if (error instanceof Error) {
|
|
137
|
+
return error.message;
|
|
138
|
+
}
|
|
139
|
+
return String(error);
|
|
140
|
+
}
|
|
141
|
+
//# sourceMappingURL=ParameterValidatorImpl.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ParameterValidatorImpl.js","sourceRoot":"","sources":["../../../../src/client/managers/implementations/ParameterValidatorImpl.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manager Interface Definitions
|
|
3
|
+
* Defines contracts for manager behaviors to enable composition over inheritance
|
|
4
|
+
*/
|
|
5
|
+
import type { WordPressClientConfig } from "../../../types/client.js";
|
|
6
|
+
/**
|
|
7
|
+
* Core configuration management interface
|
|
8
|
+
*/
|
|
9
|
+
export interface ConfigurationProvider {
|
|
10
|
+
readonly config: WordPressClientConfig;
|
|
11
|
+
/**
|
|
12
|
+
* Get configuration value by path
|
|
13
|
+
*/
|
|
14
|
+
getConfigValue<T>(path: string, defaultValue?: T): T | undefined;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Error handling interface for managers
|
|
18
|
+
*/
|
|
19
|
+
export interface ErrorHandler {
|
|
20
|
+
/**
|
|
21
|
+
* Handle and transform errors with context
|
|
22
|
+
*/
|
|
23
|
+
handleError(error: unknown, operation: string): never;
|
|
24
|
+
/**
|
|
25
|
+
* Log successful operations
|
|
26
|
+
*/
|
|
27
|
+
logSuccess(operation: string, details?: unknown): void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Parameter validation interface
|
|
31
|
+
*/
|
|
32
|
+
export interface ParameterValidator {
|
|
33
|
+
/**
|
|
34
|
+
* Validate required parameters are present
|
|
35
|
+
*/
|
|
36
|
+
validateRequired(params: Record<string, unknown>, requiredFields: string[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* Validate parameter types and formats
|
|
39
|
+
*/
|
|
40
|
+
validateParameters<T>(params: unknown, schema?: unknown): T;
|
|
41
|
+
/**
|
|
42
|
+
* Validate string parameters
|
|
43
|
+
*/
|
|
44
|
+
validateString(value: unknown, fieldName: string, options?: {
|
|
45
|
+
required?: boolean;
|
|
46
|
+
minLength?: number;
|
|
47
|
+
maxLength?: number;
|
|
48
|
+
pattern?: RegExp;
|
|
49
|
+
}): string;
|
|
50
|
+
/**
|
|
51
|
+
* Validate WordPress ID parameters
|
|
52
|
+
*/
|
|
53
|
+
validateWordPressId(value: unknown, fieldName?: string): number;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Base manager contract combining common behaviors
|
|
57
|
+
*/
|
|
58
|
+
export interface BaseManagerContract extends ConfigurationProvider, ErrorHandler, ParameterValidator {
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Request management interface
|
|
62
|
+
*/
|
|
63
|
+
export interface RequestHandler {
|
|
64
|
+
/**
|
|
65
|
+
* Execute HTTP request with full request lifecycle management
|
|
66
|
+
*/
|
|
67
|
+
request<T>(method: string, endpoint: string, data?: unknown, options?: unknown): Promise<T>;
|
|
68
|
+
/**
|
|
69
|
+
* Get request statistics
|
|
70
|
+
*/
|
|
71
|
+
getStats(): unknown;
|
|
72
|
+
/**
|
|
73
|
+
* Reset statistics
|
|
74
|
+
*/
|
|
75
|
+
resetStats(): void;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Authentication management interface
|
|
79
|
+
*/
|
|
80
|
+
export interface AuthenticationProvider {
|
|
81
|
+
/**
|
|
82
|
+
* Authenticate with the configured method
|
|
83
|
+
*/
|
|
84
|
+
authenticate(): Promise<boolean>;
|
|
85
|
+
/**
|
|
86
|
+
* Check if currently authenticated
|
|
87
|
+
*/
|
|
88
|
+
isAuthenticated(): boolean;
|
|
89
|
+
/**
|
|
90
|
+
* Get authentication headers for requests
|
|
91
|
+
*/
|
|
92
|
+
getAuthHeaders(): Record<string, string>;
|
|
93
|
+
/**
|
|
94
|
+
* Handle authentication failure
|
|
95
|
+
*/
|
|
96
|
+
handleAuthFailure(error: unknown): Promise<boolean>;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Manager factory interface for dependency injection
|
|
100
|
+
*/
|
|
101
|
+
export interface ManagerFactory {
|
|
102
|
+
/**
|
|
103
|
+
* Create configuration provider
|
|
104
|
+
*/
|
|
105
|
+
createConfigurationProvider(config: WordPressClientConfig): ConfigurationProvider;
|
|
106
|
+
/**
|
|
107
|
+
* Create error handler
|
|
108
|
+
*/
|
|
109
|
+
createErrorHandler(config: WordPressClientConfig): ErrorHandler;
|
|
110
|
+
/**
|
|
111
|
+
* Create parameter validator
|
|
112
|
+
*/
|
|
113
|
+
createParameterValidator(): ParameterValidator;
|
|
114
|
+
/**
|
|
115
|
+
* Create request handler
|
|
116
|
+
*/
|
|
117
|
+
createRequestHandler(config: WordPressClientConfig, authProvider: AuthenticationProvider): RequestHandler;
|
|
118
|
+
/**
|
|
119
|
+
* Create authentication provider
|
|
120
|
+
*/
|
|
121
|
+
createAuthenticationProvider(config: WordPressClientConfig): AuthenticationProvider;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Configuration for manager composition
|
|
125
|
+
*/
|
|
126
|
+
export interface ManagerCompositionConfig {
|
|
127
|
+
/** WordPress client configuration */
|
|
128
|
+
clientConfig: WordPressClientConfig;
|
|
129
|
+
/** Optional custom implementations */
|
|
130
|
+
customErrorHandler?: ErrorHandler;
|
|
131
|
+
customValidator?: ParameterValidator;
|
|
132
|
+
customAuthProvider?: AuthenticationProvider;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Composed manager that uses composition instead of inheritance
|
|
136
|
+
*/
|
|
137
|
+
export interface ComposedManager extends BaseManagerContract, RequestHandler, AuthenticationProvider {
|
|
138
|
+
/**
|
|
139
|
+
* Initialize the composed manager
|
|
140
|
+
*/
|
|
141
|
+
initialize(): Promise<void>;
|
|
142
|
+
/**
|
|
143
|
+
* Cleanup resources
|
|
144
|
+
*/
|
|
145
|
+
dispose(): void;
|
|
146
|
+
}
|
|
147
|
+
//# sourceMappingURL=ManagerInterfaces.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManagerInterfaces.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/interfaces/ManagerInterfaces.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ManagerInterfaces.js","sourceRoot":"","sources":["../../../../src/client/managers/interfaces/ManagerInterfaces.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
|