@lspeasy/server 4.0.2 → 4.0.3

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
@@ -49,7 +49,7 @@ const transport = new StdioTransport();
49
49
  await server.listen(transport);
50
50
  ```
51
51
 
52
- ## Features
52
+ ## What You Get
53
53
 
54
54
  - **Type-Safe Handlers**: Fully typed request and notification handlers with IntelliSense support
55
55
  - **Automatic Validation**: Built-in parameter validation using Zod schemas
@@ -1 +1 @@
1
- {"version":3,"file":"capability-guard.js","sourceRoot":"","sources":["../src/capability-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,wCAAwC,EACxC,mCAAmC,EACnC,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,OAAO,eAAe;IAEP,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK,EACxC;4BAHiB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ,kBAAkB,CAAC,MAAc,EAAW;QAC1C,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;gBACvB,OAAO,CACL,6BAA6B,CAAC,CAAQ,CAAC,IAAI,kCAAkC,CAAC,CAAQ,CAAC,CACxF,CAAC;YAAA,CACH;YACD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,kBAAkB;YAC/B,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IAAA,CACJ;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAEb,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK,EACxC;4BAHiB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ,cAAc,CAAC,MAAc,EAAW;QACtC,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC,CAAC,CAAQ,CAAC;YACtE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IAAA,CACJ;IAED,mBAAmB,CAAC,MAAc,EAAW;QAC3C,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,wCAAwC,CAAC,CAAQ,CAAC;YAC3E,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,mBAAmB;YAChC,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IAAA,CACJ;IAED,qBAAqB,GAAgC;QACnD,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAAA,CACjC;CACF"}
1
+ {"version":3,"file":"capability-guard.js","sourceRoot":"","sources":["../src/capability-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,cAAc,EACd,cAAc,EACd,WAAW,EACX,wCAAwC,EACxC,mCAAmC,EACnC,mBAAmB,EACnB,mBAAmB,EACnB,kCAAkC,EAClC,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,MAAM,OAAO,eAAe;IAEP,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK;4BAFvB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ,kBAAkB,CAAC,MAAc;QAC/B,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE;gBACtB,OAAO,CACL,6BAA6B,CAAC,CAAQ,CAAC,IAAI,kCAAkC,CAAC,CAAQ,CAAC,CACxF,CAAC;YACJ,CAAC;YACD,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,kBAAkB;YAC/B,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;CACF;AAED;;GAEG;AACH,MAAM,OAAO,qBAAqB;IAEb,YAAY;IACZ,MAAM;IACN,MAAM;IAHzB,YACmB,YAAyC,EACzC,MAAc,EACd,MAAM,GAAY,KAAK;4BAFvB,YAAY;sBACZ,MAAM;sBACN,MAAM;IACtB,CAAC;IAEJ,cAAc,CAAC,MAAc;QAC3B,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,mCAAmC,CAAC,CAAQ,CAAC;YACtE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,cAAc;YAC3B,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,mBAAmB,CAAC,MAAc;QAChC,OAAO,WAAW,CAAC;YACjB,MAAM;YACN,UAAU,EAAE,cAAc;YAC1B,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,wCAAwC,CAAC,CAAQ,CAAC;YAC3E,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,EAAE,GAAU,CAAC;YAC1E,WAAW,EAAE,mBAAmB;YAChC,eAAe,EAAE,mBAAmB;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,qBAAqB;QACnB,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"capability-proxy.js","sourceRoot":"","sources":["../src/capability-proxy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capability-proxy.js","sourceRoot":"","sources":["../src/capability-proxy.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,26 @@
4
4
  import type { Message, Transport, Logger, ClientCapabilities } from '@lspeasy/core';
5
5
  import type { RequestHandler, NotificationHandler } from './types.js';
6
6
  /**
7
- * Message dispatcher manages request/notification routing
7
+ * Routes incoming JSON-RPC requests and notifications to their registered handlers.
8
+ *
9
+ * @remarks
10
+ * `MessageDispatcher` is an internal component of `LSPServer`. It maintains
11
+ * separate handler registries for requests (which require a response) and
12
+ * notifications (fire-and-forget), and handles cancellation via `AbortController`.
13
+ *
14
+ * Most users should interact with `LSPServer.onRequest` / `LSPServer.onNotification`
15
+ * instead of using `MessageDispatcher` directly.
16
+ *
17
+ * @never
18
+ * NEVER register the same method in both the request and notification handler
19
+ * registries — the dispatcher uses separate lookup tables and the method will
20
+ * only match one path, silently ignoring the other.
21
+ *
22
+ * NEVER call `dispatch` before calling `setClientCapabilities` if your handler
23
+ * reads `context.clientCapabilities` — the value will be `undefined` until
24
+ * the `initialize` request is processed.
25
+ *
26
+ * @category Server
8
27
  */
9
28
  export declare class MessageDispatcher {
10
29
  private readonly logger;
@@ -14,19 +33,33 @@ export declare class MessageDispatcher {
14
33
  private clientCapabilities?;
15
34
  constructor(logger: Logger);
16
35
  /**
17
- * Register a request handler
36
+ * Register a typed request handler for the given LSP method.
37
+ *
38
+ * @param method - The LSP method string (e.g. `'textDocument/hover'`).
39
+ * @param handler - The handler function to invoke for matching requests.
40
+ *
41
+ * @see {@link RequestHandler} for the handler signature.
18
42
  */
19
43
  registerRequest<Params, Result>(method: string, handler: RequestHandler<Params, Result>): void;
20
44
  /**
21
- * Register a notification handler
45
+ * Register a typed notification handler for the given LSP method.
46
+ *
47
+ * @param method - The LSP method string (e.g. `'textDocument/didOpen'`).
48
+ * @param handler - The handler function to invoke for matching notifications.
49
+ *
50
+ * @see {@link NotificationHandler} for the handler signature.
22
51
  */
23
52
  registerNotification<Params>(method: string, handler: NotificationHandler<Params>): void;
24
53
  /**
25
- * Unregister a request handler
54
+ * Unregister a request handler.
55
+ *
56
+ * @param method - The LSP method string whose handler should be removed.
26
57
  */
27
58
  unregisterRequest(method: string): void;
28
59
  /**
29
- * Unregister a notification handler
60
+ * Unregister a notification handler.
61
+ *
62
+ * @param method - The LSP method string whose handler should be removed.
30
63
  */
31
64
  unregisterNotification(method: string): void;
32
65
  /**
@@ -34,14 +67,20 @@ export declare class MessageDispatcher {
34
67
  */
35
68
  setClientCapabilities(capabilities: ClientCapabilities): void;
36
69
  /**
37
- * Dispatch an incoming message
70
+ * Dispatch an incoming message to the registered handler.
71
+ *
72
+ * @param message - The incoming JSON-RPC message to route.
73
+ * @param transport - The transport to send the response or error on.
74
+ * @param cancellationTokens - Map of pending request IDs to their `AbortController`s.
38
75
  */
39
76
  dispatch(message: Message, transport: Transport, cancellationTokens: Map<number | string, AbortController>): Promise<void>;
40
77
  private dispatchRequest;
41
78
  private dispatchNotification;
42
79
  private sendError;
43
80
  /**
44
- * Cancel a pending request
81
+ * Cancel a pending request.
82
+ *
83
+ * @param id - The request ID to cancel.
45
84
  */
46
85
  cancelRequest(id: number | string): void;
47
86
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,OAAO,EAGP,SAAS,EAET,MAAM,EACN,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,qBAAa,iBAAiB;IAUhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,eAAe,CAInB;IACJ,OAAO,CAAC,oBAAoB,CAA+D;IAC3F,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAEhD,YAA6B,MAAM,EAAE,MAAM,EAAI;IAE/C;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAG7F;IAED;;OAEG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,IAAI,CAGvF;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGtC;IAED;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG3C;IAED;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAE5D;IAED;;OAEG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,eAAe,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAMf;YAKa,eAAe;YA8Df,oBAAoB;YAuBpB,SAAS;IAgBvB;;OAEG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;CACF"}
1
+ {"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EACV,OAAO,EAGP,SAAS,EAET,MAAM,EACN,kBAAkB,EACnB,MAAM,eAAe,CAAC;AAGvB,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,iBAAiB;IAUhB,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,OAAO,CAAC,eAAe,CAInB;IACJ,OAAO,CAAC,oBAAoB,CAA+D;IAC3F,OAAO,CAAC,eAAe,CAA+C;IACtE,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAEhD,YAA6B,MAAM,EAAE,MAAM,EAAI;IAE/C;;;;;;;OAOG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAG7F;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,MAAM,CAAC,GAAG,IAAI,CAGvF;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAGtC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAG3C;IAED;;OAEG;IACH,qBAAqB,CAAC,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAE5D;IAED;;;;;;OAMG;IACG,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,eAAe,CAAC,GACxD,OAAO,CAAC,IAAI,CAAC,CAMf;YAKa,eAAe;YA8Df,oBAAoB;YAuBpB,SAAS;IAgBvB;;;;OAIG;IACH,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAOvC;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAIZ;CACF"}
@@ -4,7 +4,26 @@
4
4
  import { ResponseError, isRequestMessage, isNotificationMessage } from '@lspeasy/core';
5
5
  import { HandlerRegistry } from '@lspeasy/core/utils';
6
6
  /**
7
- * Message dispatcher manages request/notification routing
7
+ * Routes incoming JSON-RPC requests and notifications to their registered handlers.
8
+ *
9
+ * @remarks
10
+ * `MessageDispatcher` is an internal component of `LSPServer`. It maintains
11
+ * separate handler registries for requests (which require a response) and
12
+ * notifications (fire-and-forget), and handles cancellation via `AbortController`.
13
+ *
14
+ * Most users should interact with `LSPServer.onRequest` / `LSPServer.onNotification`
15
+ * instead of using `MessageDispatcher` directly.
16
+ *
17
+ * @never
18
+ * NEVER register the same method in both the request and notification handler
19
+ * registries — the dispatcher uses separate lookup tables and the method will
20
+ * only match one path, silently ignoring the other.
21
+ *
22
+ * NEVER call `dispatch` before calling `setClientCapabilities` if your handler
23
+ * reads `context.clientCapabilities` — the value will be `undefined` until
24
+ * the `initialize` request is processed.
25
+ *
26
+ * @category Server
8
27
  */
9
28
  export class MessageDispatcher {
10
29
  logger;
@@ -16,28 +35,42 @@ export class MessageDispatcher {
16
35
  this.logger = logger;
17
36
  }
18
37
  /**
19
- * Register a request handler
38
+ * Register a typed request handler for the given LSP method.
39
+ *
40
+ * @param method - The LSP method string (e.g. `'textDocument/hover'`).
41
+ * @param handler - The handler function to invoke for matching requests.
42
+ *
43
+ * @see {@link RequestHandler} for the handler signature.
20
44
  */
21
45
  registerRequest(method, handler) {
22
46
  this.requestHandlers.register(method, handler);
23
47
  this.logger.debug(`Registered request handler: ${method}`);
24
48
  }
25
49
  /**
26
- * Register a notification handler
50
+ * Register a typed notification handler for the given LSP method.
51
+ *
52
+ * @param method - The LSP method string (e.g. `'textDocument/didOpen'`).
53
+ * @param handler - The handler function to invoke for matching notifications.
54
+ *
55
+ * @see {@link NotificationHandler} for the handler signature.
27
56
  */
28
57
  registerNotification(method, handler) {
29
58
  this.notificationHandlers.register(method, handler);
30
59
  this.logger.debug(`Registered notification handler: ${method}`);
31
60
  }
32
61
  /**
33
- * Unregister a request handler
62
+ * Unregister a request handler.
63
+ *
64
+ * @param method - The LSP method string whose handler should be removed.
34
65
  */
35
66
  unregisterRequest(method) {
36
67
  this.requestHandlers.unregister(method);
37
68
  this.logger.debug(`Unregistered request handler: ${method}`);
38
69
  }
39
70
  /**
40
- * Unregister a notification handler
71
+ * Unregister a notification handler.
72
+ *
73
+ * @param method - The LSP method string whose handler should be removed.
41
74
  */
42
75
  unregisterNotification(method) {
43
76
  this.notificationHandlers.unregister(method);
@@ -50,7 +83,11 @@ export class MessageDispatcher {
50
83
  this.clientCapabilities = capabilities;
51
84
  }
52
85
  /**
53
- * Dispatch an incoming message
86
+ * Dispatch an incoming message to the registered handler.
87
+ *
88
+ * @param message - The incoming JSON-RPC message to route.
89
+ * @param transport - The transport to send the response or error on.
90
+ * @param cancellationTokens - Map of pending request IDs to their `AbortController`s.
54
91
  */
55
92
  async dispatch(message, transport, cancellationTokens) {
56
93
  if (isRequestMessage(message)) {
@@ -152,7 +189,9 @@ export class MessageDispatcher {
152
189
  }
153
190
  }
154
191
  /**
155
- * Cancel a pending request
192
+ * Cancel a pending request.
193
+ *
194
+ * @param id - The request ID to cancel.
156
195
  */
157
196
  cancelRequest(id) {
158
197
  const controller = this.pendingRequests.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dispatcher.js","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAQtD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,OAAO,iBAAiB;IAUC,MAAM;IAT3B,eAAe,GAAG,IAAI,eAAe,EAI1C,CAAC;IACI,oBAAoB,GAAG,IAAI,eAAe,EAAwC,CAAC;IACnF,eAAe,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC9D,kBAAkB,CAAsB;IAEhD,YAA6B,MAAc;sBAAd,MAAM;IAAW,CAAC;IAE/C;;;;;;;OAOG;IACH,eAAe,CAAiB,MAAc,EAAE,OAAuC;QACrF,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAyB,CAAC,CAAC;QACjE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,MAAM,EAAE,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;OAOG;IACH,oBAAoB,CAAS,MAAc,EAAE,OAAoC;QAC/E,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,OAA8B,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oCAAoC,MAAM,EAAE,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,MAAc;QAC9B,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED;;;;OAIG;IACH,sBAAsB,CAAC,MAAc;QACnC,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,MAAM,EAAE,CAAC,CAAC;IACpE,CAAC;IAED;;OAEG;IACH,qBAAqB,CAAC,YAAgC;QACpD,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;IACzC,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,QAAQ,CACZ,OAAgB,EAChB,SAAoB,EACpB,kBAAyD;QAEzD,IAAI,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACrE,CAAC;aAAM,IAAI,qBAAqB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,eAAe,CAC3B,OAAuB,EACvB,SAAoB,EACpB,kBAAyD;QAEzD,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEvC,IAAI,CAAC;YACH,0BAA0B;YAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAA+B,CAAC;YAC/E,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,aAAa,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC1E,OAAO;YACT,CAAC;YAED,6CAA6C;YAC7C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;YAC9C,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,eAAe,CAAC,CAAC;YAE5C,MAAM,iBAAiB,GAAsB;gBAC3C,IAAI,uBAAuB;oBACzB,OAAO,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC;gBACxC,CAAC;gBACD,uBAAuB,EAAE,CAAC,QAAQ,EAAE,EAAE;oBACpC,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBAC3D,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;gBAC1F,CAAC;aACF,CAAC;YAEF,kBAAkB;YAClB,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE,iBAAiB,EAAE;gBACtD,EAAE;gBACF,MAAM;gBACN,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;aAC5C,CAAC,CAAC;YAEH,wBAAwB;YACxB,oDAAoD;YACpD,gEAAgE;YAChE,+DAA+D;YAC/D,4DAA4D;YAC5D,MAAM,SAAS,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,MAAM,EAAE,MAAM,IAAI,IAAI;aACvB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,sBAAsB;YACtB,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;gBACnC,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,KAAK,CAAC,CAAC;YAC7C,CAAC;iBAAM,CAAC;gBACN,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC;gBAC1E,MAAM,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,EAAE,aAAa,CAAC,aAAa,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YACvF,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,kBAAkB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,oBAAoB,CAAC,YAAiC;QAClE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;QAExC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAoC,CAAC;YACzF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,MAAM,EAAE,CAAC,CAAC;gBAC5D,OAAO;YACT,CAAC;YAED,MAAM,OAAO,CAAC,MAAM,EAAE;gBACpB,MAAM;gBACN,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;aAC5C,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,qDAAqD;YACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,SAAS,CACrB,SAAoB,EACpB,EAAmB,EACnB,KAAoB;QAEpB,IAAI,CAAC;YACH,MAAM,SAAS,CAAC,IAAI,CAAC;gBACnB,OAAO,EAAE,KAAK;gBACd,EAAE;gBACF,KAAK,EAAE,KAAK,CAAC,MAAM,EAAE;aACtB,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,EAAmB;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAChD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,CAAC,KAAK,EAAE,CAAC;YACnB,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,56 @@
1
1
  /**
2
- * @lspeasy/server - Build LSP servers with simple, typed API
2
+ * LSP server package for hosting Language Server Protocol (LSP) servers.
3
+ *
4
+ * @remarks
5
+ * Use `@lspeasy/server` when you need to build the **provider** side of the
6
+ * Language Server Protocol — a daemon that editors and language-client tooling
7
+ * connect to in order to get diagnostics, completions, hover, go-to-definition,
8
+ * and other language intelligence features.
9
+ *
10
+ * The primary entry point is {@link LSPServer}. Construct it with
11
+ * {@link ServerOptions}, call `registerCapabilities(caps)` to declare what
12
+ * the server supports, register handlers with `onRequest` / `onNotification`,
13
+ * then call `listen(transport)` to accept the first client connection.
14
+ *
15
+ * ### Transport Decision Tree
16
+ *
17
+ * **Stdio** (`StdioTransport` from `@lspeasy/core/node`)
18
+ * — Use when: the client spawns your server as a child process (the canonical
19
+ * VS Code extension pattern). No network, no port management. Failure mode:
20
+ * `ConsoleLogger` writes to stdout and corrupts the LSP stream — always use
21
+ * `NullLogger` or a file-based logger with stdio.
22
+ *
23
+ * **WebSocket** (`WebSocketTransport` from `@lspeasy/core`)
24
+ * — Use when: multiple clients connect over a network, or the server must be
25
+ * browser-accessible. Each accepted WebSocket connection needs its own
26
+ * `LSPServer` instance. Failure mode: one client crash should not affect
27
+ * others — wrap each `wss.on('connection')` callback in try/catch and
28
+ * create a fresh `LSPServer` per socket.
29
+ *
30
+ * **TCP** (`TcpTransport` from `@lspeasy/core/node`)
31
+ * — Use when: building a persistent local daemon (e.g. a formatting server
32
+ * shared across editor sessions). Failure mode: client disconnect fires
33
+ * `close()` on the server instance — use `mode: 'server'` and create a new
34
+ * `LSPServer` on each reconnect.
35
+ *
36
+ * **DedicatedWorkerTransport** (`DedicatedWorkerTransport` from `@lspeasy/core`)
37
+ * — Use when: running the server logic in a Web Worker for in-process browser
38
+ * isolation. Zero serialization overhead. Failure mode: worker crash is
39
+ * silent from the server side — monitor the worker's `onerror` in the host.
40
+ *
41
+ * ### Typed capability namespaces
42
+ * After `registerCapabilities({ hoverProvider: true })`, TypeScript exposes
43
+ * `server.textDocument.onHover(handler)` — methods that are absent unless the
44
+ * corresponding capability is declared. This prevents accidentally registering
45
+ * handlers for capabilities the server never advertised.
46
+ *
47
+ * ### Handler conventions
48
+ * - {@link RequestHandler} — async, throws {@link ResponseError} for
49
+ * structured errors, checks `token.isCancellationRequested` for early exit.
50
+ * - {@link NotificationHandler} — fire-and-forget; unhandled rejections
51
+ * surface via `server.onError()`.
52
+ *
53
+ * @packageDocumentation
3
54
  */
4
55
  export { LSPServer } from './server.js';
5
56
  export type { ServerOptions, RequestHandler, NotificationHandler, NotebookDocumentHandlerNamespace, RequestContext, NotificationContext, Server } from './types.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EAChC,cAAc,EACd,mBAAmB,EACnB,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,UAAU,EAEV,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,YAAY,EACV,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,gCAAgC,EAChC,cAAc,EACd,mBAAmB,EACnB,MAAM,EACP,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E,YAAY,EACV,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,UAAU,EAEV,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,56 @@
1
1
  /**
2
- * @lspeasy/server - Build LSP servers with simple, typed API
2
+ * LSP server package for hosting Language Server Protocol (LSP) servers.
3
+ *
4
+ * @remarks
5
+ * Use `@lspeasy/server` when you need to build the **provider** side of the
6
+ * Language Server Protocol — a daemon that editors and language-client tooling
7
+ * connect to in order to get diagnostics, completions, hover, go-to-definition,
8
+ * and other language intelligence features.
9
+ *
10
+ * The primary entry point is {@link LSPServer}. Construct it with
11
+ * {@link ServerOptions}, call `registerCapabilities(caps)` to declare what
12
+ * the server supports, register handlers with `onRequest` / `onNotification`,
13
+ * then call `listen(transport)` to accept the first client connection.
14
+ *
15
+ * ### Transport Decision Tree
16
+ *
17
+ * **Stdio** (`StdioTransport` from `@lspeasy/core/node`)
18
+ * — Use when: the client spawns your server as a child process (the canonical
19
+ * VS Code extension pattern). No network, no port management. Failure mode:
20
+ * `ConsoleLogger` writes to stdout and corrupts the LSP stream — always use
21
+ * `NullLogger` or a file-based logger with stdio.
22
+ *
23
+ * **WebSocket** (`WebSocketTransport` from `@lspeasy/core`)
24
+ * — Use when: multiple clients connect over a network, or the server must be
25
+ * browser-accessible. Each accepted WebSocket connection needs its own
26
+ * `LSPServer` instance. Failure mode: one client crash should not affect
27
+ * others — wrap each `wss.on('connection')` callback in try/catch and
28
+ * create a fresh `LSPServer` per socket.
29
+ *
30
+ * **TCP** (`TcpTransport` from `@lspeasy/core/node`)
31
+ * — Use when: building a persistent local daemon (e.g. a formatting server
32
+ * shared across editor sessions). Failure mode: client disconnect fires
33
+ * `close()` on the server instance — use `mode: 'server'` and create a new
34
+ * `LSPServer` on each reconnect.
35
+ *
36
+ * **DedicatedWorkerTransport** (`DedicatedWorkerTransport` from `@lspeasy/core`)
37
+ * — Use when: running the server logic in a Web Worker for in-process browser
38
+ * isolation. Zero serialization overhead. Failure mode: worker crash is
39
+ * silent from the server side — monitor the worker's `onerror` in the host.
40
+ *
41
+ * ### Typed capability namespaces
42
+ * After `registerCapabilities({ hoverProvider: true })`, TypeScript exposes
43
+ * `server.textDocument.onHover(handler)` — methods that are absent unless the
44
+ * corresponding capability is declared. This prevents accidentally registering
45
+ * handlers for capabilities the server never advertised.
46
+ *
47
+ * ### Handler conventions
48
+ * - {@link RequestHandler} — async, throws {@link ResponseError} for
49
+ * structured errors, checks `token.isCancellationRequested` for early exit.
50
+ * - {@link NotificationHandler} — fire-and-forget; unhandled rejections
51
+ * surface via `server.onError()`.
52
+ *
53
+ * @packageDocumentation
3
54
  */
4
55
  // Main server class
5
56
  export { LSPServer } from './server.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAaxC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AA0B1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzF,uGAAuG;AACvG,gDAAgD"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDG;AAEH,oBAAoB;AACpB,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAaxC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,+BAA+B;AAC/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AA0B1E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzF,uGAAuG;AACvG,gDAAgD"}
@@ -1 +1 @@
1
- {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAIR,IAAI;IACJ,OAAO;IACP,MAAM;IALjB,kBAAkB,GAAuB,EAAE,CAAC;IAEpD,YACmB,IAAY,EACZ,OAAe,EACf,MAAc,EAC/B;oBAHiB,IAAI;uBACJ,OAAO;sBACP,MAAM;IACtB,CAAC;IAEJ;;OAEG;IACH,oBAAoB,CAAC,YAAgC,EAAQ;QAC3D,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;IAAA,CACxC;IAED;;OAEG;IACH,eAAe,GAAuB;QACpC,OAAO,IAAI,CAAC,kBAAkB,CAAC;IAAA,CAChC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAwB,EACxB,UAAqB,EACrB,GAAoB,EACO;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAqB;YAC/B,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAAA,CACf;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAyB,EAAQ;QACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IAAA,CAClD;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,UAAqB,EAAE,GAAoB,EAAiB;QAC/E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAAA,CAC9C;IAED;;OAEG;IACH,UAAU,GAAS;QACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAAA,CACjC;CACF"}
1
+ {"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAIR,IAAI;IACJ,OAAO;IACP,MAAM;IALjB,kBAAkB,GAAuB,EAAE,CAAC;IAEpD,YACmB,IAAY,EACZ,OAAe,EACf,MAAc;oBAFd,IAAI;uBACJ,OAAO;sBACP,MAAM;IACtB,CAAC;IAEJ;;OAEG;IACH,oBAAoB,CAAC,YAAgC;QACnD,IAAI,CAAC,kBAAkB,GAAG,YAAY,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,eAAe;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,gBAAgB,CACpB,MAAwB,EACxB,UAAqB,EACrB,GAAoB;QAEpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,MAAM,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAqB;YAC/B,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,UAAU,EAAE;gBACV,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,OAAO,EAAE,IAAI,CAAC,OAAO;aACtB;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,MAAyB;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;QACzD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,UAAqB,EAAE,GAAoB;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,UAAU;QACR,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -1,9 +1,38 @@
1
1
  import type { ProgressToken } from '@lspeasy/core';
2
2
  import type { BaseLSPServer } from '../server.js';
3
- /** Helper for emitting typed `$/progress` partial result batches from server handlers. */
3
+ /**
4
+ * Emits typed `$/progress` partial-result batches from server-side request handlers.
5
+ *
6
+ * @remarks
7
+ * Use `PartialResultSender` inside a `RequestHandler` when the client has
8
+ * supplied a `partialResultToken` (e.g. for `textDocument/references` or
9
+ * `workspace/symbol`). Call `send(token, value)` to stream result batches
10
+ * before returning the final response.
11
+ *
12
+ * @useWhen
13
+ * The client sets `partialResultToken` in the request params and you want to
14
+ * stream intermediate results (e.g. symbols found so far) rather than waiting
15
+ * for the complete set.
16
+ *
17
+ * @never
18
+ * NEVER call `send` after the handler has already returned a response — the
19
+ * `$/progress` notification will arrive after the client has closed the
20
+ * partial-result channel, and the client will silently discard or error on it.
21
+ *
22
+ * NEVER send partial results without a `partialResultToken` — the client has
23
+ * no way to correlate the `$/progress` notification to the pending request.
24
+ *
25
+ * @category Server
26
+ */
4
27
  export declare class PartialResultSender {
5
28
  private readonly server;
6
29
  constructor(server: BaseLSPServer);
30
+ /**
31
+ * Send a batch of partial results to the client.
32
+ *
33
+ * @param token - The `partialResultToken` from the originating request params.
34
+ * @param value - The partial result batch to stream to the client via `$/progress`.
35
+ */
7
36
  send<T>(token: ProgressToken, value: T): Promise<void>;
8
37
  }
9
38
  //# sourceMappingURL=partial-result-sender.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"partial-result-sender.d.ts","sourceRoot":"","sources":["../../src/progress/partial-result-sender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,0FAA0F;AAC1F,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,aAAa,EAAI;IAEhD,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3D;CACF"}
1
+ {"version":3,"file":"partial-result-sender.d.ts","sourceRoot":"","sources":["../../src/progress/partial-result-sender.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,aAAa,EAAE,MAAM,eAAe,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,mBAAmB;IAClB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,aAAa,EAAI;IAEtD;;;;;OAKG;IACG,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3D;CACF"}
@@ -1,9 +1,38 @@
1
- /** Helper for emitting typed `$/progress` partial result batches from server handlers. */
1
+ /**
2
+ * Emits typed `$/progress` partial-result batches from server-side request handlers.
3
+ *
4
+ * @remarks
5
+ * Use `PartialResultSender` inside a `RequestHandler` when the client has
6
+ * supplied a `partialResultToken` (e.g. for `textDocument/references` or
7
+ * `workspace/symbol`). Call `send(token, value)` to stream result batches
8
+ * before returning the final response.
9
+ *
10
+ * @useWhen
11
+ * The client sets `partialResultToken` in the request params and you want to
12
+ * stream intermediate results (e.g. symbols found so far) rather than waiting
13
+ * for the complete set.
14
+ *
15
+ * @never
16
+ * NEVER call `send` after the handler has already returned a response — the
17
+ * `$/progress` notification will arrive after the client has closed the
18
+ * partial-result channel, and the client will silently discard or error on it.
19
+ *
20
+ * NEVER send partial results without a `partialResultToken` — the client has
21
+ * no way to correlate the `$/progress` notification to the pending request.
22
+ *
23
+ * @category Server
24
+ */
2
25
  export class PartialResultSender {
3
26
  server;
4
27
  constructor(server) {
5
28
  this.server = server;
6
29
  }
30
+ /**
31
+ * Send a batch of partial results to the client.
32
+ *
33
+ * @param token - The `partialResultToken` from the originating request params.
34
+ * @param value - The partial result batch to stream to the client via `$/progress`.
35
+ */
7
36
  async send(token, value) {
8
37
  const payload = {
9
38
  token,
@@ -1 +1 @@
1
- {"version":3,"file":"partial-result-sender.js","sourceRoot":"","sources":["../../src/progress/partial-result-sender.ts"],"names":[],"mappings":"AAGA,0FAA0F;AAC1F,MAAM,OAAO,mBAAmB;IACD,MAAM;IAAnC,YAA6B,MAAqB,EAAE;sBAAvB,MAAM;IAAkB,CAAC;IAEtD,KAAK,CAAC,IAAI,CAAI,KAAoB,EAAE,KAAQ,EAAiB;QAC3D,MAAM,OAAO,GAAG;YACd,KAAK;YACL,KAAK;SAC4C,CAAC;QAEpD,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,GAAG,OAAO;SACX,CAAC,CAAC;IAAA,CACJ;CACF"}
1
+ {"version":3,"file":"partial-result-sender.js","sourceRoot":"","sources":["../../src/progress/partial-result-sender.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,OAAO,mBAAmB;IACD,MAAM;IAAnC,YAA6B,MAAqB;sBAArB,MAAM;IAAkB,CAAC;IAEtD;;;;;OAKG;IACH,KAAK,CAAC,IAAI,CAAI,KAAoB,EAAE,KAAQ;QAC1C,MAAM,OAAO,GAAG;YACd,KAAK;YACL,KAAK;SAC4C,CAAC;QAEpD,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,GAAG,OAAO;SACX,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AA6BvB;;GAEG;AACH,MAAM,oBAAoB;IAEd,KAAK;IACL,MAAM;IAFhB,YACU,KAAoB,EACpB,MAAsB,EAC9B;qBAFQ,KAAK;sBACL,MAAM;IACb,CAAC;IAEJ,KAAK,CAAC,KAAK,CACT,KAAa,EACb,WAAqB,EACrB,OAAgB,EAChB,UAAmB,EACJ;QACf,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IAAA,CACJ;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,UAAmB,EAAiB;QACjE,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IAAA,CACJ;IAED,KAAK,CAAC,GAAG,CAAC,OAAgB,EAAiB;QACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IAAA,CACJ;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,MAAsB,EACJ;IAClB,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAAA,CAChD;AAED;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../src/progress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AA6BvB;;GAEG;AACH,MAAM,oBAAoB;IAEd,KAAK;IACL,MAAM;IAFhB,YACU,KAAoB,EACpB,MAAsB;qBADtB,KAAK;sBACL,MAAM;IACb,CAAC;IAEJ,KAAK,CAAC,KAAK,CACT,KAAa,EACb,WAAqB,EACrB,OAAgB,EAChB,UAAmB;QAEnB,MAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3E,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAAgB,EAAE,UAAmB;QAChD,MAAM,KAAK,GAAG,oBAAoB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,OAAgB;QACxB,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,YAAY,EAAE;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,MAAsB;IAEtB,OAAO,IAAI,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}