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.
- package/LICENSE +21 -0
- package/README.md +568 -0
- package/bin/mcp-wordpress.js +12 -0
- package/bin/setup.js +302 -0
- package/bin/status.js +359 -0
- package/dist/client/WordPressClient.d.ts +81 -0
- package/dist/client/WordPressClient.d.ts.map +1 -0
- package/dist/client/WordPressClient.js +354 -0
- package/dist/client/WordPressClient.js.map +1 -0
- package/dist/client/api.d.ts +140 -0
- package/dist/client/api.d.ts.map +1 -0
- package/dist/client/api.js +727 -0
- package/dist/client/api.js.map +1 -0
- package/dist/client/auth.d.ts +121 -0
- package/dist/client/auth.d.ts.map +1 -0
- package/dist/client/auth.js +430 -0
- package/dist/client/auth.js.map +1 -0
- package/dist/client/managers/AuthenticationManager.d.ts +39 -0
- package/dist/client/managers/AuthenticationManager.d.ts.map +1 -0
- package/dist/client/managers/AuthenticationManager.js +159 -0
- package/dist/client/managers/AuthenticationManager.js.map +1 -0
- package/dist/client/managers/BaseManager.d.ts +22 -0
- package/dist/client/managers/BaseManager.d.ts.map +1 -0
- package/dist/client/managers/BaseManager.js +47 -0
- package/dist/client/managers/BaseManager.js.map +1 -0
- package/dist/client/managers/RequestManager.d.ts +45 -0
- package/dist/client/managers/RequestManager.d.ts.map +1 -0
- package/dist/client/managers/RequestManager.js +161 -0
- package/dist/client/managers/RequestManager.js.map +1 -0
- package/dist/client/managers/index.d.ts +8 -0
- package/dist/client/managers/index.d.ts.map +1 -0
- package/dist/client/managers/index.js +8 -0
- package/dist/client/managers/index.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +264 -0
- package/dist/index.js.map +1 -0
- package/dist/server.d.ts +7 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +7 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/auth.d.ts +44 -0
- package/dist/tools/auth.d.ts.map +1 -0
- package/dist/tools/auth.js +126 -0
- package/dist/tools/auth.js.map +1 -0
- package/dist/tools/base.d.ts +37 -0
- package/dist/tools/base.d.ts.map +1 -0
- package/dist/tools/base.js +60 -0
- package/dist/tools/base.js.map +1 -0
- package/dist/tools/comments.d.ts +33 -0
- package/dist/tools/comments.d.ts.map +1 -0
- package/dist/tools/comments.js +228 -0
- package/dist/tools/comments.js.map +1 -0
- package/dist/tools/index.d.ts +9 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +9 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/media.d.ts +29 -0
- package/dist/tools/media.d.ts.map +1 -0
- package/dist/tools/media.js +208 -0
- package/dist/tools/media.js.map +1 -0
- package/dist/tools/pages.d.ts +30 -0
- package/dist/tools/pages.d.ts.map +1 -0
- package/dist/tools/pages.js +211 -0
- package/dist/tools/pages.js.map +1 -0
- package/dist/tools/posts.d.ts +30 -0
- package/dist/tools/posts.d.ts.map +1 -0
- package/dist/tools/posts.js +240 -0
- package/dist/tools/posts.js.map +1 -0
- package/dist/tools/site.d.ts +31 -0
- package/dist/tools/site.d.ts.map +1 -0
- package/dist/tools/site.js +192 -0
- package/dist/tools/site.js.map +1 -0
- package/dist/tools/taxonomies.d.ts +37 -0
- package/dist/tools/taxonomies.d.ts.map +1 -0
- package/dist/tools/taxonomies.js +280 -0
- package/dist/tools/taxonomies.js.map +1 -0
- package/dist/tools/users.d.ts +28 -0
- package/dist/tools/users.d.ts.map +1 -0
- package/dist/tools/users.js +201 -0
- package/dist/tools/users.js.map +1 -0
- package/dist/types/client.d.ts +215 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/client.js +72 -0
- package/dist/types/client.js.map +1 -0
- package/dist/types/index.d.ts +157 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +12 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/mcp.d.ts +178 -0
- package/dist/types/mcp.d.ts.map +1 -0
- package/dist/types/mcp.js +7 -0
- package/dist/types/mcp.js.map +1 -0
- package/dist/types/wordpress.d.ts +443 -0
- package/dist/types/wordpress.d.ts.map +1 -0
- package/dist/types/wordpress.js +7 -0
- package/dist/types/wordpress.js.map +1 -0
- package/dist/utils/debug.d.ts +63 -0
- package/dist/utils/debug.d.ts.map +1 -0
- package/dist/utils/debug.js +195 -0
- package/dist/utils/debug.js.map +1 -0
- package/dist/utils/error.d.ts +19 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +71 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/toolWrapper.d.ts +36 -0
- package/dist/utils/toolWrapper.d.ts.map +1 -0
- package/dist/utils/toolWrapper.js +90 -0
- package/dist/utils/toolWrapper.js.map +1 -0
- package/package.json +115 -0
- package/src/client/api.ts +1043 -0
- package/src/client/auth.ts +527 -0
- package/src/client/managers/AuthenticationManager.ts +190 -0
- package/src/client/managers/BaseManager.ts +73 -0
- package/src/client/managers/RequestManager.ts +214 -0
- package/src/client/managers/index.ts +8 -0
- package/src/index.ts +337 -0
- package/src/server.ts +7 -0
- package/src/tools/auth.ts +153 -0
- package/src/tools/comments.ts +263 -0
- package/src/tools/index.ts +8 -0
- package/src/tools/media.ts +240 -0
- package/src/tools/pages.ts +246 -0
- package/src/tools/posts.ts +277 -0
- package/src/tools/site.ts +227 -0
- package/src/tools/taxonomies.ts +322 -0
- package/src/tools/users.ts +233 -0
- package/src/types/client.ts +304 -0
- package/src/types/index.ts +207 -0
- package/src/types/mcp.ts +247 -0
- package/src/types/wordpress.ts +491 -0
- package/src/utils/debug.ts +258 -0
- package/src/utils/error.ts +88 -0
- package/src/utils/toolWrapper.ts +105 -0
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Authentication Manager
|
|
3
|
+
* Handles all authentication methods and token management
|
|
4
|
+
*/
|
|
5
|
+
import { AuthenticationError } from "../../types/client.js";
|
|
6
|
+
import { BaseManager } from "./BaseManager.js";
|
|
7
|
+
import { debug } from "../../utils/debug.js";
|
|
8
|
+
export class AuthenticationManager extends BaseManager {
|
|
9
|
+
jwtToken = null;
|
|
10
|
+
authenticated = false;
|
|
11
|
+
/**
|
|
12
|
+
* Get authentication from environment variables
|
|
13
|
+
*/
|
|
14
|
+
static getAuthFromEnv() {
|
|
15
|
+
const method = process.env.WORDPRESS_AUTH_METHOD || "app-password";
|
|
16
|
+
switch (method) {
|
|
17
|
+
case "app-password":
|
|
18
|
+
return {
|
|
19
|
+
method: "app-password",
|
|
20
|
+
username: process.env.WORDPRESS_USERNAME || "",
|
|
21
|
+
appPassword: process.env.WORDPRESS_APP_PASSWORD || "",
|
|
22
|
+
};
|
|
23
|
+
case "jwt":
|
|
24
|
+
return {
|
|
25
|
+
method: "jwt",
|
|
26
|
+
username: process.env.WORDPRESS_USERNAME || "",
|
|
27
|
+
password: process.env.WORDPRESS_JWT_PASSWORD || process.env.WORDPRESS_PASSWORD || "",
|
|
28
|
+
secret: process.env.WORDPRESS_JWT_SECRET || "",
|
|
29
|
+
};
|
|
30
|
+
case "basic":
|
|
31
|
+
return {
|
|
32
|
+
method: "basic",
|
|
33
|
+
username: process.env.WORDPRESS_USERNAME || "",
|
|
34
|
+
password: process.env.WORDPRESS_PASSWORD || "",
|
|
35
|
+
};
|
|
36
|
+
case "api-key":
|
|
37
|
+
return {
|
|
38
|
+
method: "api-key",
|
|
39
|
+
apiKey: process.env.WORDPRESS_API_KEY || "",
|
|
40
|
+
};
|
|
41
|
+
default:
|
|
42
|
+
throw new AuthenticationError(`Unsupported authentication method: ${method}`, method);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get authentication headers for requests
|
|
47
|
+
*/
|
|
48
|
+
async getAuthHeaders() {
|
|
49
|
+
const auth = this.config.auth;
|
|
50
|
+
switch (auth.method) {
|
|
51
|
+
case "app-password":
|
|
52
|
+
if (!auth.username || !auth.appPassword) {
|
|
53
|
+
throw new AuthenticationError("Username and app password are required", auth.method);
|
|
54
|
+
}
|
|
55
|
+
const credentials = Buffer.from(`${auth.username}:${auth.appPassword}`).toString("base64");
|
|
56
|
+
return { Authorization: `Basic ${credentials}` };
|
|
57
|
+
case "jwt":
|
|
58
|
+
if (!this.jwtToken) {
|
|
59
|
+
await this.authenticateJWT();
|
|
60
|
+
}
|
|
61
|
+
return { Authorization: `Bearer ${this.jwtToken}` };
|
|
62
|
+
case "basic":
|
|
63
|
+
if (!auth.username || !auth.password) {
|
|
64
|
+
throw new AuthenticationError("Username and password are required", auth.method);
|
|
65
|
+
}
|
|
66
|
+
const basicCredentials = Buffer.from(`${auth.username}:${auth.password}`).toString("base64");
|
|
67
|
+
return { Authorization: `Basic ${basicCredentials}` };
|
|
68
|
+
case "api-key":
|
|
69
|
+
if (!auth.apiKey) {
|
|
70
|
+
throw new AuthenticationError("API key is required", auth.method);
|
|
71
|
+
}
|
|
72
|
+
return { "X-API-Key": auth.apiKey };
|
|
73
|
+
default:
|
|
74
|
+
throw new AuthenticationError(`Unsupported authentication method: ${auth.method}`, auth.method);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Authenticate using JWT
|
|
79
|
+
*/
|
|
80
|
+
async authenticateJWT() {
|
|
81
|
+
const auth = this.config.auth;
|
|
82
|
+
if (auth.method !== "jwt" || !auth.username || !auth.password) {
|
|
83
|
+
throw new AuthenticationError("JWT authentication requires username and password", "jwt");
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
// This would need the RequestManager instance to make the request
|
|
87
|
+
// For now, we'll throw an error indicating this needs to be implemented
|
|
88
|
+
throw new AuthenticationError("JWT authentication requires RequestManager integration", "jwt");
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
this.handleError(error, "JWT authentication");
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Test authentication
|
|
96
|
+
*/
|
|
97
|
+
async testAuthentication() {
|
|
98
|
+
try {
|
|
99
|
+
const headers = await this.getAuthHeaders();
|
|
100
|
+
debug.log("Authentication headers prepared", { method: this.config.auth.method });
|
|
101
|
+
// This would need the RequestManager to actually test the connection
|
|
102
|
+
// For now, we'll return true if headers can be generated
|
|
103
|
+
this.authenticated = true;
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
catch (error) {
|
|
107
|
+
this.authenticated = false;
|
|
108
|
+
debug.log("Authentication test failed", error);
|
|
109
|
+
return false;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get authentication status
|
|
114
|
+
*/
|
|
115
|
+
isAuthenticated() {
|
|
116
|
+
return this.authenticated;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Clear authentication state
|
|
120
|
+
*/
|
|
121
|
+
clearAuthentication() {
|
|
122
|
+
this.jwtToken = null;
|
|
123
|
+
this.authenticated = false;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Validate authentication configuration
|
|
127
|
+
*/
|
|
128
|
+
validateAuthConfig() {
|
|
129
|
+
const auth = this.config.auth;
|
|
130
|
+
if (!auth.method) {
|
|
131
|
+
throw new AuthenticationError("Authentication method is required", "app-password");
|
|
132
|
+
}
|
|
133
|
+
switch (auth.method) {
|
|
134
|
+
case "app-password":
|
|
135
|
+
if (!auth.username || !auth.appPassword) {
|
|
136
|
+
throw new AuthenticationError("App password authentication requires username and appPassword", "app-password");
|
|
137
|
+
}
|
|
138
|
+
break;
|
|
139
|
+
case "jwt":
|
|
140
|
+
if (!auth.username || !auth.password || !auth.secret) {
|
|
141
|
+
throw new AuthenticationError("JWT authentication requires username, password, and secret", "jwt");
|
|
142
|
+
}
|
|
143
|
+
break;
|
|
144
|
+
case "basic":
|
|
145
|
+
if (!auth.username || !auth.password) {
|
|
146
|
+
throw new AuthenticationError("Basic authentication requires username and password", "basic");
|
|
147
|
+
}
|
|
148
|
+
break;
|
|
149
|
+
case "api-key":
|
|
150
|
+
if (!auth.apiKey) {
|
|
151
|
+
throw new AuthenticationError("API key authentication requires apiKey", "api-key");
|
|
152
|
+
}
|
|
153
|
+
break;
|
|
154
|
+
default:
|
|
155
|
+
throw new AuthenticationError(`Unsupported authentication method: ${auth.method}`, auth.method);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=AuthenticationManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AuthenticationManager.js","sourceRoot":"","sources":["../../../src/client/managers/AuthenticationManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE7C,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAC5C,QAAQ,GAAkB,IAAI,CAAC;IAC/B,aAAa,GAAY,KAAK,CAAC;IAEvC;;OAEG;IACH,MAAM,CAAC,cAAc;QACnB,MAAM,MAAM,GACT,OAAO,CAAC,GAAG,CAAC,qBAAoC,IAAI,cAAc,CAAC;QAEtE,QAAQ,MAAM,EAAE,CAAC;YACf,KAAK,cAAc;gBACjB,OAAO;oBACL,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBAC9C,WAAW,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,EAAE;iBACtD,CAAC;YAEJ,KAAK,KAAK;gBACR,OAAO;oBACL,MAAM,EAAE,KAAK;oBACb,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBACpF,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE;iBAC/C,CAAC;YAEJ,KAAK,OAAO;gBACV,OAAO;oBACL,MAAM,EAAE,OAAO;oBACf,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;oBAC9C,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,EAAE;iBAC/C,CAAC;YAEJ,KAAK,SAAS;gBACZ,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,EAAE;iBAC5C,CAAC;YAEJ;gBACE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,cAAc;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACxC,MAAM,IAAI,mBAAmB,CAAC,wCAAwC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACvF,CAAC;gBAED,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC3F,OAAO,EAAE,aAAa,EAAE,SAAS,WAAW,EAAE,EAAE,CAAC;YAEnD,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACnB,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC/B,CAAC;gBACD,OAAO,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;YAEtD,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrC,MAAM,IAAI,mBAAmB,CAAC,oCAAoC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnF,CAAC;gBAED,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC7F,OAAO,EAAE,aAAa,EAAE,SAAS,gBAAgB,EAAE,EAAE,CAAC;YAExD,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,IAAI,mBAAmB,CAAC,qBAAqB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpE,CAAC;gBACD,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAEtC;gBACE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YAC9D,MAAM,IAAI,mBAAmB,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,CAAC;YACH,kEAAkE;YAClE,wEAAwE;YACxE,MAAM,IAAI,mBAAmB,CAAC,wDAAwD,EAAE,KAAK,CAAC,CAAC;QAEjG,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,kBAAkB;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;YAC5C,KAAK,CAAC,GAAG,CAAC,iCAAiC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAElF,qEAAqE;YACrE,yDAAyD;YACzD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;YAC1B,OAAO,IAAI,CAAC;QAEd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,KAAK,CAAC,GAAG,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;YAC/C,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;QAE9B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAmB,CAAC,mCAAmC,EAAE,cAAc,CAAC,CAAC;QACrF,CAAC;QAED,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,cAAc;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;oBACxC,MAAM,IAAI,mBAAmB,CAAC,+DAA+D,EAAE,cAAc,CAAC,CAAC;gBACjH,CAAC;gBACD,MAAM;YAER,KAAK,KAAK;gBACR,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACrD,MAAM,IAAI,mBAAmB,CAAC,4DAA4D,EAAE,KAAK,CAAC,CAAC;gBACrG,CAAC;gBACD,MAAM;YAER,KAAK,OAAO;gBACV,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACrC,MAAM,IAAI,mBAAmB,CAAC,qDAAqD,EAAE,OAAO,CAAC,CAAC;gBAChG,CAAC;gBACD,MAAM;YAER,KAAK,SAAS;gBACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjB,MAAM,IAAI,mBAAmB,CAAC,wCAAwC,EAAE,SAAS,CAAC,CAAC;gBACrF,CAAC;gBACD,MAAM;YAER;gBACE,MAAM,IAAI,mBAAmB,CAAC,sCAAsC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpG,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all client managers
|
|
3
|
+
* Provides common functionality and error handling
|
|
4
|
+
*/
|
|
5
|
+
import type { WordPressClientConfig } from "../../types/client.js";
|
|
6
|
+
export declare abstract class BaseManager {
|
|
7
|
+
protected config: WordPressClientConfig;
|
|
8
|
+
constructor(config: WordPressClientConfig);
|
|
9
|
+
/**
|
|
10
|
+
* Standardized error handling for all managers
|
|
11
|
+
*/
|
|
12
|
+
protected handleError(error: any, operation: string): never;
|
|
13
|
+
/**
|
|
14
|
+
* Standardized success logging
|
|
15
|
+
*/
|
|
16
|
+
protected logSuccess(operation: string, details?: any): void;
|
|
17
|
+
/**
|
|
18
|
+
* Validate required parameters
|
|
19
|
+
*/
|
|
20
|
+
protected validateRequired(params: Record<string, any>, requiredFields: string[]): void;
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=BaseManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/BaseManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAkB,MAAM,uBAAuB,CAAC;AAKnF,8BAAsB,WAAW;IAC/B,SAAS,CAAC,MAAM,EAAE,qBAAqB,CAAC;gBAE5B,MAAM,EAAE,qBAAqB;IAIzC;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,KAAK;IA+B3D;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI5D;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,IAAI;CAWxF"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base class for all client managers
|
|
3
|
+
* Provides common functionality and error handling
|
|
4
|
+
*/
|
|
5
|
+
import { WordPressAPIError } from "../../types/client.js";
|
|
6
|
+
import { debug, logError } from "../../utils/debug.js";
|
|
7
|
+
import { getErrorMessage } from "../../utils/error.js";
|
|
8
|
+
export class BaseManager {
|
|
9
|
+
config;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Standardized error handling for all managers
|
|
15
|
+
*/
|
|
16
|
+
handleError(error, operation) {
|
|
17
|
+
logError(`${operation} failed:`, error);
|
|
18
|
+
if (error instanceof WordPressAPIError) {
|
|
19
|
+
throw error;
|
|
20
|
+
}
|
|
21
|
+
if (error.name === "AbortError" || error.code === "ABORT_ERR") {
|
|
22
|
+
throw new WordPressAPIError(`Request timeout after ${this.config.timeout}ms`, 408, "timeout");
|
|
23
|
+
}
|
|
24
|
+
if (error.code === "ECONNREFUSED" || error.code === "ENOTFOUND") {
|
|
25
|
+
throw new WordPressAPIError(`Cannot connect to WordPress site: ${this.config.baseUrl}`, 503, "connection_failed");
|
|
26
|
+
}
|
|
27
|
+
const message = getErrorMessage(error);
|
|
28
|
+
throw new WordPressAPIError(`${operation} failed: ${message}`, 500, "unknown_error");
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Standardized success logging
|
|
32
|
+
*/
|
|
33
|
+
logSuccess(operation, details) {
|
|
34
|
+
debug.log(`${operation} completed successfully`, details);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Validate required parameters
|
|
38
|
+
*/
|
|
39
|
+
validateRequired(params, requiredFields) {
|
|
40
|
+
for (const field of requiredFields) {
|
|
41
|
+
if (params[field] === undefined || params[field] === null) {
|
|
42
|
+
throw new WordPressAPIError(`Missing required parameter: ${field}`, 400, "missing_parameter");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=BaseManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BaseManager.js","sourceRoot":"","sources":["../../../src/client/managers/BaseManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,iBAAiB,EAAuC,MAAM,uBAAuB,CAAC;AAC/F,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,MAAM,OAAgB,WAAW;IACrB,MAAM,CAAwB;IAExC,YAAY,MAA6B;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;OAEG;IACO,WAAW,CAAC,KAAU,EAAE,SAAiB;QACjD,QAAQ,CAAC,GAAG,SAAS,UAAU,EAAE,KAAK,CAAC,CAAC;QAExC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9D,MAAM,IAAI,iBAAiB,CACzB,yBAAyB,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,EAChD,GAAG,EACH,SAAS,CACV,CAAC;QACJ,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;YAChE,MAAM,IAAI,iBAAiB,CACzB,qCAAqC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAC1D,GAAG,EACH,mBAAmB,CACpB,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QACvC,MAAM,IAAI,iBAAiB,CACzB,GAAG,SAAS,YAAY,OAAO,EAAE,EACjC,GAAG,EACH,eAAe,CAChB,CAAC;IACJ,CAAC;IAED;;OAEG;IACO,UAAU,CAAC,SAAiB,EAAE,OAAa;QACnD,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC;IAED;;OAEG;IACO,gBAAgB,CAAC,MAA2B,EAAE,cAAwB;QAC9E,KAAK,MAAM,KAAK,IAAI,cAAc,EAAE,CAAC;YACnC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC1D,MAAM,IAAI,iBAAiB,CACzB,+BAA+B,KAAK,EAAE,EACtC,GAAG,EACH,mBAAmB,CACpB,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Request Manager
|
|
3
|
+
* Handles all HTTP operations, rate limiting, and retries
|
|
4
|
+
*/
|
|
5
|
+
import type { HTTPMethod, RequestOptions, ClientStats, WordPressClientConfig } from "../../types/client.js";
|
|
6
|
+
import { BaseManager } from "./BaseManager.js";
|
|
7
|
+
export declare class RequestManager extends BaseManager {
|
|
8
|
+
private stats;
|
|
9
|
+
private lastRequestTime;
|
|
10
|
+
private requestInterval;
|
|
11
|
+
constructor(config: WordPressClientConfig);
|
|
12
|
+
/**
|
|
13
|
+
* Make HTTP request with retry logic and rate limiting
|
|
14
|
+
*/
|
|
15
|
+
request<T>(method: HTTPMethod, endpoint: string, data?: any, options?: RequestOptions): Promise<T>;
|
|
16
|
+
/**
|
|
17
|
+
* Make request with retry logic
|
|
18
|
+
*/
|
|
19
|
+
private makeRequestWithRetry;
|
|
20
|
+
/**
|
|
21
|
+
* Make single HTTP request
|
|
22
|
+
*/
|
|
23
|
+
private makeRequest;
|
|
24
|
+
/**
|
|
25
|
+
* Handle HTTP error responses
|
|
26
|
+
*/
|
|
27
|
+
private handleErrorResponse;
|
|
28
|
+
/**
|
|
29
|
+
* Build full URL from endpoint
|
|
30
|
+
*/
|
|
31
|
+
private buildUrl;
|
|
32
|
+
/**
|
|
33
|
+
* Enforce rate limiting
|
|
34
|
+
*/
|
|
35
|
+
private enforceRateLimit;
|
|
36
|
+
/**
|
|
37
|
+
* Update average response time
|
|
38
|
+
*/
|
|
39
|
+
private updateAverageResponseTime;
|
|
40
|
+
/**
|
|
41
|
+
* Get request statistics
|
|
42
|
+
*/
|
|
43
|
+
getStats(): ClientStats;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=RequestManager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestManager.d.ts","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EACd,WAAW,EACX,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG/C,qBAAa,cAAe,SAAQ,WAAW;IAC7C,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,eAAe,CAAS;gBAEpB,MAAM,EAAE,qBAAqB;IAczC;;OAEG;IACG,OAAO,CAAC,CAAC,EACb,MAAM,EAAE,UAAU,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,GAAG,EACV,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC;IAoBb;;OAEG;YACW,oBAAoB;IA+BlC;;OAEG;YACW,WAAW;IA2CzB;;OAEG;YACW,mBAAmB;IAwBjC;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;YACW,gBAAgB;IAY9B;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAQjC;;OAEG;IACH,QAAQ,IAAI,WAAW;CAGxB"}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTTP Request Manager
|
|
3
|
+
* Handles all HTTP operations, rate limiting, and retries
|
|
4
|
+
*/
|
|
5
|
+
import fetch from "node-fetch";
|
|
6
|
+
import { WordPressAPIError, RateLimitError } from "../../types/client.js";
|
|
7
|
+
import { BaseManager } from "./BaseManager.js";
|
|
8
|
+
import { debug, startTimer } from "../../utils/debug.js";
|
|
9
|
+
export class RequestManager extends BaseManager {
|
|
10
|
+
stats;
|
|
11
|
+
lastRequestTime = 0;
|
|
12
|
+
requestInterval;
|
|
13
|
+
constructor(config) {
|
|
14
|
+
super(config);
|
|
15
|
+
this.requestInterval = 60000 / parseInt(process.env.RATE_LIMIT || "60");
|
|
16
|
+
this.stats = {
|
|
17
|
+
totalRequests: 0,
|
|
18
|
+
successfulRequests: 0,
|
|
19
|
+
failedRequests: 0,
|
|
20
|
+
averageResponseTime: 0,
|
|
21
|
+
rateLimitHits: 0,
|
|
22
|
+
authFailures: 0,
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Make HTTP request with retry logic and rate limiting
|
|
27
|
+
*/
|
|
28
|
+
async request(method, endpoint, data, options = {}) {
|
|
29
|
+
const timer = startTimer();
|
|
30
|
+
try {
|
|
31
|
+
await this.enforceRateLimit();
|
|
32
|
+
const response = await this.makeRequestWithRetry(method, endpoint, data, options);
|
|
33
|
+
this.stats.successfulRequests++;
|
|
34
|
+
this.updateAverageResponseTime(timer.end());
|
|
35
|
+
return response;
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
this.stats.failedRequests++;
|
|
39
|
+
this.handleError(error, `${method} ${endpoint}`);
|
|
40
|
+
}
|
|
41
|
+
finally {
|
|
42
|
+
this.stats.totalRequests++;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Make request with retry logic
|
|
47
|
+
*/
|
|
48
|
+
async makeRequestWithRetry(method, endpoint, data, options = {}) {
|
|
49
|
+
let lastError;
|
|
50
|
+
const maxRetries = options.retries ?? this.config.maxRetries ?? 3;
|
|
51
|
+
for (let attempt = 1; attempt <= maxRetries; attempt++) {
|
|
52
|
+
try {
|
|
53
|
+
return await this.makeRequest(method, endpoint, data, options);
|
|
54
|
+
}
|
|
55
|
+
catch (error) {
|
|
56
|
+
lastError = error;
|
|
57
|
+
// Don't retry on authentication errors or client errors
|
|
58
|
+
if (error.statusCode < 500 || attempt === maxRetries) {
|
|
59
|
+
throw error;
|
|
60
|
+
}
|
|
61
|
+
debug.log(`Request failed (attempt ${attempt}/${maxRetries}):`, error.message);
|
|
62
|
+
// Exponential backoff
|
|
63
|
+
const delay = Math.min(1000 * Math.pow(2, attempt - 1), 5000);
|
|
64
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
throw lastError;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Make single HTTP request
|
|
71
|
+
*/
|
|
72
|
+
async makeRequest(method, endpoint, data, options = {}) {
|
|
73
|
+
const url = this.buildUrl(endpoint);
|
|
74
|
+
const timeout = options.timeout ?? this.config.timeout ?? 30000;
|
|
75
|
+
const controller = new AbortController();
|
|
76
|
+
const timeoutId = setTimeout(() => controller.abort(), timeout);
|
|
77
|
+
try {
|
|
78
|
+
const fetchOptions = {
|
|
79
|
+
method,
|
|
80
|
+
headers: {
|
|
81
|
+
"Content-Type": "application/json",
|
|
82
|
+
"User-Agent": "MCP-WordPress/1.1.1",
|
|
83
|
+
...options.headers,
|
|
84
|
+
},
|
|
85
|
+
signal: controller.signal,
|
|
86
|
+
};
|
|
87
|
+
if (data && method !== "GET") {
|
|
88
|
+
fetchOptions.body = JSON.stringify(data);
|
|
89
|
+
}
|
|
90
|
+
debug.log(`API Request: ${method} ${url}`);
|
|
91
|
+
const response = await fetch(url, fetchOptions);
|
|
92
|
+
if (!response.ok) {
|
|
93
|
+
await this.handleErrorResponse(response);
|
|
94
|
+
}
|
|
95
|
+
const responseData = await response.json();
|
|
96
|
+
return responseData;
|
|
97
|
+
}
|
|
98
|
+
finally {
|
|
99
|
+
clearTimeout(timeoutId);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Handle HTTP error responses
|
|
104
|
+
*/
|
|
105
|
+
async handleErrorResponse(response) {
|
|
106
|
+
let errorData = {};
|
|
107
|
+
try {
|
|
108
|
+
errorData = await response.json();
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// Ignore JSON parsing errors
|
|
112
|
+
}
|
|
113
|
+
const message = errorData.message || `HTTP ${response.status}: ${response.statusText}`;
|
|
114
|
+
const code = errorData.code || "http_error";
|
|
115
|
+
if (response.status === 429) {
|
|
116
|
+
this.stats.rateLimitHits++;
|
|
117
|
+
throw new RateLimitError(message, Date.now() + 60000); // Retry after 1 minute
|
|
118
|
+
}
|
|
119
|
+
if (response.status === 401 || response.status === 403) {
|
|
120
|
+
this.stats.authFailures++;
|
|
121
|
+
}
|
|
122
|
+
throw new WordPressAPIError(message, response.status, code, errorData);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Build full URL from endpoint
|
|
126
|
+
*/
|
|
127
|
+
buildUrl(endpoint) {
|
|
128
|
+
const baseUrl = this.config.baseUrl.replace(/\/$/, "");
|
|
129
|
+
const apiBase = "/wp-json/wp/v2";
|
|
130
|
+
const cleanEndpoint = endpoint.startsWith("/") ? endpoint : `/${endpoint}`;
|
|
131
|
+
return `${baseUrl}${apiBase}${cleanEndpoint}`;
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Enforce rate limiting
|
|
135
|
+
*/
|
|
136
|
+
async enforceRateLimit() {
|
|
137
|
+
const now = Date.now();
|
|
138
|
+
const timeSinceLastRequest = now - this.lastRequestTime;
|
|
139
|
+
if (timeSinceLastRequest < this.requestInterval) {
|
|
140
|
+
const delay = this.requestInterval - timeSinceLastRequest;
|
|
141
|
+
await new Promise(resolve => setTimeout(resolve, delay));
|
|
142
|
+
}
|
|
143
|
+
this.lastRequestTime = Date.now();
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Update average response time
|
|
147
|
+
*/
|
|
148
|
+
updateAverageResponseTime(responseTime) {
|
|
149
|
+
const totalRequests = this.stats.successfulRequests;
|
|
150
|
+
const currentAverage = this.stats.averageResponseTime;
|
|
151
|
+
this.stats.averageResponseTime =
|
|
152
|
+
(currentAverage * (totalRequests - 1) + responseTime) / totalRequests;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Get request statistics
|
|
156
|
+
*/
|
|
157
|
+
getStats() {
|
|
158
|
+
return { ...this.stats };
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
//# sourceMappingURL=RequestManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RequestManager.js","sourceRoot":"","sources":["../../../src/client/managers/RequestManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Managers Index
|
|
3
|
+
* Exports all manager classes for the WordPress client
|
|
4
|
+
*/
|
|
5
|
+
export { BaseManager } from "./BaseManager.js";
|
|
6
|
+
export { AuthenticationManager } from "./AuthenticationManager.js";
|
|
7
|
+
export { RequestManager } from "./RequestManager.js";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/client/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Client Managers Index
|
|
3
|
+
* Exports all manager classes for the WordPress client
|
|
4
|
+
*/
|
|
5
|
+
export { BaseManager } from "./BaseManager.js";
|
|
6
|
+
export { AuthenticationManager } from "./AuthenticationManager.js";
|
|
7
|
+
export { RequestManager } from "./RequestManager.js";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/managers/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare class MCPWordPressServer {
|
|
2
|
+
private server;
|
|
3
|
+
private wordpressClients;
|
|
4
|
+
private initialized;
|
|
5
|
+
private siteConfigs;
|
|
6
|
+
constructor(mcpConfig?: any);
|
|
7
|
+
private loadConfiguration;
|
|
8
|
+
private loadMultiSiteConfig;
|
|
9
|
+
private loadSingleSiteFromEnv;
|
|
10
|
+
private setupTools;
|
|
11
|
+
private registerTool;
|
|
12
|
+
private testClientConnections;
|
|
13
|
+
private isAuthenticationError;
|
|
14
|
+
run(): Promise<void>;
|
|
15
|
+
shutdown(): Promise<void>;
|
|
16
|
+
}
|
|
17
|
+
export default MCPWordPressServer;
|
|
18
|
+
export { MCPWordPressServer };
|
|
19
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAsBA,cAAM,kBAAkB;IACtB,OAAO,CAAC,MAAM,CAAY;IAE1B,OAAO,CAAC,gBAAgB,CAA2C;IACnE,OAAO,CAAC,WAAW,CAAkB;IAErC,OAAO,CAAC,WAAW,CAAa;gBAEpB,SAAS,CAAC,EAAE,GAAG;IAkB3B,OAAO,CAAC,iBAAiB;IAgBzB,OAAO,CAAC,mBAAmB;IA0C3B,OAAO,CAAC,qBAAqB;IAqC7B,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,YAAY;YAsGN,qBAAqB;IA0BnC,OAAO,CAAC,qBAAqB;IAOvB,GAAG;IAeH,QAAQ;CAKf;AAyBD,eAAe,kBAAkB,CAAC;AAClC,OAAO,EAAE,kBAAkB,EAAE,CAAC"}
|