mcp-wordpress 1.1.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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +568 -0
  3. package/bin/mcp-wordpress.js +12 -0
  4. package/bin/setup.js +302 -0
  5. package/bin/status.js +359 -0
  6. package/dist/client/WordPressClient.d.ts +81 -0
  7. package/dist/client/WordPressClient.d.ts.map +1 -0
  8. package/dist/client/WordPressClient.js +354 -0
  9. package/dist/client/WordPressClient.js.map +1 -0
  10. package/dist/client/api.d.ts +140 -0
  11. package/dist/client/api.d.ts.map +1 -0
  12. package/dist/client/api.js +727 -0
  13. package/dist/client/api.js.map +1 -0
  14. package/dist/client/auth.d.ts +121 -0
  15. package/dist/client/auth.d.ts.map +1 -0
  16. package/dist/client/auth.js +430 -0
  17. package/dist/client/auth.js.map +1 -0
  18. package/dist/client/managers/AuthenticationManager.d.ts +39 -0
  19. package/dist/client/managers/AuthenticationManager.d.ts.map +1 -0
  20. package/dist/client/managers/AuthenticationManager.js +159 -0
  21. package/dist/client/managers/AuthenticationManager.js.map +1 -0
  22. package/dist/client/managers/BaseManager.d.ts +22 -0
  23. package/dist/client/managers/BaseManager.d.ts.map +1 -0
  24. package/dist/client/managers/BaseManager.js +47 -0
  25. package/dist/client/managers/BaseManager.js.map +1 -0
  26. package/dist/client/managers/RequestManager.d.ts +45 -0
  27. package/dist/client/managers/RequestManager.d.ts.map +1 -0
  28. package/dist/client/managers/RequestManager.js +161 -0
  29. package/dist/client/managers/RequestManager.js.map +1 -0
  30. package/dist/client/managers/index.d.ts +8 -0
  31. package/dist/client/managers/index.d.ts.map +1 -0
  32. package/dist/client/managers/index.js +8 -0
  33. package/dist/client/managers/index.js.map +1 -0
  34. package/dist/index.d.ts +19 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +264 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/server.d.ts +7 -0
  39. package/dist/server.d.ts.map +1 -0
  40. package/dist/server.js +7 -0
  41. package/dist/server.js.map +1 -0
  42. package/dist/tools/auth.d.ts +44 -0
  43. package/dist/tools/auth.d.ts.map +1 -0
  44. package/dist/tools/auth.js +126 -0
  45. package/dist/tools/auth.js.map +1 -0
  46. package/dist/tools/base.d.ts +37 -0
  47. package/dist/tools/base.d.ts.map +1 -0
  48. package/dist/tools/base.js +60 -0
  49. package/dist/tools/base.js.map +1 -0
  50. package/dist/tools/comments.d.ts +33 -0
  51. package/dist/tools/comments.d.ts.map +1 -0
  52. package/dist/tools/comments.js +228 -0
  53. package/dist/tools/comments.js.map +1 -0
  54. package/dist/tools/index.d.ts +9 -0
  55. package/dist/tools/index.d.ts.map +1 -0
  56. package/dist/tools/index.js +9 -0
  57. package/dist/tools/index.js.map +1 -0
  58. package/dist/tools/media.d.ts +29 -0
  59. package/dist/tools/media.d.ts.map +1 -0
  60. package/dist/tools/media.js +208 -0
  61. package/dist/tools/media.js.map +1 -0
  62. package/dist/tools/pages.d.ts +30 -0
  63. package/dist/tools/pages.d.ts.map +1 -0
  64. package/dist/tools/pages.js +211 -0
  65. package/dist/tools/pages.js.map +1 -0
  66. package/dist/tools/posts.d.ts +30 -0
  67. package/dist/tools/posts.d.ts.map +1 -0
  68. package/dist/tools/posts.js +240 -0
  69. package/dist/tools/posts.js.map +1 -0
  70. package/dist/tools/site.d.ts +31 -0
  71. package/dist/tools/site.d.ts.map +1 -0
  72. package/dist/tools/site.js +192 -0
  73. package/dist/tools/site.js.map +1 -0
  74. package/dist/tools/taxonomies.d.ts +37 -0
  75. package/dist/tools/taxonomies.d.ts.map +1 -0
  76. package/dist/tools/taxonomies.js +280 -0
  77. package/dist/tools/taxonomies.js.map +1 -0
  78. package/dist/tools/users.d.ts +28 -0
  79. package/dist/tools/users.d.ts.map +1 -0
  80. package/dist/tools/users.js +201 -0
  81. package/dist/tools/users.js.map +1 -0
  82. package/dist/types/client.d.ts +215 -0
  83. package/dist/types/client.d.ts.map +1 -0
  84. package/dist/types/client.js +72 -0
  85. package/dist/types/client.js.map +1 -0
  86. package/dist/types/index.d.ts +157 -0
  87. package/dist/types/index.d.ts.map +1 -0
  88. package/dist/types/index.js +12 -0
  89. package/dist/types/index.js.map +1 -0
  90. package/dist/types/mcp.d.ts +178 -0
  91. package/dist/types/mcp.d.ts.map +1 -0
  92. package/dist/types/mcp.js +7 -0
  93. package/dist/types/mcp.js.map +1 -0
  94. package/dist/types/wordpress.d.ts +443 -0
  95. package/dist/types/wordpress.d.ts.map +1 -0
  96. package/dist/types/wordpress.js +7 -0
  97. package/dist/types/wordpress.js.map +1 -0
  98. package/dist/utils/debug.d.ts +63 -0
  99. package/dist/utils/debug.d.ts.map +1 -0
  100. package/dist/utils/debug.js +195 -0
  101. package/dist/utils/debug.js.map +1 -0
  102. package/dist/utils/error.d.ts +19 -0
  103. package/dist/utils/error.d.ts.map +1 -0
  104. package/dist/utils/error.js +71 -0
  105. package/dist/utils/error.js.map +1 -0
  106. package/dist/utils/toolWrapper.d.ts +36 -0
  107. package/dist/utils/toolWrapper.d.ts.map +1 -0
  108. package/dist/utils/toolWrapper.js +90 -0
  109. package/dist/utils/toolWrapper.js.map +1 -0
  110. package/package.json +115 -0
  111. package/src/client/api.ts +1043 -0
  112. package/src/client/auth.ts +527 -0
  113. package/src/client/managers/AuthenticationManager.ts +190 -0
  114. package/src/client/managers/BaseManager.ts +73 -0
  115. package/src/client/managers/RequestManager.ts +214 -0
  116. package/src/client/managers/index.ts +8 -0
  117. package/src/index.ts +337 -0
  118. package/src/server.ts +7 -0
  119. package/src/tools/auth.ts +153 -0
  120. package/src/tools/comments.ts +263 -0
  121. package/src/tools/index.ts +8 -0
  122. package/src/tools/media.ts +240 -0
  123. package/src/tools/pages.ts +246 -0
  124. package/src/tools/posts.ts +277 -0
  125. package/src/tools/site.ts +227 -0
  126. package/src/tools/taxonomies.ts +322 -0
  127. package/src/tools/users.ts +233 -0
  128. package/src/types/client.ts +304 -0
  129. package/src/types/index.ts +207 -0
  130. package/src/types/mcp.ts +247 -0
  131. package/src/types/wordpress.ts +491 -0
  132. package/src/utils/debug.ts +258 -0
  133. package/src/utils/error.ts +88 -0
  134. package/src/utils/toolWrapper.ts +105 -0
@@ -0,0 +1,201 @@
1
+ import { getErrorMessage } from "../utils/error.js";
2
+ /**
3
+ * Provides tools for managing users on a WordPress site.
4
+ * This class encapsulates tool definitions and their corresponding handlers.
5
+ */
6
+ export class UserTools {
7
+ /**
8
+ * Retrieves the list of user management tools.
9
+ * @returns An array of MCPTool definitions.
10
+ */
11
+ getTools() {
12
+ return [
13
+ {
14
+ name: "wp_list_users",
15
+ description: "Lists users from a WordPress site, with filters.",
16
+ parameters: [
17
+ {
18
+ name: "search",
19
+ type: "string",
20
+ description: "Limit results to those matching a search term.",
21
+ },
22
+ {
23
+ name: "roles",
24
+ type: "array",
25
+ items: { type: "string" },
26
+ description: "Limit results to users with specific roles.",
27
+ },
28
+ ],
29
+ handler: this.handleListUsers.bind(this),
30
+ },
31
+ {
32
+ name: "wp_get_user",
33
+ description: "Retrieves a single user by their ID.",
34
+ parameters: [
35
+ {
36
+ name: "id",
37
+ type: "number",
38
+ required: true,
39
+ description: "The unique identifier for the user.",
40
+ },
41
+ ],
42
+ handler: this.handleGetUser.bind(this),
43
+ },
44
+ {
45
+ name: "wp_get_current_user",
46
+ description: "Retrieves the currently authenticated user.",
47
+ parameters: [],
48
+ handler: this.handleGetCurrentUser.bind(this),
49
+ },
50
+ {
51
+ name: "wp_create_user",
52
+ description: "Creates a new user.",
53
+ parameters: [
54
+ {
55
+ name: "username",
56
+ type: "string",
57
+ required: true,
58
+ description: "The username for the new user.",
59
+ },
60
+ {
61
+ name: "email",
62
+ type: "string",
63
+ required: true,
64
+ description: "The email address for the new user.",
65
+ },
66
+ {
67
+ name: "password",
68
+ type: "string",
69
+ required: true,
70
+ description: "The password for the new user.",
71
+ },
72
+ {
73
+ name: "roles",
74
+ type: "array",
75
+ items: { type: "string" },
76
+ description: "An array of roles to assign to the user.",
77
+ },
78
+ ],
79
+ handler: this.handleCreateUser.bind(this),
80
+ },
81
+ {
82
+ name: "wp_update_user",
83
+ description: "Updates an existing user.",
84
+ parameters: [
85
+ {
86
+ name: "id",
87
+ type: "number",
88
+ required: true,
89
+ description: "The ID of the user to update.",
90
+ },
91
+ {
92
+ name: "email",
93
+ type: "string",
94
+ description: "The new email address for the user.",
95
+ },
96
+ {
97
+ name: "name",
98
+ type: "string",
99
+ description: "The new display name for the user.",
100
+ },
101
+ ],
102
+ handler: this.handleUpdateUser.bind(this),
103
+ },
104
+ {
105
+ name: "wp_delete_user",
106
+ description: "Deletes a user.",
107
+ parameters: [
108
+ {
109
+ name: "id",
110
+ type: "number",
111
+ required: true,
112
+ description: "The ID of the user to delete.",
113
+ },
114
+ {
115
+ name: "reassign",
116
+ type: "number",
117
+ description: "The ID of a user to reassign the deleted user's content to.",
118
+ },
119
+ ],
120
+ handler: this.handleDeleteUser.bind(this),
121
+ },
122
+ ];
123
+ }
124
+ async handleListUsers(client, params) {
125
+ try {
126
+ const users = await client.getUsers(params);
127
+ if (users.length === 0) {
128
+ return "No users found matching the criteria.";
129
+ }
130
+ const content = `Found ${users.length} users:\n\n` +
131
+ users
132
+ .map((u) => `- ID ${u.id}: **${u.name}** (@${u.slug}) - ${u.email}\n Roles: ${u.roles?.join(", ") || "N/A"}`)
133
+ .join("\n");
134
+ return content;
135
+ }
136
+ catch (error) {
137
+ throw new Error(`Failed to list users: ${getErrorMessage(error)}`);
138
+ }
139
+ }
140
+ async handleGetUser(client, params) {
141
+ try {
142
+ const user = await client.getUser(params.id);
143
+ const content = `**User Details (ID: ${user.id})**\n\n` +
144
+ `- **Name:** ${user.name}\n` +
145
+ `- **Username:** ${user.slug}\n` +
146
+ `- **Email:** ${user.email}\n` +
147
+ `- **Roles:** ${user.roles?.join(", ") || "N/A"}`;
148
+ return content;
149
+ }
150
+ catch (error) {
151
+ throw new Error(`Failed to get user: ${getErrorMessage(error)}`);
152
+ }
153
+ }
154
+ async handleGetCurrentUser(client, params) {
155
+ try {
156
+ const user = await client.getCurrentUser();
157
+ const content = `**Current User Details (ID: ${user.id})**\n\n` +
158
+ `- **Name:** ${user.name}\n` +
159
+ `- **Username:** ${user.slug}\n` +
160
+ `- **Email:** ${user.email}\n` +
161
+ `- **Roles:** ${user.roles?.join(", ") || "N/A"}`;
162
+ return content;
163
+ }
164
+ catch (error) {
165
+ throw new Error(`Failed to get current user: ${getErrorMessage(error)}`);
166
+ }
167
+ }
168
+ async handleCreateUser(client, params) {
169
+ try {
170
+ const user = await client.createUser(params);
171
+ return `✅ User "${user.name}" created successfully with ID: ${user.id}.`;
172
+ }
173
+ catch (error) {
174
+ throw new Error(`Failed to create user: ${getErrorMessage(error)}`);
175
+ }
176
+ }
177
+ async handleUpdateUser(client, params) {
178
+ try {
179
+ const user = await client.updateUser(params);
180
+ return `✅ User ${user.id} updated successfully.`;
181
+ }
182
+ catch (error) {
183
+ throw new Error(`Failed to update user: ${getErrorMessage(error)}`);
184
+ }
185
+ }
186
+ async handleDeleteUser(client, params) {
187
+ try {
188
+ await client.deleteUser(params.id, params.reassign);
189
+ let content = `✅ User ${params.id} has been deleted.`;
190
+ if (params.reassign) {
191
+ content += ` Their content has been reassigned to user ID ${params.reassign}.`;
192
+ }
193
+ return content;
194
+ }
195
+ catch (error) {
196
+ throw new Error(`Failed to delete user: ${getErrorMessage(error)}`);
197
+ }
198
+ }
199
+ }
200
+ export default UserTools;
201
+ //# sourceMappingURL=users.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/tools/users.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,215 @@
1
+ /**
2
+ * WordPress API Client Types
3
+ *
4
+ * TypeScript definitions for the WordPress REST API client
5
+ */
6
+ import type { WordPressPost, WordPressPage, WordPressMedia, WordPressUser, WordPressComment, WordPressCategory, WordPressTag, WordPressSiteSettings, WordPressApplicationPassword, PostQueryParams, MediaQueryParams, UserQueryParams, CommentQueryParams, CreatePostRequest, UpdatePostRequest, CreatePageRequest, UpdatePageRequest, CreateUserRequest, UpdateUserRequest, CreateCommentRequest, UpdateCommentRequest, CreateCategoryRequest, UpdateCategoryRequest, CreateTagRequest, UpdateTagRequest, UploadMediaRequest, UpdateMediaRequest } from './wordpress.js';
7
+ export type AuthMethod = 'app-password' | 'jwt' | 'basic' | 'api-key' | 'cookie';
8
+ export interface AuthConfig {
9
+ method: AuthMethod;
10
+ username?: string;
11
+ password?: string;
12
+ appPassword?: string;
13
+ apiKey?: string;
14
+ secret?: string;
15
+ nonce?: string;
16
+ token?: string;
17
+ clientId?: string;
18
+ }
19
+ export interface WordPressClientConfig {
20
+ baseUrl: string;
21
+ auth: AuthConfig;
22
+ timeout?: number;
23
+ maxRetries?: number;
24
+ userAgent?: string;
25
+ headers?: Record<string, string>;
26
+ rateLimit?: {
27
+ requestsPerMinute: number;
28
+ burstLimit: number;
29
+ };
30
+ }
31
+ export type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
32
+ export interface RequestOptions {
33
+ headers?: Record<string, string>;
34
+ timeout?: number;
35
+ retries?: number;
36
+ signal?: AbortSignal;
37
+ }
38
+ export interface APIResponse<T = any> {
39
+ data: T;
40
+ status: number;
41
+ statusText: string;
42
+ headers: Record<string, string>;
43
+ }
44
+ export interface RateLimit {
45
+ limit: number;
46
+ remaining: number;
47
+ reset: number;
48
+ window: number;
49
+ }
50
+ export interface ClientStats {
51
+ totalRequests: number;
52
+ successfulRequests: number;
53
+ failedRequests: number;
54
+ averageResponseTime: number;
55
+ lastRequestTime?: number;
56
+ rateLimitHits: number;
57
+ authFailures: number;
58
+ }
59
+ export interface IWordPressClient {
60
+ readonly config: WordPressClientConfig;
61
+ readonly isAuthenticated: boolean;
62
+ readonly stats: ClientStats;
63
+ initialize(): Promise<void>;
64
+ authenticate(): Promise<boolean>;
65
+ disconnect(): Promise<void>;
66
+ request<T = any>(method: HTTPMethod, endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
67
+ get<T = any>(endpoint: string, options?: RequestOptions): Promise<T>;
68
+ post<T = any>(endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
69
+ put<T = any>(endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
70
+ patch<T = any>(endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
71
+ delete<T = any>(endpoint: string, options?: RequestOptions): Promise<T>;
72
+ getPosts(params?: PostQueryParams): Promise<WordPressPost[]>;
73
+ getPost(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressPost>;
74
+ createPost(data: CreatePostRequest): Promise<WordPressPost>;
75
+ updatePost(data: UpdatePostRequest): Promise<WordPressPost>;
76
+ deletePost(id: number, force?: boolean): Promise<{
77
+ deleted: boolean;
78
+ previous?: WordPressPost;
79
+ }>;
80
+ getPostRevisions(id: number): Promise<WordPressPost[]>;
81
+ getPages(params?: PostQueryParams): Promise<WordPressPage[]>;
82
+ getPage(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressPage>;
83
+ createPage(data: CreatePageRequest): Promise<WordPressPage>;
84
+ updatePage(data: UpdatePageRequest): Promise<WordPressPage>;
85
+ deletePage(id: number, force?: boolean): Promise<{
86
+ deleted: boolean;
87
+ previous?: WordPressPage;
88
+ }>;
89
+ getPageRevisions(id: number): Promise<WordPressPage[]>;
90
+ getMedia(params?: MediaQueryParams): Promise<WordPressMedia[]>;
91
+ getMediaItem(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressMedia>;
92
+ uploadMedia(data: UploadMediaRequest): Promise<WordPressMedia>;
93
+ uploadFile(fileData: Buffer, filename: string, mimeType: string, meta?: Partial<UploadMediaRequest>, options?: RequestOptions): Promise<WordPressMedia>;
94
+ updateMedia(data: UpdateMediaRequest): Promise<WordPressMedia>;
95
+ deleteMedia(id: number, force?: boolean): Promise<{
96
+ deleted: boolean;
97
+ previous?: WordPressMedia;
98
+ }>;
99
+ getUsers(params?: UserQueryParams): Promise<WordPressUser[]>;
100
+ getUser(id: number | 'me', context?: 'view' | 'embed' | 'edit'): Promise<WordPressUser>;
101
+ createUser(data: CreateUserRequest): Promise<WordPressUser>;
102
+ updateUser(data: UpdateUserRequest): Promise<WordPressUser>;
103
+ deleteUser(id: number, reassign?: number): Promise<{
104
+ deleted: boolean;
105
+ previous?: WordPressUser;
106
+ }>;
107
+ getCurrentUser(): Promise<WordPressUser>;
108
+ getComments(params?: CommentQueryParams): Promise<WordPressComment[]>;
109
+ getComment(id: number, context?: 'view' | 'embed' | 'edit'): Promise<WordPressComment>;
110
+ createComment(data: CreateCommentRequest): Promise<WordPressComment>;
111
+ updateComment(data: UpdateCommentRequest): Promise<WordPressComment>;
112
+ deleteComment(id: number, force?: boolean): Promise<{
113
+ deleted: boolean;
114
+ previous?: WordPressComment;
115
+ }>;
116
+ approveComment(id: number): Promise<WordPressComment>;
117
+ rejectComment(id: number): Promise<WordPressComment>;
118
+ spamComment(id: number): Promise<WordPressComment>;
119
+ getCategories(params?: {
120
+ search?: string;
121
+ exclude?: number[];
122
+ include?: number[];
123
+ order?: 'asc' | 'desc';
124
+ orderby?: string;
125
+ hide_empty?: boolean;
126
+ parent?: number;
127
+ post?: number;
128
+ slug?: string;
129
+ }): Promise<WordPressCategory[]>;
130
+ getCategory(id: number): Promise<WordPressCategory>;
131
+ createCategory(data: CreateCategoryRequest): Promise<WordPressCategory>;
132
+ updateCategory(data: UpdateCategoryRequest): Promise<WordPressCategory>;
133
+ deleteCategory(id: number, force?: boolean): Promise<{
134
+ deleted: boolean;
135
+ previous?: WordPressCategory;
136
+ }>;
137
+ getTags(params?: {
138
+ search?: string;
139
+ exclude?: number[];
140
+ include?: number[];
141
+ order?: 'asc' | 'desc';
142
+ orderby?: string;
143
+ hide_empty?: boolean;
144
+ post?: number;
145
+ slug?: string;
146
+ }): Promise<WordPressTag[]>;
147
+ getTag(id: number): Promise<WordPressTag>;
148
+ createTag(data: CreateTagRequest): Promise<WordPressTag>;
149
+ updateTag(data: UpdateTagRequest): Promise<WordPressTag>;
150
+ deleteTag(id: number, force?: boolean): Promise<{
151
+ deleted: boolean;
152
+ previous?: WordPressTag;
153
+ }>;
154
+ getSiteSettings(): Promise<WordPressSiteSettings>;
155
+ updateSiteSettings(settings: Partial<WordPressSiteSettings>): Promise<WordPressSiteSettings>;
156
+ getSiteInfo(): Promise<{
157
+ name: string;
158
+ description: string;
159
+ url: string;
160
+ home: string;
161
+ gmt_offset: number;
162
+ timezone_string: string;
163
+ namespaces: string[];
164
+ authentication: Record<string, any>;
165
+ routes: Record<string, any>;
166
+ }>;
167
+ getApplicationPasswords(userId?: number | 'me'): Promise<WordPressApplicationPassword[]>;
168
+ createApplicationPassword(userId: number | 'me', name: string, appId?: string): Promise<WordPressApplicationPassword>;
169
+ deleteApplicationPassword(userId: number | 'me', uuid: string): Promise<{
170
+ deleted: boolean;
171
+ }>;
172
+ search(query: string, types?: string[], subtype?: string): Promise<Array<{
173
+ id: number;
174
+ title: string;
175
+ url: string;
176
+ type: string;
177
+ subtype: string;
178
+ }>>;
179
+ ping(): Promise<boolean>;
180
+ getServerInfo(): Promise<Record<string, any>>;
181
+ validateEndpoint(endpoint: string): boolean;
182
+ buildUrl(endpoint: string, params?: Record<string, any>): string;
183
+ }
184
+ export interface IAuthProvider {
185
+ readonly method: AuthMethod;
186
+ authenticate(client: IWordPressClient): Promise<boolean>;
187
+ addAuthHeaders(headers: Record<string, string>): void;
188
+ refreshAuth?(): Promise<boolean>;
189
+ validateAuth?(): Promise<boolean>;
190
+ }
191
+ export declare class WordPressAPIError extends Error {
192
+ readonly statusCode?: number;
193
+ readonly code?: string;
194
+ data?: any;
195
+ constructor(message: string, statusCode?: number, code?: string, data?: any);
196
+ }
197
+ export declare class AuthenticationError extends WordPressAPIError {
198
+ constructor(message: string, method: AuthMethod);
199
+ }
200
+ export declare class RateLimitError extends WordPressAPIError {
201
+ constructor(message: string, resetTime: number);
202
+ }
203
+ export declare class ValidationError extends WordPressAPIError {
204
+ constructor(message: string, field?: string);
205
+ }
206
+ export declare function isWordPressAPIError(error: any): error is WordPressAPIError;
207
+ export declare function isAuthenticationError(error: any): error is AuthenticationError;
208
+ export declare function isRateLimitError(error: any): error is RateLimitError;
209
+ export declare function isValidationError(error: any): error is ValidationError;
210
+ export declare function isWordPressPost(obj: any): obj is WordPressPost;
211
+ export declare function isWordPressPage(obj: any): obj is WordPressPage;
212
+ export declare function isWordPressMedia(obj: any): obj is WordPressMedia;
213
+ export declare function isWordPressUser(obj: any): obj is WordPressUser;
214
+ export declare function isWordPressComment(obj: any): obj is WordPressComment;
215
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * WordPress API Client Types
3
+ *
4
+ * TypeScript definitions for the WordPress REST API client
5
+ */
6
+ // Error Types
7
+ export class WordPressAPIError extends Error {
8
+ statusCode;
9
+ code;
10
+ data;
11
+ constructor(message, statusCode, code, data) {
12
+ super(message);
13
+ this.name = 'WordPressAPIError';
14
+ if (statusCode !== undefined)
15
+ this.statusCode = statusCode;
16
+ if (code !== undefined)
17
+ this.code = code;
18
+ if (data !== undefined)
19
+ this.data = data;
20
+ }
21
+ }
22
+ export class AuthenticationError extends WordPressAPIError {
23
+ constructor(message, method) {
24
+ super(message, 401, 'authentication_failed');
25
+ this.name = 'AuthenticationError';
26
+ this.data = { method };
27
+ }
28
+ }
29
+ export class RateLimitError extends WordPressAPIError {
30
+ constructor(message, resetTime) {
31
+ super(message, 429, 'rate_limit_exceeded');
32
+ this.name = 'RateLimitError';
33
+ this.data = { resetTime };
34
+ }
35
+ }
36
+ export class ValidationError extends WordPressAPIError {
37
+ constructor(message, field) {
38
+ super(message, 400, 'validation_failed');
39
+ this.name = 'ValidationError';
40
+ this.data = { field };
41
+ }
42
+ }
43
+ // Type Guards
44
+ export function isWordPressAPIError(error) {
45
+ return error instanceof WordPressAPIError;
46
+ }
47
+ export function isAuthenticationError(error) {
48
+ return error instanceof AuthenticationError;
49
+ }
50
+ export function isRateLimitError(error) {
51
+ return error instanceof RateLimitError;
52
+ }
53
+ export function isValidationError(error) {
54
+ return error instanceof ValidationError;
55
+ }
56
+ // Response Type Guards
57
+ export function isWordPressPost(obj) {
58
+ return obj && typeof obj.id === 'number' && obj.type === 'post';
59
+ }
60
+ export function isWordPressPage(obj) {
61
+ return obj && typeof obj.id === 'number' && obj.type === 'page';
62
+ }
63
+ export function isWordPressMedia(obj) {
64
+ return obj && typeof obj.id === 'number' && obj.media_type;
65
+ }
66
+ export function isWordPressUser(obj) {
67
+ return obj && typeof obj.id === 'number' && obj.username;
68
+ }
69
+ export function isWordPressComment(obj) {
70
+ return obj && typeof obj.id === 'number' && typeof obj.post === 'number';
71
+ }
72
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/types/client.ts"],"names":[],"mappings":"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"}