@mcp-abap-adt/connection 9.3.4 → 9.4.1

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 CHANGED
@@ -7,6 +7,35 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [9.4.1] - 2026-09-27
11
+
12
+ ### Fixed
13
+
14
+ - **`sap-abap-auth --version` printed `0.1.0`** — a number written into the CLI, not the package's. It reads `package.json` now.
15
+
16
+ ### Added
17
+
18
+ - **`version` as a command, and `-v`**, for `sap-abap-auth`: `help` / `--help` / `-h` and `version` / `--version` / `-v` — the same set in every CLI of the family, each answering before anything starts or connects.
19
+
20
+ ## [9.4.0] - 2026-09-27
21
+
22
+ ### Changed
23
+
24
+ - **`@mcp-abap-adt/sap-rfc-lite` `^0.2.0`** (was `^0.1.0 || ^0.2.0`), still an
25
+ optional dependency. The range let an install that already had 0.1.0 in its
26
+ lockfile keep it: npm does not move a locked version that still satisfies
27
+ the range, so 9.3.4's context reset never reached it, and every stateless
28
+ RFC call opened a conversation of its own (~0.67 s instead of ~0.24 s,
29
+ measured on an on-premise system). With 0.2.0 required, every stateless
30
+ call reuses one conversation and resets its server context. A minor
31
+ release, not a patch: support for 0.1.x ends and the behaviour of an
32
+ install that had it changes. No API changes.
33
+
34
+ **What a consumer does:** reinstall with the SAP NW RFC SDK visible, so the
35
+ optional native build of 0.2.0 succeeds (npm drops a failed optional build
36
+ silently). The check for a client without `resetServerContext` stays as a
37
+ guard; with 0.2.0 it is not taken.
38
+
10
39
  ## [9.3.4] - 2026-09-27
11
40
 
12
41
  ### Changed
@@ -1883,7 +1912,9 @@ const connection = createAbapConnection(config, logger);
1883
1912
  - JWT token refresh now properly handles connection errors (401/403 during initial connect)
1884
1913
  - Permission errors (403 with "ExceptionResourceNoAccess") no longer trigger JWT refresh loops
1885
1914
  - Proper separation: base class handles HTTP/session, concrete classes handle auth-specific errors
1886
- [Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.4...HEAD
1915
+ [Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.1...HEAD
1916
+ [9.4.1]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.0...v9.4.1
1917
+ [9.4.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.4...v9.4.0
1887
1918
  [9.3.4]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.3...v9.3.4
1888
1919
  [9.3.3]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.2...v9.3.3
1889
1920
  [9.3.2]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.1...v9.3.2
@@ -595,7 +595,7 @@ async function main() {
595
595
  .description(
596
596
  "CLI utility for authentication in SAP BTP ABAP Environment (Steampunk) via browser. Creates .env file with connection configuration."
597
597
  )
598
- .version("0.1.0")
598
+ .version(require("../package.json").version, "-v, --version", "Show version number")
599
599
  .helpOption("-h, --help", "Show help for all commands and options");
600
600
 
601
601
  program
@@ -736,6 +736,14 @@ async function main() {
736
736
  }
737
737
  });
738
738
 
739
+ // `version` as a command, like every CLI in the family (`help` is commander's).
740
+ program
741
+ .command("version")
742
+ .description("Show version number")
743
+ .action(() => {
744
+ console.log(require("../package.json").version);
745
+ });
746
+
739
747
  // Parse and handle command-line arguments
740
748
  program.parse(process.argv);
741
749
 
@@ -57,14 +57,14 @@ implementations must read `request.stateful`; the connection no longer adds
57
57
  `x-sap-adt-sessiontype` itself. The cookie fix was verified on E19 and E98;
58
58
  BASIS 7.40 and ABAP Cloud were not integration-tested for this change.
59
59
 
60
- ## RFC conversation isolation (9.3.2–9.3.4)
60
+ ## RFC conversation isolation (9.3.2–9.4.0)
61
61
 
62
62
  Stateful requests, including LOCK and UNLOCK, share the conversation opened
63
- by `connect()`. Since 9.3.4, `sap-rfc-lite` 0.2.0 and newer let stateless calls
64
- reuse a second conversation: the transport resets its ABAP server context after
65
- each call, keeping the RFC logon open. With older clients (0.1.x), or when a
66
- resettable conversation is busy, each stateless call gets a separate temporary
67
- conversation. Both `setSessionType('stateful')` and a caller-supplied stateful
63
+ by `connect()`. Stateless calls reuse a second conversation: the transport
64
+ resets its ABAP server context after each call, keeping the RFC logon open
65
+ (`sap-rfc-lite` 0.2.0, required since 9.4.0; 9.3.4 introduced it and still
66
+ accepted 0.1.x). When that conversation is busy with another call, a stateless
67
+ call gets a separate temporary conversation. Both `setSessionType('stateful')` and a caller-supplied stateful
68
68
  session header select the persistent conversation.
69
69
 
70
70
  Previously all RFC requests shared one ABAP session. On E19, saving a package
@@ -73,9 +73,10 @@ with **400 PAK/058, “Package … is already locked”**. Reading immediately a
73
73
  creation could fail with **400 SADT_RESOURCE/007**. With separate conversations,
74
74
  create, read, two lock/PUT/unlock rounds and delete passed on one connection.
75
75
 
76
- When using `sap-rfc-lite` 0.1.x, each stateless call pays for an RFC logon:
77
- about 0.5 s on E19, in addition to about 0.1 s for the call. With 0.2.0+, a
78
- resettable call took about 0.24 s total on E19. Direct connector users must mark
76
+ A resettable call took about 0.24 s total on E19; a temporary conversation
77
+ pays for an RFC logon, about 0.5 s on top of about 0.1 s for the call — which
78
+ is what every stateless call cost with `sap-rfc-lite` 0.1.x, and why 9.4.0
79
+ requires 0.2.0. Direct connector users must mark
79
80
  LOCK and UNLOCK stateful to retain their conversation. If disconnect occurs
80
81
  while a temporary conversation is logging on, it is closed without sending
81
82
  the request; reconnect does not revive that pending request.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/connection",
3
- "version": "9.3.4",
3
+ "version": "9.4.1",
4
4
  "description": "ABAP connection layer for MCP ABAP ADT server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -63,7 +63,7 @@
63
63
  "open": "^11.0.0"
64
64
  },
65
65
  "optionalDependencies": {
66
- "@mcp-abap-adt/sap-rfc-lite": "^0.1.0 || ^0.2.0"
66
+ "@mcp-abap-adt/sap-rfc-lite": "^0.2.0"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@biomejs/biome": "^2.3.14",