@automattic/mcp-wordpress-remote 0.5.3 → 0.5.5
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/dist/lib.d.ts +1 -1
- package/dist/lib.js +37 -7
- package/dist/proxy.js +39 -15
- package/package.json +1 -5
package/dist/lib.d.ts
CHANGED
|
@@ -15,7 +15,7 @@ interface WordPressResponse {
|
|
|
15
15
|
[key: string]: any;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
declare const MCP_WORDPRESS_REMOTE_VERSION = "0.5.
|
|
18
|
+
declare const MCP_WORDPRESS_REMOTE_VERSION = "0.5.5";
|
|
19
19
|
/**
|
|
20
20
|
* Centralized configuration for MCP WordPress Remote
|
|
21
21
|
* All default values are defined here and can be overridden via environment variables
|
package/dist/lib.js
CHANGED
|
@@ -6498,7 +6498,7 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) {
|
|
|
6498
6498
|
const LAST_CHUNK = Buffer3.from("0\r\n\r\n");
|
|
6499
6499
|
let isChunkedTransfer = false;
|
|
6500
6500
|
let properLastChunkReceived = false;
|
|
6501
|
-
let
|
|
6501
|
+
let trailingBytes = Buffer3.alloc(0);
|
|
6502
6502
|
request.on("response", (response) => {
|
|
6503
6503
|
const { headers } = response;
|
|
6504
6504
|
isChunkedTransfer = headers["transfer-encoding"] === "chunked" && !headers["content-length"];
|
|
@@ -6512,11 +6512,15 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) {
|
|
|
6512
6512
|
}
|
|
6513
6513
|
};
|
|
6514
6514
|
const onData = (buf) => {
|
|
6515
|
-
|
|
6516
|
-
if (
|
|
6517
|
-
|
|
6515
|
+
if (buf.length === 0) return;
|
|
6516
|
+
if (buf.length >= LAST_CHUNK.length) {
|
|
6517
|
+
trailingBytes = Buffer3.from(buf.subarray(-LAST_CHUNK.length));
|
|
6518
|
+
} else {
|
|
6519
|
+
trailingBytes = Buffer3.from(
|
|
6520
|
+
Buffer3.concat([trailingBytes, buf]).subarray(-LAST_CHUNK.length)
|
|
6521
|
+
);
|
|
6518
6522
|
}
|
|
6519
|
-
|
|
6523
|
+
properLastChunkReceived = trailingBytes.equals(LAST_CHUNK);
|
|
6520
6524
|
};
|
|
6521
6525
|
socket.prependListener("close", onSocketClose);
|
|
6522
6526
|
socket.on("data", onData);
|
|
@@ -75950,7 +75954,7 @@ async function selectCallbackPort(serverUrl, specifiedPort, _unused, host = "127
|
|
|
75950
75954
|
}
|
|
75951
75955
|
|
|
75952
75956
|
// src/lib/config.ts
|
|
75953
|
-
var MCP_WORDPRESS_REMOTE_VERSION = "0.5.
|
|
75957
|
+
var MCP_WORDPRESS_REMOTE_VERSION = "0.5.5";
|
|
75954
75958
|
function parsePositiveIntEnv(value, defaultValue) {
|
|
75955
75959
|
if (!value) {
|
|
75956
75960
|
return defaultValue;
|
|
@@ -76461,6 +76465,26 @@ function getProxyType() {
|
|
|
76461
76465
|
return proxyConfig.type;
|
|
76462
76466
|
}
|
|
76463
76467
|
|
|
76468
|
+
// src/lib/node-web-stream.ts
|
|
76469
|
+
function nodeReadableToWeb(stream) {
|
|
76470
|
+
const chunks = stream[Symbol.asyncIterator]();
|
|
76471
|
+
let cancelled = false;
|
|
76472
|
+
return new ReadableStream({
|
|
76473
|
+
async pull(controller) {
|
|
76474
|
+
const { value, done } = await chunks.next();
|
|
76475
|
+
if (cancelled) return;
|
|
76476
|
+
if (done) controller.close();
|
|
76477
|
+
else
|
|
76478
|
+
controller.enqueue(typeof value === "string" ? Buffer.from(value) : value);
|
|
76479
|
+
},
|
|
76480
|
+
async cancel() {
|
|
76481
|
+
cancelled = true;
|
|
76482
|
+
stream.destroy();
|
|
76483
|
+
await chunks.return?.();
|
|
76484
|
+
}
|
|
76485
|
+
});
|
|
76486
|
+
}
|
|
76487
|
+
|
|
76464
76488
|
// src/lib/fetch-utils.ts
|
|
76465
76489
|
var PROXY_PRODUCT = `mcp-wordpress-remote/${MCP_WORDPRESS_REMOTE_VERSION}`;
|
|
76466
76490
|
var clientProduct;
|
|
@@ -76493,7 +76517,13 @@ async function proxyFetch(url2, init) {
|
|
|
76493
76517
|
const agent = await getAgentForUrl(url2);
|
|
76494
76518
|
if (agent) {
|
|
76495
76519
|
const nodeFetch = (await Promise.resolve().then(() => (init_src(), src_exports))).default;
|
|
76496
|
-
|
|
76520
|
+
const response = await nodeFetch(url2, { ...init, agent });
|
|
76521
|
+
const body = response.body && ![204, 205, 304].includes(response.status) ? nodeReadableToWeb(response.body) : null;
|
|
76522
|
+
return new Response(body, {
|
|
76523
|
+
status: response.status,
|
|
76524
|
+
statusText: response.statusText,
|
|
76525
|
+
headers: [...response.headers]
|
|
76526
|
+
});
|
|
76497
76527
|
}
|
|
76498
76528
|
return fetch(url2, init);
|
|
76499
76529
|
}
|
package/dist/proxy.js
CHANGED
|
@@ -6499,7 +6499,7 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) {
|
|
|
6499
6499
|
const LAST_CHUNK = Buffer3.from("0\r\n\r\n");
|
|
6500
6500
|
let isChunkedTransfer = false;
|
|
6501
6501
|
let properLastChunkReceived = false;
|
|
6502
|
-
let
|
|
6502
|
+
let trailingBytes = Buffer3.alloc(0);
|
|
6503
6503
|
request.on("response", (response) => {
|
|
6504
6504
|
const { headers } = response;
|
|
6505
6505
|
isChunkedTransfer = headers["transfer-encoding"] === "chunked" && !headers["content-length"];
|
|
@@ -6513,11 +6513,15 @@ function fixResponseChunkedTransferBadEnding(request, errorCallback) {
|
|
|
6513
6513
|
}
|
|
6514
6514
|
};
|
|
6515
6515
|
const onData = (buf) => {
|
|
6516
|
-
|
|
6517
|
-
if (
|
|
6518
|
-
|
|
6516
|
+
if (buf.length === 0) return;
|
|
6517
|
+
if (buf.length >= LAST_CHUNK.length) {
|
|
6518
|
+
trailingBytes = Buffer3.from(buf.subarray(-LAST_CHUNK.length));
|
|
6519
|
+
} else {
|
|
6520
|
+
trailingBytes = Buffer3.from(
|
|
6521
|
+
Buffer3.concat([trailingBytes, buf]).subarray(-LAST_CHUNK.length)
|
|
6522
|
+
);
|
|
6519
6523
|
}
|
|
6520
|
-
|
|
6524
|
+
properLastChunkReceived = trailingBytes.equals(LAST_CHUNK);
|
|
6521
6525
|
};
|
|
6522
6526
|
socket.prependListener("close", onSocketClose);
|
|
6523
6527
|
socket.on("data", onData);
|
|
@@ -76615,7 +76619,7 @@ async function selectCallbackPort(serverUrl, specifiedPort, _unused, host = "127
|
|
|
76615
76619
|
}
|
|
76616
76620
|
|
|
76617
76621
|
// src/lib/config.ts
|
|
76618
|
-
var MCP_WORDPRESS_REMOTE_VERSION = "0.5.
|
|
76622
|
+
var MCP_WORDPRESS_REMOTE_VERSION = "0.5.5";
|
|
76619
76623
|
function parsePositiveIntEnv(value, defaultValue) {
|
|
76620
76624
|
if (!value) {
|
|
76621
76625
|
return defaultValue;
|
|
@@ -77139,6 +77143,26 @@ async function getAgentForUrl(url2) {
|
|
|
77139
77143
|
return void 0;
|
|
77140
77144
|
}
|
|
77141
77145
|
|
|
77146
|
+
// src/lib/node-web-stream.ts
|
|
77147
|
+
function nodeReadableToWeb(stream) {
|
|
77148
|
+
const chunks = stream[Symbol.asyncIterator]();
|
|
77149
|
+
let cancelled = false;
|
|
77150
|
+
return new ReadableStream({
|
|
77151
|
+
async pull(controller) {
|
|
77152
|
+
const { value, done } = await chunks.next();
|
|
77153
|
+
if (cancelled) return;
|
|
77154
|
+
if (done) controller.close();
|
|
77155
|
+
else
|
|
77156
|
+
controller.enqueue(typeof value === "string" ? Buffer.from(value) : value);
|
|
77157
|
+
},
|
|
77158
|
+
async cancel() {
|
|
77159
|
+
cancelled = true;
|
|
77160
|
+
stream.destroy();
|
|
77161
|
+
await chunks.return?.();
|
|
77162
|
+
}
|
|
77163
|
+
});
|
|
77164
|
+
}
|
|
77165
|
+
|
|
77142
77166
|
// src/lib/fetch-utils.ts
|
|
77143
77167
|
var PROXY_PRODUCT = `mcp-wordpress-remote/${MCP_WORDPRESS_REMOTE_VERSION}`;
|
|
77144
77168
|
var clientProduct;
|
|
@@ -77180,14 +77204,17 @@ async function proxyFetch(url2, init) {
|
|
|
77180
77204
|
const agent = await getAgentForUrl(url2);
|
|
77181
77205
|
if (agent) {
|
|
77182
77206
|
const nodeFetch = (await Promise.resolve().then(() => (init_src(), src_exports))).default;
|
|
77183
|
-
|
|
77207
|
+
const response = await nodeFetch(url2, { ...init, agent });
|
|
77208
|
+
const body = response.body && ![204, 205, 304].includes(response.status) ? nodeReadableToWeb(response.body) : null;
|
|
77209
|
+
return new Response(body, {
|
|
77210
|
+
status: response.status,
|
|
77211
|
+
statusText: response.statusText,
|
|
77212
|
+
headers: [...response.headers]
|
|
77213
|
+
});
|
|
77184
77214
|
}
|
|
77185
77215
|
return fetch(url2, init);
|
|
77186
77216
|
}
|
|
77187
77217
|
|
|
77188
|
-
// src/lib/wordpress-transport.ts
|
|
77189
|
-
import { Readable } from "node:stream";
|
|
77190
|
-
|
|
77191
77218
|
// node_modules/@modelcontextprotocol/sdk/dist/esm/shared/mediaType.js
|
|
77192
77219
|
var import_content_type = __toESM(require_content_type(), 1);
|
|
77193
77220
|
function mediaTypeEssence(header) {
|
|
@@ -80163,9 +80190,7 @@ function createWordPressTransport(onFailure) {
|
|
|
80163
80190
|
response.status
|
|
80164
80191
|
);
|
|
80165
80192
|
if (recovered) {
|
|
80166
|
-
|
|
80167
|
-
if (typeof unread?.cancel === "function") await unread.cancel();
|
|
80168
|
-
else unread?.destroy?.();
|
|
80193
|
+
await response.body?.cancel();
|
|
80169
80194
|
cleanup();
|
|
80170
80195
|
if (cancelled) return new Response(null, { status: 202 });
|
|
80171
80196
|
return send(url2, init, true);
|
|
@@ -80175,8 +80200,7 @@ function createWordPressTransport(onFailure) {
|
|
|
80175
80200
|
controller.abort();
|
|
80176
80201
|
}, timeoutMs);
|
|
80177
80202
|
}
|
|
80178
|
-
const
|
|
80179
|
-
const reader = body?.getReader();
|
|
80203
|
+
const reader = response.body?.getReader();
|
|
80180
80204
|
let released = false;
|
|
80181
80205
|
const stream = reader ? new ReadableStream({
|
|
80182
80206
|
async pull(output) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@automattic/mcp-wordpress-remote",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "MCP WordPress Remote proxy server",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=18.0.0"
|
|
@@ -75,18 +75,14 @@
|
|
|
75
75
|
"@playwright/test": "^1.54.2",
|
|
76
76
|
"@types/express": "^4.17.21",
|
|
77
77
|
"@types/jest": "^29.5.12",
|
|
78
|
-
"@types/mockdate": "^2.0.0",
|
|
79
78
|
"@types/node": "^18.19.0",
|
|
80
79
|
"@types/proper-lockfile": "^4.1.4",
|
|
81
|
-
"@types/supertest": "^6.0.3",
|
|
82
80
|
"@types/tmp": "^0.2.6",
|
|
83
81
|
"esbuild": "0.25.2",
|
|
84
82
|
"jest": "^29.7.0",
|
|
85
|
-
"mockdate": "^3.0.5",
|
|
86
83
|
"nock": "^14.0.9",
|
|
87
84
|
"playwright": "^1.54.2",
|
|
88
85
|
"prettier": "^3.2.5",
|
|
89
|
-
"supertest": "^7.1.4",
|
|
90
86
|
"tmp": "^0.2.5",
|
|
91
87
|
"ts-jest": "^29.1.2",
|
|
92
88
|
"tsup": "^8.0.2",
|