@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.
Files changed (155) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +550 -0
  3. package/dist/index.d.ts +44 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +32 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/jsonrpc/framing.d.ts +32 -0
  8. package/dist/jsonrpc/framing.d.ts.map +1 -0
  9. package/dist/jsonrpc/framing.js +96 -0
  10. package/dist/jsonrpc/framing.js.map +1 -0
  11. package/dist/jsonrpc/messages.d.ts +64 -0
  12. package/dist/jsonrpc/messages.d.ts.map +1 -0
  13. package/dist/jsonrpc/messages.js +23 -0
  14. package/dist/jsonrpc/messages.js.map +1 -0
  15. package/dist/jsonrpc/reader.d.ts +44 -0
  16. package/dist/jsonrpc/reader.d.ts.map +1 -0
  17. package/dist/jsonrpc/reader.js +107 -0
  18. package/dist/jsonrpc/reader.js.map +1 -0
  19. package/dist/jsonrpc/schemas.d.ts +103 -0
  20. package/dist/jsonrpc/schemas.d.ts.map +1 -0
  21. package/dist/jsonrpc/schemas.js +66 -0
  22. package/dist/jsonrpc/schemas.js.map +1 -0
  23. package/dist/jsonrpc/writer.d.ts +43 -0
  24. package/dist/jsonrpc/writer.d.ts.map +1 -0
  25. package/dist/jsonrpc/writer.js +110 -0
  26. package/dist/jsonrpc/writer.js.map +1 -0
  27. package/dist/middleware/compose.d.ts +3 -0
  28. package/dist/middleware/compose.d.ts.map +1 -0
  29. package/dist/middleware/compose.js +16 -0
  30. package/dist/middleware/compose.js.map +1 -0
  31. package/dist/middleware/index.d.ts +6 -0
  32. package/dist/middleware/index.d.ts.map +1 -0
  33. package/dist/middleware/index.js +5 -0
  34. package/dist/middleware/index.js.map +1 -0
  35. package/dist/middleware/pipeline.d.ts +5 -0
  36. package/dist/middleware/pipeline.d.ts.map +1 -0
  37. package/dist/middleware/pipeline.js +54 -0
  38. package/dist/middleware/pipeline.js.map +1 -0
  39. package/dist/middleware/scoped.d.ts +9 -0
  40. package/dist/middleware/scoped.d.ts.map +1 -0
  41. package/dist/middleware/scoped.js +20 -0
  42. package/dist/middleware/scoped.js.map +1 -0
  43. package/dist/middleware/typed.d.ts +3 -0
  44. package/dist/middleware/typed.d.ts.map +1 -0
  45. package/dist/middleware/typed.js +18 -0
  46. package/dist/middleware/typed.js.map +1 -0
  47. package/dist/middleware/types.d.ts +45 -0
  48. package/dist/middleware/types.d.ts.map +1 -0
  49. package/dist/middleware/types.js +2 -0
  50. package/dist/middleware/types.js.map +1 -0
  51. package/dist/protocol/capabilities.d.ts +93 -0
  52. package/dist/protocol/capabilities.d.ts.map +1 -0
  53. package/dist/protocol/capabilities.js +143 -0
  54. package/dist/protocol/capabilities.js.map +1 -0
  55. package/dist/protocol/capability-methods.d.ts +270 -0
  56. package/dist/protocol/capability-methods.d.ts.map +1 -0
  57. package/dist/protocol/capability-methods.js +14 -0
  58. package/dist/protocol/capability-methods.js.map +1 -0
  59. package/dist/protocol/enums.d.ts +336 -0
  60. package/dist/protocol/enums.d.ts.map +1 -0
  61. package/dist/protocol/enums.js +417 -0
  62. package/dist/protocol/enums.js.map +1 -0
  63. package/dist/protocol/infer.d.ts +112 -0
  64. package/dist/protocol/infer.d.ts.map +1 -0
  65. package/dist/protocol/infer.js +58 -0
  66. package/dist/protocol/infer.js.map +1 -0
  67. package/dist/protocol/namespaces.d.ts +1432 -0
  68. package/dist/protocol/namespaces.d.ts.map +1 -0
  69. package/dist/protocol/namespaces.js +570 -0
  70. package/dist/protocol/namespaces.js.map +1 -0
  71. package/dist/protocol/partial.d.ts +29 -0
  72. package/dist/protocol/partial.d.ts.map +1 -0
  73. package/dist/protocol/partial.js +24 -0
  74. package/dist/protocol/partial.js.map +1 -0
  75. package/dist/protocol/progress.d.ts +32 -0
  76. package/dist/protocol/progress.d.ts.map +1 -0
  77. package/dist/protocol/progress.js +60 -0
  78. package/dist/protocol/progress.js.map +1 -0
  79. package/dist/protocol/schemas.d.ts +534 -0
  80. package/dist/protocol/schemas.d.ts.map +1 -0
  81. package/dist/protocol/schemas.js +271 -0
  82. package/dist/protocol/schemas.js.map +1 -0
  83. package/dist/protocol/types.d.ts +19 -0
  84. package/dist/protocol/types.d.ts.map +1 -0
  85. package/dist/protocol/types.js +8 -0
  86. package/dist/protocol/types.js.map +1 -0
  87. package/dist/protocol/watching.d.ts +29 -0
  88. package/dist/protocol/watching.d.ts.map +1 -0
  89. package/dist/protocol/watching.js +36 -0
  90. package/dist/protocol/watching.js.map +1 -0
  91. package/dist/protocol/workspace.d.ts +24 -0
  92. package/dist/protocol/workspace.d.ts.map +1 -0
  93. package/dist/protocol/workspace.js +26 -0
  94. package/dist/protocol/workspace.js.map +1 -0
  95. package/dist/transport/events.d.ts +27 -0
  96. package/dist/transport/events.d.ts.map +1 -0
  97. package/dist/transport/events.js +34 -0
  98. package/dist/transport/events.js.map +1 -0
  99. package/dist/transport/stdio.d.ts +55 -0
  100. package/dist/transport/stdio.d.ts.map +1 -0
  101. package/dist/transport/stdio.js +147 -0
  102. package/dist/transport/stdio.js.map +1 -0
  103. package/dist/transport/transport.d.ts +38 -0
  104. package/dist/transport/transport.d.ts.map +1 -0
  105. package/dist/transport/transport.js +5 -0
  106. package/dist/transport/transport.js.map +1 -0
  107. package/dist/transport/websocket.d.ts +142 -0
  108. package/dist/transport/websocket.d.ts.map +1 -0
  109. package/dist/transport/websocket.js +324 -0
  110. package/dist/transport/websocket.js.map +1 -0
  111. package/dist/utils/cancellation.d.ts +47 -0
  112. package/dist/utils/cancellation.d.ts.map +1 -0
  113. package/dist/utils/cancellation.js +77 -0
  114. package/dist/utils/cancellation.js.map +1 -0
  115. package/dist/utils/disposable-event-emitter.d.ts +26 -0
  116. package/dist/utils/disposable-event-emitter.d.ts.map +1 -0
  117. package/dist/utils/disposable-event-emitter.js +62 -0
  118. package/dist/utils/disposable-event-emitter.js.map +1 -0
  119. package/dist/utils/disposable.d.ts +34 -0
  120. package/dist/utils/disposable.d.ts.map +1 -0
  121. package/dist/utils/disposable.js +55 -0
  122. package/dist/utils/disposable.js.map +1 -0
  123. package/dist/utils/document.d.ts +20 -0
  124. package/dist/utils/document.d.ts.map +1 -0
  125. package/dist/utils/document.js +54 -0
  126. package/dist/utils/document.js.map +1 -0
  127. package/dist/utils/errors.d.ts +69 -0
  128. package/dist/utils/errors.d.ts.map +1 -0
  129. package/dist/utils/errors.js +104 -0
  130. package/dist/utils/errors.js.map +1 -0
  131. package/dist/utils/handler-registry.d.ts +35 -0
  132. package/dist/utils/handler-registry.d.ts.map +1 -0
  133. package/dist/utils/handler-registry.js +68 -0
  134. package/dist/utils/handler-registry.js.map +1 -0
  135. package/dist/utils/index.d.ts +5 -0
  136. package/dist/utils/index.d.ts.map +1 -0
  137. package/dist/utils/index.js +4 -0
  138. package/dist/utils/index.js.map +1 -0
  139. package/dist/utils/internal.d.ts +3 -0
  140. package/dist/utils/internal.d.ts.map +1 -0
  141. package/dist/utils/internal.js +3 -0
  142. package/dist/utils/internal.js.map +1 -0
  143. package/dist/utils/logger.d.ts +47 -0
  144. package/dist/utils/logger.d.ts.map +1 -0
  145. package/dist/utils/logger.js +61 -0
  146. package/dist/utils/logger.js.map +1 -0
  147. package/dist/utils/pending-request-tracker.d.ts +36 -0
  148. package/dist/utils/pending-request-tracker.d.ts.map +1 -0
  149. package/dist/utils/pending-request-tracker.js +93 -0
  150. package/dist/utils/pending-request-tracker.js.map +1 -0
  151. package/dist/utils/transport-attachment.d.ts +34 -0
  152. package/dist/utils/transport-attachment.d.ts.map +1 -0
  153. package/dist/utils/transport-attachment.js +48 -0
  154. package/dist/utils/transport-attachment.js.map +1 -0
  155. 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