@mcp-abap-adt/interfaces 2.3.0 → 2.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 +11 -0
- package/README.md +8 -1
- package/dist/connection/IWebSocketTransport.d.ts +87 -0
- package/dist/connection/IWebSocketTransport.d.ts.map +1 -0
- package/dist/connection/IWebSocketTransport.js +8 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [2.4.0] - 2026-02-13
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- Added generic realtime WebSocket transport contracts in connection domain:
|
|
14
|
+
- `IWebSocketTransport`
|
|
15
|
+
- `IWebSocketConnectOptions`
|
|
16
|
+
- `IWebSocketCloseInfo`
|
|
17
|
+
- `IWebSocketMessageEnvelope`
|
|
18
|
+
- `IWebSocketMessageHandler`
|
|
19
|
+
- Exported all new WebSocket contracts from package root.
|
|
20
|
+
|
|
10
21
|
## [2.3.0] - 2026-02-10
|
|
11
22
|
|
|
12
23
|
### Added
|
package/README.md
CHANGED
|
@@ -19,7 +19,7 @@ This package contains all interfaces organized by domain:
|
|
|
19
19
|
- **`token/`** - Token-related interfaces (token provider, results, options)
|
|
20
20
|
- **`session/`** - Session storage interface
|
|
21
21
|
- **`serviceKey/`** - Service key storage interface
|
|
22
|
-
- **`connection/`** - Connection interfaces (AbapConnection, request options)
|
|
22
|
+
- **`connection/`** - Connection and realtime transport interfaces (AbapConnection, request options, WebSocket transport contracts)
|
|
23
23
|
- **`sap/`** - SAP-specific configuration (SapConfig, SapAuthType)
|
|
24
24
|
- **`storage/`** - Storage interfaces (session storage, state)
|
|
25
25
|
- **`logging/`** - Logging interfaces (ILogger, LogLevel enum)
|
|
@@ -44,6 +44,8 @@ import {
|
|
|
44
44
|
IServiceKeyStore,
|
|
45
45
|
ITokenProvider,
|
|
46
46
|
IAbapConnection,
|
|
47
|
+
IWebSocketTransport,
|
|
48
|
+
IWebSocketMessageEnvelope,
|
|
47
49
|
ISapConfig,
|
|
48
50
|
ILogger,
|
|
49
51
|
TOKEN_PROVIDER_ERROR_CODES,
|
|
@@ -185,6 +187,11 @@ This package is responsible for:
|
|
|
185
187
|
- For JWT: token refresh handled internally via `ITokenRefresher`
|
|
186
188
|
- For Basic: no token refresh needed
|
|
187
189
|
- `IAdtResponse` - Minimal response shape returned by `makeAdtRequest()`
|
|
190
|
+
- `IWebSocketTransport` - Generic realtime transport contract for WS-based flows
|
|
191
|
+
- Methods: `connect()`, `disconnect()`, `send()`, `onMessage()`, `onOpen()`, `onError()`, `onClose()`, `isConnected()`
|
|
192
|
+
- `IWebSocketConnectOptions` - WS connect options (`protocols`, `headers`, timeouts, heartbeat)
|
|
193
|
+
- `IWebSocketMessageEnvelope` - Generic request/response/event/error message shape with correlation id
|
|
194
|
+
- `IWebSocketCloseInfo` / `IWebSocketMessageHandler` - Close payload and message callback contracts
|
|
188
195
|
- `IAbapConnectionExtended` - Deprecated, for backward compatibility
|
|
189
196
|
- Extends `IAbapConnection` with: `getConfig()`, `getAuthHeaders()`, `connect()`, `reset()`
|
|
190
197
|
- Will be removed in next major version
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic WebSocket transport contracts.
|
|
3
|
+
*
|
|
4
|
+
* This interface is intentionally domain-agnostic and can be reused by
|
|
5
|
+
* debugger, tracing, and any other realtime ADT flows.
|
|
6
|
+
*/
|
|
7
|
+
export interface IWebSocketConnectOptions {
|
|
8
|
+
/**
|
|
9
|
+
* Optional subprotocols for the WS handshake.
|
|
10
|
+
*/
|
|
11
|
+
protocols?: string[];
|
|
12
|
+
/**
|
|
13
|
+
* Request headers used during connection handshake.
|
|
14
|
+
*/
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
/**
|
|
17
|
+
* Connection timeout in milliseconds.
|
|
18
|
+
*/
|
|
19
|
+
connectTimeoutMs?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Optional heartbeat interval in milliseconds.
|
|
22
|
+
*/
|
|
23
|
+
heartbeatIntervalMs?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface IWebSocketCloseInfo {
|
|
26
|
+
code: number;
|
|
27
|
+
reason?: string;
|
|
28
|
+
wasClean?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface IWebSocketMessageEnvelope<T = unknown> {
|
|
31
|
+
/**
|
|
32
|
+
* Message category. Keep generic to support different realtime domains.
|
|
33
|
+
*/
|
|
34
|
+
kind: 'request' | 'response' | 'event' | 'error';
|
|
35
|
+
/**
|
|
36
|
+
* Optional correlation id for request/response matching.
|
|
37
|
+
*/
|
|
38
|
+
correlationId?: string;
|
|
39
|
+
/**
|
|
40
|
+
* Optional operation name (for example: "debugger.listen", "trace.stream").
|
|
41
|
+
*/
|
|
42
|
+
operation?: string;
|
|
43
|
+
/**
|
|
44
|
+
* Message payload.
|
|
45
|
+
*/
|
|
46
|
+
payload?: T;
|
|
47
|
+
/**
|
|
48
|
+
* Unix timestamp in milliseconds.
|
|
49
|
+
*/
|
|
50
|
+
timestamp?: number;
|
|
51
|
+
}
|
|
52
|
+
export type IWebSocketMessageHandler<T = unknown> = (message: IWebSocketMessageEnvelope<T>) => void | Promise<void>;
|
|
53
|
+
export interface IWebSocketTransport {
|
|
54
|
+
/**
|
|
55
|
+
* Establish WS connection.
|
|
56
|
+
*/
|
|
57
|
+
connect(url: string, options?: IWebSocketConnectOptions): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* Close WS connection.
|
|
60
|
+
*/
|
|
61
|
+
disconnect(code?: number, reason?: string): Promise<void>;
|
|
62
|
+
/**
|
|
63
|
+
* Send one message to the connected endpoint.
|
|
64
|
+
*/
|
|
65
|
+
send<T = unknown>(message: IWebSocketMessageEnvelope<T>): Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Register message handler.
|
|
68
|
+
*/
|
|
69
|
+
onMessage<T = unknown>(handler: IWebSocketMessageHandler<T>): void;
|
|
70
|
+
/**
|
|
71
|
+
* Register one-shot or persistent open callback.
|
|
72
|
+
*/
|
|
73
|
+
onOpen(handler: () => void | Promise<void>): void;
|
|
74
|
+
/**
|
|
75
|
+
* Register error callback.
|
|
76
|
+
*/
|
|
77
|
+
onError(handler: (error: Error) => void | Promise<void>): void;
|
|
78
|
+
/**
|
|
79
|
+
* Register close callback.
|
|
80
|
+
*/
|
|
81
|
+
onClose(handler: (info: IWebSocketCloseInfo) => void | Promise<void>): void;
|
|
82
|
+
/**
|
|
83
|
+
* Transport state indicator.
|
|
84
|
+
*/
|
|
85
|
+
isConnected(): boolean;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=IWebSocketTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IWebSocketTransport.d.ts","sourceRoot":"","sources":["../../src/connection/IWebSocketTransport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,wBAAwB;IACvC;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB,CAAC,CAAC,GAAG,OAAO;IACpD;;OAEG;IACH,IAAI,EAAE,SAAS,GAAG,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IAEjD;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;IAEZ;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,MAAM,wBAAwB,CAAC,CAAC,GAAG,OAAO,IAAI,CAClD,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,KAClC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1B,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;OAEG;IACH,UAAU,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1D;;OAEG;IACH,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,yBAAyB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExE;;OAEG;IACH,SAAS,CAAC,CAAC,GAAG,OAAO,EAAE,OAAO,EAAE,wBAAwB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEnE;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAElD;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE5E;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC;CACxB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Generic WebSocket transport contracts.
|
|
4
|
+
*
|
|
5
|
+
* This interface is intentionally domain-agnostic and can be reused by
|
|
6
|
+
* debugger, tracing, and any other realtime ADT flows.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export type { IConfig } from './auth/IConfig';
|
|
|
13
13
|
export type { IConnectionConfig } from './auth/IConnectionConfig';
|
|
14
14
|
export type { IAbapConnection, IAdtResponse, } from './connection/IAbapConnection';
|
|
15
15
|
export type { IAbapRequestOptions } from './connection/IAbapRequestOptions';
|
|
16
|
+
export type { IWebSocketCloseInfo, IWebSocketConnectOptions, IWebSocketMessageEnvelope, IWebSocketMessageHandler, IWebSocketTransport, } from './connection/IWebSocketTransport';
|
|
16
17
|
export type { NetworkErrorCode } from './connection/NetworkErrors';
|
|
17
18
|
export { isNetworkError, NETWORK_ERROR_CODES, } from './connection/NetworkErrors';
|
|
18
19
|
export * from './Headers';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,YAAY,EACV,eAAe,EACf,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,cAAc,WAAW,CAAC;AAE1B,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,UAAU,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC/E,YAAY,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEhE,YAAY,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACxE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,YAAY,EACV,eAAe,EACf,YAAY,GACb,MAAM,8BAA8B,CAAC;AACtC,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,wBAAwB,EACxB,mBAAmB,GACpB,MAAM,kCAAkC,CAAC;AAC1C,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EACL,cAAc,EACd,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AAEpC,cAAc,WAAW,CAAC;AAE1B,YAAY,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,YAAY,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAE7D,YAAY,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,YAAY,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAE9D,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EACL,4BAA4B,EAC5B,iCAAiC,EACjC,4BAA4B,EAC5B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,YAAY,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzD,YAAY,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAE7D,YAAY,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AACvE,YAAY,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAC;AAEpF,YAAY,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAC9E,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC"}
|