mcp-wordpress 2.4.2 → 2.5.1

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 (653) hide show
  1. package/README.md +124 -54
  2. package/bin/status.js +1 -1
  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/index.d.ts +3 -3
  16. package/dist/cache/index.d.ts.map +1 -1
  17. package/dist/cache/index.js +1 -1
  18. package/dist/cache/index.js.map +1 -1
  19. package/dist/client/CachedWordPressClient.d.ts +23 -9
  20. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  21. package/dist/client/CachedWordPressClient.js +4 -1
  22. package/dist/client/CachedWordPressClient.js.map +1 -1
  23. package/dist/client/MockWordPressClient.d.ts +2 -1
  24. package/dist/client/MockWordPressClient.d.ts.map +1 -1
  25. package/dist/client/MockWordPressClient.js +3 -1
  26. package/dist/client/MockWordPressClient.js.map +1 -1
  27. package/dist/client/api.d.ts +17 -13
  28. package/dist/client/api.d.ts.map +1 -1
  29. package/dist/client/api.js +135 -30
  30. package/dist/client/api.js.map +1 -1
  31. package/dist/client/auth.d.ts.map +1 -1
  32. package/dist/client/auth.js +2 -3
  33. package/dist/client/auth.js.map +1 -1
  34. package/dist/client/managers/AuthenticationManager.d.ts +55 -2
  35. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -1
  36. package/dist/client/managers/AuthenticationManager.js +269 -71
  37. package/dist/client/managers/AuthenticationManager.js.map +1 -1
  38. package/dist/client/managers/BaseManager.d.ts +3 -3
  39. package/dist/client/managers/BaseManager.d.ts.map +1 -1
  40. package/dist/client/managers/BaseManager.js +11 -5
  41. package/dist/client/managers/BaseManager.js.map +1 -1
  42. package/dist/client/managers/RequestManager.d.ts +2 -2
  43. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  44. package/dist/client/managers/RequestManager.js +25 -12
  45. package/dist/client/managers/RequestManager.js.map +1 -1
  46. package/dist/config/Config.d.ts +155 -0
  47. package/dist/config/Config.d.ts.map +1 -0
  48. package/dist/config/Config.js +215 -0
  49. package/dist/config/Config.js.map +1 -0
  50. package/dist/config/ConfigurationSchema.d.ts +21 -21
  51. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  52. package/dist/config/ConfigurationSchema.js +19 -2
  53. package/dist/config/ConfigurationSchema.js.map +1 -1
  54. package/dist/config/ServerConfiguration.d.ts +2 -1
  55. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  56. package/dist/config/ServerConfiguration.js +73 -43
  57. package/dist/config/ServerConfiguration.js.map +1 -1
  58. package/dist/docs/DocumentationGenerator.d.ts +9 -8
  59. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  60. package/dist/docs/DocumentationGenerator.js +10 -7
  61. package/dist/docs/DocumentationGenerator.js.map +1 -1
  62. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  63. package/dist/docs/MarkdownFormatter.js +3 -2
  64. package/dist/docs/MarkdownFormatter.js.map +1 -1
  65. package/dist/dxt-entry.js +15 -14
  66. package/dist/dxt-entry.js.map +1 -1
  67. package/dist/index.d.ts +3 -1
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +37 -21
  70. package/dist/index.js.map +1 -1
  71. package/dist/performance/MetricsCollector.d.ts +13 -7
  72. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  73. package/dist/performance/MetricsCollector.js +69 -27
  74. package/dist/performance/MetricsCollector.js.map +1 -1
  75. package/dist/performance/PerformanceAnalytics.d.ts +8 -2
  76. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  77. package/dist/performance/PerformanceAnalytics.js +17 -47
  78. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  79. package/dist/performance/PerformanceMonitor.d.ts +2 -1
  80. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  81. package/dist/performance/PerformanceMonitor.js +12 -13
  82. package/dist/performance/PerformanceMonitor.js.map +1 -1
  83. package/dist/performance/index.d.ts +2 -2
  84. package/dist/performance/index.d.ts.map +1 -1
  85. package/dist/security/AISecurityScanner.d.ts +1 -0
  86. package/dist/security/AISecurityScanner.d.ts.map +1 -1
  87. package/dist/security/AISecurityScanner.js +22 -12
  88. package/dist/security/AISecurityScanner.js.map +1 -1
  89. package/dist/security/AutomatedRemediation.d.ts +4 -3
  90. package/dist/security/AutomatedRemediation.d.ts.map +1 -1
  91. package/dist/security/AutomatedRemediation.js +46 -15
  92. package/dist/security/AutomatedRemediation.js.map +1 -1
  93. package/dist/security/InputValidator.d.ts +13 -9
  94. package/dist/security/InputValidator.d.ts.map +1 -1
  95. package/dist/security/InputValidator.js +4 -2
  96. package/dist/security/InputValidator.js.map +1 -1
  97. package/dist/security/SecurityCIPipeline.d.ts +1 -1
  98. package/dist/security/SecurityCIPipeline.d.ts.map +1 -1
  99. package/dist/security/SecurityCIPipeline.js +38 -29
  100. package/dist/security/SecurityCIPipeline.js.map +1 -1
  101. package/dist/security/SecurityConfig.d.ts +3 -3
  102. package/dist/security/SecurityConfig.d.ts.map +1 -1
  103. package/dist/security/SecurityConfig.js +13 -9
  104. package/dist/security/SecurityConfig.js.map +1 -1
  105. package/dist/security/SecurityConfigManager.d.ts +2 -2
  106. package/dist/security/SecurityConfigManager.d.ts.map +1 -1
  107. package/dist/security/SecurityConfigManager.js +20 -15
  108. package/dist/security/SecurityConfigManager.js.map +1 -1
  109. package/dist/security/SecurityMonitoring.d.ts +2 -2
  110. package/dist/security/SecurityMonitoring.d.ts.map +1 -1
  111. package/dist/security/SecurityMonitoring.js +19 -17
  112. package/dist/security/SecurityMonitoring.js.map +1 -1
  113. package/dist/security/SecurityReviewer.d.ts.map +1 -1
  114. package/dist/security/SecurityReviewer.js +10 -7
  115. package/dist/security/SecurityReviewer.js.map +1 -1
  116. package/dist/security/index.d.ts +24 -23
  117. package/dist/security/index.d.ts.map +1 -1
  118. package/dist/security/index.js +52 -23
  119. package/dist/security/index.js.map +1 -1
  120. package/dist/server/ConnectionTester.d.ts +12 -4
  121. package/dist/server/ConnectionTester.d.ts.map +1 -1
  122. package/dist/server/ConnectionTester.js +96 -22
  123. package/dist/server/ConnectionTester.js.map +1 -1
  124. package/dist/server/ToolRegistry.d.ts +2 -2
  125. package/dist/server/ToolRegistry.d.ts.map +1 -1
  126. package/dist/server/ToolRegistry.js +10 -5
  127. package/dist/server/ToolRegistry.js.map +1 -1
  128. package/dist/src/cache/CacheInvalidation.d.ts +120 -0
  129. package/dist/src/cache/CacheInvalidation.d.ts.map +1 -0
  130. package/dist/src/cache/CacheInvalidation.js +355 -0
  131. package/dist/src/cache/CacheInvalidation.js.map +1 -0
  132. package/dist/src/cache/CacheManager.d.ts +149 -0
  133. package/dist/src/cache/CacheManager.d.ts.map +1 -0
  134. package/dist/src/cache/CacheManager.js +326 -0
  135. package/dist/src/cache/CacheManager.js.map +1 -0
  136. package/dist/src/cache/HttpCacheWrapper.d.ts +122 -0
  137. package/dist/src/cache/HttpCacheWrapper.d.ts.map +1 -0
  138. package/dist/src/cache/HttpCacheWrapper.js +283 -0
  139. package/dist/src/cache/HttpCacheWrapper.js.map +1 -0
  140. package/dist/src/cache/index.d.ts +12 -0
  141. package/dist/src/cache/index.d.ts.map +1 -0
  142. package/dist/src/cache/index.js +9 -0
  143. package/dist/src/cache/index.js.map +1 -0
  144. package/dist/src/client/CachedWordPressClient.d.ts +174 -0
  145. package/dist/src/client/CachedWordPressClient.d.ts.map +1 -0
  146. package/dist/src/client/CachedWordPressClient.js +345 -0
  147. package/dist/src/client/CachedWordPressClient.js.map +1 -0
  148. package/dist/src/client/MockWordPressClient.d.ts +56 -0
  149. package/dist/src/client/MockWordPressClient.d.ts.map +1 -0
  150. package/dist/src/client/MockWordPressClient.js +371 -0
  151. package/dist/src/client/MockWordPressClient.js.map +1 -0
  152. package/dist/src/client/api.d.ts +235 -0
  153. package/dist/src/client/api.d.ts.map +1 -0
  154. package/dist/src/client/api.js +896 -0
  155. package/dist/src/client/api.js.map +1 -0
  156. package/dist/src/client/auth.d.ts +121 -0
  157. package/dist/src/client/auth.d.ts.map +1 -0
  158. package/dist/src/client/auth.js +429 -0
  159. package/dist/src/client/auth.js.map +1 -0
  160. package/dist/src/client/managers/AuthenticationManager.d.ts +92 -0
  161. package/dist/src/client/managers/AuthenticationManager.d.ts.map +1 -0
  162. package/dist/src/client/managers/AuthenticationManager.js +369 -0
  163. package/dist/src/client/managers/AuthenticationManager.js.map +1 -0
  164. package/dist/src/client/managers/BaseManager.d.ts +22 -0
  165. package/dist/src/client/managers/BaseManager.d.ts.map +1 -0
  166. package/dist/src/client/managers/BaseManager.js +53 -0
  167. package/dist/src/client/managers/BaseManager.js.map +1 -0
  168. package/dist/src/client/managers/RequestManager.d.ts +47 -0
  169. package/dist/src/client/managers/RequestManager.d.ts.map +1 -0
  170. package/dist/src/client/managers/RequestManager.js +193 -0
  171. package/dist/src/client/managers/RequestManager.js.map +1 -0
  172. package/dist/src/client/managers/index.d.ts +8 -0
  173. package/dist/src/client/managers/index.d.ts.map +1 -0
  174. package/dist/src/client/managers/index.js +8 -0
  175. package/dist/src/client/managers/index.js.map +1 -0
  176. package/dist/src/config/Config.d.ts +155 -0
  177. package/dist/src/config/Config.d.ts.map +1 -0
  178. package/dist/src/config/Config.js +215 -0
  179. package/dist/src/config/Config.js.map +1 -0
  180. package/dist/src/config/ConfigurationSchema.d.ts +281 -0
  181. package/dist/src/config/ConfigurationSchema.d.ts.map +1 -0
  182. package/dist/src/config/ConfigurationSchema.js +205 -0
  183. package/dist/src/config/ConfigurationSchema.js.map +1 -0
  184. package/dist/src/config/ServerConfiguration.d.ts +47 -0
  185. package/dist/src/config/ServerConfiguration.d.ts.map +1 -0
  186. package/dist/src/config/ServerConfiguration.js +255 -0
  187. package/dist/src/config/ServerConfiguration.js.map +1 -0
  188. package/dist/src/docs/DocumentationGenerator.d.ts +185 -0
  189. package/dist/src/docs/DocumentationGenerator.d.ts.map +1 -0
  190. package/dist/src/docs/DocumentationGenerator.js +777 -0
  191. package/dist/src/docs/DocumentationGenerator.js.map +1 -0
  192. package/dist/src/docs/MarkdownFormatter.d.ts +84 -0
  193. package/dist/src/docs/MarkdownFormatter.d.ts.map +1 -0
  194. package/dist/src/docs/MarkdownFormatter.js +458 -0
  195. package/dist/src/docs/MarkdownFormatter.js.map +1 -0
  196. package/dist/src/docs/index.d.ts +8 -0
  197. package/dist/src/docs/index.d.ts.map +1 -0
  198. package/dist/src/docs/index.js +7 -0
  199. package/dist/src/docs/index.js.map +1 -0
  200. package/dist/src/dxt-entry.d.ts +6 -0
  201. package/dist/src/dxt-entry.d.ts.map +1 -0
  202. package/dist/src/dxt-entry.js +39 -0
  203. package/dist/src/dxt-entry.js.map +1 -0
  204. package/dist/src/index.d.ts +18 -0
  205. package/dist/src/index.d.ts.map +1 -0
  206. package/dist/src/index.js +143 -0
  207. package/dist/src/index.js.map +1 -0
  208. package/dist/src/performance/MetricsCollector.d.ts +145 -0
  209. package/dist/src/performance/MetricsCollector.d.ts.map +1 -0
  210. package/dist/src/performance/MetricsCollector.js +368 -0
  211. package/dist/src/performance/MetricsCollector.js.map +1 -0
  212. package/dist/src/performance/PerformanceAnalytics.d.ts +168 -0
  213. package/dist/src/performance/PerformanceAnalytics.d.ts.map +1 -0
  214. package/dist/src/performance/PerformanceAnalytics.js +570 -0
  215. package/dist/src/performance/PerformanceAnalytics.js.map +1 -0
  216. package/dist/src/performance/PerformanceMonitor.d.ts +203 -0
  217. package/dist/src/performance/PerformanceMonitor.d.ts.map +1 -0
  218. package/dist/src/performance/PerformanceMonitor.js +478 -0
  219. package/dist/src/performance/PerformanceMonitor.js.map +1 -0
  220. package/dist/src/performance/index.d.ts +11 -0
  221. package/dist/src/performance/index.d.ts.map +1 -0
  222. package/dist/src/performance/index.js +8 -0
  223. package/dist/src/performance/index.js.map +1 -0
  224. package/dist/src/security/AISecurityScanner.d.ts +176 -0
  225. package/dist/src/security/AISecurityScanner.d.ts.map +1 -0
  226. package/dist/src/security/AISecurityScanner.js +655 -0
  227. package/dist/src/security/AISecurityScanner.js.map +1 -0
  228. package/dist/src/security/AutomatedRemediation.d.ts +146 -0
  229. package/dist/src/security/AutomatedRemediation.d.ts.map +1 -0
  230. package/dist/src/security/AutomatedRemediation.js +566 -0
  231. package/dist/src/security/AutomatedRemediation.js.map +1 -0
  232. package/dist/src/security/InputValidator.d.ts +219 -0
  233. package/dist/src/security/InputValidator.d.ts.map +1 -0
  234. package/dist/src/security/InputValidator.js +295 -0
  235. package/dist/src/security/InputValidator.js.map +1 -0
  236. package/dist/src/security/SecurityCIPipeline.d.ts +213 -0
  237. package/dist/src/security/SecurityCIPipeline.d.ts.map +1 -0
  238. package/dist/src/security/SecurityCIPipeline.js +693 -0
  239. package/dist/src/security/SecurityCIPipeline.js.map +1 -0
  240. package/dist/src/security/SecurityConfig.d.ts +129 -0
  241. package/dist/src/security/SecurityConfig.d.ts.map +1 -0
  242. package/dist/src/security/SecurityConfig.js +266 -0
  243. package/dist/src/security/SecurityConfig.js.map +1 -0
  244. package/dist/src/security/SecurityConfigManager.d.ts +294 -0
  245. package/dist/src/security/SecurityConfigManager.d.ts.map +1 -0
  246. package/dist/src/security/SecurityConfigManager.js +558 -0
  247. package/dist/src/security/SecurityConfigManager.js.map +1 -0
  248. package/dist/src/security/SecurityMonitoring.d.ts +245 -0
  249. package/dist/src/security/SecurityMonitoring.d.ts.map +1 -0
  250. package/dist/src/security/SecurityMonitoring.js +598 -0
  251. package/dist/src/security/SecurityMonitoring.js.map +1 -0
  252. package/dist/src/security/SecurityReviewer.d.ts +168 -0
  253. package/dist/src/security/SecurityReviewer.d.ts.map +1 -0
  254. package/dist/src/security/SecurityReviewer.js +686 -0
  255. package/dist/src/security/SecurityReviewer.js.map +1 -0
  256. package/dist/src/security/index.d.ts +183 -0
  257. package/dist/src/security/index.d.ts.map +1 -0
  258. package/dist/src/security/index.js +218 -0
  259. package/dist/src/security/index.js.map +1 -0
  260. package/dist/src/server/ConnectionTester.d.ts +32 -0
  261. package/dist/src/server/ConnectionTester.d.ts.map +1 -0
  262. package/dist/src/server/ConnectionTester.js +135 -0
  263. package/dist/src/server/ConnectionTester.js.map +1 -0
  264. package/dist/src/server/ToolRegistry.d.ts +50 -0
  265. package/dist/src/server/ToolRegistry.d.ts.map +1 -0
  266. package/dist/src/server/ToolRegistry.js +219 -0
  267. package/dist/src/server/ToolRegistry.js.map +1 -0
  268. package/dist/src/server.d.ts +7 -0
  269. package/dist/src/server.d.ts.map +1 -0
  270. package/dist/src/server.js +7 -0
  271. package/dist/src/server.js.map +1 -0
  272. package/dist/src/tools/BaseToolManager.d.ts +62 -0
  273. package/dist/src/tools/BaseToolManager.d.ts.map +1 -0
  274. package/dist/src/tools/BaseToolManager.js +195 -0
  275. package/dist/src/tools/BaseToolManager.js.map +1 -0
  276. package/dist/src/tools/auth.d.ts +50 -0
  277. package/dist/src/tools/auth.d.ts.map +1 -0
  278. package/dist/src/tools/auth.js +133 -0
  279. package/dist/src/tools/auth.js.map +1 -0
  280. package/dist/src/tools/cache.d.ts +260 -0
  281. package/dist/src/tools/cache.d.ts.map +1 -0
  282. package/dist/src/tools/cache.js +232 -0
  283. package/dist/src/tools/cache.js.map +1 -0
  284. package/dist/src/tools/comments.d.ts +33 -0
  285. package/dist/src/tools/comments.d.ts.map +1 -0
  286. package/dist/src/tools/comments.js +235 -0
  287. package/dist/src/tools/comments.js.map +1 -0
  288. package/dist/src/tools/index.d.ts +11 -0
  289. package/dist/src/tools/index.d.ts.map +1 -0
  290. package/dist/src/tools/index.js +11 -0
  291. package/dist/src/tools/index.js.map +1 -0
  292. package/dist/src/tools/media.d.ts +70 -0
  293. package/dist/src/tools/media.d.ts.map +1 -0
  294. package/dist/src/tools/media.js +248 -0
  295. package/dist/src/tools/media.js.map +1 -0
  296. package/dist/src/tools/pages.d.ts +32 -0
  297. package/dist/src/tools/pages.d.ts.map +1 -0
  298. package/dist/src/tools/pages.js +215 -0
  299. package/dist/src/tools/pages.js.map +1 -0
  300. package/dist/src/tools/performance.d.ts +73 -0
  301. package/dist/src/tools/performance.d.ts.map +1 -0
  302. package/dist/src/tools/performance.js +922 -0
  303. package/dist/src/tools/performance.js.map +1 -0
  304. package/dist/src/tools/posts/PostHandlers.d.ts +46 -0
  305. package/dist/src/tools/posts/PostHandlers.d.ts.map +1 -0
  306. package/dist/src/tools/posts/PostHandlers.js +400 -0
  307. package/dist/src/tools/posts/PostHandlers.js.map +1 -0
  308. package/dist/src/tools/posts/PostToolDefinitions.d.ts +37 -0
  309. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  310. package/dist/src/tools/posts/PostToolDefinitions.js +236 -0
  311. package/dist/src/tools/posts/PostToolDefinitions.js.map +1 -0
  312. package/dist/src/tools/posts/index.d.ts +138 -0
  313. package/dist/src/tools/posts/index.d.ts.map +1 -0
  314. package/dist/src/tools/posts/index.js +163 -0
  315. package/dist/src/tools/posts/index.js.map +1 -0
  316. package/dist/src/tools/posts.d.ts +15 -0
  317. package/dist/src/tools/posts.d.ts.map +1 -0
  318. package/dist/src/tools/posts.js +16 -0
  319. package/dist/src/tools/posts.js.map +1 -0
  320. package/dist/src/tools/site.d.ts +32 -0
  321. package/dist/src/tools/site.d.ts.map +1 -0
  322. package/dist/src/tools/site.js +234 -0
  323. package/dist/src/tools/site.js.map +1 -0
  324. package/dist/src/tools/taxonomies.d.ts +36 -0
  325. package/dist/src/tools/taxonomies.d.ts.map +1 -0
  326. package/dist/src/tools/taxonomies.js +286 -0
  327. package/dist/src/tools/taxonomies.js.map +1 -0
  328. package/dist/src/tools/users.d.ts +33 -0
  329. package/dist/src/tools/users.d.ts.map +1 -0
  330. package/dist/src/tools/users.js +308 -0
  331. package/dist/src/tools/users.js.map +1 -0
  332. package/dist/src/types/client.d.ts +223 -0
  333. package/dist/src/types/client.d.ts.map +1 -0
  334. package/dist/src/types/client.js +97 -0
  335. package/dist/src/types/client.js.map +1 -0
  336. package/dist/src/types/enhanced.d.ts +237 -0
  337. package/dist/src/types/enhanced.d.ts.map +1 -0
  338. package/dist/src/types/enhanced.js +49 -0
  339. package/dist/src/types/enhanced.js.map +1 -0
  340. package/dist/src/types/index.d.ts +160 -0
  341. package/dist/src/types/index.d.ts.map +1 -0
  342. package/dist/src/types/index.js +14 -0
  343. package/dist/src/types/index.js.map +1 -0
  344. package/dist/src/types/mcp.d.ts +178 -0
  345. package/dist/src/types/mcp.d.ts.map +1 -0
  346. package/dist/src/types/mcp.js +7 -0
  347. package/dist/src/types/mcp.js.map +1 -0
  348. package/dist/src/types/requests.d.ts +322 -0
  349. package/dist/src/types/requests.d.ts.map +1 -0
  350. package/dist/src/types/requests.js +8 -0
  351. package/dist/src/types/requests.js.map +1 -0
  352. package/dist/src/types/tools.d.ts +506 -0
  353. package/dist/src/types/tools.d.ts.map +1 -0
  354. package/dist/src/types/tools.js +8 -0
  355. package/dist/src/types/tools.js.map +1 -0
  356. package/dist/src/types/wordpress.d.ts +471 -0
  357. package/dist/src/types/wordpress.d.ts.map +1 -0
  358. package/dist/src/types/wordpress.js +14 -0
  359. package/dist/src/types/wordpress.js.map +1 -0
  360. package/dist/src/utils/debug.d.ts +71 -0
  361. package/dist/src/utils/debug.d.ts.map +1 -0
  362. package/dist/src/utils/debug.js +235 -0
  363. package/dist/src/utils/debug.js.map +1 -0
  364. package/dist/src/utils/enhancedError.d.ts +61 -0
  365. package/dist/src/utils/enhancedError.d.ts.map +1 -0
  366. package/dist/src/utils/enhancedError.js +221 -0
  367. package/dist/src/utils/enhancedError.js.map +1 -0
  368. package/dist/src/utils/error.d.ts +17 -0
  369. package/dist/src/utils/error.d.ts.map +1 -0
  370. package/dist/src/utils/error.js +108 -0
  371. package/dist/src/utils/error.js.map +1 -0
  372. package/dist/src/utils/logger.d.ts +106 -0
  373. package/dist/src/utils/logger.d.ts.map +1 -0
  374. package/dist/src/utils/logger.js +280 -0
  375. package/dist/src/utils/logger.js.map +1 -0
  376. package/dist/src/utils/streaming.d.ts +104 -0
  377. package/dist/src/utils/streaming.d.ts.map +1 -0
  378. package/dist/src/utils/streaming.js +331 -0
  379. package/dist/src/utils/streaming.js.map +1 -0
  380. package/dist/src/utils/toolWrapper.d.ts +42 -0
  381. package/dist/src/utils/toolWrapper.d.ts.map +1 -0
  382. package/dist/src/utils/toolWrapper.js +101 -0
  383. package/dist/src/utils/toolWrapper.js.map +1 -0
  384. package/dist/src/utils/validation/core.d.ts +21 -0
  385. package/dist/src/utils/validation/core.d.ts.map +1 -0
  386. package/dist/src/utils/validation/core.js +71 -0
  387. package/dist/src/utils/validation/core.js.map +1 -0
  388. package/dist/src/utils/validation/index.d.ts +25 -0
  389. package/dist/src/utils/validation/index.d.ts.map +1 -0
  390. package/dist/src/utils/validation/index.js +29 -0
  391. package/dist/src/utils/validation/index.js.map +1 -0
  392. package/dist/src/utils/validation/network.d.ts +19 -0
  393. package/dist/src/utils/validation/network.d.ts.map +1 -0
  394. package/dist/src/utils/validation/network.js +93 -0
  395. package/dist/src/utils/validation/network.js.map +1 -0
  396. package/dist/src/utils/validation/rateLimit.d.ts +21 -0
  397. package/dist/src/utils/validation/rateLimit.d.ts.map +1 -0
  398. package/dist/src/utils/validation/rateLimit.js +43 -0
  399. package/dist/src/utils/validation/rateLimit.js.map +1 -0
  400. package/dist/src/utils/validation/security.d.ts +29 -0
  401. package/dist/src/utils/validation/security.d.ts.map +1 -0
  402. package/dist/src/utils/validation/security.js +327 -0
  403. package/dist/src/utils/validation/security.js.map +1 -0
  404. package/dist/src/utils/validation/wordpress.d.ts +31 -0
  405. package/dist/src/utils/validation/wordpress.d.ts.map +1 -0
  406. package/dist/src/utils/validation/wordpress.js +146 -0
  407. package/dist/src/utils/validation/wordpress.js.map +1 -0
  408. package/dist/src/utils/validation.d.ts +15 -0
  409. package/dist/src/utils/validation.d.ts.map +1 -0
  410. package/dist/src/utils/validation.js +27 -0
  411. package/dist/src/utils/validation.js.map +1 -0
  412. package/dist/tests/vitest.setup.d.ts +6 -0
  413. package/dist/tests/vitest.setup.d.ts.map +1 -0
  414. package/dist/tests/vitest.setup.js +39 -0
  415. package/dist/tests/vitest.setup.js.map +1 -0
  416. package/dist/tools/BaseToolManager.d.ts +47 -11
  417. package/dist/tools/BaseToolManager.d.ts.map +1 -1
  418. package/dist/tools/BaseToolManager.js +168 -29
  419. package/dist/tools/BaseToolManager.js.map +1 -1
  420. package/dist/tools/auth.d.ts +16 -10
  421. package/dist/tools/auth.d.ts.map +1 -1
  422. package/dist/tools/auth.js +3 -2
  423. package/dist/tools/auth.js.map +1 -1
  424. package/dist/tools/cache.d.ts +30 -30
  425. package/dist/tools/cache.d.ts.map +1 -1
  426. package/dist/tools/cache.js +1 -6
  427. package/dist/tools/cache.js.map +1 -1
  428. package/dist/tools/comments.d.ts +20 -20
  429. package/dist/tools/comments.d.ts.map +1 -1
  430. package/dist/tools/comments.js +16 -9
  431. package/dist/tools/comments.js.map +1 -1
  432. package/dist/tools/media.d.ts +18 -16
  433. package/dist/tools/media.d.ts.map +1 -1
  434. package/dist/tools/media.js +16 -15
  435. package/dist/tools/media.js.map +1 -1
  436. package/dist/tools/pages.d.ts +19 -17
  437. package/dist/tools/pages.d.ts.map +1 -1
  438. package/dist/tools/pages.js +16 -12
  439. package/dist/tools/pages.js.map +1 -1
  440. package/dist/tools/performance.d.ts +11 -1
  441. package/dist/tools/performance.d.ts.map +1 -1
  442. package/dist/tools/performance.js +67 -34
  443. package/dist/tools/performance.js.map +1 -1
  444. package/dist/tools/posts/PostHandlers.d.ts +46 -0
  445. package/dist/tools/posts/PostHandlers.d.ts.map +1 -0
  446. package/dist/tools/posts/PostHandlers.js +400 -0
  447. package/dist/tools/posts/PostHandlers.js.map +1 -0
  448. package/dist/tools/posts/PostToolDefinitions.d.ts +37 -0
  449. package/dist/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  450. package/dist/tools/posts/PostToolDefinitions.js +236 -0
  451. package/dist/tools/posts/PostToolDefinitions.js.map +1 -0
  452. package/dist/tools/posts/index.d.ts +138 -0
  453. package/dist/tools/posts/index.d.ts.map +1 -0
  454. package/dist/tools/posts/index.js +163 -0
  455. package/dist/tools/posts/index.js.map +1 -0
  456. package/dist/tools/posts.d.ts +10 -246
  457. package/dist/tools/posts.d.ts.map +1 -1
  458. package/dist/tools/posts.js +11 -723
  459. package/dist/tools/posts.js.map +1 -1
  460. package/dist/tools/site.d.ts +19 -18
  461. package/dist/tools/site.d.ts.map +1 -1
  462. package/dist/tools/site.js +14 -10
  463. package/dist/tools/site.js.map +1 -1
  464. package/dist/tools/taxonomies.d.ts +23 -24
  465. package/dist/tools/taxonomies.d.ts.map +1 -1
  466. package/dist/tools/taxonomies.js +24 -18
  467. package/dist/tools/taxonomies.js.map +1 -1
  468. package/dist/tools/users.d.ts +20 -15
  469. package/dist/tools/users.d.ts.map +1 -1
  470. package/dist/tools/users.js +12 -8
  471. package/dist/tools/users.js.map +1 -1
  472. package/dist/types/client.d.ts +48 -41
  473. package/dist/types/client.d.ts.map +1 -1
  474. package/dist/types/client.js +30 -5
  475. package/dist/types/client.js.map +1 -1
  476. package/dist/types/enhanced.d.ts +237 -0
  477. package/dist/types/enhanced.d.ts.map +1 -0
  478. package/dist/types/enhanced.js +49 -0
  479. package/dist/types/enhanced.js.map +1 -0
  480. package/dist/types/index.d.ts +15 -12
  481. package/dist/types/index.d.ts.map +1 -1
  482. package/dist/types/index.js +2 -0
  483. package/dist/types/index.js.map +1 -1
  484. package/dist/types/mcp.d.ts +12 -12
  485. package/dist/types/mcp.d.ts.map +1 -1
  486. package/dist/types/requests.d.ts +322 -0
  487. package/dist/types/requests.d.ts.map +1 -0
  488. package/dist/types/requests.js +8 -0
  489. package/dist/types/requests.js.map +1 -0
  490. package/dist/types/tools.d.ts +506 -0
  491. package/dist/types/tools.d.ts.map +1 -0
  492. package/dist/types/tools.js +8 -0
  493. package/dist/types/tools.js.map +1 -0
  494. package/dist/types/wordpress.d.ts +43 -15
  495. package/dist/types/wordpress.d.ts.map +1 -1
  496. package/dist/types/wordpress.js +8 -1
  497. package/dist/types/wordpress.js.map +1 -1
  498. package/dist/utils/debug.d.ts +19 -11
  499. package/dist/utils/debug.d.ts.map +1 -1
  500. package/dist/utils/debug.js +46 -10
  501. package/dist/utils/debug.js.map +1 -1
  502. package/dist/utils/enhancedError.d.ts +8 -8
  503. package/dist/utils/enhancedError.d.ts.map +1 -1
  504. package/dist/utils/enhancedError.js.map +1 -1
  505. package/dist/utils/error.d.ts +2 -4
  506. package/dist/utils/error.d.ts.map +1 -1
  507. package/dist/utils/error.js +42 -5
  508. package/dist/utils/error.js.map +1 -1
  509. package/dist/utils/logger.d.ts +106 -0
  510. package/dist/utils/logger.d.ts.map +1 -0
  511. package/dist/utils/logger.js +280 -0
  512. package/dist/utils/logger.js.map +1 -0
  513. package/dist/utils/streaming.d.ts +9 -9
  514. package/dist/utils/streaming.d.ts.map +1 -1
  515. package/dist/utils/streaming.js +71 -52
  516. package/dist/utils/streaming.js.map +1 -1
  517. package/dist/utils/toolWrapper.d.ts +9 -7
  518. package/dist/utils/toolWrapper.d.ts.map +1 -1
  519. package/dist/utils/toolWrapper.js.map +1 -1
  520. package/dist/utils/validation/core.d.ts +21 -0
  521. package/dist/utils/validation/core.d.ts.map +1 -0
  522. package/dist/utils/validation/core.js +71 -0
  523. package/dist/utils/validation/core.js.map +1 -0
  524. package/dist/utils/validation/index.d.ts +25 -0
  525. package/dist/utils/validation/index.d.ts.map +1 -0
  526. package/dist/utils/validation/index.js +29 -0
  527. package/dist/utils/validation/index.js.map +1 -0
  528. package/dist/utils/validation/network.d.ts +19 -0
  529. package/dist/utils/validation/network.d.ts.map +1 -0
  530. package/dist/utils/validation/network.js +93 -0
  531. package/dist/utils/validation/network.js.map +1 -0
  532. package/dist/utils/validation/rateLimit.d.ts +21 -0
  533. package/dist/utils/validation/rateLimit.d.ts.map +1 -0
  534. package/dist/utils/validation/rateLimit.js +43 -0
  535. package/dist/utils/validation/rateLimit.js.map +1 -0
  536. package/dist/utils/validation/security.d.ts +29 -0
  537. package/dist/utils/validation/security.d.ts.map +1 -0
  538. package/dist/utils/validation/security.js +327 -0
  539. package/dist/utils/validation/security.js.map +1 -0
  540. package/dist/utils/validation/wordpress.d.ts +31 -0
  541. package/dist/utils/validation/wordpress.d.ts.map +1 -0
  542. package/dist/utils/validation/wordpress.js +146 -0
  543. package/dist/utils/validation/wordpress.js.map +1 -0
  544. package/dist/utils/validation.d.ts +13 -82
  545. package/dist/utils/validation.d.ts.map +1 -1
  546. package/dist/utils/validation.js +25 -343
  547. package/dist/utils/validation.js.map +1 -1
  548. package/docs/BADGE_UPDATES.md +132 -0
  549. package/docs/CI_CD_IMPROVEMENTS.md +191 -0
  550. package/docs/INCREMENTAL_COVERAGE.md +183 -0
  551. package/docs/INSTALLATION.md +4 -2
  552. package/docs/TROUBLESHOOTING.md +2 -1
  553. package/docs/api/README.md +3 -1
  554. package/docs/api/openapi.json +5 -1
  555. package/docs/api/summary.json +1 -1
  556. package/docs/api/tools/wp_create_post.md +12 -14
  557. package/docs/developer/TESTING.md +24 -19
  558. package/docs/examples/claude-desktop-config.md +1 -1
  559. package/docs/examples/docker-production.md +100 -93
  560. package/docs/examples/multi-site-setup.md +5 -4
  561. package/docs/examples/single-site-setup.md +3 -4
  562. package/docs/examples/use-case-workflows.md +4 -5
  563. package/docs/integrations/claude-desktop.md +39 -34
  564. package/docs/integrations/cline.md +4 -4
  565. package/docs/integrations/vs-code.md +9 -8
  566. package/docs/user-guides/DXT_INSTALLATION.md +2 -1
  567. package/docs/user-guides/SMITHERY_SETUP.md +10 -10
  568. package/package.json +57 -39
  569. package/src/cache/CacheInvalidation.ts +12 -5
  570. package/src/cache/CacheManager.ts +18 -15
  571. package/src/cache/HttpCacheWrapper.ts +30 -59
  572. package/src/cache/__tests__/HttpCacheWrapper.test.ts +6 -5
  573. package/src/cache/index.ts +3 -14
  574. package/src/client/CachedWordPressClient.ts +32 -30
  575. package/src/client/MockWordPressClient.ts +4 -2
  576. package/src/client/api.ts +186 -64
  577. package/src/client/auth.ts +15 -40
  578. package/src/client/managers/AuthenticationManager.ts +337 -77
  579. package/src/client/managers/BaseManager.ts +18 -30
  580. package/src/client/managers/RequestManager.ts +39 -44
  581. package/src/config/Config.ts +308 -0
  582. package/src/config/ConfigurationSchema.ts +23 -2
  583. package/src/config/ServerConfiguration.ts +73 -49
  584. package/src/docs/DocumentationGenerator.ts +50 -39
  585. package/src/docs/MarkdownFormatter.ts +19 -29
  586. package/src/dxt-entry.cjs +26 -16
  587. package/src/dxt-entry.ts +17 -27
  588. package/src/index.ts +42 -28
  589. package/src/performance/MetricsCollector.ts +108 -86
  590. package/src/performance/PerformanceAnalytics.ts +69 -164
  591. package/src/performance/PerformanceMonitor.ts +32 -47
  592. package/src/performance/index.ts +2 -10
  593. package/src/security/AISecurityScanner.ts +22 -12
  594. package/src/security/AutomatedRemediation.ts +49 -18
  595. package/src/security/InputValidator.ts +9 -6
  596. package/src/security/SecurityCIPipeline.ts +53 -37
  597. package/src/security/SecurityConfig.ts +22 -22
  598. package/src/security/SecurityConfigManager.ts +23 -19
  599. package/src/security/SecurityMonitoring.ts +24 -21
  600. package/src/security/SecurityReviewer.ts +10 -7
  601. package/src/security/index.ts +64 -29
  602. package/src/server/ConnectionTester.ts +120 -31
  603. package/src/server/ToolRegistry.ts +31 -21
  604. package/src/tools/BaseToolManager.ts +286 -33
  605. package/src/tools/auth.ts +20 -8
  606. package/src/tools/cache.ts +5 -15
  607. package/src/tools/comments.ts +34 -48
  608. package/src/tools/media.ts +41 -53
  609. package/src/tools/pages.ts +32 -54
  610. package/src/tools/performance.ts +141 -176
  611. package/src/tools/posts/PostHandlers.ts +474 -0
  612. package/src/tools/posts/PostToolDefinitions.ts +250 -0
  613. package/src/tools/posts/index.ts +192 -0
  614. package/src/tools/posts.ts +24 -780
  615. package/src/tools/site.ts +34 -19
  616. package/src/tools/taxonomies.ts +41 -57
  617. package/src/tools/users.ts +28 -16
  618. package/src/types/client.ts +114 -138
  619. package/src/types/enhanced.ts +318 -0
  620. package/src/types/index.ts +51 -30
  621. package/src/types/mcp.ts +20 -42
  622. package/src/types/requests.ts +378 -0
  623. package/src/types/tools.ts +608 -0
  624. package/src/types/wordpress.ts +56 -34
  625. package/src/utils/debug.ts +77 -59
  626. package/src/utils/enhancedError.ts +8 -8
  627. package/src/utils/error.ts +53 -31
  628. package/src/utils/logger.ts +351 -0
  629. package/src/utils/streaming.ts +86 -68
  630. package/src/utils/toolWrapper.ts +10 -12
  631. package/src/utils/validation/core.ts +108 -0
  632. package/src/utils/validation/index.ts +36 -0
  633. package/src/utils/validation/network.ts +132 -0
  634. package/src/utils/validation/rateLimit.ts +54 -0
  635. package/src/utils/validation/security.ts +361 -0
  636. package/src/utils/validation/wordpress.ts +180 -0
  637. package/src/utils/validation.ts +47 -470
  638. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +0 -5
  639. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +0 -1
  640. package/dist/cache/__tests__/CacheInvalidation.test.js +0 -238
  641. package/dist/cache/__tests__/CacheInvalidation.test.js.map +0 -1
  642. package/dist/cache/__tests__/CacheManager.test.d.ts +0 -5
  643. package/dist/cache/__tests__/CacheManager.test.d.ts.map +0 -1
  644. package/dist/cache/__tests__/CacheManager.test.js +0 -233
  645. package/dist/cache/__tests__/CacheManager.test.js.map +0 -1
  646. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +0 -5
  647. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +0 -1
  648. package/dist/cache/__tests__/CachedWordPressClient.test.js +0 -231
  649. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +0 -1
  650. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +0 -5
  651. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +0 -1
  652. package/dist/cache/__tests__/HttpCacheWrapper.test.js +0 -299
  653. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +0 -1
@@ -32,15 +32,12 @@ import type {
32
32
  UpdateTagRequest,
33
33
  UploadMediaRequest,
34
34
  UpdateMediaRequest,
35
+ AuthMethod,
35
36
  } from "./wordpress.js";
36
37
 
37
38
  // Authentication Configuration
38
- export type AuthMethod =
39
- | "app-password"
40
- | "jwt"
41
- | "basic"
42
- | "api-key"
43
- | "cookie";
39
+ // AuthMethod is now imported from wordpress.js for consistency
40
+ export type { AuthMethod };
44
41
 
45
42
  export interface AuthConfig {
46
43
  method: AuthMethod;
@@ -54,6 +51,38 @@ export interface AuthConfig {
54
51
  clientId?: string;
55
52
  }
56
53
 
54
+ // Specific credential interfaces for type safety
55
+ export interface AppPasswordCredentials {
56
+ username: string;
57
+ appPassword: string;
58
+ }
59
+
60
+ export interface JwtCredentials {
61
+ jwtToken: string;
62
+ username?: string;
63
+ }
64
+
65
+ export interface BasicCredentials {
66
+ username: string;
67
+ password: string;
68
+ }
69
+
70
+ export interface ApiKeyCredentials {
71
+ apiKey: string;
72
+ }
73
+
74
+ // Union type for all credential types
75
+ export type AuthCredentials = AppPasswordCredentials | JwtCredentials | BasicCredentials | ApiKeyCredentials;
76
+
77
+ // Authentication status interface
78
+ export interface AuthStatus {
79
+ method: AuthMethod;
80
+ username?: string | undefined;
81
+ isAuthenticated: boolean;
82
+ tokenExpired: boolean;
83
+ tokenExpiry?: number;
84
+ }
85
+
57
86
  // Client Configuration
58
87
  export interface WordPressClientConfig {
59
88
  baseUrl: string;
@@ -77,11 +106,11 @@ export interface RequestOptions {
77
106
  timeout?: number;
78
107
  retries?: number;
79
108
  signal?: AbortSignal;
80
- params?: any;
109
+ params?: Record<string, unknown>;
81
110
  }
82
111
 
83
112
  // API Response Wrapper
84
- export interface APIResponse<T = any> {
113
+ export interface APIResponse<T = unknown> {
85
114
  data: T;
86
115
  status: number;
87
116
  statusText: string;
@@ -120,64 +149,32 @@ export interface IWordPressClient {
120
149
  disconnect(): Promise<void>;
121
150
 
122
151
  // Generic HTTP Methods
123
- request<T = any>(
124
- method: HTTPMethod,
125
- endpoint: string,
126
- data?: any,
127
- options?: RequestOptions,
128
- ): Promise<T>;
129
- get<T = any>(endpoint: string, options?: RequestOptions): Promise<T>;
130
- post<T = any>(
131
- endpoint: string,
132
- data?: any,
133
- options?: RequestOptions,
134
- ): Promise<T>;
135
- put<T = any>(
136
- endpoint: string,
137
- data?: any,
138
- options?: RequestOptions,
139
- ): Promise<T>;
140
- patch<T = any>(
141
- endpoint: string,
142
- data?: any,
143
- options?: RequestOptions,
144
- ): Promise<T>;
145
- delete<T = any>(endpoint: string, options?: RequestOptions): Promise<T>;
152
+ request<T = unknown>(method: HTTPMethod, endpoint: string, data?: unknown, options?: RequestOptions): Promise<T>;
153
+ get<T = unknown>(endpoint: string, options?: RequestOptions): Promise<T>;
154
+ post<T = unknown>(endpoint: string, data?: unknown, options?: RequestOptions): Promise<T>;
155
+ put<T = unknown>(endpoint: string, data?: unknown, options?: RequestOptions): Promise<T>;
156
+ patch<T = unknown>(endpoint: string, data?: unknown, options?: RequestOptions): Promise<T>;
157
+ delete<T = unknown>(endpoint: string, options?: RequestOptions): Promise<T>;
146
158
 
147
159
  // Posts
148
160
  getPosts(params?: PostQueryParams): Promise<WordPressPost[]>;
149
- getPost(
150
- id: number,
151
- context?: "view" | "embed" | "edit",
152
- ): Promise<WordPressPost>;
161
+ getPost(id: number, context?: "view" | "embed" | "edit"): Promise<WordPressPost>;
153
162
  createPost(data: CreatePostRequest): Promise<WordPressPost>;
154
163
  updatePost(data: UpdatePostRequest): Promise<WordPressPost>;
155
- deletePost(
156
- id: number,
157
- force?: boolean,
158
- ): Promise<{ deleted: boolean; previous?: WordPressPost }>;
164
+ deletePost(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressPost }>;
159
165
  getPostRevisions(id: number): Promise<WordPressPost[]>;
160
166
 
161
167
  // Pages
162
168
  getPages(params?: PostQueryParams): Promise<WordPressPage[]>;
163
- getPage(
164
- id: number,
165
- context?: "view" | "embed" | "edit",
166
- ): Promise<WordPressPage>;
169
+ getPage(id: number, context?: "view" | "embed" | "edit"): Promise<WordPressPage>;
167
170
  createPage(data: CreatePageRequest): Promise<WordPressPage>;
168
171
  updatePage(data: UpdatePageRequest): Promise<WordPressPage>;
169
- deletePage(
170
- id: number,
171
- force?: boolean,
172
- ): Promise<{ deleted: boolean; previous?: WordPressPage }>;
172
+ deletePage(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressPage }>;
173
173
  getPageRevisions(id: number): Promise<WordPressPage[]>;
174
174
 
175
175
  // Media
176
176
  getMedia(params?: MediaQueryParams): Promise<WordPressMedia[]>;
177
- getMediaItem(
178
- id: number,
179
- context?: "view" | "embed" | "edit",
180
- ): Promise<WordPressMedia>;
177
+ getMediaItem(id: number, context?: "view" | "embed" | "edit"): Promise<WordPressMedia>;
181
178
  uploadMedia(data: UploadMediaRequest): Promise<WordPressMedia>;
182
179
  uploadFile(
183
180
  fileData: Buffer,
@@ -187,37 +184,22 @@ export interface IWordPressClient {
187
184
  options?: RequestOptions,
188
185
  ): Promise<WordPressMedia>;
189
186
  updateMedia(data: UpdateMediaRequest): Promise<WordPressMedia>;
190
- deleteMedia(
191
- id: number,
192
- force?: boolean,
193
- ): Promise<{ deleted: boolean; previous?: WordPressMedia }>;
187
+ deleteMedia(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressMedia }>;
194
188
 
195
189
  // Users
196
190
  getUsers(params?: UserQueryParams): Promise<WordPressUser[]>;
197
- getUser(
198
- id: number | "me",
199
- context?: "view" | "embed" | "edit",
200
- ): Promise<WordPressUser>;
191
+ getUser(id: number | "me", context?: "view" | "embed" | "edit"): Promise<WordPressUser>;
201
192
  createUser(data: CreateUserRequest): Promise<WordPressUser>;
202
193
  updateUser(data: UpdateUserRequest): Promise<WordPressUser>;
203
- deleteUser(
204
- id: number,
205
- reassign?: number,
206
- ): Promise<{ deleted: boolean; previous?: WordPressUser }>;
194
+ deleteUser(id: number, reassign?: number): Promise<{ deleted: boolean; previous?: WordPressUser }>;
207
195
  getCurrentUser(): Promise<WordPressUser>;
208
196
 
209
197
  // Comments
210
198
  getComments(params?: CommentQueryParams): Promise<WordPressComment[]>;
211
- getComment(
212
- id: number,
213
- context?: "view" | "embed" | "edit",
214
- ): Promise<WordPressComment>;
199
+ getComment(id: number, context?: "view" | "embed" | "edit"): Promise<WordPressComment>;
215
200
  createComment(data: CreateCommentRequest): Promise<WordPressComment>;
216
201
  updateComment(data: UpdateCommentRequest): Promise<WordPressComment>;
217
- deleteComment(
218
- id: number,
219
- force?: boolean,
220
- ): Promise<{ deleted: boolean; previous?: WordPressComment }>;
202
+ deleteComment(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressComment }>;
221
203
  approveComment(id: number): Promise<WordPressComment>;
222
204
  rejectComment(id: number): Promise<WordPressComment>;
223
205
  spamComment(id: number): Promise<WordPressComment>;
@@ -237,10 +219,7 @@ export interface IWordPressClient {
237
219
  getCategory(id: number): Promise<WordPressCategory>;
238
220
  createCategory(data: CreateCategoryRequest): Promise<WordPressCategory>;
239
221
  updateCategory(data: UpdateCategoryRequest): Promise<WordPressCategory>;
240
- deleteCategory(
241
- id: number,
242
- force?: boolean,
243
- ): Promise<{ deleted: boolean; previous?: WordPressCategory }>;
222
+ deleteCategory(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressCategory }>;
244
223
 
245
224
  getTags(params?: {
246
225
  search?: string;
@@ -255,62 +234,26 @@ export interface IWordPressClient {
255
234
  getTag(id: number): Promise<WordPressTag>;
256
235
  createTag(data: CreateTagRequest): Promise<WordPressTag>;
257
236
  updateTag(data: UpdateTagRequest): Promise<WordPressTag>;
258
- deleteTag(
259
- id: number,
260
- force?: boolean,
261
- ): Promise<{ deleted: boolean; previous?: WordPressTag }>;
237
+ deleteTag(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressTag }>;
262
238
 
263
239
  // Site Management
264
240
  getSiteSettings(): Promise<WordPressSiteSettings>;
265
- updateSiteSettings(
266
- settings: Partial<WordPressSiteSettings>,
267
- ): Promise<WordPressSiteSettings>;
268
- getSiteInfo(): Promise<{
269
- name: string;
270
- description: string;
271
- url: string;
272
- home: string;
273
- gmt_offset: number;
274
- timezone_string: string;
275
- namespaces: string[];
276
- authentication: Record<string, any>;
277
- routes: Record<string, any>;
278
- }>;
241
+ updateSiteSettings(settings: Partial<WordPressSiteSettings>): Promise<WordPressSiteSettings>;
242
+ getSiteInfo(): Promise<import("./wordpress.js").WordPressSiteInfo>;
279
243
 
280
244
  // Application Passwords
281
- getApplicationPasswords(
282
- userId?: number | "me",
283
- ): Promise<WordPressApplicationPassword[]>;
284
- createApplicationPassword(
285
- userId: number | "me",
286
- name: string,
287
- appId?: string,
288
- ): Promise<WordPressApplicationPassword>;
289
- deleteApplicationPassword(
290
- userId: number | "me",
291
- uuid: string,
292
- ): Promise<{ deleted: boolean }>;
245
+ getApplicationPasswords(userId?: number | "me"): Promise<WordPressApplicationPassword[]>;
246
+ createApplicationPassword(userId: number | "me", name: string, appId?: string): Promise<WordPressApplicationPassword>;
247
+ deleteApplicationPassword(userId: number | "me", uuid: string): Promise<{ deleted: boolean }>;
293
248
 
294
249
  // Search
295
- search(
296
- query: string,
297
- types?: string[],
298
- subtype?: string,
299
- ): Promise<
300
- Array<{
301
- id: number;
302
- title: string;
303
- url: string;
304
- type: string;
305
- subtype: string;
306
- }>
307
- >;
250
+ search(query: string, types?: string[], subtype?: string): Promise<import("./wordpress.js").WordPressSearchResult[]>;
308
251
 
309
252
  // Utility Methods
310
253
  ping(): Promise<boolean>;
311
- getServerInfo(): Promise<Record<string, any>>;
254
+ getServerInfo(): Promise<Record<string, unknown>>;
312
255
  validateEndpoint(endpoint: string): boolean;
313
- buildUrl(endpoint: string, params?: Record<string, any>): string;
256
+ buildUrl(endpoint: string, params?: Record<string, unknown>): string;
314
257
  }
315
258
 
316
259
  // Authentication Provider Interface
@@ -326,9 +269,9 @@ export interface IAuthProvider {
326
269
  export class WordPressAPIError extends Error {
327
270
  public readonly statusCode?: number;
328
271
  public readonly code?: string;
329
- public data?: any;
272
+ public data?: unknown;
330
273
 
331
- constructor(message: string, statusCode?: number, code?: string, data?: any) {
274
+ constructor(message: string, statusCode?: number, code?: string, data?: unknown) {
332
275
  super(message);
333
276
  this.name = "WordPressAPIError";
334
277
  if (statusCode !== undefined) this.statusCode = statusCode;
@@ -362,41 +305,74 @@ export class ValidationError extends WordPressAPIError {
362
305
  }
363
306
 
364
307
  // Type Guards
365
- export function isWordPressAPIError(error: any): error is WordPressAPIError {
308
+ export function isWordPressAPIError(error: unknown): error is WordPressAPIError {
366
309
  return error instanceof WordPressAPIError;
367
310
  }
368
311
 
369
- export function isAuthenticationError(
370
- error: any,
371
- ): error is AuthenticationError {
312
+ export function isAuthenticationError(error: unknown): error is AuthenticationError {
372
313
  return error instanceof AuthenticationError;
373
314
  }
374
315
 
375
- export function isRateLimitError(error: any): error is RateLimitError {
316
+ export function isRateLimitError(error: unknown): error is RateLimitError {
376
317
  return error instanceof RateLimitError;
377
318
  }
378
319
 
379
- export function isValidationError(error: any): error is ValidationError {
320
+ export function isValidationError(error: unknown): error is ValidationError {
380
321
  return error instanceof ValidationError;
381
322
  }
382
323
 
383
324
  // Response Type Guards
384
- export function isWordPressPost(obj: any): obj is WordPressPost {
385
- return obj && typeof obj.id === "number" && obj.type === "post";
325
+ export function isWordPressPost(obj: unknown): obj is WordPressPost {
326
+ return (
327
+ obj !== null &&
328
+ typeof obj === "object" &&
329
+ "id" in obj &&
330
+ "type" in obj &&
331
+ typeof (obj as Record<string, unknown>).id === "number" &&
332
+ (obj as Record<string, unknown>).type === "post"
333
+ );
386
334
  }
387
335
 
388
- export function isWordPressPage(obj: any): obj is WordPressPage {
389
- return obj && typeof obj.id === "number" && obj.type === "page";
336
+ export function isWordPressPage(obj: unknown): obj is WordPressPage {
337
+ return (
338
+ obj !== null &&
339
+ typeof obj === "object" &&
340
+ "id" in obj &&
341
+ "type" in obj &&
342
+ typeof (obj as Record<string, unknown>).id === "number" &&
343
+ (obj as Record<string, unknown>).type === "page"
344
+ );
390
345
  }
391
346
 
392
- export function isWordPressMedia(obj: any): obj is WordPressMedia {
393
- return obj && typeof obj.id === "number" && obj.media_type;
347
+ export function isWordPressMedia(obj: unknown): obj is WordPressMedia {
348
+ return (
349
+ obj !== null &&
350
+ typeof obj === "object" &&
351
+ "id" in obj &&
352
+ "media_type" in obj &&
353
+ typeof (obj as Record<string, unknown>).id === "number" &&
354
+ Boolean((obj as Record<string, unknown>).media_type)
355
+ );
394
356
  }
395
357
 
396
- export function isWordPressUser(obj: any): obj is WordPressUser {
397
- return obj && typeof obj.id === "number" && obj.username;
358
+ export function isWordPressUser(obj: unknown): obj is WordPressUser {
359
+ return (
360
+ obj !== null &&
361
+ typeof obj === "object" &&
362
+ "id" in obj &&
363
+ "username" in obj &&
364
+ typeof (obj as Record<string, unknown>).id === "number" &&
365
+ Boolean((obj as Record<string, unknown>).username)
366
+ );
398
367
  }
399
368
 
400
- export function isWordPressComment(obj: any): obj is WordPressComment {
401
- return obj && typeof obj.id === "number" && typeof obj.post === "number";
369
+ export function isWordPressComment(obj: unknown): obj is WordPressComment {
370
+ return (
371
+ obj !== null &&
372
+ typeof obj === "object" &&
373
+ "id" in obj &&
374
+ "post" in obj &&
375
+ typeof (obj as Record<string, unknown>).id === "number" &&
376
+ typeof (obj as Record<string, unknown>).post === "number"
377
+ );
402
378
  }
@@ -0,0 +1,318 @@
1
+ /**
2
+ * Enhanced TypeScript Types for MCP WordPress
3
+ *
4
+ * This file provides stronger typing, utility types, and generic constraints
5
+ * to improve type safety throughout the codebase.
6
+ */
7
+
8
+ // Utility Types for Better Type Safety
9
+ export type NonEmptyArray<T> = readonly [T, ...T[]];
10
+ export type Nullable<T> = T | null;
11
+ export type Optional<T> = T | undefined;
12
+ export type DeepReadonly<T> = {
13
+ readonly [P in keyof T]: T[P] extends (infer U)[]
14
+ ? DeepReadonlyArray<U>
15
+ : T[P] extends readonly (infer U)[]
16
+ ? DeepReadonlyArray<U>
17
+ : T[P] extends object
18
+ ? DeepReadonly<T[P]>
19
+ : T[P];
20
+ };
21
+
22
+ interface DeepReadonlyArray<T> extends ReadonlyArray<DeepReadonly<T>> {}
23
+
24
+ // Branded Types for Domain-Specific Values
25
+ export type WordPressId = number & { readonly __brand: 'WordPressId' };
26
+ export type UserId = number & { readonly __brand: 'UserId' };
27
+ export type PostId = number & { readonly __brand: 'PostId' };
28
+ export type MediaId = number & { readonly __brand: 'MediaId' };
29
+ export type CommentId = number & { readonly __brand: 'CommentId' };
30
+ export type CategoryId = number & { readonly __brand: 'CategoryId' };
31
+ export type TagId = number & { readonly __brand: 'TagId' };
32
+
33
+ // Helper functions to create branded types
34
+ export const createWordPressId = (id: number): WordPressId => {
35
+ if (!Number.isInteger(id) || id <= 0) {
36
+ throw new Error(`Invalid WordPress ID: ${id}. Must be a positive integer.`);
37
+ }
38
+ return id as WordPressId;
39
+ };
40
+
41
+ export const createUserId = (id: number): UserId => id as UserId;
42
+ export const createPostId = (id: number): PostId => id as PostId;
43
+ export const createMediaId = (id: number): MediaId => id as MediaId;
44
+ export const createCommentId = (id: number): CommentId => id as CommentId;
45
+ export const createCategoryId = (id: number): CategoryId => id as CategoryId;
46
+ export const createTagId = (id: number): TagId => id as TagId;
47
+
48
+ // Strict URL type
49
+ export type WordPressURL = string & { readonly __brand: 'WordPressURL' };
50
+ export const createWordPressURL = (url: string): WordPressURL => {
51
+ try {
52
+ new URL(url);
53
+ return url as WordPressURL;
54
+ } catch {
55
+ throw new Error(`Invalid URL: ${url}`);
56
+ }
57
+ };
58
+
59
+ // Enhanced Error Types with Better Constraints
60
+ export interface TypedError<TCode extends string = string> extends Error {
61
+ readonly code: TCode;
62
+ readonly statusCode?: number;
63
+ readonly timestamp: Date;
64
+ readonly context?: Record<string, unknown>;
65
+ }
66
+
67
+ export interface ValidationError extends TypedError<'VALIDATION_ERROR'> {
68
+ readonly field: string;
69
+ readonly value: unknown;
70
+ readonly constraint: string;
71
+ }
72
+
73
+ export interface APIError extends TypedError<'API_ERROR'> {
74
+ readonly endpoint: string;
75
+ readonly method: string;
76
+ readonly statusCode: number;
77
+ }
78
+
79
+ // Enhanced Request/Response Types with Generic Constraints
80
+ export interface BaseRequest {
81
+ readonly timestamp: Date;
82
+ readonly requestId: string;
83
+ }
84
+
85
+ export interface BaseResponse<TData = unknown> {
86
+ readonly success: boolean;
87
+ readonly data?: TData;
88
+ readonly error?: string;
89
+ readonly timestamp: Date;
90
+ readonly requestId: string;
91
+ }
92
+
93
+ export interface PaginatedResponse<TData> extends BaseResponse<TData[]> {
94
+ readonly pagination: {
95
+ readonly page: number;
96
+ readonly perPage: number;
97
+ readonly total: number;
98
+ readonly totalPages: number;
99
+ };
100
+ }
101
+
102
+ // Enhanced API Client Types
103
+ export interface RequestConfig {
104
+ readonly timeout?: number;
105
+ readonly retries?: number;
106
+ readonly headers?: DeepReadonly<Record<string, string>>;
107
+ readonly signal?: AbortSignal;
108
+ }
109
+
110
+ export interface HTTPRequestOptions extends RequestConfig {
111
+ readonly method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
112
+ readonly url: WordPressURL;
113
+ readonly data?: unknown;
114
+ readonly params?: DeepReadonly<Record<string, string | number | boolean>>;
115
+ }
116
+
117
+ // Tool Handler Types with Enhanced Constraints
118
+ export interface ToolContext {
119
+ readonly toolName: string;
120
+ readonly executionId: string;
121
+ readonly startTime: Date;
122
+ readonly user?: {
123
+ readonly id: UserId;
124
+ readonly roles: NonEmptyArray<string>;
125
+ };
126
+ }
127
+
128
+ export interface ToolResult<TData = unknown> {
129
+ readonly success: boolean;
130
+ readonly data?: TData;
131
+ readonly error?: string;
132
+ readonly executionTime: number;
133
+ readonly warnings?: readonly string[];
134
+ }
135
+
136
+ export type ToolHandler<TInput, TOutput> = (
137
+ input: DeepReadonly<TInput>,
138
+ context: DeepReadonly<ToolContext>
139
+ ) => Promise<ToolResult<TOutput>>;
140
+
141
+ // Cache Types with Enhanced Type Safety
142
+ export interface CacheKey {
143
+ readonly namespace: string;
144
+ readonly operation: string;
145
+ readonly params: DeepReadonly<Record<string, string | number | boolean>>;
146
+ }
147
+
148
+ export interface CacheEntry<TData> {
149
+ readonly key: string;
150
+ readonly data: TData;
151
+ readonly createdAt: Date;
152
+ readonly expiresAt: Date;
153
+ readonly hits: number;
154
+ }
155
+
156
+ export interface CacheOptions {
157
+ readonly ttl: number;
158
+ readonly tags?: readonly string[];
159
+ readonly priority?: 'low' | 'medium' | 'high';
160
+ }
161
+
162
+ // Configuration Types with Better Validation
163
+ export interface StrictSiteConfig {
164
+ readonly id: string;
165
+ readonly name: string;
166
+ readonly url: WordPressURL;
167
+ readonly auth: DeepReadonly<{
168
+ readonly method: 'app-password' | 'jwt' | 'basic' | 'api-key';
169
+ readonly username: string;
170
+ readonly password: string;
171
+ }>;
172
+ readonly timeout?: number;
173
+ readonly rateLimit?: DeepReadonly<{
174
+ readonly requestsPerMinute: number;
175
+ readonly burstLimit: number;
176
+ }>;
177
+ }
178
+
179
+ // Performance Monitoring Types
180
+ export interface PerformanceMetrics {
181
+ readonly requestCount: number;
182
+ readonly averageResponseTime: number;
183
+ readonly errorRate: number;
184
+ readonly cacheHitRate: number;
185
+ readonly lastUpdated: Date;
186
+ }
187
+
188
+ export interface PerformanceThresholds {
189
+ readonly maxResponseTime: number;
190
+ readonly maxErrorRate: number;
191
+ readonly minCacheHitRate: number;
192
+ }
193
+
194
+ // Type Guards for Runtime Validation
195
+ export const isWordPressId = (value: unknown): value is WordPressId => {
196
+ return typeof value === 'number' && Number.isInteger(value) && value > 0;
197
+ };
198
+
199
+ export const isNonEmptyArray = <T>(value: unknown): value is NonEmptyArray<T> => {
200
+ return Array.isArray(value) && value.length > 0;
201
+ };
202
+
203
+ export const isValidURL = (value: unknown): value is WordPressURL => {
204
+ if (typeof value !== 'string') return false;
205
+ try {
206
+ new URL(value);
207
+ return true;
208
+ } catch {
209
+ return false;
210
+ }
211
+ };
212
+
213
+ // Conditional Types for Enhanced API
214
+ export type RequiredFields<T, K extends keyof T> = T & Required<Pick<T, K>>;
215
+ export type OptionalFields<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
216
+
217
+ // JSON Schema Type Definitions
218
+ export interface JSONSchemaDefinition {
219
+ readonly type: 'string' | 'number' | 'boolean' | 'object' | 'array' | 'null';
220
+ readonly description?: string;
221
+ readonly required?: boolean;
222
+ readonly enum?: readonly (string | number)[];
223
+ readonly minimum?: number;
224
+ readonly maximum?: number;
225
+ readonly minLength?: number;
226
+ readonly maxLength?: number;
227
+ readonly pattern?: string;
228
+ readonly format?: 'email' | 'uri' | 'date-time' | 'date' | 'time';
229
+ readonly items?: JSONSchemaDefinition;
230
+ readonly properties?: DeepReadonly<Record<string, JSONSchemaDefinition>>;
231
+ }
232
+
233
+ // Enhanced MCP Tool Schema
234
+ export interface StrictMCPToolSchema {
235
+ readonly type: 'object';
236
+ readonly properties: DeepReadonly<Record<string, JSONSchemaDefinition>>;
237
+ readonly required: readonly string[];
238
+ readonly additionalProperties: false;
239
+ }
240
+
241
+ // Result Types for Better Error Handling
242
+ export type Result<TSuccess, TError = Error> =
243
+ | { readonly success: true; readonly data: TSuccess }
244
+ | { readonly success: false; readonly error: TError };
245
+
246
+ export const createSuccess = <T>(data: T): Result<T> => ({ success: true, data });
247
+ export const createError = <T>(error: Error): Result<T> => ({ success: false, error });
248
+
249
+ // Async Result Type
250
+ export type AsyncResult<T, E = Error> = Promise<Result<T, E>>;
251
+
252
+ // Database Types with Enhanced Constraints
253
+ export interface DatabaseEntity {
254
+ readonly id: WordPressId;
255
+ readonly createdAt: Date;
256
+ readonly updatedAt: Date;
257
+ readonly version: number;
258
+ }
259
+
260
+ export interface AuditableEntity extends DatabaseEntity {
261
+ readonly createdBy: UserId;
262
+ readonly updatedBy: UserId;
263
+ }
264
+
265
+ // Validation Result Types
266
+ export interface ValidationResult<T> {
267
+ readonly success: boolean;
268
+ readonly data?: T;
269
+ readonly errors: readonly ValidationError[];
270
+ readonly warnings: readonly string[];
271
+ }
272
+
273
+ export type Validator<T> = (value: unknown) => ValidationResult<T>;
274
+
275
+ // Enhanced Event Types for Monitoring
276
+ export interface DomainEvent<TType extends string = string, TPayload = unknown> {
277
+ readonly type: TType;
278
+ readonly payload: TPayload;
279
+ readonly timestamp: Date;
280
+ readonly source: string;
281
+ readonly correlationId: string;
282
+ }
283
+
284
+ export type EventHandler<TEvent extends DomainEvent> = (event: TEvent) => Promise<void>;
285
+
286
+ // Configuration Validation Types
287
+ export interface ConfigValidationRule<T> {
288
+ readonly key: keyof T;
289
+ readonly required: boolean;
290
+ readonly validator: (value: unknown) => boolean;
291
+ readonly errorMessage: string;
292
+ }
293
+
294
+ export interface ConfigValidationResult {
295
+ readonly valid: boolean;
296
+ readonly errors: readonly string[];
297
+ readonly warnings: readonly string[];
298
+ }
299
+
300
+ // Performance Monitoring Event Types
301
+ export type PerformanceEventType =
302
+ | 'request_started'
303
+ | 'request_completed'
304
+ | 'request_failed'
305
+ | 'cache_hit'
306
+ | 'cache_miss'
307
+ | 'auth_success'
308
+ | 'auth_failure';
309
+
310
+ export interface PerformanceEvent extends DomainEvent<PerformanceEventType> {
311
+ readonly payload: {
312
+ readonly duration?: number;
313
+ readonly endpoint?: string;
314
+ readonly statusCode?: number;
315
+ readonly cacheKey?: string;
316
+ readonly userId?: UserId;
317
+ };
318
+ }