mcp-wordpress 1.2.2 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/README.md +210 -182
  2. package/dist/cache/CacheInvalidation.d.ts +3 -3
  3. package/dist/cache/CacheInvalidation.d.ts.map +1 -1
  4. package/dist/cache/CacheInvalidation.js +119 -119
  5. package/dist/cache/CacheInvalidation.js.map +1 -1
  6. package/dist/cache/CacheManager.d.ts +5 -0
  7. package/dist/cache/CacheManager.d.ts.map +1 -1
  8. package/dist/cache/CacheManager.js +26 -16
  9. package/dist/cache/CacheManager.js.map +1 -1
  10. package/dist/cache/HttpCacheWrapper.d.ts +1 -1
  11. package/dist/cache/HttpCacheWrapper.d.ts.map +1 -1
  12. package/dist/cache/HttpCacheWrapper.js +29 -29
  13. package/dist/cache/HttpCacheWrapper.js.map +1 -1
  14. package/dist/cache/__tests__/CacheInvalidation.test.js +96 -94
  15. package/dist/cache/__tests__/CacheInvalidation.test.js.map +1 -1
  16. package/dist/cache/__tests__/CacheManager.test.js +113 -113
  17. package/dist/cache/__tests__/CacheManager.test.js.map +1 -1
  18. package/dist/cache/__tests__/CachedWordPressClient.test.js +102 -99
  19. package/dist/cache/__tests__/CachedWordPressClient.test.js.map +1 -1
  20. package/dist/cache/__tests__/HttpCacheWrapper.test.js +98 -95
  21. package/dist/cache/__tests__/HttpCacheWrapper.test.js.map +1 -1
  22. package/dist/cache/index.d.ts +7 -7
  23. package/dist/cache/index.d.ts.map +1 -1
  24. package/dist/cache/index.js +4 -4
  25. package/dist/cache/index.js.map +1 -1
  26. package/dist/client/CachedWordPressClient.d.ts +4 -4
  27. package/dist/client/CachedWordPressClient.d.ts.map +1 -1
  28. package/dist/client/CachedWordPressClient.js +55 -51
  29. package/dist/client/CachedWordPressClient.js.map +1 -1
  30. package/dist/client/api.d.ts +10 -10
  31. package/dist/client/api.js +158 -158
  32. package/dist/client/api.js.map +1 -1
  33. package/dist/client/auth.d.ts +2 -2
  34. package/dist/client/auth.js +72 -72
  35. package/dist/client/managers/AuthenticationManager.d.ts +2 -2
  36. package/dist/client/managers/AuthenticationManager.js +46 -46
  37. package/dist/client/managers/BaseManager.d.ts +1 -1
  38. package/dist/client/managers/BaseManager.js +9 -9
  39. package/dist/client/managers/RequestManager.d.ts +5 -3
  40. package/dist/client/managers/RequestManager.d.ts.map +1 -1
  41. package/dist/client/managers/RequestManager.js +39 -19
  42. package/dist/client/managers/RequestManager.js.map +1 -1
  43. package/dist/client/managers/index.d.ts +3 -3
  44. package/dist/client/managers/index.js +3 -3
  45. package/dist/config/ConfigurationSchema.d.ts +2 -2
  46. package/dist/config/ConfigurationSchema.d.ts.map +1 -1
  47. package/dist/config/ConfigurationSchema.js +40 -40
  48. package/dist/config/ConfigurationSchema.js.map +1 -1
  49. package/dist/config/ServerConfiguration.d.ts +2 -2
  50. package/dist/config/ServerConfiguration.js +35 -35
  51. package/dist/config/ServerConfiguration.js.map +1 -1
  52. package/dist/docs/DocumentationGenerator.d.ts.map +1 -1
  53. package/dist/docs/DocumentationGenerator.js +296 -255
  54. package/dist/docs/DocumentationGenerator.js.map +1 -1
  55. package/dist/docs/MarkdownFormatter.d.ts +1 -1
  56. package/dist/docs/MarkdownFormatter.d.ts.map +1 -1
  57. package/dist/docs/MarkdownFormatter.js +60 -51
  58. package/dist/docs/MarkdownFormatter.js.map +1 -1
  59. package/dist/docs/index.d.ts +3 -3
  60. package/dist/docs/index.d.ts.map +1 -1
  61. package/dist/docs/index.js +2 -2
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +16 -16
  64. package/dist/index.js.map +1 -1
  65. package/dist/mcp-wordpress-1.3.0.tgz +0 -0
  66. package/dist/performance/MetricsCollector.d.ts +3 -3
  67. package/dist/performance/MetricsCollector.d.ts.map +1 -1
  68. package/dist/performance/MetricsCollector.js +33 -27
  69. package/dist/performance/MetricsCollector.js.map +1 -1
  70. package/dist/performance/PerformanceAnalytics.d.ts +12 -12
  71. package/dist/performance/PerformanceAnalytics.d.ts.map +1 -1
  72. package/dist/performance/PerformanceAnalytics.js +200 -154
  73. package/dist/performance/PerformanceAnalytics.js.map +1 -1
  74. package/dist/performance/PerformanceMonitor.d.ts +5 -5
  75. package/dist/performance/PerformanceMonitor.d.ts.map +1 -1
  76. package/dist/performance/PerformanceMonitor.js +53 -52
  77. package/dist/performance/PerformanceMonitor.js.map +1 -1
  78. package/dist/performance/index.d.ts +6 -6
  79. package/dist/performance/index.d.ts.map +1 -1
  80. package/dist/performance/index.js +3 -3
  81. package/dist/security/InputValidator.d.ts +1 -1
  82. package/dist/security/InputValidator.d.ts.map +1 -1
  83. package/dist/security/InputValidator.js +111 -88
  84. package/dist/security/InputValidator.js.map +1 -1
  85. package/dist/security/SecurityConfig.d.ts +5 -5
  86. package/dist/security/SecurityConfig.js +92 -92
  87. package/dist/security/SecurityConfig.js.map +1 -1
  88. package/dist/server/ConnectionTester.d.ts +1 -1
  89. package/dist/server/ConnectionTester.d.ts.map +1 -1
  90. package/dist/server/ConnectionTester.js +4 -4
  91. package/dist/server/ConnectionTester.js.map +1 -1
  92. package/dist/server/ToolRegistry.d.ts +2 -2
  93. package/dist/server/ToolRegistry.d.ts.map +1 -1
  94. package/dist/server/ToolRegistry.js +35 -32
  95. package/dist/server/ToolRegistry.js.map +1 -1
  96. package/dist/server.d.ts +2 -2
  97. package/dist/server.js +2 -2
  98. package/dist/tools/BaseToolManager.js +5 -5
  99. package/dist/tools/auth.d.ts +2 -2
  100. package/dist/tools/auth.d.ts.map +1 -1
  101. package/dist/tools/auth.js +32 -31
  102. package/dist/tools/auth.js.map +1 -1
  103. package/dist/tools/cache.d.ts +1 -1
  104. package/dist/tools/cache.d.ts.map +1 -1
  105. package/dist/tools/cache.js +71 -71
  106. package/dist/tools/cache.js.map +1 -1
  107. package/dist/tools/comments.d.ts +2 -2
  108. package/dist/tools/comments.d.ts.map +1 -1
  109. package/dist/tools/comments.js +79 -79
  110. package/dist/tools/comments.js.map +1 -1
  111. package/dist/tools/index.d.ts +10 -10
  112. package/dist/tools/index.js +10 -10
  113. package/dist/tools/media.d.ts +2 -2
  114. package/dist/tools/media.js +80 -80
  115. package/dist/tools/pages.d.ts +2 -2
  116. package/dist/tools/pages.d.ts.map +1 -1
  117. package/dist/tools/pages.js +75 -75
  118. package/dist/tools/pages.js.map +1 -1
  119. package/dist/tools/performance.d.ts +1 -1
  120. package/dist/tools/performance.d.ts.map +1 -1
  121. package/dist/tools/performance.js +311 -287
  122. package/dist/tools/performance.js.map +1 -1
  123. package/dist/tools/posts.d.ts +2 -2
  124. package/dist/tools/posts.d.ts.map +1 -1
  125. package/dist/tools/posts.js +94 -94
  126. package/dist/tools/posts.js.map +1 -1
  127. package/dist/tools/site.d.ts +2 -2
  128. package/dist/tools/site.d.ts.map +1 -1
  129. package/dist/tools/site.js +60 -60
  130. package/dist/tools/site.js.map +1 -1
  131. package/dist/tools/taxonomies.d.ts +2 -2
  132. package/dist/tools/taxonomies.js +89 -89
  133. package/dist/tools/users.d.ts +2 -2
  134. package/dist/tools/users.js +68 -68
  135. package/dist/tools/users.js.map +1 -1
  136. package/dist/types/client.d.ts +13 -13
  137. package/dist/types/client.d.ts.map +1 -1
  138. package/dist/types/client.js +12 -12
  139. package/dist/types/client.js.map +1 -1
  140. package/dist/types/index.d.ts +19 -19
  141. package/dist/types/index.d.ts.map +1 -1
  142. package/dist/types/index.js +3 -3
  143. package/dist/types/mcp.d.ts +7 -7
  144. package/dist/types/wordpress.d.ts +21 -21
  145. package/dist/types/wordpress.d.ts.map +1 -1
  146. package/dist/utils/debug.d.ts +2 -2
  147. package/dist/utils/debug.js +28 -28
  148. package/dist/utils/error.d.ts.map +1 -1
  149. package/dist/utils/error.js +13 -13
  150. package/dist/utils/error.js.map +1 -1
  151. package/dist/utils/toolWrapper.d.ts.map +1 -1
  152. package/dist/utils/toolWrapper.js +5 -5
  153. package/dist/utils/toolWrapper.js.map +1 -1
  154. package/dist/utils/validation.d.ts.map +1 -1
  155. package/dist/utils/validation.js +41 -31
  156. package/dist/utils/validation.js.map +1 -1
  157. package/docs/CACHING.md +36 -2
  158. package/docs/DOCKER.md +24 -18
  159. package/docs/PERFORMANCE_MONITORING.md +49 -1
  160. package/docs/SECURITY_TESTING.md +30 -1
  161. package/docs/api/README.md +9 -1
  162. package/docs/api/summary.json +1 -1
  163. package/docs/contract-testing.md +24 -3
  164. package/docs/developer/GITHUB_ACTIONS_SETUP.md +8 -2
  165. package/docs/developer/MAINTENANCE.md +29 -3
  166. package/docs/developer/MIGRATION_GUIDE.md +13 -1
  167. package/docs/developer/NPM_AUTH_SETUP.md +13 -2
  168. package/docs/developer/REFACTORING.md +31 -1
  169. package/docs/releases/COMMUNITY_ANNOUNCEMENT_v1.1.2.md +18 -7
  170. package/docs/releases/RELEASE_NOTES_v1.1.2.md +31 -5
  171. package/docs/user-guides/DOCKER_SETUP.md +264 -0
  172. package/docs/user-guides/DTX_SETUP.md +327 -0
  173. package/docs/user-guides/NPM_SETUP.md +109 -0
  174. package/docs/user-guides/NPX_SETUP.md +281 -0
  175. package/docs/wordpress-rest-api-authentication-troubleshooting.md +13 -2
  176. package/package.json +27 -8
  177. package/src/cache/CacheInvalidation.ts +140 -132
  178. package/src/cache/CacheManager.ts +40 -29
  179. package/src/cache/HttpCacheWrapper.ts +105 -68
  180. package/src/cache/__tests__/CacheInvalidation.test.ts +123 -118
  181. package/src/cache/__tests__/CacheManager.test.ts +156 -152
  182. package/src/cache/__tests__/CachedWordPressClient.test.ts +131 -116
  183. package/src/cache/__tests__/HttpCacheWrapper.test.ts +118 -115
  184. package/src/cache/index.ts +13 -13
  185. package/src/client/CachedWordPressClient.ts +90 -80
  186. package/src/client/api.ts +205 -205
  187. package/src/client/auth.ts +80 -80
  188. package/src/client/managers/AuthenticationManager.ts +61 -61
  189. package/src/client/managers/BaseManager.ts +11 -11
  190. package/src/client/managers/RequestManager.ts +79 -47
  191. package/src/client/managers/index.ts +3 -3
  192. package/src/config/ConfigurationSchema.ts +44 -44
  193. package/src/config/ServerConfiguration.ts +39 -39
  194. package/src/docs/DocumentationGenerator.ts +402 -295
  195. package/src/docs/MarkdownFormatter.ts +94 -69
  196. package/src/docs/index.ts +4 -4
  197. package/src/index.ts +24 -21
  198. package/src/performance/MetricsCollector.ts +90 -58
  199. package/src/performance/PerformanceAnalytics.ts +386 -262
  200. package/src/performance/PerformanceMonitor.ts +152 -118
  201. package/src/performance/index.ts +9 -9
  202. package/src/security/InputValidator.ts +148 -91
  203. package/src/security/SecurityConfig.ts +94 -94
  204. package/src/server/ConnectionTester.ts +21 -15
  205. package/src/server/ToolRegistry.ts +64 -51
  206. package/src/server.ts +2 -2
  207. package/src/tools/BaseToolManager.ts +6 -6
  208. package/src/tools/auth.ts +42 -37
  209. package/src/tools/cache.ts +85 -81
  210. package/src/tools/comments.ts +93 -91
  211. package/src/tools/index.ts +10 -10
  212. package/src/tools/media.ts +89 -89
  213. package/src/tools/pages.ts +89 -87
  214. package/src/tools/performance.ts +443 -352
  215. package/src/tools/posts.ts +109 -107
  216. package/src/tools/site.ts +86 -77
  217. package/src/tools/taxonomies.ts +102 -102
  218. package/src/tools/users.ts +77 -77
  219. package/src/types/client.ts +157 -60
  220. package/src/types/index.ts +49 -27
  221. package/src/types/mcp.ts +15 -15
  222. package/src/types/wordpress.ts +57 -29
  223. package/src/utils/debug.ts +37 -37
  224. package/src/utils/error.ts +47 -25
  225. package/src/utils/toolWrapper.ts +12 -8
  226. package/src/utils/validation.ts +116 -65
  227. package/dist/client/WordPressClient.d.ts +0 -81
  228. package/dist/client/WordPressClient.d.ts.map +0 -1
  229. package/dist/client/WordPressClient.js +0 -354
  230. package/dist/client/WordPressClient.js.map +0 -1
  231. package/dist/performance/AnomalyDetector.d.ts +0 -63
  232. package/dist/performance/AnomalyDetector.d.ts.map +0 -1
  233. package/dist/performance/AnomalyDetector.js +0 -222
  234. package/dist/performance/AnomalyDetector.js.map +0 -1
  235. package/dist/performance/BenchmarkAnalyzer.d.ts +0 -67
  236. package/dist/performance/BenchmarkAnalyzer.d.ts.map +0 -1
  237. package/dist/performance/BenchmarkAnalyzer.js +0 -301
  238. package/dist/performance/BenchmarkAnalyzer.js.map +0 -1
  239. package/dist/performance/TrendAnalyzer.d.ts +0 -69
  240. package/dist/performance/TrendAnalyzer.d.ts.map +0 -1
  241. package/dist/performance/TrendAnalyzer.js +0 -203
  242. package/dist/performance/TrendAnalyzer.js.map +0 -1
  243. package/dist/tools/BaseToolClass.d.ts +0 -76
  244. package/dist/tools/BaseToolClass.d.ts.map +0 -1
  245. package/dist/tools/BaseToolClass.js +0 -104
  246. package/dist/tools/BaseToolClass.js.map +0 -1
  247. package/dist/tools/base.d.ts +0 -37
  248. package/dist/tools/base.d.ts.map +0 -1
  249. package/dist/tools/base.js +0 -60
  250. package/dist/tools/base.js.map +0 -1
  251. package/docs/user-guides/CLAUDE_DESKTOP_SETUP.md +0 -187
@@ -1,14 +1,14 @@
1
1
  /**
2
2
  * WordPress API Client Types
3
- *
3
+ *
4
4
  * TypeScript definitions for the WordPress REST API client
5
5
  */
6
6
 
7
- import type {
8
- WordPressPost,
9
- WordPressPage,
10
- WordPressMedia,
11
- WordPressUser,
7
+ import type {
8
+ WordPressPost,
9
+ WordPressPage,
10
+ WordPressMedia,
11
+ WordPressUser,
12
12
  WordPressComment,
13
13
  WordPressCategory,
14
14
  WordPressTag,
@@ -31,11 +31,16 @@ import type {
31
31
  CreateTagRequest,
32
32
  UpdateTagRequest,
33
33
  UploadMediaRequest,
34
- UpdateMediaRequest
35
- } from './wordpress.js';
34
+ UpdateMediaRequest,
35
+ } from "./wordpress.js";
36
36
 
37
37
  // Authentication Configuration
38
- export type AuthMethod = 'app-password' | 'jwt' | 'basic' | 'api-key' | 'cookie';
38
+ export type AuthMethod =
39
+ | "app-password"
40
+ | "jwt"
41
+ | "basic"
42
+ | "api-key"
43
+ | "cookie";
39
44
 
40
45
  export interface AuthConfig {
41
46
  method: AuthMethod;
@@ -64,7 +69,7 @@ export interface WordPressClientConfig {
64
69
  }
65
70
 
66
71
  // HTTP Method Types
67
- export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
72
+ export type HTTPMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE";
68
73
 
69
74
  // Request Options
70
75
  export interface RequestOptions {
@@ -115,71 +120,151 @@ export interface IWordPressClient {
115
120
  disconnect(): Promise<void>;
116
121
 
117
122
  // Generic HTTP Methods
118
- request<T = any>(method: HTTPMethod, endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
123
+ request<T = any>(
124
+ method: HTTPMethod,
125
+ endpoint: string,
126
+ data?: any,
127
+ options?: RequestOptions,
128
+ ): Promise<T>;
119
129
  get<T = any>(endpoint: string, options?: RequestOptions): Promise<T>;
120
- post<T = any>(endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
121
- put<T = any>(endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
122
- patch<T = any>(endpoint: string, data?: any, 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>;
123
145
  delete<T = any>(endpoint: string, options?: RequestOptions): Promise<T>;
124
146
 
125
147
  // Posts
126
148
  getPosts(params?: PostQueryParams): Promise<WordPressPost[]>;
127
- getPost(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressPost>;
149
+ getPost(
150
+ id: number,
151
+ context?: "view" | "embed" | "edit",
152
+ ): Promise<WordPressPost>;
128
153
  createPost(data: CreatePostRequest): Promise<WordPressPost>;
129
154
  updatePost(data: UpdatePostRequest): Promise<WordPressPost>;
130
- deletePost(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressPost }>;
155
+ deletePost(
156
+ id: number,
157
+ force?: boolean,
158
+ ): Promise<{ deleted: boolean; previous?: WordPressPost }>;
131
159
  getPostRevisions(id: number): Promise<WordPressPost[]>;
132
160
 
133
161
  // Pages
134
162
  getPages(params?: PostQueryParams): Promise<WordPressPage[]>;
135
- getPage(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressPage>;
163
+ getPage(
164
+ id: number,
165
+ context?: "view" | "embed" | "edit",
166
+ ): Promise<WordPressPage>;
136
167
  createPage(data: CreatePageRequest): Promise<WordPressPage>;
137
168
  updatePage(data: UpdatePageRequest): Promise<WordPressPage>;
138
- deletePage(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressPage }>;
169
+ deletePage(
170
+ id: number,
171
+ force?: boolean,
172
+ ): Promise<{ deleted: boolean; previous?: WordPressPage }>;
139
173
  getPageRevisions(id: number): Promise<WordPressPage[]>;
140
174
 
141
175
  // Media
142
176
  getMedia(params?: MediaQueryParams): Promise<WordPressMedia[]>;
143
- getMediaItem(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressMedia>;
177
+ getMediaItem(
178
+ id: number,
179
+ context?: "view" | "embed" | "edit",
180
+ ): Promise<WordPressMedia>;
144
181
  uploadMedia(data: UploadMediaRequest): Promise<WordPressMedia>;
145
- uploadFile(fileData: Buffer, filename: string, mimeType: string, meta?: Partial<UploadMediaRequest>, options?: RequestOptions): Promise<WordPressMedia>;
182
+ uploadFile(
183
+ fileData: Buffer,
184
+ filename: string,
185
+ mimeType: string,
186
+ meta?: Partial<UploadMediaRequest>,
187
+ options?: RequestOptions,
188
+ ): Promise<WordPressMedia>;
146
189
  updateMedia(data: UpdateMediaRequest): Promise<WordPressMedia>;
147
- deleteMedia(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressMedia }>;
190
+ deleteMedia(
191
+ id: number,
192
+ force?: boolean,
193
+ ): Promise<{ deleted: boolean; previous?: WordPressMedia }>;
148
194
 
149
195
  // Users
150
196
  getUsers(params?: UserQueryParams): Promise<WordPressUser[]>;
151
- getUser(id: number | 'me', context?: 'view' | 'embed' | 'edit'): Promise<WordPressUser>;
197
+ getUser(
198
+ id: number | "me",
199
+ context?: "view" | "embed" | "edit",
200
+ ): Promise<WordPressUser>;
152
201
  createUser(data: CreateUserRequest): Promise<WordPressUser>;
153
202
  updateUser(data: UpdateUserRequest): Promise<WordPressUser>;
154
- deleteUser(id: number, reassign?: number): Promise<{ deleted: boolean; previous?: WordPressUser }>;
203
+ deleteUser(
204
+ id: number,
205
+ reassign?: number,
206
+ ): Promise<{ deleted: boolean; previous?: WordPressUser }>;
155
207
  getCurrentUser(): Promise<WordPressUser>;
156
208
 
157
209
  // Comments
158
210
  getComments(params?: CommentQueryParams): Promise<WordPressComment[]>;
159
- getComment(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressComment>;
211
+ getComment(
212
+ id: number,
213
+ context?: "view" | "embed" | "edit",
214
+ ): Promise<WordPressComment>;
160
215
  createComment(data: CreateCommentRequest): Promise<WordPressComment>;
161
216
  updateComment(data: UpdateCommentRequest): Promise<WordPressComment>;
162
- deleteComment(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressComment }>;
217
+ deleteComment(
218
+ id: number,
219
+ force?: boolean,
220
+ ): Promise<{ deleted: boolean; previous?: WordPressComment }>;
163
221
  approveComment(id: number): Promise<WordPressComment>;
164
222
  rejectComment(id: number): Promise<WordPressComment>;
165
223
  spamComment(id: number): Promise<WordPressComment>;
166
224
 
167
225
  // Taxonomies
168
- getCategories(params?: { search?: string; exclude?: number[]; include?: number[]; order?: 'asc' | 'desc'; orderby?: string; hide_empty?: boolean; parent?: number; post?: number; slug?: string }): Promise<WordPressCategory[]>;
226
+ getCategories(params?: {
227
+ search?: string;
228
+ exclude?: number[];
229
+ include?: number[];
230
+ order?: "asc" | "desc";
231
+ orderby?: string;
232
+ hide_empty?: boolean;
233
+ parent?: number;
234
+ post?: number;
235
+ slug?: string;
236
+ }): Promise<WordPressCategory[]>;
169
237
  getCategory(id: number): Promise<WordPressCategory>;
170
238
  createCategory(data: CreateCategoryRequest): Promise<WordPressCategory>;
171
239
  updateCategory(data: UpdateCategoryRequest): Promise<WordPressCategory>;
172
- deleteCategory(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressCategory }>;
173
-
174
- getTags(params?: { search?: string; exclude?: number[]; include?: number[]; order?: 'asc' | 'desc'; orderby?: string; hide_empty?: boolean; post?: number; slug?: string }): Promise<WordPressTag[]>;
240
+ deleteCategory(
241
+ id: number,
242
+ force?: boolean,
243
+ ): Promise<{ deleted: boolean; previous?: WordPressCategory }>;
244
+
245
+ getTags(params?: {
246
+ search?: string;
247
+ exclude?: number[];
248
+ include?: number[];
249
+ order?: "asc" | "desc";
250
+ orderby?: string;
251
+ hide_empty?: boolean;
252
+ post?: number;
253
+ slug?: string;
254
+ }): Promise<WordPressTag[]>;
175
255
  getTag(id: number): Promise<WordPressTag>;
176
256
  createTag(data: CreateTagRequest): Promise<WordPressTag>;
177
257
  updateTag(data: UpdateTagRequest): Promise<WordPressTag>;
178
- deleteTag(id: number, force?: boolean): Promise<{ deleted: boolean; previous?: WordPressTag }>;
258
+ deleteTag(
259
+ id: number,
260
+ force?: boolean,
261
+ ): Promise<{ deleted: boolean; previous?: WordPressTag }>;
179
262
 
180
263
  // Site Management
181
264
  getSiteSettings(): Promise<WordPressSiteSettings>;
182
- updateSiteSettings(settings: Partial<WordPressSiteSettings>): Promise<WordPressSiteSettings>;
265
+ updateSiteSettings(
266
+ settings: Partial<WordPressSiteSettings>,
267
+ ): Promise<WordPressSiteSettings>;
183
268
  getSiteInfo(): Promise<{
184
269
  name: string;
185
270
  description: string;
@@ -193,18 +278,33 @@ export interface IWordPressClient {
193
278
  }>;
194
279
 
195
280
  // Application Passwords
196
- getApplicationPasswords(userId?: number | 'me'): Promise<WordPressApplicationPassword[]>;
197
- createApplicationPassword(userId: number | 'me', name: string, appId?: string): Promise<WordPressApplicationPassword>;
198
- deleteApplicationPassword(userId: number | 'me', uuid: string): Promise<{ deleted: boolean }>;
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 }>;
199
293
 
200
294
  // Search
201
- search(query: string, types?: string[], subtype?: string): Promise<Array<{
202
- id: number;
203
- title: string;
204
- url: string;
205
- type: string;
206
- subtype: string;
207
- }>>;
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
+ >;
208
308
 
209
309
  // Utility Methods
210
310
  ping(): Promise<boolean>;
@@ -228,14 +328,9 @@ export class WordPressAPIError extends Error {
228
328
  public readonly code?: string;
229
329
  public data?: any;
230
330
 
231
- constructor(
232
- message: string,
233
- statusCode?: number,
234
- code?: string,
235
- data?: any
236
- ) {
331
+ constructor(message: string, statusCode?: number, code?: string, data?: any) {
237
332
  super(message);
238
- this.name = 'WordPressAPIError';
333
+ this.name = "WordPressAPIError";
239
334
  if (statusCode !== undefined) this.statusCode = statusCode;
240
335
  if (code !== undefined) this.code = code;
241
336
  if (data !== undefined) this.data = data;
@@ -244,24 +339,24 @@ export class WordPressAPIError extends Error {
244
339
 
245
340
  export class AuthenticationError extends WordPressAPIError {
246
341
  constructor(message: string, method: AuthMethod) {
247
- super(message, 401, 'authentication_failed');
248
- this.name = 'AuthenticationError';
342
+ super(message, 401, "authentication_failed");
343
+ this.name = "AuthenticationError";
249
344
  this.data = { method };
250
345
  }
251
346
  }
252
347
 
253
348
  export class RateLimitError extends WordPressAPIError {
254
349
  constructor(message: string, resetTime: number) {
255
- super(message, 429, 'rate_limit_exceeded');
256
- this.name = 'RateLimitError';
350
+ super(message, 429, "rate_limit_exceeded");
351
+ this.name = "RateLimitError";
257
352
  this.data = { resetTime };
258
353
  }
259
354
  }
260
355
 
261
356
  export class ValidationError extends WordPressAPIError {
262
357
  constructor(message: string, field?: string) {
263
- super(message, 400, 'validation_failed');
264
- this.name = 'ValidationError';
358
+ super(message, 400, "validation_failed");
359
+ this.name = "ValidationError";
265
360
  this.data = { field };
266
361
  }
267
362
  }
@@ -271,7 +366,9 @@ export function isWordPressAPIError(error: any): error is WordPressAPIError {
271
366
  return error instanceof WordPressAPIError;
272
367
  }
273
368
 
274
- export function isAuthenticationError(error: any): error is AuthenticationError {
369
+ export function isAuthenticationError(
370
+ error: any,
371
+ ): error is AuthenticationError {
275
372
  return error instanceof AuthenticationError;
276
373
  }
277
374
 
@@ -285,21 +382,21 @@ export function isValidationError(error: any): error is ValidationError {
285
382
 
286
383
  // Response Type Guards
287
384
  export function isWordPressPost(obj: any): obj is WordPressPost {
288
- return obj && typeof obj.id === 'number' && obj.type === 'post';
385
+ return obj && typeof obj.id === "number" && obj.type === "post";
289
386
  }
290
387
 
291
388
  export function isWordPressPage(obj: any): obj is WordPressPage {
292
- return obj && typeof obj.id === 'number' && obj.type === 'page';
389
+ return obj && typeof obj.id === "number" && obj.type === "page";
293
390
  }
294
391
 
295
392
  export function isWordPressMedia(obj: any): obj is WordPressMedia {
296
- return obj && typeof obj.id === 'number' && obj.media_type;
393
+ return obj && typeof obj.id === "number" && obj.media_type;
297
394
  }
298
395
 
299
396
  export function isWordPressUser(obj: any): obj is WordPressUser {
300
- return obj && typeof obj.id === 'number' && obj.username;
397
+ return obj && typeof obj.id === "number" && obj.username;
301
398
  }
302
399
 
303
400
  export function isWordPressComment(obj: any): obj is WordPressComment {
304
- return obj && typeof obj.id === 'number' && typeof obj.post === 'number';
401
+ return obj && typeof obj.id === "number" && typeof obj.post === "number";
305
402
  }
@@ -1,17 +1,17 @@
1
1
  /**
2
2
  * Type Exports
3
- *
3
+ *
4
4
  * Central export point for all TypeScript types
5
5
  */
6
6
 
7
7
  // WordPress API Types
8
- export * from './wordpress.js';
8
+ export * from "./wordpress.js";
9
9
 
10
10
  // MCP Types
11
- export * from './mcp.js';
11
+ export * from "./mcp.js";
12
12
 
13
13
  // Client Types
14
- export * from './client.js';
14
+ export * from "./client.js";
15
15
 
16
16
  // Common Utility Types
17
17
  export type Optional<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
@@ -74,16 +74,16 @@ export interface DatabaseConfig {
74
74
  }
75
75
 
76
76
  export interface LoggingConfig {
77
- level: 'debug' | 'info' | 'warn' | 'error';
77
+ level: "debug" | "info" | "warn" | "error";
78
78
  file?: string;
79
79
  console?: boolean;
80
- format?: 'json' | 'text';
80
+ format?: "json" | "text";
81
81
  }
82
82
 
83
83
  export interface ServerConfig {
84
84
  host: string;
85
85
  port: number;
86
- env: 'development' | 'production' | 'test';
86
+ env: "development" | "production" | "test";
87
87
  debug: boolean;
88
88
  logging: LoggingConfig;
89
89
  }
@@ -104,7 +104,16 @@ export interface Environment {
104
104
 
105
105
  // Validation Schema Types
106
106
  export interface ValidationRule {
107
- type: 'required' | 'string' | 'number' | 'boolean' | 'email' | 'url' | 'enum' | 'array' | 'object';
107
+ type:
108
+ | "required"
109
+ | "string"
110
+ | "number"
111
+ | "boolean"
112
+ | "email"
113
+ | "url"
114
+ | "enum"
115
+ | "array"
116
+ | "object";
108
117
  message?: string;
109
118
  min?: number;
110
119
  max?: number;
@@ -127,7 +136,7 @@ export interface CacheEntry<T> {
127
136
  export interface CacheOptions {
128
137
  ttl?: number; // time to live in milliseconds
129
138
  maxSize?: number;
130
- strategy?: 'lru' | 'fifo' | 'ttl';
139
+ strategy?: "lru" | "fifo" | "ttl";
131
140
  }
132
141
 
133
142
  // Event Types
@@ -149,13 +158,16 @@ export interface PerformanceMetric {
149
158
 
150
159
  // Health Check Types
151
160
  export interface HealthStatus {
152
- status: 'healthy' | 'degraded' | 'unhealthy';
161
+ status: "healthy" | "degraded" | "unhealthy";
153
162
  timestamp: number;
154
- checks: Record<string, {
155
- status: 'pass' | 'fail' | 'warn';
156
- message?: string;
157
- duration?: number;
158
- }>;
163
+ checks: Record<
164
+ string,
165
+ {
166
+ status: "pass" | "fail" | "warn";
167
+ message?: string;
168
+ duration?: number;
169
+ }
170
+ >;
159
171
  uptime: number;
160
172
  version: string;
161
173
  }
@@ -163,7 +175,7 @@ export interface HealthStatus {
163
175
  // Debugging Types
164
176
  export interface DebugInfo {
165
177
  timestamp: number;
166
- level: 'debug' | 'info' | 'warn' | 'error';
178
+ level: "debug" | "info" | "warn" | "error";
167
179
  message: string;
168
180
  context?: Record<string, any>;
169
181
  stack?: string;
@@ -187,21 +199,31 @@ export type Awaited<T> = T extends Promise<infer U> ? U : T;
187
199
  // Brand types for better type safety
188
200
  export type Brand<T, B> = T & { __brand: B };
189
201
 
190
- export type WordPressID = Brand<number, 'WordPressID'>;
191
- export type UserID = Brand<number, 'UserID'>;
192
- export type PostID = Brand<number, 'PostID'>;
193
- export type MediaID = Brand<number, 'MediaID'>;
194
- export type CommentID = Brand<number, 'CommentID'>;
195
- export type CategoryID = Brand<number, 'CategoryID'>;
196
- export type TagID = Brand<number, 'TagID'>;
202
+ export type WordPressID = Brand<number, "WordPressID">;
203
+ export type UserID = Brand<number, "UserID">;
204
+ export type PostID = Brand<number, "PostID">;
205
+ export type MediaID = Brand<number, "MediaID">;
206
+ export type CommentID = Brand<number, "CommentID">;
207
+ export type CategoryID = Brand<number, "CategoryID">;
208
+ export type TagID = Brand<number, "TagID">;
197
209
 
198
210
  // Function Types
199
- export type AsyncFunction<TArgs extends any[] = any[], TReturn = any> = (...args: TArgs) => Promise<TReturn>;
200
- export type SyncFunction<TArgs extends any[] = any[], TReturn = any> = (...args: TArgs) => TReturn;
201
- export type AnyFunction<TArgs extends any[] = any[], TReturn = any> = SyncFunction<TArgs, TReturn> | AsyncFunction<TArgs, TReturn>;
211
+ export type AsyncFunction<TArgs extends any[] = any[], TReturn = any> = (
212
+ ...args: TArgs
213
+ ) => Promise<TReturn>;
214
+ export type SyncFunction<TArgs extends any[] = any[], TReturn = any> = (
215
+ ...args: TArgs
216
+ ) => TReturn;
217
+ export type AnyFunction<TArgs extends any[] = any[], TReturn = any> =
218
+ | SyncFunction<TArgs, TReturn>
219
+ | AsyncFunction<TArgs, TReturn>;
202
220
 
203
221
  // Conditional Types
204
222
  export type If<C extends boolean, T, F> = C extends true ? T : F;
205
223
  export type IsEqual<T, U> = T extends U ? (U extends T ? true : false) : false;
206
224
  export type IsArray<T> = T extends any[] ? true : false;
207
- export type IsObject<T> = T extends object ? (T extends any[] ? false : true) : false;
225
+ export type IsObject<T> = T extends object
226
+ ? T extends any[]
227
+ ? false
228
+ : true
229
+ : false;
package/src/types/mcp.ts CHANGED
@@ -6,19 +6,19 @@
6
6
 
7
7
  import type {
8
8
  CallToolRequestSchema,
9
- ListToolsRequestSchema
10
- } from '@modelcontextprotocol/sdk/types.js';
9
+ ListToolsRequestSchema,
10
+ } from "@modelcontextprotocol/sdk/types.js";
11
11
 
12
12
  // MCP Tool Schema Types
13
13
  export interface MCPToolSchema {
14
- type: 'object';
14
+ type: "object";
15
15
  properties: Record<string, JSONSchemaProperty>;
16
16
  required?: string[];
17
17
  additionalProperties?: boolean;
18
18
  }
19
19
 
20
20
  export interface JSONSchemaProperty {
21
- type: 'string' | 'number' | 'boolean' | 'array' | 'object';
21
+ type: "string" | "number" | "boolean" | "array" | "object";
22
22
  description?: string;
23
23
  enum?: (string | number)[];
24
24
  items?: JSONSchemaProperty;
@@ -41,18 +41,18 @@ export interface MCPTool {
41
41
 
42
42
  // MCP Content Types
43
43
  export interface MCPTextContent {
44
- type: 'text';
44
+ type: "text";
45
45
  text: string;
46
46
  }
47
47
 
48
48
  export interface MCPImageContent {
49
- type: 'image';
49
+ type: "image";
50
50
  data: string;
51
51
  mimeType: string;
52
52
  }
53
53
 
54
54
  export interface MCPResourceContent {
55
- type: 'resource';
55
+ type: "resource";
56
56
  resource: {
57
57
  uri: string;
58
58
  mimeType?: string;
@@ -94,14 +94,14 @@ export type MCPCallToolRequest = typeof CallToolRequestSchema;
94
94
 
95
95
  // Tool Categories for Organization
96
96
  export type MCPToolCategory =
97
- | 'authentication'
98
- | 'posts'
99
- | 'pages'
100
- | 'media'
101
- | 'users'
102
- | 'comments'
103
- | 'taxonomies'
104
- | 'site';
97
+ | "authentication"
98
+ | "posts"
99
+ | "pages"
100
+ | "media"
101
+ | "users"
102
+ | "comments"
103
+ | "taxonomies"
104
+ | "site";
105
105
 
106
106
  // Enhanced Tool Definition with Category
107
107
  export interface CategorizedMCPTool extends MCPTool {