monaco-lsp-bridge 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { JSONRPC_VERSION, makeRequest, makeNotification, isId, } from './protocol.js';
1
+ import { makeRequest, makeNotification, isRpcMessage, isRpcRequestType, isRpcResponseType, } from './protocol.js';
2
2
  import { LspError, LspErrorCode, toLspError, isCancellationError } from './error.js';
3
3
  export class LspTransport {
4
4
  sender;
@@ -50,8 +50,6 @@ export class LspTransport {
50
50
  /** Listen for error responses and forward normalized errors */
51
51
  onError(cb) {
52
52
  const onMessage = (res) => {
53
- if (res?.jsonrpc !== JSONRPC_VERSION)
54
- return;
55
53
  if (res?.error)
56
54
  cb(toLspError(res.error));
57
55
  };
@@ -66,7 +64,7 @@ export class LspTransport {
66
64
  /** Register a callback for all $/progress notifications */
67
65
  onProgressNotification(callback) {
68
66
  const onMessage = (msg) => {
69
- if (msg?.jsonrpc !== JSONRPC_VERSION || msg?.method !== '$/progress')
67
+ if (msg?.method !== '$/progress')
70
68
  return;
71
69
  if (msg.params)
72
70
  callback(msg.params);
@@ -77,7 +75,7 @@ export class LspTransport {
77
75
  /** Listen for a specific server notification method */
78
76
  onServerNotification(method, cb) {
79
77
  const onMessage = (msg) => {
80
- if (msg?.jsonrpc !== JSONRPC_VERSION || msg?.method !== method)
78
+ if (msg?.method !== method)
81
79
  return;
82
80
  cb(msg.params);
83
81
  };
@@ -219,10 +217,10 @@ export class LspTransport {
219
217
  return;
220
218
  }
221
219
  // Early drop anything that isn't a proper JSON-RPC 2.0 message
222
- if (!raw || typeof raw !== 'object' || raw.jsonrpc !== JSONRPC_VERSION)
220
+ if (!isRpcMessage(raw))
223
221
  return;
224
222
  // Handle $/progress notifications
225
- if (raw.method === '$/progress' && raw.params) {
223
+ if (isRpcRequestType('$/progress', raw)) {
226
224
  const params = raw.params;
227
225
  const callback = this.progressCallbacks.get(params.token);
228
226
  if (callback) {
@@ -238,19 +236,15 @@ export class LspTransport {
238
236
  // Still fan out to subscribers for withProgress handlers
239
237
  }
240
238
  // If it's a response with an id and a waiting promise, resolve that first
241
- if (Object.prototype.hasOwnProperty.call(raw, 'id')) {
242
- const id = raw.id;
243
- if (isId(id)) {
244
- const waiter = this.waiters.get(id);
245
- if (waiter) {
246
- // Claim and stop propagation to generic handlers
247
- this.waiters.delete(id);
248
- try {
249
- waiter(raw);
250
- }
251
- catch { }
252
- return;
239
+ if (isRpcResponseType(raw)) {
240
+ const waiter = this.waiters.get(raw.id);
241
+ if (waiter) {
242
+ // Claim and stop propagation to generic handlers
243
+ this.waiters.delete(raw.id);
244
+ try {
245
+ waiter(raw);
253
246
  }
247
+ catch { }
254
248
  }
255
249
  }
256
250
  // Fan-out to generic subscribers (e.g. withHandlers / withError / withProgress)
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/transport.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,eAAe,EACf,WAAW,EACX,gBAAgB,EAShB,IAAI,GACL,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAA;AAsBpF,MAAM,OAAO,YAAY;IAqBJ;IAGA;IACA;IAxBX,MAAM,GAAG,CAAC,CAAA;IACV,WAAW,GAAG,CAAC,CAAA;IACf,WAAW,GAAoB,IAAI,GAAG,EAAE,CAAA;IAEhD,qDAAqD;IAC7C,OAAO,GAAG,IAAI,GAAG,EAA6C,CAAA;IAEtE,oBAAoB;IACZ,QAAQ,GAAG,IAAI,GAAG,EAAqC,CAAA;IACvD,SAAS,GAAG,IAAI,GAAG,EAA+B,CAAA;IAE1D,mEAAmE;IAC3D,IAAI,GAAG,IAAI,GAAG,EAA0B,CAAA;IACxC,OAAO,GAAG,IAAI,GAAG,EAA2C,CAAA;IAEpE,iFAAiF;IACzE,iBAAiB,GAAG,IAAI,GAAG,EAAkC,CAAA;IAErE,2DAA2D;IAC3D,YACmB,MAER,EACQ,QAAoD,EACpD,mBAA2B,MAAM;QAJjC,WAAM,GAAN,MAAM,CAEd;QACQ,aAAQ,GAAR,QAAQ,CAA4C;QACpD,qBAAgB,GAAhB,gBAAgB,CAAiB;QAElD,kEAAkE;QAClE,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC9B,CAAC;IAED,iDAAiD;IACjD,mDAAmD;IACnD,MAAM,CAAC,UAAU,CAAC,MAAuB;QACvC,MAAM,MAAM,GAAG,CAAC,OAAY,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;QAC5D,MAAM,QAAQ,GAAG,CAAC,EAA0B,EAAE,EAAE;YAC9C,MAAM,OAAO,GAAG,CAAC,CAAgB,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;YAChD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAC3C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;QAC7D,CAAC,CAAA;QACD,OAAO,IAAI,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAC3C,CAAC;IAED,kEAAkE;IAClE,MAAM,CAAC,KAAK,CAAC,QAAmB;QAC9B,OAAO,QAAQ,YAAY,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IACxF,CAAC;IAED,mBAAmB;IACnB,4CAA4C;IAC5C,aAAa,CAAC,CAAqB;QACjC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;QACvC,OAAO,IAAI,CAAA;IACb,CAAC;IAED,+DAA+D;IAC/D,OAAO,CAAC,EAA6B;QACnC,MAAM,SAAS,GAAG,CAAC,GAAyB,EAAE,EAAE;YAC9C,IAAI,GAAG,EAAE,OAAO,KAAK,eAAe;gBAAE,OAAM;YAC5C,IAAI,GAAG,EAAE,KAAK;gBAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QAC3C,CAAC,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wDAAwD;IACxD,UAAU,CAAC,KAAoB,EAAE,QAAyB;QACxD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAA;QAC3C,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IACnD,CAAC;IAED,2DAA2D;IAC3D,sBAAsB,CAAC,QAA2C;QAChE,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,EAAE;YAC7B,IAAI,GAAG,EAAE,OAAO,KAAK,eAAe,IAAI,GAAG,EAAE,MAAM,KAAK,YAAY;gBAAE,OAAM;YAC5E,IAAI,GAAG,CAAC,MAAM;gBAAE,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QACtC,CAAC,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,uDAAuD;IACvD,oBAAoB,CAAiC,MAAS,EAAE,EAA0C;QACxG,MAAM,SAAS,GAAG,CAAC,GAAQ,EAAE,EAAE;YAC7B,IAAI,GAAG,EAAE,OAAO,KAAK,eAAe,IAAI,GAAG,EAAE,MAAM,KAAK,MAAM;gBAAE,OAAM;YACtE,EAAE,CAAC,GAAG,CAAC,MAA8B,CAAC,CAAA;QACxC,CAAC,CAAA;QACD,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,0DAA0D;IAC1D,OAAO;QACL,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1C,IAAI,CAAC;gBACH,GAAG,CAAC,IAAI,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC,CAAA;YACjG,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;QAEtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YAAE,YAAY,CAAC,CAAC,CAAC,CAAA;QACvD,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAA;QAErB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAA;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QACpB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAA;QACjB,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAA;IAChC,CAAC;IAED,oBAAoB;IAEpB,kEAAkE;IAClE,gBAAgB,CAAiC,MAAS,EAAE,MAA4B;QACtF,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;QAC7C,OAAO,IAAI,CAAA;IACb,CAAC;IAED,4EAA4E;IAC5E,WAAW,CACT,MAAS,EACT,MAAwB,EACxB,IAOC;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;QAExB,iEAAiE;QACjE,MAAM,aAAa,GAAG,IAAI,EAAE,aAAa,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC1G,MAAM,kBAAkB,GACtB,IAAI,EAAE,kBAAkB,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAEnG,yCAAyC;QACzC,MAAM,eAAe,GAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;QAC1C,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YAChC,eAAe,CAAC,aAAa,GAAG,aAAa,CAAA;QAC/C,CAAC;QACD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;YACrC,eAAe,CAAC,kBAAkB,GAAG,kBAAkB,CAAA;QACzD,CAAC;QAED,MAAM,CAAC,GAAG,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,CAAA;QAElD,IAAI,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,IAAa,EAAE,IAAI,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,CAAA;QAC3F,CAAC;QAED,0CAA0C;QAC1C,2EAA2E;QAC3E,IAAI,aAAa,KAAK,SAAS,IAAI,IAAI,EAAE,UAAU,EAAE,CAAC;YACpD,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC5D,CAAC;QACD,IAAI,kBAAkB,KAAK,SAAS,IAAI,IAAI,EAAE,eAAe,EAAE,CAAC;YAC9D,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;QACtE,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QAEd,OAAO,IAAI,OAAO,CAAmC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvE,MAAM,gBAAgB,GAAG,CAAC,IAAkE,EAAE,EAAE;gBAC9F,OAAO,EAAE,CAAA;gBACT,OAAO,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;YACpC,CAAC,CAAA;YACD,MAAM,QAAQ,GAAG,CAAC,GAAa,EAAE,EAAE;gBACjC,OAAO,EAAE,CAAA;gBACT,MAAM,CAAC,GAAG,CAAC,CAAA;YACb,CAAC,CAAA;YAED,MAAM,UAAU,GAAG,CAAC,GAAyB,EAAE,EAAE;gBAC/C,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE;oBAAE,OAAM;gBAC1B,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oBACd,MAAM,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;oBACjC,IAAI,mBAAmB,CAAC,GAAG,CAAC;wBAAE,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAW,CAAC,CAAA;oBACtE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;gBACtB,CAAC;gBACD,OAAO,EAAE,CAAA;gBACT,OAAO,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;YACnD,CAAC,CAAA;YAED,qCAAqC;YACrC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,UAAU,CAAC,CAAA;YAEhC,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACvB,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBAC/B,IAAI,CAAC;oBAAE,YAAY,CAAC,CAAC,CAAC,CAAA;gBACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACxB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBACzB,sEAAsE;gBACtE,wEAAwE;gBACxE,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;oBAChC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;gBAC9C,CAAC;gBACD,IAAI,kBAAkB,KAAK,SAAS,EAAE,CAAC;oBACrC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;gBACnD,CAAC;gBACD,IAAI,YAAY;oBAAE,IAAI,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAA;YAC5E,CAAC,CAAA;YAED,UAAU;YACV,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,IAAI,CAAC,gBAAgB,CAAA;YAC1D,IAAI,SAAS,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;gBAChD,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE;oBACxB,QAAQ,CACN,IAAI,QAAQ,CAAC;wBACX,IAAI,EAAE,YAAY,CAAC,OAAO;wBAC1B,OAAO,EAAE,sBAAsB,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,WAAW,SAAS,IAAI;qBAC7E,CAAC,CACH,CAAA;gBACH,CAAC,EAAE,SAAS,CAAC,CAAA;gBACb,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;YAC1B,CAAC;YAED,+CAA+C;YAC/C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAA;YAEhC,4EAA4E;YAC5E,oEAAoE;YACpE,IAAI,YAAsC,CAAA;YAC1C,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;gBACjB,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,8CAA8C;oBAC9C,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;oBAChD,4EAA4E;oBAC5E,gBAAgB,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAA;gBACjD,CAAC,CAAA;gBACD,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;gBAC9D,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;YACzE,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iDAAiD;IACzC,SAAS,CAAC,EAA0B;QAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACjB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACnC,CAAC;IAED,iEAAiE;IACzD,MAAM,GAAG,CAAC,GAAQ,EAAE,EAAE;QAC5B,0CAA0C;QAC1C,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,KAAK,MAAM,KAAK,IAAI,GAAG;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YAC3C,OAAM;QACR,CAAC;QAED,+DAA+D;QAC/D,IAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,eAAe;YAAE,OAAM;QAE9E,kCAAkC;QAClC,IAAI,GAAG,CAAC,MAAM,KAAK,YAAY,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;YAC9C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAyB,CAAA;YAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;YACzD,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC;oBACH,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBACxB,CAAC;gBAAC,MAAM,CAAC,CAAA,CAAC;gBAEV,yEAAyE;gBACzE,IAAI,MAAM,CAAC,KAAK,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;oBACpF,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;YACD,yDAAyD;QAC3D,CAAC;QAED,0EAA0E;QAC1E,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,GAAG,CAAC,EAAQ,CAAA;YACvB,IAAI,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBACb,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;gBACnC,IAAI,MAAM,EAAE,CAAC;oBACX,iDAAiD;oBACjD,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBACvB,IAAI,CAAC;wBACH,MAAM,CAAC,GAAG,CAAC,CAAA;oBACb,CAAC;oBAAC,MAAM,CAAC,CAAA,CAAC;oBACV,OAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,gFAAgF;QAChF,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,EAAE,CAAC,GAAG,CAAC,CAAA;YACT,CAAC;YAAC,MAAM,CAAC,CAAA,CAAC;QACZ,CAAC;IACH,CAAC,CAAA;CACF"}
1
+ {"version":3,"file":"transport.js","sourceRoot":"","sources":["../../src/transport.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IAEtB,UAAU,SAAS;IACnB,cAAc,SAAS;IACvB,cAAc,SAAS;IACvB,aAAa,SAAS;IACtB,aAAa,SAAS;IAGtB,eAAe,SAAS;IAGxB,gBAAgB,SAAS;IACzB,eAAe,SAAS;IACxB,eAAe,SAAS;IAGxB,OAAO,OAAO;IACd,QAAQ,OAAO;CAChB;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7E,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;gBACF,KAAK,EAAE,aAAa;CAMjC;AAED,eAAO,MAAM,mBAAmB,GAAI,GAAG,OAAO,YAI2D,CAAA;AAEzG,eAAO,MAAM,UAAU,GAAI,GAAG,GAAG,KAAG,QAO5B,CAAA"}
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IAEtB,UAAU,SAAS;IACnB,cAAc,SAAS;IACvB,cAAc,SAAS;IACvB,aAAa,SAAS;IACtB,aAAa,SAAS;IAGtB,eAAe,SAAS;IAGxB,gBAAgB,SAAS;IACzB,eAAe,SAAS;IACxB,eAAe,SAAS;IAGxB,OAAO,OAAO;IACd,QAAQ,OAAO;CAChB;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,CAAA;AAE7E,qBAAa,QAAS,SAAQ,KAAK;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,IAAI,CAAC,EAAE,OAAO,CAAA;gBACF,KAAK,EAAE,aAAa;CAMjC;AAED,eAAO,MAAM,mBAAmB,GAAI,GAAG,OAAO,YAI2D,CAAA;AAEzG,eAAO,MAAM,UAAU,GAAI,GAAG,GAAG,KAAG,QAQnC,CAAA"}
@@ -1,60 +1,65 @@
1
- import { DidChangeTextDocumentNotification, DidChangeTextDocumentParams, DidCloseTextDocumentParams, DidCloseTextDocumentNotification, DidOpenTextDocumentNotification, DidOpenTextDocumentParams, CompletionRequest, CompletionParams, InitializeRequest, InitializeParams, InitializeResult, CompletionList, CompletionItem, CompletionResolveRequest, ProgressToken, PublishDiagnosticsNotification, PublishDiagnosticsParams, LogMessageNotification, LogMessageParams, DocumentFormattingRequest, DocumentFormattingParams, DocumentRangeFormattingRequest, DocumentRangeFormattingParams, DocumentOnTypeFormattingRequest, DocumentOnTypeFormattingParams, TextEdit, HoverRequest, HoverParams, Hover } from 'vscode-languageserver-protocol';
1
+ import type { DidChangeTextDocumentNotification, DidChangeTextDocumentParams, DidCloseTextDocumentParams, DidCloseTextDocumentNotification, DidOpenTextDocumentNotification, DidOpenTextDocumentParams, CompletionRequest, CompletionParams, InitializeRequest, InitializeParams, InitializeResult, CompletionList, CompletionItem, CompletionResolveRequest, ProgressToken, PublishDiagnosticsNotification, PublishDiagnosticsParams, LogMessageNotification, LogMessageParams, DocumentFormattingRequest, DocumentFormattingParams, DocumentRangeFormattingRequest, DocumentRangeFormattingParams, DocumentOnTypeFormattingRequest, DocumentOnTypeFormattingParams, TextEdit, HoverRequest, HoverParams, Hover } from 'vscode-languageserver-protocol';
2
2
  import { LspErrorShape } from './error.js';
3
+ export declare const JSONRPC_VERSION = "2.0";
4
+ export type JSONRPC = typeof JSONRPC_VERSION;
3
5
  export type Id = number | string;
4
6
  export declare const isId: (id: unknown) => id is Id;
7
+ type RequestMapValue<P, R> = {
8
+ fields: {
9
+ params: P;
10
+ };
11
+ response: R;
12
+ };
5
13
  export interface RequestMap {
6
- [InitializeRequest.method]: [InitializeParams, InitializeResult];
7
- [CompletionResolveRequest.method]: [CompletionItem, CompletionItem];
8
- [CompletionRequest.method]: [CompletionParams, CompletionList | CompletionItem[] | null];
9
- [DocumentFormattingRequest.method]: [DocumentFormattingParams, TextEdit[] | null];
10
- [DocumentRangeFormattingRequest.method]: [DocumentRangeFormattingParams, TextEdit[] | null];
11
- [DocumentOnTypeFormattingRequest.method]: [DocumentOnTypeFormattingParams, TextEdit[] | null];
12
- [HoverRequest.method]: [HoverParams, Hover | null];
13
- shutdown: [null, null];
14
+ [InitializeRequest.method]: RequestMapValue<InitializeParams, InitializeResult>;
15
+ [CompletionResolveRequest.method]: RequestMapValue<CompletionItem, CompletionItem>;
16
+ [CompletionRequest.method]: RequestMapValue<CompletionParams, CompletionList | CompletionItem[] | null>;
17
+ [DocumentFormattingRequest.method]: RequestMapValue<DocumentFormattingParams, TextEdit[] | null>;
18
+ [DocumentRangeFormattingRequest.method]: RequestMapValue<DocumentRangeFormattingParams, TextEdit[] | null>;
19
+ [DocumentOnTypeFormattingRequest.method]: RequestMapValue<DocumentOnTypeFormattingParams, TextEdit[] | null>;
20
+ [HoverRequest.method]: RequestMapValue<HoverParams, Hover | null>;
21
+ shutdown: RequestMapValue<null, null>;
14
22
  }
15
23
  export interface ClientNotifMap {
16
- [DidOpenTextDocumentNotification.method]: [DidOpenTextDocumentParams, void];
17
- [DidChangeTextDocumentNotification.method]: [DidChangeTextDocumentParams, void];
18
- [DidCloseTextDocumentNotification.method]: [DidCloseTextDocumentParams, void];
19
- '$/cancelRequest': [{
24
+ [DidOpenTextDocumentNotification.method]: RequestMapValue<DidOpenTextDocumentParams, void>;
25
+ [DidChangeTextDocumentNotification.method]: RequestMapValue<DidChangeTextDocumentParams, void>;
26
+ [DidCloseTextDocumentNotification.method]: RequestMapValue<DidCloseTextDocumentParams, void>;
27
+ '$/cancelRequest': RequestMapValue<{
20
28
  id: Id;
21
- }, void];
22
- exit: [null, void];
29
+ }, void>;
30
+ exit: RequestMapValue<null, void>;
23
31
  }
24
32
  export interface ServerNotifMap {
25
- '$/progress': [{
33
+ '$/progress': RequestMapValue<{
26
34
  token: ProgressToken;
27
35
  value: any;
28
- }, void];
29
- [PublishDiagnosticsNotification.method]: [PublishDiagnosticsParams, void];
30
- [LogMessageNotification.method]: [LogMessageParams, void];
36
+ }, void>;
37
+ [PublishDiagnosticsNotification.method]: RequestMapValue<PublishDiagnosticsParams, void>;
38
+ [LogMessageNotification.method]: RequestMapValue<LogMessageParams, void>;
31
39
  }
32
- export declare const JSONRPC_VERSION = "2.0";
33
- type JSONRPC = typeof JSONRPC_VERSION;
34
- export type JsonRpcRequest<K, T> = {
40
+ export interface JsonRpcMessage {
35
41
  jsonrpc: JSONRPC;
42
+ }
43
+ export interface JsonRpcRequest<K, T> extends JsonRpcMessage {
36
44
  id: Id;
37
45
  params: T;
38
46
  method: K;
39
- };
40
- export type JsonRpcResponse<T> = {
41
- jsonrpc: JSONRPC;
47
+ }
48
+ export type JsonRpcResponse<T> = (JsonRpcMessage & {
42
49
  id: Id;
43
50
  result: T;
44
51
  error?: undefined;
45
- } | {
46
- jsonrpc: JSONRPC;
52
+ }) | (JsonRpcMessage & {
47
53
  id: Id;
48
54
  result?: undefined;
49
55
  error: LspErrorShape;
50
- };
51
- export type JsonRpcNotification<K, T> = {
52
- jsonrpc: JSONRPC;
56
+ });
57
+ export interface JsonRpcNotification<K, T> extends JsonRpcMessage {
53
58
  method: K;
54
59
  params: T;
55
- };
56
- export declare const makeRequest: <K extends keyof RequestMap>(id: Id, method: K, params: RequestMap[K][0]) => JsonRpcRequest<K, RequestMap[K][0]>;
57
- export declare const makeNotification: <K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K][0]) => JsonRpcNotification<K, ClientNotifMap[K][0]>;
60
+ }
61
+ export declare const makeRequest: <K extends keyof RequestMap>(id: Id, method: K, params: RequestMap[K]["fields"]["params"]) => JsonRpcRequest<K, RequestMap[K]["fields"]["params"]>;
62
+ export declare const makeNotification: <K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K]["fields"]["params"]) => JsonRpcNotification<K, ClientNotifMap[K]["fields"]["params"]>;
58
63
  export type ProgressPayload<T = any> = {
59
64
  token: ProgressToken;
60
65
  value: T;
@@ -76,5 +81,9 @@ export type WorkDoneProgressEnd = {
76
81
  kind: 'end';
77
82
  message?: string;
78
83
  };
84
+ export declare const isRpcMessage: (msg: unknown) => msg is JsonRpcMessage;
85
+ type RequestMapType = RequestMap & ClientNotifMap & ServerNotifMap;
86
+ export declare const isRpcRequestType: <K extends keyof RequestMapType>(method: K, msg: unknown) => msg is JsonRpcRequest<K, RequestMapType[K]["fields"]["params"]>;
87
+ export declare const isRpcResponseType: <K extends keyof RequestMapType = keyof RequestMapType>(msg: unknown, method?: K) => msg is JsonRpcResponse<RequestMapType[K]["response"]>;
79
88
  export {};
80
89
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/protocol.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,4 @@ export declare const toMonacoMarkers: (monacoApi: typeof monaco, diagnostics: Di
18
18
  export declare const toMonacoTextEdits: (edits: TextEdit[]) => monaco.languages.TextEdit[];
19
19
  /** Convert LSP Hover to Monaco Hover */
20
20
  export declare const lspHoverToMonaco: (hover: Hover) => monaco.languages.Hover;
21
- //# sourceMappingURL=util.d.ts.map
21
+ //# sourceMappingURL=transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/transform.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,QAAQ,EAER,KAAK,EACL,QAAQ,EACR,UAAU,EAEV,KAAK,EAGN,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAK5C,8DAA8D;AAC9D,eAAO,MAAM,sBAAsB,GACjC,WAAW,OAAO,MAAM,EACxB,MAAM,cAAc,KACnB,MAAM,CAAC,SAAS,CAAC,cA+BnB,CAAA;AAED,gEAAgE;AAChE,eAAO,MAAM,mBAAmB,GAAI,MAAM,MAAM,CAAC,SAAS,CAAC,cAAc,KAAG,cAsB3E,CAAA;AAED,iDAAiD;AACjD,eAAO,MAAM,2BAA2B,GACtC,YAAY,MAAM,CAAC,SAAS,CAAC,cAAc,EAC3C,iBAAiB,cAAc,KAC9B,MAAM,CAAC,SAAS,CAAC,cA4CnB,CAAA;AA4CD,6DAA6D;AAC7D,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,CAAC,MAAM,KAAG,KAWjD,CAAA;AAED,+CAA+C;AAC/C,eAAO,MAAM,gBAAgB,GAAI,UAAU,QAAQ,KAAG,MAAM,CAAC,SAK5D,CAAA;AAED,+CAA+C;AAC/C,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,CAAC,SAAS,KAAG,QAK1D,CAAA;AAED,4CAA4C;AAC5C,eAAO,MAAM,eAAe,GAAI,WAAW,OAAO,MAAM,EAAE,aAAa,UAAU,EAAE,KAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAoD9G,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,iBAAiB,GAAI,OAAO,QAAQ,EAAE,KAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAK9E,CAAA;AAED,wCAAwC;AACxC,eAAO,MAAM,gBAAgB,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,SAAS,CAAC,KAkChE,CAAA"}
@@ -51,20 +51,20 @@ export declare class LspTransport {
51
51
  /** Register a callback for all $/progress notifications */
52
52
  onProgressNotification(callback: (params: ProgressPayload) => void): this;
53
53
  /** Listen for a specific server notification method */
54
- onServerNotification<K extends keyof ServerNotifMap>(method: K, cb: (params: ServerNotifMap[K][0]) => void): this;
54
+ onServerNotification<K extends keyof ServerNotifMap>(method: K, cb: (params: ServerNotifMap[K]['fields']['params']) => void): this;
55
55
  /** Dispose all resources and reject in-flight requests */
56
56
  dispose(): void;
57
57
  /** Send a client-to-server notification (no response expected) */
58
- sendNotification<K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K][0]): this;
58
+ sendNotification<K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K]['fields']['params']): this;
59
59
  /** Send an async request with timeout, cancellation and progress support */
60
- sendRequest<K extends keyof RequestMap>(method: K, params: RequestMap[K][0], opts?: {
60
+ sendRequest<K extends keyof RequestMap>(method: K, params: RequestMap[K]['fields']['params'], opts?: {
61
61
  timeoutMs?: number;
62
62
  signal?: AbortSignal;
63
63
  workDoneToken?: ProgressToken;
64
64
  partialResultToken?: ProgressToken;
65
65
  onProgress?: ProgressHandler;
66
66
  onPartialResult?: PartialResultHandler;
67
- }): Promise<MaybeCancelled<RequestMap[K][1]>>;
67
+ }): Promise<MaybeCancelled<RequestMap[K]['response']>>;
68
68
  /** Subscribe to all inbound JSON-RPC messages */
69
69
  private subscribe;
70
70
  /** Ingest an incoming frame and dispatch to listeners/waiters */
@@ -1 +1 @@
1
- {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "monaco-lsp-bridge",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Lightweight Monaco–LSP bridge with JSON-RPC transport",
5
5
  "author": "Dan Beaven <dm.beaven@gmail.com>",
6
6
  "repository": {
@@ -19,6 +19,11 @@
19
19
  "types": "./lib/ts/index.d.ts",
20
20
  "import": "./lib/esm/index.js",
21
21
  "require": "./lib/cjs/index.js"
22
+ },
23
+ "./protocol": {
24
+ "types": "./lib/ts/protocol.d.ts",
25
+ "import": "./lib/esm/protocol.js",
26
+ "require": "./lib/cjs/protocol.js"
22
27
  }
23
28
  },
24
29
  "files": [
package/src/error.ts CHANGED
@@ -38,11 +38,12 @@ export const isCancellationError = (e: unknown) =>
38
38
  'code' in (e as any) &&
39
39
  ((e as any).code === LspErrorCode.RequestCancelled || (e as any).code === LspErrorCode.ServerCancelled)
40
40
 
41
- export const toLspError = (e: any): LspError =>
42
- e instanceof LspError
43
- ? e
44
- : new LspError({
45
- code: Number(e?.code ?? LspErrorCode.InternalError),
46
- message: String(e?.message ?? 'Error'),
47
- data: e?.data,
48
- })
41
+ export const toLspError = (e: any): LspError => {
42
+ if (e instanceof LspError) return e
43
+ if (typeof e === 'string') return new LspError({ code: LspErrorCode.InternalError, message: e })
44
+ return new LspError({
45
+ code: Number(e?.code ?? LspErrorCode.InternalError),
46
+ message: String(e?.message ?? 'Error'),
47
+ data: e?.data,
48
+ })
49
+ }
package/src/index.ts CHANGED
@@ -17,7 +17,7 @@ import {
17
17
  toMonacoMarkers,
18
18
  toMonacoTextEdits,
19
19
  lspHoverToMonaco,
20
- } from './util.js'
20
+ } from './transform.js'
21
21
  import { LspTransport, Transport } from './transport.js'
22
22
  import type { MaybeCancelled } from './transport.js'
23
23
  import { ProgressPayload } from './protocol.js'
package/src/protocol.ts CHANGED
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  DidChangeTextDocumentNotification,
3
3
  DidChangeTextDocumentParams,
4
4
  DidCloseTextDocumentParams,
@@ -32,53 +32,57 @@ import {
32
32
 
33
33
  import { LspErrorShape } from './error.js'
34
34
 
35
+ export const JSONRPC_VERSION = '2.0'
36
+ export type JSONRPC = typeof JSONRPC_VERSION
37
+
35
38
  export type Id = number | string
36
39
  export const isId = (id: unknown): id is Id => typeof id === 'number' || typeof id === 'string'
37
40
 
41
+ type RequestMapValue<P, R> = { fields: { params: P }; response: R }
42
+
38
43
  // Requests (bidirectional, have responses)
39
44
  export interface RequestMap {
40
- [InitializeRequest.method]: [InitializeParams, InitializeResult]
41
- [CompletionResolveRequest.method]: [CompletionItem, CompletionItem]
42
- [CompletionRequest.method]: [CompletionParams, CompletionList | CompletionItem[] | null]
43
- [DocumentFormattingRequest.method]: [DocumentFormattingParams, TextEdit[] | null]
44
- [DocumentRangeFormattingRequest.method]: [DocumentRangeFormattingParams, TextEdit[] | null]
45
- [DocumentOnTypeFormattingRequest.method]: [DocumentOnTypeFormattingParams, TextEdit[] | null]
46
- [HoverRequest.method]: [HoverParams, Hover | null]
47
- shutdown: [null, null]
45
+ [InitializeRequest.method]: RequestMapValue<InitializeParams, InitializeResult>
46
+ [CompletionResolveRequest.method]: RequestMapValue<CompletionItem, CompletionItem>
47
+ [CompletionRequest.method]: RequestMapValue<CompletionParams, CompletionList | CompletionItem[] | null>
48
+ [DocumentFormattingRequest.method]: RequestMapValue<DocumentFormattingParams, TextEdit[] | null>
49
+ [DocumentRangeFormattingRequest.method]: RequestMapValue<DocumentRangeFormattingParams, TextEdit[] | null>
50
+ [DocumentOnTypeFormattingRequest.method]: RequestMapValue<DocumentOnTypeFormattingParams, TextEdit[] | null>
51
+ [HoverRequest.method]: RequestMapValue<HoverParams, Hover | null>
52
+ shutdown: RequestMapValue<null, null>
48
53
  }
49
54
 
50
55
  // Client-to-server notifications (no response expected)
51
56
  export interface ClientNotifMap {
52
- [DidOpenTextDocumentNotification.method]: [DidOpenTextDocumentParams, void]
53
- [DidChangeTextDocumentNotification.method]: [DidChangeTextDocumentParams, void]
54
- [DidCloseTextDocumentNotification.method]: [DidCloseTextDocumentParams, void]
55
- '$/cancelRequest': [{ id: Id }, void]
56
- exit: [null, void]
57
+ [DidOpenTextDocumentNotification.method]: RequestMapValue<DidOpenTextDocumentParams, void>
58
+ [DidChangeTextDocumentNotification.method]: RequestMapValue<DidChangeTextDocumentParams, void>
59
+ [DidCloseTextDocumentNotification.method]: RequestMapValue<DidCloseTextDocumentParams, void>
60
+ '$/cancelRequest': RequestMapValue<{ id: Id }, void>
61
+ exit: RequestMapValue<null, void>
57
62
  }
58
63
 
59
64
  // Server-to-client notifications (no response expected)
60
65
  export interface ServerNotifMap {
61
- '$/progress': [{ token: ProgressToken; value: any }, void]
62
- [PublishDiagnosticsNotification.method]: [PublishDiagnosticsParams, void]
63
- [LogMessageNotification.method]: [LogMessageParams, void]
66
+ '$/progress': RequestMapValue<{ token: ProgressToken; value: any }, void>
67
+ [PublishDiagnosticsNotification.method]: RequestMapValue<PublishDiagnosticsParams, void>
68
+ [LogMessageNotification.method]: RequestMapValue<LogMessageParams, void>
64
69
  }
65
70
 
66
- export const JSONRPC_VERSION = '2.0'
67
- type JSONRPC = typeof JSONRPC_VERSION
68
-
69
- export type JsonRpcRequest<K, T> = {
71
+ export interface JsonRpcMessage {
70
72
  jsonrpc: JSONRPC
73
+ }
74
+
75
+ export interface JsonRpcRequest<K, T> extends JsonRpcMessage {
71
76
  id: Id
72
77
  params: T
73
78
  method: K
74
79
  }
75
80
 
76
81
  export type JsonRpcResponse<T> =
77
- | { jsonrpc: JSONRPC; id: Id; result: T; error?: undefined }
78
- | { jsonrpc: JSONRPC; id: Id; result?: undefined; error: LspErrorShape }
82
+ | (JsonRpcMessage & { id: Id; result: T; error?: undefined })
83
+ | (JsonRpcMessage & { id: Id; result?: undefined; error: LspErrorShape })
79
84
 
80
- export type JsonRpcNotification<K, T> = {
81
- jsonrpc: JSONRPC
85
+ export interface JsonRpcNotification<K, T> extends JsonRpcMessage {
82
86
  method: K
83
87
  params: T
84
88
  }
@@ -86,8 +90,8 @@ export type JsonRpcNotification<K, T> = {
86
90
  export const makeRequest = <K extends keyof RequestMap>(
87
91
  id: Id,
88
92
  method: K,
89
- params: RequestMap[K][0],
90
- ): JsonRpcRequest<K, RequestMap[K][0]> => ({
93
+ params: RequestMap[K]['fields']['params'],
94
+ ): JsonRpcRequest<K, RequestMap[K]['fields']['params']> => ({
91
95
  jsonrpc: JSONRPC_VERSION,
92
96
  id,
93
97
  method,
@@ -96,8 +100,8 @@ export const makeRequest = <K extends keyof RequestMap>(
96
100
 
97
101
  export const makeNotification = <K extends keyof ClientNotifMap>(
98
102
  method: K,
99
- params: ClientNotifMap[K][0],
100
- ): JsonRpcNotification<K, ClientNotifMap[K][0]> => ({
103
+ params: ClientNotifMap[K]['fields']['params'],
104
+ ): JsonRpcNotification<K, ClientNotifMap[K]['fields']['params']> => ({
101
105
  jsonrpc: JSONRPC_VERSION,
102
106
  method,
103
107
  params,
@@ -127,3 +131,29 @@ export type WorkDoneProgressEnd = {
127
131
  kind: 'end'
128
132
  message?: string
129
133
  }
134
+
135
+ export const isRpcMessage = (msg: unknown): msg is JsonRpcMessage => {
136
+ if (typeof msg !== 'object' || msg === null) return false
137
+ if (!('jsonrpc' in msg) || msg.jsonrpc !== JSONRPC_VERSION) return false
138
+ return true
139
+ }
140
+
141
+ type RequestMapType = RequestMap & ClientNotifMap & ServerNotifMap
142
+ export const isRpcRequestType = <K extends keyof RequestMapType>(
143
+ method: K,
144
+ msg: unknown,
145
+ ): msg is JsonRpcRequest<K, RequestMapType[K]['fields']['params']> => {
146
+ if (!isRpcMessage(msg)) return false
147
+ if ((msg as any).method !== method) return false
148
+ return true
149
+ }
150
+
151
+ export const isRpcResponseType = <K extends keyof RequestMapType = keyof RequestMapType>(
152
+ msg: unknown,
153
+ method?: K,
154
+ ): msg is JsonRpcResponse<RequestMapType[K]['response']> => {
155
+ if (!isRpcMessage(msg)) return false
156
+ if (!Object.prototype.hasOwnProperty.call(msg, 'id') || !isId((msg as any).id)) return false
157
+ if (method && (msg as any).method !== method) return false
158
+ return true
159
+ }
package/src/transport.ts CHANGED
@@ -2,7 +2,6 @@ import type { ProgressToken } from 'vscode-languageserver-protocol'
2
2
  import type * as monaco from 'monaco-editor'
3
3
 
4
4
  import {
5
- JSONRPC_VERSION,
6
5
  makeRequest,
7
6
  makeNotification,
8
7
  JsonRpcRequest,
@@ -12,8 +11,10 @@ import {
12
11
  JsonRpcResponse,
13
12
  JsonRpcNotification,
14
13
  ProgressPayload,
14
+ isRpcMessage,
15
+ isRpcRequestType,
16
+ isRpcResponseType,
15
17
  Id,
16
- isId,
17
18
  } from './protocol.js'
18
19
  import { LspError, LspErrorCode, toLspError, isCancellationError } from './error.js'
19
20
 
@@ -96,7 +97,6 @@ export class LspTransport {
96
97
  /** Listen for error responses and forward normalized errors */
97
98
  onError(cb: (error: LspError) => void) {
98
99
  const onMessage = (res: JsonRpcResponse<any>) => {
99
- if (res?.jsonrpc !== JSONRPC_VERSION) return
100
100
  if (res?.error) cb(toLspError(res.error))
101
101
  }
102
102
  this.disposables.add(this.subscribe(onMessage))
@@ -112,7 +112,7 @@ export class LspTransport {
112
112
  /** Register a callback for all $/progress notifications */
113
113
  onProgressNotification(callback: (params: ProgressPayload) => void) {
114
114
  const onMessage = (msg: any) => {
115
- if (msg?.jsonrpc !== JSONRPC_VERSION || msg?.method !== '$/progress') return
115
+ if (msg?.method !== '$/progress') return
116
116
  if (msg.params) callback(msg.params)
117
117
  }
118
118
  this.disposables.add(this.subscribe(onMessage))
@@ -120,10 +120,13 @@ export class LspTransport {
120
120
  }
121
121
 
122
122
  /** Listen for a specific server notification method */
123
- onServerNotification<K extends keyof ServerNotifMap>(method: K, cb: (params: ServerNotifMap[K][0]) => void) {
123
+ onServerNotification<K extends keyof ServerNotifMap>(
124
+ method: K,
125
+ cb: (params: ServerNotifMap[K]['fields']['params']) => void,
126
+ ) {
124
127
  const onMessage = (msg: any) => {
125
- if (msg?.jsonrpc !== JSONRPC_VERSION || msg?.method !== method) return
126
- cb(msg.params as ServerNotifMap[K][0])
128
+ if (msg?.method !== method) return
129
+ cb(msg.params as ServerNotifMap[K]['fields']['params'])
127
130
  }
128
131
  this.disposables.add(this.subscribe(onMessage))
129
132
  return this
@@ -152,7 +155,7 @@ export class LspTransport {
152
155
  // -------- Core API
153
156
 
154
157
  /** Send a client-to-server notification (no response expected) */
155
- sendNotification<K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K][0]) {
158
+ sendNotification<K extends keyof ClientNotifMap>(method: K, params: ClientNotifMap[K]['fields']['params']) {
156
159
  this.sender(makeNotification(method, params))
157
160
  return this
158
161
  }
@@ -160,7 +163,7 @@ export class LspTransport {
160
163
  /** Send an async request with timeout, cancellation and progress support */
161
164
  sendRequest<K extends keyof RequestMap>(
162
165
  method: K,
163
- params: RequestMap[K][0],
166
+ params: RequestMap[K]['fields']['params'],
164
167
  opts?: {
165
168
  timeoutMs?: number
166
169
  signal?: AbortSignal
@@ -169,7 +172,7 @@ export class LspTransport {
169
172
  onProgress?: ProgressHandler
170
173
  onPartialResult?: PartialResultHandler
171
174
  },
172
- ): Promise<MaybeCancelled<RequestMap[K][1]>> {
175
+ ): Promise<MaybeCancelled<RequestMap[K]['response']>> {
173
176
  const id = this.nextId++
174
177
 
175
178
  // Generate tokens if callbacks provided but tokens not specified
@@ -203,7 +206,7 @@ export class LspTransport {
203
206
 
204
207
  this.sender(m)
205
208
 
206
- return new Promise<MaybeCancelled<RequestMap[K][1]>>((resolve, reject) => {
209
+ return new Promise<MaybeCancelled<RequestMap[K]['response']>>((resolve, reject) => {
207
210
  const resolveCancelled = (code: LspErrorCode.RequestCancelled | LspErrorCode.ServerCancelled) => {
208
211
  cleanup()
209
212
  resolve({ cancelled: true, code })
@@ -292,11 +295,11 @@ export class LspTransport {
292
295
  }
293
296
 
294
297
  // Early drop anything that isn't a proper JSON-RPC 2.0 message
295
- if (!raw || typeof raw !== 'object' || raw.jsonrpc !== JSONRPC_VERSION) return
298
+ if (!isRpcMessage(raw)) return
296
299
 
297
300
  // Handle $/progress notifications
298
- if (raw.method === '$/progress' && raw.params) {
299
- const params = raw.params as ProgressPayload
301
+ if (isRpcRequestType('$/progress', raw)) {
302
+ const params = raw.params
300
303
  const callback = this.progressCallbacks.get(params.token)
301
304
  if (callback) {
302
305
  try {
@@ -312,18 +315,14 @@ export class LspTransport {
312
315
  }
313
316
 
314
317
  // If it's a response with an id and a waiting promise, resolve that first
315
- if (Object.prototype.hasOwnProperty.call(raw, 'id')) {
316
- const id = raw.id as Id
317
- if (isId(id)) {
318
- const waiter = this.waiters.get(id)
319
- if (waiter) {
320
- // Claim and stop propagation to generic handlers
321
- this.waiters.delete(id)
322
- try {
323
- waiter(raw)
324
- } catch {}
325
- return
326
- }
318
+ if (isRpcResponseType(raw)) {
319
+ const waiter = this.waiters.get(raw.id)
320
+ if (waiter) {
321
+ // Claim and stop propagation to generic handlers
322
+ this.waiters.delete(raw.id)
323
+ try {
324
+ waiter(raw)
325
+ } catch {}
327
326
  }
328
327
  }
329
328