@mcp-abap-adt/interfaces-adt 15.3.0 → 15.4.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.
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
+ ## [15.4.0] - 2026-10-12
11
+
12
+ ### Added
13
+
14
+ - **`IAdtClientOptions.signal?: AbortSignal | (() => AbortSignal | undefined) | undefined`**
15
+ — read at each request and handed to the connection as the request's own
16
+ signal (`IAbapRequestOptions.signal`, interfaces-adt-connection 2.1.0): once
17
+ it aborts, nothing more of that request is sent. A function answers the
18
+ signal of the request being sent, so one client serves several callers. A
19
+ release that undoes a step (an unlock after a lock) is sent without it.
20
+ - **`IAdtError.refusal?: unknown`** — the authentication refusal the request
21
+ failed with, as the connection threw it: the thrown value's own `refusal`
22
+ (`AuthRefusedError`) or `error` (`AuthProviderFailure`), unchanged; read it
23
+ with `@mcp-abap-adt/auth-errors`' `classify`. Never present for an answer of
24
+ SAP (a `403` with an ADT message is an ADT error, not a refusal).
25
+
26
+ ### Changed
27
+
28
+ - `@mcp-abap-adt/interfaces-adt-connection` `^2.1.0` (the request's signal and
29
+ `ADT_REQUEST_ERROR`).
30
+
10
31
  ## [15.3.0] - 2026-10-12
11
32
 
12
33
  ### Added
package/README.md CHANGED
@@ -56,6 +56,25 @@ So `createTask` requires `targetUser` and `removeObject` requires `position`, an
56
56
 
57
57
  `addObject` still takes an entry without a position — one that does not exist yet has none.
58
58
 
59
+ ## A request's signal, and the refusal a failure carries
60
+
61
+ Since 15.4.0, on `@mcp-abap-adt/interfaces-adt-connection` 2.1:
62
+
63
+ - **`IAdtClientOptions.signal`** — a signal, or a function answering the signal
64
+ for the request being sent, read at each request. The client hands it to the
65
+ connection as the request's own (`IAbapRequestOptions.signal`): once it
66
+ aborts, nothing more of that request is sent, and the request fails with
67
+ `ADT_REQUEST_ERROR.ABORTED`. A function lets one client serve several
68
+ callers. A release that undoes a step — an unlock after a lock — is sent
69
+ without it, so a cancelled caller does not leave a lock behind.
70
+ - **`IAdtError.refusal`** — the authentication refusal the request failed
71
+ with, as the connection threw it, unchanged: the thrown value's own `refusal`
72
+ (an `AuthRefusedError`) or `error` (an `AuthProviderFailure`). `unknown` on
73
+ purpose: read it with `@mcp-abap-adt/auth-errors`' `classify`. An answer of
74
+ SAP never carries one — a `403` with an ADT message is an ADT error.
75
+
76
+ Both are optional: options and errors written for 15.3 are unchanged.
77
+
59
78
  ## Migrating to 13.0.0
60
79
 
61
80
  `IAdtWireResponse` comes from `interfaces-adt-connection` ^2.0.0, where its
@@ -21,5 +21,16 @@ export interface IAdtClientOptions {
21
21
  contentTypes?: IAdtContentTypes;
22
22
  /** Whether the SAP system uses Unicode encoding. Affects Content-Type headers for source code operations. */
23
23
  unicode?: boolean;
24
+ /**
25
+ * Read at each request: a signal, or a function answering the signal for the
26
+ * request being sent.
27
+ *
28
+ * Handed to the connection as the request's own signal
29
+ * (`IAbapRequestOptions.signal`): once it aborts, nothing more of that
30
+ * request is sent. A function lets one client serve several callers, each
31
+ * request carrying its caller's signal. A release that undoes a step (an
32
+ * unlock after a lock) is sent without it.
33
+ */
34
+ signal?: AbortSignal | (() => AbortSignal | undefined) | undefined;
24
35
  }
25
36
  //# sourceMappingURL=IAdtClientOptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IAdtClientOptions.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtClientOptions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yIAAyI;IACzI,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,6GAA6G;IAC7G,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"IAdtClientOptions.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtClientOptions.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,MAAM,WAAW,iBAAiB;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yIAAyI;IACzI,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uFAAuF;IACvF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,gBAAgB,CAAC;IAChC,6GAA6G;IAC7G,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,SAAS,CAAC;CACpE"}
@@ -150,6 +150,13 @@ export interface IAdtError {
150
150
  * ```
151
151
  */
152
152
  readonly code?: string;
153
+ /**
154
+ * The authentication refusal the request failed with, as the connection threw it:
155
+ * the thrown value's own `refusal` (AuthRefusedError) or `error` (AuthProviderFailure),
156
+ * unchanged; read it with @mcp-abap-adt/auth-errors' classify. Never present for an
157
+ * answer of SAP (a 403 with an ADT message is an ADT error, not a refusal).
158
+ */
159
+ readonly refusal?: unknown;
153
160
  }
154
161
  /**
155
162
  * The answer to a call: a result **or** a failure, never both and never neither.
@@ -1 +1 @@
1
- {"version":3,"file":"IAdtResponse.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtResponse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEhF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAG,gBAAyB,CAAC;AAExD,sEAAsE;AACtE,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB;AAC1B,iFAAiF;AAC/E,YAAY;AACd,oDAAoD;GAClD,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,SAAS;IACxB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAElC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM;IACjC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;CACjC;AAaD,wEAAwE;AACxE,MAAM,WAAW,WAAW,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS;IAC/D,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,KAAK,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,SAAS,SAAS,GAAG,SAAS,IACjE,WAAW,CAAC,MAAM,CAAC,GACnB,WAAW,CAAC,MAAM,CAAC,CAAC"}
1
+ {"version":3,"file":"IAdtResponse.d.ts","sourceRoot":"","sources":["../../src/adt/IAdtResponse.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAEhF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,EAAG,gBAAyB,CAAC;AAExD,sEAAsE;AACtE,MAAM,MAAM,YAAY,GAAG,OAAO,cAAc,CAAC;AAEjD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB;AAC1B,iFAAiF;AAC/E,YAAY;AACd,oDAAoD;GAClD,SAAS,CAAC;AAEd;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,WAAW,SAAS;IACxB,gCAAgC;IAChC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;IAElC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;;;;;;OAOG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAE1B,yDAAyD;IACzD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAE5B,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAErC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IAEF;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,WAAW,WAAW,CAAC,MAAM;IACjC,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC;IAClB,SAAS,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;CACjC;AAaD,wEAAwE;AACxE,MAAM,WAAW,WAAW,CAAC,MAAM,SAAS,SAAS,GAAG,SAAS;IAC/D,QAAQ,CAAC,EAAE,EAAE,KAAK,CAAC;IACnB,QAAQ,IAAI,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,gBAAgB,KAAK,CAAC,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,MAAM,YAAY,CAAC,MAAM,EAAE,MAAM,SAAS,SAAS,GAAG,SAAS,IACjE,WAAW,CAAC,MAAM,CAAC,GACnB,WAAW,CAAC,MAAM,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-abap-adt/interfaces-adt",
3
- "version": "15.3.0",
3
+ "version": "15.4.0",
4
4
  "description": "ADT contracts: object operations, runtime analysis, execution, feeds and service bindings",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -36,7 +36,7 @@
36
36
  "node": ">=18.0.0"
37
37
  },
38
38
  "dependencies": {
39
- "@mcp-abap-adt/interfaces-adt-connection": "^2.0.0"
39
+ "@mcp-abap-adt/interfaces-adt-connection": "^2.1.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@types/node": "^24.2.1",