@lspeasy/core 1.0.1
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/LICENSE +21 -0
- package/README.md +550 -0
- package/dist/index.d.ts +44 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -0
- package/dist/jsonrpc/framing.d.ts +32 -0
- package/dist/jsonrpc/framing.d.ts.map +1 -0
- package/dist/jsonrpc/framing.js +96 -0
- package/dist/jsonrpc/framing.js.map +1 -0
- package/dist/jsonrpc/messages.d.ts +64 -0
- package/dist/jsonrpc/messages.d.ts.map +1 -0
- package/dist/jsonrpc/messages.js +23 -0
- package/dist/jsonrpc/messages.js.map +1 -0
- package/dist/jsonrpc/reader.d.ts +44 -0
- package/dist/jsonrpc/reader.d.ts.map +1 -0
- package/dist/jsonrpc/reader.js +107 -0
- package/dist/jsonrpc/reader.js.map +1 -0
- package/dist/jsonrpc/schemas.d.ts +103 -0
- package/dist/jsonrpc/schemas.d.ts.map +1 -0
- package/dist/jsonrpc/schemas.js +66 -0
- package/dist/jsonrpc/schemas.js.map +1 -0
- package/dist/jsonrpc/writer.d.ts +43 -0
- package/dist/jsonrpc/writer.d.ts.map +1 -0
- package/dist/jsonrpc/writer.js +110 -0
- package/dist/jsonrpc/writer.js.map +1 -0
- package/dist/middleware/compose.d.ts +3 -0
- package/dist/middleware/compose.d.ts.map +1 -0
- package/dist/middleware/compose.js +16 -0
- package/dist/middleware/compose.js.map +1 -0
- package/dist/middleware/index.d.ts +6 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +5 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/pipeline.d.ts +5 -0
- package/dist/middleware/pipeline.d.ts.map +1 -0
- package/dist/middleware/pipeline.js +54 -0
- package/dist/middleware/pipeline.js.map +1 -0
- package/dist/middleware/scoped.d.ts +9 -0
- package/dist/middleware/scoped.d.ts.map +1 -0
- package/dist/middleware/scoped.js +20 -0
- package/dist/middleware/scoped.js.map +1 -0
- package/dist/middleware/typed.d.ts +3 -0
- package/dist/middleware/typed.d.ts.map +1 -0
- package/dist/middleware/typed.js +18 -0
- package/dist/middleware/typed.js.map +1 -0
- package/dist/middleware/types.d.ts +45 -0
- package/dist/middleware/types.d.ts.map +1 -0
- package/dist/middleware/types.js +2 -0
- package/dist/middleware/types.js.map +1 -0
- package/dist/protocol/capabilities.d.ts +93 -0
- package/dist/protocol/capabilities.d.ts.map +1 -0
- package/dist/protocol/capabilities.js +143 -0
- package/dist/protocol/capabilities.js.map +1 -0
- package/dist/protocol/capability-methods.d.ts +270 -0
- package/dist/protocol/capability-methods.d.ts.map +1 -0
- package/dist/protocol/capability-methods.js +14 -0
- package/dist/protocol/capability-methods.js.map +1 -0
- package/dist/protocol/enums.d.ts +336 -0
- package/dist/protocol/enums.d.ts.map +1 -0
- package/dist/protocol/enums.js +417 -0
- package/dist/protocol/enums.js.map +1 -0
- package/dist/protocol/infer.d.ts +112 -0
- package/dist/protocol/infer.d.ts.map +1 -0
- package/dist/protocol/infer.js +58 -0
- package/dist/protocol/infer.js.map +1 -0
- package/dist/protocol/namespaces.d.ts +1432 -0
- package/dist/protocol/namespaces.d.ts.map +1 -0
- package/dist/protocol/namespaces.js +570 -0
- package/dist/protocol/namespaces.js.map +1 -0
- package/dist/protocol/partial.d.ts +29 -0
- package/dist/protocol/partial.d.ts.map +1 -0
- package/dist/protocol/partial.js +24 -0
- package/dist/protocol/partial.js.map +1 -0
- package/dist/protocol/progress.d.ts +32 -0
- package/dist/protocol/progress.d.ts.map +1 -0
- package/dist/protocol/progress.js +60 -0
- package/dist/protocol/progress.js.map +1 -0
- package/dist/protocol/schemas.d.ts +534 -0
- package/dist/protocol/schemas.d.ts.map +1 -0
- package/dist/protocol/schemas.js +271 -0
- package/dist/protocol/schemas.js.map +1 -0
- package/dist/protocol/types.d.ts +19 -0
- package/dist/protocol/types.d.ts.map +1 -0
- package/dist/protocol/types.js +8 -0
- package/dist/protocol/types.js.map +1 -0
- package/dist/protocol/watching.d.ts +29 -0
- package/dist/protocol/watching.d.ts.map +1 -0
- package/dist/protocol/watching.js +36 -0
- package/dist/protocol/watching.js.map +1 -0
- package/dist/protocol/workspace.d.ts +24 -0
- package/dist/protocol/workspace.d.ts.map +1 -0
- package/dist/protocol/workspace.js +26 -0
- package/dist/protocol/workspace.js.map +1 -0
- package/dist/transport/events.d.ts +27 -0
- package/dist/transport/events.d.ts.map +1 -0
- package/dist/transport/events.js +34 -0
- package/dist/transport/events.js.map +1 -0
- package/dist/transport/stdio.d.ts +55 -0
- package/dist/transport/stdio.d.ts.map +1 -0
- package/dist/transport/stdio.js +147 -0
- package/dist/transport/stdio.js.map +1 -0
- package/dist/transport/transport.d.ts +38 -0
- package/dist/transport/transport.d.ts.map +1 -0
- package/dist/transport/transport.js +5 -0
- package/dist/transport/transport.js.map +1 -0
- package/dist/transport/websocket.d.ts +142 -0
- package/dist/transport/websocket.d.ts.map +1 -0
- package/dist/transport/websocket.js +324 -0
- package/dist/transport/websocket.js.map +1 -0
- package/dist/utils/cancellation.d.ts +47 -0
- package/dist/utils/cancellation.d.ts.map +1 -0
- package/dist/utils/cancellation.js +77 -0
- package/dist/utils/cancellation.js.map +1 -0
- package/dist/utils/disposable-event-emitter.d.ts +26 -0
- package/dist/utils/disposable-event-emitter.d.ts.map +1 -0
- package/dist/utils/disposable-event-emitter.js +62 -0
- package/dist/utils/disposable-event-emitter.js.map +1 -0
- package/dist/utils/disposable.d.ts +34 -0
- package/dist/utils/disposable.d.ts.map +1 -0
- package/dist/utils/disposable.js +55 -0
- package/dist/utils/disposable.js.map +1 -0
- package/dist/utils/document.d.ts +20 -0
- package/dist/utils/document.d.ts.map +1 -0
- package/dist/utils/document.js +54 -0
- package/dist/utils/document.js.map +1 -0
- package/dist/utils/errors.d.ts +69 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +104 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/handler-registry.d.ts +35 -0
- package/dist/utils/handler-registry.d.ts.map +1 -0
- package/dist/utils/handler-registry.js +68 -0
- package/dist/utils/handler-registry.js.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +4 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/internal.d.ts +3 -0
- package/dist/utils/internal.d.ts.map +1 -0
- package/dist/utils/internal.js +3 -0
- package/dist/utils/internal.js.map +1 -0
- package/dist/utils/logger.d.ts +47 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +61 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pending-request-tracker.d.ts +36 -0
- package/dist/utils/pending-request-tracker.d.ts.map +1 -0
- package/dist/utils/pending-request-tracker.js +93 -0
- package/dist/utils/pending-request-tracker.js.map +1 -0
- package/dist/utils/transport-attachment.d.ts +34 -0
- package/dist/utils/transport-attachment.d.ts.map +1 -0
- package/dist/utils/transport-attachment.js +48 -0
- package/dist/utils/transport-attachment.js.map +1 -0
- package/package.json +87 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cancellation token implementation
|
|
3
|
+
* Pattern: MCP SDK's CancellationToken and CancellationTokenSource
|
|
4
|
+
*/
|
|
5
|
+
import type { Disposable } from './disposable.js';
|
|
6
|
+
/**
|
|
7
|
+
* Token that can be used to signal cancellation
|
|
8
|
+
*/
|
|
9
|
+
export interface CancellationToken {
|
|
10
|
+
/**
|
|
11
|
+
* Check if cancellation has been requested
|
|
12
|
+
*/
|
|
13
|
+
readonly isCancellationRequested: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Register callback to be called when cancellation is requested
|
|
16
|
+
* @returns Disposable to unregister the callback
|
|
17
|
+
*/
|
|
18
|
+
onCancellationRequested(callback: () => void): Disposable;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Source that controls a CancellationToken
|
|
22
|
+
*/
|
|
23
|
+
export declare class CancellationTokenSource {
|
|
24
|
+
private emitter;
|
|
25
|
+
private cancelled;
|
|
26
|
+
private readonly _token;
|
|
27
|
+
constructor();
|
|
28
|
+
/**
|
|
29
|
+
* Get the token
|
|
30
|
+
*/
|
|
31
|
+
get token(): CancellationToken;
|
|
32
|
+
/**
|
|
33
|
+
* Signal cancellation
|
|
34
|
+
*/
|
|
35
|
+
cancel(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Dispose the source
|
|
38
|
+
*/
|
|
39
|
+
dispose(): void;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Singleton token that is never cancelled
|
|
43
|
+
*/
|
|
44
|
+
export declare const CancellationToken: {
|
|
45
|
+
None: CancellationToken;
|
|
46
|
+
};
|
|
47
|
+
//# sourceMappingURL=cancellation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.d.ts","sourceRoot":"","sources":["../../src/utils/cancellation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C;;;OAGG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;CAC3D;AAED;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,cA6BC;IAED;;OAEG;IACH,IAAI,KAAK,IAAI,iBAAiB,CAE7B;IAED;;OAEG;IACH,MAAM,IAAI,IAAI,CAOb;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAEd;CACF;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB;;CAQ7B,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cancellation token implementation
|
|
3
|
+
* Pattern: MCP SDK's CancellationToken and CancellationTokenSource
|
|
4
|
+
*/
|
|
5
|
+
import { EventEmitter } from 'node:events';
|
|
6
|
+
/**
|
|
7
|
+
* Source that controls a CancellationToken
|
|
8
|
+
*/
|
|
9
|
+
export class CancellationTokenSource {
|
|
10
|
+
emitter;
|
|
11
|
+
cancelled;
|
|
12
|
+
_token;
|
|
13
|
+
constructor() {
|
|
14
|
+
this.emitter = new EventEmitter();
|
|
15
|
+
this.cancelled = false;
|
|
16
|
+
// Create token with proper arrow function binding
|
|
17
|
+
this._token = {
|
|
18
|
+
isCancellationRequested: false,
|
|
19
|
+
onCancellationRequested: (callback) => {
|
|
20
|
+
if (this.cancelled) {
|
|
21
|
+
// Already cancelled, call immediately
|
|
22
|
+
callback();
|
|
23
|
+
return { dispose: () => { } };
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
this.emitter.once('cancelled', callback);
|
|
27
|
+
return {
|
|
28
|
+
dispose: () => {
|
|
29
|
+
this.emitter.off('cancelled', callback);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
// Use Object.defineProperty for the getter to maintain proper this binding
|
|
36
|
+
Object.defineProperty(this._token, 'isCancellationRequested', {
|
|
37
|
+
get: () => this.cancelled,
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: false
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Get the token
|
|
44
|
+
*/
|
|
45
|
+
get token() {
|
|
46
|
+
return this._token;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Signal cancellation
|
|
50
|
+
*/
|
|
51
|
+
cancel() {
|
|
52
|
+
if (this.cancelled) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
this.cancelled = true;
|
|
56
|
+
this.emitter.emit('cancelled');
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Dispose the source
|
|
60
|
+
*/
|
|
61
|
+
dispose() {
|
|
62
|
+
this.emitter.removeAllListeners();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Singleton token that is never cancelled
|
|
67
|
+
*/
|
|
68
|
+
export const CancellationToken = {
|
|
69
|
+
None: {
|
|
70
|
+
isCancellationRequested: false,
|
|
71
|
+
onCancellationRequested: () => {
|
|
72
|
+
// No-op, never cancels
|
|
73
|
+
return { dispose: () => { } };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=cancellation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../src/utils/cancellation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAmB3C;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAC1B,OAAO,CAAe;IACtB,SAAS,CAAU;IACV,MAAM,CAAoB;IAE3C,cAAc;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,YAAY,EAAE,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,kDAAkD;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,uBAAuB,EAAE,KAAK;YAC9B,uBAAuB,EAAE,CAAC,QAAoB,EAAc,EAAE,CAAC;gBAC7D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,sCAAsC;oBACtC,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;oBACzC,OAAO;wBACL,OAAO,EAAE,GAAG,EAAE,CAAC;4BACb,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;wBAAA,CACzC;qBACF,CAAC;gBACJ,CAAC;YAAA,CACF;SACF,CAAC;QAEF,2EAA2E;QAC3E,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,yBAAyB,EAAE;YAC5D,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS;YACzB,UAAU,EAAE,IAAI;YAChB,YAAY,EAAE,KAAK;SACpB,CAAC,CAAC;IAAA,CACJ;IAED;;OAEG;IACH,IAAI,KAAK,GAAsB;QAC7B,OAAO,IAAI,CAAC,MAAM,CAAC;IAAA,CACpB;IAED;;OAEG;IACH,MAAM,GAAS;QACb,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAAA,CAChC;IAED;;OAEG;IACH,OAAO,GAAS;QACd,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAAA,CACnC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE;QACJ,uBAAuB,EAAE,KAAK;QAC9B,uBAAuB,EAAE,GAAe,EAAE,CAAC;YACzC,uBAAuB;YACvB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAC,CAAC,EAAE,CAAC;QAAA,CAC9B;KACmB;CACvB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposable, typed event emitter with deterministic cleanup.
|
|
3
|
+
*/
|
|
4
|
+
import type { Disposable } from './disposable.js';
|
|
5
|
+
type Listener<TEvents extends Record<string, unknown[]>, K extends keyof TEvents> = (...args: TEvents[K]) => void;
|
|
6
|
+
/**
|
|
7
|
+
* Event emitter that returns disposables and can dispose all listeners at once.
|
|
8
|
+
*/
|
|
9
|
+
export declare class DisposableEventEmitter<TEvents extends Record<string, unknown[]>> {
|
|
10
|
+
private listeners;
|
|
11
|
+
private disposed;
|
|
12
|
+
/**
|
|
13
|
+
* Register a listener and receive a disposable to unregister it.
|
|
14
|
+
*/
|
|
15
|
+
on<K extends keyof TEvents>(event: K, listener: Listener<TEvents, K>): Disposable;
|
|
16
|
+
/**
|
|
17
|
+
* Emit an event to all registered listeners in registration order.
|
|
18
|
+
*/
|
|
19
|
+
emit<K extends keyof TEvents>(event: K, ...args: TEvents[K]): void;
|
|
20
|
+
/**
|
|
21
|
+
* Dispose all listeners and prevent further registrations.
|
|
22
|
+
*/
|
|
23
|
+
dispose(): void;
|
|
24
|
+
}
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=disposable-event-emitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposable-event-emitter.d.ts","sourceRoot":"","sources":["../../src/utils/disposable-event-emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,KAAK,QAAQ,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,SAAS,MAAM,OAAO,IAAI,CAClF,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAChB,IAAI,CAAC;AAEV;;GAEG;AACH,qBAAa,sBAAsB,CAAC,OAAO,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;IAC3E,OAAO,CAAC,SAAS,CAA+D;IAChF,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,UAAU,CAyBhF;IAED;;OAEG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAajE;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAMd;CACF"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposable, typed event emitter with deterministic cleanup.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Event emitter that returns disposables and can dispose all listeners at once.
|
|
6
|
+
*/
|
|
7
|
+
export class DisposableEventEmitter {
|
|
8
|
+
listeners = new Map();
|
|
9
|
+
disposed = false;
|
|
10
|
+
/**
|
|
11
|
+
* Register a listener and receive a disposable to unregister it.
|
|
12
|
+
*/
|
|
13
|
+
on(event, listener) {
|
|
14
|
+
if (this.disposed) {
|
|
15
|
+
return { dispose: () => undefined };
|
|
16
|
+
}
|
|
17
|
+
let set = this.listeners.get(event);
|
|
18
|
+
if (!set) {
|
|
19
|
+
set = new Set();
|
|
20
|
+
this.listeners.set(event, set);
|
|
21
|
+
}
|
|
22
|
+
set.add(listener);
|
|
23
|
+
return {
|
|
24
|
+
dispose: () => {
|
|
25
|
+
const current = this.listeners.get(event);
|
|
26
|
+
if (!current) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
current.delete(listener);
|
|
30
|
+
if (current.size === 0) {
|
|
31
|
+
this.listeners.delete(event);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Emit an event to all registered listeners in registration order.
|
|
38
|
+
*/
|
|
39
|
+
emit(event, ...args) {
|
|
40
|
+
if (this.disposed) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
const set = this.listeners.get(event);
|
|
44
|
+
if (!set || set.size === 0) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
for (const listener of Array.from(set)) {
|
|
48
|
+
listener(...args);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Dispose all listeners and prevent further registrations.
|
|
53
|
+
*/
|
|
54
|
+
dispose() {
|
|
55
|
+
if (this.disposed) {
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
this.disposed = true;
|
|
59
|
+
this.listeners.clear();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=disposable-event-emitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposable-event-emitter.js","sourceRoot":"","sources":["../../src/utils/disposable-event-emitter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH;;GAEG;AACH,MAAM,OAAO,sBAAsB;IACzB,SAAS,GAAG,IAAI,GAAG,EAAoD,CAAC;IACxE,QAAQ,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACH,EAAE,CAA0B,KAAQ,EAAE,QAA8B,EAAc;QAChF,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC;QACtC,CAAC;QAED,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACpC,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;YAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACjC,CAAC;QAED,GAAG,CAAC,GAAG,CAAC,QAAwC,CAAC,CAAC;QAElD,OAAO;YACL,OAAO,EAAE,GAAG,EAAE,CAAC;gBACb,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO;gBACT,CAAC;gBACD,OAAO,CAAC,MAAM,CAAC,QAAwC,CAAC,CAAC;gBACzD,IAAI,OAAO,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;oBACvB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;YAAA,CACF;SACF,CAAC;IAAA,CACH;IAED;;OAEG;IACH,IAAI,CAA0B,KAAQ,EAAE,GAAG,IAAgB,EAAQ;QACjE,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACtC,QAAiC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC9C,CAAC;IAAA,CACF;IAED;;OAEG;IACH,OAAO,GAAS;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IAAA,CACxB;CACF"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposable interface for resource cleanup
|
|
3
|
+
* Pattern: MCP SDK's disposable pattern
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Represents a disposable resource that can be cleaned up
|
|
7
|
+
*/
|
|
8
|
+
export interface Disposable {
|
|
9
|
+
dispose(): void;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Store for managing multiple disposables
|
|
13
|
+
*/
|
|
14
|
+
export declare class DisposableStore implements Disposable {
|
|
15
|
+
private disposables;
|
|
16
|
+
private disposed;
|
|
17
|
+
/**
|
|
18
|
+
* Add a disposable to the store
|
|
19
|
+
*/
|
|
20
|
+
add<T extends Disposable>(disposable: T): T;
|
|
21
|
+
/**
|
|
22
|
+
* Dispose all resources in the store
|
|
23
|
+
*/
|
|
24
|
+
dispose(): void;
|
|
25
|
+
/**
|
|
26
|
+
* Check if store is disposed
|
|
27
|
+
*/
|
|
28
|
+
isDisposed(): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Clear all disposables without disposing them
|
|
31
|
+
*/
|
|
32
|
+
clear(): void;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=disposable.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../src/utils/disposable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,UAAU,EAAE,UAAU,EAAE,CAAC,GAAG,CAAC,CAO1C;IAED;;OAEG;IACH,OAAO,IAAI,IAAI,CAgBd;IAED;;OAEG;IACH,UAAU,IAAI,OAAO,CAEpB;IAED;;OAEG;IACH,KAAK,IAAI,IAAI,CAEZ;CACF"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Disposable interface for resource cleanup
|
|
3
|
+
* Pattern: MCP SDK's disposable pattern
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Store for managing multiple disposables
|
|
7
|
+
*/
|
|
8
|
+
export class DisposableStore {
|
|
9
|
+
disposables = [];
|
|
10
|
+
disposed = false;
|
|
11
|
+
/**
|
|
12
|
+
* Add a disposable to the store
|
|
13
|
+
*/
|
|
14
|
+
add(disposable) {
|
|
15
|
+
if (this.disposed) {
|
|
16
|
+
disposable.dispose();
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
this.disposables.push(disposable);
|
|
20
|
+
}
|
|
21
|
+
return disposable;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Dispose all resources in the store
|
|
25
|
+
*/
|
|
26
|
+
dispose() {
|
|
27
|
+
if (this.disposed) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
this.disposed = true;
|
|
31
|
+
// Dispose in reverse order
|
|
32
|
+
while (this.disposables.length > 0) {
|
|
33
|
+
const disposable = this.disposables.pop();
|
|
34
|
+
try {
|
|
35
|
+
disposable.dispose();
|
|
36
|
+
}
|
|
37
|
+
catch (error) {
|
|
38
|
+
console.error('Error disposing resource:', error);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Check if store is disposed
|
|
44
|
+
*/
|
|
45
|
+
isDisposed() {
|
|
46
|
+
return this.disposed;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Clear all disposables without disposing them
|
|
50
|
+
*/
|
|
51
|
+
clear() {
|
|
52
|
+
this.disposables = [];
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=disposable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../src/utils/disposable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH;;GAEG;AACH,MAAM,OAAO,eAAe;IAClB,WAAW,GAAiB,EAAE,CAAC;IAC/B,QAAQ,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACH,GAAG,CAAuB,UAAa,EAAK;QAC1C,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,UAAU,CAAC,OAAO,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpC,CAAC;QACD,OAAO,UAAU,CAAC;IAAA,CACnB;IAED;;OAEG;IACH,OAAO,GAAS;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QAErB,2BAA2B;QAC3B,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAG,CAAC;YAC3C,IAAI,CAAC;gBACH,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IAAA,CACF;IAED;;OAEG;IACH,UAAU,GAAY;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC;IAAA,CACtB;IAED;;OAEG;IACH,KAAK,GAAS;QACZ,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IAAA,CACvB;CACF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { DidChangeTextDocumentParams, Range } from 'vscode-languageserver-protocol';
|
|
2
|
+
export declare class DocumentVersionTracker {
|
|
3
|
+
private readonly versions;
|
|
4
|
+
open(uri: string, initialVersion?: number): void;
|
|
5
|
+
nextVersion(uri: string): number;
|
|
6
|
+
currentVersion(uri: string): number | undefined;
|
|
7
|
+
close(uri: string): void;
|
|
8
|
+
}
|
|
9
|
+
export interface VersionSource {
|
|
10
|
+
version?: number;
|
|
11
|
+
tracker?: DocumentVersionTracker;
|
|
12
|
+
}
|
|
13
|
+
export interface IncrementalChange {
|
|
14
|
+
range: Range;
|
|
15
|
+
text: string;
|
|
16
|
+
rangeLength?: number;
|
|
17
|
+
}
|
|
18
|
+
export declare function createIncrementalDidChangeParams(uri: string, changes: IncrementalChange[], source: VersionSource): DidChangeTextDocumentParams;
|
|
19
|
+
export declare function createFullDidChangeParams(uri: string, text: string, source: VersionSource): DidChangeTextDocumentParams;
|
|
20
|
+
//# sourceMappingURL=document.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/utils/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAC3B,KAAK,EAGN,MAAM,gCAAgC,CAAC;AAExC,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6B;IAEtD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,cAAc,GAAE,MAAU,GAAG,IAAI,CAElD;IAED,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAK/B;IAED,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9C;IAED,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAEvB;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAqBD,wBAAgB,gCAAgC,CAC9C,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,iBAAiB,EAAE,EAC5B,MAAM,EAAE,aAAa,GACpB,2BAA2B,CAY7B;AAED,wBAAgB,yBAAyB,CACvC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB,2BAA2B,CAQ7B"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export class DocumentVersionTracker {
|
|
2
|
+
versions = new Map();
|
|
3
|
+
open(uri, initialVersion = 0) {
|
|
4
|
+
this.versions.set(uri, initialVersion);
|
|
5
|
+
}
|
|
6
|
+
nextVersion(uri) {
|
|
7
|
+
const current = this.versions.get(uri) ?? 0;
|
|
8
|
+
const next = current + 1;
|
|
9
|
+
this.versions.set(uri, next);
|
|
10
|
+
return next;
|
|
11
|
+
}
|
|
12
|
+
currentVersion(uri) {
|
|
13
|
+
return this.versions.get(uri);
|
|
14
|
+
}
|
|
15
|
+
close(uri) {
|
|
16
|
+
this.versions.delete(uri);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
function resolveVersion(uri, source) {
|
|
20
|
+
if (typeof source.version === 'number') {
|
|
21
|
+
return source.version;
|
|
22
|
+
}
|
|
23
|
+
if (source.tracker) {
|
|
24
|
+
return source.tracker.nextVersion(uri);
|
|
25
|
+
}
|
|
26
|
+
throw new Error('Either an explicit version or a DocumentVersionTracker must be provided');
|
|
27
|
+
}
|
|
28
|
+
function createIdentifier(uri, version) {
|
|
29
|
+
return {
|
|
30
|
+
uri,
|
|
31
|
+
version
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
export function createIncrementalDidChangeParams(uri, changes, source) {
|
|
35
|
+
const version = resolveVersion(uri, source);
|
|
36
|
+
const contentChanges = changes.map((change) => ({
|
|
37
|
+
range: change.range,
|
|
38
|
+
text: change.text,
|
|
39
|
+
rangeLength: change.rangeLength
|
|
40
|
+
}));
|
|
41
|
+
return {
|
|
42
|
+
textDocument: createIdentifier(uri, version),
|
|
43
|
+
contentChanges
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export function createFullDidChangeParams(uri, text, source) {
|
|
47
|
+
const version = resolveVersion(uri, source);
|
|
48
|
+
const contentChanges = [{ text }];
|
|
49
|
+
return {
|
|
50
|
+
textDocument: createIdentifier(uri, version),
|
|
51
|
+
contentChanges
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=document.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/utils/document.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,sBAAsB;IAChB,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEtD,IAAI,CAAC,GAAW,EAAE,cAAc,GAAW,CAAC,EAAQ;QAClD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAAA,CACxC;IAED,WAAW,CAAC,GAAW,EAAU;QAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,OAAO,GAAG,CAAC,CAAC;QACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC;IAAA,CACb;IAED,cAAc,CAAC,GAAW,EAAsB;QAC9C,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAAA,CAC/B;IAED,KAAK,CAAC,GAAW,EAAQ;QACvB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAAA,CAC3B;CACF;AAaD,SAAS,cAAc,CAAC,GAAW,EAAE,MAAqB,EAAU;IAClE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yEAAyE,CAAC,CAAC;AAAA,CAC5F;AAED,SAAS,gBAAgB,CAAC,GAAW,EAAE,OAAe,EAAmC;IACvF,OAAO;QACL,GAAG;QACH,OAAO;KACR,CAAC;AAAA,CACH;AAED,MAAM,UAAU,gCAAgC,CAC9C,GAAW,EACX,OAA4B,EAC5B,MAAqB,EACQ;IAC7B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAqC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAChF,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,WAAW,EAAE,MAAM,CAAC,WAAW;KAChC,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,YAAY,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC;QAC5C,cAAc;KACf,CAAC;AAAA,CACH;AAED,MAAM,UAAU,yBAAyB,CACvC,GAAW,EACX,IAAY,EACZ,MAAqB,EACQ;IAC7B,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC5C,MAAM,cAAc,GAAqC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpE,OAAO;QACL,YAAY,EAAE,gBAAgB,CAAC,GAAG,EAAE,OAAO,CAAC;QAC5C,cAAc;KACf,CAAC;AAAA,CACH"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP and JSON-RPC error codes
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* JSON-RPC 2.0 error codes
|
|
6
|
+
*/
|
|
7
|
+
export declare const JSONRPCErrorCode: {
|
|
8
|
+
readonly ParseError: -32700;
|
|
9
|
+
readonly InvalidRequest: -32600;
|
|
10
|
+
readonly MethodNotFound: -32601;
|
|
11
|
+
readonly InvalidParams: -32602;
|
|
12
|
+
readonly InternalError: -32603;
|
|
13
|
+
readonly ServerNotInitialized: -32002;
|
|
14
|
+
readonly UnknownErrorCode: -32001;
|
|
15
|
+
readonly ServerErrorStart: -32099;
|
|
16
|
+
readonly ServerErrorEnd: -32000;
|
|
17
|
+
readonly RequestCancelled: -32800;
|
|
18
|
+
readonly ContentModified: -32801;
|
|
19
|
+
readonly ServerCancelled: -32802;
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Error messages for each error code
|
|
23
|
+
*/
|
|
24
|
+
export declare const ErrorMessage: Record<number, string>;
|
|
25
|
+
/**
|
|
26
|
+
* LSP Response Error
|
|
27
|
+
*/
|
|
28
|
+
export declare class ResponseError extends Error {
|
|
29
|
+
readonly code: number;
|
|
30
|
+
readonly data?: unknown;
|
|
31
|
+
constructor(code: number, message: string, data?: unknown);
|
|
32
|
+
/**
|
|
33
|
+
* Convert to JSON-RPC error object
|
|
34
|
+
*/
|
|
35
|
+
toJSON(): {
|
|
36
|
+
code: number;
|
|
37
|
+
message: string;
|
|
38
|
+
data: unknown;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Create a parse error
|
|
42
|
+
*/
|
|
43
|
+
static parseError(message?: string, data?: unknown): ResponseError;
|
|
44
|
+
/**
|
|
45
|
+
* Create an invalid request error
|
|
46
|
+
*/
|
|
47
|
+
static invalidRequest(message?: string, data?: unknown): ResponseError;
|
|
48
|
+
/**
|
|
49
|
+
* Create a method not found error
|
|
50
|
+
*/
|
|
51
|
+
static methodNotFound(method: string, data?: unknown): ResponseError;
|
|
52
|
+
/**
|
|
53
|
+
* Create an invalid params error
|
|
54
|
+
*/
|
|
55
|
+
static invalidParams(message?: string, data?: unknown): ResponseError;
|
|
56
|
+
/**
|
|
57
|
+
* Create an internal error
|
|
58
|
+
*/
|
|
59
|
+
static internalError(message?: string, data?: unknown): ResponseError;
|
|
60
|
+
/**
|
|
61
|
+
* Create a server not initialized error
|
|
62
|
+
*/
|
|
63
|
+
static serverNotInitialized(data?: unknown): ResponseError;
|
|
64
|
+
/**
|
|
65
|
+
* Create a request cancelled error
|
|
66
|
+
*/
|
|
67
|
+
static requestCancelled(data?: unknown): ResponseError;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;CAkBnB,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW/C,CAAC;AAEF;;GAEG;AACH,qBAAa,aAAc,SAAQ,KAAK;aAEpB,IAAI,EAAE,MAAM;aAEZ,IAAI,CAAC;IAHvB,YACkB,IAAI,EAAE,MAAM,EAC5B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,SAAS,EAI/B;IAED;;OAEG;IACH,MAAM;;;;MAML;IAED;;OAEG;IACH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAMjE;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAMrE;IAED;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAEnE;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAMpE;IAED;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAMpE;IAED;;OAEG;IACH,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAMzD;IAED;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,aAAa,CAMrD;CACF"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LSP and JSON-RPC error codes
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* JSON-RPC 2.0 error codes
|
|
6
|
+
*/
|
|
7
|
+
export const JSONRPCErrorCode = {
|
|
8
|
+
// Standard JSON-RPC 2.0 errors
|
|
9
|
+
ParseError: -32700,
|
|
10
|
+
InvalidRequest: -32600,
|
|
11
|
+
MethodNotFound: -32601,
|
|
12
|
+
InvalidParams: -32602,
|
|
13
|
+
InternalError: -32603,
|
|
14
|
+
// LSP-specific error codes (from -32899 to -32800)
|
|
15
|
+
ServerNotInitialized: -32002,
|
|
16
|
+
UnknownErrorCode: -32001,
|
|
17
|
+
// Application-defined errors (from -32099 to -32000)
|
|
18
|
+
ServerErrorStart: -32099,
|
|
19
|
+
ServerErrorEnd: -32000,
|
|
20
|
+
RequestCancelled: -32800,
|
|
21
|
+
ContentModified: -32801,
|
|
22
|
+
ServerCancelled: -32802
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Error messages for each error code
|
|
26
|
+
*/
|
|
27
|
+
export const ErrorMessage = {
|
|
28
|
+
[JSONRPCErrorCode.ParseError]: 'Parse error',
|
|
29
|
+
[JSONRPCErrorCode.InvalidRequest]: 'Invalid request',
|
|
30
|
+
[JSONRPCErrorCode.MethodNotFound]: 'Method not found',
|
|
31
|
+
[JSONRPCErrorCode.InvalidParams]: 'Invalid params',
|
|
32
|
+
[JSONRPCErrorCode.InternalError]: 'Internal error',
|
|
33
|
+
[JSONRPCErrorCode.ServerNotInitialized]: 'Server not initialized, or server shut down',
|
|
34
|
+
[JSONRPCErrorCode.UnknownErrorCode]: 'Unknown error',
|
|
35
|
+
[JSONRPCErrorCode.RequestCancelled]: 'Request cancelled',
|
|
36
|
+
[JSONRPCErrorCode.ContentModified]: 'Content modified',
|
|
37
|
+
[JSONRPCErrorCode.ServerCancelled]: 'Server cancelled'
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* LSP Response Error
|
|
41
|
+
*/
|
|
42
|
+
export class ResponseError extends Error {
|
|
43
|
+
code;
|
|
44
|
+
data;
|
|
45
|
+
constructor(code, message, data) {
|
|
46
|
+
super(message);
|
|
47
|
+
this.code = code;
|
|
48
|
+
this.data = data;
|
|
49
|
+
this.name = 'ResponseError';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Convert to JSON-RPC error object
|
|
53
|
+
*/
|
|
54
|
+
toJSON() {
|
|
55
|
+
return {
|
|
56
|
+
code: this.code,
|
|
57
|
+
message: this.message,
|
|
58
|
+
data: this.data
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Create a parse error
|
|
63
|
+
*/
|
|
64
|
+
static parseError(message, data) {
|
|
65
|
+
return new ResponseError(JSONRPCErrorCode.ParseError, message ?? ErrorMessage[JSONRPCErrorCode.ParseError] ?? 'Parse error', data);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Create an invalid request error
|
|
69
|
+
*/
|
|
70
|
+
static invalidRequest(message, data) {
|
|
71
|
+
return new ResponseError(JSONRPCErrorCode.InvalidRequest, message ?? ErrorMessage[JSONRPCErrorCode.InvalidRequest] ?? 'Invalid request', data);
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Create a method not found error
|
|
75
|
+
*/
|
|
76
|
+
static methodNotFound(method, data) {
|
|
77
|
+
return new ResponseError(JSONRPCErrorCode.MethodNotFound, `Method not found: ${method}`, data);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Create an invalid params error
|
|
81
|
+
*/
|
|
82
|
+
static invalidParams(message, data) {
|
|
83
|
+
return new ResponseError(JSONRPCErrorCode.InvalidParams, message ?? ErrorMessage[JSONRPCErrorCode.InvalidParams] ?? 'Invalid params', data);
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Create an internal error
|
|
87
|
+
*/
|
|
88
|
+
static internalError(message, data) {
|
|
89
|
+
return new ResponseError(JSONRPCErrorCode.InternalError, message ?? ErrorMessage[JSONRPCErrorCode.InternalError] ?? 'Internal error', data);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Create a server not initialized error
|
|
93
|
+
*/
|
|
94
|
+
static serverNotInitialized(data) {
|
|
95
|
+
return new ResponseError(JSONRPCErrorCode.ServerNotInitialized, ErrorMessage[JSONRPCErrorCode.ServerNotInitialized] ?? 'Server not initialized', data);
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Create a request cancelled error
|
|
99
|
+
*/
|
|
100
|
+
static requestCancelled(data) {
|
|
101
|
+
return new ResponseError(JSONRPCErrorCode.RequestCancelled, ErrorMessage[JSONRPCErrorCode.RequestCancelled] ?? 'Request cancelled', data);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Handler registry with method-based lookup and cleanup support.
|
|
3
|
+
*/
|
|
4
|
+
import type { Disposable } from './disposable.js';
|
|
5
|
+
/**
|
|
6
|
+
* Handler function type.
|
|
7
|
+
*/
|
|
8
|
+
export type Handler<TRequest, TResponse, TRest extends unknown[] = []> = (params: TRequest, ...rest: TRest) => Promise<TResponse> | TResponse;
|
|
9
|
+
/**
|
|
10
|
+
* Registry for request/notification handlers keyed by method.
|
|
11
|
+
*/
|
|
12
|
+
export declare class HandlerRegistry<TRequest, TResponse, TRest extends unknown[] = []> {
|
|
13
|
+
private handlers;
|
|
14
|
+
private categories;
|
|
15
|
+
/**
|
|
16
|
+
* Register a handler for the given method.
|
|
17
|
+
*/
|
|
18
|
+
register(method: string, handler: Handler<TRequest, TResponse, TRest>): Disposable;
|
|
19
|
+
/**
|
|
20
|
+
* Unregister a handler.
|
|
21
|
+
*/
|
|
22
|
+
unregister(method: string): void;
|
|
23
|
+
/**
|
|
24
|
+
* Get a handler by method.
|
|
25
|
+
*/
|
|
26
|
+
get(method: string): Handler<TRequest, TResponse, TRest> | undefined;
|
|
27
|
+
/**
|
|
28
|
+
* Clear all handlers.
|
|
29
|
+
*/
|
|
30
|
+
clear(): void;
|
|
31
|
+
private addCategory;
|
|
32
|
+
private removeCategory;
|
|
33
|
+
private getPrefix;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=handler-registry.d.ts.map
|