@mcp-abap-adt/connection 8.1.0 → 9.1.0

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.
Files changed (41) hide show
  1. package/CHANGELOG.md +125 -1
  2. package/README.md +28 -3
  3. package/dist/auth/FileCertificateMaterialLoader.d.ts +2 -1
  4. package/dist/auth/FileCertificateMaterialLoader.d.ts.map +1 -1
  5. package/dist/auth/providers.d.ts +2 -1
  6. package/dist/auth/providers.d.ts.map +1 -1
  7. package/dist/config/sapConfig.d.ts +1 -1
  8. package/dist/config/sapConfig.d.ts.map +1 -1
  9. package/dist/connection/AbapConnection.d.ts +1 -1
  10. package/dist/connection/AbapConnection.d.ts.map +1 -1
  11. package/dist/connection/AbstractAbapConnection.d.ts +1 -1
  12. package/dist/connection/AbstractAbapConnection.d.ts.map +1 -1
  13. package/dist/connection/AbstractAbapConnection.js +9 -9
  14. package/dist/connection/AdtCloudConnector.d.ts +1 -1
  15. package/dist/connection/AdtCloudConnector.d.ts.map +1 -1
  16. package/dist/connection/AdtOnPremConnector.d.ts +1 -1
  17. package/dist/connection/AdtOnPremConnector.d.ts.map +1 -1
  18. package/dist/connection/CredentialAbapConnection.d.ts +1 -1
  19. package/dist/connection/CredentialAbapConnection.d.ts.map +1 -1
  20. package/dist/connection/GenericWebSocketTransport.d.ts +1 -1
  21. package/dist/connection/GenericWebSocketTransport.d.ts.map +1 -1
  22. package/dist/index.d.ts +1 -1
  23. package/dist/index.d.ts.map +1 -1
  24. package/dist/index.js +4 -3
  25. package/dist/logger.d.ts +1 -1
  26. package/dist/logger.d.ts.map +1 -1
  27. package/dist/session/SessionLifecycle.d.ts +1 -1
  28. package/dist/session/SessionLifecycle.d.ts.map +1 -1
  29. package/dist/session/SessionLifecycle.js +2 -2
  30. package/dist/utils/networkErrors.js +2 -2
  31. package/dist/utils/timeouts.d.ts +1 -1
  32. package/dist/utils/timeouts.d.ts.map +1 -1
  33. package/dist/utils/tokenRefresh.d.ts +1 -1
  34. package/dist/utils/tokenRefresh.d.ts.map +1 -1
  35. package/docs/INDEX.md +2 -0
  36. package/docs/INSTALLATION.md +19 -0
  37. package/docs/MIGRATION-9.0.md +104 -0
  38. package/docs/SCOPE.md +3 -3
  39. package/docs/STATEFUL_SESSION_GUIDE.md +1 -1
  40. package/docs/USAGE.md +3 -3
  41. package/package.json +5 -2
package/CHANGELOG.md CHANGED
@@ -5,8 +5,130 @@ All notable changes to the `@mcp-abap-adt/connection` package will be documented
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [9.1.0] - 2026-09-23
9
+
10
+ ### Changed
11
+
12
+ - **`@mcp-abap-adt/interfaces-adt@^8.0.0`** (was `^6.0.0`) and
13
+ **`interfaces-network@^1.1.0`** (was `^1.0.0`).
14
+
15
+ **Nothing this package imports moved or changed.** Of the 15 names it takes
16
+ from the ADT contract, none is a header name and none is Cloud ALM — the two
17
+ groups that left in 8.0.0 — and `IAdtWireResponse` keeps its name and shape,
18
+ now extending `IHttpWireResponse` from `interfaces-network`, which this package
19
+ already declared. 7.0.0's change was `source` leaving six object configs, and
20
+ this package imports no config.
21
+
22
+ **`interfaces-network` had to move with it**, and the reason is worth keeping:
23
+ with `^1.0.0` declared here and `interfaces-adt@8` requiring `^1.1.0`, npm kept
24
+ 1.0.0 at the root and nested 1.1.0 beneath the ADT contract. Two physical
25
+ copies of the same package, silently — which is the cost
26
+ `docs/MIGRATION-9.0.md` describes and the reason this bump is explicit rather
27
+ than left to a caret range.
28
+
29
+ Checked rather than assumed, after installing:
30
+
31
+ ```
32
+ find node_modules -path "*@mcp-abap-adt/interfaces*/package.json"
33
+ ```
34
+
35
+ One copy of each of the four.
36
+
37
+ - `docs/MIGRATION-9.0.md` said in the present tense that the umbrella decides
38
+ which contract version a consumer gets, and that `interfaces-adt` has majors 1
39
+ through 6. The umbrella — `@mcp-abap-adt/interfaces` — was deleted in its
40
+ 52.0.0, for exactly the cost that paragraph describes. It says so now.
41
+
8
42
  ## [Unreleased]
9
43
 
44
+ ## [9.0.0] - 2026-09-23
45
+
46
+ **The contracts split, and this package follows them rather than the shim left
47
+ behind.** `@mcp-abap-adt/interfaces` became an umbrella whose every export is
48
+ marked `@deprecated`, re-exporting four packages that now hold the contracts.
49
+ Building against the umbrella still works and says so in every editor; it is a
50
+ bridge, and this package has crossed it. No API here changed.
51
+
52
+ ### Changed
53
+
54
+ - **BREAKING** — the dependency on `@mcp-abap-adt/interfaces` is gone, replaced
55
+ by `@mcp-abap-adt/interfaces-adt`, `-auth`, `-network` and `-utils`. Every
56
+ contract import in `src/` names the package the contract lives in. Nothing was
57
+ renamed and no signature moved, so a consumer using only this package's own
58
+ exports changes nothing; a consumer that imported contract types through the
59
+ umbrella now installs the packages it names. See
60
+ [`docs/MIGRATION-9.0.md`](docs/MIGRATION-9.0.md).
61
+
62
+ Not because a re-export loses anything — it does not: through the umbrella
63
+ and directly, `IAuthProvider` is the same type. The umbrella decides which
64
+ VERSION of each contract package a tree gets, since it carries its own ranges
65
+ (`interfaces-adt: ^6.0.0`, and so on). A consumer naming a contract package
66
+ directly outside those ranges gets two physical copies — `interfaces-adt` has
67
+ published majors 1 through 6, so `@4` plus the umbrella puts 4 at the root and
68
+ 6 beneath it. Harmless wherever the shapes agree, because TypeScript is
69
+ structural; a type error at the package boundary, far from the skew that
70
+ caused it, wherever they do not. Depending directly makes the version this
71
+ package's decision and lets `npm ls` answer for it. And every export on the
72
+ umbrella is `@deprecated`, so building on it hands the timing of a breaking
73
+ change to someone else.
74
+
75
+ - `IWebSocketCloseInfo`, `IWebSocketConnectOptions`, `IWebSocketMessageEnvelope`,
76
+ `IWebSocketMessageHandler` and `IWebSocketTransport` are re-exported from
77
+ `@mcp-abap-adt/interfaces-network` instead of the umbrella. Same names, same
78
+ shapes, so an importer of this package's own exports sees no difference.
79
+
80
+ ### Fixed
81
+
82
+ - `scripts/check-docs.mjs` exempted the whole `@mcp-abap-adt/` scope from the
83
+ "stands on a package this repo does not install" question, which was true
84
+ while the scope meant one umbrella this package depended on. After the split
85
+ it made a historical migration note — correct about the import a 6.x consumer
86
+ wrote — fail the build. The exemption is now this package alone.
87
+
88
+ - `scripts/check-docs.mjs` built a page's vocabulary from every fence on the
89
+ page regardless of position, so a fence at the BOTTOM could answer for a
90
+ genuinely undefined name at the top and the check would pass. The comment at
91
+ the point of use states the model — "a page is read top to bottom, so a later
92
+ fence may lean on a name an earlier one established" — and the code now
93
+ follows it: a fence sees only what the fences above it bound. Measured: a
94
+ fence using `zzzProbeName` above the fence that binds it passed silently
95
+ before and is reported now.
96
+
97
+ Skipped fences count toward that vocabulary. One skipped because it stands on
98
+ a package this repo does not install still taught the reader a name, and this
99
+ is what lets `docs/MIGRATION-6.0.md` keep showing the import a 6.x consumer
100
+ wrote.
101
+
102
+ The same violation sat one rung lower, where it reached the compiler rather
103
+ than the filter over its output: the imports lent to a fence that shows none
104
+ were hoisted from the WHOLE page, so a later fence's import typed an earlier
105
+ fence. A continuation now borrows only from the fences above it. Measured on
106
+ a name the page does not otherwise bind: a fence calling
107
+ `new SamlAuthProvider(...)` placed above the only fence importing it compiled
108
+ clean before and is reported now.
109
+
110
+ ### Documentation
111
+
112
+ - `docs/MIGRATION-9.0.md` (new): which package each contract moved to, what a
113
+ consumer does, and why staying on the deprecated umbrella is a bridge rather
114
+ than a destination.
115
+ - `README.md`, `docs/USAGE.md`, `docs/SCOPE.md` and
116
+ `docs/STATEFUL_SESSION_GUIDE.md` name the package each contract is now in.
117
+ Historical migration notes are left alone: they describe the import that was
118
+ correct for the release they document.
119
+ - `README.md` links the 7.0/8.0 migration note, which 8.0.1 added to
120
+ `docs/INDEX.md` and said it had added to both.
121
+ - `README.md` and `docs/INSTALLATION.md` say what to install. Until now the
122
+ contract packages arrived transitively through the umbrella, so no page had
123
+ to mention them; a consumer following the installation guide and naming
124
+ `IAuthProvider` in their own signature would have found nothing there.
125
+ - `README.md` names the four contract packages under External Dependencies, and
126
+ what this package takes from each.
127
+ - `CLAUDE.md` said `IAuthProvider` comes from `@mcp-abap-adt/interfaces` and
128
+ that external dependencies are reached "through interfaces from
129
+ `@mcp-abap-adt/interfaces`". Both were true before the split and are the
130
+ instructions an agent working in this repository reads first.
131
+
10
132
  ## [8.1.0] - 2026-09-21
11
133
 
12
134
  **The RFC wire can be asked for its payload, and what it logs is safe to
@@ -1561,7 +1683,9 @@ const connection = createAbapConnection(config, logger);
1561
1683
  - JWT token refresh now properly handles connection errors (401/403 during initial connect)
1562
1684
  - Permission errors (403 with "ExceptionResourceNoAccess") no longer trigger JWT refresh loops
1563
1685
  - Proper separation: base class handles HTTP/session, concrete classes handle auth-specific errors
1564
- [Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v8.0.1...HEAD
1686
+ [Unreleased]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.1.0...HEAD
1687
+ [9.1.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v9.0.0...v9.1.0
1688
+ [9.0.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v8.1.0...v9.0.0
1565
1689
  [8.1.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v8.0.1...v8.1.0
1566
1690
  [8.0.1]: https://github.com/fr0ster/mcp-abap-connection/compare/v8.0.0...v8.0.1
1567
1691
  [8.0.0]: https://github.com/fr0ster/mcp-abap-connection/compare/v7.0.0...v8.0.0
package/README.md CHANGED
@@ -131,10 +131,26 @@ This package interacts with external packages **ONLY through interfaces**:
131
131
  - **Logger interface**: Uses `ILogger` interface for logging - does not know about concrete logger implementation
132
132
  - **No direct dependencies on auth packages**: All token-related operations are handled through configuration (`SapConfig`) passed by consumers
133
133
 
134
+ The contracts themselves come from four packages, and are the only runtime
135
+ dependencies of this one besides `axios`, `commander` and `open`:
136
+
137
+ | Package | What this package takes from it |
138
+ |---|---|
139
+ | `@mcp-abap-adt/interfaces-adt` | `IAbapConnection`, `ISapConfig`, `ITokenRefresher`, the capability atoms, `ADT_SESSION_ERROR` |
140
+ | `@mcp-abap-adt/interfaces-auth` | `IAuthProvider`, `IRenewableCredential`, `ICertificateMaterial` |
141
+ | `@mcp-abap-adt/interfaces-network` | `ITimeoutConfig`, `NETWORK_ERROR_CODES`, the WebSocket contracts |
142
+ | `@mcp-abap-adt/interfaces-utils` | `ILogger` |
143
+
144
+ Not `@mcp-abap-adt/interfaces`. That name is now an umbrella of deprecated
145
+ re-exports, and this package no longer depends on it — see
146
+ [Migration to 9.0.0](./docs/MIGRATION-9.0.md).
147
+
134
148
  ## Documentation
135
149
 
136
150
  - 📦 **[Installation Guide](./docs/INSTALLATION.md)** - Setup and installation instructions
137
151
  - 📚 **[Usage Guide](./docs/USAGE.md)** - Detailed usage examples and API documentation
152
+ - 🚚 **[Migration to 9.0.0](./docs/MIGRATION-9.0.md)** - the contracts split out of `@mcp-abap-adt/interfaces`; which package each one moved to
153
+ - 🚚 **[Migration to 7.0.0 and 8.0.0](./docs/MIGRATION-8.0.md)** - request headers leave the stateful branch, the contracts floor moves, and `flushGoodbye()`
138
154
  - 🚚 **[Migration to 6.0.0](./docs/MIGRATION-6.0.md)** - the factory and the per-credential classes are removed; RFC is a transport, not a class
139
155
  - 🚚 **[Migration to 4.0.0](./docs/MIGRATION-4.0.md)** - a 401 refreshes the token, a 403 reaches you with the server's message; the synthesised "JWT token has expired" is gone
140
156
  - 🚚 **[Migration: the explicit session lifecycle](./docs/MIGRATION-2.0.md)** - `connect()` is now required; start here if you are coming from 1.x
@@ -155,6 +171,15 @@ This package interacts with external packages **ONLY through interfaces**:
155
171
  npm install @mcp-abap-adt/connection
156
172
  ```
157
173
 
174
+ That is everything you need to **use** the connectors. If your own code names a
175
+ contract type — `IAuthProvider` for a credential you write, `ISapConfig` for a
176
+ config you build — install the package it lives in as well, because this one no
177
+ longer brings them along:
178
+
179
+ ```bash
180
+ npm install @mcp-abap-adt/interfaces-adt @mcp-abap-adt/interfaces-auth
181
+ ```
182
+
158
183
  For detailed installation instructions, see [Installation Guide](./docs/INSTALLATION.md).
159
184
 
160
185
  ## Quick Start
@@ -345,7 +370,7 @@ import {
345
370
  TokenAuthProvider,
346
371
  getTimeout,
347
372
  } from "@mcp-abap-adt/connection";
348
- import type { ITokenRefresher } from "@mcp-abap-adt/interfaces";
373
+ import type { ITokenRefresher } from "@mcp-abap-adt/interfaces-adt";
349
374
 
350
375
  // Token refresher provides token acquisition and refresh
351
376
  // (created by @mcp-abap-adt/auth-broker or custom implementation)
@@ -579,7 +604,7 @@ interface AbapConnection {
579
604
  ```
580
605
 
581
606
  The connectors carry the rest of the session lifecycle. It is on the shared
582
- contract as a **capability atom** in `@mcp-abap-adt/interfaces` rather than as
607
+ contract as a **capability atom** in `@mcp-abap-adt/interfaces-adt` rather than as
583
608
  methods on `IAbapConnection`, so a consumer that only carries requests is
584
609
  unaffected by its existence. Note that a connection over RFC has the whole of it
585
610
  — what an RFC conversation has none of is a session RESOURCE to open and close
@@ -592,7 +617,7 @@ isConnected(): boolean;
592
617
  getSessionIdentity(): string | null; // WHICH SAP session; null is not "disconnected"
593
618
  ```
594
619
 
595
- Import those names from `@mcp-abap-adt/interfaces`, not from this package: a
620
+ Import those names from `@mcp-abap-adt/interfaces-adt`, not from this package: a
596
621
  contract type re-exported under a second name is a contract type that can drift.
597
622
 
598
623
  **The connection does not track locks.** Deciding when to disconnect, and
@@ -1,4 +1,5 @@
1
- import type { ICertificateMaterial, ICertificateMaterialLoader, ISapConfig } from '@mcp-abap-adt/interfaces';
1
+ import type { ICertificateMaterialLoader, ISapConfig } from '@mcp-abap-adt/interfaces-adt';
2
+ import type { ICertificateMaterial } from '@mcp-abap-adt/interfaces-auth';
2
3
  export declare class FileCertificateMaterialLoader implements ICertificateMaterialLoader {
3
4
  load(config: ISapConfig): Promise<ICertificateMaterial>;
4
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"FileCertificateMaterialLoader.d.ts","sourceRoot":"","sources":["../../src/auth/FileCertificateMaterialLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,oBAAoB,EACpB,0BAA0B,EAC1B,UAAU,EACX,MAAM,0BAA0B,CAAC;AAElC,qBAAa,6BACX,YAAW,0BAA0B;IAE/B,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAyB9D"}
1
+ {"version":3,"file":"FileCertificateMaterialLoader.d.ts","sourceRoot":"","sources":["../../src/auth/FileCertificateMaterialLoader.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,EACX,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAE1E,qBAAa,6BACX,YAAW,0BAA0B;IAE/B,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC;CAyB9D"}
@@ -7,7 +7,8 @@
7
7
  * `CertificateAuthProvider` returns are what `CertificateAbapConnection`
8
8
  * returned. Nothing about how a credential works changed; only who owns it.
9
9
  */
10
- import type { IAuthProvider, ICertificateMaterial, ICertificateMaterialLoader, IRenewableCredential, ISapConfig, ITokenRefresher } from '@mcp-abap-adt/interfaces';
10
+ import type { ICertificateMaterialLoader, ISapConfig, ITokenRefresher } from '@mcp-abap-adt/interfaces-adt';
11
+ import type { IAuthProvider, ICertificateMaterial, IRenewableCredential } from '@mcp-abap-adt/interfaces-auth';
11
12
  /** Username and password, as `Basic base64(user:pass)`. */
12
13
  export declare class BasicAuthProvider implements IAuthProvider {
13
14
  private readonly username;
@@ -1 +1 @@
1
- {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/auth/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,0BAA0B,EAC1B,oBAAoB,EACpB,UAAU,EACV,eAAe,EAChB,MAAM,0BAA0B,CAAC;AAElC,2DAA2D;AAC3D,qBAAa,iBAAkB,YAAW,aAAa;IAiBnD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,QAAQ,CAAC,IAAI,WAAW;IAExB,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,yDAAyD;IACzD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,gFAAgF;IAChF,iBAAiB,IAAI,oBAAoB;gBAKtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;IAG7B,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGpD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IAyB1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAxBzB,QAAQ,CAAC,IAAI,WAAW;IAExB,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,yDAAyD;IACzD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,gFAAgF;IAChF,iBAAiB,IAAI,oBAAoB;IAIzC;;;;;;;OAOG;gBAEgB,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7E;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnD;;;;;;;;;;;;;;;;;;OAkBG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IAWxC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAV3C,QAAQ,CAAC,IAAI,UAAU;IAEvB,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,gFAAgF;IAChF,iBAAiB,IAAI,oBAAoB;gBAIZ,cAAc,EAAE,MAAM;IAEnD,0EAA0E;IACpE,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInD,8BAA8B;IAC9B,OAAO,IAAI,MAAM;CAGlB;AAED;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAWzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,QAAQ,CAAC,IAAI,iBAAiB;IAE9B,yDAAyD;IACzD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,QAAQ,CAAqC;gBAGlC,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,UAAU;IAG/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,+DAA+D;IACzD,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInD,iBAAiB,IAAI,oBAAoB;CAS1C"}
1
+ {"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../src/auth/providers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,0BAA0B,EAC1B,UAAU,EACV,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EACV,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACrB,MAAM,+BAA+B,CAAC;AAEvC,2DAA2D;AAC3D,qBAAa,iBAAkB,YAAW,aAAa;IAiBnD,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAjB3B,QAAQ,CAAC,IAAI,WAAW;IAExB,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,yDAAyD;IACzD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,gFAAgF;IAChF,iBAAiB,IAAI,oBAAoB;gBAKtB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM;IAG7B,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAGpD;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,iBAAkB,YAAW,oBAAoB;IAyB1D,OAAO,CAAC,QAAQ,CAAC,MAAM;IAxBzB,QAAQ,CAAC,IAAI,WAAW;IAExB,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,yDAAyD;IACzD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,gFAAgF;IAChF,iBAAiB,IAAI,oBAAoB;IAIzC;;;;;;;OAOG;gBAEgB,MAAM,EAAE,MAAM,GAAG,eAAe,GAAG,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IAG7E;;;;;;;OAOG;IACG,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAUnD;;;;;;;;;;;;;;;;;;OAkBG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B;AAED;;;;;GAKG;AACH,qBAAa,gBAAiB,YAAW,aAAa;IAWxC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAV3C,QAAQ,CAAC,IAAI,UAAU;IAEvB,wEAAwE;IAClE,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B,gFAAgF;IAChF,iBAAiB,IAAI,oBAAoB;gBAIZ,cAAc,EAAE,MAAM;IAEnD,0EAA0E;IACpE,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInD,8BAA8B;IAC9B,OAAO,IAAI,MAAM;CAGlB;AAED;;;;;;GAMG;AACH,qBAAa,uBAAwB,YAAW,aAAa;IAWzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAXzB,QAAQ,CAAC,IAAI,iBAAiB;IAE9B,yDAAyD;IACzD,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,OAAO,CAAC,QAAQ,CAAqC;gBAGlC,MAAM,EAAE,0BAA0B,EAClC,MAAM,EAAE,UAAU;IAG/B,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,+DAA+D;IACzD,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAInD,iBAAiB,IAAI,oBAAoB;CAS1C"}
@@ -1,4 +1,4 @@
1
- import type { ISapConfig, SapAuthType, SapConnectionType } from '@mcp-abap-adt/interfaces';
1
+ import type { ISapConfig, SapAuthType, SapConnectionType } from '@mcp-abap-adt/interfaces-adt';
2
2
  export type { SapAuthType, SapConnectionType };
3
3
  export type SapConfig = ISapConfig;
4
4
  export declare function sapConfigSignature(config: ISapConfig): string;
@@ -1 +1 @@
1
- {"version":3,"file":"sapConfig.d.ts","sourceRoot":"","sources":["../../src/config/sapConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAGlC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC/C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAEnC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA4B7D"}
1
+ {"version":3,"file":"sapConfig.d.ts","sourceRoot":"","sources":["../../src/config/sapConfig.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,iBAAiB,EAClB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;AAC/C,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC;AAEnC,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CA4B7D"}
@@ -1,4 +1,4 @@
1
- import type { IAbapConnection, IAbapRequestOptions } from '@mcp-abap-adt/interfaces';
1
+ import type { IAbapConnection, IAbapRequestOptions } from '@mcp-abap-adt/interfaces-adt';
2
2
  export type AbapRequestOptions = IAbapRequestOptions;
3
3
  export type AbapConnection = IAbapConnection;
4
4
  //# sourceMappingURL=AbapConnection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbapConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAGlC,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC"}
1
+ {"version":3,"file":"AbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbapConnection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACpB,MAAM,8BAA8B,CAAC;AAGtC,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AACrD,MAAM,MAAM,cAAc,GAAG,eAAe,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type IAdtWireResponse, type ICriticalSection, type IRequestProfiling, type ISessionLifecycleAware } from '@mcp-abap-adt/interfaces';
1
+ import { type IAdtWireResponse, type ICriticalSection, type IRequestProfiling, type ISessionLifecycleAware } from '@mcp-abap-adt/interfaces-adt';
2
2
  import type { SapConfig } from '../config/sapConfig.js';
3
3
  import type { ILogger } from '../logger.js';
4
4
  import { SessionLifecycle } from '../session/SessionLifecycle.js';
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/AbstractAbapConnection.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AbstractAbapConnection = void 0;
4
4
  const node_crypto_1 = require("node:crypto");
5
- const interfaces_1 = require("@mcp-abap-adt/interfaces");
5
+ const interfaces_adt_1 = require("@mcp-abap-adt/interfaces-adt");
6
6
  const SessionLifecycle_js_1 = require("../session/SessionLifecycle.js");
7
7
  const networkErrors_js_1 = require("../utils/networkErrors.js");
8
8
  const timeouts_js_1 = require("../utils/timeouts.js");
@@ -486,7 +486,7 @@ class AbstractAbapConnection {
486
486
  }
487
487
  async establishAndCommit(baselineEpoch) {
488
488
  if (this.lifecycle.teardownEpoch !== baselineEpoch) {
489
- throw (0, SessionLifecycle_js_1.sessionError)(interfaces_1.ADT_SESSION_ERROR.NOT_CONNECTED, 'Establishment abandoned: a teardown was requested for this connection');
489
+ throw (0, SessionLifecycle_js_1.sessionError)(interfaces_adt_1.ADT_SESSION_ERROR.NOT_CONNECTED, 'Establishment abandoned: a teardown was requested for this connection');
490
490
  }
491
491
  // Whatever session arrives from here is one we are deliberately
492
492
  // establishing, so it must not read as a replacement: the identity policy
@@ -561,7 +561,7 @@ class AbstractAbapConnection {
561
561
  // the CSRF token and the axios instance out from under a request that is
562
562
  // still in flight — breaking the guarantee this whole change rests on,
563
563
  // from inside the guard meant to protect it.
564
- throw (0, SessionLifecycle_js_1.sessionError)(interfaces_1.ADT_SESSION_ERROR.NOT_CONNECTED, 'Establishment abandoned: a teardown was requested while it was in flight');
564
+ throw (0, SessionLifecycle_js_1.sessionError)(interfaces_adt_1.ADT_SESSION_ERROR.NOT_CONNECTED, 'Establishment abandoned: a teardown was requested while it was in flight');
565
565
  }
566
566
  // The session IS the SAP_SESSIONID the server issued; our own session id is
567
567
  // a conversation label we generate and says nothing about what exists on
@@ -612,7 +612,7 @@ class AbstractAbapConnection {
612
612
  this.invalidateSession();
613
613
  this.lifecycle.forgetIdentity();
614
614
  this.lifecycle.markDisconnected();
615
- throw (0, SessionLifecycle_js_1.sessionError)(interfaces_1.ADT_SESSION_ERROR.NOT_CONNECTED, `The server authenticated the request but opened no ABAP session: the ${this.transport.kind} wire reports it is on none, so there is nothing for a lock to be bound to. The wire itself is fine — the request was carried and answered — which is why this is not a transport failure and does not look like one. ` +
615
+ throw (0, SessionLifecycle_js_1.sessionError)(interfaces_adt_1.ADT_SESSION_ERROR.NOT_CONNECTED, `The server authenticated the request but opened no ABAP session: the ${this.transport.kind} wire reports it is on none, so there is nothing for a lock to be bound to. The wire itself is fine — the request was carried and answered — which is why this is not a transport failure and does not look like one. ` +
616
616
  'Stateless reads would still work over it, but a lock, and any write under that lock, is dead the moment it is issued. ' +
617
617
  'The usual cause is the system declining to open another session for this user: they are limited per user, shared with every other tool logged on as them, and released either by disconnecting or by their own idle timeout. ' +
618
618
  'Whether to wait, retry, or release sessions this user still holds is yours to decide — this library does not retry on your behalf.');
@@ -675,9 +675,9 @@ class AbstractAbapConnection {
675
675
  */
676
676
  isSessionVerdict(error) {
677
677
  const code = error?.code;
678
- return (code === interfaces_1.ADT_SESSION_ERROR.SESSION_REPLACED ||
679
- code === interfaces_1.ADT_SESSION_ERROR.NOT_CONNECTED ||
680
- code === interfaces_1.ADT_SESSION_ERROR.RELEASE_PENDING);
678
+ return (code === interfaces_adt_1.ADT_SESSION_ERROR.SESSION_REPLACED ||
679
+ code === interfaces_adt_1.ADT_SESSION_ERROR.NOT_CONNECTED ||
680
+ code === interfaces_adt_1.ADT_SESSION_ERROR.RELEASE_PENDING);
681
681
  }
682
682
  /**
683
683
  * Folds a response into the session state AND acts on what it means, in one
@@ -728,7 +728,7 @@ class AbstractAbapConnection {
728
728
  if (classification !== 'replaced')
729
729
  return;
730
730
  this.raiseSessionLost('the session cookie changed under us');
731
- throw (0, SessionLifecycle_js_1.sessionError)(interfaces_1.ADT_SESSION_ERROR.SESSION_REPLACED, 'The SAP session this connection was using is gone and the requests are now on a different one; anything held against the old session — a lock and any write under it — is dead. ' +
731
+ throw (0, SessionLifecycle_js_1.sessionError)(interfaces_adt_1.ADT_SESSION_ERROR.SESSION_REPLACED, 'The SAP session this connection was using is gone and the requests are now on a different one; anything held against the old session — a lock and any write under it — is dead. ' +
732
732
  'The server does not swap sessions on a whim: the usual causes are the session idling out (the timeout is idle-based, so a quiet connection loses it while a busy one does not) or a request landing on a different application server. ' +
733
733
  'What to do about it is yours: re-establish and redo the work, or fail the operation. Nothing is retried here.');
734
734
  }
@@ -975,7 +975,7 @@ class AbstractAbapConnection {
975
975
  this.raiseSessionLost('the server reports the session no longer exists');
976
976
  // No internal retry: a blind retry here is what produced further locks
977
977
  // in the field. The caller decides.
978
- throw (0, SessionLifecycle_js_1.sessionError)(interfaces_1.ADT_SESSION_ERROR.SESSION_REPLACED, 'The SAP session no longer exists; any lock handle from it is dead');
978
+ throw (0, SessionLifecycle_js_1.sessionError)(interfaces_adt_1.ADT_SESSION_ERROR.SESSION_REPLACED, 'The SAP session no longer exists; any lock handle from it is dead');
979
979
  }
980
980
  // Check if this is a network error (connection refused, timeout, DNS, etc.)
981
981
  // Don't retry for network errors - these indicate infrastructure/VPN issues
@@ -15,7 +15,7 @@
15
15
  * inferred — not from the credential, not from the host name, not from what the
16
16
  * server answers.
17
17
  */
18
- import type { IAuthProvider } from '@mcp-abap-adt/interfaces';
18
+ import type { IAuthProvider } from '@mcp-abap-adt/interfaces-auth';
19
19
  import type { SapConfig } from '../config/sapConfig.js';
20
20
  import type { ILogger } from '../logger.js';
21
21
  import type { CloudHttpTransport } from './CloudHttpTransport.js';
@@ -1 +1 @@
1
- {"version":3,"file":"AdtCloudConnector.d.ts","sourceRoot":"","sources":["../../src/connection/AdtCloudConnector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,iBAAiB,CAC5B,WAAW,SAAS,aAAa,GAAG,aAAa;AACjD;;;;GAIG;AACH,UAAU,SAAS,eAAe,GAAG,kBAAkB,CACvD,SAAQ,wBAAwB,CAAC,WAAW,CAAC;IAC7C,SAAiB,SAAS,EAAE,UAAU,CAAC;gBAGrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,UAAU,EACrB,MAAM,GAAE,OAAO,GAAG,IAAW,EAC7B,SAAS,CAAC,EAAE,MAAM;CAIrB"}
1
+ {"version":3,"file":"AdtCloudConnector.d.ts","sourceRoot":"","sources":["../../src/connection/AdtCloudConnector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAE1D,qBAAa,iBAAiB,CAC5B,WAAW,SAAS,aAAa,GAAG,aAAa;AACjD;;;;GAIG;AACH,UAAU,SAAS,eAAe,GAAG,kBAAkB,CACvD,SAAQ,wBAAwB,CAAC,WAAW,CAAC;IAC7C,SAAiB,SAAS,EAAE,UAAU,CAAC;gBAGrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,UAAU,EACrB,MAAM,GAAE,OAAO,GAAG,IAAW,EAC7B,SAAS,CAAC,EAAE,MAAM;CAIrB"}
@@ -16,7 +16,7 @@
16
16
  * asked for this connector — not because of what is in the header, and not
17
17
  * because anything worked out where it was pointing.
18
18
  */
19
- import type { IAuthProvider } from '@mcp-abap-adt/interfaces';
19
+ import type { IAuthProvider } from '@mcp-abap-adt/interfaces-auth';
20
20
  import type { SapConfig } from '../config/sapConfig.js';
21
21
  import type { ILogger } from '../logger.js';
22
22
  import { CredentialAbapConnection } from './CredentialAbapConnection.js';
@@ -1 +1 @@
1
- {"version":3,"file":"AdtOnPremConnector.d.ts","sourceRoot":"","sources":["../../src/connection/AdtOnPremConnector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,qBAAa,kBAAkB,CAC7B,WAAW,SAAS,aAAa,GAAG,aAAa;AACjD;;;;GAIG;AACH,UAAU,SAAS,gBAAgB,GAAG,mBAAmB,CACzD,SAAQ,wBAAwB,CAAC,WAAW,CAAC;IAC7C;;;;;;;OAOG;IACH,SAAiB,SAAS,EAAE,UAAU,CAAC;gBAGrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,UAAU,EACrB,MAAM,GAAE,OAAO,GAAG,IAAW,EAC7B,SAAS,CAAC,EAAE,MAAM;CAIrB"}
1
+ {"version":3,"file":"AdtOnPremConnector.d.ts","sourceRoot":"","sources":["../../src/connection/AdtOnPremConnector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAEpE,qBAAa,kBAAkB,CAC7B,WAAW,SAAS,aAAa,GAAG,aAAa;AACjD;;;;GAIG;AACH,UAAU,SAAS,gBAAgB,GAAG,mBAAmB,CACzD,SAAQ,wBAAwB,CAAC,WAAW,CAAC;IAC7C;;;;;;;OAOG;IACH,SAAiB,SAAS,EAAE,UAAU,CAAC;gBAGrC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,WAAW,EACvB,SAAS,EAAE,UAAU,EACrB,MAAM,GAAE,OAAO,GAAG,IAAW,EAC7B,SAAS,CAAC,EAAE,MAAM;CAIrB"}
@@ -13,7 +13,7 @@
13
13
  * chose the subclass, and is never worked out here.
14
14
  */
15
15
  import type { AgentOptions } from 'node:https';
16
- import type { IAuthProvider } from '@mcp-abap-adt/interfaces';
16
+ import type { IAuthProvider } from '@mcp-abap-adt/interfaces-auth';
17
17
  import type { SapConfig } from '../config/sapConfig.js';
18
18
  import type { ILogger } from '../logger.js';
19
19
  import { AbstractAbapConnection } from './AbstractAbapConnection.js';
@@ -1 +1 @@
1
- {"version":3,"file":"CredentialAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/CredentialAbapConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,KAAK,EAGV,aAAa,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,oBAAoB,CAAC;AASnE,8BAAsB,wBAAwB,CAC5C,WAAW,SAAS,aAAa,GAAG,aAAa,CACjD,SAAQ,sBAAsB;IAG5B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,WAAW;gBAFhC,MAAM,EAAE,SAAS;IACjB,6EAA6E;IACpE,UAAU,EAAE,WAAW,EAChC,SAAS,EAAE,aAAa,EACxB,MAAM,GAAE,OAAO,GAAG,IAAW,EAC7B,SAAS,CAAC,EAAE,MAAM;IAKpB;;;;;;;OAOG;IACH,gEAAgE;cAEvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAI5C;;;;;;OAMG;IACY,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;cAiB7C,oBAAoB,IAAI,YAAY;cAIvC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoDlD"}
1
+ {"version":3,"file":"CredentialAbapConnection.d.ts","sourceRoot":"","sources":["../../src/connection/CredentialAbapConnection.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAK/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,EAAE,KAAK,aAAa,EAAa,MAAM,oBAAoB,CAAC;AASnE,8BAAsB,wBAAwB,CAC5C,WAAW,SAAS,aAAa,GAAG,aAAa,CACjD,SAAQ,sBAAsB;IAG5B,6EAA6E;IAC7E,QAAQ,CAAC,UAAU,EAAE,WAAW;gBAFhC,MAAM,EAAE,SAAS;IACjB,6EAA6E;IACpE,UAAU,EAAE,WAAW,EAChC,SAAS,EAAE,aAAa,EACxB,MAAM,GAAE,OAAO,GAAG,IAAW,EAC7B,SAAS,CAAC,EAAE,MAAM;IAKpB;;;;;;;OAOG;IACH,gEAAgE;cAEvC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;;OAKG;IACH,SAAS,CAAC,wBAAwB,IAAI,MAAM;IAI5C;;;;;;OAMG;IACY,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;cAiB7C,oBAAoB,IAAI,YAAY;cAIvC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;CAoDlD"}
@@ -1,4 +1,4 @@
1
- import type { IWebSocketCloseInfo, IWebSocketConnectOptions, IWebSocketMessageEnvelope, IWebSocketMessageHandler, IWebSocketTransport } from '@mcp-abap-adt/interfaces';
1
+ import type { IWebSocketCloseInfo, IWebSocketConnectOptions, IWebSocketMessageEnvelope, IWebSocketMessageHandler, IWebSocketTransport } from '@mcp-abap-adt/interfaces-network';
2
2
  /**
3
3
  * Minimal WS-like instance contract to avoid hard dependency on a specific WS library.
4
4
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GenericWebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/connection/GenericWebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,OAAO,EACH,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC,GACzE,IAAI,CAAC;CACV;AAED,UAAU,iBAAiB;IACzB,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,wBAAwB,GACjC,cAAc,CAAC;CACnB;AAID,qBAAa,yBAA0B,YAAW,mBAAmB;IASvD,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,aAAa,CAEd;gBAEsB,OAAO,EAAE,iBAAiB;IAEjD,OAAO,CACX,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAqDV,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAQhB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIlE,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIjD,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI9D,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI3E,WAAW,IAAI,OAAO;YAIR,qBAAqB;IAoBnC,OAAO,CAAC,cAAc;YAUR,QAAQ;YAMR,SAAS;YAMT,SAAS;CAKxB;AAED,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
1
+ {"version":3,"file":"GenericWebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/connection/GenericWebSocketTransport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,EACpB,MAAM,kCAAkC,CAAC;AAE1C;;GAEG;AACH,UAAU,cAAc;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC1C,SAAS,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IACvD,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3C,OAAO,EACH,CAAC,CAAC,KAAK,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC,GACzE,IAAI,CAAC;CACV;AAED,UAAU,iBAAiB;IACzB,MAAM,CACJ,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,EAC7B,OAAO,CAAC,EAAE,wBAAwB,GACjC,cAAc,CAAC;CACnB;AAID,qBAAa,yBAA0B,YAAW,mBAAmB;IASvD,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,MAAM,CAA+B;IAC7C,OAAO,CAAC,eAAe,CAAgD;IACvE,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,aAAa,CAAqD;IAC1E,OAAO,CAAC,aAAa,CAEd;gBAEsB,OAAO,EAAE,iBAAiB;IAEjD,OAAO,CACX,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,wBAAwB,GACjC,OAAO,CAAC,IAAI,CAAC;IAqDV,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBzD,IAAI,CAAC,CAAC,GAAG,OAAO,EACpB,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC;IAQhB,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI;IAIlE,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAIjD,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI9D,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI;IAI3E,WAAW,IAAI,OAAO;YAIR,qBAAqB;IAoBnC,OAAO,CAAC,cAAc;YAUR,QAAQ;YAMR,SAAS;YAMT,SAAS;CAKxB;AAED,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { IWebSocketCloseInfo, IWebSocketConnectOptions, IWebSocketMessageEnvelope, IWebSocketMessageHandler, IWebSocketTransport, } from '@mcp-abap-adt/interfaces';
1
+ export type { IWebSocketCloseInfo, IWebSocketConnectOptions, IWebSocketMessageEnvelope, IWebSocketMessageHandler, IWebSocketTransport, } from '@mcp-abap-adt/interfaces-network';
2
2
  export { FileCertificateMaterialLoader } from './auth/FileCertificateMaterialLoader.js';
3
3
  export { BasicAuthProvider, CertificateAuthProvider, SamlAuthProvider, TokenAuthProvider, } from './auth/providers.js';
4
4
  export type { SapAuthType, SapConfig, SapConnectionType, } from './config/sapConfig.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAKxF,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,YAAY,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAQxE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,YAAY,GACb,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,6BAA6B,EAAE,MAAM,yCAAyC,CAAC;AAKxF,OAAO,EACL,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE3D,YAAY,EACV,cAAc,EACd,kBAAkB,GACnB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAQxE,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,yBAAyB,EACzB,KAAK,iBAAiB,EACtB,KAAK,cAAc,GACpB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,gBAAgB,GACjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,YAAY,GACb,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EACL,KAAK,mBAAmB,EACxB,mBAAmB,EACnB,aAAa,GACd,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EACL,UAAU,EACV,gBAAgB,EAChB,KAAK,aAAa,GACnB,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  "use strict";
2
- // Types - re-exported from interfaces package with backward compatibility aliases
2
+ // Types - re-exported from the contract packages, under the names this
3
+ // package has always published them by.
3
4
  Object.defineProperty(exports, "__esModule", { value: true });
4
5
  exports.getTimeoutConfig = exports.getTimeout = exports.rfcParamsFrom = exports.rfcConversationFrom = exports.RfcTransport = exports.OnPremHttpTransport = exports.LegacyOnPremHttpTransport = exports.HttpTransport = exports.GenericWebSocketTransport = exports.CSRF_ERROR_MESSAGES = exports.CSRF_CONFIG = exports.CloudHttpTransport = exports.AdtOnPremConnector = exports.AdtCloudConnector = exports.sapConfigSignature = exports.TokenAuthProvider = exports.SamlAuthProvider = exports.CertificateAuthProvider = exports.BasicAuthProvider = exports.FileCertificateMaterialLoader = void 0;
5
6
  var FileCertificateMaterialLoader_js_1 = require("./auth/FileCertificateMaterialLoader.js");
6
7
  Object.defineProperty(exports, "FileCertificateMaterialLoader", { enumerable: true, get: function () { return FileCertificateMaterialLoader_js_1.FileCertificateMaterialLoader; } });
7
8
  // IAuthProvider is deliberately NOT re-exported. It lives in
8
- // @mcp-abap-adt/interfaces and a consumer imports it from there — the same rule
9
+ // @mcp-abap-adt/interfaces-auth and a consumer imports it from there — the same rule
9
10
  // the session-lifecycle vocabulary follows below, and for the same reason: two
10
11
  // names for one contract let the two drift.
11
12
  var providers_js_1 = require("./auth/providers.js");
@@ -23,7 +24,7 @@ Object.defineProperty(exports, "AdtOnPremConnector", { enumerable: true, get: fu
23
24
  var CloudHttpTransport_js_1 = require("./connection/CloudHttpTransport.js");
24
25
  Object.defineProperty(exports, "CloudHttpTransport", { enumerable: true, get: function () { return CloudHttpTransport_js_1.CloudHttpTransport; } });
25
26
  // The session lifecycle vocabulary — ISessionLifecycleAware, ADT_SESSION_ERROR —
26
- // is deliberately NOT exported here. It lives in @mcp-abap-adt/interfaces, and a
27
+ // is deliberately NOT exported here. It lives in @mcp-abap-adt/interfaces-adt, and a
27
28
  // consumer imports it from there: re-exporting a contract type gives it two
28
29
  // names and lets the two drift.
29
30
  // Connection classes - only final implementations
package/dist/logger.d.ts CHANGED
@@ -1,3 +1,3 @@
1
- import type { ILogger } from '@mcp-abap-adt/interfaces';
1
+ import type { ILogger } from '@mcp-abap-adt/interfaces-utils';
2
2
  export type { ILogger };
3
3
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AAGxD,YAAY,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAG9D,YAAY,EAAE,OAAO,EAAE,CAAC"}
@@ -25,7 +25,7 @@
25
25
  * anything held against the old one;
26
26
  * an unchanged one says nothing about whether the server still has it.
27
27
  */
28
- import { type AdtSessionErrorCode } from '@mcp-abap-adt/interfaces';
28
+ import { type AdtSessionErrorCode } from '@mcp-abap-adt/interfaces-adt';
29
29
  export type TransitionKind = 'connect' | 'disconnect' | 'recover' | 'cleanup';
30
30
  export interface RequestLease {
31
31
  /** Teardown epoch at admission — the baseline a recovery compares against. */
@@ -1 +1 @@
1
- {"version":3,"file":"SessionLifecycle.d.ts","sourceRoot":"","sources":["../../src/session/SessionLifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,0BAA0B,CAAC;AAElC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,iFAAiF;IACjF,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,MAAM,GACf,KAAK,GAAG;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAMvC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAgD;IAC7D,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAAiC;IAIpD,4EAA4E;IAC5E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAM5B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACH,aAAa,CAAC,WAAW,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAAG,IAAI;IAOzE;;;;;;OAMG;IACH,cAAc,IAAI,IAAI;IAItB,gBAAgB,IAAI,IAAI;IAKxB;;;;;;OAMG;IACH,OAAO,CACL,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,WAAW,GAAG,aAAa,GAAG,UAAU;IAiB3C,YAAY,IAAI,IAAI;IAMpB,4EAA4E;IAC5E,YAAY,IAAI,YAAY;IAiB5B,2FAA2F;IAC3F,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,OAAO;IAM3D,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,oBAAoB,GAAG,IAAI;IAelE,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAID;;;;;;;;;OASG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAuBvE"}
1
+ {"version":3,"file":"SessionLifecycle.d.ts","sourceRoot":"","sources":["../../src/session/SessionLifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAEL,KAAK,mBAAmB,EACzB,MAAM,8BAA8B,CAAC;AAEtC,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,SAAS,CAAC;AAE9E,MAAM,WAAW,YAAY;IAC3B,8EAA8E;IAC9E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,OAAO,IAAI,IAAI,CAAC;CACjB;AAED,MAAM,WAAW,oBAAoB;IACnC,0FAA0F;IAC1F,MAAM,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC9B,iFAAiF;IACjF,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,YAAY,CAC1B,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,MAAM,GACf,KAAK,GAAG;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,CAMvC;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,KAAK,CAAgD;IAC7D,OAAO,CAAC,WAAW,CAA6B;IAChD,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAK;IAErB,OAAO,CAAC,IAAI,CAAuC;IACnD,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,WAAW,CAAiC;IAIpD,4EAA4E;IAC5E,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,0EAA0E;IAC1E,IAAI,QAAQ,IAAI,MAAM,GAAG,IAAI,CAM5B;IAED,IAAI,aAAa,IAAI,MAAM,CAE1B;IAED;;;;;;;;;;;;;OAaG;IACH,IAAI,iBAAiB,IAAI,MAAM,CAE9B;IAED;;;;;OAKG;IACH,aAAa,CAAC,WAAW,GAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAa,GAAG,IAAI;IAOzE;;;;;;OAMG;IACH,cAAc,IAAI,IAAI;IAItB,gBAAgB,IAAI,IAAI;IAKxB;;;;;;OAMG;IACH,OAAO,CACL,WAAW,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACvC,WAAW,GAAG,aAAa,GAAG,UAAU;IAiB3C,YAAY,IAAI,IAAI;IAMpB,4EAA4E;IAC5E,YAAY,IAAI,YAAY;IAiB5B,2FAA2F;IAC3F,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,YAAY,CAAC,GAAG,OAAO;IAM3D,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,oBAAoB,GAAG,IAAI;IAelE,IAAI,iBAAiB,IAAI,OAAO,CAE/B;IAID;;;;;;;;;OASG;IACH,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAuBvE"}
@@ -29,7 +29,7 @@
29
29
  Object.defineProperty(exports, "__esModule", { value: true });
30
30
  exports.SessionLifecycle = void 0;
31
31
  exports.sessionError = sessionError;
32
- const interfaces_1 = require("@mcp-abap-adt/interfaces");
32
+ const interfaces_adt_1 = require("@mcp-abap-adt/interfaces-adt");
33
33
  function sessionError(code, message) {
34
34
  const error = new Error(message ?? code);
35
35
  error.code = code;
@@ -130,7 +130,7 @@ class SessionLifecycle {
130
130
  // ------------------------------------------------------------ admission ---
131
131
  assertUsable() {
132
132
  if (this.state !== 'connected' || this.teardownPending) {
133
- throw sessionError(interfaces_1.ADT_SESSION_ERROR.NOT_CONNECTED);
133
+ throw sessionError(interfaces_adt_1.ADT_SESSION_ERROR.NOT_CONNECTED);
134
134
  }
135
135
  }
136
136
  /** Asserts usability and counts the request in, in one synchronous step. */
@@ -15,8 +15,8 @@ exports.isNetworkError = isNetworkError;
15
15
  * infrastructure, and retrying it re-runs the same failure against the same
16
16
  * unreachable host.
17
17
  */
18
- const interfaces_1 = require("@mcp-abap-adt/interfaces");
19
- const CODES = new Set(Object.values(interfaces_1.NETWORK_ERROR_CODES));
18
+ const interfaces_network_1 = require("@mcp-abap-adt/interfaces-network");
19
+ const CODES = new Set(Object.values(interfaces_network_1.NETWORK_ERROR_CODES));
20
20
  function isNetworkError(error) {
21
21
  if (!error || typeof error !== 'object')
22
22
  return false;
@@ -1,4 +1,4 @@
1
- import type { ITimeoutConfig } from '@mcp-abap-adt/interfaces';
1
+ import type { ITimeoutConfig } from '@mcp-abap-adt/interfaces-network';
2
2
  export type TimeoutConfig = ITimeoutConfig;
3
3
  export declare function getTimeoutConfig(): ITimeoutConfig;
4
4
  export declare function getTimeout(type?: 'default' | 'csrf' | 'long' | number): number;
@@ -1 +1 @@
1
- {"version":3,"file":"timeouts.d.ts","sourceRoot":"","sources":["../../src/utils/timeouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG/D,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,wBAAgB,gBAAgB,IAAI,cAAc,CAajD;AAED,wBAAgB,UAAU,CACxB,IAAI,GAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAkB,GACrD,MAAM,CAOR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
1
+ {"version":3,"file":"timeouts.d.ts","sourceRoot":"","sources":["../../src/utils/timeouts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,MAAM,MAAM,aAAa,GAAG,cAAc,CAAC;AAE3C,wBAAgB,gBAAgB,IAAI,cAAc,CAajD;AAED,wBAAgB,UAAU,CACxB,IAAI,GAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,MAAkB,GACrD,MAAM,CAOR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD"}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Token refresh utilities for JWT authentication
3
3
  */
4
- import type { ITokenRefreshResult } from '@mcp-abap-adt/interfaces';
4
+ import type { ITokenRefreshResult } from '@mcp-abap-adt/interfaces-adt';
5
5
  export type TokenRefreshResult = ITokenRefreshResult;
6
6
  /**
7
7
  * Refreshes the access token using refresh token
@@ -1 +1 @@
1
- {"version":3,"file":"tokenRefresh.d.ts","sourceRoot":"","sources":["../../src/utils/tokenRefresh.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC,CA0C9B"}
1
+ {"version":3,"file":"tokenRefresh.d.ts","sourceRoot":"","sources":["../../src/utils/tokenRefresh.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAIxE,MAAM,MAAM,kBAAkB,GAAG,mBAAmB,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,mBAAmB,CAAC,CA0C9B"}
package/docs/INDEX.md CHANGED
@@ -15,6 +15,7 @@ mcp-abap-connection/
15
15
  │ ├── INSTALLATION.md # Setup and installation guide
16
16
  │ ├── USAGE.md # API documentation and examples
17
17
  │ ├── MIGRATION-2.0.md # Moving to the explicit session lifecycle
18
+ │ ├── MIGRATION-9.0.md # the contracts split out of @mcp-abap-adt/interfaces
18
19
  │ ├── MIGRATION-8.0.md # request headers leave the stateful branch; onto interfaces 39; flushGoodbye
19
20
  │ ├── MIGRATION-6.0.md # the factory and the per-credential classes go; RFC is a transport
20
21
  │ ├── MIGRATION-4.0.md # JWT error classification: 401 refreshes, 403 propagates
@@ -45,6 +46,7 @@ mcp-abap-connection/
45
46
  - 🔑 [JWT Auth Tools](./JWT_AUTH_TOOLS.md) - CLI tool for browser-based authentication
46
47
 
47
48
  ### Upgrading
49
+ - 🚚 [Migrating to 9.0.0](./MIGRATION-9.0.md) - the contracts split into `interfaces-adt`, `-auth`, `-network` and `-utils`; this package no longer depends on the umbrella
48
50
  - 🚚 [Migrating to 7.0.0 and 8.0.0](./MIGRATION-8.0.md) - `sap-adt-request-id` and `X-sap-adt-profiling` on every request, `x-sap-security-session: use` on cloud, the contracts floor at 39, and `flushGoodbye()`
49
51
  - 🚚 [Migrating to 6.0.0](./MIGRATION-6.0.md) - the factory and the per-credential classes are removed; the RFC wire is a transport you hand to the on-prem connector
50
52
  - 🧱 [Migrating to 4.0.0](./MIGRATION-4.0.md) - JWT error classification: a 401 refreshes, a 403 propagates with the server's message
@@ -198,6 +198,25 @@ node test-connection.js
198
198
  npm install --save-dev typescript @types/node
199
199
  ```
200
200
 
201
+ ### Install the contracts you name
202
+
203
+ `@mcp-abap-adt/connection` no longer brings the contract packages along, so
204
+ anything your own signatures name has to be installed. Install the ones you
205
+ actually use:
206
+
207
+ ```bash
208
+ npm install @mcp-abap-adt/interfaces-adt # IAbapConnection, ISapConfig, ITokenRefresher, ADT_SESSION_ERROR
209
+ npm install @mcp-abap-adt/interfaces-auth # IAuthProvider, IRenewableCredential
210
+ npm install @mcp-abap-adt/interfaces-network # ITimeoutConfig, the WebSocket contracts
211
+ npm install @mcp-abap-adt/interfaces-utils # ILogger
212
+ ```
213
+
214
+ Nothing is needed here if you only call what this package exports — the types
215
+ travel with it. Do **not** reach for `@mcp-abap-adt/interfaces`: that name is an
216
+ umbrella of deprecated re-exports, and installing it alongside a contract
217
+ package at a different major puts two copies of the same contract in your tree.
218
+ [Migration to 9.0.0](./MIGRATION-9.0.md) has the details.
219
+
201
220
  ### Create `tsconfig.json`
202
221
 
203
222
  ```json
@@ -0,0 +1,104 @@
1
+ # Migration to 9.0
2
+
3
+ **No code of yours that only uses this package's own exports has to change.**
4
+ Nothing was renamed here, no signature moved, no behaviour is different. What
5
+ changed is where the *contracts* come from.
6
+
7
+ `@mcp-abap-adt/interfaces` split. The contracts now live in four packages:
8
+
9
+ | Package | What is in it |
10
+ |---|---|
11
+ | `@mcp-abap-adt/interfaces-adt` | The ADT vocabulary: `IAbapConnection`, `IAbapRequestOptions`, `IAdtWireResponse`, `IAdtResponse`, `ISapConfig`, `SapAuthType`, `SapConnectionType`, `ITokenRefresher`, `ITokenRefreshResult`, `ITokenProvider`, `ICertificateMaterialLoader`, and the capability atoms — `ISessionLifecycleAware`, `ICriticalSection`, `IRequestProfiling` — with `ADT_SESSION_ERROR` and `AdtSessionErrorCode` |
12
+ | `@mcp-abap-adt/interfaces-auth` | The credential axis: `IAuthProvider`, `IRenewableCredential`, `ICertificateMaterial` |
13
+ | `@mcp-abap-adt/interfaces-network` | The wire: `ITimeoutConfig`, `NETWORK_ERROR_CODES`, and the WebSocket contracts — `IWebSocketTransport`, `IWebSocketConnectOptions`, `IWebSocketCloseInfo`, `IWebSocketMessageEnvelope`, `IWebSocketMessageHandler` |
14
+ | `@mcp-abap-adt/interfaces-utils` | `ILogger` |
15
+
16
+ This package now depends on those four and **no longer depends on
17
+ `@mcp-abap-adt/interfaces` at all**. That is the breaking part, and it is the
18
+ only breaking part: a consumer who was getting the umbrella transitively through
19
+ this package stops getting it.
20
+
21
+ ## What you do
22
+
23
+ If you never import contract types yourself — you take what
24
+ `@mcp-abap-adt/connection` exports and nothing else — install and carry on.
25
+
26
+ If you do import them, move each import to the package it now lives in. Install
27
+ the ones you name:
28
+
29
+ ```bash
30
+ npm install @mcp-abap-adt/interfaces-adt @mcp-abap-adt/interfaces-auth
31
+ ```
32
+
33
+ Before:
34
+
35
+ ```ts
36
+ import type { IAuthProvider, ITokenRefresher } from '@mcp-abap-adt/interfaces';
37
+ ```
38
+
39
+ After:
40
+
41
+ ```ts
42
+ import type { IAuthProvider } from '@mcp-abap-adt/interfaces-auth';
43
+ import type { ITokenRefresher } from '@mcp-abap-adt/interfaces-adt';
44
+ ```
45
+
46
+ The table above says which package each name went to. Nothing was renamed, so
47
+ the names themselves are the same ones you already use.
48
+
49
+ ## You can also do nothing yet
50
+
51
+ The umbrella still exists and still re-exports every one of these names, so code
52
+ importing from `@mcp-abap-adt/interfaces` keeps compiling — as long as you
53
+ install it yourself, which you now must, since this package no longer brings it
54
+ along.
55
+
56
+ Every one of those re-exports is marked `@deprecated`. They are a bridge, not a
57
+ destination: a build that is green on them is green on something advertised as
58
+ going away, and the compiler will keep saying so. Moving the imports is a
59
+ mechanical change and it is better done while it is only an import line.
60
+
61
+ ## Why this package stopped using the umbrella
62
+
63
+ Not because a re-export loses anything. It does not: imported through the
64
+ umbrella and imported directly, `IAuthProvider` is the *same type* — a
65
+ re-export names the same declaration, and TypeScript agrees.
66
+
67
+ The reason is that the umbrella decides **which version** of each contract
68
+ package you get. It carries its own ranges — `interfaces-adt: ^6.0.0`,
69
+ `interfaces-auth: ^1.0.0`, and so on. A consumer who also names a contract
70
+ package directly, at a version outside those ranges, ends up with two physical
71
+ copies in the tree: the direct one at the root, the umbrella's nested beneath
72
+ it. That was observable when this was written — `interfaces-adt` had published
73
+ majors 1 through 6, so a project on `interfaces-adt@4` plus the umbrella got 4
74
+ at the root and 6 underneath.
75
+
76
+ > **The umbrella is gone.** `@mcp-abap-adt/interfaces` was deleted in its 52.0.0
77
+ > — decision 34 in `mcp-abap-adt-interfaces` — for exactly the cost this
78
+ > paragraph describes, measured across the family rather than argued. npm still
79
+ > serves 51.0.0 to anyone pinned to it, so the reasoning below still applies to
80
+ > them; there is simply nothing left to migrate *to* except naming the packages,
81
+ > which is what this document already asks for.
82
+
83
+ Two copies are harmless everywhere their shapes agree, because TypeScript is
84
+ structural. They stop being harmless exactly where the shapes differ — and then
85
+ the error lands at the boundary between two packages rather than at the version
86
+ skew that caused it.
87
+
88
+ Depending on the packages directly makes the version this package's own
89
+ decision, and makes `npm ls` able to answer the question.
90
+
91
+ The second reason is simpler: every export on the umbrella is marked
92
+ `@deprecated`. Building on it means its eventual removal becomes a breaking
93
+ change for this package at a moment chosen by someone else.
94
+
95
+ ## Checking what you ended up with
96
+
97
+ ```bash
98
+ npm ls @mcp-abap-adt/interfaces-adt # should print one version, deduped
99
+ npm ls @mcp-abap-adt/interfaces-auth
100
+ ```
101
+
102
+ Two versions of a contract package in one tree is the failure this release is
103
+ avoiding. If `npm ls` shows a nested copy, something in your dependency graph is
104
+ still pinning an older range.
package/docs/SCOPE.md CHANGED
@@ -14,9 +14,9 @@ This package is **one component of the `@mcp-abap-adt/*` family**. Each package
14
14
  | Concern | Belongs in |
15
15
  |---|---|
16
16
  | Token acquisition (SAML/OAuth2 flows, browser login, PKCE) | `@mcp-abap-adt/auth-broker` |
17
- | Token validation, refresh, re-authentication, expiry tracking | consumer via `ITokenProvider` (from `@mcp-abap-adt/interfaces`) |
17
+ | Token validation, refresh, re-authentication, expiry tracking | consumer via `ITokenProvider` (from `@mcp-abap-adt/interfaces-adt`) |
18
18
  | Session state persistence across processes | `@mcp-abap-adt/auth-broker` |
19
- | Auth-type constants, provider error codes, auth lifecycle contracts | `@mcp-abap-adt/interfaces` |
19
+ | Auth-type constants, provider error codes, auth lifecycle contracts | `@mcp-abap-adt/interfaces-adt`, `@mcp-abap-adt/interfaces-auth` |
20
20
 
21
21
  The rule: **if it is about *acquiring* or *refreshing* credentials, it is not our job.** We receive credentials that are valid at call time and use them. The consumer is responsible for handing us fresh ones — they know their IdP, their refresh cadence, their re-auth UX.
22
22
 
@@ -41,4 +41,4 @@ It forwards every `(name, value)` pair from the JS `Client(params)` object to `R
41
41
 
42
42
  - [`INSTALLATION.md`](./INSTALLATION.md)
43
43
  - [`USAGE.md`](./USAGE.md)
44
- - Sibling packages: `@mcp-abap-adt/interfaces`, `@mcp-abap-adt/sap-rfc-lite`, `@mcp-abap-adt/auth-broker`
44
+ - Sibling packages: `@mcp-abap-adt/interfaces-adt`, `@mcp-abap-adt/interfaces-auth`, `@mcp-abap-adt/interfaces-network`, `@mcp-abap-adt/interfaces-utils`, `@mcp-abap-adt/sap-rfc-lite`, `@mcp-abap-adt/auth-broker`
@@ -206,7 +206,7 @@ lock is still very much held. That — not any teardown — is why
206
206
  duration of a `lock → modify → unlock` chain.
207
207
 
208
208
  Since 8.0.0 you reach it through the contract rather than the class: it is
209
- `ICriticalSection` in `@mcp-abap-adt/interfaces`, which this connection declares.
209
+ `ICriticalSection` in `@mcp-abap-adt/interfaces-adt`, which this connection declares.
210
210
  What it promises is narrow and worth stating exactly — inside a section the
211
211
  *ordinary* per-request deadline does not apply. Not that no request can be cut
212
212
  short: the ceiling is `SAP_TIMEOUT_CRITICAL`, ten minutes by default, and a
package/docs/USAGE.md CHANGED
@@ -299,7 +299,7 @@ implied. Four things follow from it.
299
299
 
300
300
  > **Availability.** `connect()` is on the shared `IAbapConnection` contract and
301
301
  > works on every connection. The rest of this section is on the contract too, but
302
- > as a **capability atom** in `@mcp-abap-adt/interfaces` rather than as methods on
302
+ > as a **capability atom** in `@mcp-abap-adt/interfaces-adt` rather than as methods on
303
303
  > `IAbapConnection`: `ISessionLifecycleAware` — `disconnect()`, `isConnected()`,
304
304
  > `getSessionIdentity()`.
305
305
  >
@@ -404,10 +404,10 @@ establishment rather than opening a session each.
404
404
 
405
405
  Match on the code rather than the message, so a rename is a compile error on your
406
406
  side instead of a condition that silently stops matching. The codes live in
407
- `@mcp-abap-adt/interfaces` — import them from there, not from this package:
407
+ `@mcp-abap-adt/interfaces-adt` — import them from there, not from this package:
408
408
 
409
409
  ```typescript
410
- import { ADT_SESSION_ERROR } from '@mcp-abap-adt/interfaces';
410
+ import { ADT_SESSION_ERROR } from '@mcp-abap-adt/interfaces-adt';
411
411
  import { getTimeout } from '@mcp-abap-adt/connection';
412
412
 
413
413
  const options = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/connection",
3
- "version": "8.1.0",
3
+ "version": "9.1.0",
4
4
  "description": "ABAP connection layer for MCP ABAP ADT server",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -53,7 +53,10 @@
53
53
  "node": ">=18.0.0"
54
54
  },
55
55
  "dependencies": {
56
- "@mcp-abap-adt/interfaces": "^39.0.0",
56
+ "@mcp-abap-adt/interfaces-adt": "^8.0.0",
57
+ "@mcp-abap-adt/interfaces-auth": "^1.1.0",
58
+ "@mcp-abap-adt/interfaces-network": "^1.1.0",
59
+ "@mcp-abap-adt/interfaces-utils": "^1.0.0",
57
60
  "axios": "^1.16.0",
58
61
  "commander": "^14.0.3",
59
62
  "open": "^11.0.0"