@mcp-abap-adt/core 4.5.0 → 4.5.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/CHANGELOG.md +11 -0
- package/dist/handlers/transport/readonly/handleListTransports.d.ts +1 -1
- package/dist/handlers/transport/readonly/handleListTransports.d.ts.map +1 -1
- package/dist/handlers/transport/readonly/handleListTransports.js +13 -14
- package/dist/handlers/transport/readonly/handleListTransports.js.map +1 -1
- package/package.json +10 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
## [Unreleased]
|
|
4
4
|
|
|
5
|
+
## [4.5.2] - 2026-03-27
|
|
6
|
+
|
|
7
|
+
### Added
|
|
8
|
+
- Pre-commit hook via husky + lint-staged — auto-fixes formatting and lint issues before commit so CI stays green.
|
|
9
|
+
|
|
10
|
+
## [4.5.1] - 2026-03-26
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
- Rewrite `ListTransports` handler to use `AdtClient.getRequest().list()` with proper Accept negotiation instead of direct `connection.makeAdtRequest()`. Update `@mcp-abap-adt/adt-clients` to 3.13.0.
|
|
14
|
+
- Add integration tests for `ListTransports` handler.
|
|
15
|
+
|
|
5
16
|
## [4.5.0] - 2026-03-26
|
|
6
17
|
|
|
7
18
|
### Fixed
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* ListTransports Handler - List user's transport requests via ADT API
|
|
3
3
|
*
|
|
4
4
|
* Retrieves transport requests for the current user or specified user.
|
|
5
|
-
* Uses
|
|
5
|
+
* Uses AdtClient.getRequest().list() with proper Accept negotiation.
|
|
6
6
|
*/
|
|
7
7
|
import type { HandlerContext } from '../../../lib/handlers/interfaces';
|
|
8
8
|
export declare const TOOL_DEFINITION: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleListTransports.d.ts","sourceRoot":"","sources":["../../../../src/handlers/transport/readonly/handleListTransports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"handleListTransports.d.ts","sourceRoot":"","sources":["../../../../src/handlers/transport/readonly/handleListTransports.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAIvE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;CAqBlB,CAAC;AAEX,UAAU,kBAAkB;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AA6CD,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,cAAc,EACvB,IAAI,EAAE,kBAAkB;;;;;;GA6CzB"}
|
|
@@ -3,12 +3,14 @@
|
|
|
3
3
|
* ListTransports Handler - List user's transport requests via ADT API
|
|
4
4
|
*
|
|
5
5
|
* Retrieves transport requests for the current user or specified user.
|
|
6
|
-
* Uses
|
|
6
|
+
* Uses AdtClient.getRequest().list() with proper Accept negotiation.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.TOOL_DEFINITION = void 0;
|
|
10
10
|
exports.handleListTransports = handleListTransports;
|
|
11
11
|
const fast_xml_parser_1 = require("fast-xml-parser");
|
|
12
|
+
const clients_1 = require("../../../lib/clients");
|
|
13
|
+
const systemContext_1 = require("../../../lib/systemContext");
|
|
12
14
|
const utils_1 = require("../../../lib/utils");
|
|
13
15
|
exports.TOOL_DEFINITION = {
|
|
14
16
|
name: 'ListTransports',
|
|
@@ -59,20 +61,17 @@ async function handleListTransports(context, args) {
|
|
|
59
61
|
const { connection, logger } = context;
|
|
60
62
|
try {
|
|
61
63
|
const modifiableOnly = args?.modifiable_only !== false;
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
logger?.debug(`ListTransports: ${url}`);
|
|
72
|
-
const response = await (0, utils_1.makeAdtRequestWithTimeout)(connection, url, 'GET', 'default', undefined, undefined, {
|
|
73
|
-
Accept: 'application/vnd.sap.adt.transportorganizer.v1+xml',
|
|
64
|
+
const user = args?.user ||
|
|
65
|
+
(0, systemContext_1.getSystemContext)().responsible ||
|
|
66
|
+
process.env.SAP_USERNAME ||
|
|
67
|
+
'';
|
|
68
|
+
logger?.debug(`ListTransports: user=${user}, modifiable_only=${modifiableOnly}`);
|
|
69
|
+
const client = (0, clients_1.createAdtClient)(connection, logger);
|
|
70
|
+
const state = await client.getRequest().list({
|
|
71
|
+
user,
|
|
72
|
+
status: modifiableOnly ? 'D' : undefined,
|
|
74
73
|
});
|
|
75
|
-
const transports = parseTransportListXml(
|
|
74
|
+
const transports = parseTransportListXml(state.listResult?.data || '');
|
|
76
75
|
logger?.info(`ListTransports: found ${transports.length} transport(s)`);
|
|
77
76
|
return {
|
|
78
77
|
isError: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handleListTransports.js","sourceRoot":"","sources":["../../../../src/handlers/transport/readonly/handleListTransports.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"handleListTransports.js","sourceRoot":"","sources":["../../../../src/handlers/transport/readonly/handleListTransports.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AA+EH,oDA+CC;AA5HD,qDAA4C;AAC5C,kDAAuD;AAEvD,8DAA8D;AAC9D,8CAAkD;AAErC,QAAA,eAAe,GAAG;IAC7B,IAAI,EAAE,gBAAgB;IACtB,YAAY,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAU;IAC1C,WAAW,EACT,+IAA+I;IACjJ,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EACT,0EAA0E;aAC7E;YACD,eAAe,EAAE;gBACf,IAAI,EAAE,SAAS;gBACf,WAAW,EACT,sEAAsE;aACzE;SACF;QACD,QAAQ,EAAE,EAAE;KACb;CACO,CAAC;AAgBX,SAAS,qBAAqB,CAAC,OAAe;IAC5C,MAAM,MAAM,GAAG,IAAI,2BAAS,CAAC;QAC3B,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,EAAE;QACvB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChB,OAAO,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAErC,iEAAiE;IACjE,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC;IAE/D,mBAAmB;IACnB,MAAM,QAAQ,GACZ,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IACvE,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEpE,OAAO,WAAW;SACf,MAAM,CAAC,CAAC,GAA4B,EAAE,EAAE,CAAC,GAAG,CAAC;SAC7C,GAAG,CAAC,CAAC,GAA4B,EAAE,EAAE,CAAC,CAAC;QACtC,MAAM,EACH,GAAG,CAAC,WAAW,CAAY,IAAK,GAAG,CAAC,cAAc,CAAY,IAAI,EAAE;QACvE,WAAW,EACR,GAAG,CAAC,SAAS,CAAY,IAAK,GAAG,CAAC,gBAAgB,CAAY,IAAI,EAAE;QACvE,IAAI,EAAG,GAAG,CAAC,SAAS,CAAY,IAAI,EAAE;QACtC,MAAM,EAAG,GAAG,CAAC,WAAW,CAAY,IAAI,EAAE;QAC1C,KAAK,EAAG,GAAG,CAAC,UAAU,CAAY,IAAI,EAAE;QACxC,MAAM,EAAG,GAAG,CAAC,WAAW,CAAY,IAAI,EAAE;KAC3C,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAC7C,CAAC;AAEM,KAAK,UAAU,oBAAoB,CACxC,OAAuB,EACvB,IAAwB;IAExB,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,cAAc,GAAG,IAAI,EAAE,eAAe,KAAK,KAAK,CAAC;QACvD,MAAM,IAAI,GACR,IAAI,EAAE,IAAI;YACV,IAAA,gCAAgB,GAAE,CAAC,WAAW;YAC9B,OAAO,CAAC,GAAG,CAAC,YAAY;YACxB,EAAE,CAAC;QAEL,MAAM,EAAE,KAAK,CACX,wBAAwB,IAAI,qBAAqB,cAAc,EAAE,CAClE,CAAC;QAEF,MAAM,MAAM,GAAG,IAAA,yBAAe,EAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC;YAC3C,IAAI;YACJ,MAAM,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS;SACzC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,qBAAqB,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAEvE,MAAM,EAAE,IAAI,CAAC,yBAAyB,UAAU,CAAC,MAAM,eAAe,CAAC,CAAC;QAExE,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,IAAI,CAAC,SAAS,CAClB;wBACE,OAAO,EAAE,IAAI;wBACb,KAAK,EAAE,UAAU,CAAC,MAAM;wBACxB,UAAU;qBACX,EACD,IAAI,EACJ,CAAC,CACF;iBACF;aACF;SACF,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,oBAAY,EAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mcp-abap-adt/core",
|
|
3
3
|
"mcpName": "io.github.fr0ster/mcp-abap-adt",
|
|
4
|
-
"version": "4.5.
|
|
4
|
+
"version": "4.5.2",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -87,7 +87,8 @@
|
|
|
87
87
|
"docker:logs:headerless": "cd docker && docker-compose -f docker-compose.headerless.yml logs -f",
|
|
88
88
|
"docker:rebuild": "npm run docker:down && npm run docker:build && npm run docker:up",
|
|
89
89
|
"docker:rebuild:package": "npm run docker:down:package && npm run docker:build:package && npm run docker:up:package",
|
|
90
|
-
"docker:rebuild:headerless": "npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless"
|
|
90
|
+
"docker:rebuild:headerless": "npm run docker:down:headerless && npm run docker:build:headerless && npm run docker:up:headerless",
|
|
91
|
+
"prepare": "husky"
|
|
91
92
|
},
|
|
92
93
|
"keywords": [
|
|
93
94
|
"abap",
|
|
@@ -121,8 +122,10 @@
|
|
|
121
122
|
"dotenv": "^17.3.1",
|
|
122
123
|
"express": "^5.1.0",
|
|
123
124
|
"express-rate-limit": "^8.3.0",
|
|
125
|
+
"husky": "^9.1.7",
|
|
124
126
|
"jest": "^30.2.0",
|
|
125
127
|
"jest-util": "^30.2.0",
|
|
128
|
+
"lint-staged": "^16.4.0",
|
|
126
129
|
"open": "^11.0.0",
|
|
127
130
|
"pino": "^10.3.0",
|
|
128
131
|
"pino-pretty": "^13.1.3",
|
|
@@ -207,5 +210,10 @@
|
|
|
207
210
|
"testTimeout": 600000,
|
|
208
211
|
"globalSetup": "<rootDir>/src/__tests__/integration/globalSetup.ts"
|
|
209
212
|
},
|
|
213
|
+
"lint-staged": {
|
|
214
|
+
"src/**/*.{ts,js}": [
|
|
215
|
+
"biome check --write"
|
|
216
|
+
]
|
|
217
|
+
},
|
|
210
218
|
"private": false
|
|
211
219
|
}
|