@mcp-abap-adt/adt-clients 27.0.0 → 28.0.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/README.md CHANGED
@@ -91,8 +91,8 @@ This package interacts with external packages **ONLY through interfaces**:
91
91
 
92
92
  | package | what this package takes from it |
93
93
  |---|---|
94
- | [`@mcp-abap-adt/interfaces-adt`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-adt) `^12.0.0` | the capability atoms, every object's config, `IAdtResponse`, `IAnalyse`, `IAdtAnalyseOptions`, `IResultStrategy`, `ADT_NO_FAILURE`, `ADT_TASK_TYPE` |
95
- | [`@mcp-abap-adt/interfaces-adt-connection`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-adt-connection) `^1.0.0` | `IAbapConnection`, `IAdtWireResponse`, `IAbapRequestOptions`, `ITimeoutConfig`, the connection capability atoms, `ADT_SESSION_ERROR` |
94
+ | [`@mcp-abap-adt/interfaces-adt`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-adt) `^14.0.0` | the capability atoms, every object's config, `IAdtResponse`, `IAnalyse`, `IAdtAnalyseOptions`, `IResultStrategy`, `ADT_NO_FAILURE`, `ADT_TASK_TYPE` |
95
+ | [`@mcp-abap-adt/interfaces-adt-connection`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-adt-connection) `^2.0.0` | `IAbapConnection`, `IAdtWireResponse`, `IAbapRequestOptions`, `ITimeoutConfig`, the connection capability atoms, `ADT_SESSION_ERROR` |
96
96
  | [`@mcp-abap-adt/interfaces-network`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-network) `^2.0.0` | `IWebSocketTransport` and its four companions, `HttpError` |
97
97
  | [`@mcp-abap-adt/interfaces-utils`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-utils) `^1.1.0` | `ILogger`, `LogLevel`, `XmlNode` |
98
98
  | [`@mcp-abap-adt/interfaces-auth`](https://www.npmjs.com/package/@mcp-abap-adt/interfaces-auth) — **dev only** | `IAuthProvider`, for the test helpers that open a session |
@@ -162,7 +162,9 @@ npm install @mcp-abap-adt/adt-clients
162
162
 
163
163
  6. **AbapDebugger, AmdpDebugger, MemorySnapshots**
164
164
  - Standalone, from `@mcp-abap-adt/adt-clients/runtime` or the root: `new AbapDebugger(connection, logger, results?, { onConflict? })`
165
- - One member per request, contracts `IAbapDebugger`, `IAmdpDebugger`, `IMemorySnapshots` from `@mcp-abap-adt/interfaces-adt`
165
+ - One member per request, contracts `IAbapDebugger`, `IAmdpDebugger`, `IMemorySnapshots` from `@mcp-abap-adt/interfaces-adt` (contract 14 pairs with clients 28)
166
+ - **The identity states its mode.** `{ debuggingMode: 'user', requestUser, terminalId, ideId }`, or `{ debuggingMode: 'terminal', terminalId, ideId }`; `attach` takes the identity, not the user. A catch in terminal mode is unmeasured
167
+ - **Breakpoints are replaced, not added to.** `setBreakpoints` and `syncBreakpoints` replace the identity's set, and `stopListener` deletes it: arm the whole set in one call
166
168
  - **Two sessions.** The ABAP listener holds one stateful connection; each debuggee caught is attached on a new one, routed to its application server. The AMDP debugger answers events on one session and takes commands on another
167
169
  - See [Debugging](docs/usage/CLIENT_API_REFERENCE.md#debugging)
168
170
 
@@ -534,7 +536,7 @@ await client.getBehaviorImplementation().create(
534
536
  packageName: 'ZOK_TEST_PKG_01',
535
537
  behaviorDefinition: 'ZOK_I_CDS_TEST',
536
538
  description: 'Behavior Implementation for ZOK_I_CDS_TEST',
537
- transportRequest: 'E19K900001'
539
+ transportRequest: 'DEVK900001'
538
540
  }
539
541
  );
540
542
  // The class shell exists. Its `source/main` — the generated binding to the
@@ -855,7 +857,7 @@ everything else is not.
855
857
 
856
858
  ### Single Definition Site: the contract packages
857
859
 
858
- Since **7.5.0**, every contract type is **defined once**, in the contract packages — today `@mcp-abap-adt/interfaces-adt` (`^12.0.0`) for the ADT contracts and `@mcp-abap-adt/interfaces-adt-connection` (`^1.0.0`) for the connection. This package declares no copies of its own — every `IXxxConfig`, the capability atoms, the option and response types and the cross-cutting shared types all live there.
860
+ Since **7.5.0**, every contract type is **defined once**, in the contract packages — today `@mcp-abap-adt/interfaces-adt` (`^14.0.0`) for the ADT contracts and `@mcp-abap-adt/interfaces-adt-connection` (`^2.0.0`) for the connection. This package declares no copies of its own — every `IXxxConfig`, the capability atoms, the option and response types and the cross-cutting shared types all live there.
859
861
 
860
862
  **Import them from the package that owns them:**
861
863
 
@@ -935,7 +937,7 @@ contracts (`IAbapDebugger`, `IAmdpDebugger`, `IMemorySnapshots`, 13.1.0). This
935
937
  package no longer declares or exports any contract type — every contract name it uses is
936
938
  sourced from the contract packages.
937
939
 
938
- > **Version pairing.** Because the types are sourced rather than copied, `@mcp-abap-adt/interfaces-adt` and `@mcp-abap-adt/interfaces-adt-connection` are hard peers of this package's public API. A major bump there implies a bump here; keep the two in step rather than letting a resolver pick a mismatched pair.
940
+ > **Version pairing.** `adt-clients` 28 pairs with `interfaces-adt` 14 (the debugger identity by mode, `TSettings`), and `adt-strategies` 0.9.0 declares the same range. Because the types are sourced rather than copied, `@mcp-abap-adt/interfaces-adt` and `@mcp-abap-adt/interfaces-adt-connection` are hard peers of this package's public API. A major bump there implies a bump here; keep the two in step rather than letting a resolver pick a mismatched pair.
939
941
 
940
942
  ### Naming Conventions
941
943
 
@@ -34,7 +34,7 @@ import type { IUpdateBehaviorDefinitionParams } from './types';
34
34
  * name: 'Z_MY_BDEF',
35
35
  * sourceCode: source,
36
36
  * lockHandle,
37
- * transportRequest: 'E19K905635'
37
+ * transportRequest: 'DEVK905635'
38
38
  * });
39
39
  * await unlock(connection, 'Z_MY_BDEF', lockHandle, sessionId);
40
40
  * ```
@@ -39,7 +39,7 @@ const timeouts_1 = require("../../utils/timeouts");
39
39
  * name: 'Z_MY_BDEF',
40
40
  * sourceCode: source,
41
41
  * lockHandle,
42
- * transportRequest: 'E19K905635'
42
+ * transportRequest: 'DEVK905635'
43
43
  * });
44
44
  * await unlock(connection, 'Z_MY_BDEF', lockHandle, sessionId);
45
45
  * ```
@@ -19,7 +19,7 @@ import type { IMetadataExtensionCreateParams } from './types';
19
19
  * name: 'ZDEMO_C_CDS_MDE',
20
20
  * description: 'First metadata extension',
21
21
  * packageName: 'ZDEMO_PKG',
22
- * transportRequest: 'TRLK900123'
22
+ * transportRequest: 'DEVK900123'
23
23
  * }, sessionId);
24
24
  * ```
25
25
  */
@@ -24,7 +24,7 @@ const timeouts_1 = require("../../utils/timeouts");
24
24
  * name: 'ZDEMO_C_CDS_MDE',
25
25
  * description: 'First metadata extension',
26
26
  * packageName: 'ZDEMO_PKG',
27
- * transportRequest: 'TRLK900123'
27
+ * transportRequest: 'DEVK900123'
28
28
  * }, sessionId);
29
29
  * ```
30
30
  */
@@ -15,7 +15,7 @@ import type { IAbapConnection, IAdtWireResponse } from '@mcp-abap-adt/interfaces
15
15
  *
16
16
  * @example
17
17
  * ```typescript
18
- * await deleteMetadataExtension(connection, 'ZDEMO_C_CDS_MDE', 'TRLK900123', sessionId);
18
+ * await deleteMetadataExtension(connection, 'ZDEMO_C_CDS_MDE', 'DEVK900123', sessionId);
19
19
  * ```
20
20
  */
21
21
  export declare function deleteMetadataExtension(connection: IAbapConnection, name: string, transportRequest: string | undefined): Promise<IAdtWireResponse>;
@@ -19,7 +19,7 @@ const timeouts_1 = require("../../utils/timeouts");
19
19
  *
20
20
  * @example
21
21
  * ```typescript
22
- * await deleteMetadataExtension(connection, 'ZDEMO_C_CDS_MDE', 'TRLK900123', sessionId);
22
+ * await deleteMetadataExtension(connection, 'ZDEMO_C_CDS_MDE', 'DEVK900123', sessionId);
23
23
  * ```
24
24
  */
25
25
  async function deleteMetadataExtension(connection, name, transportRequest) {
@@ -154,12 +154,12 @@ export declare class AdtRequest<R extends ITransportResults = typeof transportDo
154
154
  *
155
155
  * ```typescript
156
156
  * const request = client.getRequest();
157
- * await request.removeObject('E19K905942', {
157
+ * await request.removeObject('DEVK905942', {
158
158
  * name: 'ZMCP_BLD_FGR_H1',
159
159
  * type: 'FUGR',
160
160
  * position: '000025',
161
161
  * });
162
- * const log = await request.readActionLog('E19K905942');
162
+ * const log = await request.readActionLog('DEVK905942');
163
163
  * ```
164
164
  *
165
165
  * **`position` is required, and it is what makes the call do anything.**
@@ -212,12 +212,12 @@ class AdtRequest {
212
212
  *
213
213
  * ```typescript
214
214
  * const request = client.getRequest();
215
- * await request.removeObject('E19K905942', {
215
+ * await request.removeObject('DEVK905942', {
216
216
  * name: 'ZMCP_BLD_FGR_H1',
217
217
  * type: 'FUGR',
218
218
  * position: '000025',
219
219
  * });
220
- * const log = await request.readActionLog('E19K905942');
220
+ * const log = await request.readActionLog('DEVK905942');
221
221
  * ```
222
222
  *
223
223
  * **`position` is required, and it is what makes the call do anything.**
@@ -9,7 +9,7 @@ export { AtcLog, atcLogDocuments, type IAtcLogResults, } from './runtime/atc/Atc
9
9
  export { DdicActivation, ddicActivationDocuments, type IDdicActivationResults, } from './runtime/ddic/DdicActivation';
10
10
  export { AbapDebugger, abapDebuggerDocuments, type IAbapDebuggerOptions, type IAbapDebuggerResults, } from './runtime/debugger/AbapDebugger';
11
11
  export { AmdpDebugger, amdpDebuggerDocuments, type IAmdpDebuggerResults, } from './runtime/debugger/AmdpDebugger';
12
- export type { IDebuggerListenerConflict } from './runtime/debugger/abap';
12
+ export { type IDebuggerListenerConflict, readListenerConflict, } from './runtime/debugger/abap';
13
13
  export { buildDumpIdPrefix, buildRuntimeDumpsUserQuery, } from './runtime/dumps';
14
14
  export { type IRuntimeDumpsResults, RuntimeDumps, runtimeDumpsDocuments, } from './runtime/dumps/RuntimeDumps';
15
15
  export { FeedRepository, feedDocuments, type IFeedResults, } from './runtime/feeds/FeedRepository';
@@ -1 +1 @@
1
- {"version":3,"file":"index.runtime.d.ts","sourceRoot":"","sources":["../src/index.runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,MAAM,EACN,eAAe,EACf,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEzE,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,oBAAoB,EACzB,YAAY,EACZ,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,uBAAuB,EAC5B,eAAe,EACf,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,KAAK,sBAAsB,EAC3B,cAAc,EACd,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,KAAK,gBAAgB,EACrB,QAAQ,EACR,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,iBAAiB,EACtB,SAAS,EACT,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.runtime.d.ts","sourceRoot":"","sources":["../src/index.runtime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,yCAAyC,CAAC;AACjD,OAAO,EACL,MAAM,EACN,YAAY,EACZ,KAAK,WAAW,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,MAAM,EACN,eAAe,EACf,KAAK,cAAc,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,cAAc,EACd,uBAAuB,EACvB,KAAK,sBAAsB,GAC5B,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,KAAK,oBAAoB,GAC1B,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,yBAAyB,EAC9B,oBAAoB,GACrB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,oBAAoB,EACzB,YAAY,EACZ,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACL,cAAc,EACd,aAAa,EACb,KAAK,YAAY,GAClB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,KAAK,uBAAuB,GAC7B,MAAM,2CAA2C,CAAC;AACnD,OAAO,EACL,KAAK,uBAAuB,EAC5B,eAAe,EACf,wBAAwB,GACzB,MAAM,kCAAkC,CAAC;AAE1C,OAAO,EACL,KAAK,sBAAsB,EAC3B,cAAc,EACd,uBAAuB,GACxB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EACL,UAAU,EACV,mBAAmB,EACnB,KAAK,oBAAoB,GAC1B,MAAM,mCAAmC,CAAC;AAE3C,OAAO,EACL,KAAK,gBAAgB,EACrB,QAAQ,EACR,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,KAAK,iBAAiB,EACtB,SAAS,EACT,kBAAkB,GACnB,MAAM,4BAA4B,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * Covers: AdtRuntimeClient and all runtime/** modules.
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.st05TraceDocuments = exports.St05Trace = exports.profilerDocuments = exports.Profiler = exports.crossTraceDocuments = exports.CrossTrace = exports.systemMessagesDocuments = exports.SystemMessages = exports.memorySnapshotsDocuments = exports.MemorySnapshots = exports.gatewayErrorLogDocuments = exports.GatewayErrorLog = exports.feedDocuments = exports.FeedRepository = exports.runtimeDumpsDocuments = exports.RuntimeDumps = exports.buildRuntimeDumpsUserQuery = exports.buildDumpIdPrefix = exports.amdpDebuggerDocuments = exports.AmdpDebugger = exports.abapDebuggerDocuments = exports.AbapDebugger = exports.ddicActivationDocuments = exports.DdicActivation = exports.atcLogDocuments = exports.AtcLog = exports.atcDocuments = exports.AdtAtc = exports.applicationLogDocuments = exports.ApplicationLog = exports.AdtRuntimeClient = void 0;
7
+ exports.st05TraceDocuments = exports.St05Trace = exports.profilerDocuments = exports.Profiler = exports.crossTraceDocuments = exports.CrossTrace = exports.systemMessagesDocuments = exports.SystemMessages = exports.memorySnapshotsDocuments = exports.MemorySnapshots = exports.gatewayErrorLogDocuments = exports.GatewayErrorLog = exports.feedDocuments = exports.FeedRepository = exports.runtimeDumpsDocuments = exports.RuntimeDumps = exports.buildRuntimeDumpsUserQuery = exports.buildDumpIdPrefix = exports.readListenerConflict = exports.amdpDebuggerDocuments = exports.AmdpDebugger = exports.abapDebuggerDocuments = exports.AbapDebugger = exports.ddicActivationDocuments = exports.DdicActivation = exports.atcLogDocuments = exports.AtcLog = exports.atcDocuments = exports.AdtAtc = exports.applicationLogDocuments = exports.ApplicationLog = exports.AdtRuntimeClient = void 0;
8
8
  var AdtRuntimeClient_1 = require("./clients/AdtRuntimeClient");
9
9
  Object.defineProperty(exports, "AdtRuntimeClient", { enumerable: true, get: function () { return AdtRuntimeClient_1.AdtRuntimeClient; } });
10
10
  var ApplicationLog_1 = require("./runtime/applicationLog/ApplicationLog");
@@ -28,6 +28,8 @@ Object.defineProperty(exports, "abapDebuggerDocuments", { enumerable: true, get:
28
28
  var AmdpDebugger_1 = require("./runtime/debugger/AmdpDebugger");
29
29
  Object.defineProperty(exports, "AmdpDebugger", { enumerable: true, get: function () { return AmdpDebugger_1.AmdpDebugger; } });
30
30
  Object.defineProperty(exports, "amdpDebuggerDocuments", { enumerable: true, get: function () { return AmdpDebugger_1.amdpDebuggerDocuments; } });
31
+ var abap_1 = require("./runtime/debugger/abap");
32
+ Object.defineProperty(exports, "readListenerConflict", { enumerable: true, get: function () { return abap_1.readListenerConflict; } });
31
33
  // Keep low-level dump types/functions (may be used by consumers)
32
34
  var dumps_1 = require("./runtime/dumps");
33
35
  Object.defineProperty(exports, "buildDumpIdPrefix", { enumerable: true, get: function () { return dumps_1.buildDumpIdPrefix; } });
@@ -5,7 +5,7 @@
5
5
  * the stateful session and the second session that runs the program are the
6
6
  * caller's.
7
7
  */
8
- import type { IAbapDebugger, IAdtAnalyseOptions, IAdtError, IAdtResponse, IDebuggerBreakpoint, IDebuggerIdentity, IDebuggerStepMethod, IDebuggerStepToLineMethod, IResultStrategy } from '@mcp-abap-adt/interfaces-adt';
8
+ import type { IAbapDebugger, IAdtAnalyseOptions, IAdtError, IAdtResponse, IDebuggerBreakpoint, IDebuggerBreakpointSync, IDebuggerIdentity, IDebuggerSettings, IDebuggerStepMethod, IDebuggerStepToLineMethod, IResultStrategy } from '@mcp-abap-adt/interfaces-adt';
9
9
  import type { IAbapConnection } from '@mcp-abap-adt/interfaces-adt-connection';
10
10
  import type { ILogger } from '@mcp-abap-adt/interfaces-utils';
11
11
  import { type IDebuggerListenerConflict } from './abap';
@@ -22,6 +22,8 @@ export interface IAbapDebuggerResults {
22
22
  readonly watchpoints: IResultStrategy<unknown>;
23
23
  /** The memory sizes and the snapshot's confirmation. */
24
24
  readonly memory: IResultStrategy<unknown>;
25
+ /** The debugger settings' confirmation. */
26
+ readonly settings: IResultStrategy<unknown>;
25
27
  }
26
28
  /**
27
29
  * The shipped default: every document as it arrived, and nothing where the
@@ -39,6 +41,7 @@ export declare const abapDebuggerDocuments: {
39
41
  done: IResultStrategy<void>;
40
42
  watchpoints: IResultStrategy<string>;
41
43
  memory: IResultStrategy<string>;
44
+ settings: IResultStrategy<string>;
42
45
  };
43
46
  /** How this implementation behaves, fixed when it is constructed. */
44
47
  export interface IAbapDebuggerOptions {
@@ -51,22 +54,64 @@ export interface IAbapDebuggerOptions {
51
54
  readonly onConflict?: IDebuggerListenerConflict;
52
55
  }
53
56
  type Of<R extends IAbapDebuggerResults, K extends keyof IAbapDebuggerResults> = ReturnType<R[K]>;
54
- export declare class AbapDebugger<R extends IAbapDebuggerResults = typeof abapDebuggerDocuments> implements IAbapDebugger<Of<R, 'breakpoints'>, Of<R, 'listener'>, Of<R, 'attach'>, Of<R, 'stack'>, Of<R, 'variables'>, Of<R, 'step'>, Of<R, 'done'>, Of<R, 'watchpoints'>, Of<R, 'memory'>> {
57
+ /**
58
+ * The ABAP debugger on one connection, with the settings it was constructed
59
+ * with (`onConflict`).
60
+ *
61
+ * **One debug session per identity.** The server binds the listener context -
62
+ * request user and IDE id - to the ABAP session the connection carries (see
63
+ * `listen` in `abap.ts`), so one debugger serves one identity. Another
64
+ * identity - another request user, another mode, another `ideId` - needs
65
+ * another debug session: a new `AbapDebugger` on a connection of its own,
66
+ * with its own settings. The library does not guard this; a call naming an
67
+ * identity other than the one the session was bound to is answered by the
68
+ * server as it is.
69
+ */
70
+ export declare class AbapDebugger<R extends IAbapDebuggerResults = typeof abapDebuggerDocuments> implements IAbapDebugger<Of<R, 'breakpoints'>, Of<R, 'listener'>, Of<R, 'attach'>, Of<R, 'stack'>, Of<R, 'variables'>, Of<R, 'step'>, Of<R, 'done'>, Of<R, 'watchpoints'>, Of<R, 'memory'>, Of<R, 'settings'>> {
55
71
  private readonly connection;
56
72
  private readonly results;
57
73
  private readonly options;
58
74
  readonly kind: "abapDebugger";
59
75
  constructor(connection: IAbapConnection, _logger?: ILogger, results?: R, options?: IAbapDebuggerOptions);
60
76
  private reading;
77
+ /**
78
+ * Arm breakpoints under the identity's key, replacing what the key held -
79
+ * a `validationOnly` request too (see `setBreakpoints` in `abap.ts`).
80
+ *
81
+ * `skipCount` greater than 0 is still in the 14.x contract's type but is
82
+ * answered `ok: false` here without a request: the server ignores it on an
83
+ * external breakpoint (measured on premise (2026-10-11), BASIS 816), and it
84
+ * is to leave the contract in its next major. `0` is accepted.
85
+ */
61
86
  setBreakpoints<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, breakpoints: readonly IDebuggerBreakpoint[], options?: {
62
87
  validationOnly?: boolean;
63
88
  } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'breakpoints'>, E>>;
64
89
  deleteBreakpoint<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, breakpointId: string, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
90
+ /**
91
+ * Start a listener for the identity, with the conflict behaviour this
92
+ * debugger was constructed with (`onConflict`).
93
+ *
94
+ * The listener belongs to the identity's debug session: a listener for
95
+ * another identity needs a new `AbapDebugger` on a connection of its own
96
+ * (see the class and `listen` in `abap.ts`).
97
+ */
65
98
  listen<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, options?: {
66
99
  holdSeconds?: number;
67
100
  } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'listener'>, E>>;
101
+ /**
102
+ * Release the listener - and delete the key's breakpoints with it, whether
103
+ * or not a listener was running (see `stopListener` in `abap.ts`). Stop the
104
+ * listener last, or arm again before the next listen. It acts for the
105
+ * identity's debug session; another identity needs a debugger of its own.
106
+ */
68
107
  stopListener<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
69
- attach<E extends IAdtError = IAdtError>(requestUser: string, debuggeeId: string, options?: {
108
+ /**
109
+ * Attach to the debuggee a listener caught. The attach, and everything after
110
+ * it, goes on a debugger with a connection opened for this debuggee, never
111
+ * the listener's (see `attach` in `abap.ts`); the identity is the one the
112
+ * session was bound to - another identity needs a debugger of its own.
113
+ */
114
+ attach<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, debuggeeId: string, options?: {
70
115
  dynproDebugging?: boolean;
71
116
  /** The debuggee's application server (`INSTANCE_NAME` in the listener's answer). */
72
117
  server?: string;
@@ -88,6 +133,35 @@ export declare class AbapDebugger<R extends IAbapDebuggerResults = typeof abapDe
88
133
  includeAbap?: boolean;
89
134
  } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'memory'>, E>>;
90
135
  createMemorySnapshot<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'memory'>, E>>;
136
+ /**
137
+ * Replace the key's breakpoints, `full` or by object with `partial` (see
138
+ * `syncBreakpoints` in `abap.ts`).
139
+ *
140
+ * `skipCount` greater than 0 is still in the 14.x contract's type but is
141
+ * answered `ok: false` here without a request: the server ignores it on an
142
+ * external breakpoint (measured on premise (2026-10-11), BASIS 816), and it
143
+ * is to leave the contract in its next major. `0` is accepted.
144
+ */
145
+ syncBreakpoints<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, sync: IDebuggerBreakpointSync, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'breakpoints'>, E>>;
146
+ /**
147
+ * Ask whether a listener for the identity would conflict; starts nothing.
148
+ * The answer is read in the identity's debug session: for another identity,
149
+ * use a debugger on a connection of its own (see the class).
150
+ */
151
+ checkListener<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
152
+ detachDebugger<E extends IAdtError = IAdtError>(options?: {
153
+ debuggeeId?: string;
154
+ } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
155
+ /**
156
+ * Free the debugger; the program runs on. SAP answers it with a plain ICF
157
+ * `500` (no ADT exception document) when it worked: pass
158
+ * `analyseDebuggerFreed` from `@mcp-abap-adt/adt-strategies` (0.9.0) to take
159
+ * that `500` as no failure, or `analyseException` to let it stop you. See
160
+ * the errata entry "The debugger freeing its session is answered as an ICF
161
+ * 500" and `terminateDebugger` in `abap.ts`.
162
+ */
163
+ terminateDebugger<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
164
+ setDebuggerSettings<E extends IAdtError = IAdtError>(settings: IDebuggerSettings, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'settings'>, E>>;
91
165
  }
92
166
  export {};
93
167
  //# sourceMappingURL=AbapDebugger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbapDebugger.d.ts","sourceRoot":"","sources":["../../../src/runtime/debugger/AbapDebugger.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,aAAa,EACb,kBAAkB,EAClB,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,eAAe,EAChB,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAG9D,OAAO,EAUL,KAAK,yBAAyB,EAU/B,MAAM,QAAQ,CAAC;AAEhB,0DAA0D;AAC1D,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC7C,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAC/C,wDAAwD;IACxD,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;CAC3C;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB;;;;;;;;;;CAUF,CAAC;AAEjC,qEAAqE;AACrE,MAAM,WAAW,oBAAoB;IACnC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,yBAAyB,CAAC;CACjD;AAED,KAAK,EAAE,CACL,CAAC,SAAS,oBAAoB,EAC9B,CAAC,SAAS,MAAM,oBAAoB,IAClC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAErB,qBAAa,YAAY,CACvB,CAAC,SAAS,oBAAoB,GAAG,OAAO,qBAAqB,CAC7D,YACE,aAAa,CACX,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EACpB,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EACjB,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EACf,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EACd,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAClB,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EACb,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EACb,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EACpB,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,CAChB;IAKD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAG3B,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,QAAQ,CAAC,IAAI,EAAG,cAAc,CAAU;gBAGrB,UAAU,EAAE,eAAe,EAC5C,OAAO,CAAC,EAAE,OAAO,EAEA,OAAO,GAAE,CAAyC,EAClD,OAAO,GAAE,oBAAyB;IAGrD,OAAO,CAAC,OAAO;IAMT,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAClD,QAAQ,EAAE,iBAAiB,EAC3B,WAAW,EAAE,SAAS,mBAAmB,EAAE,EAC3C,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAC7D,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAc3C,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACpD,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GACzD,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC;IAcxC,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAChD,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,MAAM,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC1C,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,oFAAoF;QACpF,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,kBAAkB,CAAC,CAAC,CAAC,GACxB,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAetC,QAAQ,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC5C,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;IAQrC,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrD,SAAS,EAAE,SAAS,MAAM,EAAE,EAC5B,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAQzC,YAAY,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAChD,WAAW,EAAE,SAAS,MAAM,EAAE,EAC9B,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAQzC,IAAI,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,UAAU,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAC9C,MAAM,EAAE,yBAAyB,EACjC,GAAG,EAAE,MAAM,EACX,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACpD,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACpD,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;IAQzC,iBAAiB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACrD,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACpD,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GACvD,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAQ3C,eAAe,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACnD,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC,CAAC;IAQ3C,gBAAgB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACpD,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAQpC,cAAc,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EAClD,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC,GAC1D,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;IAQtC,oBAAoB,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,EACxD,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC,CAAC,GAC9B,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;CAO7C"}
1
+ {"version":3,"file":"AbapDebugger.d.ts","sourceRoot":"","sources":["../../../src/runtime/debugger/AbapDebugger.ts"],"names":[],"mappings":"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"}
@@ -27,7 +27,21 @@ exports.abapDebuggerDocuments = {
27
27
  done: resultStrategy_1.nothing,
28
28
  watchpoints: resultStrategy_1.rawDocument,
29
29
  memory: resultStrategy_1.rawDocument,
30
+ settings: resultStrategy_1.rawDocument,
30
31
  };
32
+ /**
33
+ * The ABAP debugger on one connection, with the settings it was constructed
34
+ * with (`onConflict`).
35
+ *
36
+ * **One debug session per identity.** The server binds the listener context -
37
+ * request user and IDE id - to the ABAP session the connection carries (see
38
+ * `listen` in `abap.ts`), so one debugger serves one identity. Another
39
+ * identity - another request user, another mode, another `ideId` - needs
40
+ * another debug session: a new `AbapDebugger` on a connection of its own,
41
+ * with its own settings. The library does not guard this; a call naming an
42
+ * identity other than the one the session was bound to is answered by the
43
+ * server as it is.
44
+ */
31
45
  class AbapDebugger {
32
46
  connection;
33
47
  results;
@@ -43,20 +57,49 @@ class AbapDebugger {
43
57
  reading(key) {
44
58
  return this.results[key];
45
59
  }
60
+ /**
61
+ * Arm breakpoints under the identity's key, replacing what the key held -
62
+ * a `validationOnly` request too (see `setBreakpoints` in `abap.ts`).
63
+ *
64
+ * `skipCount` greater than 0 is still in the 14.x contract's type but is
65
+ * answered `ok: false` here without a request: the server ignores it on an
66
+ * external breakpoint (measured on premise (2026-10-11), BASIS 816), and it
67
+ * is to leave the contract in its next major. `0` is accepted.
68
+ */
46
69
  async setBreakpoints(identity, breakpoints, options) {
47
70
  return (0, adtResponse_1.answering)(() => (0, abap_1.setBreakpoints)(this.connection, identity, breakpoints, options?.validationOnly), this.reading('breakpoints'), options?.analyse);
48
71
  }
49
72
  async deleteBreakpoint(identity, breakpointId, options) {
50
73
  return (0, adtResponse_1.answering)(() => (0, abap_1.deleteBreakpoint)(this.connection, identity, breakpointId), this.reading('done'), options?.analyse);
51
74
  }
75
+ /**
76
+ * Start a listener for the identity, with the conflict behaviour this
77
+ * debugger was constructed with (`onConflict`).
78
+ *
79
+ * The listener belongs to the identity's debug session: a listener for
80
+ * another identity needs a new `AbapDebugger` on a connection of its own
81
+ * (see the class and `listen` in `abap.ts`).
82
+ */
52
83
  async listen(identity, options) {
53
84
  return (0, adtResponse_1.answering)(() => (0, abap_1.listen)(this.connection, identity, this.options.onConflict ?? 'refuse', options?.holdSeconds), this.reading('listener'), options?.analyse);
54
85
  }
86
+ /**
87
+ * Release the listener - and delete the key's breakpoints with it, whether
88
+ * or not a listener was running (see `stopListener` in `abap.ts`). Stop the
89
+ * listener last, or arm again before the next listen. It acts for the
90
+ * identity's debug session; another identity needs a debugger of its own.
91
+ */
55
92
  async stopListener(identity, options) {
56
93
  return (0, adtResponse_1.answering)(() => (0, abap_1.stopListener)(this.connection, identity), this.reading('done'), options?.analyse);
57
94
  }
58
- async attach(requestUser, debuggeeId, options) {
59
- return (0, adtResponse_1.answering)(() => (0, abap_1.attach)(this.connection, requestUser, debuggeeId, options?.dynproDebugging, options?.server), this.reading('attach'), options?.analyse);
95
+ /**
96
+ * Attach to the debuggee a listener caught. The attach, and everything after
97
+ * it, goes on a debugger with a connection opened for this debuggee, never
98
+ * the listener's (see `attach` in `abap.ts`); the identity is the one the
99
+ * session was bound to - another identity needs a debugger of its own.
100
+ */
101
+ async attach(identity, debuggeeId, options) {
102
+ return (0, adtResponse_1.answering)(() => (0, abap_1.attach)(this.connection, identity, debuggeeId, options?.dynproDebugging, options?.server), this.reading('attach'), options?.analyse);
60
103
  }
61
104
  async getStack(options) {
62
105
  return (0, adtResponse_1.answering)(() => (0, abap_1.getStack)(this.connection), this.reading('stack'), options?.analyse);
@@ -97,5 +140,42 @@ class AbapDebugger {
97
140
  async createMemorySnapshot(options) {
98
141
  return (0, adtResponse_1.answering)(() => (0, abap_1.createMemorySnapshot)(this.connection), this.reading('memory'), options?.analyse);
99
142
  }
143
+ /**
144
+ * Replace the key's breakpoints, `full` or by object with `partial` (see
145
+ * `syncBreakpoints` in `abap.ts`).
146
+ *
147
+ * `skipCount` greater than 0 is still in the 14.x contract's type but is
148
+ * answered `ok: false` here without a request: the server ignores it on an
149
+ * external breakpoint (measured on premise (2026-10-11), BASIS 816), and it
150
+ * is to leave the contract in its next major. `0` is accepted.
151
+ */
152
+ async syncBreakpoints(identity, sync, options) {
153
+ return (0, adtResponse_1.answering)(() => (0, abap_1.syncBreakpoints)(this.connection, identity, sync), this.reading('breakpoints'), options?.analyse);
154
+ }
155
+ /**
156
+ * Ask whether a listener for the identity would conflict; starts nothing.
157
+ * The answer is read in the identity's debug session: for another identity,
158
+ * use a debugger on a connection of its own (see the class).
159
+ */
160
+ async checkListener(identity, options) {
161
+ return (0, adtResponse_1.answering)(() => (0, abap_1.checkListener)(this.connection, identity), this.reading('done'), options?.analyse);
162
+ }
163
+ async detachDebugger(options) {
164
+ return (0, adtResponse_1.answering)(() => (0, abap_1.detachDebugger)(this.connection, options?.debuggeeId), this.reading('done'), options?.analyse);
165
+ }
166
+ /**
167
+ * Free the debugger; the program runs on. SAP answers it with a plain ICF
168
+ * `500` (no ADT exception document) when it worked: pass
169
+ * `analyseDebuggerFreed` from `@mcp-abap-adt/adt-strategies` (0.9.0) to take
170
+ * that `500` as no failure, or `analyseException` to let it stop you. See
171
+ * the errata entry "The debugger freeing its session is answered as an ICF
172
+ * 500" and `terminateDebugger` in `abap.ts`.
173
+ */
174
+ async terminateDebugger(options) {
175
+ return (0, adtResponse_1.answering)(() => (0, abap_1.terminateDebugger)(this.connection), this.reading('done'), options?.analyse);
176
+ }
177
+ async setDebuggerSettings(settings, options) {
178
+ return (0, adtResponse_1.answering)(() => (0, abap_1.setDebuggerSettings)(this.connection, settings), this.reading('settings'), options?.analyse);
179
+ }
100
180
  }
101
181
  exports.AbapDebugger = AbapDebugger;