sap-wm-mcp 0.3.2 → 0.3.3
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/lib/s4hClient.js +14 -7
- package/package.json +1 -1
package/lib/s4hClient.js
CHANGED
|
@@ -43,13 +43,20 @@ async function refreshCsrf() {
|
|
|
43
43
|
const token = res.headers.get('x-csrf-token');
|
|
44
44
|
if (!token) throw new Error('CSRF token fetch failed — no token in response headers');
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
46
|
+
// node-fetch v3 removed headers.raw() — collect Set-Cookie values correctly.
|
|
47
|
+
// getSetCookie() is WHATWG spec (Node 18+); forEach is the node-fetch v3 fallback.
|
|
48
|
+
let cookieParts;
|
|
49
|
+
if (typeof res.headers.getSetCookie === 'function') {
|
|
50
|
+
cookieParts = res.headers.getSetCookie().map(c => c.split(';')[0].trim());
|
|
51
|
+
} else {
|
|
52
|
+
cookieParts = [];
|
|
53
|
+
res.headers.forEach((value, key) => {
|
|
54
|
+
if (key.toLowerCase() === 'set-cookie') cookieParts.push(value.split(';')[0].trim());
|
|
55
|
+
});
|
|
56
|
+
}
|
|
50
57
|
|
|
51
58
|
_csrfToken = token;
|
|
52
|
-
_cookieHeader =
|
|
59
|
+
_cookieHeader = cookieParts.join('; ');
|
|
53
60
|
log('debug', 'csrf_refreshed');
|
|
54
61
|
}
|
|
55
62
|
|
|
@@ -115,8 +122,8 @@ export async function s4hPost(path, body) {
|
|
|
115
122
|
try {
|
|
116
123
|
response = await doPost();
|
|
117
124
|
|
|
118
|
-
// CSRF token expired —
|
|
119
|
-
if (response.status === 403) {
|
|
125
|
+
// CSRF token expired or session mismatch — SAP returns 403 or 401 depending on ICM config
|
|
126
|
+
if (response.status === 403 || response.status === 401) {
|
|
120
127
|
log('warn', 'csrf_expired_retry', { url });
|
|
121
128
|
_csrfToken = null;
|
|
122
129
|
_cookieHeader = null;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sap-wm-mcp",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.3",
|
|
4
4
|
"description": "MCP server for SAP Classic Warehouse Management — connects AI agents to S/4HANA WM via a custom RAP OData V4 service. For systems where EWM is not active.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.js",
|