mcp-wordpress 2.5.1 → 2.5.2

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 (289) hide show
  1. package/package.json +1 -1
  2. package/dist/src/cache/CacheInvalidation.d.ts +0 -120
  3. package/dist/src/cache/CacheInvalidation.d.ts.map +0 -1
  4. package/dist/src/cache/CacheInvalidation.js +0 -355
  5. package/dist/src/cache/CacheInvalidation.js.map +0 -1
  6. package/dist/src/cache/CacheManager.d.ts +0 -149
  7. package/dist/src/cache/CacheManager.d.ts.map +0 -1
  8. package/dist/src/cache/CacheManager.js +0 -326
  9. package/dist/src/cache/CacheManager.js.map +0 -1
  10. package/dist/src/cache/HttpCacheWrapper.d.ts +0 -122
  11. package/dist/src/cache/HttpCacheWrapper.d.ts.map +0 -1
  12. package/dist/src/cache/HttpCacheWrapper.js +0 -283
  13. package/dist/src/cache/HttpCacheWrapper.js.map +0 -1
  14. package/dist/src/cache/index.d.ts +0 -12
  15. package/dist/src/cache/index.d.ts.map +0 -1
  16. package/dist/src/cache/index.js +0 -9
  17. package/dist/src/cache/index.js.map +0 -1
  18. package/dist/src/client/CachedWordPressClient.d.ts +0 -174
  19. package/dist/src/client/CachedWordPressClient.d.ts.map +0 -1
  20. package/dist/src/client/CachedWordPressClient.js +0 -345
  21. package/dist/src/client/CachedWordPressClient.js.map +0 -1
  22. package/dist/src/client/MockWordPressClient.d.ts +0 -56
  23. package/dist/src/client/MockWordPressClient.d.ts.map +0 -1
  24. package/dist/src/client/MockWordPressClient.js +0 -371
  25. package/dist/src/client/MockWordPressClient.js.map +0 -1
  26. package/dist/src/client/api.d.ts +0 -235
  27. package/dist/src/client/api.d.ts.map +0 -1
  28. package/dist/src/client/api.js +0 -896
  29. package/dist/src/client/api.js.map +0 -1
  30. package/dist/src/client/auth.d.ts +0 -121
  31. package/dist/src/client/auth.d.ts.map +0 -1
  32. package/dist/src/client/auth.js +0 -429
  33. package/dist/src/client/auth.js.map +0 -1
  34. package/dist/src/client/managers/AuthenticationManager.d.ts +0 -92
  35. package/dist/src/client/managers/AuthenticationManager.d.ts.map +0 -1
  36. package/dist/src/client/managers/AuthenticationManager.js +0 -369
  37. package/dist/src/client/managers/AuthenticationManager.js.map +0 -1
  38. package/dist/src/client/managers/BaseManager.d.ts +0 -22
  39. package/dist/src/client/managers/BaseManager.d.ts.map +0 -1
  40. package/dist/src/client/managers/BaseManager.js +0 -53
  41. package/dist/src/client/managers/BaseManager.js.map +0 -1
  42. package/dist/src/client/managers/RequestManager.d.ts +0 -47
  43. package/dist/src/client/managers/RequestManager.d.ts.map +0 -1
  44. package/dist/src/client/managers/RequestManager.js +0 -193
  45. package/dist/src/client/managers/RequestManager.js.map +0 -1
  46. package/dist/src/client/managers/index.d.ts +0 -8
  47. package/dist/src/client/managers/index.d.ts.map +0 -1
  48. package/dist/src/client/managers/index.js +0 -8
  49. package/dist/src/client/managers/index.js.map +0 -1
  50. package/dist/src/config/Config.d.ts +0 -155
  51. package/dist/src/config/Config.d.ts.map +0 -1
  52. package/dist/src/config/Config.js +0 -215
  53. package/dist/src/config/Config.js.map +0 -1
  54. package/dist/src/config/ConfigurationSchema.d.ts +0 -281
  55. package/dist/src/config/ConfigurationSchema.d.ts.map +0 -1
  56. package/dist/src/config/ConfigurationSchema.js +0 -205
  57. package/dist/src/config/ConfigurationSchema.js.map +0 -1
  58. package/dist/src/config/ServerConfiguration.d.ts +0 -47
  59. package/dist/src/config/ServerConfiguration.d.ts.map +0 -1
  60. package/dist/src/config/ServerConfiguration.js +0 -255
  61. package/dist/src/config/ServerConfiguration.js.map +0 -1
  62. package/dist/src/docs/DocumentationGenerator.d.ts +0 -185
  63. package/dist/src/docs/DocumentationGenerator.d.ts.map +0 -1
  64. package/dist/src/docs/DocumentationGenerator.js +0 -777
  65. package/dist/src/docs/DocumentationGenerator.js.map +0 -1
  66. package/dist/src/docs/MarkdownFormatter.d.ts +0 -84
  67. package/dist/src/docs/MarkdownFormatter.d.ts.map +0 -1
  68. package/dist/src/docs/MarkdownFormatter.js +0 -458
  69. package/dist/src/docs/MarkdownFormatter.js.map +0 -1
  70. package/dist/src/docs/index.d.ts +0 -8
  71. package/dist/src/docs/index.d.ts.map +0 -1
  72. package/dist/src/docs/index.js +0 -7
  73. package/dist/src/docs/index.js.map +0 -1
  74. package/dist/src/dxt-entry.d.ts +0 -6
  75. package/dist/src/dxt-entry.d.ts.map +0 -1
  76. package/dist/src/dxt-entry.js +0 -39
  77. package/dist/src/dxt-entry.js.map +0 -1
  78. package/dist/src/index.d.ts +0 -18
  79. package/dist/src/index.d.ts.map +0 -1
  80. package/dist/src/index.js +0 -143
  81. package/dist/src/index.js.map +0 -1
  82. package/dist/src/performance/MetricsCollector.d.ts +0 -145
  83. package/dist/src/performance/MetricsCollector.d.ts.map +0 -1
  84. package/dist/src/performance/MetricsCollector.js +0 -368
  85. package/dist/src/performance/MetricsCollector.js.map +0 -1
  86. package/dist/src/performance/PerformanceAnalytics.d.ts +0 -168
  87. package/dist/src/performance/PerformanceAnalytics.d.ts.map +0 -1
  88. package/dist/src/performance/PerformanceAnalytics.js +0 -570
  89. package/dist/src/performance/PerformanceAnalytics.js.map +0 -1
  90. package/dist/src/performance/PerformanceMonitor.d.ts +0 -203
  91. package/dist/src/performance/PerformanceMonitor.d.ts.map +0 -1
  92. package/dist/src/performance/PerformanceMonitor.js +0 -478
  93. package/dist/src/performance/PerformanceMonitor.js.map +0 -1
  94. package/dist/src/performance/index.d.ts +0 -11
  95. package/dist/src/performance/index.d.ts.map +0 -1
  96. package/dist/src/performance/index.js +0 -8
  97. package/dist/src/performance/index.js.map +0 -1
  98. package/dist/src/security/AISecurityScanner.d.ts +0 -176
  99. package/dist/src/security/AISecurityScanner.d.ts.map +0 -1
  100. package/dist/src/security/AISecurityScanner.js +0 -655
  101. package/dist/src/security/AISecurityScanner.js.map +0 -1
  102. package/dist/src/security/AutomatedRemediation.d.ts +0 -146
  103. package/dist/src/security/AutomatedRemediation.d.ts.map +0 -1
  104. package/dist/src/security/AutomatedRemediation.js +0 -566
  105. package/dist/src/security/AutomatedRemediation.js.map +0 -1
  106. package/dist/src/security/InputValidator.d.ts +0 -219
  107. package/dist/src/security/InputValidator.d.ts.map +0 -1
  108. package/dist/src/security/InputValidator.js +0 -295
  109. package/dist/src/security/InputValidator.js.map +0 -1
  110. package/dist/src/security/SecurityCIPipeline.d.ts +0 -213
  111. package/dist/src/security/SecurityCIPipeline.d.ts.map +0 -1
  112. package/dist/src/security/SecurityCIPipeline.js +0 -693
  113. package/dist/src/security/SecurityCIPipeline.js.map +0 -1
  114. package/dist/src/security/SecurityConfig.d.ts +0 -129
  115. package/dist/src/security/SecurityConfig.d.ts.map +0 -1
  116. package/dist/src/security/SecurityConfig.js +0 -266
  117. package/dist/src/security/SecurityConfig.js.map +0 -1
  118. package/dist/src/security/SecurityConfigManager.d.ts +0 -294
  119. package/dist/src/security/SecurityConfigManager.d.ts.map +0 -1
  120. package/dist/src/security/SecurityConfigManager.js +0 -558
  121. package/dist/src/security/SecurityConfigManager.js.map +0 -1
  122. package/dist/src/security/SecurityMonitoring.d.ts +0 -245
  123. package/dist/src/security/SecurityMonitoring.d.ts.map +0 -1
  124. package/dist/src/security/SecurityMonitoring.js +0 -598
  125. package/dist/src/security/SecurityMonitoring.js.map +0 -1
  126. package/dist/src/security/SecurityReviewer.d.ts +0 -168
  127. package/dist/src/security/SecurityReviewer.d.ts.map +0 -1
  128. package/dist/src/security/SecurityReviewer.js +0 -686
  129. package/dist/src/security/SecurityReviewer.js.map +0 -1
  130. package/dist/src/security/index.d.ts +0 -183
  131. package/dist/src/security/index.d.ts.map +0 -1
  132. package/dist/src/security/index.js +0 -218
  133. package/dist/src/security/index.js.map +0 -1
  134. package/dist/src/server/ConnectionTester.d.ts +0 -32
  135. package/dist/src/server/ConnectionTester.d.ts.map +0 -1
  136. package/dist/src/server/ConnectionTester.js +0 -135
  137. package/dist/src/server/ConnectionTester.js.map +0 -1
  138. package/dist/src/server/ToolRegistry.d.ts +0 -50
  139. package/dist/src/server/ToolRegistry.d.ts.map +0 -1
  140. package/dist/src/server/ToolRegistry.js +0 -219
  141. package/dist/src/server/ToolRegistry.js.map +0 -1
  142. package/dist/src/server.d.ts +0 -7
  143. package/dist/src/server.d.ts.map +0 -1
  144. package/dist/src/server.js +0 -7
  145. package/dist/src/server.js.map +0 -1
  146. package/dist/src/tools/BaseToolManager.d.ts +0 -62
  147. package/dist/src/tools/BaseToolManager.d.ts.map +0 -1
  148. package/dist/src/tools/BaseToolManager.js +0 -195
  149. package/dist/src/tools/BaseToolManager.js.map +0 -1
  150. package/dist/src/tools/auth.d.ts +0 -50
  151. package/dist/src/tools/auth.d.ts.map +0 -1
  152. package/dist/src/tools/auth.js +0 -133
  153. package/dist/src/tools/auth.js.map +0 -1
  154. package/dist/src/tools/cache.d.ts +0 -260
  155. package/dist/src/tools/cache.d.ts.map +0 -1
  156. package/dist/src/tools/cache.js +0 -232
  157. package/dist/src/tools/cache.js.map +0 -1
  158. package/dist/src/tools/comments.d.ts +0 -33
  159. package/dist/src/tools/comments.d.ts.map +0 -1
  160. package/dist/src/tools/comments.js +0 -235
  161. package/dist/src/tools/comments.js.map +0 -1
  162. package/dist/src/tools/index.d.ts +0 -11
  163. package/dist/src/tools/index.d.ts.map +0 -1
  164. package/dist/src/tools/index.js +0 -11
  165. package/dist/src/tools/index.js.map +0 -1
  166. package/dist/src/tools/media.d.ts +0 -70
  167. package/dist/src/tools/media.d.ts.map +0 -1
  168. package/dist/src/tools/media.js +0 -248
  169. package/dist/src/tools/media.js.map +0 -1
  170. package/dist/src/tools/pages.d.ts +0 -32
  171. package/dist/src/tools/pages.d.ts.map +0 -1
  172. package/dist/src/tools/pages.js +0 -215
  173. package/dist/src/tools/pages.js.map +0 -1
  174. package/dist/src/tools/performance.d.ts +0 -73
  175. package/dist/src/tools/performance.d.ts.map +0 -1
  176. package/dist/src/tools/performance.js +0 -922
  177. package/dist/src/tools/performance.js.map +0 -1
  178. package/dist/src/tools/posts/PostHandlers.d.ts +0 -46
  179. package/dist/src/tools/posts/PostHandlers.d.ts.map +0 -1
  180. package/dist/src/tools/posts/PostHandlers.js +0 -400
  181. package/dist/src/tools/posts/PostHandlers.js.map +0 -1
  182. package/dist/src/tools/posts/PostToolDefinitions.d.ts +0 -37
  183. package/dist/src/tools/posts/PostToolDefinitions.d.ts.map +0 -1
  184. package/dist/src/tools/posts/PostToolDefinitions.js +0 -236
  185. package/dist/src/tools/posts/PostToolDefinitions.js.map +0 -1
  186. package/dist/src/tools/posts/index.d.ts +0 -138
  187. package/dist/src/tools/posts/index.d.ts.map +0 -1
  188. package/dist/src/tools/posts/index.js +0 -163
  189. package/dist/src/tools/posts/index.js.map +0 -1
  190. package/dist/src/tools/posts.d.ts +0 -15
  191. package/dist/src/tools/posts.d.ts.map +0 -1
  192. package/dist/src/tools/posts.js +0 -16
  193. package/dist/src/tools/posts.js.map +0 -1
  194. package/dist/src/tools/site.d.ts +0 -32
  195. package/dist/src/tools/site.d.ts.map +0 -1
  196. package/dist/src/tools/site.js +0 -234
  197. package/dist/src/tools/site.js.map +0 -1
  198. package/dist/src/tools/taxonomies.d.ts +0 -36
  199. package/dist/src/tools/taxonomies.d.ts.map +0 -1
  200. package/dist/src/tools/taxonomies.js +0 -286
  201. package/dist/src/tools/taxonomies.js.map +0 -1
  202. package/dist/src/tools/users.d.ts +0 -33
  203. package/dist/src/tools/users.d.ts.map +0 -1
  204. package/dist/src/tools/users.js +0 -308
  205. package/dist/src/tools/users.js.map +0 -1
  206. package/dist/src/types/client.d.ts +0 -223
  207. package/dist/src/types/client.d.ts.map +0 -1
  208. package/dist/src/types/client.js +0 -97
  209. package/dist/src/types/client.js.map +0 -1
  210. package/dist/src/types/enhanced.d.ts +0 -237
  211. package/dist/src/types/enhanced.d.ts.map +0 -1
  212. package/dist/src/types/enhanced.js +0 -49
  213. package/dist/src/types/enhanced.js.map +0 -1
  214. package/dist/src/types/index.d.ts +0 -160
  215. package/dist/src/types/index.d.ts.map +0 -1
  216. package/dist/src/types/index.js +0 -14
  217. package/dist/src/types/index.js.map +0 -1
  218. package/dist/src/types/mcp.d.ts +0 -178
  219. package/dist/src/types/mcp.d.ts.map +0 -1
  220. package/dist/src/types/mcp.js +0 -7
  221. package/dist/src/types/mcp.js.map +0 -1
  222. package/dist/src/types/requests.d.ts +0 -322
  223. package/dist/src/types/requests.d.ts.map +0 -1
  224. package/dist/src/types/requests.js +0 -8
  225. package/dist/src/types/requests.js.map +0 -1
  226. package/dist/src/types/tools.d.ts +0 -506
  227. package/dist/src/types/tools.d.ts.map +0 -1
  228. package/dist/src/types/tools.js +0 -8
  229. package/dist/src/types/tools.js.map +0 -1
  230. package/dist/src/types/wordpress.d.ts +0 -471
  231. package/dist/src/types/wordpress.d.ts.map +0 -1
  232. package/dist/src/types/wordpress.js +0 -14
  233. package/dist/src/types/wordpress.js.map +0 -1
  234. package/dist/src/utils/debug.d.ts +0 -71
  235. package/dist/src/utils/debug.d.ts.map +0 -1
  236. package/dist/src/utils/debug.js +0 -235
  237. package/dist/src/utils/debug.js.map +0 -1
  238. package/dist/src/utils/enhancedError.d.ts +0 -61
  239. package/dist/src/utils/enhancedError.d.ts.map +0 -1
  240. package/dist/src/utils/enhancedError.js +0 -221
  241. package/dist/src/utils/enhancedError.js.map +0 -1
  242. package/dist/src/utils/error.d.ts +0 -17
  243. package/dist/src/utils/error.d.ts.map +0 -1
  244. package/dist/src/utils/error.js +0 -108
  245. package/dist/src/utils/error.js.map +0 -1
  246. package/dist/src/utils/logger.d.ts +0 -106
  247. package/dist/src/utils/logger.d.ts.map +0 -1
  248. package/dist/src/utils/logger.js +0 -280
  249. package/dist/src/utils/logger.js.map +0 -1
  250. package/dist/src/utils/streaming.d.ts +0 -104
  251. package/dist/src/utils/streaming.d.ts.map +0 -1
  252. package/dist/src/utils/streaming.js +0 -331
  253. package/dist/src/utils/streaming.js.map +0 -1
  254. package/dist/src/utils/toolWrapper.d.ts +0 -42
  255. package/dist/src/utils/toolWrapper.d.ts.map +0 -1
  256. package/dist/src/utils/toolWrapper.js +0 -101
  257. package/dist/src/utils/toolWrapper.js.map +0 -1
  258. package/dist/src/utils/validation/core.d.ts +0 -21
  259. package/dist/src/utils/validation/core.d.ts.map +0 -1
  260. package/dist/src/utils/validation/core.js +0 -71
  261. package/dist/src/utils/validation/core.js.map +0 -1
  262. package/dist/src/utils/validation/index.d.ts +0 -25
  263. package/dist/src/utils/validation/index.d.ts.map +0 -1
  264. package/dist/src/utils/validation/index.js +0 -29
  265. package/dist/src/utils/validation/index.js.map +0 -1
  266. package/dist/src/utils/validation/network.d.ts +0 -19
  267. package/dist/src/utils/validation/network.d.ts.map +0 -1
  268. package/dist/src/utils/validation/network.js +0 -93
  269. package/dist/src/utils/validation/network.js.map +0 -1
  270. package/dist/src/utils/validation/rateLimit.d.ts +0 -21
  271. package/dist/src/utils/validation/rateLimit.d.ts.map +0 -1
  272. package/dist/src/utils/validation/rateLimit.js +0 -43
  273. package/dist/src/utils/validation/rateLimit.js.map +0 -1
  274. package/dist/src/utils/validation/security.d.ts +0 -29
  275. package/dist/src/utils/validation/security.d.ts.map +0 -1
  276. package/dist/src/utils/validation/security.js +0 -327
  277. package/dist/src/utils/validation/security.js.map +0 -1
  278. package/dist/src/utils/validation/wordpress.d.ts +0 -31
  279. package/dist/src/utils/validation/wordpress.d.ts.map +0 -1
  280. package/dist/src/utils/validation/wordpress.js +0 -146
  281. package/dist/src/utils/validation/wordpress.js.map +0 -1
  282. package/dist/src/utils/validation.d.ts +0 -15
  283. package/dist/src/utils/validation.d.ts.map +0 -1
  284. package/dist/src/utils/validation.js +0 -27
  285. package/dist/src/utils/validation.js.map +0 -1
  286. package/dist/tests/vitest.setup.d.ts +0 -6
  287. package/dist/tests/vitest.setup.d.ts.map +0 -1
  288. package/dist/tests/vitest.setup.js +0 -39
  289. package/dist/tests/vitest.setup.js.map +0 -1
@@ -1,219 +0,0 @@
1
- /**
2
- * Comprehensive Input Validation and Sanitization System
3
- * Provides security-focused validation for all MCP tool inputs
4
- */
5
- import { z } from "zod";
6
- /**
7
- * Security validation schemas
8
- */
9
- export declare const SecuritySchemas: {
10
- safeString: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>;
11
- htmlContent: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
12
- url: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
13
- email: z.ZodString;
14
- slug: z.ZodString;
15
- wpContent: z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>;
16
- siteId: z.ZodString;
17
- wpId: z.ZodNumber;
18
- searchQuery: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
19
- filePath: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
20
- passwordMask: z.ZodEffects<z.ZodString, string, string>;
21
- appPassword: z.ZodEffects<z.ZodString, string, string>;
22
- };
23
- /**
24
- * Input sanitization functions
25
- */
26
- export declare class InputSanitizer {
27
- /**
28
- * Sanitize HTML content by removing dangerous elements
29
- */
30
- static sanitizeHtml(input: string): string;
31
- /**
32
- * Sanitize search queries to prevent SQL injection
33
- */
34
- static sanitizeSearchQuery(query: string): string;
35
- /**
36
- * Sanitize file paths to prevent directory traversal
37
- */
38
- static sanitizeFilePath(path: string): string;
39
- /**
40
- * Encode output for safe display
41
- */
42
- static encodeOutput(input: string): string;
43
- }
44
- /**
45
- * Security validation decorator for tool methods
46
- */
47
- export declare function validateSecurity(schema: z.ZodSchema): (target: unknown, propertyName: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
48
- /**
49
- * Custom security validation error
50
- */
51
- export declare class SecurityValidationError extends Error {
52
- readonly errors: Array<z.ZodIssue | {
53
- message: string;
54
- }>;
55
- constructor(message: string, errors?: Array<z.ZodIssue | {
56
- message: string;
57
- }>);
58
- }
59
- /**
60
- * Tool-specific validation schemas
61
- */
62
- export declare const ToolSchemas: {
63
- postData: z.ZodObject<{
64
- site: z.ZodOptional<z.ZodString>;
65
- title: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
66
- content: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
67
- excerpt: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
68
- status: z.ZodOptional<z.ZodEnum<["publish", "draft", "private", "pending"]>>;
69
- slug: z.ZodOptional<z.ZodString>;
70
- categories: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
71
- tags: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
72
- }, "strip", z.ZodTypeAny, {
73
- status?: "publish" | "draft" | "pending" | "private" | undefined;
74
- slug?: string | undefined;
75
- categories?: number[] | undefined;
76
- tags?: number[] | undefined;
77
- title?: string | undefined;
78
- content?: string | undefined;
79
- excerpt?: string | undefined;
80
- site?: string | undefined;
81
- }, {
82
- status?: "publish" | "draft" | "pending" | "private" | undefined;
83
- slug?: string | undefined;
84
- categories?: number[] | undefined;
85
- tags?: number[] | undefined;
86
- title?: string | undefined;
87
- content?: string | undefined;
88
- excerpt?: string | undefined;
89
- site?: string | undefined;
90
- }>;
91
- userData: z.ZodObject<{
92
- site: z.ZodOptional<z.ZodString>;
93
- username: z.ZodString;
94
- email: z.ZodString;
95
- password: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
96
- roles: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
97
- firstName: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
98
- lastName: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
99
- }, "strip", z.ZodTypeAny, {
100
- username: string;
101
- email: string;
102
- password?: string | undefined;
103
- roles?: string[] | undefined;
104
- site?: string | undefined;
105
- firstName?: string | undefined;
106
- lastName?: string | undefined;
107
- }, {
108
- username: string;
109
- email: string;
110
- password?: string | undefined;
111
- roles?: string[] | undefined;
112
- site?: string | undefined;
113
- firstName?: string | undefined;
114
- lastName?: string | undefined;
115
- }>;
116
- searchParams: z.ZodObject<{
117
- site: z.ZodOptional<z.ZodString>;
118
- query: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
119
- type: z.ZodOptional<z.ZodEnum<["post", "page", "any"]>>;
120
- limit: z.ZodOptional<z.ZodNumber>;
121
- }, "strip", z.ZodTypeAny, {
122
- query: string;
123
- type?: "page" | "post" | "any" | undefined;
124
- site?: string | undefined;
125
- limit?: number | undefined;
126
- }, {
127
- query: string;
128
- type?: "page" | "post" | "any" | undefined;
129
- site?: string | undefined;
130
- limit?: number | undefined;
131
- }>;
132
- mediaUpload: z.ZodObject<{
133
- site: z.ZodOptional<z.ZodString>;
134
- filename: z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>;
135
- title: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
136
- caption: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
137
- description: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
138
- }, "strip", z.ZodTypeAny, {
139
- filename: string;
140
- title?: string | undefined;
141
- description?: string | undefined;
142
- site?: string | undefined;
143
- caption?: string | undefined;
144
- }, {
145
- filename: string;
146
- title?: string | undefined;
147
- description?: string | undefined;
148
- site?: string | undefined;
149
- caption?: string | undefined;
150
- }>;
151
- siteSettings: z.ZodObject<{
152
- site: z.ZodOptional<z.ZodString>;
153
- title: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
154
- description: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>, string, string>, string, string>, string, string>>;
155
- url: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>>;
156
- adminEmail: z.ZodOptional<z.ZodString>;
157
- }, "strip", z.ZodTypeAny, {
158
- title?: string | undefined;
159
- description?: string | undefined;
160
- url?: string | undefined;
161
- site?: string | undefined;
162
- adminEmail?: string | undefined;
163
- }, {
164
- title?: string | undefined;
165
- description?: string | undefined;
166
- url?: string | undefined;
167
- site?: string | undefined;
168
- adminEmail?: string | undefined;
169
- }>;
170
- listParams: z.ZodObject<{
171
- site: z.ZodOptional<z.ZodString>;
172
- page: z.ZodOptional<z.ZodNumber>;
173
- perPage: z.ZodOptional<z.ZodNumber>;
174
- search: z.ZodOptional<z.ZodEffects<z.ZodEffects<z.ZodEffects<z.ZodString, string, string>, string, string>, string, string>>;
175
- orderBy: z.ZodOptional<z.ZodString>;
176
- order: z.ZodOptional<z.ZodEnum<["asc", "desc"]>>;
177
- }, "strip", z.ZodTypeAny, {
178
- page?: number | undefined;
179
- search?: string | undefined;
180
- order?: "asc" | "desc" | undefined;
181
- site?: string | undefined;
182
- perPage?: number | undefined;
183
- orderBy?: string | undefined;
184
- }, {
185
- page?: number | undefined;
186
- search?: string | undefined;
187
- order?: "asc" | "desc" | undefined;
188
- site?: string | undefined;
189
- perPage?: number | undefined;
190
- orderBy?: string | undefined;
191
- }>;
192
- idParams: z.ZodObject<{
193
- site: z.ZodOptional<z.ZodString>;
194
- id: z.ZodNumber;
195
- }, "strip", z.ZodTypeAny, {
196
- id: number;
197
- site?: string | undefined;
198
- }, {
199
- id: number;
200
- site?: string | undefined;
201
- }>;
202
- };
203
- /**
204
- * Rate limiting and DoS protection
205
- */
206
- export declare class SecurityLimiter {
207
- private static requestCounts;
208
- private static readonly RATE_LIMIT;
209
- private static readonly WINDOW_MS;
210
- /**
211
- * Check if request is within rate limits
212
- */
213
- static checkRateLimit(identifier: string): boolean;
214
- /**
215
- * Clean up expired rate limit entries
216
- */
217
- static cleanup(): void;
218
- }
219
- //# sourceMappingURL=InputValidator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputValidator.d.ts","sourceRoot":"","sources":["../../../src/security/InputValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;CAmF3B,CAAC;AAEF;;GAEG;AACH,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAW1C;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAUjD;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;IAQ7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;CAQ3C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,SAAS,IACjC,QAAQ,OAAO,EAAE,cAAc,MAAM,EAAE,YAAY,kBAAkB,wBAyCvF;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,SAAgB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;gBAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,GAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,GAAG;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAM;CAKlF;AAED;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEvB,CAAC;AAEF;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,aAAa,CAA2D;IACvF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAQ;IAC1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa;IAE9C;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAqBlD;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,IAAI;CAQvB"}
@@ -1,295 +0,0 @@
1
- /**
2
- * Comprehensive Input Validation and Sanitization System
3
- * Provides security-focused validation for all MCP tool inputs
4
- */
5
- import { z } from "zod";
6
- import { LoggerFactory } from "../utils/logger.js";
7
- const logger = LoggerFactory.security();
8
- // Common validation patterns
9
- const URL_PATTERN = /^https?:\/\/[^\s<>'"{}|\\^`\[\]]+$/;
10
- const EMAIL_PATTERN = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
11
- const SLUG_PATTERN = /^[a-z0-9-]+$/;
12
- const SCRIPT_PATTERN = /<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi;
13
- const SQL_INJECTION_PATTERN = /('|(\\')|(;)|(\\x00)|(\\n)|(\\r)|(\\x1a)|(\\x22)|(\\x27)|(\\x5c)|(\\x60))/i;
14
- /**
15
- * Security validation schemas
16
- */
17
- export const SecuritySchemas = {
18
- // Safe string with XSS protection
19
- safeString: z
20
- .string()
21
- .max(10000, "String too long")
22
- .refine((val) => !SCRIPT_PATTERN.test(val), "Script tags not allowed")
23
- .refine((val) => !val.includes("javascript:"), "JavaScript URLs not allowed")
24
- .refine((val) => !val.includes("data:"), "Data URLs not allowed")
25
- .refine((val) => !val.includes("onerror="), "Event handlers not allowed")
26
- .refine((val) => !val.includes("onload="), "Event handlers not allowed")
27
- .refine((val) => !val.includes("onfocus="), "Event handlers not allowed"),
28
- // HTML content with basic sanitization
29
- htmlContent: z
30
- .string()
31
- .max(100000, "Content too long")
32
- .refine((val) => !SCRIPT_PATTERN.test(val), "Script tags not allowed")
33
- .refine((val) => !val.includes("javascript:"), "JavaScript URLs not allowed")
34
- .refine((val) => !val.includes("on[a-z]+="), "Event handlers not allowed"),
35
- // URL validation
36
- url: z
37
- .string()
38
- .url("Invalid URL format")
39
- .regex(URL_PATTERN, "URL contains invalid characters")
40
- .refine((val) => !val.includes("javascript:"), "JavaScript URLs not allowed")
41
- .refine((val) => !val.includes("data:"), "Data URLs not allowed"),
42
- // Email validation
43
- email: z
44
- .string()
45
- .email("Invalid email format")
46
- .regex(EMAIL_PATTERN, "Email contains invalid characters")
47
- .max(254, "Email too long"),
48
- // Slug validation (for URLs, usernames, etc.)
49
- slug: z
50
- .string()
51
- .min(1, "Slug cannot be empty")
52
- .max(100, "Slug too long")
53
- .regex(SLUG_PATTERN, "Slug can only contain lowercase letters, numbers, and hyphens"),
54
- // WordPress post/page content
55
- wpContent: z
56
- .string()
57
- .max(1000000, "Content too long")
58
- .refine((val) => !SCRIPT_PATTERN.test(val), "Script tags not allowed in content")
59
- .refine((val) => !val.includes("javascript:"), "JavaScript URLs not allowed"),
60
- // Site ID validation
61
- siteId: z
62
- .string()
63
- .min(1, "Site ID cannot be empty")
64
- .max(50, "Site ID too long")
65
- .regex(/^[a-zA-Z0-9\-_]+$/, "Site ID can only contain letters, numbers, hyphens, and underscores"),
66
- // WordPress ID (numeric)
67
- wpId: z.number().int("ID must be an integer").positive("ID must be positive").max(999999999, "ID too large"),
68
- // Search query with SQL injection protection
69
- searchQuery: z
70
- .string()
71
- .max(500, "Search query too long")
72
- .refine((val) => !SQL_INJECTION_PATTERN.test(val), "Invalid characters in search query")
73
- .refine((val) => !val.includes("--"), "SQL comments not allowed")
74
- .refine((val) => !val.includes("/*"), "SQL comments not allowed"),
75
- // File path validation
76
- filePath: z
77
- .string()
78
- .max(500, "File path too long")
79
- .refine((val) => !val.includes(".."), "Path traversal not allowed")
80
- .refine((val) => !val.includes("<"), "Invalid characters in path")
81
- .refine((val) => !val.includes(">"), "Invalid characters in path"),
82
- // Password (for display/logging - never log actual passwords)
83
- passwordMask: z.string().transform(() => "[REDACTED]"),
84
- // WordPress application password format
85
- appPassword: z
86
- .string()
87
- .regex(/^[a-zA-Z0-9\s]{24}$/, "Invalid application password format")
88
- .transform((val) => val.replace(/\s/g, " ")), // Normalize spaces
89
- };
90
- /**
91
- * Input sanitization functions
92
- */
93
- export class InputSanitizer {
94
- /**
95
- * Sanitize HTML content by removing dangerous elements
96
- */
97
- static sanitizeHtml(input) {
98
- return input
99
- .replace(SCRIPT_PATTERN, "") // Remove script tags
100
- .replace(/javascript:/gi, "") // Remove javascript: URLs
101
- .replace(/data:/gi, "") // Remove data: URLs
102
- .replace(/on[a-z]+\s*=/gi, "") // Remove event handlers
103
- .replace(/<iframe[^>]*>/gi, "") // Remove iframes
104
- .replace(/<object[^>]*>/gi, "") // Remove objects
105
- .replace(/<embed[^>]*>/gi, ""); // Remove embeds
106
- }
107
- /**
108
- * Sanitize search queries to prevent SQL injection
109
- */
110
- static sanitizeSearchQuery(query) {
111
- return query
112
- .replace(/['"\\;]/g, "") // Remove quotes and backslashes
113
- .replace(/--/g, "") // Remove SQL comments
114
- .replace(/\/\*/g, "") // Remove SQL comments
115
- .replace(/\*/g, "") // Remove wildcards
116
- .trim()
117
- .substring(0, 500); // Limit length
118
- }
119
- /**
120
- * Sanitize file paths to prevent directory traversal
121
- */
122
- static sanitizeFilePath(path) {
123
- return path
124
- .replace(/\.\./g, "") // Remove directory traversal
125
- .replace(/[<>]/g, "") // Remove angle brackets
126
- .replace(/[|&;$`\\]/g, "") // Remove shell metacharacters
127
- .trim();
128
- }
129
- /**
130
- * Encode output for safe display
131
- */
132
- static encodeOutput(input) {
133
- return input
134
- .replace(/&/g, "&amp;")
135
- .replace(/</g, "&lt;")
136
- .replace(/>/g, "&gt;")
137
- .replace(/"/g, "&quot;")
138
- .replace(/'/g, "&#x27;");
139
- }
140
- }
141
- /**
142
- * Security validation decorator for tool methods
143
- */
144
- export function validateSecurity(schema) {
145
- return function (target, propertyName, descriptor) {
146
- const method = descriptor.value;
147
- descriptor.value = async function (...args) {
148
- try {
149
- // Validate input parameters
150
- const params = args[0] || {};
151
- const validatedParams = schema.parse(params);
152
- // Log security validation (without sensitive data)
153
- logger.info(`Security validation passed for ${propertyName}`, {
154
- timestamp: new Date().toISOString(),
155
- method: propertyName,
156
- paramCount: Object.keys(validatedParams).length,
157
- });
158
- // Call original method with validated params
159
- return await method.call(this, validatedParams, ...args.slice(1));
160
- }
161
- catch (error) {
162
- // Log security validation failure
163
- logger.error(`Security validation failed for ${propertyName}`, {
164
- timestamp: new Date().toISOString(),
165
- method: propertyName,
166
- error: error instanceof z.ZodError ? error.errors : error instanceof Error ? error.message : String(error),
167
- });
168
- throw new SecurityValidationError(`Security validation failed for ${propertyName}`, error instanceof z.ZodError
169
- ? error.errors
170
- : [
171
- {
172
- message: error instanceof Error ? error.message : String(error),
173
- },
174
- ]);
175
- }
176
- };
177
- return descriptor;
178
- };
179
- }
180
- /**
181
- * Custom security validation error
182
- */
183
- export class SecurityValidationError extends Error {
184
- errors;
185
- constructor(message, errors = []) {
186
- super(message);
187
- this.name = "SecurityValidationError";
188
- this.errors = errors;
189
- }
190
- }
191
- /**
192
- * Tool-specific validation schemas
193
- */
194
- export const ToolSchemas = {
195
- // Post creation/update
196
- postData: z.object({
197
- site: SecuritySchemas.siteId.optional(),
198
- title: SecuritySchemas.safeString.optional(),
199
- content: SecuritySchemas.wpContent.optional(),
200
- excerpt: SecuritySchemas.safeString.optional(),
201
- status: z.enum(["publish", "draft", "private", "pending"]).optional(),
202
- slug: SecuritySchemas.slug.optional(),
203
- categories: z.array(SecuritySchemas.wpId).optional(),
204
- tags: z.array(SecuritySchemas.wpId).optional(),
205
- }),
206
- // User creation/update
207
- userData: z.object({
208
- site: SecuritySchemas.siteId.optional(),
209
- username: SecuritySchemas.slug,
210
- email: SecuritySchemas.email,
211
- password: SecuritySchemas.safeString.optional(),
212
- roles: z.array(z.string()).optional(),
213
- firstName: SecuritySchemas.safeString.optional(),
214
- lastName: SecuritySchemas.safeString.optional(),
215
- }),
216
- // Search parameters
217
- searchParams: z.object({
218
- site: SecuritySchemas.siteId.optional(),
219
- query: SecuritySchemas.searchQuery,
220
- type: z.enum(["post", "page", "any"]).optional(),
221
- limit: z.number().int().min(1).max(100).optional(),
222
- }),
223
- // Media upload
224
- mediaUpload: z.object({
225
- site: SecuritySchemas.siteId.optional(),
226
- filename: SecuritySchemas.filePath,
227
- title: SecuritySchemas.safeString.optional(),
228
- caption: SecuritySchemas.safeString.optional(),
229
- description: SecuritySchemas.safeString.optional(),
230
- }),
231
- // Site settings
232
- siteSettings: z.object({
233
- site: SecuritySchemas.siteId.optional(),
234
- title: SecuritySchemas.safeString.optional(),
235
- description: SecuritySchemas.safeString.optional(),
236
- url: SecuritySchemas.url.optional(),
237
- adminEmail: SecuritySchemas.email.optional(),
238
- }),
239
- // Generic list parameters
240
- listParams: z.object({
241
- site: SecuritySchemas.siteId.optional(),
242
- page: z.number().int().min(1).max(1000).optional(),
243
- perPage: z.number().int().min(1).max(100).optional(),
244
- search: SecuritySchemas.searchQuery.optional(),
245
- orderBy: z.string().max(50).optional(),
246
- order: z.enum(["asc", "desc"]).optional(),
247
- }),
248
- // ID-based operations
249
- idParams: z.object({
250
- site: SecuritySchemas.siteId.optional(),
251
- id: SecuritySchemas.wpId,
252
- }),
253
- };
254
- /**
255
- * Rate limiting and DoS protection
256
- */
257
- export class SecurityLimiter {
258
- static requestCounts = new Map();
259
- static RATE_LIMIT = 1000; // requests per window
260
- static WINDOW_MS = 60 * 1000; // 1 minute
261
- /**
262
- * Check if request is within rate limits
263
- */
264
- static checkRateLimit(identifier) {
265
- const now = Date.now();
266
- const key = identifier;
267
- const current = this.requestCounts.get(key);
268
- if (!current || now > current.resetTime) {
269
- this.requestCounts.set(key, {
270
- count: 1,
271
- resetTime: now + this.WINDOW_MS,
272
- });
273
- return true;
274
- }
275
- if (current.count >= this.RATE_LIMIT) {
276
- return false;
277
- }
278
- current.count++;
279
- return true;
280
- }
281
- /**
282
- * Clean up expired rate limit entries
283
- */
284
- static cleanup() {
285
- const now = Date.now();
286
- for (const [key, data] of this.requestCounts.entries()) {
287
- if (now > data.resetTime) {
288
- this.requestCounts.delete(key);
289
- }
290
- }
291
- }
292
- }
293
- // Start cleanup interval
294
- setInterval(() => SecurityLimiter.cleanup(), 60000); // Clean up every minute
295
- //# sourceMappingURL=InputValidator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputValidator.js","sourceRoot":"","sources":["../../../src/security/InputValidator.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,MAAM,GAAG,aAAa,CAAC,QAAQ,EAAE,CAAC;AAExC,6BAA6B;AAC7B,MAAM,WAAW,GAAG,oCAAoC,CAAC;AACzD,MAAM,aAAa,GAAG,kDAAkD,CAAC;AACzE,MAAM,YAAY,GAAG,cAAc,CAAC;AACpC,MAAM,cAAc,GAAG,qDAAqD,CAAC;AAC7E,MAAM,qBAAqB,GAAG,4EAA4E,CAAC;AAE3G;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,kCAAkC;IAClC,UAAU,EAAE,CAAC;SACV,MAAM,EAAE;SACR,GAAG,CAAC,KAAK,EAAE,iBAAiB,CAAC;SAC7B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC;SACrE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,6BAA6B,CAAC;SAC5E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;SAChE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC;SACxE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,4BAA4B,CAAC;SACvE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAE3E,uCAAuC;IACvC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC;SAC/B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,yBAAyB,CAAC;SACrE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,6BAA6B,CAAC;SAC5E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,4BAA4B,CAAC;IAE5E,iBAAiB;IACjB,GAAG,EAAE,CAAC;SACH,MAAM,EAAE;SACR,GAAG,CAAC,oBAAoB,CAAC;SACzB,KAAK,CAAC,WAAW,EAAE,iCAAiC,CAAC;SACrD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,6BAA6B,CAAC;SAC5E,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC;IAEnE,mBAAmB;IACnB,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,KAAK,CAAC,sBAAsB,CAAC;SAC7B,KAAK,CAAC,aAAa,EAAE,mCAAmC,CAAC;SACzD,GAAG,CAAC,GAAG,EAAE,gBAAgB,CAAC;IAE7B,8CAA8C;IAC9C,IAAI,EAAE,CAAC;SACJ,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,sBAAsB,CAAC;SAC9B,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC;SACzB,KAAK,CAAC,YAAY,EAAE,+DAA+D,CAAC;IAEvF,8BAA8B;IAC9B,SAAS,EAAE,CAAC;SACT,MAAM,EAAE;SACR,GAAG,CAAC,OAAO,EAAE,kBAAkB,CAAC;SAChC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,oCAAoC,CAAC;SAChF,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,6BAA6B,CAAC;IAE/E,qBAAqB;IACrB,MAAM,EAAE,CAAC;SACN,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,EAAE,yBAAyB,CAAC;SACjC,GAAG,CAAC,EAAE,EAAE,kBAAkB,CAAC;SAC3B,KAAK,CAAC,mBAAmB,EAAE,qEAAqE,CAAC;IAEpG,yBAAyB;IACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,SAAS,EAAE,cAAc,CAAC;IAE5G,6CAA6C;IAC7C,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,EAAE,uBAAuB,CAAC;SACjC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,oCAAoC,CAAC;SACvF,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC;SAChE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,0BAA0B,CAAC;IAEnE,uBAAuB;IACvB,QAAQ,EAAE,CAAC;SACR,MAAM,EAAE;SACR,GAAG,CAAC,GAAG,EAAE,oBAAoB,CAAC;SAC9B,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,4BAA4B,CAAC;SAClE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,4BAA4B,CAAC;SACjE,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,4BAA4B,CAAC;IAEpE,8DAA8D;IAC9D,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC;IAEtD,wCAAwC;IACxC,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,KAAK,CAAC,qBAAqB,EAAE,qCAAqC,CAAC;SACnE,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,EAAE,mBAAmB;CACpE,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAa;QAC/B,OAAO,KAAK;aACT,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,qBAAqB;aACjD,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,0BAA0B;aACvD,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,oBAAoB;aAC3C,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,wBAAwB;aACtD,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,iBAAiB;aAChD,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,iBAAiB;aAChD,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB;IACpD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,KAAa;QACtC,OAAO,KAAK;aACT,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,gCAAgC;aACxD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,sBAAsB;aACzC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,sBAAsB;aAC3C,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,mBAAmB;aACtC,IAAI,EAAE;aACN,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe;IACvC,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAY;QAClC,OAAO,IAAI;aACR,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,6BAA6B;aAClD,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,wBAAwB;aAC7C,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,8BAA8B;aACxD,IAAI,EAAE,CAAC;IACZ,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAa;QAC/B,OAAO,KAAK;aACT,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC;aACtB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC;aACrB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;aACvB,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;CACF;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,OAAO,UAAU,MAAe,EAAE,YAAoB,EAAE,UAA8B;QACpF,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC;QAEhC,UAAU,CAAC,KAAK,GAAG,KAAK,WAAW,GAAG,IAAe;YACnD,IAAI,CAAC;gBACH,4BAA4B;gBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC7B,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAE7C,mDAAmD;gBACnD,MAAM,CAAC,IAAI,CAAC,kCAAkC,YAAY,EAAE,EAAE;oBAC5D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,YAAY;oBACpB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM;iBAChD,CAAC,CAAC;gBAEH,6CAA6C;gBAC7C,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACpE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,kCAAkC;gBAClC,MAAM,CAAC,KAAK,CAAC,kCAAkC,YAAY,EAAE,EAAE;oBAC7D,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBACnC,MAAM,EAAE,YAAY;oBACpB,KAAK,EAAE,KAAK,YAAY,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;iBAC3G,CAAC,CAAC;gBAEH,MAAM,IAAI,uBAAuB,CAC/B,kCAAkC,YAAY,EAAE,EAChD,KAAK,YAAY,CAAC,CAAC,QAAQ;oBACzB,CAAC,CAAC,KAAK,CAAC,MAAM;oBACd,CAAC,CAAC;wBACE;4BACE,OAAO,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;yBAChE;qBACF,CACN,CAAC;YACJ,CAAC;QACH,CAAC,CAAC;QAEF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,KAAK;IAChC,MAAM,CAA0C;IAEhE,YAAY,OAAe,EAAE,SAAkD,EAAE;QAC/E,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;QACtC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,uBAAuB;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC5C,OAAO,EAAE,eAAe,CAAC,SAAS,CAAC,QAAQ,EAAE;QAC7C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC9C,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,EAAE;QACrE,IAAI,EAAE,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE;QACrC,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QACpD,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KAC/C,CAAC;IAEF,uBAAuB;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,eAAe,CAAC,IAAI;QAC9B,KAAK,EAAE,eAAe,CAAC,KAAK;QAC5B,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC/C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,QAAQ,EAAE;QACrC,SAAS,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAChD,QAAQ,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;KAChD,CAAC;IAEF,oBAAoB;IACpB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,eAAe,CAAC,WAAW;QAClC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,QAAQ,EAAE;QAChD,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;KACnD,CAAC;IAEF,eAAe;IACf,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;QACpB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,QAAQ,EAAE,eAAe,CAAC,QAAQ;QAClC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC5C,OAAO,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC9C,WAAW,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;KACnD,CAAC;IAEF,gBAAgB;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC;QACrB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,KAAK,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAC5C,WAAW,EAAE,eAAe,CAAC,UAAU,CAAC,QAAQ,EAAE;QAClD,GAAG,EAAE,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE;QACnC,UAAU,EAAE,eAAe,CAAC,KAAK,CAAC,QAAQ,EAAE;KAC7C,CAAC;IAEF,0BAA0B;IAC1B,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC;QACnB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;QAClD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;QACpD,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC,QAAQ,EAAE;QAC9C,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE;KAC1C,CAAC;IAEF,sBAAsB;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC;QACjB,IAAI,EAAE,eAAe,CAAC,MAAM,CAAC,QAAQ,EAAE;QACvC,EAAE,EAAE,eAAe,CAAC,IAAI;KACzB,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,MAAM,CAAC,aAAa,GAAG,IAAI,GAAG,EAAgD,CAAC;IAC/E,MAAM,CAAU,UAAU,GAAG,IAAI,CAAC,CAAC,sBAAsB;IACzD,MAAM,CAAU,SAAS,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW;IAE1D;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAkB;QACtC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,UAAU,CAAC;QACvB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAE5C,IAAI,CAAC,OAAO,IAAI,GAAG,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE;gBAC1B,KAAK,EAAE,CAAC;gBACR,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS;aAChC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;IACH,CAAC;;AAGH,yBAAyB;AACzB,WAAW,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,wBAAwB"}