@lspeasy/server 4.0.2 → 4.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/server.d.ts CHANGED
@@ -5,18 +5,75 @@ import type { Transport, Disposable, ServerCapabilities, ClientCapabilities, LSP
5
5
  import type { ServerOptions, RequestHandler, NotificationHandler, NotebookDocumentHandlerNamespace } from './types.js';
6
6
  import { ServerState } from './types.js';
7
7
  /**
8
- * LSP Server class with dynamic capability-aware typing
8
+ * Full-featured LSP server with automatic lifecycle management, typed handlers,
9
+ * capability-aware namespaces, and pluggable middleware.
9
10
  *
10
- * This class dynamically provides handler registration and send methods based on capabilities.
11
- * Methods are type-safe and conditionally available based on the Capabilities type parameter.
11
+ * @remarks
12
+ * `LSPServer` manages the complete LSP lifecycle (`initialize` / `initialized`
13
+ * / `shutdown` / `exit`) automatically. Register your handlers with
14
+ * `onRequest` / `onNotification`, declare capabilities with
15
+ * `registerCapabilities`, then start the server with `listen(transport)`.
12
16
  *
13
- * @template Capabilities - Server capabilities (defaults to ServerCapabilities)
17
+ * ### Capability-aware namespaces
18
+ *
19
+ * After calling `registerCapabilities(caps)`, the server exposes typed
20
+ * namespaces — e.g. `server.textDocument.onHover(handler)` — that are only
21
+ * present when the corresponding capability is declared. TypeScript enforces
22
+ * this at compile time so you cannot accidentally register a handler for a
23
+ * capability you never advertised.
24
+ *
25
+ * ### Transport selection
26
+ *
27
+ * - **Browser / universal**: `WebSocketTransport` (from `@lspeasy/core`)
28
+ * - **Node.js**: `StdioTransport`, `TcpTransport`, `IpcTransport` (from `@lspeasy/core/node`)
29
+ * - **Web Workers**: `DedicatedWorkerTransport`, `SharedWorkerTransport` (from `@lspeasy/core`)
30
+ *
31
+ * @useWhen
32
+ * You are building an LSP language server that editors and language-client
33
+ * tooling will connect to. `LSPServer` is the primary entry point for all
34
+ * server implementations.
35
+ *
36
+ * @avoidWhen
37
+ * You need a bare JSON-RPC layer without LSP semantics — use the transport
38
+ * and framing utilities directly instead.
39
+ *
40
+ * @never
41
+ * NEVER call `server.shutdown()` or `server.close()` from inside a request
42
+ * or notification handler — doing so attempts to close the transport while it
43
+ * is actively dispatching, causing a deadlock.
44
+ *
45
+ * NEVER mutate `ServerCapabilities` after `initialized` has been received.
46
+ * The client cached the `InitializeResult` at handshake time; runtime changes
47
+ * are invisible to it.
48
+ *
49
+ * NEVER share one `LSPServer` instance across multiple transports or
50
+ * connections. Each connection requires its own server instance to maintain
51
+ * independent protocol state (lifecycle phase, pending request IDs, etc.).
52
+ *
53
+ * NEVER send a server-to-client notification before the `initialize` response
54
+ * has been dispatched. Use the `initialized` notification handler as the
55
+ * earliest safe point for server-initiated messages.
14
56
  *
15
57
  * @example
16
- * // Create a server with specific capabilities
17
- * type MyCaps = { hoverProvider: true; completionProvider: { triggerCharacters: ['.'] } };
18
- * const server = new LSPServer<MyCaps>();
19
- * server.registerCapabilities({ hoverProvider: true, completionProvider: { triggerCharacters: ['.'] } });
58
+ * ```ts
59
+ * import { LSPServer } from '@lspeasy/server';
60
+ * // Node.js: import { StdioTransport } from '@lspeasy/core/node';
61
+ * // Browser: import { WebSocketTransport } from '@lspeasy/core';
62
+ *
63
+ * const server = new LSPServer({ name: 'my-lsp', version: '1.0.0' })
64
+ * .registerCapabilities({ hoverProvider: true });
65
+ *
66
+ * server.textDocument.onHover(async (params, token) => {
67
+ * if (token.isCancellationRequested) return null;
68
+ * return { contents: { kind: 'plaintext', value: 'Hello from my-lsp' } };
69
+ * });
70
+ *
71
+ * const transport = new StdioTransport();
72
+ * await server.listen(transport);
73
+ * ```
74
+ *
75
+ * @template Capabilities - Shape of the server capabilities, defaults to `ServerCapabilities`.
76
+ * @category Server
20
77
  */
21
78
  export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabilities> = ServerCapabilities> {
22
79
  private readonly logger;
@@ -104,19 +161,56 @@ export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabiliti
104
161
  */
105
162
  expect<C extends Partial<ClientCapabilities>>(): this & Server<C, Capabilities>;
106
163
  /**
107
- * Send a server-to-client request.
164
+ * Send a server-to-client request and await the client's response.
165
+ *
166
+ * @param method - The LSP request method name (server-to-client direction).
167
+ * @param params - Optional request parameters.
168
+ * @returns A promise resolving to the client's result.
169
+ * @throws {Error} When not listening (transport not attached). Fix: only call `sendRequest` from inside a handler or after the `listening` event fires.
170
+ * @throws {Error} When the client returns a JSON-RPC error response. Fix: catch and inspect `error.code`; `window/showMessageRequest` rejections are user-initiated (user dismissed), not bugs.
171
+ * @throws {Error} When the request times out (if `requestTimeout` is configured). Fix: increase `ServerOptions.requestTimeout` for slow UI interactions like `window/showMessageRequest`.
172
+ *
173
+ * @category Server
108
174
  */
109
175
  sendRequest<Method extends LSPRequestMethod<'serverToClient'>>(method: Method, params?: ParamsForRequest<Method>): Promise<ResultForRequest<Method>>;
110
176
  /**
111
- * Send a server-to-client notification.
177
+ * Send a server-to-client notification (fire-and-forget).
178
+ *
179
+ * @param method - The LSP notification method name (server-to-client direction).
180
+ * @param params - Optional notification parameters.
181
+ * @throws {Error} When not listening. Fix: only send notifications after `listen()` resolves and before `shutdown()` is called; guard with `isListening()`.
182
+ * @throws {Error} When the transport's underlying `send()` fails (e.g. broken socket). Fix: subscribe to `server.onError()` to catch transport-level write failures.
183
+ *
184
+ * @category Server
112
185
  */
113
186
  sendNotification<Method extends LSPNotificationMethod<'serverToClient'>>(method: Method, params?: ParamsForNotification<Method>): Promise<void>;
114
187
  /**
115
- * Start listening on a transport
188
+ * Attaches the server to a transport and begins processing messages.
189
+ *
190
+ * @remarks
191
+ * After `listen()` returns the server is ready to receive the `initialize`
192
+ * request from the client. The LSP handshake proceeds automatically.
193
+ *
194
+ * @param transport - The transport to listen on.
195
+ * @throws {Error} When already listening. Fix: call `close()` then create a fresh `LSPServer` instance — do not reuse a single instance across connections.
196
+ *
197
+ * @category Lifecycle
116
198
  */
117
199
  listen(transport: Transport): Promise<void>;
118
200
  /**
119
- * Graceful shutdown
201
+ * Initiates graceful shutdown, waits for in-flight handlers, then closes
202
+ * the transport.
203
+ *
204
+ * @remarks
205
+ * Waits up to `timeout` ms for pending handlers to complete, then
206
+ * cancels any remaining in-flight requests before closing. Use this method
207
+ * to shut down in response to an OS signal or editor session end.
208
+ *
209
+ * @param timeout - Maximum milliseconds to wait for in-flight handlers before
210
+ * force-cancelling them.
211
+ * @defaultValue 5000
212
+ *
213
+ * @category Lifecycle
120
214
  */
121
215
  shutdown(timeout?: number): Promise<void>;
122
216
  /**
@@ -154,6 +248,9 @@ export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabiliti
154
248
  * Register built-in lifecycle handlers
155
249
  */
156
250
  private registerBuiltinHandlers;
251
+ /**
252
+ * Handle incoming message
253
+ */
157
254
  private handleMessage;
158
255
  private getMessageType;
159
256
  private getMessageMethod;
@@ -165,6 +262,68 @@ export declare class BaseLSPServer<Capabilities extends Partial<ServerCapabiliti
165
262
  */
166
263
  private handleResponse;
167
264
  }
265
+ /**
266
+ * Full-featured LSP server with automatic lifecycle management, typed handlers,
267
+ * capability-aware namespaces, and pluggable middleware.
268
+ *
269
+ * @remarks
270
+ * `LSPServer` manages the complete LSP lifecycle (`initialize` / `initialized`
271
+ * / `shutdown` / `exit`) automatically. Register handlers with `onRequest` /
272
+ * `onNotification`, declare capabilities with `registerCapabilities`, then
273
+ * start with `listen(transport)`.
274
+ *
275
+ * ### Capability-aware namespaces
276
+ * After `registerCapabilities({ hoverProvider: true })`, TypeScript exposes
277
+ * `server.textDocument.onHover(handler)` — methods absent unless the
278
+ * corresponding capability is declared.
279
+ *
280
+ * @useWhen
281
+ * You are building an LSP language server that editors and language-client
282
+ * tooling will connect to.
283
+ *
284
+ * @avoidWhen
285
+ * You need a bare JSON-RPC layer without LSP semantics — use the transport
286
+ * and framing utilities from `@lspeasy/core` directly.
287
+ *
288
+ * @never
289
+ * NEVER call `server.shutdown()` or `server.close()` from inside a request
290
+ * or notification handler — doing so attempts to close the transport while it
291
+ * is actively dispatching, causing a deadlock.
292
+ *
293
+ * NEVER mutate `ServerCapabilities` after `initialized` has been received.
294
+ * The client cached the `InitializeResult` at handshake time; runtime changes
295
+ * are invisible to it.
296
+ *
297
+ * NEVER share one `LSPServer` instance across multiple transports or connections.
298
+ * Each connection requires its own server instance to maintain independent state.
299
+ *
300
+ * @example
301
+ * ```ts
302
+ * import { LSPServer } from '@lspeasy/server';
303
+ * import { StdioTransport } from '@lspeasy/core/node';
304
+ *
305
+ * const server = new LSPServer({ name: 'my-lsp', version: '1.0.0' })
306
+ * .registerCapabilities({ hoverProvider: true });
307
+ *
308
+ * server.textDocument.onHover(async (params, token) => {
309
+ * if (token.isCancellationRequested) return null;
310
+ * return { contents: { kind: 'plaintext', value: 'Hello from my-lsp' } };
311
+ * });
312
+ *
313
+ * await server.listen(new StdioTransport());
314
+ * ```
315
+ *
316
+ * @template ServerCaps - Shape of the server capabilities.
317
+ * @category Server
318
+ */
168
319
  export type LSPServer<ServerCaps extends Partial<ServerCapabilities> = ServerCapabilities> = BaseLSPServer<ServerCaps> & Server<ClientCapabilities, ServerCaps>;
320
+ /**
321
+ * Constructs an {@link LSPServer} instance.
322
+ *
323
+ * @param options - Optional {@link ServerOptions} to configure the server.
324
+ * @returns A new `LSPServer` instance.
325
+ *
326
+ * @category Server
327
+ */
169
328
  export declare const LSPServer: new <ServerCaps extends Partial<ServerCapabilities> = ServerCapabilities>(options?: ServerOptions<ServerCaps>) => LSPServer<ServerCaps>;
170
329
  //# sourceMappingURL=server.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
package/dist/server.js CHANGED
@@ -11,18 +11,75 @@ import { validateParams } from './validation.js';
11
11
  import { CapabilityGuard, ClientCapabilityGuard } from './capability-guard.js';
12
12
  import { initializeServerHandlerMethods, initializeServerSendMethods } from './capability-proxy.js';
13
13
  /**
14
- * LSP Server class with dynamic capability-aware typing
14
+ * Full-featured LSP server with automatic lifecycle management, typed handlers,
15
+ * capability-aware namespaces, and pluggable middleware.
15
16
  *
16
- * This class dynamically provides handler registration and send methods based on capabilities.
17
- * Methods are type-safe and conditionally available based on the Capabilities type parameter.
17
+ * @remarks
18
+ * `LSPServer` manages the complete LSP lifecycle (`initialize` / `initialized`
19
+ * / `shutdown` / `exit`) automatically. Register your handlers with
20
+ * `onRequest` / `onNotification`, declare capabilities with
21
+ * `registerCapabilities`, then start the server with `listen(transport)`.
18
22
  *
19
- * @template Capabilities - Server capabilities (defaults to ServerCapabilities)
23
+ * ### Capability-aware namespaces
24
+ *
25
+ * After calling `registerCapabilities(caps)`, the server exposes typed
26
+ * namespaces — e.g. `server.textDocument.onHover(handler)` — that are only
27
+ * present when the corresponding capability is declared. TypeScript enforces
28
+ * this at compile time so you cannot accidentally register a handler for a
29
+ * capability you never advertised.
30
+ *
31
+ * ### Transport selection
32
+ *
33
+ * - **Browser / universal**: `WebSocketTransport` (from `@lspeasy/core`)
34
+ * - **Node.js**: `StdioTransport`, `TcpTransport`, `IpcTransport` (from `@lspeasy/core/node`)
35
+ * - **Web Workers**: `DedicatedWorkerTransport`, `SharedWorkerTransport` (from `@lspeasy/core`)
36
+ *
37
+ * @useWhen
38
+ * You are building an LSP language server that editors and language-client
39
+ * tooling will connect to. `LSPServer` is the primary entry point for all
40
+ * server implementations.
41
+ *
42
+ * @avoidWhen
43
+ * You need a bare JSON-RPC layer without LSP semantics — use the transport
44
+ * and framing utilities directly instead.
45
+ *
46
+ * @never
47
+ * NEVER call `server.shutdown()` or `server.close()` from inside a request
48
+ * or notification handler — doing so attempts to close the transport while it
49
+ * is actively dispatching, causing a deadlock.
50
+ *
51
+ * NEVER mutate `ServerCapabilities` after `initialized` has been received.
52
+ * The client cached the `InitializeResult` at handshake time; runtime changes
53
+ * are invisible to it.
54
+ *
55
+ * NEVER share one `LSPServer` instance across multiple transports or
56
+ * connections. Each connection requires its own server instance to maintain
57
+ * independent protocol state (lifecycle phase, pending request IDs, etc.).
58
+ *
59
+ * NEVER send a server-to-client notification before the `initialize` response
60
+ * has been dispatched. Use the `initialized` notification handler as the
61
+ * earliest safe point for server-initiated messages.
20
62
  *
21
63
  * @example
22
- * // Create a server with specific capabilities
23
- * type MyCaps = { hoverProvider: true; completionProvider: { triggerCharacters: ['.'] } };
24
- * const server = new LSPServer<MyCaps>();
25
- * server.registerCapabilities({ hoverProvider: true, completionProvider: { triggerCharacters: ['.'] } });
64
+ * ```ts
65
+ * import { LSPServer } from '@lspeasy/server';
66
+ * // Node.js: import { StdioTransport } from '@lspeasy/core/node';
67
+ * // Browser: import { WebSocketTransport } from '@lspeasy/core';
68
+ *
69
+ * const server = new LSPServer({ name: 'my-lsp', version: '1.0.0' })
70
+ * .registerCapabilities({ hoverProvider: true });
71
+ *
72
+ * server.textDocument.onHover(async (params, token) => {
73
+ * if (token.isCancellationRequested) return null;
74
+ * return { contents: { kind: 'plaintext', value: 'Hello from my-lsp' } };
75
+ * });
76
+ *
77
+ * const transport = new StdioTransport();
78
+ * await server.listen(transport);
79
+ * ```
80
+ *
81
+ * @template Capabilities - Shape of the server capabilities, defaults to `ServerCapabilities`.
82
+ * @category Server
26
83
  */
27
84
  export class BaseLSPServer {
28
85
  logger;
@@ -165,7 +222,16 @@ export class BaseLSPServer {
165
222
  return this;
166
223
  }
167
224
  /**
168
- * Send a server-to-client request.
225
+ * Send a server-to-client request and await the client's response.
226
+ *
227
+ * @param method - The LSP request method name (server-to-client direction).
228
+ * @param params - Optional request parameters.
229
+ * @returns A promise resolving to the client's result.
230
+ * @throws {Error} When not listening (transport not attached). Fix: only call `sendRequest` from inside a handler or after the `listening` event fires.
231
+ * @throws {Error} When the client returns a JSON-RPC error response. Fix: catch and inspect `error.code`; `window/showMessageRequest` rejections are user-initiated (user dismissed), not bugs.
232
+ * @throws {Error} When the request times out (if `requestTimeout` is configured). Fix: increase `ServerOptions.requestTimeout` for slow UI interactions like `window/showMessageRequest`.
233
+ *
234
+ * @category Server
169
235
  */
170
236
  async sendRequest(method, params) {
171
237
  if (!this.transport) {
@@ -199,7 +265,14 @@ export class BaseLSPServer {
199
265
  return promise;
200
266
  }
201
267
  /**
202
- * Send a server-to-client notification.
268
+ * Send a server-to-client notification (fire-and-forget).
269
+ *
270
+ * @param method - The LSP notification method name (server-to-client direction).
271
+ * @param params - Optional notification parameters.
272
+ * @throws {Error} When not listening. Fix: only send notifications after `listen()` resolves and before `shutdown()` is called; guard with `isListening()`.
273
+ * @throws {Error} When the transport's underlying `send()` fails (e.g. broken socket). Fix: subscribe to `server.onError()` to catch transport-level write failures.
274
+ *
275
+ * @category Server
203
276
  */
204
277
  async sendNotification(method, params) {
205
278
  if (!this.transport) {
@@ -224,7 +297,16 @@ export class BaseLSPServer {
224
297
  });
225
298
  }
226
299
  /**
227
- * Start listening on a transport
300
+ * Attaches the server to a transport and begins processing messages.
301
+ *
302
+ * @remarks
303
+ * After `listen()` returns the server is ready to receive the `initialize`
304
+ * request from the client. The LSP handshake proceeds automatically.
305
+ *
306
+ * @param transport - The transport to listen on.
307
+ * @throws {Error} When already listening. Fix: call `close()` then create a fresh `LSPServer` instance — do not reuse a single instance across connections.
308
+ *
309
+ * @category Lifecycle
228
310
  */
229
311
  async listen(transport) {
230
312
  if (this.transport) {
@@ -248,7 +330,19 @@ export class BaseLSPServer {
248
330
  this.events.emit('listening');
249
331
  }
250
332
  /**
251
- * Graceful shutdown
333
+ * Initiates graceful shutdown, waits for in-flight handlers, then closes
334
+ * the transport.
335
+ *
336
+ * @remarks
337
+ * Waits up to `timeout` ms for pending handlers to complete, then
338
+ * cancels any remaining in-flight requests before closing. Use this method
339
+ * to shut down in response to an OS signal or editor session end.
340
+ *
341
+ * @param timeout - Maximum milliseconds to wait for in-flight handlers before
342
+ * force-cancelling them.
343
+ * @defaultValue 5000
344
+ *
345
+ * @category Lifecycle
252
346
  */
253
347
  async shutdown(timeout = 5000) {
254
348
  if (this.state === ServerState.Shutdown) {
@@ -521,6 +615,14 @@ export class BaseLSPServer {
521
615
  this.pendingRequests.reject(String(id), new Error('Invalid response message'));
522
616
  }
523
617
  }
618
+ /**
619
+ * Constructs an {@link LSPServer} instance.
620
+ *
621
+ * @param options - Optional {@link ServerOptions} to configure the server.
622
+ * @returns A new `LSPServer` instance.
623
+ *
624
+ * @category Server
625
+ */
524
626
  // Generic constructor that preserves type parameters
525
627
  export const LSPServer = BaseLSPServer;
526
628
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}