@mcp-abap-adt/adt-clients 27.0.0 → 29.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) `^15.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 15 pairs with clients 29)
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` (`^15.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` 29 pairs with `interfaces-adt` 15 (breakpoints lose `skipCount` and gain `clientId`), and `adt-strategies` 0.10.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,63 @@ 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
+ * `clientId` on a breakpoint tags it; the server echoes it on every answer
82
+ * row, placed and refused, in an order of its own (see `setBreakpoints` in
83
+ * `abap.ts`).
84
+ */
61
85
  setBreakpoints<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, breakpoints: readonly IDebuggerBreakpoint[], options?: {
62
86
  validationOnly?: boolean;
63
87
  } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'breakpoints'>, E>>;
64
88
  deleteBreakpoint<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, breakpointId: string, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
89
+ /**
90
+ * Start a listener for the identity, with the conflict behaviour this
91
+ * debugger was constructed with (`onConflict`).
92
+ *
93
+ * The listener belongs to the identity's debug session: a listener for
94
+ * another identity needs a new `AbapDebugger` on a connection of its own
95
+ * (see the class and `listen` in `abap.ts`).
96
+ */
65
97
  listen<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, options?: {
66
98
  holdSeconds?: number;
67
99
  } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'listener'>, E>>;
100
+ /**
101
+ * Release the listener - and delete the key's breakpoints with it, whether
102
+ * or not a listener was running (see `stopListener` in `abap.ts`). Stop the
103
+ * listener last, or arm again before the next listen. It acts for the
104
+ * identity's debug session; another identity needs a debugger of its own.
105
+ */
68
106
  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?: {
107
+ /**
108
+ * Attach to the debuggee a listener caught. The attach, and everything after
109
+ * it, goes on a debugger with a connection opened for this debuggee, never
110
+ * the listener's (see `attach` in `abap.ts`); the identity is the one the
111
+ * session was bound to - another identity needs a debugger of its own.
112
+ */
113
+ attach<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, debuggeeId: string, options?: {
70
114
  dynproDebugging?: boolean;
71
115
  /** The debuggee's application server (`INSTANCE_NAME` in the listener's answer). */
72
116
  server?: string;
@@ -88,6 +132,34 @@ export declare class AbapDebugger<R extends IAbapDebuggerResults = typeof abapDe
88
132
  includeAbap?: boolean;
89
133
  } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'memory'>, E>>;
90
134
  createMemorySnapshot<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'memory'>, E>>;
135
+ /**
136
+ * Replace the key's breakpoints, `full` or by object with `partial` (see
137
+ * `syncBreakpoints` in `abap.ts`).
138
+ *
139
+ * `clientId` on a breakpoint tags it; the server echoes it on every answer
140
+ * row, placed and refused, in an order of its own (see `setBreakpoints` in
141
+ * `abap.ts`).
142
+ */
143
+ syncBreakpoints<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, sync: IDebuggerBreakpointSync, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'breakpoints'>, E>>;
144
+ /**
145
+ * Ask whether a listener for the identity would conflict; starts nothing.
146
+ * The answer is read in the identity's debug session: for another identity,
147
+ * use a debugger on a connection of its own (see the class).
148
+ */
149
+ checkListener<E extends IAdtError = IAdtError>(identity: IDebuggerIdentity, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
150
+ detachDebugger<E extends IAdtError = IAdtError>(options?: {
151
+ debuggeeId?: string;
152
+ } & IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
153
+ /**
154
+ * Free the debugger; the program runs on. SAP answers it with a plain ICF
155
+ * `500` (no ADT exception document) when it worked: pass
156
+ * `analyseDebuggerFreed` from `@mcp-abap-adt/adt-strategies` (0.9.0) to take
157
+ * that `500` as no failure, or `analyseException` to let it stop you. See
158
+ * the errata entry "The debugger freeing its session is answered as an ICF
159
+ * 500" and `terminateDebugger` in `abap.ts`.
160
+ */
161
+ terminateDebugger<E extends IAdtError = IAdtError>(options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'done'>, E>>;
162
+ setDebuggerSettings<E extends IAdtError = IAdtError>(settings: IDebuggerSettings, options?: IAdtAnalyseOptions<E>): Promise<IAdtResponse<Of<R, 'settings'>, E>>;
91
163
  }
92
164
  export {};
93
165
  //# sourceMappingURL=AbapDebugger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AbapDebugger.d.ts","sourceRoot":"","sources":["../../../src/runtime/debugger/AbapDebugger.ts"],"names":[],"mappings":"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"}
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,48 @@ 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
+ * `clientId` on a breakpoint tags it; the server echoes it on every answer
65
+ * row, placed and refused, in an order of its own (see `setBreakpoints` in
66
+ * `abap.ts`).
67
+ */
46
68
  async setBreakpoints(identity, breakpoints, options) {
47
69
  return (0, adtResponse_1.answering)(() => (0, abap_1.setBreakpoints)(this.connection, identity, breakpoints, options?.validationOnly), this.reading('breakpoints'), options?.analyse);
48
70
  }
49
71
  async deleteBreakpoint(identity, breakpointId, options) {
50
72
  return (0, adtResponse_1.answering)(() => (0, abap_1.deleteBreakpoint)(this.connection, identity, breakpointId), this.reading('done'), options?.analyse);
51
73
  }
74
+ /**
75
+ * Start a listener for the identity, with the conflict behaviour this
76
+ * debugger was constructed with (`onConflict`).
77
+ *
78
+ * The listener belongs to the identity's debug session: a listener for
79
+ * another identity needs a new `AbapDebugger` on a connection of its own
80
+ * (see the class and `listen` in `abap.ts`).
81
+ */
52
82
  async listen(identity, options) {
53
83
  return (0, adtResponse_1.answering)(() => (0, abap_1.listen)(this.connection, identity, this.options.onConflict ?? 'refuse', options?.holdSeconds), this.reading('listener'), options?.analyse);
54
84
  }
85
+ /**
86
+ * Release the listener - and delete the key's breakpoints with it, whether
87
+ * or not a listener was running (see `stopListener` in `abap.ts`). Stop the
88
+ * listener last, or arm again before the next listen. It acts for the
89
+ * identity's debug session; another identity needs a debugger of its own.
90
+ */
55
91
  async stopListener(identity, options) {
56
92
  return (0, adtResponse_1.answering)(() => (0, abap_1.stopListener)(this.connection, identity), this.reading('done'), options?.analyse);
57
93
  }
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);
94
+ /**
95
+ * Attach to the debuggee a listener caught. The attach, and everything after
96
+ * it, goes on a debugger with a connection opened for this debuggee, never
97
+ * the listener's (see `attach` in `abap.ts`); the identity is the one the
98
+ * session was bound to - another identity needs a debugger of its own.
99
+ */
100
+ async attach(identity, debuggeeId, options) {
101
+ return (0, adtResponse_1.answering)(() => (0, abap_1.attach)(this.connection, identity, debuggeeId, options?.dynproDebugging, options?.server), this.reading('attach'), options?.analyse);
60
102
  }
61
103
  async getStack(options) {
62
104
  return (0, adtResponse_1.answering)(() => (0, abap_1.getStack)(this.connection), this.reading('stack'), options?.analyse);
@@ -97,5 +139,41 @@ class AbapDebugger {
97
139
  async createMemorySnapshot(options) {
98
140
  return (0, adtResponse_1.answering)(() => (0, abap_1.createMemorySnapshot)(this.connection), this.reading('memory'), options?.analyse);
99
141
  }
142
+ /**
143
+ * Replace the key's breakpoints, `full` or by object with `partial` (see
144
+ * `syncBreakpoints` in `abap.ts`).
145
+ *
146
+ * `clientId` on a breakpoint tags it; the server echoes it on every answer
147
+ * row, placed and refused, in an order of its own (see `setBreakpoints` in
148
+ * `abap.ts`).
149
+ */
150
+ async syncBreakpoints(identity, sync, options) {
151
+ return (0, adtResponse_1.answering)(() => (0, abap_1.syncBreakpoints)(this.connection, identity, sync), this.reading('breakpoints'), options?.analyse);
152
+ }
153
+ /**
154
+ * Ask whether a listener for the identity would conflict; starts nothing.
155
+ * The answer is read in the identity's debug session: for another identity,
156
+ * use a debugger on a connection of its own (see the class).
157
+ */
158
+ async checkListener(identity, options) {
159
+ return (0, adtResponse_1.answering)(() => (0, abap_1.checkListener)(this.connection, identity), this.reading('done'), options?.analyse);
160
+ }
161
+ async detachDebugger(options) {
162
+ return (0, adtResponse_1.answering)(() => (0, abap_1.detachDebugger)(this.connection, options?.debuggeeId), this.reading('done'), options?.analyse);
163
+ }
164
+ /**
165
+ * Free the debugger; the program runs on. SAP answers it with a plain ICF
166
+ * `500` (no ADT exception document) when it worked: pass
167
+ * `analyseDebuggerFreed` from `@mcp-abap-adt/adt-strategies` (0.9.0) to take
168
+ * that `500` as no failure, or `analyseException` to let it stop you. See
169
+ * the errata entry "The debugger freeing its session is answered as an ICF
170
+ * 500" and `terminateDebugger` in `abap.ts`.
171
+ */
172
+ async terminateDebugger(options) {
173
+ return (0, adtResponse_1.answering)(() => (0, abap_1.terminateDebugger)(this.connection), this.reading('done'), options?.analyse);
174
+ }
175
+ async setDebuggerSettings(settings, options) {
176
+ return (0, adtResponse_1.answering)(() => (0, abap_1.setDebuggerSettings)(this.connection, settings), this.reading('settings'), options?.analyse);
177
+ }
100
178
  }
101
179
  exports.AbapDebugger = AbapDebugger;