@lspeasy/core 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/dist/index.d.ts +44 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +44 -1
  4. package/dist/index.js.map +1 -1
  5. package/dist/jsonrpc/framing.d.ts +28 -3
  6. package/dist/jsonrpc/framing.d.ts.map +1 -1
  7. package/dist/jsonrpc/framing.js +28 -3
  8. package/dist/jsonrpc/framing.js.map +1 -1
  9. package/dist/jsonrpc/messages.d.ts +105 -8
  10. package/dist/jsonrpc/messages.d.ts.map +1 -1
  11. package/dist/jsonrpc/messages.js +36 -0
  12. package/dist/jsonrpc/messages.js.map +1 -1
  13. package/dist/jsonrpc/reader.js.map +1 -1
  14. package/dist/jsonrpc/writer.d.ts +3 -0
  15. package/dist/jsonrpc/writer.d.ts.map +1 -1
  16. package/dist/jsonrpc/writer.js.map +1 -1
  17. package/dist/middleware/compose.d.ts +22 -0
  18. package/dist/middleware/compose.d.ts.map +1 -1
  19. package/dist/middleware/compose.js +22 -0
  20. package/dist/middleware/compose.js.map +1 -1
  21. package/dist/middleware/pipeline.d.ts +22 -0
  22. package/dist/middleware/pipeline.d.ts.map +1 -1
  23. package/dist/middleware/pipeline.js +22 -0
  24. package/dist/middleware/pipeline.js.map +1 -1
  25. package/dist/middleware/scoped.d.ts +28 -0
  26. package/dist/middleware/scoped.d.ts.map +1 -1
  27. package/dist/middleware/scoped.js +28 -0
  28. package/dist/middleware/scoped.js.map +1 -1
  29. package/dist/middleware/typed.d.ts +30 -0
  30. package/dist/middleware/typed.d.ts.map +1 -1
  31. package/dist/middleware/typed.js +30 -0
  32. package/dist/middleware/typed.js.map +1 -1
  33. package/dist/middleware/types.d.ts +173 -0
  34. package/dist/middleware/types.d.ts.map +1 -1
  35. package/dist/protocol/capabilities.d.ts +78 -12
  36. package/dist/protocol/capabilities.d.ts.map +1 -1
  37. package/dist/protocol/capabilities.js +78 -12
  38. package/dist/protocol/capabilities.js.map +1 -1
  39. package/dist/protocol/capability-methods.d.ts +70 -2
  40. package/dist/protocol/capability-methods.d.ts.map +1 -1
  41. package/dist/protocol/capability-methods.js +8 -0
  42. package/dist/protocol/capability-methods.js.map +1 -1
  43. package/dist/protocol/dynamic-registration.d.ts +34 -2
  44. package/dist/protocol/dynamic-registration.d.ts.map +1 -1
  45. package/dist/protocol/dynamic-registration.js +16 -2
  46. package/dist/protocol/dynamic-registration.js.map +1 -1
  47. package/dist/protocol/enums.js +40 -80
  48. package/dist/protocol/enums.js.map +1 -1
  49. package/dist/protocol/infer.d.ts +92 -4
  50. package/dist/protocol/infer.d.ts.map +1 -1
  51. package/dist/protocol/infer.js +46 -4
  52. package/dist/protocol/infer.js.map +1 -1
  53. package/dist/protocol/namespaces.d.ts +327 -327
  54. package/dist/protocol/namespaces.d.ts.map +1 -1
  55. package/dist/protocol/partial-results.d.ts +6 -0
  56. package/dist/protocol/partial-results.d.ts.map +1 -1
  57. package/dist/protocol/partial.d.ts +12 -3
  58. package/dist/protocol/partial.d.ts.map +1 -1
  59. package/dist/protocol/partial.js +12 -3
  60. package/dist/protocol/partial.js.map +1 -1
  61. package/dist/protocol/progress.d.ts +34 -4
  62. package/dist/protocol/progress.d.ts.map +1 -1
  63. package/dist/protocol/progress.js +34 -4
  64. package/dist/protocol/progress.js.map +1 -1
  65. package/dist/protocol/schemas.d.ts +4 -1
  66. package/dist/protocol/schemas.d.ts.map +1 -1
  67. package/dist/protocol/schemas.js +4 -1
  68. package/dist/protocol/schemas.js.map +1 -1
  69. package/dist/protocol/watching.d.ts +18 -7
  70. package/dist/protocol/watching.d.ts.map +1 -1
  71. package/dist/protocol/watching.js +14 -3
  72. package/dist/protocol/watching.js.map +1 -1
  73. package/dist/protocol/workspace.d.ts +10 -2
  74. package/dist/protocol/workspace.d.ts.map +1 -1
  75. package/dist/protocol/workspace.js +10 -2
  76. package/dist/protocol/workspace.js.map +1 -1
  77. package/dist/transport/dedicated-worker.js.map +1 -1
  78. package/dist/transport/events.js.map +1 -1
  79. package/dist/transport/ipc.js.map +1 -1
  80. package/dist/transport/shared-worker.js.map +1 -1
  81. package/dist/transport/stdio.js.map +1 -1
  82. package/dist/transport/tcp.js.map +1 -1
  83. package/dist/transport/transport.d.ts +91 -10
  84. package/dist/transport/transport.d.ts.map +1 -1
  85. package/dist/transport/websocket.d.ts +120 -19
  86. package/dist/transport/websocket.d.ts.map +1 -1
  87. package/dist/transport/websocket.js +95 -8
  88. package/dist/transport/websocket.js.map +1 -1
  89. package/dist/transport/worker-types.d.ts +16 -2
  90. package/dist/transport/worker-types.d.ts.map +1 -1
  91. package/dist/transport/worker-types.js +12 -2
  92. package/dist/transport/worker-types.js.map +1 -1
  93. package/dist/utils/cancellation.d.ts +75 -5
  94. package/dist/utils/cancellation.d.ts.map +1 -1
  95. package/dist/utils/cancellation.js +29 -1
  96. package/dist/utils/cancellation.js.map +1 -1
  97. package/dist/utils/capability-guard.d.ts +32 -1
  98. package/dist/utils/capability-guard.d.ts.map +1 -1
  99. package/dist/utils/capability-guard.js +32 -1
  100. package/dist/utils/capability-guard.js.map +1 -1
  101. package/dist/utils/disposable-event-emitter.d.ts +11 -0
  102. package/dist/utils/disposable-event-emitter.d.ts.map +1 -1
  103. package/dist/utils/disposable-event-emitter.js +11 -0
  104. package/dist/utils/disposable-event-emitter.js.map +1 -1
  105. package/dist/utils/disposable.d.ts +42 -3
  106. package/dist/utils/disposable.d.ts.map +1 -1
  107. package/dist/utils/disposable.js +34 -2
  108. package/dist/utils/disposable.js.map +1 -1
  109. package/dist/utils/document.d.ts +78 -3
  110. package/dist/utils/document.d.ts.map +1 -1
  111. package/dist/utils/document.js +73 -3
  112. package/dist/utils/document.js.map +1 -1
  113. package/dist/utils/errors.d.ts +87 -10
  114. package/dist/utils/errors.d.ts.map +1 -1
  115. package/dist/utils/errors.js +87 -10
  116. package/dist/utils/errors.js.map +1 -1
  117. package/dist/utils/handler-registry.js.map +1 -1
  118. package/dist/utils/logger.d.ts +79 -4
  119. package/dist/utils/logger.d.ts.map +1 -1
  120. package/dist/utils/logger.js +64 -5
  121. package/dist/utils/logger.js.map +1 -1
  122. package/dist/utils/pending-request-tracker.d.ts.map +1 -1
  123. package/dist/utils/pending-request-tracker.js.map +1 -1
  124. package/dist/utils/transport-attachment.js.map +1 -1
  125. package/package.json +6 -7
@@ -1 +1 @@
1
- {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../src/transport/websocket.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAqB5C,MAAM,sBAAsB,GAAG,CAAC,CAAC;AACjC,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAyD3B,SAAS,kBAAkB,CAAC,MAAqB;IAC/C,OAAO,OAAO,MAAM,CAAC,EAAE,KAAK,UAAU,CAAC;AACzC,CAAC;AAED,SAAS,sBAAsB;IAC7B,IAAI,OAAO,UAAU,CAAC,SAAS,KAAK,WAAW,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC;IAClC,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,GAAG,CAA6B,CAAC;AACpE,CAAC;AAED,SAAS,kBAAkB;IACzB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAEQ,CAAC;QAEzC,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACtC,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,WAAW,CAAC,SAAS,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAW,EAAE,EAAE,CAAC,IAAI,WAAW,CAAC,SAAU,CAAC,GAAG,CAAC,CAAC;QAC1D,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;IAC5C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,MAAM,MAAM,GAAG,kBAAkB,EAAE,CAAC;IACpC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CACb,oIAAoI,CACrI,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAa;IACzC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;IACrC,CAAC;IAED,IAAI,IAAI,YAAY,UAAU,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;IACnE,CAAC;IAED,IAAI,IAAI,YAAY,WAAW,EAAE,CAAC;QAChC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;IACnE,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY,CAAC;IACtD,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmEG;AACH,MAAM,OAAO,kBAAkB;IACrB,MAAM,CAAgB;IACtB,SAAS,GAAY,KAAK,CAAC;IAC3B,eAAe,GAAoC,IAAI,GAAG,EAAE,CAAC;IAC7D,aAAa,GAAgC,IAAI,GAAG,EAAE,CAAC;IACvD,aAAa,GAAoB,IAAI,GAAG,EAAE,CAAC;IAEnD,qBAAqB;IACJ,IAAI,CAAsB;IAC1B,GAAG,CAAqB;IACxB,eAAe,CAAU;IACzB,oBAAoB,CAAS;IAC7B,cAAc,CAAS;IACvB,iBAAiB,CAAS;IAC1B,0BAA0B,CAAS;IAC5C,iBAAiB,GAAW,CAAC,CAAC;IAC9B,cAAc,CAA6B;IAC3C,mBAAmB,GAAY,KAAK,CAAC;IAE7C,YAAY,OAAkC;QAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpC,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC3D,CAAC;QAED,IAAI,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;QACxD,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC;QACjD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,eAAe,GAAG,OAAO,CAAC,eAAe,IAAI,KAAK,CAAC;QACxD,IAAI,CAAC,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC;QAC9D,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,cAAc,IAAI,IAAI,CAAC;QACrD,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,KAAK,CAAC;QAC5D,IAAI,CAAC,0BAA0B,GAAG,OAAO,CAAC,0BAA0B,IAAI,CAAC,CAAC;QAE1E,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAI,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,WAAW;QACjB,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,EAAG,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM,CAAC,EAAG,CAAC,SAAS,EAAE,CAAC,IAAqB,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;YACpF,IAAI,CAAC,MAAM,CAAC,EAAG,CAAC,OAAO,EAAE,CAAC,KAAY,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,MAAM,CAAC,EAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,CAAC,KAAuB,EAAE,EAAE;YACpE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,CAAC,KAAqB,EAAE,EAAE;YAChE,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;YACxF,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IACpE,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAa;QACrC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;YAC3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBAC3C,IAAI,CAAC;oBACH,OAAO,CAAC,OAAO,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,wEAAwE;gBAC1E,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,CAAC,4BAA4B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAEO,WAAW;QACjB,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QAED,IACE,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,eAAe;YACpB,CAAC,IAAI,CAAC,mBAAmB;YACzB,YAAY;YACZ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAClD,CAAC;YACD,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3B,CAAC;IACH,CAAC;IAED;;OAEG;IACK,iBAAiB;QACvB,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,MAAM,SAAS,GACb,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,EAAE,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC;QAC9F,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAE1D,IAAI,CAAC,cAAc,GAAG,UAAU,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;YAChC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC1B,CAAC,EAAE,KAAK,CAAC,CAAC;IACZ,CAAC;IAED;;OAEG;IACK,gBAAgB;QACtB,IAAI,IAAI,CAAC,mBAAmB,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;YAC1C,OAAO;QACT,CAAC;QAED,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,WAAW,EAAE,CAAC;QACrB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,WAAW,CACd,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,iBAAiB,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CACnF,CAAC;YAEF,IAAI,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,oBAAoB,EAAE,CAAC;gBACvD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACK,WAAW,CAAC,KAAY;QAC9B,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACzC,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,CAAC,CAAC;YACjB,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAC,OAAgB;QACzB,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB,EAAE,CAAC;YACnE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAErC,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAa,EAAE,EAAE;oBACvC,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;wBAC9D,OAAO;oBACT,CAAC;oBACD,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,EAAE,CAAC;YACZ,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,GAAG,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtE,MAAM,CAAC,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,OAAmC;QAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAElC,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACvC,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,OAA+B;QACrC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,OAAmB;QACzB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO;YACL,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;QAEhC,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAClC,IAAI,CAAC,cAAc,GAAG,SAAS,CAAC;QAClC,CAAC;QAED,IACE,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB;YAC3C,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,sBAAsB,EACjD,CAAC;YACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7B,MAAM,OAAO,GAAG,GAAG,EAAE;oBACnB,OAAO,EAAE,CAAC;gBACZ,CAAC,CAAC;gBAEF,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAqB,CAAC,CAAC;gBACjE,CAAC;gBAED,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED;;OAEG;IACH,WAAW;QACT,OAAO,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,UAAU,KAAK,gBAAgB,CAAC;IACvE,CAAC;IAED;;;;OAIG;IACH,oBAAoB;QAClB,OAAO,IAAI,CAAC,iBAAiB,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,kBAAkB;QAChB,OAAO,IAAI,CAAC,eAAe,CAAC;IAC9B,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
1
  import type { Message } from '../jsonrpc/messages.js';
2
2
  /** Lightweight event shape shared by worker and message port adapters. */
3
3
  export interface WorkerMessageEventLike {
4
+ /** The raw payload received from the worker or message port. */
4
5
  data: unknown;
5
6
  }
6
7
  /** Minimal worker contract required by dedicated worker transport. */
@@ -26,15 +27,28 @@ export interface MessagePortLike {
26
27
  }
27
28
  /** Shared worker wrapper exposing a message port. */
28
29
  export interface SharedWorkerLike {
30
+ /** The dedicated message port for communicating with this shared worker. */
29
31
  port: MessagePortLike;
30
32
  }
31
33
  /** Envelope used by shared worker transport to preserve client isolation. */
32
34
  export interface WorkerTransportEnvelope {
35
+ /** Unique identifier for the client connection that sent or should receive this message. */
33
36
  clientId: string;
37
+ /** The JSON-RPC message payload. */
34
38
  message: Message;
35
39
  }
36
- /** Runtime guard for JSON-RPC message envelopes. */
40
+ /**
41
+ * Runtime guard for JSON-RPC message envelopes.
42
+ *
43
+ * @param value - The unknown value to test.
44
+ * @returns `true` when `value` is an object with `jsonrpc: "2.0"`.
45
+ */
37
46
  export declare function isMessage(value: unknown): value is Message;
38
- /** Runtime guard for shared worker transport envelope payloads. */
47
+ /**
48
+ * Runtime guard for shared worker transport envelope payloads.
49
+ *
50
+ * @param value - The unknown value to test.
51
+ * @returns `true` when `value` is a `WorkerTransportEnvelope` with a valid `clientId` and `message`.
52
+ */
39
53
  export declare function isWorkerTransportEnvelope(value: unknown): value is WorkerTransportEnvelope;
40
54
  //# sourceMappingURL=worker-types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-types.d.ts","sourceRoot":"","sources":["../../src/transport/worker-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,OAAO,CAAC;CACf;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3F,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1E,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9F,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,SAAS,CAAC,IAAI,IAAI,CAAC;CACpB;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3F,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1E,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9F,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACpF,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,oDAAoD;AACpD,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAO1D;AAED,mEAAmE;AACnE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAO1F"}
1
+ {"version":3,"file":"worker-types.d.ts","sourceRoot":"","sources":["../../src/transport/worker-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEtD,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,gEAAgE;IAChE,IAAI,EAAE,OAAO,CAAC;CACf;AAED,sEAAsE;AACtE,MAAM,WAAW,UAAU;IACzB,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3F,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1E,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9F,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,SAAS,CAAC,IAAI,IAAI,CAAC;CACpB;AAED,yEAAyE;AACzE,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACpC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC3F,gBAAgB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACjF,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC1E,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,GAAG,IAAI,CAAC;IAC9F,mBAAmB,CAAC,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IACpF,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAC;IAC7E,KAAK,CAAC,IAAI,IAAI,CAAC;IACf,KAAK,CAAC,IAAI,IAAI,CAAC;CAChB;AAED,qDAAqD;AACrD,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,6EAA6E;AAC7E,MAAM,WAAW,uBAAuB;IACtC,4FAA4F;IAC5F,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAO1D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,uBAAuB,CAO1F"}
@@ -1,4 +1,9 @@
1
- /** Runtime guard for JSON-RPC message envelopes. */
1
+ /**
2
+ * Runtime guard for JSON-RPC message envelopes.
3
+ *
4
+ * @param value - The unknown value to test.
5
+ * @returns `true` when `value` is an object with `jsonrpc: "2.0"`.
6
+ */
2
7
  export function isMessage(value) {
3
8
  if (typeof value !== 'object' || value === null) {
4
9
  return false;
@@ -6,7 +11,12 @@ export function isMessage(value) {
6
11
  const candidate = value;
7
12
  return candidate['jsonrpc'] === '2.0';
8
13
  }
9
- /** Runtime guard for shared worker transport envelope payloads. */
14
+ /**
15
+ * Runtime guard for shared worker transport envelope payloads.
16
+ *
17
+ * @param value - The unknown value to test.
18
+ * @returns `true` when `value` is a `WorkerTransportEnvelope` with a valid `clientId` and `message`.
19
+ */
10
20
  export function isWorkerTransportEnvelope(value) {
11
21
  if (typeof value !== 'object' || value === null) {
12
22
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"worker-types.js","sourceRoot":"","sources":["../../src/transport/worker-types.ts"],"names":[],"mappings":"AAyCA,oDAAoD;AACpD,MAAM,UAAU,SAAS,CAAC,KAAc,EAAoB;IAC1D,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;AAAA,CACvC;AAED,mEAAmE;AACnE,MAAM,UAAU,yBAAyB,CAAC,KAAc,EAAoC;IAC1F,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AAAA,CACrF"}
1
+ {"version":3,"file":"worker-types.js","sourceRoot":"","sources":["../../src/transport/worker-types.ts"],"names":[],"mappings":"AA6CA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,SAAS,CAAC,SAAS,CAAC,KAAK,KAAK,CAAC;AACxC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,KAAc;IACtD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,KAAgC,CAAC;IACnD,OAAO,OAAO,SAAS,CAAC,UAAU,CAAC,KAAK,QAAQ,IAAI,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC;AACtF,CAAC"}
@@ -4,21 +4,91 @@
4
4
  */
5
5
  import type { Disposable } from './disposable.js';
6
6
  /**
7
- * Token that can be used to signal cancellation
7
+ * Read-only handle for observing cancellation state.
8
+ *
9
+ * @remarks
10
+ * Pass a `CancellationToken` to long-running request handlers so they can
11
+ * honour client-initiated cancellation (`$/cancelRequest` notification).
12
+ * The token's `isCancellationRequested` property changes from `false` to
13
+ * `true` exactly once; it never resets.
14
+ *
15
+ * Use `CancellationTokenNone` (exported as a constant) when no cancellation
16
+ * support is needed — it is a singleton that is never cancelled.
17
+ *
18
+ * @useWhen
19
+ * You are implementing a `RequestHandler` that performs async work (file I/O,
20
+ * database queries, tree-sitter parsing) and want to stop early when the
21
+ * client cancels.
22
+ *
23
+ * @avoidWhen
24
+ * The handler is synchronous and returns in less than a few milliseconds.
25
+ * Polling `isCancellationRequested` in a tight loop has negligible benefit.
26
+ *
27
+ * @never
28
+ * NEVER ignore the cancellation token on long-running requests. If a client
29
+ * sends `$/cancelRequest` and the server does not stop processing, the client
30
+ * times out and receives no usable feedback. Always check
31
+ * `token.isCancellationRequested` at async yield points.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * import { LSPServer } from '@lspeasy/server';
36
+ *
37
+ * const server = new LSPServer();
38
+ * server.onRequest('textDocument/hover', async (params, token) => {
39
+ * const lines = await readLargeFile(params.textDocument.uri);
40
+ * if (token.isCancellationRequested) return null;
41
+ *
42
+ * // ... compute hover
43
+ * return { contents: { kind: 'plaintext', value: 'info' } };
44
+ * });
45
+ * ```
46
+ *
47
+ * @category Lifecycle
8
48
  */
9
49
  export interface CancellationToken {
10
50
  /**
11
- * Check if cancellation has been requested
51
+ * `true` once cancellation has been requested; never resets to `false`.
12
52
  */
13
53
  readonly isCancellationRequested: boolean;
14
54
  /**
15
- * Register callback to be called when cancellation is requested
16
- * @returns Disposable to unregister the callback
55
+ * Registers a callback invoked when (or immediately if already) cancelled.
56
+ *
57
+ * @param callback - Called when cancellation is requested.
58
+ * @returns A `Disposable` to unregister the callback.
17
59
  */
18
60
  onCancellationRequested(callback: () => void): Disposable;
19
61
  }
20
62
  /**
21
- * Source that controls a CancellationToken
63
+ * Controller that creates and manages a `CancellationToken`.
64
+ *
65
+ * @remarks
66
+ * Holds the mutable end of the cancellation pair: call `.cancel()` to signal
67
+ * cancellation; pass `.token` (read-only) to handlers and async operations.
68
+ * Always call `.dispose()` when the operation completes to free internal
69
+ * event-emitter resources, regardless of whether cancellation was requested.
70
+ *
71
+ * @example
72
+ * ```ts
73
+ * import { CancellationTokenSource } from '@lspeasy/core';
74
+ * import { LSPClient } from '@lspeasy/client';
75
+ *
76
+ * const source = new CancellationTokenSource();
77
+ * const promise = client.sendRequest('textDocument/hover', params, source.token);
78
+ *
79
+ * // Cancel from user interaction
80
+ * cancelButton.addEventListener('click', () => source.cancel());
81
+ *
82
+ * try {
83
+ * const result = await promise;
84
+ * } catch {
85
+ * // Cancelled
86
+ * } finally {
87
+ * source.dispose();
88
+ * }
89
+ * ```
90
+ *
91
+ * @category Lifecycle
22
92
  */
23
93
  export declare class CancellationTokenSource {
24
94
  private emitter;
@@ -1 +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;AAMD;;GAEG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,cAyBC;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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,QAAQ,CAAC,uBAAuB,EAAE,OAAO,CAAC;IAE1C;;;;;OAKG;IACH,uBAAuB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,UAAU,CAAC;CAC3D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,uBAAuB;IAClC,OAAO,CAAC,OAAO,CAA+C;IAC9D,OAAO,CAAC,SAAS,CAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAE3C,cAyBC;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;IAC5B,IAAI,EAMC,iBAAiB;CACvB,CAAC"}
@@ -4,7 +4,35 @@
4
4
  */
5
5
  import { DisposableEventEmitter } from './disposable-event-emitter.js';
6
6
  /**
7
- * Source that controls a CancellationToken
7
+ * Controller that creates and manages a `CancellationToken`.
8
+ *
9
+ * @remarks
10
+ * Holds the mutable end of the cancellation pair: call `.cancel()` to signal
11
+ * cancellation; pass `.token` (read-only) to handlers and async operations.
12
+ * Always call `.dispose()` when the operation completes to free internal
13
+ * event-emitter resources, regardless of whether cancellation was requested.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * import { CancellationTokenSource } from '@lspeasy/core';
18
+ * import { LSPClient } from '@lspeasy/client';
19
+ *
20
+ * const source = new CancellationTokenSource();
21
+ * const promise = client.sendRequest('textDocument/hover', params, source.token);
22
+ *
23
+ * // Cancel from user interaction
24
+ * cancelButton.addEventListener('click', () => source.cancel());
25
+ *
26
+ * try {
27
+ * const result = await promise;
28
+ * } catch {
29
+ * // Cancelled
30
+ * } finally {
31
+ * source.dispose();
32
+ * }
33
+ * ```
34
+ *
35
+ * @category Lifecycle
8
36
  */
9
37
  export class CancellationTokenSource {
10
38
  emitter;
@@ -1 +1 @@
1
- {"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../src/utils/cancellation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAuBvE;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAC1B,OAAO,CAA+C;IACtD,SAAS,CAAU;IACV,MAAM,CAAoB;IAE3C,cAAc;QACZ,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC5C,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,oEAAoE;oBACpE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAClD,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,OAAO,EAAE,CAAC;IAAA,CACxB;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"}
1
+ {"version":3,"file":"cancellation.js","sourceRoot":"","sources":["../../src/utils/cancellation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAiEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,uBAAuB;IAC1B,OAAO,CAA+C;IACtD,SAAS,CAAU;IACV,MAAM,CAAoB;IAE3C;QACE,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAEvB,kDAAkD;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,uBAAuB,EAAE,KAAK;YAC9B,uBAAuB,EAAE,CAAC,QAAoB,EAAc,EAAE;gBAC5D,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACnB,sCAAsC;oBACtC,QAAQ,EAAE,CAAC;oBACX,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;gBAC/B,CAAC;qBAAM,CAAC;oBACN,oEAAoE;oBACpE,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;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;IACL,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,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;IACjC,CAAC;IAED;;OAEG;IACH,OAAO;QACL,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACzB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,IAAI,EAAE;QACJ,uBAAuB,EAAE,KAAK;QAC9B,uBAAuB,EAAE,GAAe,EAAE;YACxC,uBAAuB;YACvB,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,GAAE,CAAC,EAAE,CAAC;QAC/B,CAAC;KACmB;CACvB,CAAC"}
@@ -3,14 +3,41 @@
3
3
  */
4
4
  import type { Logger } from './logger.js';
5
5
  type CapabilityKey = 'ServerCapability' | 'ClientCapability';
6
+ /**
7
+ * Builds the full set of LSP methods and the subset that are always allowed
8
+ * (not gated by a capability) for a given capability key.
9
+ *
10
+ * @remarks
11
+ * Iterates every entry in {@link LSPRequest} and {@link LSPNotification} to
12
+ * collect method strings, then marks those without a corresponding capability
13
+ * entry as always-allowed (e.g. `initialize`, `shutdown`, `$/cancelRequest`).
14
+ *
15
+ * @param capabilityKey - Whether to index by `'ServerCapability'` or `'ClientCapability'`.
16
+ * @returns An object with `all` (every known method) and `alwaysAllowed`
17
+ * (methods that do not require a capability declaration).
18
+ *
19
+ * @category Utilities
20
+ */
6
21
  export declare function buildMethodSets(capabilityKey: CapabilityKey): {
7
22
  all: Set<string>;
8
23
  alwaysAllowed: Set<string>;
9
24
  };
25
+ /**
26
+ * Pre-built method sets indexed by server capability.
27
+ * Used by `CapabilityGuard` in `@lspeasy/client` and `@lspeasy/server`.
28
+ *
29
+ * @category Utilities
30
+ */
10
31
  export declare const SERVER_METHODS: {
11
32
  all: Set<string>;
12
33
  alwaysAllowed: Set<string>;
13
34
  };
35
+ /**
36
+ * Pre-built method sets indexed by client capability.
37
+ * Used by `ClientCapabilityGuard` in `@lspeasy/client` and `@lspeasy/server`.
38
+ *
39
+ * @category Utilities
40
+ */
14
41
  export declare const CLIENT_METHODS: {
15
42
  all: Set<string>;
16
43
  alwaysAllowed: Set<string>;
@@ -31,7 +58,11 @@ export interface CheckMethodOptions {
31
58
  /**
32
59
  * Shared validation logic for checking if a method is allowed based on capabilities.
33
60
  *
34
- * Returns true if allowed, false if disallowed (non-strict), or throws (strict).
61
+ * Returns `true` if allowed, `false` if disallowed in non-strict mode, or throws in strict mode.
62
+ *
63
+ * @param opts - Validation options including the method, capability lookup helpers, and logger.
64
+ * @returns `true` when the method is allowed; `false` when disallowed in non-strict mode.
65
+ * @throws When the method is disallowed and `opts.strict` is `true`.
35
66
  */
36
67
  export declare function checkMethod(opts: CheckMethodOptions): boolean;
37
68
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"capability-guard.d.ts","sourceRoot":"","sources":["../../src/utils/capability-guard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,KAAK,aAAa,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAE7D,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG;IAC7D,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAyBA;AAED,eAAO,MAAM,cAAc;;;CAAsC,CAAC;AAClE,eAAO,MAAM,cAAc;;;CAAsC,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAC7D,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAoD7D"}
1
+ {"version":3,"file":"capability-guard.d.ts","sourceRoot":"","sources":["../../src/utils/capability-guard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,KAAK,aAAa,GAAG,kBAAkB,GAAG,kBAAkB,CAAC;AAE7D;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa,GAAG;IAC7D,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACjB,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC5B,CAyBA;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc;SAnCpB,GAAG,CAAC,MAAM,CAAC;mBACD,GAAG,CAAC,MAAM,CAAC;CAkCqC,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,cAAc;SA3CpB,GAAG,CAAC,MAAM,CAAC;mBACD,GAAG,CAAC,MAAM,CAAC;CA0CqC,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QAAE,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;QAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAC7D,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChE,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAoD7D"}
@@ -2,6 +2,21 @@
2
2
  * Shared capability validation logic used by both client and server packages
3
3
  */
4
4
  import { LSPRequest, LSPNotification } from '../protocol/namespaces.js';
5
+ /**
6
+ * Builds the full set of LSP methods and the subset that are always allowed
7
+ * (not gated by a capability) for a given capability key.
8
+ *
9
+ * @remarks
10
+ * Iterates every entry in {@link LSPRequest} and {@link LSPNotification} to
11
+ * collect method strings, then marks those without a corresponding capability
12
+ * entry as always-allowed (e.g. `initialize`, `shutdown`, `$/cancelRequest`).
13
+ *
14
+ * @param capabilityKey - Whether to index by `'ServerCapability'` or `'ClientCapability'`.
15
+ * @returns An object with `all` (every known method) and `alwaysAllowed`
16
+ * (methods that do not require a capability declaration).
17
+ *
18
+ * @category Utilities
19
+ */
5
20
  export function buildMethodSets(capabilityKey) {
6
21
  const all = new Set();
7
22
  const alwaysAllowed = new Set();
@@ -25,12 +40,28 @@ export function buildMethodSets(capabilityKey) {
25
40
  }
26
41
  return { all, alwaysAllowed };
27
42
  }
43
+ /**
44
+ * Pre-built method sets indexed by server capability.
45
+ * Used by `CapabilityGuard` in `@lspeasy/client` and `@lspeasy/server`.
46
+ *
47
+ * @category Utilities
48
+ */
28
49
  export const SERVER_METHODS = buildMethodSets('ServerCapability');
50
+ /**
51
+ * Pre-built method sets indexed by client capability.
52
+ * Used by `ClientCapabilityGuard` in `@lspeasy/client` and `@lspeasy/server`.
53
+ *
54
+ * @category Utilities
55
+ */
29
56
  export const CLIENT_METHODS = buildMethodSets('ClientCapability');
30
57
  /**
31
58
  * Shared validation logic for checking if a method is allowed based on capabilities.
32
59
  *
33
- * Returns true if allowed, false if disallowed (non-strict), or throws (strict).
60
+ * Returns `true` if allowed, `false` if disallowed in non-strict mode, or throws in strict mode.
61
+ *
62
+ * @param opts - Validation options including the method, capability lookup helpers, and logger.
63
+ * @returns `true` when the method is allowed; `false` when disallowed in non-strict mode.
64
+ * @throws When the method is disallowed and `opts.strict` is `true`.
34
65
  */
35
66
  export function checkMethod(opts) {
36
67
  const { method, methodSets, getCapabilityKey, hasCapability, actionLabel, capabilityLabel, logger, strict } = opts;
@@ -1 +1 @@
1
- {"version":3,"file":"capability-guard.js","sourceRoot":"","sources":["../../src/utils/capability-guard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIxE,MAAM,UAAU,eAAe,CAAC,aAA4B,EAG1D;IACA,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAA4E,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAA4E,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAAA,CAC/B;AAED,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAalE;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,IAAwB,EAAW;IAC7D,MAAM,EACJ,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,EACN,MAAM,EACP,GAAG,IAAI,CAAC;IAET,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,+BAA+B,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,WAAW,wBAAwB,MAAM,EAAE,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,+BAA+B,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,WAAW,wBAAwB,MAAM,EAAE,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,WAAW,IAAI,MAAM,KAAK,eAAe,KAAK,aAAa,gBAAgB,CAAC;QACpG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AAAA,CACb"}
1
+ {"version":3,"file":"capability-guard.js","sourceRoot":"","sources":["../../src/utils/capability-guard.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAIxE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,aAA4B;IAI1D,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAExC,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAA4E,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,oBAAoB,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QAClE,KAAK,MAAM,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,EAAE,CAAC;YAC7D,MAAM,KAAK,GAAG,UAA4E,CAAC;YAC3F,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAAC;gBAC1B,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC,kBAAkB,CAAC,CAAC;AAalE;;;;;;;;GAQG;AACH,MAAM,UAAU,WAAW,CAAC,IAAwB;IAClD,MAAM,EACJ,MAAM,EACN,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,EACf,MAAM,EACN,MAAM,EACP,GAAG,IAAI,CAAC;IAET,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QAChC,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,+BAA+B,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,WAAW,wBAAwB,MAAM,EAAE,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,UAAU,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAE/C,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,CAAC,kBAAkB,MAAM,+BAA+B,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,GAAG,UAAU,WAAW,wBAAwB,MAAM,EAAE,CAAC;QACpE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IAAI,aAAa,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,KAAK,GAAG,UAAU,WAAW,IAAI,MAAM,KAAK,eAAe,KAAK,aAAa,gBAAgB,CAAC;QACpG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -11,14 +11,25 @@ export declare class DisposableEventEmitter<TEvents extends Record<string, unkno
11
11
  private disposed;
12
12
  /**
13
13
  * Register a listener and receive a disposable to unregister it.
14
+ *
15
+ * @param event - The event name to subscribe to.
16
+ * @param listener - Callback invoked each time `event` is emitted.
17
+ * @returns A {@link Disposable} — call `dispose()` to remove the listener.
14
18
  */
15
19
  on<K extends keyof TEvents>(event: K, listener: Listener<TEvents, K>): Disposable;
16
20
  /**
17
21
  * Register a one-time listener that automatically unregisters after first emission.
22
+ *
23
+ * @param event - The event name to subscribe to.
24
+ * @param listener - Callback invoked once the next time `event` is emitted.
25
+ * @returns A {@link Disposable} — call `dispose()` to cancel before the event fires.
18
26
  */
19
27
  once<K extends keyof TEvents>(event: K, listener: Listener<TEvents, K>): Disposable;
20
28
  /**
21
29
  * Emit an event to all registered listeners in registration order.
30
+ *
31
+ * @param event - The event name to emit.
32
+ * @param args - Arguments forwarded to each listener in the order they match `TEvents[K]`.
22
33
  */
23
34
  emit<K extends keyof TEvents>(event: K, ...args: TEvents[K]): void;
24
35
  /**
@@ -1 +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;AAKlD,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,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,UAAU,CA0BlF;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"}
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;AAKlD,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;;;;;;OAMG;IACH,EAAE,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,UAAU,CAyBhF;IAED;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,UAAU,CA0BlF;IAED;;;;;OAKG;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"}
@@ -9,6 +9,10 @@ export class DisposableEventEmitter {
9
9
  disposed = false;
10
10
  /**
11
11
  * Register a listener and receive a disposable to unregister it.
12
+ *
13
+ * @param event - The event name to subscribe to.
14
+ * @param listener - Callback invoked each time `event` is emitted.
15
+ * @returns A {@link Disposable} — call `dispose()` to remove the listener.
12
16
  */
13
17
  on(event, listener) {
14
18
  if (this.disposed) {
@@ -35,6 +39,10 @@ export class DisposableEventEmitter {
35
39
  }
36
40
  /**
37
41
  * Register a one-time listener that automatically unregisters after first emission.
42
+ *
43
+ * @param event - The event name to subscribe to.
44
+ * @param listener - Callback invoked once the next time `event` is emitted.
45
+ * @returns A {@link Disposable} — call `dispose()` to cancel before the event fires.
38
46
  */
39
47
  once(event, listener) {
40
48
  if (this.disposed) {
@@ -62,6 +70,9 @@ export class DisposableEventEmitter {
62
70
  }
63
71
  /**
64
72
  * Emit an event to all registered listeners in registration order.
73
+ *
74
+ * @param event - The event name to emit.
75
+ * @param args - Arguments forwarded to each listener in the order they match `TEvents[K]`.
65
76
  */
66
77
  emit(event, ...args) {
67
78
  if (this.disposed) {
@@ -1 +1 @@
1
- {"version":3,"file":"disposable-event-emitter.js","sourceRoot":"","sources":["../../src/utils/disposable-event-emitter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"disposable-event-emitter.js","sourceRoot":"","sources":["../../src/utils/disposable-event-emitter.ts"],"names":[],"mappings":"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"}
@@ -3,19 +3,58 @@
3
3
  * Pattern: MCP SDK's disposable pattern
4
4
  */
5
5
  /**
6
- * Represents a disposable resource that can be cleaned up
6
+ * Represents a resource that can be explicitly released.
7
+ *
8
+ * @remarks
9
+ * Every subscription, handler registration, and event listener in lspeasy
10
+ * returns a `Disposable`. Call `.dispose()` to unsubscribe and free memory.
11
+ * Use `DisposableStore` to collect and dispose multiple resources at once.
12
+ *
13
+ * @category Lifecycle
7
14
  */
8
15
  export interface Disposable {
9
16
  dispose(): void;
10
17
  }
11
18
  /**
12
- * Store for managing multiple disposables
19
+ * Collects multiple `Disposable` instances and releases them together.
20
+ *
21
+ * @remarks
22
+ * Ideal for managing handler registrations on a server that should all be
23
+ * torn down when a document is closed or a feature is disabled.
24
+ * Once `dispose()` is called on the store, any further `add()` calls
25
+ * immediately dispose the item rather than storing it.
26
+ *
27
+ * @useWhen
28
+ * You register multiple handlers (hover, completion, definition) that share
29
+ * the same lifetime — collect them all into one store and dispose the store
30
+ * on shutdown or feature toggle.
31
+ *
32
+ * @example
33
+ * ```ts
34
+ * import { DisposableStore } from '@lspeasy/core';
35
+ * import { LSPServer } from '@lspeasy/server';
36
+ *
37
+ * const server = new LSPServer();
38
+ * const disposables = new DisposableStore();
39
+ *
40
+ * disposables.add(server.onRequest('textDocument/hover', handleHover));
41
+ * disposables.add(server.onRequest('textDocument/completion', handleCompletion));
42
+ *
43
+ * // Later — unregister all handlers at once
44
+ * disposables.dispose();
45
+ * ```
46
+ *
47
+ * @category Lifecycle
13
48
  */
14
49
  export declare class DisposableStore implements Disposable {
15
50
  private disposables;
16
51
  private disposed;
17
52
  /**
18
- * Add a disposable to the store
53
+ * Add a disposable to the store.
54
+ *
55
+ * @param disposable - The resource to track. If the store is already disposed,
56
+ * `disposable.dispose()` is called immediately.
57
+ * @returns The same `disposable` passed in, for fluent chaining.
19
58
  */
20
59
  add<T extends Disposable>(disposable: T): T;
21
60
  /**
@@ -1 +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"}
1
+ {"version":3,"file":"disposable.d.ts","sourceRoot":"","sources":["../../src/utils/disposable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB,OAAO,IAAI,IAAI,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,eAAgB,YAAW,UAAU;IAChD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;OAMG;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"}
@@ -3,13 +3,45 @@
3
3
  * Pattern: MCP SDK's disposable pattern
4
4
  */
5
5
  /**
6
- * Store for managing multiple disposables
6
+ * Collects multiple `Disposable` instances and releases them together.
7
+ *
8
+ * @remarks
9
+ * Ideal for managing handler registrations on a server that should all be
10
+ * torn down when a document is closed or a feature is disabled.
11
+ * Once `dispose()` is called on the store, any further `add()` calls
12
+ * immediately dispose the item rather than storing it.
13
+ *
14
+ * @useWhen
15
+ * You register multiple handlers (hover, completion, definition) that share
16
+ * the same lifetime — collect them all into one store and dispose the store
17
+ * on shutdown or feature toggle.
18
+ *
19
+ * @example
20
+ * ```ts
21
+ * import { DisposableStore } from '@lspeasy/core';
22
+ * import { LSPServer } from '@lspeasy/server';
23
+ *
24
+ * const server = new LSPServer();
25
+ * const disposables = new DisposableStore();
26
+ *
27
+ * disposables.add(server.onRequest('textDocument/hover', handleHover));
28
+ * disposables.add(server.onRequest('textDocument/completion', handleCompletion));
29
+ *
30
+ * // Later — unregister all handlers at once
31
+ * disposables.dispose();
32
+ * ```
33
+ *
34
+ * @category Lifecycle
7
35
  */
8
36
  export class DisposableStore {
9
37
  disposables = [];
10
38
  disposed = false;
11
39
  /**
12
- * Add a disposable to the store
40
+ * Add a disposable to the store.
41
+ *
42
+ * @param disposable - The resource to track. If the store is already disposed,
43
+ * `disposable.dispose()` is called immediately.
44
+ * @returns The same `disposable` passed in, for fluent chaining.
13
45
  */
14
46
  add(disposable) {
15
47
  if (this.disposed) {
@@ -1 +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"}
1
+ {"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../src/utils/disposable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,OAAO,eAAe;IAClB,WAAW,GAAiB,EAAE,CAAC;IAC/B,QAAQ,GAAG,KAAK,CAAC;IAEzB;;;;;;OAMG;IACH,GAAG,CAAuB,UAAa;QACrC,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;IACpB,CAAC;IAED;;OAEG;IACH,OAAO;QACL,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;IACH,CAAC;IAED;;OAEG;IACH,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC;IACxB,CAAC;CACF"}