mcp-wordpress 2.5.0 → 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 (318) hide show
  1. package/README.md +19 -15
  2. package/bin/status.js +1 -1
  3. package/dist/config/ServerConfiguration.d.ts.map +1 -1
  4. package/dist/config/ServerConfiguration.js +23 -2
  5. package/dist/config/ServerConfiguration.js.map +1 -1
  6. package/dist/src/cache/CacheInvalidation.d.ts +120 -0
  7. package/dist/src/cache/CacheInvalidation.d.ts.map +1 -0
  8. package/dist/src/cache/CacheInvalidation.js +355 -0
  9. package/dist/src/cache/CacheInvalidation.js.map +1 -0
  10. package/dist/src/cache/CacheManager.d.ts +149 -0
  11. package/dist/src/cache/CacheManager.d.ts.map +1 -0
  12. package/dist/src/cache/CacheManager.js +326 -0
  13. package/dist/src/cache/CacheManager.js.map +1 -0
  14. package/dist/src/cache/HttpCacheWrapper.d.ts +122 -0
  15. package/dist/src/cache/HttpCacheWrapper.d.ts.map +1 -0
  16. package/dist/src/cache/HttpCacheWrapper.js +283 -0
  17. package/dist/src/cache/HttpCacheWrapper.js.map +1 -0
  18. package/dist/src/cache/index.d.ts +12 -0
  19. package/dist/src/cache/index.d.ts.map +1 -0
  20. package/dist/src/cache/index.js +9 -0
  21. package/dist/src/cache/index.js.map +1 -0
  22. package/dist/src/client/CachedWordPressClient.d.ts +174 -0
  23. package/dist/src/client/CachedWordPressClient.d.ts.map +1 -0
  24. package/dist/src/client/CachedWordPressClient.js +345 -0
  25. package/dist/src/client/CachedWordPressClient.js.map +1 -0
  26. package/dist/src/client/MockWordPressClient.d.ts +56 -0
  27. package/dist/src/client/MockWordPressClient.d.ts.map +1 -0
  28. package/dist/src/client/MockWordPressClient.js +371 -0
  29. package/dist/src/client/MockWordPressClient.js.map +1 -0
  30. package/dist/src/client/api.d.ts +235 -0
  31. package/dist/src/client/api.d.ts.map +1 -0
  32. package/dist/src/client/api.js +896 -0
  33. package/dist/src/client/api.js.map +1 -0
  34. package/dist/src/client/auth.d.ts +121 -0
  35. package/dist/src/client/auth.d.ts.map +1 -0
  36. package/dist/src/client/auth.js +429 -0
  37. package/dist/src/client/auth.js.map +1 -0
  38. package/dist/src/client/managers/AuthenticationManager.d.ts +92 -0
  39. package/dist/src/client/managers/AuthenticationManager.d.ts.map +1 -0
  40. package/dist/src/client/managers/AuthenticationManager.js +369 -0
  41. package/dist/src/client/managers/AuthenticationManager.js.map +1 -0
  42. package/dist/src/client/managers/BaseManager.d.ts +22 -0
  43. package/dist/src/client/managers/BaseManager.d.ts.map +1 -0
  44. package/dist/src/client/managers/BaseManager.js +53 -0
  45. package/dist/src/client/managers/BaseManager.js.map +1 -0
  46. package/dist/src/client/managers/RequestManager.d.ts +47 -0
  47. package/dist/src/client/managers/RequestManager.d.ts.map +1 -0
  48. package/dist/src/client/managers/RequestManager.js +193 -0
  49. package/dist/src/client/managers/RequestManager.js.map +1 -0
  50. package/dist/src/client/managers/index.d.ts +8 -0
  51. package/dist/src/client/managers/index.d.ts.map +1 -0
  52. package/dist/src/client/managers/index.js +8 -0
  53. package/dist/src/client/managers/index.js.map +1 -0
  54. package/dist/src/config/Config.d.ts +155 -0
  55. package/dist/src/config/Config.d.ts.map +1 -0
  56. package/dist/src/config/Config.js +215 -0
  57. package/dist/src/config/Config.js.map +1 -0
  58. package/dist/src/config/ConfigurationSchema.d.ts +281 -0
  59. package/dist/src/config/ConfigurationSchema.d.ts.map +1 -0
  60. package/dist/src/config/ConfigurationSchema.js +205 -0
  61. package/dist/src/config/ConfigurationSchema.js.map +1 -0
  62. package/dist/src/config/ServerConfiguration.d.ts +47 -0
  63. package/dist/src/config/ServerConfiguration.d.ts.map +1 -0
  64. package/dist/src/config/ServerConfiguration.js +255 -0
  65. package/dist/src/config/ServerConfiguration.js.map +1 -0
  66. package/dist/src/docs/DocumentationGenerator.d.ts +185 -0
  67. package/dist/src/docs/DocumentationGenerator.d.ts.map +1 -0
  68. package/dist/src/docs/DocumentationGenerator.js +777 -0
  69. package/dist/src/docs/DocumentationGenerator.js.map +1 -0
  70. package/dist/src/docs/MarkdownFormatter.d.ts +84 -0
  71. package/dist/src/docs/MarkdownFormatter.d.ts.map +1 -0
  72. package/dist/src/docs/MarkdownFormatter.js +458 -0
  73. package/dist/src/docs/MarkdownFormatter.js.map +1 -0
  74. package/dist/src/docs/index.d.ts +8 -0
  75. package/dist/src/docs/index.d.ts.map +1 -0
  76. package/dist/src/docs/index.js +7 -0
  77. package/dist/src/docs/index.js.map +1 -0
  78. package/dist/src/dxt-entry.d.ts +6 -0
  79. package/dist/src/dxt-entry.d.ts.map +1 -0
  80. package/dist/src/dxt-entry.js +39 -0
  81. package/dist/src/dxt-entry.js.map +1 -0
  82. package/dist/src/index.d.ts +18 -0
  83. package/dist/src/index.d.ts.map +1 -0
  84. package/dist/src/index.js +143 -0
  85. package/dist/src/index.js.map +1 -0
  86. package/dist/src/performance/MetricsCollector.d.ts +145 -0
  87. package/dist/src/performance/MetricsCollector.d.ts.map +1 -0
  88. package/dist/src/performance/MetricsCollector.js +368 -0
  89. package/dist/src/performance/MetricsCollector.js.map +1 -0
  90. package/dist/src/performance/PerformanceAnalytics.d.ts +168 -0
  91. package/dist/src/performance/PerformanceAnalytics.d.ts.map +1 -0
  92. package/dist/src/performance/PerformanceAnalytics.js +570 -0
  93. package/dist/src/performance/PerformanceAnalytics.js.map +1 -0
  94. package/dist/src/performance/PerformanceMonitor.d.ts +203 -0
  95. package/dist/src/performance/PerformanceMonitor.d.ts.map +1 -0
  96. package/dist/src/performance/PerformanceMonitor.js +478 -0
  97. package/dist/src/performance/PerformanceMonitor.js.map +1 -0
  98. package/dist/src/performance/index.d.ts +11 -0
  99. package/dist/src/performance/index.d.ts.map +1 -0
  100. package/dist/src/performance/index.js +8 -0
  101. package/dist/src/performance/index.js.map +1 -0
  102. package/dist/src/security/AISecurityScanner.d.ts +176 -0
  103. package/dist/src/security/AISecurityScanner.d.ts.map +1 -0
  104. package/dist/src/security/AISecurityScanner.js +655 -0
  105. package/dist/src/security/AISecurityScanner.js.map +1 -0
  106. package/dist/src/security/AutomatedRemediation.d.ts +146 -0
  107. package/dist/src/security/AutomatedRemediation.d.ts.map +1 -0
  108. package/dist/src/security/AutomatedRemediation.js +566 -0
  109. package/dist/src/security/AutomatedRemediation.js.map +1 -0
  110. package/dist/src/security/InputValidator.d.ts +219 -0
  111. package/dist/src/security/InputValidator.d.ts.map +1 -0
  112. package/dist/src/security/InputValidator.js +295 -0
  113. package/dist/src/security/InputValidator.js.map +1 -0
  114. package/dist/src/security/SecurityCIPipeline.d.ts +213 -0
  115. package/dist/src/security/SecurityCIPipeline.d.ts.map +1 -0
  116. package/dist/src/security/SecurityCIPipeline.js +693 -0
  117. package/dist/src/security/SecurityCIPipeline.js.map +1 -0
  118. package/dist/src/security/SecurityConfig.d.ts +129 -0
  119. package/dist/src/security/SecurityConfig.d.ts.map +1 -0
  120. package/dist/src/security/SecurityConfig.js +266 -0
  121. package/dist/src/security/SecurityConfig.js.map +1 -0
  122. package/dist/src/security/SecurityConfigManager.d.ts +294 -0
  123. package/dist/src/security/SecurityConfigManager.d.ts.map +1 -0
  124. package/dist/src/security/SecurityConfigManager.js +558 -0
  125. package/dist/src/security/SecurityConfigManager.js.map +1 -0
  126. package/dist/src/security/SecurityMonitoring.d.ts +245 -0
  127. package/dist/src/security/SecurityMonitoring.d.ts.map +1 -0
  128. package/dist/src/security/SecurityMonitoring.js +598 -0
  129. package/dist/src/security/SecurityMonitoring.js.map +1 -0
  130. package/dist/src/security/SecurityReviewer.d.ts +168 -0
  131. package/dist/src/security/SecurityReviewer.d.ts.map +1 -0
  132. package/dist/src/security/SecurityReviewer.js +686 -0
  133. package/dist/src/security/SecurityReviewer.js.map +1 -0
  134. package/dist/src/security/index.d.ts +183 -0
  135. package/dist/src/security/index.d.ts.map +1 -0
  136. package/dist/src/security/index.js +218 -0
  137. package/dist/src/security/index.js.map +1 -0
  138. package/dist/src/server/ConnectionTester.d.ts +32 -0
  139. package/dist/src/server/ConnectionTester.d.ts.map +1 -0
  140. package/dist/src/server/ConnectionTester.js +135 -0
  141. package/dist/src/server/ConnectionTester.js.map +1 -0
  142. package/dist/src/server/ToolRegistry.d.ts +50 -0
  143. package/dist/src/server/ToolRegistry.d.ts.map +1 -0
  144. package/dist/src/server/ToolRegistry.js +219 -0
  145. package/dist/src/server/ToolRegistry.js.map +1 -0
  146. package/dist/src/server.d.ts +7 -0
  147. package/dist/src/server.d.ts.map +1 -0
  148. package/dist/src/server.js +7 -0
  149. package/dist/src/server.js.map +1 -0
  150. package/dist/src/tools/BaseToolManager.d.ts +62 -0
  151. package/dist/src/tools/BaseToolManager.d.ts.map +1 -0
  152. package/dist/src/tools/BaseToolManager.js +195 -0
  153. package/dist/src/tools/BaseToolManager.js.map +1 -0
  154. package/dist/src/tools/auth.d.ts +50 -0
  155. package/dist/src/tools/auth.d.ts.map +1 -0
  156. package/dist/src/tools/auth.js +133 -0
  157. package/dist/src/tools/auth.js.map +1 -0
  158. package/dist/src/tools/cache.d.ts +260 -0
  159. package/dist/src/tools/cache.d.ts.map +1 -0
  160. package/dist/src/tools/cache.js +232 -0
  161. package/dist/src/tools/cache.js.map +1 -0
  162. package/dist/src/tools/comments.d.ts +33 -0
  163. package/dist/src/tools/comments.d.ts.map +1 -0
  164. package/dist/src/tools/comments.js +235 -0
  165. package/dist/src/tools/comments.js.map +1 -0
  166. package/dist/src/tools/index.d.ts +11 -0
  167. package/dist/src/tools/index.d.ts.map +1 -0
  168. package/dist/src/tools/index.js +11 -0
  169. package/dist/src/tools/index.js.map +1 -0
  170. package/dist/src/tools/media.d.ts +70 -0
  171. package/dist/src/tools/media.d.ts.map +1 -0
  172. package/dist/src/tools/media.js +248 -0
  173. package/dist/src/tools/media.js.map +1 -0
  174. package/dist/src/tools/pages.d.ts +32 -0
  175. package/dist/src/tools/pages.d.ts.map +1 -0
  176. package/dist/src/tools/pages.js +215 -0
  177. package/dist/src/tools/pages.js.map +1 -0
  178. package/dist/src/tools/performance.d.ts +73 -0
  179. package/dist/src/tools/performance.d.ts.map +1 -0
  180. package/dist/src/tools/performance.js +922 -0
  181. package/dist/src/tools/performance.js.map +1 -0
  182. package/dist/src/tools/posts/PostHandlers.d.ts +46 -0
  183. package/dist/src/tools/posts/PostHandlers.d.ts.map +1 -0
  184. package/dist/src/tools/posts/PostHandlers.js +400 -0
  185. package/dist/src/tools/posts/PostHandlers.js.map +1 -0
  186. package/dist/src/tools/posts/PostToolDefinitions.d.ts +37 -0
  187. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +1 -0
  188. package/dist/src/tools/posts/PostToolDefinitions.js +236 -0
  189. package/dist/src/tools/posts/PostToolDefinitions.js.map +1 -0
  190. package/dist/src/tools/posts/index.d.ts +138 -0
  191. package/dist/src/tools/posts/index.d.ts.map +1 -0
  192. package/dist/src/tools/posts/index.js +163 -0
  193. package/dist/src/tools/posts/index.js.map +1 -0
  194. package/dist/src/tools/posts.d.ts +15 -0
  195. package/dist/src/tools/posts.d.ts.map +1 -0
  196. package/dist/src/tools/posts.js +16 -0
  197. package/dist/src/tools/posts.js.map +1 -0
  198. package/dist/src/tools/site.d.ts +32 -0
  199. package/dist/src/tools/site.d.ts.map +1 -0
  200. package/dist/src/tools/site.js +234 -0
  201. package/dist/src/tools/site.js.map +1 -0
  202. package/dist/src/tools/taxonomies.d.ts +36 -0
  203. package/dist/src/tools/taxonomies.d.ts.map +1 -0
  204. package/dist/src/tools/taxonomies.js +286 -0
  205. package/dist/src/tools/taxonomies.js.map +1 -0
  206. package/dist/src/tools/users.d.ts +33 -0
  207. package/dist/src/tools/users.d.ts.map +1 -0
  208. package/dist/src/tools/users.js +308 -0
  209. package/dist/src/tools/users.js.map +1 -0
  210. package/dist/src/types/client.d.ts +223 -0
  211. package/dist/src/types/client.d.ts.map +1 -0
  212. package/dist/src/types/client.js +97 -0
  213. package/dist/src/types/client.js.map +1 -0
  214. package/dist/src/types/enhanced.d.ts +237 -0
  215. package/dist/src/types/enhanced.d.ts.map +1 -0
  216. package/dist/src/types/enhanced.js +49 -0
  217. package/dist/src/types/enhanced.js.map +1 -0
  218. package/dist/src/types/index.d.ts +160 -0
  219. package/dist/src/types/index.d.ts.map +1 -0
  220. package/dist/src/types/index.js +14 -0
  221. package/dist/src/types/index.js.map +1 -0
  222. package/dist/src/types/mcp.d.ts +178 -0
  223. package/dist/src/types/mcp.d.ts.map +1 -0
  224. package/dist/src/types/mcp.js +7 -0
  225. package/dist/src/types/mcp.js.map +1 -0
  226. package/dist/src/types/requests.d.ts +322 -0
  227. package/dist/src/types/requests.d.ts.map +1 -0
  228. package/dist/src/types/requests.js +8 -0
  229. package/dist/src/types/requests.js.map +1 -0
  230. package/dist/src/types/tools.d.ts +506 -0
  231. package/dist/src/types/tools.d.ts.map +1 -0
  232. package/dist/src/types/tools.js +8 -0
  233. package/dist/src/types/tools.js.map +1 -0
  234. package/dist/src/types/wordpress.d.ts +471 -0
  235. package/dist/src/types/wordpress.d.ts.map +1 -0
  236. package/dist/src/types/wordpress.js +14 -0
  237. package/dist/src/types/wordpress.js.map +1 -0
  238. package/dist/src/utils/debug.d.ts +71 -0
  239. package/dist/src/utils/debug.d.ts.map +1 -0
  240. package/dist/src/utils/debug.js +235 -0
  241. package/dist/src/utils/debug.js.map +1 -0
  242. package/dist/src/utils/enhancedError.d.ts +61 -0
  243. package/dist/src/utils/enhancedError.d.ts.map +1 -0
  244. package/dist/src/utils/enhancedError.js +221 -0
  245. package/dist/src/utils/enhancedError.js.map +1 -0
  246. package/dist/src/utils/error.d.ts +17 -0
  247. package/dist/src/utils/error.d.ts.map +1 -0
  248. package/dist/src/utils/error.js +108 -0
  249. package/dist/src/utils/error.js.map +1 -0
  250. package/dist/src/utils/logger.d.ts +106 -0
  251. package/dist/src/utils/logger.d.ts.map +1 -0
  252. package/dist/src/utils/logger.js +280 -0
  253. package/dist/src/utils/logger.js.map +1 -0
  254. package/dist/src/utils/streaming.d.ts +104 -0
  255. package/dist/src/utils/streaming.d.ts.map +1 -0
  256. package/dist/src/utils/streaming.js +331 -0
  257. package/dist/src/utils/streaming.js.map +1 -0
  258. package/dist/src/utils/toolWrapper.d.ts +42 -0
  259. package/dist/src/utils/toolWrapper.d.ts.map +1 -0
  260. package/dist/src/utils/toolWrapper.js +101 -0
  261. package/dist/src/utils/toolWrapper.js.map +1 -0
  262. package/dist/src/utils/validation/core.d.ts +21 -0
  263. package/dist/src/utils/validation/core.d.ts.map +1 -0
  264. package/dist/src/utils/validation/core.js +71 -0
  265. package/dist/src/utils/validation/core.js.map +1 -0
  266. package/dist/src/utils/validation/index.d.ts +25 -0
  267. package/dist/src/utils/validation/index.d.ts.map +1 -0
  268. package/dist/src/utils/validation/index.js +29 -0
  269. package/dist/src/utils/validation/index.js.map +1 -0
  270. package/dist/src/utils/validation/network.d.ts +19 -0
  271. package/dist/src/utils/validation/network.d.ts.map +1 -0
  272. package/dist/src/utils/validation/network.js +93 -0
  273. package/dist/src/utils/validation/network.js.map +1 -0
  274. package/dist/src/utils/validation/rateLimit.d.ts +21 -0
  275. package/dist/src/utils/validation/rateLimit.d.ts.map +1 -0
  276. package/dist/src/utils/validation/rateLimit.js +43 -0
  277. package/dist/src/utils/validation/rateLimit.js.map +1 -0
  278. package/dist/src/utils/validation/security.d.ts +29 -0
  279. package/dist/src/utils/validation/security.d.ts.map +1 -0
  280. package/dist/src/utils/validation/security.js +327 -0
  281. package/dist/src/utils/validation/security.js.map +1 -0
  282. package/dist/src/utils/validation/wordpress.d.ts +31 -0
  283. package/dist/src/utils/validation/wordpress.d.ts.map +1 -0
  284. package/dist/src/utils/validation/wordpress.js +146 -0
  285. package/dist/src/utils/validation/wordpress.js.map +1 -0
  286. package/dist/src/utils/validation.d.ts +15 -0
  287. package/dist/src/utils/validation.d.ts.map +1 -0
  288. package/dist/src/utils/validation.js +27 -0
  289. package/dist/src/utils/validation.js.map +1 -0
  290. package/dist/tests/vitest.setup.d.ts +6 -0
  291. package/dist/tests/vitest.setup.d.ts.map +1 -0
  292. package/dist/tests/vitest.setup.js +39 -0
  293. package/dist/tests/vitest.setup.js.map +1 -0
  294. package/docs/INSTALLATION.md +4 -2
  295. package/docs/TROUBLESHOOTING.md +2 -1
  296. package/docs/developer/TESTING.md +24 -19
  297. package/docs/integrations/claude-desktop.md +9 -4
  298. package/docs/user-guides/DXT_INSTALLATION.md +2 -1
  299. package/package.json +28 -29
  300. package/src/config/ServerConfiguration.ts +22 -2
  301. package/dist/ajv-patch.js +0 -34
  302. package/dist/cache/__tests__/CacheInvalidation.test.d.ts +0 -5
  303. package/dist/cache/__tests__/CacheInvalidation.test.d.ts.map +0 -1
  304. package/dist/cache/__tests__/CacheInvalidation.test.js +0 -238
  305. package/dist/cache/__tests__/CacheInvalidation.test.js.map +0 -1
  306. package/dist/cache/__tests__/CacheManager.test.d.ts +0 -5
  307. package/dist/cache/__tests__/CacheManager.test.d.ts.map +0 -1
  308. package/dist/cache/__tests__/CacheManager.test.js +0 -233
  309. package/dist/cache/__tests__/CacheManager.test.js.map +0 -1
  310. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts +0 -5
  311. package/dist/cache/__tests__/CachedWordPressClient.test.d.ts.map +0 -1
  312. package/dist/cache/__tests__/CachedWordPressClient.test.js +0 -231
  313. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +0 -1
  314. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts +0 -5
  315. package/dist/cache/__tests__/HttpCacheWrapper.test.d.ts.map +0 -1
  316. package/dist/cache/__tests__/HttpCacheWrapper.test.js +0 -300
  317. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +0 -1
  318. package/dist/dxt-entry.cjs +0 -81
@@ -0,0 +1,281 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Zod schema for WordPress authentication methods
4
+ */
5
+ declare const AuthMethodSchema: z.ZodEnum<["app-password", "jwt", "basic", "api-key", "cookie"]>;
6
+ /**
7
+ * Zod schema for URL validation with security checks
8
+ */
9
+ declare const UrlSchema: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
10
+ /**
11
+ * Zod schema for WordPress site configuration
12
+ */
13
+ declare const SiteConfigSchema: z.ZodObject<{
14
+ WORDPRESS_SITE_URL: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
15
+ WORDPRESS_USERNAME: z.ZodString;
16
+ WORDPRESS_APP_PASSWORD: z.ZodEffects<z.ZodString, string, string>;
17
+ WORDPRESS_AUTH_METHOD: z.ZodDefault<z.ZodOptional<z.ZodEnum<["app-password", "jwt", "basic", "api-key", "cookie"]>>>;
18
+ }, "strip", z.ZodTypeAny, {
19
+ WORDPRESS_SITE_URL: string;
20
+ WORDPRESS_USERNAME: string;
21
+ WORDPRESS_APP_PASSWORD: string;
22
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
23
+ }, {
24
+ WORDPRESS_SITE_URL: string;
25
+ WORDPRESS_USERNAME: string;
26
+ WORDPRESS_APP_PASSWORD: string;
27
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
28
+ }>;
29
+ /**
30
+ * Zod schema for site configuration with metadata
31
+ */
32
+ declare const SiteSchema: z.ZodObject<{
33
+ id: z.ZodString;
34
+ name: z.ZodString;
35
+ config: z.ZodObject<{
36
+ WORDPRESS_SITE_URL: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
37
+ WORDPRESS_USERNAME: z.ZodString;
38
+ WORDPRESS_APP_PASSWORD: z.ZodEffects<z.ZodString, string, string>;
39
+ WORDPRESS_AUTH_METHOD: z.ZodDefault<z.ZodOptional<z.ZodEnum<["app-password", "jwt", "basic", "api-key", "cookie"]>>>;
40
+ }, "strip", z.ZodTypeAny, {
41
+ WORDPRESS_SITE_URL: string;
42
+ WORDPRESS_USERNAME: string;
43
+ WORDPRESS_APP_PASSWORD: string;
44
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
45
+ }, {
46
+ WORDPRESS_SITE_URL: string;
47
+ WORDPRESS_USERNAME: string;
48
+ WORDPRESS_APP_PASSWORD: string;
49
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
50
+ }>;
51
+ }, "strip", z.ZodTypeAny, {
52
+ id: string;
53
+ name: string;
54
+ config: {
55
+ WORDPRESS_SITE_URL: string;
56
+ WORDPRESS_USERNAME: string;
57
+ WORDPRESS_APP_PASSWORD: string;
58
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
59
+ };
60
+ }, {
61
+ id: string;
62
+ name: string;
63
+ config: {
64
+ WORDPRESS_SITE_URL: string;
65
+ WORDPRESS_USERNAME: string;
66
+ WORDPRESS_APP_PASSWORD: string;
67
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
68
+ };
69
+ }>;
70
+ /**
71
+ * Zod schema for multi-site configuration file
72
+ */
73
+ declare const MultiSiteConfigSchema: z.ZodObject<{
74
+ sites: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodObject<{
75
+ id: z.ZodString;
76
+ name: z.ZodString;
77
+ config: z.ZodObject<{
78
+ WORDPRESS_SITE_URL: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
79
+ WORDPRESS_USERNAME: z.ZodString;
80
+ WORDPRESS_APP_PASSWORD: z.ZodEffects<z.ZodString, string, string>;
81
+ WORDPRESS_AUTH_METHOD: z.ZodDefault<z.ZodOptional<z.ZodEnum<["app-password", "jwt", "basic", "api-key", "cookie"]>>>;
82
+ }, "strip", z.ZodTypeAny, {
83
+ WORDPRESS_SITE_URL: string;
84
+ WORDPRESS_USERNAME: string;
85
+ WORDPRESS_APP_PASSWORD: string;
86
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
87
+ }, {
88
+ WORDPRESS_SITE_URL: string;
89
+ WORDPRESS_USERNAME: string;
90
+ WORDPRESS_APP_PASSWORD: string;
91
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
92
+ }>;
93
+ }, "strip", z.ZodTypeAny, {
94
+ id: string;
95
+ name: string;
96
+ config: {
97
+ WORDPRESS_SITE_URL: string;
98
+ WORDPRESS_USERNAME: string;
99
+ WORDPRESS_APP_PASSWORD: string;
100
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
101
+ };
102
+ }, {
103
+ id: string;
104
+ name: string;
105
+ config: {
106
+ WORDPRESS_SITE_URL: string;
107
+ WORDPRESS_USERNAME: string;
108
+ WORDPRESS_APP_PASSWORD: string;
109
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
110
+ };
111
+ }>, "many">, {
112
+ id: string;
113
+ name: string;
114
+ config: {
115
+ WORDPRESS_SITE_URL: string;
116
+ WORDPRESS_USERNAME: string;
117
+ WORDPRESS_APP_PASSWORD: string;
118
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
119
+ };
120
+ }[], {
121
+ id: string;
122
+ name: string;
123
+ config: {
124
+ WORDPRESS_SITE_URL: string;
125
+ WORDPRESS_USERNAME: string;
126
+ WORDPRESS_APP_PASSWORD: string;
127
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
128
+ };
129
+ }[]>, {
130
+ id: string;
131
+ name: string;
132
+ config: {
133
+ WORDPRESS_SITE_URL: string;
134
+ WORDPRESS_USERNAME: string;
135
+ WORDPRESS_APP_PASSWORD: string;
136
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
137
+ };
138
+ }[], {
139
+ id: string;
140
+ name: string;
141
+ config: {
142
+ WORDPRESS_SITE_URL: string;
143
+ WORDPRESS_USERNAME: string;
144
+ WORDPRESS_APP_PASSWORD: string;
145
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
146
+ };
147
+ }[]>, {
148
+ id: string;
149
+ name: string;
150
+ config: {
151
+ WORDPRESS_SITE_URL: string;
152
+ WORDPRESS_USERNAME: string;
153
+ WORDPRESS_APP_PASSWORD: string;
154
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
155
+ };
156
+ }[], {
157
+ id: string;
158
+ name: string;
159
+ config: {
160
+ WORDPRESS_SITE_URL: string;
161
+ WORDPRESS_USERNAME: string;
162
+ WORDPRESS_APP_PASSWORD: string;
163
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
164
+ };
165
+ }[]>;
166
+ }, "strip", z.ZodTypeAny, {
167
+ sites: {
168
+ id: string;
169
+ name: string;
170
+ config: {
171
+ WORDPRESS_SITE_URL: string;
172
+ WORDPRESS_USERNAME: string;
173
+ WORDPRESS_APP_PASSWORD: string;
174
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
175
+ };
176
+ }[];
177
+ }, {
178
+ sites: {
179
+ id: string;
180
+ name: string;
181
+ config: {
182
+ WORDPRESS_SITE_URL: string;
183
+ WORDPRESS_USERNAME: string;
184
+ WORDPRESS_APP_PASSWORD: string;
185
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
186
+ };
187
+ }[];
188
+ }>;
189
+ /**
190
+ * Zod schema for environment variables (single-site mode)
191
+ */
192
+ declare const EnvironmentConfigSchema: z.ZodObject<{
193
+ WORDPRESS_SITE_URL: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
194
+ WORDPRESS_USERNAME: z.ZodString;
195
+ WORDPRESS_APP_PASSWORD: z.ZodEffects<z.ZodString, string, string>;
196
+ WORDPRESS_AUTH_METHOD: z.ZodDefault<z.ZodOptional<z.ZodEnum<["app-password", "jwt", "basic", "api-key", "cookie"]>>>;
197
+ NODE_ENV: z.ZodOptional<z.ZodEnum<["development", "production", "test", "dxt", "ci"]>>;
198
+ DEBUG: z.ZodOptional<z.ZodString>;
199
+ DISABLE_CACHE: z.ZodOptional<z.ZodString>;
200
+ LOG_LEVEL: z.ZodOptional<z.ZodEnum<["error", "warn", "info", "debug"]>>;
201
+ }, "strip", z.ZodTypeAny, {
202
+ WORDPRESS_SITE_URL: string;
203
+ WORDPRESS_USERNAME: string;
204
+ WORDPRESS_APP_PASSWORD: string;
205
+ WORDPRESS_AUTH_METHOD: "app-password" | "jwt" | "basic" | "api-key" | "cookie";
206
+ NODE_ENV?: "development" | "production" | "test" | "dxt" | "ci" | undefined;
207
+ DEBUG?: string | undefined;
208
+ LOG_LEVEL?: "info" | "debug" | "warn" | "error" | undefined;
209
+ DISABLE_CACHE?: string | undefined;
210
+ }, {
211
+ WORDPRESS_SITE_URL: string;
212
+ WORDPRESS_USERNAME: string;
213
+ WORDPRESS_APP_PASSWORD: string;
214
+ NODE_ENV?: "development" | "production" | "test" | "dxt" | "ci" | undefined;
215
+ WORDPRESS_AUTH_METHOD?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
216
+ DEBUG?: string | undefined;
217
+ LOG_LEVEL?: "info" | "debug" | "warn" | "error" | undefined;
218
+ DISABLE_CACHE?: string | undefined;
219
+ }>;
220
+ /**
221
+ * Zod schema for MCP configuration passed from client
222
+ */
223
+ declare const McpConfigSchema: z.ZodOptional<z.ZodObject<{
224
+ wordpressSiteUrl: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
225
+ wordpressUsername: z.ZodOptional<z.ZodString>;
226
+ wordpressAppPassword: z.ZodOptional<z.ZodEffects<z.ZodString, string, string>>;
227
+ wordpressAuthMethod: z.ZodOptional<z.ZodEnum<["app-password", "jwt", "basic", "api-key", "cookie"]>>;
228
+ }, "strip", z.ZodTypeAny, {
229
+ wordpressSiteUrl?: string | undefined;
230
+ wordpressUsername?: string | undefined;
231
+ wordpressAppPassword?: string | undefined;
232
+ wordpressAuthMethod?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
233
+ }, {
234
+ wordpressSiteUrl?: string | undefined;
235
+ wordpressUsername?: string | undefined;
236
+ wordpressAppPassword?: string | undefined;
237
+ wordpressAuthMethod?: "app-password" | "jwt" | "basic" | "api-key" | "cookie" | undefined;
238
+ }>>;
239
+ /**
240
+ * Type definitions derived from Zod schemas
241
+ */
242
+ export type SiteConfigType = z.infer<typeof SiteConfigSchema>;
243
+ export type SiteType = z.infer<typeof SiteSchema>;
244
+ export type MultiSiteConfigType = z.infer<typeof MultiSiteConfigSchema>;
245
+ export type EnvironmentConfigType = z.infer<typeof EnvironmentConfigSchema>;
246
+ export type McpConfigType = z.infer<typeof McpConfigSchema>;
247
+ /**
248
+ * Configuration validation utilities
249
+ */
250
+ export declare class ConfigurationValidator {
251
+ /**
252
+ * Validate multi-site configuration from JSON file
253
+ */
254
+ static validateMultiSiteConfig(config: unknown): MultiSiteConfigType;
255
+ /**
256
+ * Validate environment configuration for single-site mode
257
+ */
258
+ static validateEnvironmentConfig(env: Record<string, string | undefined>): EnvironmentConfigType;
259
+ /**
260
+ * Validate MCP configuration passed from client
261
+ */
262
+ static validateMcpConfig(config: unknown): McpConfigType;
263
+ /**
264
+ * Validate a single site configuration
265
+ */
266
+ static validateSiteConfig(config: unknown): SiteType;
267
+ /**
268
+ * Check if a configuration file structure is valid without throwing
269
+ */
270
+ static isValidMultiSiteConfig(config: unknown): boolean;
271
+ /**
272
+ * Check if environment configuration is valid without throwing
273
+ */
274
+ static isValidEnvironmentConfig(env: Record<string, string | undefined>): boolean;
275
+ /**
276
+ * Get validation errors without throwing
277
+ */
278
+ static getValidationErrors(schema: z.ZodSchema, data: unknown): string[];
279
+ }
280
+ export { SiteConfigSchema, SiteSchema, MultiSiteConfigSchema, EnvironmentConfigSchema, McpConfigSchema, AuthMethodSchema, UrlSchema, };
281
+ //# sourceMappingURL=ConfigurationSchema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigurationSchema.d.ts","sourceRoot":"","sources":["../../../src/config/ConfigurationSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,QAAA,MAAM,gBAAgB,kEAAyE,CAAC;AAEhG;;GAEG;AACH,QAAA,MAAM,SAAS,yEA2ByC,CAAC;AAEzD;;GAEG;AACH,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;EAgBpB,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQd,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBzB,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAU3B,CAAC;AAEH;;GAEG;AACH,QAAA,MAAM,eAAe;;;;;;;;;;;;;;;GAOR,CAAC;AAEd;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAClD,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACxE,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAC5E,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE5D;;GAEG;AACH,qBAAa,sBAAsB;IACjC;;OAEG;IACH,MAAM,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,GAAG,mBAAmB;IAYpE;;OAEG;IACH,MAAM,CAAC,yBAAyB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,qBAAqB;IAYhG;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,aAAa;IAYxD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,GAAG,QAAQ;IAYpD;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO;IAKvD;;OAEG;IACH,MAAM,CAAC,wBAAwB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO;IAKjF;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,EAAE;CAOzE;AAGD,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EAChB,SAAS,GACV,CAAC"}
@@ -0,0 +1,205 @@
1
+ import { z } from "zod";
2
+ /**
3
+ * Zod schema for WordPress authentication methods
4
+ */
5
+ const AuthMethodSchema = z.enum(["app-password", "jwt", "basic", "api-key", "cookie"]);
6
+ /**
7
+ * Zod schema for URL validation with security checks
8
+ */
9
+ const UrlSchema = z
10
+ .string()
11
+ .url("Must be a valid URL")
12
+ .refine((url) => {
13
+ const parsed = new URL(url);
14
+ return parsed.protocol === "http:" || parsed.protocol === "https:";
15
+ }, "URL must use http or https protocol")
16
+ .refine((url) => {
17
+ // Additional security checks
18
+ const parsed = new URL(url);
19
+ const hostname = parsed.hostname.toLowerCase();
20
+ // In production, block localhost and private IPs
21
+ if (process.env.NODE_ENV === "production") {
22
+ if (hostname === "localhost" ||
23
+ hostname === "127.0.0.1" ||
24
+ hostname === "::1" ||
25
+ hostname.match(/^10\./) ||
26
+ hostname.match(/^172\.(1[6-9]|2[0-9]|3[01])\./) ||
27
+ hostname.match(/^192\.168\./)) {
28
+ return false;
29
+ }
30
+ }
31
+ return true;
32
+ }, "Private/localhost URLs not allowed in production");
33
+ /**
34
+ * Zod schema for WordPress site configuration
35
+ */
36
+ const SiteConfigSchema = z.object({
37
+ WORDPRESS_SITE_URL: UrlSchema,
38
+ WORDPRESS_USERNAME: z
39
+ .string()
40
+ .min(1, "Username is required")
41
+ .max(60, "Username must be 60 characters or less")
42
+ .regex(/^[a-zA-Z0-9._@-]+$/, "Username contains invalid characters"),
43
+ WORDPRESS_APP_PASSWORD: z
44
+ .string()
45
+ .min(1, "Password is required")
46
+ .refine((password) => {
47
+ // WordPress app passwords are typically 24 characters with spaces
48
+ // But we'll be flexible to support different auth methods
49
+ return password.length >= 8;
50
+ }, "Password must be at least 8 characters"),
51
+ WORDPRESS_AUTH_METHOD: AuthMethodSchema.optional().default("app-password"),
52
+ });
53
+ /**
54
+ * Zod schema for site configuration with metadata
55
+ */
56
+ const SiteSchema = z.object({
57
+ id: z
58
+ .string()
59
+ .min(1, "Site ID is required")
60
+ .max(50, "Site ID must be 50 characters or less")
61
+ .regex(/^[a-zA-Z0-9_-]+$/, "Site ID can only contain letters, numbers, underscores, and hyphens"),
62
+ name: z.string().min(1, "Site name is required").max(100, "Site name must be 100 characters or less"),
63
+ config: SiteConfigSchema,
64
+ });
65
+ /**
66
+ * Zod schema for multi-site configuration file
67
+ */
68
+ const MultiSiteConfigSchema = z.object({
69
+ sites: z
70
+ .array(SiteSchema)
71
+ .min(1, "At least one site must be configured")
72
+ .max(50, "Maximum of 50 sites supported")
73
+ .refine((sites) => {
74
+ const ids = sites.map((site) => site.id);
75
+ const uniqueIds = new Set(ids);
76
+ return ids.length === uniqueIds.size;
77
+ }, "Site IDs must be unique")
78
+ .refine((sites) => {
79
+ const names = sites.map((site) => site.name);
80
+ const uniqueNames = new Set(names);
81
+ return names.length === uniqueNames.size;
82
+ }, "Site names must be unique")
83
+ .refine((sites) => {
84
+ const urls = sites.map((site) => site.config.WORDPRESS_SITE_URL);
85
+ const uniqueUrls = new Set(urls);
86
+ return urls.length === uniqueUrls.size;
87
+ }, "Site URLs must be unique"),
88
+ });
89
+ /**
90
+ * Zod schema for environment variables (single-site mode)
91
+ */
92
+ const EnvironmentConfigSchema = z.object({
93
+ WORDPRESS_SITE_URL: UrlSchema,
94
+ WORDPRESS_USERNAME: SiteConfigSchema.shape.WORDPRESS_USERNAME,
95
+ WORDPRESS_APP_PASSWORD: SiteConfigSchema.shape.WORDPRESS_APP_PASSWORD,
96
+ WORDPRESS_AUTH_METHOD: AuthMethodSchema.optional().default("app-password"),
97
+ // Optional environment variables
98
+ NODE_ENV: z.enum(["development", "production", "test", "dxt", "ci"]).optional(),
99
+ DEBUG: z.string().optional(),
100
+ DISABLE_CACHE: z.string().optional(),
101
+ LOG_LEVEL: z.enum(["error", "warn", "info", "debug"]).optional(),
102
+ });
103
+ /**
104
+ * Zod schema for MCP configuration passed from client
105
+ */
106
+ const McpConfigSchema = z
107
+ .object({
108
+ wordpressSiteUrl: UrlSchema.optional(),
109
+ wordpressUsername: SiteConfigSchema.shape.WORDPRESS_USERNAME.optional(),
110
+ wordpressAppPassword: SiteConfigSchema.shape.WORDPRESS_APP_PASSWORD.optional(),
111
+ wordpressAuthMethod: AuthMethodSchema.optional(),
112
+ })
113
+ .optional();
114
+ /**
115
+ * Configuration validation utilities
116
+ */
117
+ export class ConfigurationValidator {
118
+ /**
119
+ * Validate multi-site configuration from JSON file
120
+ */
121
+ static validateMultiSiteConfig(config) {
122
+ try {
123
+ return MultiSiteConfigSchema.parse(config);
124
+ }
125
+ catch (error) {
126
+ if (error instanceof z.ZodError) {
127
+ const messages = error.errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
128
+ throw new Error(`Multi-site configuration validation failed: ${messages}`);
129
+ }
130
+ throw error;
131
+ }
132
+ }
133
+ /**
134
+ * Validate environment configuration for single-site mode
135
+ */
136
+ static validateEnvironmentConfig(env) {
137
+ try {
138
+ return EnvironmentConfigSchema.parse(env);
139
+ }
140
+ catch (error) {
141
+ if (error instanceof z.ZodError) {
142
+ const messages = error.errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
143
+ throw new Error(`Environment configuration validation failed: ${messages}`);
144
+ }
145
+ throw error;
146
+ }
147
+ }
148
+ /**
149
+ * Validate MCP configuration passed from client
150
+ */
151
+ static validateMcpConfig(config) {
152
+ try {
153
+ return McpConfigSchema.parse(config);
154
+ }
155
+ catch (error) {
156
+ if (error instanceof z.ZodError) {
157
+ const messages = error.errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
158
+ throw new Error(`MCP configuration validation failed: ${messages}`);
159
+ }
160
+ throw error;
161
+ }
162
+ }
163
+ /**
164
+ * Validate a single site configuration
165
+ */
166
+ static validateSiteConfig(config) {
167
+ try {
168
+ return SiteSchema.parse(config);
169
+ }
170
+ catch (error) {
171
+ if (error instanceof z.ZodError) {
172
+ const messages = error.errors.map((err) => `${err.path.join(".")}: ${err.message}`).join("; ");
173
+ throw new Error(`Site configuration validation failed: ${messages}`);
174
+ }
175
+ throw error;
176
+ }
177
+ }
178
+ /**
179
+ * Check if a configuration file structure is valid without throwing
180
+ */
181
+ static isValidMultiSiteConfig(config) {
182
+ const result = MultiSiteConfigSchema.safeParse(config);
183
+ return result.success;
184
+ }
185
+ /**
186
+ * Check if environment configuration is valid without throwing
187
+ */
188
+ static isValidEnvironmentConfig(env) {
189
+ const result = EnvironmentConfigSchema.safeParse(env);
190
+ return result.success;
191
+ }
192
+ /**
193
+ * Get validation errors without throwing
194
+ */
195
+ static getValidationErrors(schema, data) {
196
+ const result = schema.safeParse(data);
197
+ if (result.success) {
198
+ return [];
199
+ }
200
+ return result.error.errors.map((err) => `${err.path.join(".")}: ${err.message}`);
201
+ }
202
+ }
203
+ // Export schemas for direct use if needed
204
+ export { SiteConfigSchema, SiteSchema, MultiSiteConfigSchema, EnvironmentConfigSchema, McpConfigSchema, AuthMethodSchema, UrlSchema, };
205
+ //# sourceMappingURL=ConfigurationSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigurationSchema.js","sourceRoot":"","sources":["../../../src/config/ConfigurationSchema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { WordPressClient } from "../client/api.js";
2
+ import { type SiteType as SiteConfig, type MultiSiteConfigType as MultiSiteConfig, type McpConfigType } from "./ConfigurationSchema.js";
3
+ export type { SiteConfig, MultiSiteConfig, McpConfigType };
4
+ /**
5
+ * Configuration loader for MCP WordPress Server
6
+ * Handles both single-site (environment variables) and multi-site (JSON config) modes
7
+ */
8
+ export declare class ServerConfiguration {
9
+ private static instance;
10
+ private readonly logger;
11
+ private rootDir;
12
+ private envPath;
13
+ constructor();
14
+ /**
15
+ * Get singleton instance of ServerConfiguration
16
+ */
17
+ static getInstance(): ServerConfiguration;
18
+ /**
19
+ * Load WordPress client configurations
20
+ * Returns a Map of site ID to WordPressClient instances
21
+ */
22
+ loadClientConfigurations(mcpConfig?: McpConfigType): {
23
+ clients: Map<string, WordPressClient>;
24
+ configs: SiteConfig[];
25
+ };
26
+ /**
27
+ * Load multi-site configuration from JSON file
28
+ */
29
+ private loadMultiSiteConfig;
30
+ /**
31
+ * Check if we're in CI environment
32
+ */
33
+ private isCIEnvironment;
34
+ /**
35
+ * Create mock configuration for CI environments
36
+ */
37
+ private createMockConfiguration;
38
+ /**
39
+ * Load single-site configuration from environment variables
40
+ */
41
+ private loadSingleSiteFromEnv;
42
+ /**
43
+ * Get root directory path
44
+ */
45
+ getRootDir(): string;
46
+ }
47
+ //# sourceMappingURL=ServerConfiguration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServerConfiguration.d.ts","sourceRoot":"","sources":["../../../src/config/ServerConfiguration.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAOnD,OAAO,EAEL,KAAK,QAAQ,IAAI,UAAU,EAC3B,KAAK,mBAAmB,IAAI,eAAe,EAC3C,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,aAAa,EAAE,CAAC;AAE3D;;;GAGG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,OAAO,CAAS;;IAyCxB;;OAEG;WACW,WAAW,IAAI,mBAAmB;IAOhD;;;OAGG;IACI,wBAAwB,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG;QAC1D,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACtC,OAAO,EAAE,UAAU,EAAE,CAAC;KACvB;IAkBD;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkD3B;;OAEG;IACH,OAAO,CAAC,eAAe;IAIvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAmC/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA4F7B;;OAEG;IACI,UAAU,IAAI,MAAM;CAG5B"}