@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.
Files changed (38) hide show
  1. package/dist/capability-guard.d.ts +78 -4
  2. package/dist/capability-guard.d.ts.map +1 -1
  3. package/dist/capability-guard.js +78 -4
  4. package/dist/capability-guard.js.map +1 -1
  5. package/dist/capability-proxy.js.map +1 -1
  6. package/dist/client.d.ts +166 -27
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +204 -18
  9. package/dist/client.js.map +1 -1
  10. package/dist/connection/health.d.ts +40 -0
  11. package/dist/connection/health.d.ts.map +1 -1
  12. package/dist/connection/health.js +40 -0
  13. package/dist/connection/health.js.map +1 -1
  14. package/dist/connection/heartbeat.d.ts +29 -0
  15. package/dist/connection/heartbeat.d.ts.map +1 -1
  16. package/dist/connection/heartbeat.js +29 -0
  17. package/dist/connection/heartbeat.js.map +1 -1
  18. package/dist/connection/partial-result-collector.js.map +1 -1
  19. package/dist/connection/registration-store.js.map +1 -1
  20. package/dist/connection/types.d.ts +46 -4
  21. package/dist/connection/types.d.ts.map +1 -1
  22. package/dist/connection/types.js +11 -3
  23. package/dist/connection/types.js.map +1 -1
  24. package/dist/index.d.ts +48 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +48 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/notifications/wait.d.ts +57 -2
  29. package/dist/notifications/wait.d.ts.map +1 -1
  30. package/dist/notifications/wait.js +44 -1
  31. package/dist/notifications/wait.js.map +1 -1
  32. package/dist/progress.js.map +1 -1
  33. package/dist/types.d.ts +70 -6
  34. package/dist/types.d.ts.map +1 -1
  35. package/dist/validation.d.ts +1 -1
  36. package/dist/validation.d.ts.map +1 -1
  37. package/dist/validation.js.map +1 -1
  38. 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 Client for connecting to language servers
20
+ * Typed LSP client that connects to a language server, manages the LSP
21
+ * handshake, and exposes capability-aware request namespaces.
21
22
  *
22
- * This class dynamically extends with capability-aware methods based on server capabilities.
23
- * Use `.expect<ServerCaps>()` after initialization to get typed access to server capabilities.
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
- * @template ClientCaps - Client capabilities (defaults to ClientCapabilities)
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
- * // Create a client, then narrow server capabilities after connecting
29
- * const client = new LSPClient<MyClientCaps>();
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
- * const typed = client.expect<{ hoverProvider: true; completionProvider: {} }>();
32
- * // typed.textDocument.hover is available (typed)
33
- * // typed.textDocument.completion is available (typed)
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
- * Connect to server and complete initialization
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: null
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
- this.serverCapabilities = result.capabilities;
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(result.capabilities, this.logger, this.options.strictCapabilities);
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
- * Send a cancellable request
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
- * Send a request with partial-result streaming support.
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
@@ -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;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,sBAAsB,CAAC,cAAc,CAAC;IACjF,OAAO,CAAC,MAAM,CAIZ;IAEF;;OAEG;IACH,SAAS,IAAI,gBAAgB,CAa5B;IAED;;OAEG;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;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGpE;IAED;;OAEG;IACH,cAAc,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,GAAG,MAAM,IAAI,CAGtE;CACF"}
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":"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"}
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;;GAEG;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;;OAEG;IACH,SAAS,IAAI,eAAe,CAE3B;CACF"}
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"}