@lspeasy/core 2.1.2 → 2.2.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/index.d.ts +44 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +44 -1
- package/dist/index.js.map +1 -1
- package/dist/jsonrpc/framing.d.ts +28 -3
- package/dist/jsonrpc/framing.d.ts.map +1 -1
- package/dist/jsonrpc/framing.js +28 -3
- package/dist/jsonrpc/framing.js.map +1 -1
- package/dist/jsonrpc/messages.d.ts +105 -8
- package/dist/jsonrpc/messages.d.ts.map +1 -1
- package/dist/jsonrpc/messages.js +36 -0
- package/dist/jsonrpc/messages.js.map +1 -1
- package/dist/jsonrpc/reader.js.map +1 -1
- package/dist/jsonrpc/writer.d.ts +3 -0
- package/dist/jsonrpc/writer.d.ts.map +1 -1
- package/dist/jsonrpc/writer.js.map +1 -1
- package/dist/middleware/compose.d.ts +22 -0
- package/dist/middleware/compose.d.ts.map +1 -1
- package/dist/middleware/compose.js +22 -0
- package/dist/middleware/compose.js.map +1 -1
- package/dist/middleware/pipeline.d.ts +22 -0
- package/dist/middleware/pipeline.d.ts.map +1 -1
- package/dist/middleware/pipeline.js +22 -0
- package/dist/middleware/pipeline.js.map +1 -1
- package/dist/middleware/scoped.d.ts +28 -0
- package/dist/middleware/scoped.d.ts.map +1 -1
- package/dist/middleware/scoped.js +28 -0
- package/dist/middleware/scoped.js.map +1 -1
- package/dist/middleware/typed.d.ts +30 -0
- package/dist/middleware/typed.d.ts.map +1 -1
- package/dist/middleware/typed.js +30 -0
- package/dist/middleware/typed.js.map +1 -1
- package/dist/middleware/types.d.ts +173 -0
- package/dist/middleware/types.d.ts.map +1 -1
- package/dist/protocol/capabilities.d.ts +78 -12
- package/dist/protocol/capabilities.d.ts.map +1 -1
- package/dist/protocol/capabilities.js +78 -12
- package/dist/protocol/capabilities.js.map +1 -1
- package/dist/protocol/capability-methods.d.ts +70 -2
- package/dist/protocol/capability-methods.d.ts.map +1 -1
- package/dist/protocol/capability-methods.js +8 -0
- package/dist/protocol/capability-methods.js.map +1 -1
- package/dist/protocol/dynamic-registration.d.ts +34 -2
- package/dist/protocol/dynamic-registration.d.ts.map +1 -1
- package/dist/protocol/dynamic-registration.js +16 -2
- package/dist/protocol/dynamic-registration.js.map +1 -1
- package/dist/protocol/enums.js +40 -80
- package/dist/protocol/enums.js.map +1 -1
- package/dist/protocol/infer.d.ts +92 -4
- package/dist/protocol/infer.d.ts.map +1 -1
- package/dist/protocol/infer.js +46 -4
- package/dist/protocol/infer.js.map +1 -1
- package/dist/protocol/namespaces.d.ts +327 -327
- package/dist/protocol/namespaces.d.ts.map +1 -1
- package/dist/protocol/partial-results.d.ts +6 -0
- package/dist/protocol/partial-results.d.ts.map +1 -1
- package/dist/protocol/partial.d.ts +12 -3
- package/dist/protocol/partial.d.ts.map +1 -1
- package/dist/protocol/partial.js +12 -3
- package/dist/protocol/partial.js.map +1 -1
- package/dist/protocol/progress.d.ts +34 -4
- package/dist/protocol/progress.d.ts.map +1 -1
- package/dist/protocol/progress.js +34 -4
- package/dist/protocol/progress.js.map +1 -1
- package/dist/protocol/schemas.d.ts +4 -1
- package/dist/protocol/schemas.d.ts.map +1 -1
- package/dist/protocol/schemas.js +4 -1
- package/dist/protocol/schemas.js.map +1 -1
- package/dist/protocol/watching.d.ts +18 -7
- package/dist/protocol/watching.d.ts.map +1 -1
- package/dist/protocol/watching.js +14 -3
- package/dist/protocol/watching.js.map +1 -1
- package/dist/protocol/workspace.d.ts +10 -2
- package/dist/protocol/workspace.d.ts.map +1 -1
- package/dist/protocol/workspace.js +10 -2
- package/dist/protocol/workspace.js.map +1 -1
- package/dist/transport/dedicated-worker.js.map +1 -1
- package/dist/transport/events.js.map +1 -1
- package/dist/transport/ipc.js.map +1 -1
- package/dist/transport/shared-worker.js.map +1 -1
- package/dist/transport/stdio.js.map +1 -1
- package/dist/transport/tcp.js.map +1 -1
- package/dist/transport/transport.d.ts +91 -10
- package/dist/transport/transport.d.ts.map +1 -1
- package/dist/transport/websocket.d.ts +120 -19
- package/dist/transport/websocket.d.ts.map +1 -1
- package/dist/transport/websocket.js +95 -8
- package/dist/transport/websocket.js.map +1 -1
- package/dist/transport/worker-types.d.ts +16 -2
- package/dist/transport/worker-types.d.ts.map +1 -1
- package/dist/transport/worker-types.js +12 -2
- package/dist/transport/worker-types.js.map +1 -1
- package/dist/utils/cancellation.d.ts +75 -5
- package/dist/utils/cancellation.d.ts.map +1 -1
- package/dist/utils/cancellation.js +29 -1
- package/dist/utils/cancellation.js.map +1 -1
- package/dist/utils/capability-guard.d.ts +32 -1
- package/dist/utils/capability-guard.d.ts.map +1 -1
- package/dist/utils/capability-guard.js +32 -1
- package/dist/utils/capability-guard.js.map +1 -1
- package/dist/utils/disposable-event-emitter.d.ts +11 -0
- package/dist/utils/disposable-event-emitter.d.ts.map +1 -1
- package/dist/utils/disposable-event-emitter.js +11 -0
- package/dist/utils/disposable-event-emitter.js.map +1 -1
- package/dist/utils/disposable.d.ts +42 -3
- package/dist/utils/disposable.d.ts.map +1 -1
- package/dist/utils/disposable.js +34 -2
- package/dist/utils/disposable.js.map +1 -1
- package/dist/utils/document.d.ts +78 -3
- package/dist/utils/document.d.ts.map +1 -1
- package/dist/utils/document.js +73 -3
- package/dist/utils/document.js.map +1 -1
- package/dist/utils/errors.d.ts +87 -10
- package/dist/utils/errors.d.ts.map +1 -1
- package/dist/utils/errors.js +87 -10
- package/dist/utils/errors.js.map +1 -1
- package/dist/utils/handler-registry.js.map +1 -1
- package/dist/utils/logger.d.ts +79 -4
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +64 -5
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/pending-request-tracker.d.ts.map +1 -1
- package/dist/utils/pending-request-tracker.js.map +1 -1
- package/dist/utils/transport-attachment.js.map +1 -1
- package/package.json +6 -7
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Core types, transports, and utilities shared by all lspeasy packages.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* `@lspeasy/core` is the shared foundation for the lspeasy SDK. It contains
|
|
6
|
+
* everything needed to build custom LSP integrations, and re-exports the
|
|
7
|
+
* most-used pieces from `@lspeasy/client` and `@lspeasy/server`.
|
|
8
|
+
*
|
|
9
|
+
* ### Key areas
|
|
10
|
+
*
|
|
11
|
+
* **JSON-RPC 2.0** — Message types ({@link RequestMessage}, {@link NotificationMessage},
|
|
12
|
+
* {@link ResponseMessage}), framing ({@link parseMessage}, {@link serializeMessage}),
|
|
13
|
+
* and Zod schemas for validation.
|
|
14
|
+
*
|
|
15
|
+
* **Transports** — The {@link Transport} interface plus browser-compatible
|
|
16
|
+
* implementations: {@link WebSocketTransport}, {@link DedicatedWorkerTransport},
|
|
17
|
+
* {@link SharedWorkerTransport}.
|
|
18
|
+
* Node.js transports (`StdioTransport`, `TcpTransport`, `IpcTransport`) are
|
|
19
|
+
* in `@lspeasy/core/node` to avoid importing Node.js builtins in browsers.
|
|
20
|
+
*
|
|
21
|
+
* ### Transport Selection Guide
|
|
22
|
+
*
|
|
23
|
+
* | Need | Transport | Critical Gotcha |
|
|
24
|
+
* |------|-----------|-----------------|
|
|
25
|
+
* | Spawn server as child process | `StdioTransport` | `ConsoleLogger` corrupts stdout — use `NullLogger` |
|
|
26
|
+
* | Browser or remote server | `WebSocketTransport` | Call `send()` only after `isConnected()` is `true` |
|
|
27
|
+
* | Persistent local daemon | `TcpTransport` | Create a new server instance per client reconnect |
|
|
28
|
+
* | In-process browser isolation | `DedicatedWorkerTransport` | Monitor `worker.onerror`; crashes are silent |
|
|
29
|
+
* | Shared worker, multiple tabs | `SharedWorkerTransport` | One worker handles all port connections |
|
|
30
|
+
*
|
|
31
|
+
* **Middleware** — The {@link Middleware} pipeline runs on every
|
|
32
|
+
* client-to-server and server-to-client message. Use {@link createScopedMiddleware}
|
|
33
|
+
* to limit a middleware to specific methods, and {@link createTypedMiddleware}
|
|
34
|
+
* for full param/result type inference.
|
|
35
|
+
*
|
|
36
|
+
* **LSP protocol** — {@link LSPRequest} and {@link LSPNotification} namespaces
|
|
37
|
+
* expose every standard LSP method with its params and result types.
|
|
38
|
+
* {@link LSPRequestMethod} / {@link LSPNotificationMethod} are the union types
|
|
39
|
+
* for string-literal method names.
|
|
40
|
+
*
|
|
41
|
+
* **Utilities** — {@link CancellationTokenSource} for request cancellation,
|
|
42
|
+
* {@link DisposableStore} for lifecycle management, {@link ResponseError} for
|
|
43
|
+
* structured JSON-RPC errors, {@link DocumentVersionTracker} for document sync.
|
|
44
|
+
*
|
|
45
|
+
* @packageDocumentation
|
|
3
46
|
*/
|
|
4
47
|
export type { BaseMessage, RequestMessage, NotificationMessage, SuccessResponseMessage, ErrorResponseMessage, ResponseMessage, Message } from './jsonrpc/messages.js';
|
|
5
48
|
export type { ResponseError as ResponseErrorInterface } from './jsonrpc/messages.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,48 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Core types, transports, and utilities shared by all lspeasy packages.
|
|
3
|
+
*
|
|
4
|
+
* @remarks
|
|
5
|
+
* `@lspeasy/core` is the shared foundation for the lspeasy SDK. It contains
|
|
6
|
+
* everything needed to build custom LSP integrations, and re-exports the
|
|
7
|
+
* most-used pieces from `@lspeasy/client` and `@lspeasy/server`.
|
|
8
|
+
*
|
|
9
|
+
* ### Key areas
|
|
10
|
+
*
|
|
11
|
+
* **JSON-RPC 2.0** — Message types ({@link RequestMessage}, {@link NotificationMessage},
|
|
12
|
+
* {@link ResponseMessage}), framing ({@link parseMessage}, {@link serializeMessage}),
|
|
13
|
+
* and Zod schemas for validation.
|
|
14
|
+
*
|
|
15
|
+
* **Transports** — The {@link Transport} interface plus browser-compatible
|
|
16
|
+
* implementations: {@link WebSocketTransport}, {@link DedicatedWorkerTransport},
|
|
17
|
+
* {@link SharedWorkerTransport}.
|
|
18
|
+
* Node.js transports (`StdioTransport`, `TcpTransport`, `IpcTransport`) are
|
|
19
|
+
* in `@lspeasy/core/node` to avoid importing Node.js builtins in browsers.
|
|
20
|
+
*
|
|
21
|
+
* ### Transport Selection Guide
|
|
22
|
+
*
|
|
23
|
+
* | Need | Transport | Critical Gotcha |
|
|
24
|
+
* |------|-----------|-----------------|
|
|
25
|
+
* | Spawn server as child process | `StdioTransport` | `ConsoleLogger` corrupts stdout — use `NullLogger` |
|
|
26
|
+
* | Browser or remote server | `WebSocketTransport` | Call `send()` only after `isConnected()` is `true` |
|
|
27
|
+
* | Persistent local daemon | `TcpTransport` | Create a new server instance per client reconnect |
|
|
28
|
+
* | In-process browser isolation | `DedicatedWorkerTransport` | Monitor `worker.onerror`; crashes are silent |
|
|
29
|
+
* | Shared worker, multiple tabs | `SharedWorkerTransport` | One worker handles all port connections |
|
|
30
|
+
*
|
|
31
|
+
* **Middleware** — The {@link Middleware} pipeline runs on every
|
|
32
|
+
* client-to-server and server-to-client message. Use {@link createScopedMiddleware}
|
|
33
|
+
* to limit a middleware to specific methods, and {@link createTypedMiddleware}
|
|
34
|
+
* for full param/result type inference.
|
|
35
|
+
*
|
|
36
|
+
* **LSP protocol** — {@link LSPRequest} and {@link LSPNotification} namespaces
|
|
37
|
+
* expose every standard LSP method with its params and result types.
|
|
38
|
+
* {@link LSPRequestMethod} / {@link LSPNotificationMethod} are the union types
|
|
39
|
+
* for string-literal method names.
|
|
40
|
+
*
|
|
41
|
+
* **Utilities** — {@link CancellationTokenSource} for request cancellation,
|
|
42
|
+
* {@link DisposableStore} for lifecycle management, {@link ResponseError} for
|
|
43
|
+
* structured JSON-RPC errors, {@link DocumentVersionTracker} for document sync.
|
|
44
|
+
*
|
|
45
|
+
* @packageDocumentation
|
|
3
46
|
*/
|
|
4
47
|
export { isRequestMessage, isNotificationMessage, isResponseMessage, isSuccessResponse, isErrorResponse } from './jsonrpc/messages.js';
|
|
5
48
|
export { parseMessage, serializeMessage } from './jsonrpc/framing.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,15 +18,40 @@ export declare function parseHeaders(buffer: Buffer): {
|
|
|
18
18
|
bodyStart: number;
|
|
19
19
|
} | null;
|
|
20
20
|
/**
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* Parses a single framed JSON-RPC 2.0 message from a raw byte buffer.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
* This is the low-level framing parser used internally by Node.js transports
|
|
25
|
+
* (`StdioTransport`, `TcpTransport`). The buffer may contain partial data;
|
|
26
|
+
* `null` is returned when more bytes are needed.
|
|
27
|
+
*
|
|
28
|
+
* The framing format is the LSP base protocol:
|
|
29
|
+
* `Content-Length: <n>\r\n\r\n<json-body>`.
|
|
30
|
+
*
|
|
31
|
+
* @param buffer - Raw byte buffer that may contain one or more framed messages.
|
|
32
|
+
* @returns An object with the parsed `message` and `bytesRead`, or `null` if
|
|
33
|
+
* the buffer does not yet contain a complete framed message.
|
|
34
|
+
* @throws If `Content-Length` is missing or the JSON body cannot be parsed.
|
|
35
|
+
*
|
|
36
|
+
* @category JSON-RPC
|
|
23
37
|
*/
|
|
24
38
|
export declare function parseMessage(buffer: Buffer): {
|
|
25
39
|
message: Message;
|
|
26
40
|
bytesRead: number;
|
|
27
41
|
} | null;
|
|
28
42
|
/**
|
|
29
|
-
*
|
|
43
|
+
* Serializes a JSON-RPC 2.0 message into a framed byte buffer with
|
|
44
|
+
* `Content-Length` and `Content-Type` headers.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* Counterpart of `parseMessage`. Used internally by Node.js transports.
|
|
48
|
+
* The output format is:
|
|
49
|
+
* `Content-Length: <n>\r\nContent-Type: application/vscode-jsonrpc; charset=utf-8\r\n\r\n<json>`.
|
|
50
|
+
*
|
|
51
|
+
* @param message - The JSON-RPC message to serialize.
|
|
52
|
+
* @returns A `Buffer` containing the complete framed message ready for I/O.
|
|
53
|
+
*
|
|
54
|
+
* @category JSON-RPC
|
|
30
55
|
*/
|
|
31
56
|
export declare function serializeMessage(message: Message): Buffer;
|
|
32
57
|
//# sourceMappingURL=framing.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/framing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA+B5D;AAED
|
|
1
|
+
{"version":3,"file":"framing.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/framing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,eAAO,MAAM,qBAAqB,mBAAmB,CAAC;AACtD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAClD,eAAO,MAAM,oBAAoB,8CAA8C,CAAC;AAEhF;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,GACb;IAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA+B5D;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAwC3F;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAiBzD"}
|
package/dist/jsonrpc/framing.js
CHANGED
|
@@ -39,8 +39,22 @@ export function parseHeaders(buffer) {
|
|
|
39
39
|
return null; // Incomplete headers
|
|
40
40
|
}
|
|
41
41
|
/**
|
|
42
|
-
*
|
|
43
|
-
*
|
|
42
|
+
* Parses a single framed JSON-RPC 2.0 message from a raw byte buffer.
|
|
43
|
+
*
|
|
44
|
+
* @remarks
|
|
45
|
+
* This is the low-level framing parser used internally by Node.js transports
|
|
46
|
+
* (`StdioTransport`, `TcpTransport`). The buffer may contain partial data;
|
|
47
|
+
* `null` is returned when more bytes are needed.
|
|
48
|
+
*
|
|
49
|
+
* The framing format is the LSP base protocol:
|
|
50
|
+
* `Content-Length: <n>\r\n\r\n<json-body>`.
|
|
51
|
+
*
|
|
52
|
+
* @param buffer - Raw byte buffer that may contain one or more framed messages.
|
|
53
|
+
* @returns An object with the parsed `message` and `bytesRead`, or `null` if
|
|
54
|
+
* the buffer does not yet contain a complete framed message.
|
|
55
|
+
* @throws If `Content-Length` is missing or the JSON body cannot be parsed.
|
|
56
|
+
*
|
|
57
|
+
* @category JSON-RPC
|
|
44
58
|
*/
|
|
45
59
|
export function parseMessage(buffer) {
|
|
46
60
|
// Parse headers
|
|
@@ -76,7 +90,18 @@ export function parseMessage(buffer) {
|
|
|
76
90
|
return { message, bytesRead: totalLength };
|
|
77
91
|
}
|
|
78
92
|
/**
|
|
79
|
-
*
|
|
93
|
+
* Serializes a JSON-RPC 2.0 message into a framed byte buffer with
|
|
94
|
+
* `Content-Length` and `Content-Type` headers.
|
|
95
|
+
*
|
|
96
|
+
* @remarks
|
|
97
|
+
* Counterpart of `parseMessage`. Used internally by Node.js transports.
|
|
98
|
+
* The output format is:
|
|
99
|
+
* `Content-Length: <n>\r\nContent-Type: application/vscode-jsonrpc; charset=utf-8\r\n\r\n<json>`.
|
|
100
|
+
*
|
|
101
|
+
* @param message - The JSON-RPC message to serialize.
|
|
102
|
+
* @returns A `Buffer` containing the complete framed message ready for I/O.
|
|
103
|
+
*
|
|
104
|
+
* @category JSON-RPC
|
|
80
105
|
*/
|
|
81
106
|
export function serializeMessage(message) {
|
|
82
107
|
// Serialize JSON body
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"framing.js","sourceRoot":"","sources":["../../src/jsonrpc/framing.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AACtD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAClD,MAAM,CAAC,MAAM,oBAAoB,GAAG,2CAA2C,CAAC;AAEhF;;;GAGG;AACH,MAAM,UAAU,YAAY,CAC1B,MAAc
|
|
1
|
+
{"version":3,"file":"framing.js","sourceRoot":"","sources":["../../src/jsonrpc/framing.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,62 +3,159 @@
|
|
|
3
3
|
* Custom implementation without vscode-jsonrpc dependency
|
|
4
4
|
*/
|
|
5
5
|
/**
|
|
6
|
-
* Base JSON-RPC 2.0 message
|
|
6
|
+
* Base JSON-RPC 2.0 message discriminant.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* All JSON-RPC 2.0 messages carry `"jsonrpc": "2.0"`. Use this as a base
|
|
10
|
+
* when building custom message types or narrowing message unions.
|
|
11
|
+
*
|
|
12
|
+
* @category JSON-RPC
|
|
7
13
|
*/
|
|
8
14
|
export interface BaseMessage {
|
|
15
|
+
/** JSON-RPC protocol version discriminant — always `"2.0"`. */
|
|
9
16
|
jsonrpc: '2.0';
|
|
10
17
|
}
|
|
11
18
|
/**
|
|
12
|
-
* JSON-RPC 2.0 Request
|
|
19
|
+
* JSON-RPC 2.0 Request message — expects a response from the peer.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
* The `id` field uniquely identifies the request within a connection session.
|
|
23
|
+
* Per the JSON-RPC 2.0 spec, `id` may be a `string` or `number` — never
|
|
24
|
+
* assume integers only.
|
|
25
|
+
*
|
|
26
|
+
* @never
|
|
27
|
+
* NEVER assume JSON-RPC IDs are integers. The spec permits strings, and some
|
|
28
|
+
* LSP clients (e.g. VS Code extensions) use string IDs. Always use `String(id)`
|
|
29
|
+
* when keying pending-request maps.
|
|
30
|
+
*
|
|
31
|
+
* @category JSON-RPC
|
|
13
32
|
*/
|
|
14
33
|
export interface RequestMessage extends BaseMessage {
|
|
34
|
+
/** Unique identifier correlating this request to its eventual response. */
|
|
15
35
|
id: string | number;
|
|
36
|
+
/** LSP method string, e.g. `'textDocument/hover'`. */
|
|
16
37
|
method: string;
|
|
38
|
+
/** JSON-RPC protocol version — always `"2.0"` (inherited). */
|
|
39
|
+
jsonrpc: '2.0';
|
|
40
|
+
/** Optional request parameters (method-specific shape). */
|
|
17
41
|
params?: unknown;
|
|
18
42
|
}
|
|
19
43
|
/**
|
|
20
|
-
* JSON-RPC 2.0 Notification
|
|
44
|
+
* JSON-RPC 2.0 Notification message — no response is expected or sent.
|
|
45
|
+
*
|
|
46
|
+
* @remarks
|
|
47
|
+
* Notifications are fire-and-forget. Sending an error response to a
|
|
48
|
+
* notification violates the JSON-RPC 2.0 spec and will be silently dropped
|
|
49
|
+
* by compliant clients.
|
|
50
|
+
*
|
|
51
|
+
* @never
|
|
52
|
+
* NEVER send a notification before the `initialize` response has been sent
|
|
53
|
+
* by the server. The LSP spec requires the server to respond to `initialize`
|
|
54
|
+
* before any other message is exchanged; clients discard early notifications.
|
|
55
|
+
*
|
|
56
|
+
* @category JSON-RPC
|
|
21
57
|
*/
|
|
22
58
|
export interface NotificationMessage extends BaseMessage {
|
|
59
|
+
/** LSP method string, e.g. `'textDocument/didOpen'`. */
|
|
23
60
|
method: string;
|
|
61
|
+
/** JSON-RPC protocol version — always `"2.0"` (inherited). */
|
|
62
|
+
jsonrpc: '2.0';
|
|
63
|
+
/** Optional notification parameters (method-specific shape). */
|
|
24
64
|
params?: unknown;
|
|
25
65
|
}
|
|
26
66
|
/**
|
|
27
|
-
* JSON-RPC 2.0
|
|
67
|
+
* JSON-RPC 2.0 error object embedded in an error response.
|
|
68
|
+
*
|
|
69
|
+
* @category JSON-RPC
|
|
28
70
|
*/
|
|
29
71
|
export interface ResponseError {
|
|
72
|
+
/** Numeric JSON-RPC error code (see {@link JSONRPCErrorCode} for standard values). */
|
|
30
73
|
code: number;
|
|
74
|
+
/** Human-readable error description. */
|
|
31
75
|
message: string;
|
|
76
|
+
/** Optional machine-readable error details for the caller. */
|
|
32
77
|
data?: unknown;
|
|
33
78
|
}
|
|
34
79
|
/**
|
|
35
|
-
* JSON-RPC 2.0
|
|
80
|
+
* JSON-RPC 2.0 success response to a prior request.
|
|
81
|
+
*
|
|
82
|
+
* @category JSON-RPC
|
|
36
83
|
*/
|
|
37
84
|
export interface SuccessResponseMessage extends BaseMessage {
|
|
85
|
+
/** Identifier matching the originating request's `id`. */
|
|
38
86
|
id: string | number;
|
|
87
|
+
/** JSON-RPC protocol version — always `"2.0"` (inherited). */
|
|
88
|
+
jsonrpc: '2.0';
|
|
89
|
+
/** The request result payload. */
|
|
39
90
|
result: unknown;
|
|
40
91
|
}
|
|
41
92
|
/**
|
|
42
|
-
* JSON-RPC 2.0
|
|
93
|
+
* JSON-RPC 2.0 error response to a prior request.
|
|
94
|
+
*
|
|
95
|
+
* @category JSON-RPC
|
|
43
96
|
*/
|
|
44
97
|
export interface ErrorResponseMessage extends BaseMessage {
|
|
98
|
+
/** Identifier matching the originating request's `id`. */
|
|
45
99
|
id: string | number;
|
|
100
|
+
/** JSON-RPC protocol version — always `"2.0"` (inherited). */
|
|
101
|
+
jsonrpc: '2.0';
|
|
102
|
+
/** Structured error payload. */
|
|
46
103
|
error: ResponseError;
|
|
47
104
|
}
|
|
48
105
|
/**
|
|
49
|
-
* JSON-RPC 2.0 Response
|
|
106
|
+
* JSON-RPC 2.0 Response message — either a success result or an error.
|
|
107
|
+
*
|
|
108
|
+
* @category JSON-RPC
|
|
50
109
|
*/
|
|
51
110
|
export type ResponseMessage = SuccessResponseMessage | ErrorResponseMessage;
|
|
52
111
|
/**
|
|
53
|
-
* Union of all JSON-RPC message types
|
|
112
|
+
* Union of all JSON-RPC 2.0 message types sent over a transport.
|
|
113
|
+
*
|
|
114
|
+
* @category JSON-RPC
|
|
54
115
|
*/
|
|
55
116
|
export type Message = RequestMessage | NotificationMessage | ResponseMessage;
|
|
56
117
|
/**
|
|
57
118
|
* Type guards for message discrimination
|
|
58
119
|
*/
|
|
120
|
+
/**
|
|
121
|
+
* Returns `true` when `message` is a JSON-RPC request (has `id` + `method`).
|
|
122
|
+
*
|
|
123
|
+
* @param message - The message to test.
|
|
124
|
+
* @returns `true` when `message` is a {@link RequestMessage}.
|
|
125
|
+
* @category JSON-RPC
|
|
126
|
+
*/
|
|
59
127
|
export declare function isRequestMessage(message: Message): message is RequestMessage;
|
|
128
|
+
/**
|
|
129
|
+
* Returns `true` when `message` is a JSON-RPC notification (has `method`,
|
|
130
|
+
* no `id`).
|
|
131
|
+
*
|
|
132
|
+
* @param message - The message to test.
|
|
133
|
+
* @returns `true` when `message` is a {@link NotificationMessage}.
|
|
134
|
+
* @category JSON-RPC
|
|
135
|
+
*/
|
|
60
136
|
export declare function isNotificationMessage(message: Message): message is NotificationMessage;
|
|
137
|
+
/**
|
|
138
|
+
* Returns `true` when `message` is a JSON-RPC response (has `id`, no `method`).
|
|
139
|
+
*
|
|
140
|
+
* @param message - The message to test.
|
|
141
|
+
* @returns `true` when `message` is a {@link ResponseMessage}.
|
|
142
|
+
* @category JSON-RPC
|
|
143
|
+
*/
|
|
61
144
|
export declare function isResponseMessage(message: Message): message is ResponseMessage;
|
|
145
|
+
/**
|
|
146
|
+
* Returns `true` when `response` carries a `result` (success case).
|
|
147
|
+
*
|
|
148
|
+
* @param message - The response message to test.
|
|
149
|
+
* @returns `true` when `message` is a {@link SuccessResponseMessage}.
|
|
150
|
+
* @category JSON-RPC
|
|
151
|
+
*/
|
|
62
152
|
export declare function isSuccessResponse(message: ResponseMessage): message is SuccessResponseMessage;
|
|
153
|
+
/**
|
|
154
|
+
* Returns `true` when `response` carries an `error` (error case).
|
|
155
|
+
*
|
|
156
|
+
* @param message - The response message to test.
|
|
157
|
+
* @returns `true` when `message` is an {@link ErrorResponseMessage}.
|
|
158
|
+
* @category JSON-RPC
|
|
159
|
+
*/
|
|
63
160
|
export declare function isErrorResponse(message: ResponseMessage): message is ErrorResponseMessage;
|
|
64
161
|
//# sourceMappingURL=messages.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH
|
|
1
|
+
{"version":3,"file":"messages.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,+DAA+D;IAC/D,OAAO,EAAE,KAAK,CAAC;CAChB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,cAAe,SAAQ,WAAW;IACjD,2EAA2E;IAC3E,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,sDAAsD;IACtD,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,OAAO,EAAE,KAAK,CAAC;IACf,2DAA2D;IAC3D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,OAAO,EAAE,KAAK,CAAC;IACf,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,WAAW;IACzD,0DAA0D;IAC1D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,8DAA8D;IAC9D,OAAO,EAAE,KAAK,CAAC;IACf,kCAAkC;IAClC,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,oBAAqB,SAAQ,WAAW;IACvD,0DAA0D;IAC1D,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IACpB,8DAA8D;IAC9D,OAAO,EAAE,KAAK,CAAC;IACf,gCAAgC;IAChC,KAAK,EAAE,aAAa,CAAC;CACtB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,sBAAsB,GAAG,oBAAoB,CAAC;AAE5E;;;;GAIG;AACH,MAAM,MAAM,OAAO,GAAG,cAAc,GAAG,mBAAmB,GAAG,eAAe,CAAC;AAE7E;;GAEG;AAEH;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,cAAc,CAE5E;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,mBAAmB,CAEtF;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,IAAI,eAAe,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,IAAI,sBAAsB,CAE7F;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,IAAI,oBAAoB,CAEzF"}
|
package/dist/jsonrpc/messages.js
CHANGED
|
@@ -5,18 +5,54 @@
|
|
|
5
5
|
/**
|
|
6
6
|
* Type guards for message discrimination
|
|
7
7
|
*/
|
|
8
|
+
/**
|
|
9
|
+
* Returns `true` when `message` is a JSON-RPC request (has `id` + `method`).
|
|
10
|
+
*
|
|
11
|
+
* @param message - The message to test.
|
|
12
|
+
* @returns `true` when `message` is a {@link RequestMessage}.
|
|
13
|
+
* @category JSON-RPC
|
|
14
|
+
*/
|
|
8
15
|
export function isRequestMessage(message) {
|
|
9
16
|
return 'id' in message && 'method' in message;
|
|
10
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Returns `true` when `message` is a JSON-RPC notification (has `method`,
|
|
20
|
+
* no `id`).
|
|
21
|
+
*
|
|
22
|
+
* @param message - The message to test.
|
|
23
|
+
* @returns `true` when `message` is a {@link NotificationMessage}.
|
|
24
|
+
* @category JSON-RPC
|
|
25
|
+
*/
|
|
11
26
|
export function isNotificationMessage(message) {
|
|
12
27
|
return 'method' in message && !('id' in message);
|
|
13
28
|
}
|
|
29
|
+
/**
|
|
30
|
+
* Returns `true` when `message` is a JSON-RPC response (has `id`, no `method`).
|
|
31
|
+
*
|
|
32
|
+
* @param message - The message to test.
|
|
33
|
+
* @returns `true` when `message` is a {@link ResponseMessage}.
|
|
34
|
+
* @category JSON-RPC
|
|
35
|
+
*/
|
|
14
36
|
export function isResponseMessage(message) {
|
|
15
37
|
return 'id' in message && !('method' in message);
|
|
16
38
|
}
|
|
39
|
+
/**
|
|
40
|
+
* Returns `true` when `response` carries a `result` (success case).
|
|
41
|
+
*
|
|
42
|
+
* @param message - The response message to test.
|
|
43
|
+
* @returns `true` when `message` is a {@link SuccessResponseMessage}.
|
|
44
|
+
* @category JSON-RPC
|
|
45
|
+
*/
|
|
17
46
|
export function isSuccessResponse(message) {
|
|
18
47
|
return 'result' in message;
|
|
19
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* Returns `true` when `response` carries an `error` (error case).
|
|
51
|
+
*
|
|
52
|
+
* @param message - The response message to test.
|
|
53
|
+
* @returns `true` when `message` is an {@link ErrorResponseMessage}.
|
|
54
|
+
* @category JSON-RPC
|
|
55
|
+
*/
|
|
20
56
|
export function isErrorResponse(message) {
|
|
21
57
|
return 'error' in message;
|
|
22
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/jsonrpc/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"messages.js","sourceRoot":"","sources":["../../src/jsonrpc/messages.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA0HH;;GAEG;AAEH;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAgB;IAC/C,OAAO,IAAI,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,CAAC;AAChD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,OAAO,QAAQ,IAAI,OAAO,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAgB;IAChD,OAAO,IAAI,IAAI,OAAO,IAAI,CAAC,CAAC,QAAQ,IAAI,OAAO,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAwB;IACxD,OAAO,QAAQ,IAAI,OAAO,CAAC;AAC7B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,OAAwB;IACtD,OAAO,OAAO,IAAI,OAAO,CAAC;AAC5B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/jsonrpc/reader.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IAIhB,MAAM;IAH3B,MAAM,CAAS;IACf,MAAM,CAAU;IAExB,YAA6B,MAAgB
|
|
1
|
+
{"version":3,"file":"reader.js","sourceRoot":"","sources":["../../src/jsonrpc/reader.ts"],"names":[],"mappings":"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"}
|
package/dist/jsonrpc/writer.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAKjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAW;IAExB,YAA6B,MAAM,EAAE,QAAQ,EAS5C;IAED;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3C;
|
|
1
|
+
{"version":3,"file":"writer.d.ts","sourceRoot":"","sources":["../../src/jsonrpc/writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAKjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJnC,OAAO,CAAC,MAAM,CAAU;IACxB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAW;IAExB,YAA6B,MAAM,EAAE,QAAQ,EAS5C;IAED;;OAEG;IACG,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3C;IAED;;OAEG;YACW,KAAK;IAqBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAYnB;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;OAEG;IACH,KAAK,IAAI,IAAI,CAaZ;IAED;;OAEG;IACH,QAAQ,IAAI,OAAO,CAElB;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/jsonrpc/writer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGhD;;GAEG;AACH,MAAM,OAAO,aAAc,SAAQ,YAAY;IAKhB,MAAM;IAJ3B,MAAM,CAAU;IAChB,OAAO,CAAU;IACjB,KAAK,CAAW;IAExB,YAA6B,MAAgB
|
|
1
|
+
{"version":3,"file":"writer.js","sourceRoot":"","sources":["../../src/jsonrpc/writer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,25 @@
|
|
|
1
1
|
import type { Middleware } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Combines multiple middleware functions into a single middleware that runs
|
|
4
|
+
* them left-to-right, each delegating to the next via `next()`.
|
|
5
|
+
*
|
|
6
|
+
* @remarks
|
|
7
|
+
* Use `composeMiddleware` when you have a set of independent middleware that
|
|
8
|
+
* you want to treat as a single unit — for example, bundling a logger and a
|
|
9
|
+
* tracer into one reusable package middleware.
|
|
10
|
+
*
|
|
11
|
+
* @param middlewares - The middleware functions to compose, in execution order.
|
|
12
|
+
* @returns A single middleware that chains all provided middlewares.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* import { composeMiddleware } from '@lspeasy/core';
|
|
17
|
+
*
|
|
18
|
+
* const bundled = composeMiddleware(loggerMiddleware, tracingMiddleware);
|
|
19
|
+
* const server = new LSPServer({ middleware: [bundled] });
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @category Middleware
|
|
23
|
+
*/
|
|
2
24
|
export declare function composeMiddleware(...middlewares: Middleware[]): Middleware;
|
|
3
25
|
//# sourceMappingURL=compose.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/middleware/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAE/D,wBAAgB,iBAAiB,CAAC,GAAG,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAiB1E"}
|
|
1
|
+
{"version":3,"file":"compose.d.ts","sourceRoot":"","sources":["../../src/middleware/compose.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,YAAY,CAAC;AAE/D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAiB1E"}
|
|
@@ -1,3 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Combines multiple middleware functions into a single middleware that runs
|
|
3
|
+
* them left-to-right, each delegating to the next via `next()`.
|
|
4
|
+
*
|
|
5
|
+
* @remarks
|
|
6
|
+
* Use `composeMiddleware` when you have a set of independent middleware that
|
|
7
|
+
* you want to treat as a single unit — for example, bundling a logger and a
|
|
8
|
+
* tracer into one reusable package middleware.
|
|
9
|
+
*
|
|
10
|
+
* @param middlewares - The middleware functions to compose, in execution order.
|
|
11
|
+
* @returns A single middleware that chains all provided middlewares.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts
|
|
15
|
+
* import { composeMiddleware } from '@lspeasy/core';
|
|
16
|
+
*
|
|
17
|
+
* const bundled = composeMiddleware(loggerMiddleware, tracingMiddleware);
|
|
18
|
+
* const server = new LSPServer({ middleware: [bundled] });
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @category Middleware
|
|
22
|
+
*/
|
|
1
23
|
export function composeMiddleware(...middlewares) {
|
|
2
24
|
return async (context, next) => {
|
|
3
25
|
const dispatch = async (index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/middleware/compose.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,iBAAiB,CAAC,GAAG,WAAyB
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/middleware/compose.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAG,WAAyB;IAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAoC,EAAE;QAC/D,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAa,EAAoC,EAAE;YACzE,IAAI,KAAK,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;gBAChC,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YAED,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,OAAO,IAAI,EAAE,CAAC;YAChB,CAAC;YAED,OAAO,UAAU,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC,CAAC;QAEF,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -1,5 +1,27 @@
|
|
|
1
1
|
import type { Middleware, MiddlewareContext, MiddlewareResult, ScopedMiddleware } from './types.js';
|
|
2
2
|
type MiddlewareRegistration = Middleware | ScopedMiddleware;
|
|
3
|
+
/**
|
|
4
|
+
* Runs the registered middleware chain for a single JSON-RPC message, then
|
|
5
|
+
* calls `finalHandler` if no middleware short-circuits.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* This is the core dispatch loop used by `LSPClient` and `LSPServer`. Each
|
|
9
|
+
* middleware receives `context` and a `next` callback; calling `next()` hands
|
|
10
|
+
* control to the following middleware. If a middleware returns a result with
|
|
11
|
+
* `shortCircuit: true` the remaining middleware and `finalHandler` are skipped.
|
|
12
|
+
*
|
|
13
|
+
* Scoped middleware (created with `createScopedMiddleware`) is automatically
|
|
14
|
+
* filtered: it only executes when `matchesFilter` returns `true` for the
|
|
15
|
+
* current message.
|
|
16
|
+
*
|
|
17
|
+
* @param registrations - The list of middleware or scoped-middleware to run.
|
|
18
|
+
* @param context - The shared context for the current message.
|
|
19
|
+
* @param finalHandler - The handler to call after all middleware have run.
|
|
20
|
+
* @returns The result of the first short-circuiting middleware, or the result
|
|
21
|
+
* of `finalHandler`.
|
|
22
|
+
*
|
|
23
|
+
* @category Middleware
|
|
24
|
+
*/
|
|
3
25
|
export declare function executeMiddlewarePipeline(registrations: MiddlewareRegistration[] | undefined, context: MiddlewareContext, finalHandler: () => Promise<void | MiddlewareResult>): Promise<void | MiddlewareResult>;
|
|
4
26
|
export {};
|
|
5
27
|
//# sourceMappingURL=pipeline.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/middleware/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGpG,KAAK,sBAAsB,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAsC5D,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,sBAAsB,EAAE,GAAG,SAAS,EACnD,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,GACnD,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,CA6BlC"}
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/middleware/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGpG,KAAK,sBAAsB,GAAG,UAAU,GAAG,gBAAgB,CAAC;AAsC5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,yBAAyB,CAC7C,aAAa,EAAE,sBAAsB,EAAE,GAAG,SAAS,EACnD,OAAO,EAAE,iBAAiB,EAC1B,YAAY,EAAE,MAAM,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,GACnD,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,CA6BlC"}
|