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.
Files changed (332) hide show
  1. package/README.md +1 -1
  2. package/dist/cache/CacheInvalidation.d.ts +25 -6
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  4. package/dist/cache/CacheInvalidation.js +168 -16
  5. package/dist/cache/CacheInvalidation.js.map +1 -1
  6. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  7. package/dist/cache/HttpCacheWrapper.js +3 -4
  8. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  9. package/dist/cache/SEOCacheManager.d.ts +150 -0
  10. package/dist/cache/SEOCacheManager.d.ts.map +1 -0
  11. package/dist/cache/SEOCacheManager.js +275 -0
  12. package/dist/cache/SEOCacheManager.js.map +1 -0
  13. package/dist/client/SEOWordPressClient.d.ts +164 -0
  14. package/dist/client/SEOWordPressClient.d.ts.map +1 -0
  15. package/dist/client/SEOWordPressClient.js +674 -0
  16. package/dist/client/SEOWordPressClient.js.map +1 -0
  17. package/dist/client/api.d.ts.map +1 -1
  18. package/dist/client/api.js +50 -20
  19. package/dist/client/api.js.map +1 -1
  20. package/dist/client/auth.js +19 -19
  21. package/dist/client/auth.js.map +1 -1
  22. package/dist/client/index.d.ts +11 -0
  23. package/dist/client/index.d.ts.map +1 -0
  24. package/dist/client/index.js +14 -0
  25. package/dist/client/index.js.map +1 -0
  26. package/dist/client/managers/AuthManager.d.ts +39 -0
  27. package/dist/client/managers/AuthManager.d.ts.map +1 -0
  28. package/dist/client/managers/AuthManager.js +142 -0
  29. package/dist/client/managers/AuthManager.js.map +1 -0
  30. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  31. package/dist/client/managers/AuthenticationManager.js +10 -9
  32. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  33. package/dist/client/managers/BaseManager.d.ts.map +1 -1
  34. package/dist/client/managers/BaseManager.js +12 -0
  35. package/dist/client/managers/BaseManager.js.map +1 -1
  36. package/dist/client/managers/ComposedAuthenticationManager.d.ts +94 -0
  37. package/dist/client/managers/ComposedAuthenticationManager.d.ts.map +1 -0
  38. package/dist/client/managers/ComposedAuthenticationManager.js +340 -0
  39. package/dist/client/managers/ComposedAuthenticationManager.js.map +1 -0
  40. package/dist/client/managers/ComposedManagerFactory.d.ts +104 -0
  41. package/dist/client/managers/ComposedManagerFactory.d.ts.map +1 -0
  42. package/dist/client/managers/ComposedManagerFactory.js +180 -0
  43. package/dist/client/managers/ComposedManagerFactory.js.map +1 -0
  44. package/dist/client/managers/ComposedRequestManager.d.ts +82 -0
  45. package/dist/client/managers/ComposedRequestManager.d.ts.map +1 -0
  46. package/dist/client/managers/ComposedRequestManager.js +260 -0
  47. package/dist/client/managers/ComposedRequestManager.js.map +1 -0
  48. package/dist/client/managers/JWTAuthImplementation.d.ts +86 -0
  49. package/dist/client/managers/JWTAuthImplementation.d.ts.map +1 -0
  50. package/dist/client/managers/JWTAuthImplementation.js +240 -0
  51. package/dist/client/managers/JWTAuthImplementation.js.map +1 -0
  52. package/dist/client/managers/ManagersIndex.d.ts +6 -0
  53. package/dist/client/managers/ManagersIndex.d.ts.map +1 -0
  54. package/dist/client/managers/ManagersIndex.js +6 -0
  55. package/dist/client/managers/ManagersIndex.js.map +1 -0
  56. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  57. package/dist/client/managers/RequestManager.js +5 -3
  58. package/dist/client/managers/RequestManager.js.map +1 -1
  59. package/dist/client/managers/composed/MigrationAdapter.d.ts +80 -0
  60. package/dist/client/managers/composed/MigrationAdapter.d.ts.map +1 -0
  61. package/dist/client/managers/composed/MigrationAdapter.js +214 -0
  62. package/dist/client/managers/composed/MigrationAdapter.js.map +1 -0
  63. package/dist/client/managers/composed/index.d.ts +23 -0
  64. package/dist/client/managers/composed/index.d.ts.map +1 -0
  65. package/dist/client/managers/composed/index.js +26 -0
  66. package/dist/client/managers/composed/index.js.map +1 -0
  67. package/dist/client/managers/implementations/ConfigurationProviderImpl.d.ts +27 -0
  68. package/dist/client/managers/implementations/ConfigurationProviderImpl.d.ts.map +1 -0
  69. package/dist/client/managers/implementations/ConfigurationProviderImpl.js +41 -0
  70. package/dist/client/managers/implementations/ConfigurationProviderImpl.js.map +1 -0
  71. package/dist/client/managers/implementations/ErrorHandlerImpl.d.ts +31 -0
  72. package/dist/client/managers/implementations/ErrorHandlerImpl.d.ts.map +1 -0
  73. package/dist/client/managers/implementations/ErrorHandlerImpl.js +73 -0
  74. package/dist/client/managers/implementations/ErrorHandlerImpl.js.map +1 -0
  75. package/dist/client/managers/implementations/ParameterValidatorImpl.d.ts +47 -0
  76. package/dist/client/managers/implementations/ParameterValidatorImpl.d.ts.map +1 -0
  77. package/dist/client/managers/implementations/ParameterValidatorImpl.js +141 -0
  78. package/dist/client/managers/implementations/ParameterValidatorImpl.js.map +1 -0
  79. package/dist/client/managers/interfaces/ManagerInterfaces.d.ts +147 -0
  80. package/dist/client/managers/interfaces/ManagerInterfaces.d.ts.map +1 -0
  81. package/dist/client/managers/interfaces/ManagerInterfaces.js +6 -0
  82. package/dist/client/managers/interfaces/ManagerInterfaces.js.map +1 -0
  83. package/dist/config/Config.d.ts +30 -0
  84. package/dist/config/Config.d.ts.map +1 -1
  85. package/dist/config/Config.js +30 -0
  86. package/dist/config/Config.js.map +1 -1
  87. package/dist/config/ConfigurationSchema.d.ts +75 -198
  88. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  89. package/dist/config/ConfigurationSchema.js +17 -17
  90. package/dist/config/ConfigurationSchema.js.map +1 -1
  91. package/dist/config/ServerConfiguration.d.ts +2 -2
  92. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  93. package/dist/config/ServerConfiguration.js +15 -13
  94. package/dist/config/ServerConfiguration.js.map +1 -1
  95. package/dist/config/index.d.ts +8 -0
  96. package/dist/config/index.d.ts.map +1 -0
  97. package/dist/config/index.js +11 -0
  98. package/dist/config/index.js.map +1 -0
  99. package/dist/docs/DocumentationGenerator.js +2 -2
  100. package/dist/docs/DocumentationGenerator.js.map +1 -1
  101. package/dist/dxt-entry.js +3 -3
  102. package/dist/dxt-entry.js.map +1 -1
  103. package/dist/index.d.ts +1 -0
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +38 -37
  106. package/dist/index.js.map +1 -1
  107. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  108. package/dist/performance/MetricsCollector.js +5 -4
  109. package/dist/performance/MetricsCollector.js.map +1 -1
  110. package/dist/security/AISecurityScanner.js +7 -7
  111. package/dist/security/AISecurityScanner.js.map +1 -1
  112. package/dist/security/AutomatedRemediation.d.ts.map +1 -1
  113. package/dist/security/AutomatedRemediation.js +11 -11
  114. package/dist/security/AutomatedRemediation.js.map +1 -1
  115. package/dist/security/InputValidator.d.ts +50 -126
  116. package/dist/security/InputValidator.d.ts.map +1 -1
  117. package/dist/security/InputValidator.js +9 -9
  118. package/dist/security/InputValidator.js.map +1 -1
  119. package/dist/security/SecurityCIPipeline.d.ts +47 -5
  120. package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
  121. package/dist/security/SecurityCIPipeline.js +390 -49
  122. package/dist/security/SecurityCIPipeline.js.map +1 -1
  123. package/dist/security/SecurityConfigManager.js +10 -10
  124. package/dist/security/SecurityConfigManager.js.map +1 -1
  125. package/dist/security/SecurityMonitoring.js +4 -4
  126. package/dist/security/SecurityMonitoring.js.map +1 -1
  127. package/dist/security/SecurityReviewer.d.ts.map +1 -1
  128. package/dist/security/SecurityReviewer.js +13 -6
  129. package/dist/security/SecurityReviewer.js.map +1 -1
  130. package/dist/security/index.js +3 -3
  131. package/dist/security/index.js.map +1 -1
  132. package/dist/server/ConnectionTester.js +5 -5
  133. package/dist/server/ConnectionTester.js.map +1 -1
  134. package/dist/server/ToolRegistry.d.ts +2 -2
  135. package/dist/server/ToolRegistry.d.ts.map +1 -1
  136. package/dist/server/ToolRegistry.js +7 -6
  137. package/dist/server/ToolRegistry.js.map +1 -1
  138. package/dist/server/index.d.ts +7 -0
  139. package/dist/server/index.d.ts.map +1 -0
  140. package/dist/server/index.js +9 -0
  141. package/dist/server/index.js.map +1 -0
  142. package/dist/tools/BaseToolManager.d.ts.map +1 -1
  143. package/dist/tools/BaseToolManager.js +11 -11
  144. package/dist/tools/BaseToolManager.js.map +1 -1
  145. package/dist/tools/auth.d.ts.map +1 -1
  146. package/dist/tools/auth.js +7 -7
  147. package/dist/tools/auth.js.map +1 -1
  148. package/dist/tools/comments.d.ts.map +1 -1
  149. package/dist/tools/comments.js +14 -14
  150. package/dist/tools/comments.js.map +1 -1
  151. package/dist/tools/index.d.ts +1 -0
  152. package/dist/tools/index.d.ts.map +1 -1
  153. package/dist/tools/index.js +1 -0
  154. package/dist/tools/index.js.map +1 -1
  155. package/dist/tools/media.d.ts.map +1 -1
  156. package/dist/tools/media.js +14 -11
  157. package/dist/tools/media.js.map +1 -1
  158. package/dist/tools/pages.d.ts.map +1 -1
  159. package/dist/tools/pages.js +12 -12
  160. package/dist/tools/pages.js.map +1 -1
  161. package/dist/tools/performance.d.ts.map +1 -1
  162. package/dist/tools/performance.js +13 -11
  163. package/dist/tools/performance.js.map +1 -1
  164. package/dist/tools/posts/PostHandlers.d.ts.map +1 -1
  165. package/dist/tools/posts/PostHandlers.js +16 -16
  166. package/dist/tools/posts/PostHandlers.js.map +1 -1
  167. package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -1
  168. package/dist/tools/posts/index.d.ts.map +1 -1
  169. package/dist/tools/seo/BulkOperations.d.ts +113 -0
  170. package/dist/tools/seo/BulkOperations.d.ts.map +1 -0
  171. package/dist/tools/seo/BulkOperations.js +398 -0
  172. package/dist/tools/seo/BulkOperations.js.map +1 -0
  173. package/dist/tools/seo/SEOHandlers.d.ts +55 -0
  174. package/dist/tools/seo/SEOHandlers.d.ts.map +1 -0
  175. package/dist/tools/seo/SEOHandlers.js +255 -0
  176. package/dist/tools/seo/SEOHandlers.js.map +1 -0
  177. package/dist/tools/seo/SEOToolDefinitions.d.ts +59 -0
  178. package/dist/tools/seo/SEOToolDefinitions.d.ts.map +1 -0
  179. package/dist/tools/seo/SEOToolDefinitions.js +385 -0
  180. package/dist/tools/seo/SEOToolDefinitions.js.map +1 -0
  181. package/dist/tools/seo/SEOTools.d.ts +203 -0
  182. package/dist/tools/seo/SEOTools.d.ts.map +1 -0
  183. package/dist/tools/seo/SEOTools.js +708 -0
  184. package/dist/tools/seo/SEOTools.js.map +1 -0
  185. package/dist/tools/seo/analyzers/ContentAnalyzer.d.ts +94 -0
  186. package/dist/tools/seo/analyzers/ContentAnalyzer.d.ts.map +1 -0
  187. package/dist/tools/seo/analyzers/ContentAnalyzer.js +402 -0
  188. package/dist/tools/seo/analyzers/ContentAnalyzer.js.map +1 -0
  189. package/dist/tools/seo/auditors/SiteAuditor.d.ts +121 -0
  190. package/dist/tools/seo/auditors/SiteAuditor.d.ts.map +1 -0
  191. package/dist/tools/seo/auditors/SiteAuditor.js +600 -0
  192. package/dist/tools/seo/auditors/SiteAuditor.js.map +1 -0
  193. package/dist/tools/seo/generators/MetaGenerator.d.ts +128 -0
  194. package/dist/tools/seo/generators/MetaGenerator.d.ts.map +1 -0
  195. package/dist/tools/seo/generators/MetaGenerator.js +547 -0
  196. package/dist/tools/seo/generators/MetaGenerator.js.map +1 -0
  197. package/dist/tools/seo/generators/SchemaGenerator.d.ts +204 -0
  198. package/dist/tools/seo/generators/SchemaGenerator.d.ts.map +1 -0
  199. package/dist/tools/seo/generators/SchemaGenerator.js +670 -0
  200. package/dist/tools/seo/generators/SchemaGenerator.js.map +1 -0
  201. package/dist/tools/seo/index.d.ts +17 -0
  202. package/dist/tools/seo/index.d.ts.map +1 -0
  203. package/dist/tools/seo/index.js +18 -0
  204. package/dist/tools/seo/index.js.map +1 -0
  205. package/dist/tools/seo/optimizers/InternalLinkingSuggester.d.ts +186 -0
  206. package/dist/tools/seo/optimizers/InternalLinkingSuggester.d.ts.map +1 -0
  207. package/dist/tools/seo/optimizers/InternalLinkingSuggester.js +683 -0
  208. package/dist/tools/seo/optimizers/InternalLinkingSuggester.js.map +1 -0
  209. package/dist/tools/site.d.ts.map +1 -1
  210. package/dist/tools/site.js +12 -12
  211. package/dist/tools/site.js.map +1 -1
  212. package/dist/tools/taxonomies.d.ts.map +1 -1
  213. package/dist/tools/taxonomies.js +20 -20
  214. package/dist/tools/taxonomies.js.map +1 -1
  215. package/dist/tools/users.d.ts.map +1 -1
  216. package/dist/tools/users.js +12 -12
  217. package/dist/tools/users.js.map +1 -1
  218. package/dist/types/client.d.ts +8 -6
  219. package/dist/types/client.d.ts.map +1 -1
  220. package/dist/types/client.js.map +1 -1
  221. package/dist/types/seo.d.ts +473 -0
  222. package/dist/types/seo.d.ts.map +1 -0
  223. package/dist/types/seo.js +94 -0
  224. package/dist/types/seo.js.map +1 -0
  225. package/dist/utils/enhancedError.js +1 -1
  226. package/dist/utils/enhancedError.js.map +1 -1
  227. package/dist/utils/error.d.ts.map +1 -1
  228. package/dist/utils/error.js +0 -1
  229. package/dist/utils/error.js.map +1 -1
  230. package/dist/utils/index.d.ts +12 -0
  231. package/dist/utils/index.d.ts.map +1 -0
  232. package/dist/utils/index.js +18 -0
  233. package/dist/utils/index.js.map +1 -0
  234. package/dist/utils/logger.js +3 -3
  235. package/dist/utils/logger.js.map +1 -1
  236. package/dist/utils/toolWrapper.d.ts +2 -2
  237. package/dist/utils/toolWrapper.js +8 -8
  238. package/dist/utils/toolWrapper.js.map +1 -1
  239. package/dist/utils/validation/core.d.ts.map +1 -1
  240. package/dist/utils/validation/core.js.map +1 -1
  241. package/dist/utils/validation/index.d.ts.map +1 -1
  242. package/dist/utils/validation/index.js.map +1 -1
  243. package/dist/utils/validation/network.js +3 -3
  244. package/dist/utils/validation/network.js.map +1 -1
  245. package/dist/utils/validation/rateLimit.js.map +1 -1
  246. package/dist/utils/validation/security.js.map +1 -1
  247. package/dist/utils/validation/wordpress.js.map +1 -1
  248. package/dist/utils/version.d.ts +144 -0
  249. package/dist/utils/version.d.ts.map +1 -0
  250. package/dist/utils/version.js +318 -0
  251. package/dist/utils/version.js.map +1 -0
  252. package/package.json +21 -55
  253. package/src/cache/CacheInvalidation.ts +183 -20
  254. package/src/cache/HttpCacheWrapper.ts +8 -5
  255. package/src/cache/SEOCacheManager.ts +330 -0
  256. package/src/cache/__tests__/CacheInvalidation.test.ts +6 -11
  257. package/src/cache/__tests__/CachedWordPressClient.test.ts +37 -62
  258. package/src/client/SEOWordPressClient.ts +876 -0
  259. package/src/client/api.ts +50 -21
  260. package/src/client/auth.ts +19 -19
  261. package/src/client/index.ts +16 -0
  262. package/src/client/managers/AuthManager.ts +175 -0
  263. package/src/client/managers/AuthenticationManager.ts +16 -14
  264. package/src/client/managers/BaseManager.ts +24 -5
  265. package/src/client/managers/ComposedAuthenticationManager.ts +409 -0
  266. package/src/client/managers/ComposedManagerFactory.ts +231 -0
  267. package/src/client/managers/ComposedRequestManager.ts +336 -0
  268. package/src/client/managers/JWTAuthImplementation.ts +326 -0
  269. package/src/client/managers/ManagersIndex.ts +6 -0
  270. package/src/client/managers/RequestManager.ts +9 -7
  271. package/src/client/managers/composed/MigrationAdapter.ts +263 -0
  272. package/src/client/managers/composed/index.ts +47 -0
  273. package/src/client/managers/implementations/ConfigurationProviderImpl.ts +52 -0
  274. package/src/client/managers/implementations/ErrorHandlerImpl.ts +102 -0
  275. package/src/client/managers/implementations/ParameterValidatorImpl.ts +221 -0
  276. package/src/client/managers/interfaces/ManagerInterfaces.ts +171 -0
  277. package/src/config/Config.ts +63 -0
  278. package/src/config/ConfigurationSchema.ts +17 -17
  279. package/src/config/ServerConfiguration.ts +18 -16
  280. package/src/config/index.ts +13 -0
  281. package/src/docs/DocumentationGenerator.ts +2 -2
  282. package/src/dxt-entry.ts +3 -3
  283. package/src/index.ts +43 -43
  284. package/src/performance/MetricsCollector.ts +15 -11
  285. package/src/security/AISecurityScanner.ts +7 -7
  286. package/src/security/AutomatedRemediation.ts +13 -11
  287. package/src/security/InputValidator.ts +10 -9
  288. package/src/security/SecurityCIPipeline.ts +494 -56
  289. package/src/security/SecurityConfigManager.ts +10 -10
  290. package/src/security/SecurityMonitoring.ts +5 -5
  291. package/src/security/SecurityReviewer.ts +13 -6
  292. package/src/security/index.ts +3 -3
  293. package/src/server/ConnectionTester.ts +5 -5
  294. package/src/server/ToolRegistry.ts +9 -8
  295. package/src/server/index.ts +10 -0
  296. package/src/tools/BaseToolManager.ts +55 -83
  297. package/src/tools/auth.ts +21 -12
  298. package/src/tools/comments.ts +23 -19
  299. package/src/tools/index.ts +1 -0
  300. package/src/tools/media.ts +23 -20
  301. package/src/tools/pages.ts +20 -13
  302. package/src/tools/performance.ts +101 -32
  303. package/src/tools/posts/PostHandlers.ts +23 -23
  304. package/src/tools/posts/PostToolDefinitions.ts +1 -1
  305. package/src/tools/posts/index.ts +2 -2
  306. package/src/tools/seo/BulkOperations.ts +557 -0
  307. package/src/tools/seo/SEOHandlers.ts +296 -0
  308. package/src/tools/seo/SEOToolDefinitions.ts +402 -0
  309. package/src/tools/seo/SEOTools.ts +871 -0
  310. package/src/tools/seo/analyzers/ContentAnalyzer.ts +493 -0
  311. package/src/tools/seo/auditors/SiteAuditor.ts +787 -0
  312. package/src/tools/seo/generators/MetaGenerator.ts +694 -0
  313. package/src/tools/seo/generators/SchemaGenerator.ts +955 -0
  314. package/src/tools/seo/index.ts +47 -0
  315. package/src/tools/seo/optimizers/InternalLinkingSuggester.ts +934 -0
  316. package/src/tools/site.ts +27 -26
  317. package/src/tools/taxonomies.ts +29 -25
  318. package/src/tools/users.ts +20 -13
  319. package/src/types/client.ts +8 -6
  320. package/src/types/seo.ts +546 -0
  321. package/src/utils/enhancedError.ts +1 -1
  322. package/src/utils/error.ts +1 -2
  323. package/src/utils/index.ts +23 -0
  324. package/src/utils/logger.ts +3 -3
  325. package/src/utils/toolWrapper.ts +10 -10
  326. package/src/utils/validation/core.ts +2 -2
  327. package/src/utils/validation/index.ts +2 -2
  328. package/src/utils/validation/network.ts +5 -5
  329. package/src/utils/validation/rateLimit.ts +1 -1
  330. package/src/utils/validation/security.ts +1 -1
  331. package/src/utils/validation/wordpress.ts +1 -1
  332. package/src/utils/version.ts +402 -0
@@ -0,0 +1,240 @@
1
+ /**
2
+ * JWT Authentication Implementation
3
+ * Complete JWT authentication with token refresh and RequestManager integration
4
+ */
5
+ import { AuthenticationError } from "../../types/client.js";
6
+ import { AUTH_METHODS } from "../../types/wordpress.js";
7
+ import { LoggerFactory } from "../../utils/logger.js";
8
+ export class JWTAuthImplementation {
9
+ requestManager;
10
+ authConfig;
11
+ logger = LoggerFactory.api();
12
+ jwtToken = null;
13
+ tokenExpiry = null;
14
+ refreshTokenValue = null;
15
+ constructor(requestManager, authConfig) {
16
+ this.requestManager = requestManager;
17
+ this.authConfig = authConfig;
18
+ }
19
+ /**
20
+ * Complete JWT authentication implementation
21
+ */
22
+ async authenticateJWT() {
23
+ if (!this.authConfig.username || !this.authConfig.password) {
24
+ throw new AuthenticationError("JWT authentication requires username and password", AUTH_METHODS.JWT);
25
+ }
26
+ try {
27
+ this.logger.info("Starting JWT authentication", {
28
+ username: this.authConfig.username,
29
+ endpoint: "jwt-auth/v1/token"
30
+ });
31
+ const response = await this.requestManager.request("POST", "jwt-auth/v1/token", {
32
+ username: this.authConfig.username,
33
+ password: this.authConfig.password,
34
+ }, {
35
+ skipAuth: true, // Don't use auth headers for the auth request itself
36
+ timeout: 10000,
37
+ });
38
+ if (!response.token) {
39
+ throw new AuthenticationError("JWT token not received in response", AUTH_METHODS.JWT);
40
+ }
41
+ // Store the JWT token
42
+ this.jwtToken = response.token;
43
+ // Calculate token expiry (default to 24 hours if not provided)
44
+ const expiresInSeconds = response.expires_in || (24 * 60 * 60);
45
+ this.tokenExpiry = Date.now() + (expiresInSeconds * 1000);
46
+ this.logger.info("JWT authentication successful", {
47
+ user: response.user_nicename,
48
+ expiresAt: new Date(this.tokenExpiry).toISOString(),
49
+ });
50
+ // Test the token by validating it
51
+ await this.validateToken();
52
+ }
53
+ catch (error) {
54
+ this.jwtToken = null;
55
+ this.tokenExpiry = null;
56
+ this.logger.error("JWT authentication failed", {
57
+ error: error instanceof Error ? error.message : String(error),
58
+ });
59
+ if (error instanceof Error) {
60
+ throw new AuthenticationError(`JWT authentication failed: ${error.message}`, AUTH_METHODS.JWT);
61
+ }
62
+ throw new AuthenticationError("JWT authentication failed", AUTH_METHODS.JWT);
63
+ }
64
+ }
65
+ /**
66
+ * Validate JWT token
67
+ */
68
+ async validateToken() {
69
+ if (!this.jwtToken) {
70
+ return false;
71
+ }
72
+ try {
73
+ const response = await this.requestManager.request("POST", "jwt-auth/v1/token/validate", {}, {
74
+ headers: {
75
+ Authorization: `Bearer ${this.jwtToken}`,
76
+ },
77
+ timeout: 5000,
78
+ });
79
+ const isValid = response.data.status === 200;
80
+ if (!isValid) {
81
+ this.logger.warn("JWT token validation failed", { response });
82
+ this.jwtToken = null;
83
+ this.tokenExpiry = null;
84
+ }
85
+ return isValid;
86
+ }
87
+ catch (error) {
88
+ this.logger.warn("JWT token validation error", {
89
+ error: error instanceof Error ? error.message : String(error),
90
+ });
91
+ return false;
92
+ }
93
+ }
94
+ /**
95
+ * Refresh JWT token
96
+ */
97
+ async refreshToken() {
98
+ if (!this.jwtToken) {
99
+ throw new AuthenticationError("No JWT token to refresh", AUTH_METHODS.JWT);
100
+ }
101
+ try {
102
+ this.logger.debug("Refreshing JWT token");
103
+ // Some JWT implementations support refresh endpoints
104
+ // First try the refresh endpoint if available
105
+ try {
106
+ const refreshResponse = await this.requestManager.request("POST", "jwt-auth/v1/token/refresh", {}, {
107
+ headers: {
108
+ Authorization: `Bearer ${this.jwtToken}`,
109
+ },
110
+ timeout: 5000,
111
+ });
112
+ if (refreshResponse.token) {
113
+ this.jwtToken = refreshResponse.token;
114
+ const expiresInSeconds = refreshResponse.expires_in || (24 * 60 * 60);
115
+ this.tokenExpiry = Date.now() + (expiresInSeconds * 1000);
116
+ this.logger.info("JWT token refreshed successfully", {
117
+ expiresAt: new Date(this.tokenExpiry).toISOString(),
118
+ });
119
+ return;
120
+ }
121
+ }
122
+ catch (_refreshError) {
123
+ this.logger.debug("JWT refresh endpoint not available, falling back to re-authentication");
124
+ }
125
+ // Fallback: Re-authenticate with original credentials
126
+ if (!this.authConfig.username || !this.authConfig.password) {
127
+ throw new AuthenticationError("Cannot refresh JWT token: original credentials not available", AUTH_METHODS.JWT);
128
+ }
129
+ this.logger.debug("Re-authenticating to refresh JWT token");
130
+ await this.authenticateJWT();
131
+ }
132
+ catch (error) {
133
+ this.jwtToken = null;
134
+ this.tokenExpiry = null;
135
+ this.logger.error("JWT token refresh failed", {
136
+ error: error instanceof Error ? error.message : String(error),
137
+ });
138
+ throw new AuthenticationError(`JWT token refresh failed: ${error instanceof Error ? error.message : 'Unknown error'}`, AUTH_METHODS.JWT);
139
+ }
140
+ }
141
+ /**
142
+ * Check if JWT token is expired
143
+ */
144
+ isTokenExpired() {
145
+ if (!this.tokenExpiry) {
146
+ return true;
147
+ }
148
+ // Consider token expired if it expires within 5 minutes (300000ms)
149
+ const buffer = 5 * 60 * 1000;
150
+ return Date.now() >= (this.tokenExpiry - buffer);
151
+ }
152
+ /**
153
+ * Get current JWT token
154
+ */
155
+ getToken() {
156
+ return this.jwtToken;
157
+ }
158
+ /**
159
+ * Get token expiry timestamp
160
+ */
161
+ getTokenExpiry() {
162
+ return this.tokenExpiry;
163
+ }
164
+ /**
165
+ * Clear JWT token and expiry
166
+ */
167
+ clearToken() {
168
+ this.jwtToken = null;
169
+ this.tokenExpiry = null;
170
+ this.refreshTokenValue = null;
171
+ this.logger.debug("JWT token cleared");
172
+ }
173
+ /**
174
+ * Get JWT auth headers
175
+ */
176
+ getAuthHeaders() {
177
+ if (!this.jwtToken) {
178
+ return {};
179
+ }
180
+ return {
181
+ Authorization: `Bearer ${this.jwtToken}`,
182
+ };
183
+ }
184
+ /**
185
+ * Check if we have a valid JWT token
186
+ */
187
+ hasValidToken() {
188
+ return this.jwtToken !== null && !this.isTokenExpired();
189
+ }
190
+ /**
191
+ * Automatic token refresh if needed
192
+ */
193
+ async ensureValidToken() {
194
+ if (!this.jwtToken) {
195
+ // No token, need to authenticate
196
+ await this.authenticateJWT();
197
+ return;
198
+ }
199
+ if (this.isTokenExpired()) {
200
+ // Token expired, need to refresh
201
+ await this.refreshToken();
202
+ return;
203
+ }
204
+ // Token is still valid
205
+ }
206
+ /**
207
+ * Logout and invalidate token
208
+ */
209
+ async logout() {
210
+ if (!this.jwtToken) {
211
+ return;
212
+ }
213
+ try {
214
+ // Try to invalidate the token on the server
215
+ await this.requestManager.request("POST", "jwt-auth/v1/token/invalidate", {}, {
216
+ headers: this.getAuthHeaders(),
217
+ timeout: 5000,
218
+ });
219
+ this.logger.info("JWT token invalidated on server");
220
+ }
221
+ catch (error) {
222
+ this.logger.warn("Failed to invalidate JWT token on server", {
223
+ error: error instanceof Error ? error.message : String(error),
224
+ });
225
+ }
226
+ this.clearToken();
227
+ }
228
+ /**
229
+ * Get token information
230
+ */
231
+ getTokenInfo() {
232
+ return {
233
+ hasToken: this.jwtToken !== null,
234
+ isExpired: this.isTokenExpired(),
235
+ expiresAt: this.tokenExpiry ? new Date(this.tokenExpiry).toISOString() : null,
236
+ expiresIn: this.tokenExpiry ? Math.max(0, this.tokenExpiry - Date.now()) : null,
237
+ };
238
+ }
239
+ }
240
+ //# sourceMappingURL=JWTAuthImplementation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JWTAuthImplementation.js","sourceRoot":"","sources":["../../../src/client/managers/JWTAuthImplementation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Managers Index
3
+ * Export all manager classes
4
+ */
5
+ export { AuthManager, type JWTToken } from "./AuthManager.js";
6
+ //# sourceMappingURL=ManagersIndex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManagersIndex.d.ts","sourceRoot":"","sources":["../../../src/client/managers/ManagersIndex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Managers Index
3
+ * Export all manager classes
4
+ */
5
+ export { AuthManager } from "./AuthManager.js";
6
+ //# sourceMappingURL=ManagersIndex.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ManagersIndex.js","sourceRoot":"","sources":["../../../src/client/managers/ManagersIndex.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"RequestManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAG5G,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAGnE,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAwB;gBAE/B,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB;IAenF;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBhH;;OAEG;YACW,oBAAoB;IAqClC;;OAEG;YACW,WAAW;IAkEzB;;OAEG;YACW,mBAAmB;IA6BjC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,QAAQ,IAAI,WAAW;CAGxB"}
1
+ {"version":3,"file":"RequestManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAGxG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAInE,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,WAAW,CAAwB;gBAE/B,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB;IAgBnF;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,CAAC,CAAC;IAoBhH;;OAEG;YACW,oBAAoB;IAqClC;;OAEG;YACW,WAAW;IAkEzB;;OAEG;YACW,mBAAmB;IA6BjC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAOjC;;OAEG;IACH,QAAQ,IAAI,WAAW;CAGxB"}
@@ -6,6 +6,7 @@ import { WordPressAPIError, RateLimitError } from "../../types/client.js";
6
6
  import { config } from "../../config/Config.js";
7
7
  import { BaseManager } from "./BaseManager.js";
8
8
  import { debug, startTimer } from "../../utils/debug.js";
9
+ import { getUserAgent } from "../../utils/version.js";
9
10
  export class RequestManager extends BaseManager {
10
11
  stats;
11
12
  lastRequestTime = 0;
@@ -22,6 +23,7 @@ export class RequestManager extends BaseManager {
22
23
  averageResponseTime: 0,
23
24
  rateLimitHits: 0,
24
25
  authFailures: 0,
26
+ errors: 0,
25
27
  };
26
28
  }
27
29
  /**
@@ -36,9 +38,9 @@ export class RequestManager extends BaseManager {
36
38
  this.updateAverageResponseTime(timer.end());
37
39
  return response;
38
40
  }
39
- catch (error) {
41
+ catch (_error) {
40
42
  this.stats.failedRequests++;
41
- this.handleError(error, `${method} ${endpoint}`);
43
+ this.handleError(_error, `${method} ${endpoint}`);
42
44
  }
43
45
  finally {
44
46
  this.stats.totalRequests++;
@@ -88,7 +90,7 @@ export class RequestManager extends BaseManager {
88
90
  method,
89
91
  headers: {
90
92
  "Content-Type": "application/json",
91
- "User-Agent": "MCP-WordPress/1.1.1",
93
+ "User-Agent": getUserAgent(),
92
94
  ...authHeaders, // Add auth headers before custom headers
93
95
  ...options.headers,
94
96
  },
@@ -1 +1 @@
1
- {"version":3,"file":"RequestManager.js","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RequestManager.js","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Migration Adapter
3
+ * Provides backward compatibility while transitioning from inheritance to composition
4
+ */
5
+ import type { WordPressClientConfig, HTTPMethod } from "../../../types/client.js";
6
+ import { RequestManager } from "../RequestManager.js";
7
+ import { AuthenticationManager } from "../AuthenticationManager.js";
8
+ import { ComposedAuthenticationManager } from "../ComposedAuthenticationManager.js";
9
+ /**
10
+ * Adapter that wraps composed managers to provide the same interface as inheritance-based ones
11
+ */
12
+ export declare class RequestManagerAdapter {
13
+ private composedManager;
14
+ constructor(clientConfig: WordPressClientConfig, authManager: AuthenticationManager | ComposedAuthenticationManager);
15
+ /**
16
+ * Initialize the adapter
17
+ */
18
+ initialize(): Promise<void>;
19
+ /**
20
+ * Delegate request method to composed manager
21
+ */
22
+ request<T>(method: HTTPMethod, endpoint: string, data?: unknown, options?: unknown): Promise<T>;
23
+ /**
24
+ * Delegate stats method
25
+ */
26
+ getStats(): unknown;
27
+ /**
28
+ * Delegate reset stats method
29
+ */
30
+ resetStats(): void;
31
+ /**
32
+ * Cleanup method
33
+ */
34
+ dispose(): void;
35
+ }
36
+ /**
37
+ * Migration utilities for gradual transition
38
+ */
39
+ export declare class MigrationAdapter {
40
+ /**
41
+ * Create managers using the new composition approach but with backward-compatible interface
42
+ */
43
+ static createCompatibleManagers(config: WordPressClientConfig): Promise<{
44
+ requestManager: RequestManagerAdapter;
45
+ authManager: ComposedAuthenticationManager;
46
+ }>;
47
+ /**
48
+ * Factory method that returns either old or new managers based on feature flag
49
+ */
50
+ static createManagers(config: WordPressClientConfig, useComposition?: boolean): Promise<{
51
+ requestManager: RequestManager | RequestManagerAdapter;
52
+ authManager: AuthenticationManager | ComposedAuthenticationManager;
53
+ }>;
54
+ /**
55
+ * Check if a manager is using the new composed approach
56
+ */
57
+ static isComposed(manager: unknown): boolean;
58
+ /**
59
+ * Get migration progress information
60
+ */
61
+ static getMigrationStatus(managers: unknown[]): {
62
+ total: number;
63
+ composed: number;
64
+ inheritance: number;
65
+ percentage: number;
66
+ };
67
+ /**
68
+ * Performance comparison between inheritance and composition approaches
69
+ */
70
+ static performanceComparison(config: WordPressClientConfig, iterations?: number): Promise<{
71
+ inheritance: number;
72
+ composition: number;
73
+ improvement: string;
74
+ }>;
75
+ /**
76
+ * Migration guide generator
77
+ */
78
+ static generateMigrationGuide(): string;
79
+ }
80
+ //# sourceMappingURL=MigrationAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationAdapter.d.ts","sourceRoot":"","sources":["../../../../src/client/managers/composed/MigrationAdapter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,qCAAqC,CAAC;AAEpF;;GAEG;AACH,qBAAa,qBAAqB;IAChC,OAAO,CAAC,eAAe,CAAyB;gBAEpC,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,qBAAqB,GAAG,6BAA6B;IAcnH;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAIjC;;OAEG;IACG,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC;IASrG;;OAEG;IACH,QAAQ,IAAI,OAAO;IAInB;;OAEG;IACH,UAAU,IAAI,IAAI;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;CAGhB;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B;;OAEG;WACU,wBAAwB,CAAC,MAAM,EAAE,qBAAqB,GAAG,OAAO,CAAC;QAC5E,cAAc,EAAE,qBAAqB,CAAC;QACtC,WAAW,EAAE,6BAA6B,CAAC;KAC5C,CAAC;IAaF;;OAEG;WACU,cAAc,CACzB,MAAM,EAAE,qBAAqB,EAC7B,cAAc,GAAE,OAAc,GAC7B,OAAO,CAAC;QACT,cAAc,EAAE,cAAc,GAAG,qBAAqB,CAAC;QACvD,WAAW,EAAE,qBAAqB,GAAG,6BAA6B,CAAC;KACpE,CAAC;IASF;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAQ5C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG;QAC9C,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,UAAU,EAAE,MAAM,CAAC;KACpB;IAcD;;OAEG;WACU,qBAAqB,CAChC,MAAM,EAAE,qBAAqB,EAC7B,UAAU,GAAE,MAAY,GACvB,OAAO,CAAC;QACT,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;IAqBF;;OAEG;IACH,MAAM,CAAC,sBAAsB,IAAI,MAAM;CAkFxC"}
@@ -0,0 +1,214 @@
1
+ /**
2
+ * Migration Adapter
3
+ * Provides backward compatibility while transitioning from inheritance to composition
4
+ */
5
+ import { ComposedRequestManager } from "../ComposedRequestManager.js";
6
+ import { ComposedAuthenticationManager } from "../ComposedAuthenticationManager.js";
7
+ /**
8
+ * Adapter that wraps composed managers to provide the same interface as inheritance-based ones
9
+ */
10
+ export class RequestManagerAdapter {
11
+ composedManager;
12
+ constructor(clientConfig, authManager) {
13
+ // If the authManager is the old inheritance-based one, create a composed one
14
+ let composedAuthManager;
15
+ if (authManager instanceof ComposedAuthenticationManager) {
16
+ composedAuthManager = authManager;
17
+ }
18
+ else {
19
+ // Create composed auth manager from config
20
+ composedAuthManager = ComposedAuthenticationManager.create(clientConfig);
21
+ }
22
+ this.composedManager = ComposedRequestManager.create(clientConfig, composedAuthManager);
23
+ }
24
+ /**
25
+ * Initialize the adapter
26
+ */
27
+ async initialize() {
28
+ await this.composedManager.initialize();
29
+ }
30
+ /**
31
+ * Delegate request method to composed manager
32
+ */
33
+ async request(method, endpoint, data, options) {
34
+ return this.composedManager.request(method, endpoint, data, options);
35
+ }
36
+ /**
37
+ * Delegate stats method
38
+ */
39
+ getStats() {
40
+ return this.composedManager.getStats();
41
+ }
42
+ /**
43
+ * Delegate reset stats method
44
+ */
45
+ resetStats() {
46
+ this.composedManager.resetStats();
47
+ }
48
+ /**
49
+ * Cleanup method
50
+ */
51
+ dispose() {
52
+ this.composedManager.dispose();
53
+ }
54
+ }
55
+ /**
56
+ * Migration utilities for gradual transition
57
+ */
58
+ export class MigrationAdapter {
59
+ /**
60
+ * Create managers using the new composition approach but with backward-compatible interface
61
+ */
62
+ static async createCompatibleManagers(config) {
63
+ const authManager = ComposedAuthenticationManager.create(config);
64
+ await authManager.authenticate();
65
+ const requestManager = new RequestManagerAdapter(config, authManager);
66
+ await requestManager.initialize();
67
+ return {
68
+ requestManager,
69
+ authManager,
70
+ };
71
+ }
72
+ /**
73
+ * Factory method that returns either old or new managers based on feature flag
74
+ */
75
+ static async createManagers(config, useComposition = true) {
76
+ if (useComposition) {
77
+ return MigrationAdapter.createCompatibleManagers(config);
78
+ }
79
+ else {
80
+ // Return old inheritance-based managers (simplified for now)
81
+ throw new Error("Legacy managers not available in this implementation");
82
+ }
83
+ }
84
+ /**
85
+ * Check if a manager is using the new composed approach
86
+ */
87
+ static isComposed(manager) {
88
+ return (manager instanceof ComposedAuthenticationManager ||
89
+ manager instanceof ComposedRequestManager ||
90
+ manager instanceof RequestManagerAdapter);
91
+ }
92
+ /**
93
+ * Get migration progress information
94
+ */
95
+ static getMigrationStatus(managers) {
96
+ const total = managers.length;
97
+ const composed = managers.filter((manager) => MigrationAdapter.isComposed(manager)).length;
98
+ const inheritance = total - composed;
99
+ const percentage = total > 0 ? Math.round((composed / total) * 100) : 0;
100
+ return {
101
+ total,
102
+ composed,
103
+ inheritance,
104
+ percentage,
105
+ };
106
+ }
107
+ /**
108
+ * Performance comparison between inheritance and composition approaches
109
+ */
110
+ static async performanceComparison(config, iterations = 100) {
111
+ // Running performance comparison with iterations
112
+ // Test composition approach only (inheritance baseline would require old managers)
113
+ const compositionStart = performance.now();
114
+ for (let i = 0; i < iterations; i++) {
115
+ const authManager = ComposedAuthenticationManager.create(config);
116
+ const requestManager = ComposedRequestManager.create(config, authManager);
117
+ // Simulate usage
118
+ authManager.isAuthenticated();
119
+ requestManager.getStats();
120
+ }
121
+ const compositionTime = performance.now() - compositionStart;
122
+ return {
123
+ inheritance: 0, // Would require old managers to measure
124
+ composition: compositionTime,
125
+ improvement: "Composition pattern implemented",
126
+ };
127
+ }
128
+ /**
129
+ * Migration guide generator
130
+ */
131
+ static generateMigrationGuide() {
132
+ return `
133
+ # Migration Guide: Inheritance to Composition
134
+
135
+ ## Overview
136
+ This migration guide helps transition from inheritance-based managers to composition-based managers.
137
+
138
+ ## Benefits of Composition
139
+ 1. **Better Testability**: Each component can be tested in isolation
140
+ 2. **Improved Flexibility**: Components can be mixed and matched
141
+ 3. **SOLID Principles**: Better adherence to Single Responsibility and Dependency Inversion
142
+ 4. **Reduced Coupling**: Components depend on interfaces, not concrete classes
143
+
144
+ ## Migration Steps
145
+
146
+ ### Step 1: Update Imports
147
+ \`\`\`typescript
148
+ // Old approach
149
+ import { RequestManager } from '../../managers/RequestManager.js';
150
+ import { AuthenticationManager } from '../../managers/AuthenticationManager.js';
151
+
152
+ // New approach
153
+ import { createComposedWordPressClient } from '../../managers/composed';
154
+ \`\`\`
155
+
156
+ ### Step 2: Replace Manager Creation
157
+ \`\`\`typescript
158
+ // Old approach
159
+ const authManager = new AuthenticationManager(config);
160
+ const requestManager = new RequestManager(config, authManager);
161
+
162
+ // New approach
163
+ const client = await createComposedWordPressClient(config);
164
+ \`\`\`
165
+
166
+ ### Step 3: Update Usage Patterns
167
+ \`\`\`typescript
168
+ // Old approach
169
+ await requestManager.request('GET', '/wp/v2/posts');
170
+
171
+ // New approach
172
+ await client.request('GET', '/wp/v2/posts');
173
+ // or use convenience methods
174
+ await client.getPosts();
175
+ \`\`\`
176
+
177
+ ### Step 4: Handle Dependency Injection
178
+ \`\`\`typescript
179
+ // Custom implementations can be injected
180
+ const customErrorHandler = new CustomErrorHandler();
181
+ const factory = new ComposedManagerFactory();
182
+ const client = await factory.createComposedClient({
183
+ clientConfig: config,
184
+ customErrorHandler
185
+ });
186
+ \`\`\`
187
+
188
+ ## Gradual Migration
189
+ Use the MigrationAdapter for gradual migration:
190
+
191
+ \`\`\`typescript
192
+ import { MigrationAdapter } from '../../managers/composed';
193
+
194
+ // Feature flag to control migration
195
+ const USE_COMPOSITION = process.env.USE_COMPOSED_MANAGERS === 'true';
196
+
197
+ const { requestManager, authManager } = await MigrationAdapter.createManagers(
198
+ config,
199
+ USE_COMPOSITION
200
+ );
201
+ \`\`\`
202
+
203
+ ## Testing the Migration
204
+ 1. Run existing tests with both approaches
205
+ 2. Performance test both implementations
206
+ 3. Gradually migrate components one by one
207
+ 4. Monitor for any behavioral differences
208
+
209
+ ## Rollback Plan
210
+ The MigrationAdapter provides backward compatibility, allowing easy rollback if issues arise.
211
+ `;
212
+ }
213
+ }
214
+ //# sourceMappingURL=MigrationAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MigrationAdapter.js","sourceRoot":"","sources":["../../../../src/client/managers/composed/MigrationAdapter.ts"],"names":[],"mappings":"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"}