mcp-wordpress 2.4.2 → 2.5.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 (348) hide show
  1. package/README.md +114 -48
  2. package/dist/ajv-patch.js +34 -0
  3. package/dist/cache/CacheInvalidation.d.ts +3 -1
  4. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  5. package/dist/cache/CacheInvalidation.js +10 -4
  6. package/dist/cache/CacheInvalidation.js.map +1 -1
  7. package/dist/cache/CacheManager.d.ts +3 -2
  8. package/dist/cache/CacheManager.d.ts.map +1 -1
  9. package/dist/cache/CacheManager.js +11 -3
  10. package/dist/cache/CacheManager.js.map +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts +7 -6
  12. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  13. package/dist/cache/HttpCacheWrapper.js +8 -5
  14. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  15. package/dist/cache/__tests__/HttpCacheWrapper.test.js +6 -5
  16. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
  17. package/dist/cache/index.d.ts +3 -3
  18. package/dist/cache/index.d.ts.map +1 -1
  19. package/dist/cache/index.js +1 -1
  20. package/dist/cache/index.js.map +1 -1
  21. package/dist/client/CachedWordPressClient.d.ts +23 -9
  22. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  23. package/dist/client/CachedWordPressClient.js +4 -1
  24. package/dist/client/CachedWordPressClient.js.map +1 -1
  25. package/dist/client/MockWordPressClient.d.ts +2 -1
  26. package/dist/client/MockWordPressClient.d.ts.map +1 -1
  27. package/dist/client/MockWordPressClient.js +3 -1
  28. package/dist/client/MockWordPressClient.js.map +1 -1
  29. package/dist/client/api.d.ts +17 -13
  30. package/dist/client/api.d.ts.map +1 -1
  31. package/dist/client/api.js +135 -30
  32. package/dist/client/api.js.map +1 -1
  33. package/dist/client/auth.d.ts.map +1 -1
  34. package/dist/client/auth.js +2 -3
  35. package/dist/client/auth.js.map +1 -1
  36. package/dist/client/managers/AuthenticationManager.d.ts +55 -2
  37. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  38. package/dist/client/managers/AuthenticationManager.js +269 -71
  39. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  40. package/dist/client/managers/BaseManager.d.ts +3 -3
  41. package/dist/client/managers/BaseManager.d.ts.map +1 -1
  42. package/dist/client/managers/BaseManager.js +11 -5
  43. package/dist/client/managers/BaseManager.js.map +1 -1
  44. package/dist/client/managers/RequestManager.d.ts +2 -2
  45. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  46. package/dist/client/managers/RequestManager.js +25 -12
  47. package/dist/client/managers/RequestManager.js.map +1 -1
  48. package/dist/config/Config.d.ts +155 -0
  49. package/dist/config/Config.d.ts.map +1 -0
  50. package/dist/config/Config.js +215 -0
  51. package/dist/config/Config.js.map +1 -0
  52. package/dist/config/ConfigurationSchema.d.ts +21 -21
  53. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  54. package/dist/config/ConfigurationSchema.js +19 -2
  55. package/dist/config/ConfigurationSchema.js.map +1 -1
  56. package/dist/config/ServerConfiguration.d.ts +2 -1
  57. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  58. package/dist/config/ServerConfiguration.js +50 -41
  59. package/dist/config/ServerConfiguration.js.map +1 -1
  60. package/dist/docs/DocumentationGenerator.d.ts +9 -8
  61. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  62. package/dist/docs/DocumentationGenerator.js +10 -7
  63. package/dist/docs/DocumentationGenerator.js.map +1 -1
  64. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  65. package/dist/docs/MarkdownFormatter.js +3 -2
  66. package/dist/docs/MarkdownFormatter.js.map +1 -1
  67. package/dist/dxt-entry.cjs +81 -0
  68. package/dist/dxt-entry.js +15 -14
  69. package/dist/dxt-entry.js.map +1 -1
  70. package/dist/index.d.ts +3 -1
  71. package/dist/index.d.ts.map +1 -1
  72. package/dist/index.js +37 -21
  73. package/dist/index.js.map +1 -1
  74. package/dist/performance/MetricsCollector.d.ts +13 -7
  75. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  76. package/dist/performance/MetricsCollector.js +69 -27
  77. package/dist/performance/MetricsCollector.js.map +1 -1
  78. package/dist/performance/PerformanceAnalytics.d.ts +8 -2
  79. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  80. package/dist/performance/PerformanceAnalytics.js +17 -47
  81. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  82. package/dist/performance/PerformanceMonitor.d.ts +2 -1
  83. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  84. package/dist/performance/PerformanceMonitor.js +12 -13
  85. package/dist/performance/PerformanceMonitor.js.map +1 -1
  86. package/dist/performance/index.d.ts +2 -2
  87. package/dist/performance/index.d.ts.map +1 -1
  88. package/dist/security/AISecurityScanner.d.ts +1 -0
  89. package/dist/security/AISecurityScanner.d.ts.map +1 -1
  90. package/dist/security/AISecurityScanner.js +22 -12
  91. package/dist/security/AISecurityScanner.js.map +1 -1
  92. package/dist/security/AutomatedRemediation.d.ts +4 -3
  93. package/dist/security/AutomatedRemediation.d.ts.map +1 -1
  94. package/dist/security/AutomatedRemediation.js +46 -15
  95. package/dist/security/AutomatedRemediation.js.map +1 -1
  96. package/dist/security/InputValidator.d.ts +13 -9
  97. package/dist/security/InputValidator.d.ts.map +1 -1
  98. package/dist/security/InputValidator.js +4 -2
  99. package/dist/security/InputValidator.js.map +1 -1
  100. package/dist/security/SecurityCIPipeline.d.ts +1 -1
  101. package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
  102. package/dist/security/SecurityCIPipeline.js +38 -29
  103. package/dist/security/SecurityCIPipeline.js.map +1 -1
  104. package/dist/security/SecurityConfig.d.ts +3 -3
  105. package/dist/security/SecurityConfig.d.ts.map +1 -1
  106. package/dist/security/SecurityConfig.js +13 -9
  107. package/dist/security/SecurityConfig.js.map +1 -1
  108. package/dist/security/SecurityConfigManager.d.ts +2 -2
  109. package/dist/security/SecurityConfigManager.d.ts.map +1 -1
  110. package/dist/security/SecurityConfigManager.js +20 -15
  111. package/dist/security/SecurityConfigManager.js.map +1 -1
  112. package/dist/security/SecurityMonitoring.d.ts +2 -2
  113. package/dist/security/SecurityMonitoring.d.ts.map +1 -1
  114. package/dist/security/SecurityMonitoring.js +19 -17
  115. package/dist/security/SecurityMonitoring.js.map +1 -1
  116. package/dist/security/SecurityReviewer.d.ts.map +1 -1
  117. package/dist/security/SecurityReviewer.js +10 -7
  118. package/dist/security/SecurityReviewer.js.map +1 -1
  119. package/dist/security/index.d.ts +24 -23
  120. package/dist/security/index.d.ts.map +1 -1
  121. package/dist/security/index.js +52 -23
  122. package/dist/security/index.js.map +1 -1
  123. package/dist/server/ConnectionTester.d.ts +12 -4
  124. package/dist/server/ConnectionTester.d.ts.map +1 -1
  125. package/dist/server/ConnectionTester.js +96 -22
  126. package/dist/server/ConnectionTester.js.map +1 -1
  127. package/dist/server/ToolRegistry.d.ts +2 -2
  128. package/dist/server/ToolRegistry.d.ts.map +1 -1
  129. package/dist/server/ToolRegistry.js +10 -5
  130. package/dist/server/ToolRegistry.js.map +1 -1
  131. package/dist/tools/BaseToolManager.d.ts +47 -11
  132. package/dist/tools/BaseToolManager.d.ts.map +1 -1
  133. package/dist/tools/BaseToolManager.js +168 -29
  134. package/dist/tools/BaseToolManager.js.map +1 -1
  135. package/dist/tools/auth.d.ts +16 -10
  136. package/dist/tools/auth.d.ts.map +1 -1
  137. package/dist/tools/auth.js +3 -2
  138. package/dist/tools/auth.js.map +1 -1
  139. package/dist/tools/cache.d.ts +30 -30
  140. package/dist/tools/cache.d.ts.map +1 -1
  141. package/dist/tools/cache.js +1 -6
  142. package/dist/tools/cache.js.map +1 -1
  143. package/dist/tools/comments.d.ts +20 -20
  144. package/dist/tools/comments.d.ts.map +1 -1
  145. package/dist/tools/comments.js +16 -9
  146. package/dist/tools/comments.js.map +1 -1
  147. package/dist/tools/media.d.ts +18 -16
  148. package/dist/tools/media.d.ts.map +1 -1
  149. package/dist/tools/media.js +16 -15
  150. package/dist/tools/media.js.map +1 -1
  151. package/dist/tools/pages.d.ts +19 -17
  152. package/dist/tools/pages.d.ts.map +1 -1
  153. package/dist/tools/pages.js +16 -12
  154. package/dist/tools/pages.js.map +1 -1
  155. package/dist/tools/performance.d.ts +11 -1
  156. package/dist/tools/performance.d.ts.map +1 -1
  157. package/dist/tools/performance.js +67 -34
  158. package/dist/tools/performance.js.map +1 -1
  159. package/dist/tools/posts/PostHandlers.d.ts +46 -0
  160. package/dist/tools/posts/PostHandlers.d.ts.map +1 -0
  161. package/dist/tools/posts/PostHandlers.js +400 -0
  162. package/dist/tools/posts/PostHandlers.js.map +1 -0
  163. package/dist/tools/posts/PostToolDefinitions.d.ts +37 -0
  164. package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  165. package/dist/tools/posts/PostToolDefinitions.js +236 -0
  166. package/dist/tools/posts/PostToolDefinitions.js.map +1 -0
  167. package/dist/tools/posts/index.d.ts +138 -0
  168. package/dist/tools/posts/index.d.ts.map +1 -0
  169. package/dist/tools/posts/index.js +163 -0
  170. package/dist/tools/posts/index.js.map +1 -0
  171. package/dist/tools/posts.d.ts +10 -246
  172. package/dist/tools/posts.d.ts.map +1 -1
  173. package/dist/tools/posts.js +11 -723
  174. package/dist/tools/posts.js.map +1 -1
  175. package/dist/tools/site.d.ts +19 -18
  176. package/dist/tools/site.d.ts.map +1 -1
  177. package/dist/tools/site.js +14 -10
  178. package/dist/tools/site.js.map +1 -1
  179. package/dist/tools/taxonomies.d.ts +23 -24
  180. package/dist/tools/taxonomies.d.ts.map +1 -1
  181. package/dist/tools/taxonomies.js +24 -18
  182. package/dist/tools/taxonomies.js.map +1 -1
  183. package/dist/tools/users.d.ts +20 -15
  184. package/dist/tools/users.d.ts.map +1 -1
  185. package/dist/tools/users.js +12 -8
  186. package/dist/tools/users.js.map +1 -1
  187. package/dist/types/client.d.ts +48 -41
  188. package/dist/types/client.d.ts.map +1 -1
  189. package/dist/types/client.js +30 -5
  190. package/dist/types/client.js.map +1 -1
  191. package/dist/types/enhanced.d.ts +237 -0
  192. package/dist/types/enhanced.d.ts.map +1 -0
  193. package/dist/types/enhanced.js +49 -0
  194. package/dist/types/enhanced.js.map +1 -0
  195. package/dist/types/index.d.ts +15 -12
  196. package/dist/types/index.d.ts.map +1 -1
  197. package/dist/types/index.js +2 -0
  198. package/dist/types/index.js.map +1 -1
  199. package/dist/types/mcp.d.ts +12 -12
  200. package/dist/types/mcp.d.ts.map +1 -1
  201. package/dist/types/requests.d.ts +322 -0
  202. package/dist/types/requests.d.ts.map +1 -0
  203. package/dist/types/requests.js +8 -0
  204. package/dist/types/requests.js.map +1 -0
  205. package/dist/types/tools.d.ts +506 -0
  206. package/dist/types/tools.d.ts.map +1 -0
  207. package/dist/types/tools.js +8 -0
  208. package/dist/types/tools.js.map +1 -0
  209. package/dist/types/wordpress.d.ts +43 -15
  210. package/dist/types/wordpress.d.ts.map +1 -1
  211. package/dist/types/wordpress.js +8 -1
  212. package/dist/types/wordpress.js.map +1 -1
  213. package/dist/utils/debug.d.ts +19 -11
  214. package/dist/utils/debug.d.ts.map +1 -1
  215. package/dist/utils/debug.js +46 -10
  216. package/dist/utils/debug.js.map +1 -1
  217. package/dist/utils/enhancedError.d.ts +8 -8
  218. package/dist/utils/enhancedError.d.ts.map +1 -1
  219. package/dist/utils/enhancedError.js.map +1 -1
  220. package/dist/utils/error.d.ts +2 -4
  221. package/dist/utils/error.d.ts.map +1 -1
  222. package/dist/utils/error.js +42 -5
  223. package/dist/utils/error.js.map +1 -1
  224. package/dist/utils/logger.d.ts +106 -0
  225. package/dist/utils/logger.d.ts.map +1 -0
  226. package/dist/utils/logger.js +280 -0
  227. package/dist/utils/logger.js.map +1 -0
  228. package/dist/utils/streaming.d.ts +9 -9
  229. package/dist/utils/streaming.d.ts.map +1 -1
  230. package/dist/utils/streaming.js +71 -52
  231. package/dist/utils/streaming.js.map +1 -1
  232. package/dist/utils/toolWrapper.d.ts +9 -7
  233. package/dist/utils/toolWrapper.d.ts.map +1 -1
  234. package/dist/utils/toolWrapper.js.map +1 -1
  235. package/dist/utils/validation/core.d.ts +21 -0
  236. package/dist/utils/validation/core.d.ts.map +1 -0
  237. package/dist/utils/validation/core.js +71 -0
  238. package/dist/utils/validation/core.js.map +1 -0
  239. package/dist/utils/validation/index.d.ts +25 -0
  240. package/dist/utils/validation/index.d.ts.map +1 -0
  241. package/dist/utils/validation/index.js +29 -0
  242. package/dist/utils/validation/index.js.map +1 -0
  243. package/dist/utils/validation/network.d.ts +19 -0
  244. package/dist/utils/validation/network.d.ts.map +1 -0
  245. package/dist/utils/validation/network.js +93 -0
  246. package/dist/utils/validation/network.js.map +1 -0
  247. package/dist/utils/validation/rateLimit.d.ts +21 -0
  248. package/dist/utils/validation/rateLimit.d.ts.map +1 -0
  249. package/dist/utils/validation/rateLimit.js +43 -0
  250. package/dist/utils/validation/rateLimit.js.map +1 -0
  251. package/dist/utils/validation/security.d.ts +29 -0
  252. package/dist/utils/validation/security.d.ts.map +1 -0
  253. package/dist/utils/validation/security.js +327 -0
  254. package/dist/utils/validation/security.js.map +1 -0
  255. package/dist/utils/validation/wordpress.d.ts +31 -0
  256. package/dist/utils/validation/wordpress.d.ts.map +1 -0
  257. package/dist/utils/validation/wordpress.js +146 -0
  258. package/dist/utils/validation/wordpress.js.map +1 -0
  259. package/dist/utils/validation.d.ts +13 -82
  260. package/dist/utils/validation.d.ts.map +1 -1
  261. package/dist/utils/validation.js +25 -343
  262. package/dist/utils/validation.js.map +1 -1
  263. package/docs/BADGE_UPDATES.md +132 -0
  264. package/docs/CI_CD_IMPROVEMENTS.md +191 -0
  265. package/docs/INCREMENTAL_COVERAGE.md +183 -0
  266. package/docs/api/README.md +3 -1
  267. package/docs/api/openapi.json +5 -1
  268. package/docs/api/summary.json +1 -1
  269. package/docs/api/tools/wp_create_post.md +12 -14
  270. package/docs/examples/claude-desktop-config.md +1 -1
  271. package/docs/examples/docker-production.md +100 -93
  272. package/docs/examples/multi-site-setup.md +5 -4
  273. package/docs/examples/single-site-setup.md +3 -4
  274. package/docs/examples/use-case-workflows.md +4 -5
  275. package/docs/integrations/claude-desktop.md +31 -31
  276. package/docs/integrations/cline.md +4 -4
  277. package/docs/integrations/vs-code.md +9 -8
  278. package/docs/user-guides/SMITHERY_SETUP.md +10 -10
  279. package/package.json +44 -25
  280. package/src/cache/CacheInvalidation.ts +12 -5
  281. package/src/cache/CacheManager.ts +18 -15
  282. package/src/cache/HttpCacheWrapper.ts +30 -59
  283. package/src/cache/__tests__/HttpCacheWrapper.test.ts +6 -5
  284. package/src/cache/index.ts +3 -14
  285. package/src/client/CachedWordPressClient.ts +32 -30
  286. package/src/client/MockWordPressClient.ts +4 -2
  287. package/src/client/api.ts +186 -64
  288. package/src/client/auth.ts +15 -40
  289. package/src/client/managers/AuthenticationManager.ts +337 -77
  290. package/src/client/managers/BaseManager.ts +18 -30
  291. package/src/client/managers/RequestManager.ts +39 -44
  292. package/src/config/Config.ts +308 -0
  293. package/src/config/ConfigurationSchema.ts +23 -2
  294. package/src/config/ServerConfiguration.ts +51 -47
  295. package/src/docs/DocumentationGenerator.ts +50 -39
  296. package/src/docs/MarkdownFormatter.ts +19 -29
  297. package/src/dxt-entry.cjs +26 -16
  298. package/src/dxt-entry.ts +17 -27
  299. package/src/index.ts +42 -28
  300. package/src/performance/MetricsCollector.ts +108 -86
  301. package/src/performance/PerformanceAnalytics.ts +69 -164
  302. package/src/performance/PerformanceMonitor.ts +32 -47
  303. package/src/performance/index.ts +2 -10
  304. package/src/security/AISecurityScanner.ts +22 -12
  305. package/src/security/AutomatedRemediation.ts +49 -18
  306. package/src/security/InputValidator.ts +9 -6
  307. package/src/security/SecurityCIPipeline.ts +53 -37
  308. package/src/security/SecurityConfig.ts +22 -22
  309. package/src/security/SecurityConfigManager.ts +23 -19
  310. package/src/security/SecurityMonitoring.ts +24 -21
  311. package/src/security/SecurityReviewer.ts +10 -7
  312. package/src/security/index.ts +64 -29
  313. package/src/server/ConnectionTester.ts +120 -31
  314. package/src/server/ToolRegistry.ts +31 -21
  315. package/src/tools/BaseToolManager.ts +286 -33
  316. package/src/tools/auth.ts +20 -8
  317. package/src/tools/cache.ts +5 -15
  318. package/src/tools/comments.ts +34 -48
  319. package/src/tools/media.ts +41 -53
  320. package/src/tools/pages.ts +32 -54
  321. package/src/tools/performance.ts +141 -176
  322. package/src/tools/posts/PostHandlers.ts +474 -0
  323. package/src/tools/posts/PostToolDefinitions.ts +250 -0
  324. package/src/tools/posts/index.ts +192 -0
  325. package/src/tools/posts.ts +24 -780
  326. package/src/tools/site.ts +34 -19
  327. package/src/tools/taxonomies.ts +41 -57
  328. package/src/tools/users.ts +28 -16
  329. package/src/types/client.ts +114 -138
  330. package/src/types/enhanced.ts +318 -0
  331. package/src/types/index.ts +51 -30
  332. package/src/types/mcp.ts +20 -42
  333. package/src/types/requests.ts +378 -0
  334. package/src/types/tools.ts +608 -0
  335. package/src/types/wordpress.ts +56 -34
  336. package/src/utils/debug.ts +77 -59
  337. package/src/utils/enhancedError.ts +8 -8
  338. package/src/utils/error.ts +53 -31
  339. package/src/utils/logger.ts +351 -0
  340. package/src/utils/streaming.ts +86 -68
  341. package/src/utils/toolWrapper.ts +10 -12
  342. package/src/utils/validation/core.ts +108 -0
  343. package/src/utils/validation/index.ts +36 -0
  344. package/src/utils/validation/network.ts +132 -0
  345. package/src/utils/validation/rateLimit.ts +54 -0
  346. package/src/utils/validation/security.ts +361 -0
  347. package/src/utils/validation/wordpress.ts +180 -0
  348. package/src/utils/validation.ts +47 -470
@@ -3,40 +3,88 @@
3
3
  * Handles all authentication methods and token management
4
4
  */
5
5
  import { AuthenticationError } from "../../types/client.js";
6
+ import { AUTH_METHODS } from "../../types/wordpress.js";
7
+ import { config } from "../../config/Config.js";
6
8
  import { BaseManager } from "./BaseManager.js";
7
9
  import { debug } from "../../utils/debug.js";
8
10
  export class AuthenticationManager extends BaseManager {
9
11
  jwtToken = null;
10
12
  authenticated = false;
13
+ authConfig;
14
+ config; // Expose for test compatibility
15
+ constructor(config) {
16
+ // Validate required config fields
17
+ if (!config.siteUrl || config.siteUrl.trim() === "") {
18
+ throw new AuthenticationError("Site URL is required", AUTH_METHODS.APP_PASSWORD);
19
+ }
20
+ // Validate site URL format
21
+ try {
22
+ new URL(config.siteUrl);
23
+ }
24
+ catch {
25
+ throw new AuthenticationError("Invalid site URL", AUTH_METHODS.APP_PASSWORD);
26
+ }
27
+ // Validate auth method using centralized constants
28
+ const validMethods = Object.values(AUTH_METHODS);
29
+ if (config.authMethod && !validMethods.includes(config.authMethod)) {
30
+ throw new AuthenticationError("Invalid authentication method", config.authMethod);
31
+ }
32
+ // Transform config to match expected format
33
+ const transformedConfig = {
34
+ baseUrl: config.siteUrl,
35
+ timeout: config.timeout || 30000,
36
+ auth: {
37
+ method: config.authMethod || AUTH_METHODS.APP_PASSWORD,
38
+ ...(config.username && { username: config.username }),
39
+ ...(config.appPassword && { appPassword: config.appPassword }),
40
+ ...(config.password && { password: config.password }),
41
+ ...(config.apiKey && { apiKey: config.apiKey }),
42
+ ...(config.jwtSecret && { secret: config.jwtSecret }),
43
+ },
44
+ };
45
+ super(transformedConfig);
46
+ // Store private config
47
+ this.authConfig = config;
48
+ // Expose config for test compatibility
49
+ this.config = config;
50
+ }
51
+ /**
52
+ * Get config for testing purposes
53
+ */
54
+ getConfig() {
55
+ return { ...this.authConfig };
56
+ }
11
57
  /**
12
58
  * Get authentication from environment variables
13
59
  */
14
60
  static getAuthFromEnv() {
15
- const method = process.env.WORDPRESS_AUTH_METHOD || "app-password";
61
+ const cfg = config();
62
+ const wp = cfg.wordpress;
63
+ const method = wp.authMethod || AUTH_METHODS.APP_PASSWORD;
16
64
  switch (method) {
17
- case "app-password":
65
+ case AUTH_METHODS.APP_PASSWORD:
18
66
  return {
19
- method: "app-password",
20
- username: process.env.WORDPRESS_USERNAME || "",
21
- appPassword: process.env.WORDPRESS_APP_PASSWORD || "",
67
+ method: AUTH_METHODS.APP_PASSWORD,
68
+ username: wp.username || "",
69
+ appPassword: wp.appPassword || "",
22
70
  };
23
- case "jwt":
71
+ case AUTH_METHODS.JWT:
24
72
  return {
25
- method: "jwt",
26
- username: process.env.WORDPRESS_USERNAME || "",
27
- password: process.env.WORDPRESS_JWT_PASSWORD || process.env.WORDPRESS_PASSWORD || "",
28
- secret: process.env.WORDPRESS_JWT_SECRET || "",
73
+ method: AUTH_METHODS.JWT,
74
+ username: wp.username || "",
75
+ password: wp.jwtPassword || wp.password || "",
76
+ secret: wp.jwtSecret || "",
29
77
  };
30
- case "basic":
78
+ case AUTH_METHODS.BASIC:
31
79
  return {
32
- method: "basic",
33
- username: process.env.WORDPRESS_USERNAME || "",
34
- password: process.env.WORDPRESS_PASSWORD || "",
80
+ method: AUTH_METHODS.BASIC,
81
+ username: wp.username || "",
82
+ password: wp.password || "",
35
83
  };
36
- case "api-key":
84
+ case AUTH_METHODS.API_KEY:
37
85
  return {
38
- method: "api-key",
39
- apiKey: process.env.WORDPRESS_API_KEY || "",
86
+ method: AUTH_METHODS.API_KEY,
87
+ apiKey: wp.apiKey || "",
40
88
  };
41
89
  default:
42
90
  throw new AuthenticationError(`Unsupported authentication method: ${method}`, method);
@@ -44,58 +92,61 @@ export class AuthenticationManager extends BaseManager {
44
92
  }
45
93
  /**
46
94
  * Get authentication headers for requests
95
+ *
96
+ * Note: This method is synchronous by design for test compatibility and simplicity.
97
+ * JWT token refresh should be handled externally before calling this method,
98
+ * as automatic refresh would require RequestManager integration.
47
99
  */
48
- async getAuthHeaders() {
49
- const auth = this.config.auth;
50
- if (!auth) {
51
- // In test environments, return empty headers instead of throwing
52
- if (process.env.NODE_ENV === "test" ||
53
- process.env.CI === "true" ||
54
- globalThis.__EXECUTION_CONTEXT__ === "jest") {
55
- debug.log("Warning: No authentication configuration in test environment, returning empty headers");
56
- return {};
57
- }
58
- throw new AuthenticationError("Authentication configuration is required", "app-password");
59
- }
60
- switch (auth.method) {
61
- case "app-password":
62
- if (!auth.username || !auth.appPassword) {
63
- throw new AuthenticationError("Username and app password are required", auth.method);
100
+ getAuthHeaders() {
101
+ const method = this.authConfig.authMethod || AUTH_METHODS.APP_PASSWORD;
102
+ switch (method) {
103
+ case AUTH_METHODS.APP_PASSWORD:
104
+ if (!this.authConfig.username || !this.authConfig.appPassword) {
105
+ throw new AuthenticationError("Username and app password are required", method);
64
106
  }
65
- const credentials = Buffer.from(`${auth.username}:${auth.appPassword}`).toString("base64");
107
+ const credentials = Buffer.from(`${this.authConfig.username}:${this.authConfig.appPassword}`).toString("base64");
66
108
  return { Authorization: `Basic ${credentials}` };
67
- case "jwt":
68
- if (!this.jwtToken) {
69
- await this.authenticateJWT();
109
+ case AUTH_METHODS.JWT:
110
+ if (!this.authConfig.jwtToken) {
111
+ throw new AuthenticationError("JWT token is required", method);
70
112
  }
71
- return { Authorization: `Bearer ${this.jwtToken}` };
72
- case "basic":
73
- if (!auth.username || !auth.password) {
74
- throw new AuthenticationError("Username and password are required", auth.method);
113
+ return { Authorization: `Bearer ${this.authConfig.jwtToken}` };
114
+ case AUTH_METHODS.BASIC:
115
+ if (!this.authConfig.username || !this.authConfig.password) {
116
+ throw new AuthenticationError("Username and password are required", method);
75
117
  }
76
- const basicCredentials = Buffer.from(`${auth.username}:${auth.password}`).toString("base64");
118
+ const basicCredentials = Buffer.from(`${this.authConfig.username}:${this.authConfig.password}`).toString("base64");
77
119
  return { Authorization: `Basic ${basicCredentials}` };
78
- case "api-key":
79
- if (!auth.apiKey) {
80
- throw new AuthenticationError("API key is required", auth.method);
120
+ case AUTH_METHODS.API_KEY:
121
+ if (!this.authConfig.apiKey) {
122
+ throw new AuthenticationError("API key is required", method);
81
123
  }
82
- return { "X-API-Key": auth.apiKey };
124
+ return { "X-API-Key": this.authConfig.apiKey };
125
+ case AUTH_METHODS.COOKIE:
126
+ // Cookie authentication typically handled by browser
127
+ return {};
83
128
  default:
84
- throw new AuthenticationError(`Unsupported authentication method: ${auth.method}`, auth.method);
129
+ throw new AuthenticationError(`Unsupported authentication method: ${method}`, method);
85
130
  }
86
131
  }
87
132
  /**
88
133
  * Authenticate using JWT
134
+ *
135
+ * Note: This method is not fully implemented as it requires integration with
136
+ * the RequestManager to make HTTP requests to the WordPress JWT endpoint.
137
+ * JWT authentication requires the JWT Authentication for WP-API plugin.
138
+ *
139
+ * @throws {AuthenticationError} - JWT auth requires external dependency injection
89
140
  */
90
141
  async authenticateJWT() {
91
- const auth = this.config.auth;
92
- if (auth.method !== "jwt" || !auth.username || !auth.password) {
93
- throw new AuthenticationError("JWT authentication requires username and password", "jwt");
142
+ if (this.authConfig.authMethod !== AUTH_METHODS.JWT || !this.authConfig.username || !this.authConfig.password) {
143
+ throw new AuthenticationError("JWT authentication requires username and password", AUTH_METHODS.JWT);
94
144
  }
95
145
  try {
96
- // This would need the RequestManager instance to make the request
97
- // For now, we'll throw an error indicating this needs to be implemented
98
- throw new AuthenticationError("JWT authentication requires RequestManager integration", "jwt");
146
+ // TODO: Implement JWT authentication with RequestManager integration
147
+ // This would require making a POST request to /wp-json/jwt-auth/v1/token
148
+ // with username and password to obtain a JWT token
149
+ throw new AuthenticationError("JWT authentication requires RequestManager integration - not yet implemented", AUTH_METHODS.JWT);
99
150
  }
100
151
  catch (error) {
101
152
  this.handleError(error, "JWT authentication");
@@ -108,7 +159,7 @@ export class AuthenticationManager extends BaseManager {
108
159
  try {
109
160
  const _headers = await this.getAuthHeaders();
110
161
  debug.log("Authentication headers prepared", {
111
- method: this.config.auth.method,
162
+ method: this.authConfig.authMethod,
112
163
  });
113
164
  // This would need the RequestManager to actually test the connection
114
165
  // For now, we'll return true if headers can be generated
@@ -138,34 +189,181 @@ export class AuthenticationManager extends BaseManager {
138
189
  * Validate authentication configuration
139
190
  */
140
191
  validateAuthConfig() {
141
- const auth = this.config.auth;
142
- if (!auth.method) {
143
- throw new AuthenticationError("Authentication method is required", "app-password");
192
+ const method = this.authConfig.authMethod;
193
+ if (!method) {
194
+ throw new AuthenticationError("Authentication method is required", AUTH_METHODS.APP_PASSWORD);
195
+ }
196
+ switch (method) {
197
+ case AUTH_METHODS.APP_PASSWORD:
198
+ if (!this.authConfig.username || !this.authConfig.appPassword) {
199
+ throw new AuthenticationError("App password authentication requires username and appPassword", AUTH_METHODS.APP_PASSWORD);
200
+ }
201
+ break;
202
+ case AUTH_METHODS.JWT:
203
+ if (!this.authConfig.username || !this.authConfig.password || !this.authConfig.jwtSecret) {
204
+ throw new AuthenticationError("JWT authentication requires username, password, and secret", AUTH_METHODS.JWT);
205
+ }
206
+ break;
207
+ case AUTH_METHODS.BASIC:
208
+ if (!this.authConfig.username || !this.authConfig.password) {
209
+ throw new AuthenticationError("Basic authentication requires username and password", AUTH_METHODS.BASIC);
210
+ }
211
+ break;
212
+ case AUTH_METHODS.API_KEY:
213
+ if (!this.authConfig.apiKey) {
214
+ throw new AuthenticationError("API key authentication requires apiKey", AUTH_METHODS.API_KEY);
215
+ }
216
+ break;
217
+ default:
218
+ throw new AuthenticationError(`Unsupported authentication method: ${method}`, method);
144
219
  }
145
- switch (auth.method) {
146
- case "app-password":
147
- if (!auth.username || !auth.appPassword) {
148
- throw new AuthenticationError("App password authentication requires username and appPassword", "app-password");
220
+ }
221
+ /**
222
+ * Validate credentials for current auth method
223
+ */
224
+ validateCredentials() {
225
+ const method = this.authConfig.authMethod || AUTH_METHODS.APP_PASSWORD;
226
+ switch (method) {
227
+ case AUTH_METHODS.APP_PASSWORD:
228
+ if (!this.authConfig.username) {
229
+ throw new AuthenticationError("Username is required", method);
230
+ }
231
+ if (!this.authConfig.appPassword) {
232
+ throw new AuthenticationError("App password is required", method);
149
233
  }
150
234
  break;
151
- case "jwt":
152
- if (!auth.username || !auth.password || !auth.secret) {
153
- throw new AuthenticationError("JWT authentication requires username, password, and secret", "jwt");
235
+ case AUTH_METHODS.JWT:
236
+ if (!this.authConfig.jwtToken) {
237
+ throw new AuthenticationError("JWT token is required", method);
154
238
  }
155
239
  break;
156
- case "basic":
157
- if (!auth.username || !auth.password) {
158
- throw new AuthenticationError("Basic authentication requires username and password", "basic");
240
+ case AUTH_METHODS.BASIC:
241
+ if (!this.authConfig.username) {
242
+ throw new AuthenticationError("Username is required", method);
243
+ }
244
+ if (!this.authConfig.password) {
245
+ throw new AuthenticationError("Password is required", method);
159
246
  }
160
247
  break;
161
- case "api-key":
162
- if (!auth.apiKey) {
163
- throw new AuthenticationError("API key authentication requires apiKey", "api-key");
248
+ case AUTH_METHODS.API_KEY:
249
+ if (!this.authConfig.apiKey) {
250
+ throw new AuthenticationError("API key is required", method);
164
251
  }
165
252
  break;
166
253
  default:
167
- throw new AuthenticationError(`Unsupported authentication method: ${auth.method}`, auth.method);
254
+ throw new AuthenticationError(`Invalid authentication method: ${method}`, method);
255
+ }
256
+ }
257
+ /**
258
+ * Update authentication method and credentials
259
+ */
260
+ updateAuthMethod(method, credentials) {
261
+ const validMethods = Object.values(AUTH_METHODS);
262
+ if (!validMethods.includes(method)) {
263
+ throw new AuthenticationError("Invalid authentication method", method);
264
+ }
265
+ // Clear all previous credentials to prevent leakage
266
+ delete this.authConfig.username;
267
+ delete this.authConfig.appPassword;
268
+ delete this.authConfig.jwtToken;
269
+ delete this.authConfig.password;
270
+ delete this.authConfig.apiKey;
271
+ delete this.authConfig.tokenExpiry;
272
+ // Set new auth method
273
+ this.authConfig.authMethod = method;
274
+ // Set new credentials with type safety and validation
275
+ switch (method) {
276
+ case AUTH_METHODS.APP_PASSWORD:
277
+ const appCreds = credentials;
278
+ if (!appCreds.username || !appCreds.appPassword) {
279
+ throw new AuthenticationError("Username and app password are required", method);
280
+ }
281
+ this.authConfig.username = appCreds.username;
282
+ this.authConfig.appPassword = appCreds.appPassword;
283
+ break;
284
+ case AUTH_METHODS.JWT:
285
+ const jwtCreds = credentials;
286
+ if (!jwtCreds.jwtToken) {
287
+ throw new AuthenticationError("JWT token is required", method);
288
+ }
289
+ this.authConfig.jwtToken = jwtCreds.jwtToken;
290
+ if (jwtCreds.username) {
291
+ this.authConfig.username = jwtCreds.username;
292
+ }
293
+ break;
294
+ case AUTH_METHODS.BASIC:
295
+ const basicCreds = credentials;
296
+ if (!basicCreds.username || !basicCreds.password) {
297
+ throw new AuthenticationError("Username and password are required", method);
298
+ }
299
+ this.authConfig.username = basicCreds.username;
300
+ this.authConfig.password = basicCreds.password;
301
+ break;
302
+ case AUTH_METHODS.API_KEY:
303
+ const apiCreds = credentials;
304
+ if (!apiCreds.apiKey) {
305
+ throw new AuthenticationError("API key is required", method);
306
+ }
307
+ this.authConfig.apiKey = apiCreds.apiKey;
308
+ break;
309
+ }
310
+ }
311
+ /**
312
+ * Refresh JWT token
313
+ *
314
+ * For testing compatibility, this method supports mock JWT refresh.
315
+ * In production, it requires RequestManager integration.
316
+ */
317
+ async refreshToken() {
318
+ if (this.authConfig.authMethod !== AUTH_METHODS.JWT) {
319
+ throw new AuthenticationError("Token refresh not supported for non-JWT authentication methods", this.authConfig.authMethod);
320
+ }
321
+ // Check if mock refresh method is available (for testing)
322
+ const mockRefreshMethod = this.refreshJwtToken;
323
+ if (typeof mockRefreshMethod === "function") {
324
+ const result = await mockRefreshMethod();
325
+ if (result && typeof result === "object" && "token" in result) {
326
+ const tokenResult = result;
327
+ this.authConfig.jwtToken = tokenResult.token;
328
+ if (tokenResult.expires_in) {
329
+ this.authConfig.tokenExpiry = Date.now() + tokenResult.expires_in * 1000;
330
+ }
331
+ return;
332
+ }
333
+ }
334
+ // TODO: Implement JWT token refresh with RequestManager integration
335
+ // This would require making a POST request to /wp-json/jwt-auth/v1/token/validate
336
+ // and updating the stored token and expiry
337
+ throw new AuthenticationError("JWT refresh requires RequestManager integration - not yet implemented", AUTH_METHODS.JWT);
338
+ }
339
+ /**
340
+ * Check if JWT token is expired
341
+ */
342
+ isTokenExpired() {
343
+ if (this.authConfig.authMethod !== AUTH_METHODS.JWT) {
344
+ return false;
345
+ }
346
+ if (!this.authConfig.tokenExpiry) {
347
+ return true;
348
+ }
349
+ return Date.now() >= this.authConfig.tokenExpiry;
350
+ }
351
+ /**
352
+ * Get authentication status
353
+ */
354
+ getAuthStatus() {
355
+ const method = this.authConfig.authMethod || AUTH_METHODS.APP_PASSWORD;
356
+ const isExpired = this.isTokenExpired();
357
+ const status = {
358
+ method,
359
+ username: this.authConfig.username,
360
+ isAuthenticated: method === AUTH_METHODS.JWT ? !isExpired : true,
361
+ tokenExpired: isExpired,
362
+ };
363
+ if (method === AUTH_METHODS.JWT && this.authConfig.tokenExpiry) {
364
+ status.tokenExpiry = this.authConfig.tokenExpiry;
168
365
  }
366
+ return status;
169
367
  }
170
368
  }
171
369
  //# sourceMappingURL=AuthenticationManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AuthenticationManager.js","sourceRoot":"","sources":["../../../src/client/managers/AuthenticationManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAC5C,QAAQ,GAAkB,IAAI,CAAC;IAC/B,aAAa,GAAY,KAAK,CAAC;IAEvC;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,MAAM,MAAM,GAAgB,OAAO,CAAC,GAAG,CAAC,qBAAoC,IAAI,cAAc,CAAC;QAE/F,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,cAAc;gBACjB,OAAO;oBACL,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBAC9C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;iBACtD,CAAC;YAEJ,KAAK,KAAK;gBACR,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBACpF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;iBAC/C,CAAC;YAEJ,KAAK,OAAO;gBACV,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;iBAC/C,CAAC;YAEJ,KAAK,SAAS;gBACZ,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;iBAC5C,CAAC;YAEJ;gBACE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,iEAAiE;YACjE,IACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,MAAM;gBAC/B,OAAO,CAAC,GAAG,CAAC,EAAE,KAAK,MAAM;gBACxB,UAAkB,CAAC,qBAAqB,KAAK,MAAM,EACpD,CAAC;gBACD,KAAK,CAAC,GAAG,CAAC,uFAAuF,CAAC,CAAC;gBACnG,OAAO,EAAE,CAAC;YACZ,CAAC;YACD,MAAM,IAAI,mBAAmB,CAAC,0CAA0C,EAAE,cAAc,CAAC,CAAC;QAC5F,CAAC;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,cAAc;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACxC,MAAM,IAAI,mBAAmB,CAAC,wCAAwC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvF,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3F,OAAO,EAAE,aAAa,EAAE,SAAS,WAAW,EAAE,EAAE,CAAC;YAEnD,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/B,CAAC;gBACD,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEtD,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrC,MAAM,IAAI,mBAAmB,CAAC,oCAAoC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnF,CAAC;gBAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7F,OAAO,EAAE,aAAa,EAAE,SAAS,gBAAgB,EAAE,EAAE,CAAC;YAExD,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,IAAI,mBAAmB,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAEtC;gBACE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9D,MAAM,IAAI,mBAAmB,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC;YACH,kEAAkE;YAClE,wEAAwE;YACxE,MAAM,IAAI,mBAAmB,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;QACjG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC7C,KAAK,CAAC,GAAG,CAAC,iCAAiC,EAAE;gBAC3C,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM;aAChC,CAAC,CAAC;YAEH,qEAAqE;YACrE,yDAAyD;YACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAC;QACrF,CAAC;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,cAAc;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACxC,MAAM,IAAI,mBAAmB,CAC3B,+DAA+D,EAC/D,cAAc,CACf,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrD,MAAM,IAAI,mBAAmB,CAAC,4DAA4D,EAAE,KAAK,CAAC,CAAC;gBACrG,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrC,MAAM,IAAI,mBAAmB,CAAC,qDAAqD,EAAE,OAAO,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,IAAI,mBAAmB,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"AuthenticationManager.js","sourceRoot":"","sources":["../../../src/client/managers/AuthenticationManager.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,14 @@ export declare abstract class BaseManager {
9
9
  /**
10
10
  * Standardized error handling for all managers
11
11
  */
12
- protected handleError(error: any, operation: string): never;
12
+ protected handleError(error: unknown, operation: string): never;
13
13
  /**
14
14
  * Standardized success logging
15
15
  */
16
- protected logSuccess(operation: string, details?: any): void;
16
+ protected logSuccess(operation: string, details?: unknown): void;
17
17
  /**
18
18
  * Validate required parameters
19
19
  */
20
- protected validateRequired(params: Record<string, any>, requiredFields: string[]): void;
20
+ protected validateRequired(params: Record<string, unknown>, requiredFields: string[]): void;
21
21
  }
22
22
  //# sourceMappingURL=BaseManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/BaseManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAKnE,8BAAsB,WAAW;IAC/B,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC;gBAE5B,MAAM,EAAE,qBAAqB;IAIzC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IA+B3D;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI5D;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC3B,cAAc,EAAE,MAAM,EAAE,GACvB,IAAI;CAWR"}
1
+ {"version":3,"file":"BaseManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/BaseManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAKnE,8BAAsB,WAAW;IAC/B,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC;gBAE5B,MAAM,EAAE,qBAAqB;IAIzC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IA0B/D;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,IAAI;IAIhE;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;CAO5F"}
@@ -18,11 +18,17 @@ export class BaseManager {
18
18
  if (error instanceof WordPressAPIError) {
19
19
  throw error;
20
20
  }
21
- if (error.name === "AbortError" || error.code === "ABORT_ERR") {
22
- throw new WordPressAPIError(`Request timeout after ${this.config.timeout}ms`, 408, "timeout");
23
- }
24
- if (error.code === "ECONNREFUSED" || error.code === "ENOTFOUND") {
25
- throw new WordPressAPIError(`Cannot connect to WordPress site: ${this.config.baseUrl}`, 503, "connection_failed");
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.config.timeout}ms`, 408, "timeout");
28
+ }
29
+ if (error.code === "ECONNREFUSED" || error.code === "ENOTFOUND") {
30
+ throw new WordPressAPIError(`Cannot connect to WordPress site: ${this.config.baseUrl}`, 503, "connection_failed");
31
+ }
26
32
  }
27
33
  const message = getErrorMessage(error);
28
34
  throw new WordPressAPIError(`${operation} failed: ${message}`, 500, "unknown_error");
@@ -1 +1 @@
1
- {"version":3,"file":"BaseManager.js","sourceRoot":"","sources":["../../../src/client/managers/BaseManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAgB,WAAW;IACrB,MAAM,CAAwB;IAExC,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,KAAU,EAAE,SAAiB;QACjD,QAAQ,CAAC,GAAG,SAAS,UAAU,EAAE,KAAK,CAAC,CAAC;QAExC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9D,MAAM,IAAI,iBAAiB,CACzB,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAChD,GAAG,EACH,SAAS,CACV,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChE,MAAM,IAAI,iBAAiB,CACzB,qCAAqC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAC1D,GAAG,EACH,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,iBAAiB,CACzB,GAAG,SAAS,YAAY,OAAO,EAAE,EACjC,GAAG,EACH,eAAe,CAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,SAAiB,EAAE,OAAa;QACnD,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACO,gBAAgB,CACxB,MAA2B,EAC3B,cAAwB;QAExB,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,iBAAiB,CACzB,+BAA+B,KAAK,EAAE,EACtC,GAAG,EACH,mBAAmB,CACpB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"BaseManager.js","sourceRoot":"","sources":["../../../src/client/managers/BaseManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAgB,WAAW;IACrB,MAAM,CAAwB;IAExC,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,KAAc,EAAE,SAAiB;QACrD,QAAQ,CAAC,GAAG,SAAS,UAAU,EAAE,KAAgC,CAAC,CAAC;QAEnE,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,oCAAoC;QACpC,MAAM,WAAW,GAAG,CAAC,GAAY,EAA6D,EAAE;YAC9F,OAAO,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,CAAC;QACjD,CAAC,CAAC;QAEF,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC9D,MAAM,IAAI,iBAAiB,CAAC,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;YAChG,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAChE,MAAM,IAAI,iBAAiB,CAAC,qCAAqC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YACpH,CAAC;QACH,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,iBAAiB,CAAC,GAAG,SAAS,YAAY,OAAO,EAAE,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC;IACvF,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,SAAiB,EAAE,OAAiB;QACvD,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,MAA+B,EAAE,cAAwB;QAClF,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,iBAAiB,CAAC,+BAA+B,KAAK,EAAE,EAAE,GAAG,EAAE,mBAAmB,CAAC,CAAC;YAChG,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -10,11 +10,11 @@ export declare class RequestManager extends BaseManager {
10
10
  private lastRequestTime;
11
11
  private requestInterval;
12
12
  private authManager;
13
- constructor(config: WordPressClientConfig, authManager: AuthenticationManager);
13
+ constructor(clientConfig: WordPressClientConfig, authManager: AuthenticationManager);
14
14
  /**
15
15
  * Make HTTP request with retry logic and rate limiting
16
16
  */
17
- request<T>(method: HTTPMethod, endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
17
+ request<T>(method: HTTPMethod, endpoint: string, data?: unknown, options?: RequestOptions): Promise<T>;
18
18
  /**
19
19
  * Make request with retry logic
20
20
  */
@@ -1 +1 @@
1
- {"version":3,"file":"RequestManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,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;gBAGzC,MAAM,EAAE,qBAAqB,EAC7B,WAAW,EAAE,qBAAqB;IAgBpC;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC;IAyBb;;OAEG;YACW,oBAAoB;IAkClC;;OAEG;YACW,WAAW;IA4DzB;;OAEG;YACW,mBAAmB;IAyBjC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;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,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"}
@@ -3,6 +3,7 @@
3
3
  * Handles all HTTP operations, rate limiting, and retries
4
4
  */
5
5
  import { WordPressAPIError, RateLimitError } from "../../types/client.js";
6
+ import { config } from "../../config/Config.js";
6
7
  import { BaseManager } from "./BaseManager.js";
7
8
  import { debug, startTimer } from "../../utils/debug.js";
8
9
  export class RequestManager extends BaseManager {
@@ -10,10 +11,10 @@ export class RequestManager extends BaseManager {
10
11
  lastRequestTime = 0;
11
12
  requestInterval;
12
13
  authManager;
13
- constructor(config, authManager) {
14
- super(config);
14
+ constructor(clientConfig, authManager) {
15
+ super(clientConfig);
15
16
  this.authManager = authManager;
16
- this.requestInterval = 60000 / parseInt(process.env.RATE_LIMIT || "60");
17
+ this.requestInterval = 60000 / config().security.rateLimit;
17
18
  this.stats = {
18
19
  totalRequests: 0,
19
20
  successfulRequests: 0,
@@ -55,11 +56,16 @@ export class RequestManager extends BaseManager {
55
56
  }
56
57
  catch (error) {
57
58
  lastError = error;
59
+ // Type guard for error-like objects
60
+ const isErrorLike = (err) => {
61
+ return typeof err === "object" && err !== null;
62
+ };
58
63
  // Don't retry on authentication errors or client errors
59
- if (error.statusCode < 500 || attempt === maxRetries) {
64
+ if ((isErrorLike(error) && error.statusCode && error.statusCode < 500) || attempt === maxRetries) {
60
65
  throw error;
61
66
  }
62
- debug.log(`Request failed (attempt ${attempt}/${maxRetries}):`, error.message);
67
+ const errorMessage = isErrorLike(error) && error.message ? error.message : String(error);
68
+ debug.log(`Request failed (attempt ${attempt}/${maxRetries}):`, errorMessage);
63
69
  // Exponential backoff
64
70
  const delay = Math.min(1000 * Math.pow(2, attempt - 1), 5000);
65
71
  await new Promise((resolve) => setTimeout(resolve, delay));
@@ -90,9 +96,13 @@ export class RequestManager extends BaseManager {
90
96
  };
91
97
  if (data && method !== "GET") {
92
98
  if (data instanceof FormData ||
93
- (data && typeof data.append === "function")) {
99
+ (typeof data === "object" && data && "append" in data && typeof data.append === "function")) {
94
100
  // For FormData, don't set Content-Type (let fetch set it with boundary)
95
- delete fetchOptions.headers["Content-Type"];
101
+ if (fetchOptions.headers &&
102
+ typeof fetchOptions.headers === "object" &&
103
+ "Content-Type" in fetchOptions.headers) {
104
+ delete fetchOptions.headers["Content-Type"];
105
+ }
96
106
  fetchOptions.body = data;
97
107
  }
98
108
  else if (Buffer.isBuffer(data)) {
@@ -124,13 +134,17 @@ export class RequestManager extends BaseManager {
124
134
  async handleErrorResponse(response) {
125
135
  let errorData = {};
126
136
  try {
127
- errorData = await response.json();
137
+ const jsonData = await response.json();
138
+ if (typeof jsonData === "object" && jsonData !== null) {
139
+ errorData = jsonData;
140
+ }
128
141
  }
129
142
  catch {
130
143
  // Ignore JSON parsing errors
131
144
  }
132
- const message = errorData.message || `HTTP ${response.status}: ${response.statusText}`;
133
- const code = errorData.code || "http_error";
145
+ const message = (typeof errorData.message === "string" ? errorData.message : undefined) ||
146
+ `HTTP ${response.status}: ${response.statusText}`;
147
+ const code = (typeof errorData.code === "string" ? errorData.code : undefined) || "http_error";
134
148
  if (response.status === 429) {
135
149
  this.stats.rateLimitHits++;
136
150
  throw new RateLimitError(message, Date.now() + 60000); // Retry after 1 minute
@@ -167,8 +181,7 @@ export class RequestManager extends BaseManager {
167
181
  updateAverageResponseTime(responseTime) {
168
182
  const totalRequests = this.stats.successfulRequests;
169
183
  const currentAverage = this.stats.averageResponseTime;
170
- this.stats.averageResponseTime =
171
- (currentAverage * (totalRequests - 1) + responseTime) / totalRequests;
184
+ this.stats.averageResponseTime = (currentAverage * (totalRequests - 1) + responseTime) / totalRequests;
172
185
  }
173
186
  /**
174
187
  * Get request statistics