@mcp-abap-adt/connection 9.4.0 → 9.4.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 CHANGED
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [9.4.2] - 2026-09-27
11
+
12
+ ### Changed
13
+
14
+ - **`@mcp-abap-adt/sap-rfc-lite` `^0.2.1`** (was `^0.2.0`). 0.2.0 on npm was
15
+ packed with a stale `lib/`: its JS client has no `resetServerContext`, so
16
+ this connector found no reset and fell back to a new RFC connection per
17
+ stateless call — correct, but a full RFC run took about 1010 s instead of
18
+ about 684 s. 0.2.1 is packed from `src/`. Raising the minimum makes npm
19
+ replace a locked 0.2.0 too, since it no longer satisfies the range.
20
+
21
+ ## [9.4.1] - 2026-09-27
22
+
23
+ ### Fixed
24
+
25
+ - **`sap-abap-auth --version` printed `0.1.0`** — a number written into the CLI, not the package's. It reads `package.json` now.
26
+
27
+ ### Added
28
+
29
+ - **`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.
30
+
10
31
  ## [9.4.0] - 2026-09-27
11
32
 
12
33
  ### Changed
@@ -1902,7 +1923,9 @@ const connection = createAbapConnection(config, logger);
1902
1923
  - JWT token refresh now properly handles connection errors (401/403 during initial connect)
1903
1924
  - Permission errors (403 with "ExceptionResourceNoAccess") no longer trigger JWT refresh loops
1904
1925
  - Proper separation: base class handles HTTP/session, concrete classes handle auth-specific errors
1905
- [Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.0...HEAD
1926
+ [Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.2...HEAD
1927
+ [9.4.2]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.1...v9.4.2
1928
+ [9.4.1]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.4.0...v9.4.1
1906
1929
  [9.4.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.4...v9.4.0
1907
1930
  [9.3.4]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.3...v9.3.4
1908
1931
  [9.3.3]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.3.2...v9.3.3
package/README.md CHANGED
@@ -294,8 +294,9 @@ on BASIS < 7.50.
294
294
 
295
295
  Since 9.3.2, LOCK and UNLOCK in stateful mode share the persistent RFC
296
296
  conversation; stateless requests use a separate ABAP context. With
297
- `sap-rfc-lite` 0.2.0 or newer, that context is reset between calls on a kept
298
- conversation; older clients open one conversation per call. This prevents stale
297
+ `sap-rfc-lite` 0.2.1 or newer (required since 9.4.2), that context is reset
298
+ between calls on a kept conversation; older clients open one conversation per
299
+ call. 0.2.0 on npm lacks the reset in its JS client and behaves like an older one. This prevents stale
299
300
  package state from causing PAK/058 on later writes or SADT_RESOURCE/007 on a
300
301
  read after create. Concurrent calls use a separate conversation. See
301
302
  [RFC conversation isolation](./docs/STATEFUL_SESSION_GUIDE.md#rfc-conversation-isolation-932-and-933).
@@ -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
 
@@ -62,7 +62,8 @@ BASIS 7.40 and ABAP Cloud were not integration-tested for this change.
62
62
  Stateful requests, including LOCK and UNLOCK, share the conversation opened
63
63
  by `connect()`. Stateless calls reuse a second conversation: the transport
64
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
65
+ (`sap-rfc-lite` 0.2.1, required since 9.4.2; 9.4.0 required 0.2.0, whose npm
66
+ package lacks the reset in its JS client, and 9.3.4 introduced it and still
66
67
  accepted 0.1.x). When that conversation is busy with another call, a stateless
67
68
  call gets a separate temporary conversation. Both `setSessionType('stateful')` and a caller-supplied stateful
68
69
  session header select the persistent conversation.
@@ -75,8 +76,8 @@ create, read, two lock/PUT/unlock rounds and delete passed on one connection.
75
76
 
76
77
  A resettable call took about 0.24 s total on E19; a temporary conversation
77
78
  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
+ is what every stateless call cost with `sap-rfc-lite` 0.1.x (and with 0.2.0,
80
+ whose npm package lacks the reset), and why 9.4.2 requires 0.2.1. Direct connector users must mark
80
81
  LOCK and UNLOCK stateful to retain their conversation. If disconnect occurs
81
82
  while a temporary conversation is logging on, it is closed without sending
82
83
  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.4.0",
3
+ "version": "9.4.2",
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.2.0"
66
+ "@mcp-abap-adt/sap-rfc-lite": "^0.2.1"
67
67
  },
68
68
  "devDependencies": {
69
69
  "@biomejs/biome": "^2.3.14",