@lspeasy/client 3.0.2 → 3.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.
- package/dist/capability-guard.d.ts +78 -4
- package/dist/capability-guard.d.ts.map +1 -1
- package/dist/capability-guard.js +78 -4
- package/dist/capability-guard.js.map +1 -1
- package/dist/capability-proxy.js.map +1 -1
- package/dist/client.d.ts +166 -27
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +204 -18
- package/dist/client.js.map +1 -1
- package/dist/connection/health.d.ts +40 -0
- package/dist/connection/health.d.ts.map +1 -1
- package/dist/connection/health.js +40 -0
- package/dist/connection/health.js.map +1 -1
- package/dist/connection/heartbeat.d.ts +29 -0
- package/dist/connection/heartbeat.d.ts.map +1 -1
- package/dist/connection/heartbeat.js +29 -0
- package/dist/connection/heartbeat.js.map +1 -1
- package/dist/connection/partial-result-collector.js.map +1 -1
- package/dist/connection/registration-store.js.map +1 -1
- package/dist/connection/types.d.ts +46 -4
- package/dist/connection/types.d.ts.map +1 -1
- package/dist/connection/types.js +11 -3
- package/dist/connection/types.js.map +1 -1
- package/dist/index.d.ts +48 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -1
- package/dist/index.js.map +1 -1
- package/dist/notifications/wait.d.ts +57 -2
- package/dist/notifications/wait.d.ts.map +1 -1
- package/dist/notifications/wait.js +44 -1
- package/dist/notifications/wait.js.map +1 -1
- package/dist/progress.js.map +1 -1
- package/dist/types.d.ts +70 -6
- package/dist/types.d.ts.map +1 -1
- package/dist/validation.d.ts +1 -1
- package/dist/validation.d.ts.map +1 -1
- package/dist/validation.js.map +1 -1
- package/package.json +6 -7
package/dist/client.js
CHANGED
|
@@ -17,21 +17,92 @@ import { PartialResultCollector } from './connection/partial-result-collector.js
|
|
|
17
17
|
* These methods are added at runtime via capability-proxy.ts
|
|
18
18
|
*/
|
|
19
19
|
/**
|
|
20
|
-
* LSP
|
|
20
|
+
* Typed LSP client that connects to a language server, manages the LSP
|
|
21
|
+
* handshake, and exposes capability-aware request namespaces.
|
|
21
22
|
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* `LSPClient` handles the `initialize` / `initialized` handshake
|
|
25
|
+
* automatically on `connect()`. After connecting, call `expect<ServerCaps>()`
|
|
26
|
+
* to narrow the client type to the server's advertised capabilities, giving
|
|
27
|
+
* you typed access to namespaces like `client.textDocument.hover(params)`.
|
|
24
28
|
*
|
|
25
|
-
*
|
|
29
|
+
* ### Capability-aware namespaces
|
|
30
|
+
* After `connect()`, `LSPClient` dynamically attaches namespaces reflecting
|
|
31
|
+
* the server's `InitializeResult.capabilities`. Use `expect<Caps>()` to make
|
|
32
|
+
* this visible in TypeScript without changing runtime behaviour.
|
|
33
|
+
*
|
|
34
|
+
* ### Dynamic registration
|
|
35
|
+
* The client handles `client/registerCapability` and
|
|
36
|
+
* `client/unregisterCapability` requests automatically, updating the
|
|
37
|
+
* capability-aware namespaces at runtime.
|
|
38
|
+
*
|
|
39
|
+
* @useWhen
|
|
40
|
+
* You are embedding an LSP client inside an editor extension, a CLI tool, a
|
|
41
|
+
* test harness, or any process that connects to a language server.
|
|
42
|
+
*
|
|
43
|
+
* @avoidWhen
|
|
44
|
+
* You need to build the server end — use `LSPServer` from `@lspeasy/server`.
|
|
45
|
+
*
|
|
46
|
+
* @never
|
|
47
|
+
* NEVER call `sendRequest` before `connect()` completes — the transport is not
|
|
48
|
+
* attached yet and the call throws.
|
|
49
|
+
*
|
|
50
|
+
* NEVER send requests after `disconnect()` is called — the transport has been
|
|
51
|
+
* closed; any pending promises will reject with a "Connection closed" error.
|
|
52
|
+
*
|
|
53
|
+
* NEVER share one `LSPClient` across two separate language server processes —
|
|
54
|
+
* each process is an independent JSON-RPC peer with its own ID sequence and
|
|
55
|
+
* lifecycle state.
|
|
26
56
|
*
|
|
27
57
|
* @example
|
|
28
|
-
*
|
|
29
|
-
*
|
|
58
|
+
* ```ts
|
|
59
|
+
* import { LSPClient } from '@lspeasy/client';
|
|
60
|
+
* import { WebSocketTransport } from '@lspeasy/core';
|
|
61
|
+
*
|
|
62
|
+
* const client = new LSPClient({
|
|
63
|
+
* name: 'my-editor',
|
|
64
|
+
* capabilities: { textDocument: { hover: {} } },
|
|
65
|
+
* });
|
|
66
|
+
*
|
|
67
|
+
* const transport = new WebSocketTransport({ url: 'ws://localhost:2087' });
|
|
30
68
|
* await client.connect(transport);
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
69
|
+
*
|
|
70
|
+
* const typed = client.expect<{ hoverProvider: true }>();
|
|
71
|
+
* const hover = await typed.textDocument.hover({
|
|
72
|
+
* textDocument: { uri: 'file:///src/index.ts' },
|
|
73
|
+
* position: { line: 0, character: 5 },
|
|
74
|
+
* });
|
|
75
|
+
* console.log(hover?.contents);
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @template ClientCaps - Client capabilities shape, defaults to `ClientCapabilities`.
|
|
79
|
+
* @category Client
|
|
34
80
|
*/
|
|
81
|
+
/**
|
|
82
|
+
* Expand a numeric `textDocumentSync` server capability into its object form.
|
|
83
|
+
*
|
|
84
|
+
* Servers may declare `textDocumentSync` as either a `TextDocumentSyncKind`
|
|
85
|
+
* number or a `TextDocumentSyncOptions` object (LSP spec). The number form
|
|
86
|
+
* (`1` Full / `2` Incremental — `0` None is the exception) implies the server
|
|
87
|
+
* wants document open/close and change notifications. Downstream capability
|
|
88
|
+
* checks address `textDocumentSync.openClose`; against a raw number that path
|
|
89
|
+
* resolves to `undefined` and (incorrectly) blocks `textDocument/didOpen`.
|
|
90
|
+
* Normalizing once at receipt keeps every check correct without per-path hacks.
|
|
91
|
+
*/
|
|
92
|
+
function normalizeServerCapabilities(capabilities) {
|
|
93
|
+
const sync = capabilities.textDocumentSync;
|
|
94
|
+
if (typeof sync === 'number') {
|
|
95
|
+
return {
|
|
96
|
+
...capabilities,
|
|
97
|
+
textDocumentSync: {
|
|
98
|
+
// `0` (None) means no sync; otherwise the number implies open/close.
|
|
99
|
+
openClose: sync !== 0,
|
|
100
|
+
change: sync
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return capabilities;
|
|
105
|
+
}
|
|
35
106
|
class BaseLSPClient {
|
|
36
107
|
transport;
|
|
37
108
|
connected;
|
|
@@ -70,7 +141,9 @@ class BaseLSPClient {
|
|
|
70
141
|
heartbeat: options.heartbeat,
|
|
71
142
|
dynamicRegistration: options.dynamicRegistration ?? {
|
|
72
143
|
allowUndeclaredDynamicRegistration: false
|
|
73
|
-
}
|
|
144
|
+
},
|
|
145
|
+
rootUri: options.rootUri ?? null,
|
|
146
|
+
workspaceFolders: options.workspaceFolders ?? null
|
|
74
147
|
};
|
|
75
148
|
this.logger = this.options.logger;
|
|
76
149
|
this.middlewareRegistrations = options.middleware ?? [];
|
|
@@ -102,7 +175,22 @@ class BaseLSPClient {
|
|
|
102
175
|
initializeCapabilityMethods(this);
|
|
103
176
|
}
|
|
104
177
|
/**
|
|
105
|
-
*
|
|
178
|
+
* Connects to the language server and performs the LSP initialization
|
|
179
|
+
* handshake (`initialize` → `initialized`).
|
|
180
|
+
*
|
|
181
|
+
* @remarks
|
|
182
|
+
* Sends an `initialize` request with the client's declared capabilities,
|
|
183
|
+
* waits for the server's `InitializeResult`, then sends `initialized`.
|
|
184
|
+
* Throws and cleans up the transport on any failure during handshake.
|
|
185
|
+
*
|
|
186
|
+
* @param transport - The transport to use for the connection.
|
|
187
|
+
* @returns The server's `InitializeResult` including `capabilities` and
|
|
188
|
+
* optional `serverInfo`.
|
|
189
|
+
* @throws {Error} When already connected. Fix: call `disconnect()` first, then re-connect with a fresh transport instance.
|
|
190
|
+
* @throws {Error} When the server rejects the `initialize` request (e.g. unsupported protocol version, missing required capabilities). Fix: inspect the error message for the server's error code; match your `ClientCapabilities` to what the server advertises.
|
|
191
|
+
* @throws {Error} When the transport closes before `initialize` completes (server crash, TCP reset). Fix: subscribe to `onError` on the transport before calling `connect()` to detect the cause, then retry with a new transport.
|
|
192
|
+
*
|
|
193
|
+
* @category Lifecycle
|
|
106
194
|
*/
|
|
107
195
|
async connect(transport) {
|
|
108
196
|
if (this.connected) {
|
|
@@ -126,16 +214,27 @@ class BaseLSPClient {
|
|
|
126
214
|
version: this.options.version
|
|
127
215
|
},
|
|
128
216
|
capabilities: this.capabilities ?? {},
|
|
129
|
-
rootUri:
|
|
217
|
+
rootUri: this.options.rootUri,
|
|
218
|
+
...(this.options.workspaceFolders
|
|
219
|
+
? { workspaceFolders: this.options.workspaceFolders }
|
|
220
|
+
: {})
|
|
130
221
|
};
|
|
131
222
|
const result = await this.sendRequest('initialize', initializeParams);
|
|
132
|
-
|
|
223
|
+
// Normalize a numeric `textDocumentSync` (TextDocumentSyncKind) into its
|
|
224
|
+
// object form. Per the LSP spec a server may declare text sync as either
|
|
225
|
+
// a `TextDocumentSyncKind` number or a `TextDocumentSyncOptions` object;
|
|
226
|
+
// the number form implies open/close + change support. Expanding it here
|
|
227
|
+
// means capability checks for `textDocumentSync.openClose` (e.g. before
|
|
228
|
+
// sending `textDocument/didOpen`) resolve correctly instead of failing
|
|
229
|
+
// against a number that has no `openClose` property.
|
|
230
|
+
const normalizedCapabilities = normalizeServerCapabilities(result.capabilities);
|
|
231
|
+
this.serverCapabilities = normalizedCapabilities;
|
|
133
232
|
if (result.serverInfo) {
|
|
134
233
|
this.serverInfo = result.serverInfo;
|
|
135
234
|
}
|
|
136
235
|
this.initialized = true;
|
|
137
236
|
// Create capability guard to validate outgoing requests
|
|
138
|
-
this.capabilityGuard = new CapabilityGuard(
|
|
237
|
+
this.capabilityGuard = new CapabilityGuard(normalizedCapabilities, this.logger, this.options.strictCapabilities);
|
|
139
238
|
// Update capability-aware methods based on server capabilities
|
|
140
239
|
updateCapabilityMethods(this);
|
|
141
240
|
// Send initialized notification
|
|
@@ -200,7 +299,18 @@ class BaseLSPClient {
|
|
|
200
299
|
return this.connected && this.initialized;
|
|
201
300
|
}
|
|
202
301
|
/**
|
|
203
|
-
* Send a request to the server
|
|
302
|
+
* Send a request to the server and await its response.
|
|
303
|
+
*
|
|
304
|
+
* @param method - The LSP request method name.
|
|
305
|
+
* @param params - Optional request parameters.
|
|
306
|
+
* @param token - Optional cancellation token.
|
|
307
|
+
* @returns A promise resolving to the server's result for the given method.
|
|
308
|
+
* @throws {Error} When the client is not connected. Fix: ensure `connect()` has resolved before calling `sendRequest()`.
|
|
309
|
+
* @throws {Error} When the server returns a JSON-RPC error response (e.g. `MethodNotFound`, `InvalidParams`). Fix: check `error.code` against `JSONRPCErrorCode` — if `-32601` (MethodNotFound), the server capability was not declared; gate the call with `serverSupportsRequest()`.
|
|
310
|
+
* @throws {Error} When the request times out (if `requestTimeout` is configured). Fix: increase `ClientOptions.requestTimeout`, or use `sendCancellableRequest()` to abort early and retry.
|
|
311
|
+
* @throws {Error} When the token is already cancelled before the call. Fix: check `token.isCancellationRequested` before calling, or handle the rejection in `.catch()`.
|
|
312
|
+
*
|
|
313
|
+
* @category Client
|
|
204
314
|
*/
|
|
205
315
|
async sendRequest(method, params, token) {
|
|
206
316
|
if (!this.connected || !this.transport) {
|
|
@@ -289,7 +399,39 @@ class BaseLSPClient {
|
|
|
289
399
|
});
|
|
290
400
|
}
|
|
291
401
|
/**
|
|
292
|
-
*
|
|
402
|
+
* Sends a request that can be cancelled via the returned `cancel()` function.
|
|
403
|
+
*
|
|
404
|
+
* @remarks
|
|
405
|
+
* Convenience wrapper that creates a `CancellationTokenSource` internally,
|
|
406
|
+
* attaches it to the request, and exposes `cancel()` on the result.
|
|
407
|
+
* Calling `cancel()` sends `$/cancelRequest` to the server and rejects
|
|
408
|
+
* `promise` with a cancellation error.
|
|
409
|
+
*
|
|
410
|
+
* @param method - The LSP request method string.
|
|
411
|
+
* @param params - Optional request parameters.
|
|
412
|
+
* @returns A `CancellableRequest` with `promise` and `cancel`.
|
|
413
|
+
*
|
|
414
|
+
* @never
|
|
415
|
+
* NEVER ignore the `CancellableRequest.promise` rejection after calling
|
|
416
|
+
* `cancel()`. Always attach a `.catch()` handler to avoid unhandled
|
|
417
|
+
* promise rejections.
|
|
418
|
+
*
|
|
419
|
+
* @example
|
|
420
|
+
* ```ts
|
|
421
|
+
* const req = client.sendCancellableRequest('textDocument/completion', params);
|
|
422
|
+
*
|
|
423
|
+
* // Cancel on user keystroke
|
|
424
|
+
* input.addEventListener('input', () => req.cancel());
|
|
425
|
+
*
|
|
426
|
+
* try {
|
|
427
|
+
* const result = await req.promise;
|
|
428
|
+
* } catch (e) {
|
|
429
|
+
* if (e.message.includes('cancel')) return; // User cancelled
|
|
430
|
+
* throw e;
|
|
431
|
+
* }
|
|
432
|
+
* ```
|
|
433
|
+
*
|
|
434
|
+
* @category Client
|
|
293
435
|
*/
|
|
294
436
|
sendCancellableRequest(method, params) {
|
|
295
437
|
const cancelSource = new CancellationTokenSource();
|
|
@@ -300,7 +442,40 @@ class BaseLSPClient {
|
|
|
300
442
|
};
|
|
301
443
|
}
|
|
302
444
|
/**
|
|
303
|
-
*
|
|
445
|
+
* Sends a request with partial-result streaming support (LSP
|
|
446
|
+
* `partialResultToken`).
|
|
447
|
+
*
|
|
448
|
+
* @remarks
|
|
449
|
+
* Attaches a `partialResultToken` to the outgoing request params, then
|
|
450
|
+
* collects `$/progress` notifications from the server as each partial
|
|
451
|
+
* result arrives. Returns a summary of all partial results plus the final
|
|
452
|
+
* result when the request completes.
|
|
453
|
+
*
|
|
454
|
+
* @param method - The LSP request method (must support `partialResultToken`).
|
|
455
|
+
* @param params - The request parameters (a `partialResultToken` is injected).
|
|
456
|
+
* @param options - Streaming options including an `onPartial` callback.
|
|
457
|
+
* @param token - Optional cancellation token.
|
|
458
|
+
* @returns A `PartialRequestResult` with `cancelled`, `partialResults`, and
|
|
459
|
+
* `finalResult` (undefined if cancelled).
|
|
460
|
+
*
|
|
461
|
+
* @useWhen
|
|
462
|
+
* The server supports incremental results for long-running operations like
|
|
463
|
+
* `textDocument/completion` or `workspace/symbol` with large result sets.
|
|
464
|
+
*
|
|
465
|
+
* @avoidWhen
|
|
466
|
+
* The server does not advertise partial result support — the token will be
|
|
467
|
+
* silently ignored and no `$/progress` notifications will arrive.
|
|
468
|
+
*
|
|
469
|
+
* @example
|
|
470
|
+
* ```ts
|
|
471
|
+
* const { partialResults, finalResult } = await client.sendRequestWithPartialResults(
|
|
472
|
+
* 'workspace/symbol',
|
|
473
|
+
* { query: 'MyClass' },
|
|
474
|
+
* { onPartial: (symbols) => updateUI(symbols) }
|
|
475
|
+
* );
|
|
476
|
+
* ```
|
|
477
|
+
*
|
|
478
|
+
* @category Client
|
|
304
479
|
*/
|
|
305
480
|
async sendRequestWithPartialResults(method, params, options, token) {
|
|
306
481
|
const partialToken = options.token ?? `${Date.now()}-${Math.random()}`;
|
|
@@ -683,7 +858,10 @@ class BaseLSPClient {
|
|
|
683
858
|
return false;
|
|
684
859
|
}
|
|
685
860
|
// Map method names to capability keys when they differ or need special handling.
|
|
686
|
-
const methodToCapabilityKey = {
|
|
861
|
+
const methodToCapabilityKey = {
|
|
862
|
+
// Current known methods follow the "<root>/<propertyKey>" pattern, so this
|
|
863
|
+
// map is empty for now. It can be extended in the future for any special cases.
|
|
864
|
+
};
|
|
687
865
|
const capabilityKey = methodToCapabilityKey[method] ?? subKey;
|
|
688
866
|
const capability = rootCapabilities[capabilityKey];
|
|
689
867
|
if (!capability || typeof capability !== 'object') {
|
|
@@ -868,6 +1046,14 @@ class BaseLSPClient {
|
|
|
868
1046
|
this.heartbeatMonitor.start();
|
|
869
1047
|
}
|
|
870
1048
|
}
|
|
1049
|
+
/**
|
|
1050
|
+
* Constructs an {@link LSPClient} instance.
|
|
1051
|
+
*
|
|
1052
|
+
* @param options - Optional {@link ClientOptions} to configure the client.
|
|
1053
|
+
* @returns A new `LSPClient` instance.
|
|
1054
|
+
*
|
|
1055
|
+
* @category Client
|
|
1056
|
+
*/
|
|
871
1057
|
// Generic constructor that preserves type parameters
|
|
872
1058
|
export const LSPClient = BaseLSPClient;
|
|
873
1059
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,15 +7,47 @@ type HealthEventMap = {
|
|
|
7
7
|
};
|
|
8
8
|
/**
|
|
9
9
|
* Tracks connection state transitions and message activity timestamps.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* `ConnectionHealthTracker` is created internally by `LSPClient` and exposed
|
|
13
|
+
* via `client.connectionHealth`. Subscribe to `stateChanged` and
|
|
14
|
+
* `healthChanged` events to react to disconnections or transport failures.
|
|
15
|
+
*
|
|
16
|
+
* @useWhen
|
|
17
|
+
* You need to monitor connection liveness — for example, to show a status
|
|
18
|
+
* indicator, trigger reconnection logic, or surface transport errors to users.
|
|
19
|
+
*
|
|
20
|
+
* @see {@link HeartbeatMonitor} for detecting silent transport failures with
|
|
21
|
+
* periodic ping/pong checks.
|
|
22
|
+
*
|
|
23
|
+
* @never
|
|
24
|
+
* NEVER mutate the object returned by `getHealth()` — it is a defensive copy
|
|
25
|
+
* but consumers that store a reference and then modify it will see stale state.
|
|
26
|
+
*
|
|
27
|
+
* NEVER call `setState` from outside `LSPClient` internals. External callers
|
|
28
|
+
* have no knowledge of the full state-transition graph; setting state directly
|
|
29
|
+
* can desync the client's internal bookkeeping from the tracker's reported state.
|
|
30
|
+
*
|
|
31
|
+
* @category Client
|
|
10
32
|
*/
|
|
11
33
|
export declare class ConnectionHealthTracker extends DisposableEventEmitter<HealthEventMap> {
|
|
12
34
|
private health;
|
|
13
35
|
/**
|
|
14
36
|
* Returns a defensive copy of the current health snapshot.
|
|
37
|
+
*
|
|
38
|
+
* @returns A shallow copy of the current {@link ConnectionHealth} object,
|
|
39
|
+
* including a nested copy of `heartbeat` when present.
|
|
15
40
|
*/
|
|
16
41
|
getHealth(): ConnectionHealth;
|
|
17
42
|
/**
|
|
18
43
|
* Updates connection state and emits state/health change events.
|
|
44
|
+
*
|
|
45
|
+
* @param next - The new {@link ConnectionState} to transition to.
|
|
46
|
+
* @param reason - Optional human-readable reason for the state transition
|
|
47
|
+
* (e.g. `'Transport error'`). Included in the emitted `StateChangeEvent`.
|
|
48
|
+
*
|
|
49
|
+
* @see {@link ConnectionState} for valid state values.
|
|
50
|
+
* @see {@link ConnectionHealthTracker} for the full class contract.
|
|
19
51
|
*/
|
|
20
52
|
setState(next: ConnectionState, reason?: string): void;
|
|
21
53
|
/**
|
|
@@ -32,10 +64,18 @@ export declare class ConnectionHealthTracker extends DisposableEventEmitter<Heal
|
|
|
32
64
|
setHeartbeat(status: HeartbeatStatus): void;
|
|
33
65
|
/**
|
|
34
66
|
* Subscribes to connection state transitions.
|
|
67
|
+
*
|
|
68
|
+
* @param handler - Callback invoked with a {@link StateChangeEvent} each time
|
|
69
|
+
* the connection state changes.
|
|
70
|
+
* @returns An unsubscribe function — call it to remove the listener.
|
|
35
71
|
*/
|
|
36
72
|
onStateChange(handler: (event: StateChangeEvent) => void): () => void;
|
|
37
73
|
/**
|
|
38
74
|
* Subscribes to health snapshot updates.
|
|
75
|
+
*
|
|
76
|
+
* @param handler - Callback invoked with the latest {@link ConnectionHealth}
|
|
77
|
+
* snapshot after any state or activity change.
|
|
78
|
+
* @returns An unsubscribe function — call it to remove the listener.
|
|
39
79
|
*/
|
|
40
80
|
onHealthChange(handler: (health: ConnectionHealth) => void): () => void;
|
|
41
81
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/connection/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACjC,aAAa,EAAE,CAAC,gBAAgB,CAAC,CAAC;CACnC,CAAC;AAEF
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../src/connection/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACtF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,KAAK,cAAc,GAAG;IACpB,YAAY,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACjC,aAAa,EAAE,CAAC,gBAAgB,CAAC,CAAC;CACnC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,cAAc,CAAC;IACjF,OAAO,CAAC,MAAM,CAIZ;IAEF;;;;;OAKG;IACH,SAAS,IAAI,gBAAgB,CAa5B;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAkBrD;IAED;;OAEG;IACH,eAAe,IAAI,IAAI,CAMtB;IAED;;OAEG;IACH,mBAAmB,IAAI,IAAI,CAkB1B;IAED;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,CAM1C;IAED;;;;;;OAMG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGpE;IAED;;;;;;OAMG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGtE;CACF"}
|
|
@@ -2,6 +2,28 @@ import { DisposableEventEmitter } from '@lspeasy/core';
|
|
|
2
2
|
import { ConnectionState } from './types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Tracks connection state transitions and message activity timestamps.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* `ConnectionHealthTracker` is created internally by `LSPClient` and exposed
|
|
8
|
+
* via `client.connectionHealth`. Subscribe to `stateChanged` and
|
|
9
|
+
* `healthChanged` events to react to disconnections or transport failures.
|
|
10
|
+
*
|
|
11
|
+
* @useWhen
|
|
12
|
+
* You need to monitor connection liveness — for example, to show a status
|
|
13
|
+
* indicator, trigger reconnection logic, or surface transport errors to users.
|
|
14
|
+
*
|
|
15
|
+
* @see {@link HeartbeatMonitor} for detecting silent transport failures with
|
|
16
|
+
* periodic ping/pong checks.
|
|
17
|
+
*
|
|
18
|
+
* @never
|
|
19
|
+
* NEVER mutate the object returned by `getHealth()` — it is a defensive copy
|
|
20
|
+
* but consumers that store a reference and then modify it will see stale state.
|
|
21
|
+
*
|
|
22
|
+
* NEVER call `setState` from outside `LSPClient` internals. External callers
|
|
23
|
+
* have no knowledge of the full state-transition graph; setting state directly
|
|
24
|
+
* can desync the client's internal bookkeeping from the tracker's reported state.
|
|
25
|
+
*
|
|
26
|
+
* @category Client
|
|
5
27
|
*/
|
|
6
28
|
export class ConnectionHealthTracker extends DisposableEventEmitter {
|
|
7
29
|
health = {
|
|
@@ -11,6 +33,9 @@ export class ConnectionHealthTracker extends DisposableEventEmitter {
|
|
|
11
33
|
};
|
|
12
34
|
/**
|
|
13
35
|
* Returns a defensive copy of the current health snapshot.
|
|
36
|
+
*
|
|
37
|
+
* @returns A shallow copy of the current {@link ConnectionHealth} object,
|
|
38
|
+
* including a nested copy of `heartbeat` when present.
|
|
14
39
|
*/
|
|
15
40
|
getHealth() {
|
|
16
41
|
const baseHealth = {
|
|
@@ -26,6 +51,13 @@ export class ConnectionHealthTracker extends DisposableEventEmitter {
|
|
|
26
51
|
}
|
|
27
52
|
/**
|
|
28
53
|
* Updates connection state and emits state/health change events.
|
|
54
|
+
*
|
|
55
|
+
* @param next - The new {@link ConnectionState} to transition to.
|
|
56
|
+
* @param reason - Optional human-readable reason for the state transition
|
|
57
|
+
* (e.g. `'Transport error'`). Included in the emitted `StateChangeEvent`.
|
|
58
|
+
*
|
|
59
|
+
* @see {@link ConnectionState} for valid state values.
|
|
60
|
+
* @see {@link ConnectionHealthTracker} for the full class contract.
|
|
29
61
|
*/
|
|
30
62
|
setState(next, reason) {
|
|
31
63
|
if (this.health.state === next) {
|
|
@@ -84,6 +116,10 @@ export class ConnectionHealthTracker extends DisposableEventEmitter {
|
|
|
84
116
|
}
|
|
85
117
|
/**
|
|
86
118
|
* Subscribes to connection state transitions.
|
|
119
|
+
*
|
|
120
|
+
* @param handler - Callback invoked with a {@link StateChangeEvent} each time
|
|
121
|
+
* the connection state changes.
|
|
122
|
+
* @returns An unsubscribe function — call it to remove the listener.
|
|
87
123
|
*/
|
|
88
124
|
onStateChange(handler) {
|
|
89
125
|
const disposable = this.on('stateChanged', handler);
|
|
@@ -91,6 +127,10 @@ export class ConnectionHealthTracker extends DisposableEventEmitter {
|
|
|
91
127
|
}
|
|
92
128
|
/**
|
|
93
129
|
* Subscribes to health snapshot updates.
|
|
130
|
+
*
|
|
131
|
+
* @param handler - Callback invoked with the latest {@link ConnectionHealth}
|
|
132
|
+
* snapshot after any state or activity change.
|
|
133
|
+
* @returns An unsubscribe function — call it to remove the listener.
|
|
94
134
|
*/
|
|
95
135
|
onHealthChange(handler) {
|
|
96
136
|
const disposable = this.on('healthChanged', handler);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/connection/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAO7C
|
|
1
|
+
{"version":3,"file":"health.js","sourceRoot":"","sources":["../../src/connection/health.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,32 @@ export interface HeartbeatMonitorOptions {
|
|
|
10
10
|
}
|
|
11
11
|
/**
|
|
12
12
|
* Runs interval-based heartbeat checks for active transports.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
* Created internally by `LSPClient` when `ClientOptions.heartbeat` is
|
|
16
|
+
* configured. The monitor periodically sends a ping (via `onPing`) and checks
|
|
17
|
+
* whether a pong was received within `timeout` ms. If not, `onUnresponsive`
|
|
18
|
+
* is called so the client can close and attempt to reconnect.
|
|
19
|
+
*
|
|
20
|
+
* @useWhen
|
|
21
|
+
* You need to detect silent transport failures — for example, when the server
|
|
22
|
+
* process dies without closing the socket, leaving the client hanging
|
|
23
|
+
* indefinitely on pending requests.
|
|
24
|
+
*
|
|
25
|
+
* @avoidWhen
|
|
26
|
+
* The transport already provides its own keep-alive mechanism (e.g. WebSocket
|
|
27
|
+
* ping frames) — adding a heartbeat on top creates redundant round-trips and
|
|
28
|
+
* may interfere with the transport's own timeout logic.
|
|
29
|
+
*
|
|
30
|
+
* @never
|
|
31
|
+
* NEVER set `interval` shorter than the typical round-trip latency for your
|
|
32
|
+
* transport — doing so causes constant `onUnresponsive` callbacks on any
|
|
33
|
+
* non-local transport, triggering spurious reconnects.
|
|
34
|
+
*
|
|
35
|
+
* NEVER rely on heartbeat for authentication or access control. The heartbeat
|
|
36
|
+
* only confirms the transport is alive; it carries no identity information.
|
|
37
|
+
*
|
|
38
|
+
* @category Client
|
|
13
39
|
*/
|
|
14
40
|
export declare class HeartbeatMonitor {
|
|
15
41
|
private readonly options;
|
|
@@ -30,6 +56,9 @@ export declare class HeartbeatMonitor {
|
|
|
30
56
|
markPong(): void;
|
|
31
57
|
/**
|
|
32
58
|
* Returns the latest heartbeat status snapshot.
|
|
59
|
+
*
|
|
60
|
+
* @returns A shallow copy of the current {@link HeartbeatStatus}, including
|
|
61
|
+
* timing and responsiveness information.
|
|
33
62
|
*/
|
|
34
63
|
getStatus(): HeartbeatStatus;
|
|
35
64
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/connection/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED
|
|
1
|
+
{"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/connection/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,eAAe,CAAC;IACxB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,qBAAa,gBAAgB;IAIf,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,MAAM,CAAkB;IAEhC,YAA6B,OAAO,EAAE,uBAAuB,EAS5D;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAuBZ;IAED;;OAEG;IACH,IAAI,IAAI,IAAI,CAKX;IAED;;OAEG;IACH,QAAQ,IAAI,IAAI,CAWf;IAED;;;;;OAKG;IACH,SAAS,IAAI,eAAe,CAE3B;CACF"}
|