css-variable-lsp 1.0.0 → 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (450) hide show
  1. package/README.md +5 -9
  2. package/package.json +2 -2
  3. package/server/out/cascadeAndInline.test.js +67 -0
  4. package/server/out/cascadeAndInline.test.js.map +1 -0
  5. package/server/out/cssVariableManager.js +390 -0
  6. package/server/out/cssVariableManager.js.map +1 -0
  7. package/server/out/domTree.js +115 -0
  8. package/server/out/domTree.js.map +1 -0
  9. package/server/out/domTree.test.js +77 -0
  10. package/server/out/domTree.test.js.map +1 -0
  11. package/server/out/fileLifecycle.test.js +163 -0
  12. package/server/out/fileLifecycle.test.js.map +1 -0
  13. package/server/out/fileTypesAndUpdates.test.js +78 -0
  14. package/server/out/fileTypesAndUpdates.test.js.map +1 -0
  15. package/server/out/htmlComments.test.js +180 -0
  16. package/server/out/htmlComments.test.js.map +1 -0
  17. package/server/out/server.js +457 -0
  18. package/server/out/server.js.map +1 -0
  19. package/server/out/specificity.js +138 -0
  20. package/server/out/specificity.js.map +1 -0
  21. package/server/out/specificity.test.js +66 -0
  22. package/server/out/specificity.test.js.map +1 -0
  23. package/server/out/test.js +112 -0
  24. package/server/out/test.js.map +1 -0
  25. package/server/tsconfig.tsbuildinfo +1 -0
  26. package/client/node_modules/.package-lock.json +0 -110
  27. package/client/node_modules/@types/node/LICENSE +0 -21
  28. package/client/node_modules/@types/node/README.md +0 -15
  29. package/client/node_modules/@types/node/assert/strict.d.ts +0 -8
  30. package/client/node_modules/@types/node/assert.d.ts +0 -1005
  31. package/client/node_modules/@types/node/async_hooks.d.ts +0 -586
  32. package/client/node_modules/@types/node/buffer.buffer.d.ts +0 -457
  33. package/client/node_modules/@types/node/buffer.d.ts +0 -1901
  34. package/client/node_modules/@types/node/child_process.d.ts +0 -1453
  35. package/client/node_modules/@types/node/cluster.d.ts +0 -578
  36. package/client/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  37. package/client/node_modules/@types/node/compatibility/index.d.ts +0 -9
  38. package/client/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  39. package/client/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  40. package/client/node_modules/@types/node/console.d.ts +0 -452
  41. package/client/node_modules/@types/node/constants.d.ts +0 -21
  42. package/client/node_modules/@types/node/crypto.d.ts +0 -4504
  43. package/client/node_modules/@types/node/dgram.d.ts +0 -596
  44. package/client/node_modules/@types/node/diagnostics_channel.d.ts +0 -551
  45. package/client/node_modules/@types/node/dns/promises.d.ts +0 -477
  46. package/client/node_modules/@types/node/dns.d.ts +0 -860
  47. package/client/node_modules/@types/node/domain.d.ts +0 -170
  48. package/client/node_modules/@types/node/events.d.ts +0 -863
  49. package/client/node_modules/@types/node/fs/promises.d.ts +0 -1208
  50. package/client/node_modules/@types/node/fs.d.ts +0 -4332
  51. package/client/node_modules/@types/node/globals.d.ts +0 -170
  52. package/client/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  53. package/client/node_modules/@types/node/http.d.ts +0 -1919
  54. package/client/node_modules/@types/node/http2.d.ts +0 -2580
  55. package/client/node_modules/@types/node/https.d.ts +0 -549
  56. package/client/node_modules/@types/node/index.d.ts +0 -92
  57. package/client/node_modules/@types/node/inspector.generated.d.ts +0 -2775
  58. package/client/node_modules/@types/node/module.d.ts +0 -503
  59. package/client/node_modules/@types/node/net.d.ts +0 -924
  60. package/client/node_modules/@types/node/os.d.ts +0 -480
  61. package/client/node_modules/@types/node/package.json +0 -145
  62. package/client/node_modules/@types/node/path.d.ts +0 -191
  63. package/client/node_modules/@types/node/perf_hooks.d.ts +0 -860
  64. package/client/node_modules/@types/node/process.d.ts +0 -1632
  65. package/client/node_modules/@types/node/punycode.d.ts +0 -117
  66. package/client/node_modules/@types/node/querystring.d.ts +0 -140
  67. package/client/node_modules/@types/node/readline/promises.d.ts +0 -154
  68. package/client/node_modules/@types/node/readline.d.ts +0 -715
  69. package/client/node_modules/@types/node/repl.d.ts +0 -430
  70. package/client/node_modules/@types/node/stream/consumers.d.ts +0 -38
  71. package/client/node_modules/@types/node/stream/promises.d.ts +0 -90
  72. package/client/node_modules/@types/node/stream/web.d.ts +0 -527
  73. package/client/node_modules/@types/node/stream.d.ts +0 -1680
  74. package/client/node_modules/@types/node/string_decoder.d.ts +0 -67
  75. package/client/node_modules/@types/node/test.d.ts +0 -1208
  76. package/client/node_modules/@types/node/timers/promises.d.ts +0 -108
  77. package/client/node_modules/@types/node/timers.d.ts +0 -286
  78. package/client/node_modules/@types/node/tls.d.ts +0 -1204
  79. package/client/node_modules/@types/node/trace_events.d.ts +0 -171
  80. package/client/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -455
  81. package/client/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  82. package/client/node_modules/@types/node/ts5.6/index.d.ts +0 -92
  83. package/client/node_modules/@types/node/tty.d.ts +0 -206
  84. package/client/node_modules/@types/node/url.d.ts +0 -957
  85. package/client/node_modules/@types/node/util.d.ts +0 -2083
  86. package/client/node_modules/@types/node/v8.d.ts +0 -753
  87. package/client/node_modules/@types/node/vm.d.ts +0 -704
  88. package/client/node_modules/@types/node/wasi.d.ts +0 -160
  89. package/client/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  90. package/client/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  91. package/client/node_modules/@types/node/web-globals/events.d.ts +0 -81
  92. package/client/node_modules/@types/node/web-globals/fetch.d.ts +0 -38
  93. package/client/node_modules/@types/node/worker_threads.d.ts +0 -698
  94. package/client/node_modules/@types/node/zlib.d.ts +0 -517
  95. package/client/node_modules/@types/vscode/LICENSE +0 -21
  96. package/client/node_modules/@types/vscode/README.md +0 -15
  97. package/client/node_modules/@types/vscode/index.d.ts +0 -21145
  98. package/client/node_modules/@types/vscode/package.json +0 -26
  99. package/client/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  100. package/client/node_modules/balanced-match/LICENSE.md +0 -21
  101. package/client/node_modules/balanced-match/README.md +0 -97
  102. package/client/node_modules/balanced-match/index.js +0 -62
  103. package/client/node_modules/balanced-match/package.json +0 -48
  104. package/client/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  105. package/client/node_modules/brace-expansion/LICENSE +0 -21
  106. package/client/node_modules/brace-expansion/README.md +0 -135
  107. package/client/node_modules/brace-expansion/index.js +0 -203
  108. package/client/node_modules/brace-expansion/package.json +0 -49
  109. package/client/node_modules/minimatch/LICENSE +0 -15
  110. package/client/node_modules/minimatch/README.md +0 -259
  111. package/client/node_modules/minimatch/lib/path.js +0 -4
  112. package/client/node_modules/minimatch/minimatch.js +0 -944
  113. package/client/node_modules/minimatch/package.json +0 -35
  114. package/client/node_modules/semver/LICENSE +0 -15
  115. package/client/node_modules/semver/README.md +0 -664
  116. package/client/node_modules/semver/bin/semver.js +0 -191
  117. package/client/node_modules/semver/classes/comparator.js +0 -143
  118. package/client/node_modules/semver/classes/index.js +0 -7
  119. package/client/node_modules/semver/classes/range.js +0 -557
  120. package/client/node_modules/semver/classes/semver.js +0 -333
  121. package/client/node_modules/semver/functions/clean.js +0 -8
  122. package/client/node_modules/semver/functions/cmp.js +0 -54
  123. package/client/node_modules/semver/functions/coerce.js +0 -62
  124. package/client/node_modules/semver/functions/compare-build.js +0 -9
  125. package/client/node_modules/semver/functions/compare-loose.js +0 -5
  126. package/client/node_modules/semver/functions/compare.js +0 -7
  127. package/client/node_modules/semver/functions/diff.js +0 -60
  128. package/client/node_modules/semver/functions/eq.js +0 -5
  129. package/client/node_modules/semver/functions/gt.js +0 -5
  130. package/client/node_modules/semver/functions/gte.js +0 -5
  131. package/client/node_modules/semver/functions/inc.js +0 -21
  132. package/client/node_modules/semver/functions/lt.js +0 -5
  133. package/client/node_modules/semver/functions/lte.js +0 -5
  134. package/client/node_modules/semver/functions/major.js +0 -5
  135. package/client/node_modules/semver/functions/minor.js +0 -5
  136. package/client/node_modules/semver/functions/neq.js +0 -5
  137. package/client/node_modules/semver/functions/parse.js +0 -18
  138. package/client/node_modules/semver/functions/patch.js +0 -5
  139. package/client/node_modules/semver/functions/prerelease.js +0 -8
  140. package/client/node_modules/semver/functions/rcompare.js +0 -5
  141. package/client/node_modules/semver/functions/rsort.js +0 -5
  142. package/client/node_modules/semver/functions/satisfies.js +0 -12
  143. package/client/node_modules/semver/functions/sort.js +0 -5
  144. package/client/node_modules/semver/functions/valid.js +0 -8
  145. package/client/node_modules/semver/index.js +0 -91
  146. package/client/node_modules/semver/internal/constants.js +0 -37
  147. package/client/node_modules/semver/internal/debug.js +0 -11
  148. package/client/node_modules/semver/internal/identifiers.js +0 -29
  149. package/client/node_modules/semver/internal/lrucache.js +0 -42
  150. package/client/node_modules/semver/internal/parse-options.js +0 -17
  151. package/client/node_modules/semver/internal/re.js +0 -223
  152. package/client/node_modules/semver/package.json +0 -78
  153. package/client/node_modules/semver/preload.js +0 -4
  154. package/client/node_modules/semver/range.bnf +0 -16
  155. package/client/node_modules/semver/ranges/gtr.js +0 -6
  156. package/client/node_modules/semver/ranges/intersects.js +0 -9
  157. package/client/node_modules/semver/ranges/ltr.js +0 -6
  158. package/client/node_modules/semver/ranges/max-satisfying.js +0 -27
  159. package/client/node_modules/semver/ranges/min-satisfying.js +0 -26
  160. package/client/node_modules/semver/ranges/min-version.js +0 -63
  161. package/client/node_modules/semver/ranges/outside.js +0 -82
  162. package/client/node_modules/semver/ranges/simplify.js +0 -49
  163. package/client/node_modules/semver/ranges/subset.js +0 -249
  164. package/client/node_modules/semver/ranges/to-comparators.js +0 -10
  165. package/client/node_modules/semver/ranges/valid.js +0 -13
  166. package/client/node_modules/undici-types/README.md +0 -6
  167. package/client/node_modules/undici-types/agent.d.ts +0 -31
  168. package/client/node_modules/undici-types/api.d.ts +0 -43
  169. package/client/node_modules/undici-types/balanced-pool.d.ts +0 -18
  170. package/client/node_modules/undici-types/cache.d.ts +0 -36
  171. package/client/node_modules/undici-types/client.d.ts +0 -97
  172. package/client/node_modules/undici-types/connector.d.ts +0 -34
  173. package/client/node_modules/undici-types/content-type.d.ts +0 -21
  174. package/client/node_modules/undici-types/cookies.d.ts +0 -28
  175. package/client/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  176. package/client/node_modules/undici-types/dispatcher.d.ts +0 -241
  177. package/client/node_modules/undici-types/errors.d.ts +0 -128
  178. package/client/node_modules/undici-types/fetch.d.ts +0 -209
  179. package/client/node_modules/undici-types/file.d.ts +0 -39
  180. package/client/node_modules/undici-types/filereader.d.ts +0 -54
  181. package/client/node_modules/undici-types/formdata.d.ts +0 -108
  182. package/client/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  183. package/client/node_modules/undici-types/global-origin.d.ts +0 -7
  184. package/client/node_modules/undici-types/handlers.d.ts +0 -9
  185. package/client/node_modules/undici-types/header.d.ts +0 -4
  186. package/client/node_modules/undici-types/index.d.ts +0 -63
  187. package/client/node_modules/undici-types/interceptors.d.ts +0 -5
  188. package/client/node_modules/undici-types/mock-agent.d.ts +0 -50
  189. package/client/node_modules/undici-types/mock-client.d.ts +0 -25
  190. package/client/node_modules/undici-types/mock-errors.d.ts +0 -12
  191. package/client/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  192. package/client/node_modules/undici-types/mock-pool.d.ts +0 -25
  193. package/client/node_modules/undici-types/package.json +0 -55
  194. package/client/node_modules/undici-types/patch.d.ts +0 -71
  195. package/client/node_modules/undici-types/pool-stats.d.ts +0 -19
  196. package/client/node_modules/undici-types/pool.d.ts +0 -28
  197. package/client/node_modules/undici-types/proxy-agent.d.ts +0 -30
  198. package/client/node_modules/undici-types/readable.d.ts +0 -61
  199. package/client/node_modules/undici-types/webidl.d.ts +0 -220
  200. package/client/node_modules/undici-types/websocket.d.ts +0 -131
  201. package/client/node_modules/vscode-jsonrpc/License.txt +0 -11
  202. package/client/node_modules/vscode-jsonrpc/README.md +0 -69
  203. package/client/node_modules/vscode-jsonrpc/browser.d.ts +0 -6
  204. package/client/node_modules/vscode-jsonrpc/browser.js +0 -7
  205. package/client/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +0 -17
  206. package/client/node_modules/vscode-jsonrpc/lib/browser/main.js +0 -76
  207. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +0 -12
  208. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.js +0 -156
  209. package/client/node_modules/vscode-jsonrpc/lib/common/api.d.ts +0 -14
  210. package/client/node_modules/vscode-jsonrpc/lib/common/api.js +0 -81
  211. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +0 -32
  212. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.js +0 -96
  213. package/client/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +0 -358
  214. package/client/node_modules/vscode-jsonrpc/lib/common/connection.js +0 -1212
  215. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +0 -9
  216. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.js +0 -16
  217. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +0 -52
  218. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.js +0 -70
  219. package/client/node_modules/vscode-jsonrpc/lib/common/events.d.ts +0 -39
  220. package/client/node_modules/vscode-jsonrpc/lib/common/events.js +0 -128
  221. package/client/node_modules/vscode-jsonrpc/lib/common/is.d.ts +0 -7
  222. package/client/node_modules/vscode-jsonrpc/lib/common/is.js +0 -35
  223. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +0 -53
  224. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +0 -398
  225. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +0 -18
  226. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +0 -152
  227. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +0 -77
  228. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.js +0 -197
  229. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +0 -60
  230. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +0 -115
  231. package/client/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +0 -369
  232. package/client/node_modules/vscode-jsonrpc/lib/common/messages.js +0 -306
  233. package/client/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +0 -74
  234. package/client/node_modules/vscode-jsonrpc/lib/common/ral.js +0 -23
  235. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +0 -10
  236. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.js +0 -68
  237. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +0 -15
  238. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +0 -76
  239. package/client/node_modules/vscode-jsonrpc/lib/node/main.d.ts +0 -63
  240. package/client/node_modules/vscode-jsonrpc/lib/node/main.js +0 -257
  241. package/client/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +0 -13
  242. package/client/node_modules/vscode-jsonrpc/lib/node/ril.js +0 -161
  243. package/client/node_modules/vscode-jsonrpc/node.cmd +0 -5
  244. package/client/node_modules/vscode-jsonrpc/node.d.ts +0 -6
  245. package/client/node_modules/vscode-jsonrpc/node.js +0 -7
  246. package/client/node_modules/vscode-jsonrpc/package.json +0 -45
  247. package/client/node_modules/vscode-jsonrpc/thirdpartynotices.txt +0 -16
  248. package/client/node_modules/vscode-jsonrpc/typings/thenable.d.ts +0 -5
  249. package/client/node_modules/vscode-languageclient/License.txt +0 -11
  250. package/client/node_modules/vscode-languageclient/README.md +0 -17
  251. package/client/node_modules/vscode-languageclient/browser.d.ts +0 -6
  252. package/client/node_modules/vscode-languageclient/browser.js +0 -7
  253. package/client/node_modules/vscode-languageclient/lib/browser/main.d.ts +0 -8
  254. package/client/node_modules/vscode-languageclient/lib/browser/main.js +0 -37
  255. package/client/node_modules/vscode-languageclient/lib/common/api.d.ts +0 -36
  256. package/client/node_modules/vscode-languageclient/lib/common/api.js +0 -27
  257. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.d.ts +0 -37
  258. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.js +0 -97
  259. package/client/node_modules/vscode-languageclient/lib/common/client.d.ts +0 -476
  260. package/client/node_modules/vscode-languageclient/lib/common/client.js +0 -1600
  261. package/client/node_modules/vscode-languageclient/lib/common/codeAction.d.ts +0 -19
  262. package/client/node_modules/vscode-languageclient/lib/common/codeAction.js +0 -99
  263. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.d.ts +0 -78
  264. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.js +0 -876
  265. package/client/node_modules/vscode-languageclient/lib/common/codeLens.d.ts +0 -23
  266. package/client/node_modules/vscode-languageclient/lib/common/codeLens.js +0 -78
  267. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.d.ts +0 -25
  268. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.js +0 -74
  269. package/client/node_modules/vscode-languageclient/lib/common/completion.d.ts +0 -20
  270. package/client/node_modules/vscode-languageclient/lib/common/completion.js +0 -126
  271. package/client/node_modules/vscode-languageclient/lib/common/configuration.d.ts +0 -69
  272. package/client/node_modules/vscode-languageclient/lib/common/configuration.js +0 -209
  273. package/client/node_modules/vscode-languageclient/lib/common/declaration.d.ts +0 -16
  274. package/client/node_modules/vscode-languageclient/lib/common/declaration.js +0 -54
  275. package/client/node_modules/vscode-languageclient/lib/common/definition.d.ts +0 -16
  276. package/client/node_modules/vscode-languageclient/lib/common/definition.js +0 -55
  277. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.d.ts +0 -122
  278. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.js +0 -814
  279. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.d.ts +0 -15
  280. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.js +0 -50
  281. package/client/node_modules/vscode-languageclient/lib/common/documentLink.d.ts +0 -19
  282. package/client/node_modules/vscode-languageclient/lib/common/documentLink.js +0 -71
  283. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.d.ts +0 -17
  284. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.js +0 -104
  285. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.d.ts +0 -21
  286. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.js +0 -72
  287. package/client/node_modules/vscode-languageclient/lib/common/features.d.ts +0 -418
  288. package/client/node_modules/vscode-languageclient/lib/common/features.js +0 -291
  289. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.d.ts +0 -116
  290. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.js +0 -333
  291. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.d.ts +0 -18
  292. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.js +0 -95
  293. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.d.ts +0 -19
  294. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.js +0 -65
  295. package/client/node_modules/vscode-languageclient/lib/common/formatting.d.ts +0 -39
  296. package/client/node_modules/vscode-languageclient/lib/common/formatting.js +0 -182
  297. package/client/node_modules/vscode-languageclient/lib/common/hover.d.ts +0 -16
  298. package/client/node_modules/vscode-languageclient/lib/common/hover.js +0 -58
  299. package/client/node_modules/vscode-languageclient/lib/common/implementation.d.ts +0 -16
  300. package/client/node_modules/vscode-languageclient/lib/common/implementation.js +0 -54
  301. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.d.ts +0 -20
  302. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.js +0 -92
  303. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.d.ts +0 -18
  304. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.js +0 -54
  305. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.d.ts +0 -18
  306. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.js +0 -65
  307. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.d.ts +0 -21
  308. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.js +0 -53
  309. package/client/node_modules/vscode-languageclient/lib/common/notebook.d.ts +0 -96
  310. package/client/node_modules/vscode-languageclient/lib/common/notebook.js +0 -851
  311. package/client/node_modules/vscode-languageclient/lib/common/progress.d.ts +0 -11
  312. package/client/node_modules/vscode-languageclient/lib/common/progress.js +0 -44
  313. package/client/node_modules/vscode-languageclient/lib/common/progressPart.d.ts +0 -24
  314. package/client/node_modules/vscode-languageclient/lib/common/progressPart.js +0 -96
  315. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.d.ts +0 -6
  316. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.js +0 -16
  317. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.d.ts +0 -6
  318. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.js +0 -14
  319. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.d.ts +0 -5
  320. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.js +0 -13
  321. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.d.ts +0 -11
  322. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.js +0 -13
  323. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.d.ts +0 -167
  324. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.js +0 -1134
  325. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.d.ts +0 -18
  326. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.js +0 -25
  327. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.d.ts +0 -5
  328. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.js +0 -13
  329. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.d.ts +0 -5
  330. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.js +0 -13
  331. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.d.ts +0 -6
  332. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.js +0 -16
  333. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.d.ts +0 -7
  334. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.js +0 -18
  335. package/client/node_modules/vscode-languageclient/lib/common/reference.d.ts +0 -20
  336. package/client/node_modules/vscode-languageclient/lib/common/reference.js +0 -53
  337. package/client/node_modules/vscode-languageclient/lib/common/rename.d.ts +0 -27
  338. package/client/node_modules/vscode-languageclient/lib/common/rename.js +0 -113
  339. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.d.ts +0 -16
  340. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.js +0 -57
  341. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.d.ts +0 -33
  342. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.js +0 -179
  343. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.d.ts +0 -16
  344. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.js +0 -71
  345. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.d.ts +0 -101
  346. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.js +0 -402
  347. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.d.ts +0 -16
  348. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.js +0 -55
  349. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.d.ts +0 -31
  350. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.js +0 -96
  351. package/client/node_modules/vscode-languageclient/lib/common/utils/async.d.ts +0 -41
  352. package/client/node_modules/vscode-languageclient/lib/common/utils/async.js +0 -276
  353. package/client/node_modules/vscode-languageclient/lib/common/utils/is.d.ts +0 -12
  354. package/client/node_modules/vscode-languageclient/lib/common/utils/is.js +0 -57
  355. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.d.ts +0 -22
  356. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.js +0 -97
  357. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.d.ts +0 -30
  358. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.js +0 -148
  359. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.d.ts +0 -19
  360. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.js +0 -79
  361. package/client/node_modules/vscode-languageclient/lib/node/main.d.ts +0 -100
  362. package/client/node_modules/vscode-languageclient/lib/node/main.js +0 -570
  363. package/client/node_modules/vscode-languageclient/lib/node/processes.d.ts +0 -6
  364. package/client/node_modules/vscode-languageclient/lib/node/processes.js +0 -47
  365. package/client/node_modules/vscode-languageclient/lib/node/terminateProcess.sh +0 -16
  366. package/client/node_modules/vscode-languageclient/node.cmd +0 -5
  367. package/client/node_modules/vscode-languageclient/node.d.ts +0 -6
  368. package/client/node_modules/vscode-languageclient/node.js +0 -7
  369. package/client/node_modules/vscode-languageclient/package.json +0 -50
  370. package/client/node_modules/vscode-languageserver-protocol/License.txt +0 -11
  371. package/client/node_modules/vscode-languageserver-protocol/README.md +0 -16
  372. package/client/node_modules/vscode-languageserver-protocol/browser.d.ts +0 -6
  373. package/client/node_modules/vscode-languageserver-protocol/browser.js +0 -7
  374. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +0 -4
  375. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.js +0 -28
  376. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +0 -58
  377. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.js +0 -77
  378. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +0 -187
  379. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.js +0 -15
  380. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +0 -51
  381. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.js +0 -44
  382. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +0 -1
  383. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +0 -43
  384. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +0 -86
  385. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +0 -42
  386. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +0 -66
  387. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +0 -32
  388. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +0 -35
  389. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +0 -24
  390. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +0 -3252
  391. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +0 -37
  392. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +0 -22
  393. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +0 -341
  394. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +0 -74
  395. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +0 -306
  396. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +0 -101
  397. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +0 -109
  398. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +0 -30
  399. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +0 -38
  400. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +0 -21
  401. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +0 -110
  402. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +0 -43
  403. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +0 -57
  404. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +0 -22
  405. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +0 -86
  406. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +0 -30
  407. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +0 -943
  408. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +0 -52
  409. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +0 -19
  410. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +0 -106
  411. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +0 -68
  412. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +0 -400
  413. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +0 -214
  414. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +0 -107
  415. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +0 -37
  416. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +0 -41
  417. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +0 -20
  418. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +0 -223
  419. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +0 -57
  420. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +0 -72
  421. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +0 -22
  422. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +0 -38
  423. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +0 -21
  424. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +0 -83
  425. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +0 -42
  426. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +0 -74
  427. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +0 -27
  428. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +0 -9
  429. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +0 -46
  430. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +0 -6
  431. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.js +0 -28
  432. package/client/node_modules/vscode-languageserver-protocol/metaModel.schema.json +0 -783
  433. package/client/node_modules/vscode-languageserver-protocol/node.cmd +0 -5
  434. package/client/node_modules/vscode-languageserver-protocol/node.d.ts +0 -6
  435. package/client/node_modules/vscode-languageserver-protocol/node.js +0 -7
  436. package/client/node_modules/vscode-languageserver-protocol/package.json +0 -45
  437. package/client/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +0 -31
  438. package/client/node_modules/vscode-languageserver-types/License.txt +0 -11
  439. package/client/node_modules/vscode-languageserver-types/README.md +0 -17
  440. package/client/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +0 -3139
  441. package/client/node_modules/vscode-languageserver-types/lib/esm/main.js +0 -2222
  442. package/client/node_modules/vscode-languageserver-types/lib/esm/package.json +0 -3
  443. package/client/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +0 -3139
  444. package/client/node_modules/vscode-languageserver-types/lib/umd/main.js +0 -2272
  445. package/client/node_modules/vscode-languageserver-types/package.json +0 -38
  446. package/client/node_modules/vscode-languageserver-types/thirdpartynotices.txt +0 -16
  447. package/client/package-lock.json +0 -125
  448. package/client/package.json +0 -42
  449. package/client/src/extension.ts +0 -56
  450. package/client/tsconfig.json +0 -12
@@ -1,1212 +0,0 @@
1
- "use strict";
2
- /* --------------------------------------------------------------------------------------------
3
- * Copyright (c) Microsoft Corporation. All rights reserved.
4
- * Licensed under the MIT License. See License.txt in the project root for license information.
5
- * ------------------------------------------------------------------------------------------ */
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createMessageConnection = exports.ConnectionOptions = exports.MessageStrategy = exports.CancellationStrategy = exports.CancellationSenderStrategy = exports.CancellationReceiverStrategy = exports.RequestCancellationReceiverStrategy = exports.IdCancellationReceiverStrategy = exports.ConnectionStrategy = exports.ConnectionError = exports.ConnectionErrors = exports.LogTraceNotification = exports.SetTraceNotification = exports.TraceFormat = exports.TraceValues = exports.Trace = exports.NullLogger = exports.ProgressType = exports.ProgressToken = void 0;
8
- const ral_1 = require("./ral");
9
- const Is = require("./is");
10
- const messages_1 = require("./messages");
11
- const linkedMap_1 = require("./linkedMap");
12
- const events_1 = require("./events");
13
- const cancellation_1 = require("./cancellation");
14
- var CancelNotification;
15
- (function (CancelNotification) {
16
- CancelNotification.type = new messages_1.NotificationType('$/cancelRequest');
17
- })(CancelNotification || (CancelNotification = {}));
18
- var ProgressToken;
19
- (function (ProgressToken) {
20
- function is(value) {
21
- return typeof value === 'string' || typeof value === 'number';
22
- }
23
- ProgressToken.is = is;
24
- })(ProgressToken || (exports.ProgressToken = ProgressToken = {}));
25
- var ProgressNotification;
26
- (function (ProgressNotification) {
27
- ProgressNotification.type = new messages_1.NotificationType('$/progress');
28
- })(ProgressNotification || (ProgressNotification = {}));
29
- class ProgressType {
30
- constructor() {
31
- }
32
- }
33
- exports.ProgressType = ProgressType;
34
- var StarRequestHandler;
35
- (function (StarRequestHandler) {
36
- function is(value) {
37
- return Is.func(value);
38
- }
39
- StarRequestHandler.is = is;
40
- })(StarRequestHandler || (StarRequestHandler = {}));
41
- exports.NullLogger = Object.freeze({
42
- error: () => { },
43
- warn: () => { },
44
- info: () => { },
45
- log: () => { }
46
- });
47
- var Trace;
48
- (function (Trace) {
49
- Trace[Trace["Off"] = 0] = "Off";
50
- Trace[Trace["Messages"] = 1] = "Messages";
51
- Trace[Trace["Compact"] = 2] = "Compact";
52
- Trace[Trace["Verbose"] = 3] = "Verbose";
53
- })(Trace || (exports.Trace = Trace = {}));
54
- var TraceValues;
55
- (function (TraceValues) {
56
- /**
57
- * Turn tracing off.
58
- */
59
- TraceValues.Off = 'off';
60
- /**
61
- * Trace messages only.
62
- */
63
- TraceValues.Messages = 'messages';
64
- /**
65
- * Compact message tracing.
66
- */
67
- TraceValues.Compact = 'compact';
68
- /**
69
- * Verbose message tracing.
70
- */
71
- TraceValues.Verbose = 'verbose';
72
- })(TraceValues || (exports.TraceValues = TraceValues = {}));
73
- (function (Trace) {
74
- function fromString(value) {
75
- if (!Is.string(value)) {
76
- return Trace.Off;
77
- }
78
- value = value.toLowerCase();
79
- switch (value) {
80
- case 'off':
81
- return Trace.Off;
82
- case 'messages':
83
- return Trace.Messages;
84
- case 'compact':
85
- return Trace.Compact;
86
- case 'verbose':
87
- return Trace.Verbose;
88
- default:
89
- return Trace.Off;
90
- }
91
- }
92
- Trace.fromString = fromString;
93
- function toString(value) {
94
- switch (value) {
95
- case Trace.Off:
96
- return 'off';
97
- case Trace.Messages:
98
- return 'messages';
99
- case Trace.Compact:
100
- return 'compact';
101
- case Trace.Verbose:
102
- return 'verbose';
103
- default:
104
- return 'off';
105
- }
106
- }
107
- Trace.toString = toString;
108
- })(Trace || (exports.Trace = Trace = {}));
109
- var TraceFormat;
110
- (function (TraceFormat) {
111
- TraceFormat["Text"] = "text";
112
- TraceFormat["JSON"] = "json";
113
- })(TraceFormat || (exports.TraceFormat = TraceFormat = {}));
114
- (function (TraceFormat) {
115
- function fromString(value) {
116
- if (!Is.string(value)) {
117
- return TraceFormat.Text;
118
- }
119
- value = value.toLowerCase();
120
- if (value === 'json') {
121
- return TraceFormat.JSON;
122
- }
123
- else {
124
- return TraceFormat.Text;
125
- }
126
- }
127
- TraceFormat.fromString = fromString;
128
- })(TraceFormat || (exports.TraceFormat = TraceFormat = {}));
129
- var SetTraceNotification;
130
- (function (SetTraceNotification) {
131
- SetTraceNotification.type = new messages_1.NotificationType('$/setTrace');
132
- })(SetTraceNotification || (exports.SetTraceNotification = SetTraceNotification = {}));
133
- var LogTraceNotification;
134
- (function (LogTraceNotification) {
135
- LogTraceNotification.type = new messages_1.NotificationType('$/logTrace');
136
- })(LogTraceNotification || (exports.LogTraceNotification = LogTraceNotification = {}));
137
- var ConnectionErrors;
138
- (function (ConnectionErrors) {
139
- /**
140
- * The connection is closed.
141
- */
142
- ConnectionErrors[ConnectionErrors["Closed"] = 1] = "Closed";
143
- /**
144
- * The connection got disposed.
145
- */
146
- ConnectionErrors[ConnectionErrors["Disposed"] = 2] = "Disposed";
147
- /**
148
- * The connection is already in listening mode.
149
- */
150
- ConnectionErrors[ConnectionErrors["AlreadyListening"] = 3] = "AlreadyListening";
151
- })(ConnectionErrors || (exports.ConnectionErrors = ConnectionErrors = {}));
152
- class ConnectionError extends Error {
153
- constructor(code, message) {
154
- super(message);
155
- this.code = code;
156
- Object.setPrototypeOf(this, ConnectionError.prototype);
157
- }
158
- }
159
- exports.ConnectionError = ConnectionError;
160
- var ConnectionStrategy;
161
- (function (ConnectionStrategy) {
162
- function is(value) {
163
- const candidate = value;
164
- return candidate && Is.func(candidate.cancelUndispatched);
165
- }
166
- ConnectionStrategy.is = is;
167
- })(ConnectionStrategy || (exports.ConnectionStrategy = ConnectionStrategy = {}));
168
- var IdCancellationReceiverStrategy;
169
- (function (IdCancellationReceiverStrategy) {
170
- function is(value) {
171
- const candidate = value;
172
- return candidate && (candidate.kind === undefined || candidate.kind === 'id') && Is.func(candidate.createCancellationTokenSource) && (candidate.dispose === undefined || Is.func(candidate.dispose));
173
- }
174
- IdCancellationReceiverStrategy.is = is;
175
- })(IdCancellationReceiverStrategy || (exports.IdCancellationReceiverStrategy = IdCancellationReceiverStrategy = {}));
176
- var RequestCancellationReceiverStrategy;
177
- (function (RequestCancellationReceiverStrategy) {
178
- function is(value) {
179
- const candidate = value;
180
- return candidate && candidate.kind === 'request' && Is.func(candidate.createCancellationTokenSource) && (candidate.dispose === undefined || Is.func(candidate.dispose));
181
- }
182
- RequestCancellationReceiverStrategy.is = is;
183
- })(RequestCancellationReceiverStrategy || (exports.RequestCancellationReceiverStrategy = RequestCancellationReceiverStrategy = {}));
184
- var CancellationReceiverStrategy;
185
- (function (CancellationReceiverStrategy) {
186
- CancellationReceiverStrategy.Message = Object.freeze({
187
- createCancellationTokenSource(_) {
188
- return new cancellation_1.CancellationTokenSource();
189
- }
190
- });
191
- function is(value) {
192
- return IdCancellationReceiverStrategy.is(value) || RequestCancellationReceiverStrategy.is(value);
193
- }
194
- CancellationReceiverStrategy.is = is;
195
- })(CancellationReceiverStrategy || (exports.CancellationReceiverStrategy = CancellationReceiverStrategy = {}));
196
- var CancellationSenderStrategy;
197
- (function (CancellationSenderStrategy) {
198
- CancellationSenderStrategy.Message = Object.freeze({
199
- sendCancellation(conn, id) {
200
- return conn.sendNotification(CancelNotification.type, { id });
201
- },
202
- cleanup(_) { }
203
- });
204
- function is(value) {
205
- const candidate = value;
206
- return candidate && Is.func(candidate.sendCancellation) && Is.func(candidate.cleanup);
207
- }
208
- CancellationSenderStrategy.is = is;
209
- })(CancellationSenderStrategy || (exports.CancellationSenderStrategy = CancellationSenderStrategy = {}));
210
- var CancellationStrategy;
211
- (function (CancellationStrategy) {
212
- CancellationStrategy.Message = Object.freeze({
213
- receiver: CancellationReceiverStrategy.Message,
214
- sender: CancellationSenderStrategy.Message
215
- });
216
- function is(value) {
217
- const candidate = value;
218
- return candidate && CancellationReceiverStrategy.is(candidate.receiver) && CancellationSenderStrategy.is(candidate.sender);
219
- }
220
- CancellationStrategy.is = is;
221
- })(CancellationStrategy || (exports.CancellationStrategy = CancellationStrategy = {}));
222
- var MessageStrategy;
223
- (function (MessageStrategy) {
224
- function is(value) {
225
- const candidate = value;
226
- return candidate && Is.func(candidate.handleMessage);
227
- }
228
- MessageStrategy.is = is;
229
- })(MessageStrategy || (exports.MessageStrategy = MessageStrategy = {}));
230
- var ConnectionOptions;
231
- (function (ConnectionOptions) {
232
- function is(value) {
233
- const candidate = value;
234
- return candidate && (CancellationStrategy.is(candidate.cancellationStrategy) || ConnectionStrategy.is(candidate.connectionStrategy) || MessageStrategy.is(candidate.messageStrategy));
235
- }
236
- ConnectionOptions.is = is;
237
- })(ConnectionOptions || (exports.ConnectionOptions = ConnectionOptions = {}));
238
- var ConnectionState;
239
- (function (ConnectionState) {
240
- ConnectionState[ConnectionState["New"] = 1] = "New";
241
- ConnectionState[ConnectionState["Listening"] = 2] = "Listening";
242
- ConnectionState[ConnectionState["Closed"] = 3] = "Closed";
243
- ConnectionState[ConnectionState["Disposed"] = 4] = "Disposed";
244
- })(ConnectionState || (ConnectionState = {}));
245
- function createMessageConnection(messageReader, messageWriter, _logger, options) {
246
- const logger = _logger !== undefined ? _logger : exports.NullLogger;
247
- let sequenceNumber = 0;
248
- let notificationSequenceNumber = 0;
249
- let unknownResponseSequenceNumber = 0;
250
- const version = '2.0';
251
- let starRequestHandler = undefined;
252
- const requestHandlers = new Map();
253
- let starNotificationHandler = undefined;
254
- const notificationHandlers = new Map();
255
- const progressHandlers = new Map();
256
- let timer;
257
- let messageQueue = new linkedMap_1.LinkedMap();
258
- let responsePromises = new Map();
259
- let knownCanceledRequests = new Set();
260
- let requestTokens = new Map();
261
- let trace = Trace.Off;
262
- let traceFormat = TraceFormat.Text;
263
- let tracer;
264
- let state = ConnectionState.New;
265
- const errorEmitter = new events_1.Emitter();
266
- const closeEmitter = new events_1.Emitter();
267
- const unhandledNotificationEmitter = new events_1.Emitter();
268
- const unhandledProgressEmitter = new events_1.Emitter();
269
- const disposeEmitter = new events_1.Emitter();
270
- const cancellationStrategy = (options && options.cancellationStrategy) ? options.cancellationStrategy : CancellationStrategy.Message;
271
- function createRequestQueueKey(id) {
272
- if (id === null) {
273
- throw new Error(`Can't send requests with id null since the response can't be correlated.`);
274
- }
275
- return 'req-' + id.toString();
276
- }
277
- function createResponseQueueKey(id) {
278
- if (id === null) {
279
- return 'res-unknown-' + (++unknownResponseSequenceNumber).toString();
280
- }
281
- else {
282
- return 'res-' + id.toString();
283
- }
284
- }
285
- function createNotificationQueueKey() {
286
- return 'not-' + (++notificationSequenceNumber).toString();
287
- }
288
- function addMessageToQueue(queue, message) {
289
- if (messages_1.Message.isRequest(message)) {
290
- queue.set(createRequestQueueKey(message.id), message);
291
- }
292
- else if (messages_1.Message.isResponse(message)) {
293
- queue.set(createResponseQueueKey(message.id), message);
294
- }
295
- else {
296
- queue.set(createNotificationQueueKey(), message);
297
- }
298
- }
299
- function cancelUndispatched(_message) {
300
- return undefined;
301
- }
302
- function isListening() {
303
- return state === ConnectionState.Listening;
304
- }
305
- function isClosed() {
306
- return state === ConnectionState.Closed;
307
- }
308
- function isDisposed() {
309
- return state === ConnectionState.Disposed;
310
- }
311
- function closeHandler() {
312
- if (state === ConnectionState.New || state === ConnectionState.Listening) {
313
- state = ConnectionState.Closed;
314
- closeEmitter.fire(undefined);
315
- }
316
- // If the connection is disposed don't sent close events.
317
- }
318
- function readErrorHandler(error) {
319
- errorEmitter.fire([error, undefined, undefined]);
320
- }
321
- function writeErrorHandler(data) {
322
- errorEmitter.fire(data);
323
- }
324
- messageReader.onClose(closeHandler);
325
- messageReader.onError(readErrorHandler);
326
- messageWriter.onClose(closeHandler);
327
- messageWriter.onError(writeErrorHandler);
328
- function triggerMessageQueue() {
329
- if (timer || messageQueue.size === 0) {
330
- return;
331
- }
332
- timer = (0, ral_1.default)().timer.setImmediate(() => {
333
- timer = undefined;
334
- processMessageQueue();
335
- });
336
- }
337
- function handleMessage(message) {
338
- if (messages_1.Message.isRequest(message)) {
339
- handleRequest(message);
340
- }
341
- else if (messages_1.Message.isNotification(message)) {
342
- handleNotification(message);
343
- }
344
- else if (messages_1.Message.isResponse(message)) {
345
- handleResponse(message);
346
- }
347
- else {
348
- handleInvalidMessage(message);
349
- }
350
- }
351
- function processMessageQueue() {
352
- if (messageQueue.size === 0) {
353
- return;
354
- }
355
- const message = messageQueue.shift();
356
- try {
357
- const messageStrategy = options?.messageStrategy;
358
- if (MessageStrategy.is(messageStrategy)) {
359
- messageStrategy.handleMessage(message, handleMessage);
360
- }
361
- else {
362
- handleMessage(message);
363
- }
364
- }
365
- finally {
366
- triggerMessageQueue();
367
- }
368
- }
369
- const callback = (message) => {
370
- try {
371
- // We have received a cancellation message. Check if the message is still in the queue
372
- // and cancel it if allowed to do so.
373
- if (messages_1.Message.isNotification(message) && message.method === CancelNotification.type.method) {
374
- const cancelId = message.params.id;
375
- const key = createRequestQueueKey(cancelId);
376
- const toCancel = messageQueue.get(key);
377
- if (messages_1.Message.isRequest(toCancel)) {
378
- const strategy = options?.connectionStrategy;
379
- const response = (strategy && strategy.cancelUndispatched) ? strategy.cancelUndispatched(toCancel, cancelUndispatched) : cancelUndispatched(toCancel);
380
- if (response && (response.error !== undefined || response.result !== undefined)) {
381
- messageQueue.delete(key);
382
- requestTokens.delete(cancelId);
383
- response.id = toCancel.id;
384
- traceSendingResponse(response, message.method, Date.now());
385
- messageWriter.write(response).catch(() => logger.error(`Sending response for canceled message failed.`));
386
- return;
387
- }
388
- }
389
- const cancellationToken = requestTokens.get(cancelId);
390
- // The request is already running. Cancel the token
391
- if (cancellationToken !== undefined) {
392
- cancellationToken.cancel();
393
- traceReceivedNotification(message);
394
- return;
395
- }
396
- else {
397
- // Remember the cancel but still queue the message to
398
- // clean up state in process message.
399
- knownCanceledRequests.add(cancelId);
400
- }
401
- }
402
- addMessageToQueue(messageQueue, message);
403
- }
404
- finally {
405
- triggerMessageQueue();
406
- }
407
- };
408
- function handleRequest(requestMessage) {
409
- if (isDisposed()) {
410
- // we return here silently since we fired an event when the
411
- // connection got disposed.
412
- return;
413
- }
414
- function reply(resultOrError, method, startTime) {
415
- const message = {
416
- jsonrpc: version,
417
- id: requestMessage.id
418
- };
419
- if (resultOrError instanceof messages_1.ResponseError) {
420
- message.error = resultOrError.toJson();
421
- }
422
- else {
423
- message.result = resultOrError === undefined ? null : resultOrError;
424
- }
425
- traceSendingResponse(message, method, startTime);
426
- messageWriter.write(message).catch(() => logger.error(`Sending response failed.`));
427
- }
428
- function replyError(error, method, startTime) {
429
- const message = {
430
- jsonrpc: version,
431
- id: requestMessage.id,
432
- error: error.toJson()
433
- };
434
- traceSendingResponse(message, method, startTime);
435
- messageWriter.write(message).catch(() => logger.error(`Sending response failed.`));
436
- }
437
- function replySuccess(result, method, startTime) {
438
- // The JSON RPC defines that a response must either have a result or an error
439
- // So we can't treat undefined as a valid response result.
440
- if (result === undefined) {
441
- result = null;
442
- }
443
- const message = {
444
- jsonrpc: version,
445
- id: requestMessage.id,
446
- result: result
447
- };
448
- traceSendingResponse(message, method, startTime);
449
- messageWriter.write(message).catch(() => logger.error(`Sending response failed.`));
450
- }
451
- traceReceivedRequest(requestMessage);
452
- const element = requestHandlers.get(requestMessage.method);
453
- let type;
454
- let requestHandler;
455
- if (element) {
456
- type = element.type;
457
- requestHandler = element.handler;
458
- }
459
- const startTime = Date.now();
460
- if (requestHandler || starRequestHandler) {
461
- const tokenKey = requestMessage.id ?? String(Date.now()); //
462
- const cancellationSource = IdCancellationReceiverStrategy.is(cancellationStrategy.receiver)
463
- ? cancellationStrategy.receiver.createCancellationTokenSource(tokenKey)
464
- : cancellationStrategy.receiver.createCancellationTokenSource(requestMessage);
465
- if (requestMessage.id !== null && knownCanceledRequests.has(requestMessage.id)) {
466
- cancellationSource.cancel();
467
- }
468
- if (requestMessage.id !== null) {
469
- requestTokens.set(tokenKey, cancellationSource);
470
- }
471
- try {
472
- let handlerResult;
473
- if (requestHandler) {
474
- if (requestMessage.params === undefined) {
475
- if (type !== undefined && type.numberOfParams !== 0) {
476
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines ${type.numberOfParams} params but received none.`), requestMessage.method, startTime);
477
- return;
478
- }
479
- handlerResult = requestHandler(cancellationSource.token);
480
- }
481
- else if (Array.isArray(requestMessage.params)) {
482
- if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byName) {
483
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines parameters by name but received parameters by position`), requestMessage.method, startTime);
484
- return;
485
- }
486
- handlerResult = requestHandler(...requestMessage.params, cancellationSource.token);
487
- }
488
- else {
489
- if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byPosition) {
490
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InvalidParams, `Request ${requestMessage.method} defines parameters by position but received parameters by name`), requestMessage.method, startTime);
491
- return;
492
- }
493
- handlerResult = requestHandler(requestMessage.params, cancellationSource.token);
494
- }
495
- }
496
- else if (starRequestHandler) {
497
- handlerResult = starRequestHandler(requestMessage.method, requestMessage.params, cancellationSource.token);
498
- }
499
- const promise = handlerResult;
500
- if (!handlerResult) {
501
- requestTokens.delete(tokenKey);
502
- replySuccess(handlerResult, requestMessage.method, startTime);
503
- }
504
- else if (promise.then) {
505
- promise.then((resultOrError) => {
506
- requestTokens.delete(tokenKey);
507
- reply(resultOrError, requestMessage.method, startTime);
508
- }, error => {
509
- requestTokens.delete(tokenKey);
510
- if (error instanceof messages_1.ResponseError) {
511
- replyError(error, requestMessage.method, startTime);
512
- }
513
- else if (error && Is.string(error.message)) {
514
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);
515
- }
516
- else {
517
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);
518
- }
519
- });
520
- }
521
- else {
522
- requestTokens.delete(tokenKey);
523
- reply(handlerResult, requestMessage.method, startTime);
524
- }
525
- }
526
- catch (error) {
527
- requestTokens.delete(tokenKey);
528
- if (error instanceof messages_1.ResponseError) {
529
- reply(error, requestMessage.method, startTime);
530
- }
531
- else if (error && Is.string(error.message)) {
532
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed with message: ${error.message}`), requestMessage.method, startTime);
533
- }
534
- else {
535
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.InternalError, `Request ${requestMessage.method} failed unexpectedly without providing any details.`), requestMessage.method, startTime);
536
- }
537
- }
538
- }
539
- else {
540
- replyError(new messages_1.ResponseError(messages_1.ErrorCodes.MethodNotFound, `Unhandled method ${requestMessage.method}`), requestMessage.method, startTime);
541
- }
542
- }
543
- function handleResponse(responseMessage) {
544
- if (isDisposed()) {
545
- // See handle request.
546
- return;
547
- }
548
- if (responseMessage.id === null) {
549
- if (responseMessage.error) {
550
- logger.error(`Received response message without id: Error is: \n${JSON.stringify(responseMessage.error, undefined, 4)}`);
551
- }
552
- else {
553
- logger.error(`Received response message without id. No further error information provided.`);
554
- }
555
- }
556
- else {
557
- const key = responseMessage.id;
558
- const responsePromise = responsePromises.get(key);
559
- traceReceivedResponse(responseMessage, responsePromise);
560
- if (responsePromise !== undefined) {
561
- responsePromises.delete(key);
562
- try {
563
- if (responseMessage.error) {
564
- const error = responseMessage.error;
565
- responsePromise.reject(new messages_1.ResponseError(error.code, error.message, error.data));
566
- }
567
- else if (responseMessage.result !== undefined) {
568
- responsePromise.resolve(responseMessage.result);
569
- }
570
- else {
571
- throw new Error('Should never happen.');
572
- }
573
- }
574
- catch (error) {
575
- if (error.message) {
576
- logger.error(`Response handler '${responsePromise.method}' failed with message: ${error.message}`);
577
- }
578
- else {
579
- logger.error(`Response handler '${responsePromise.method}' failed unexpectedly.`);
580
- }
581
- }
582
- }
583
- }
584
- }
585
- function handleNotification(message) {
586
- if (isDisposed()) {
587
- // See handle request.
588
- return;
589
- }
590
- let type = undefined;
591
- let notificationHandler;
592
- if (message.method === CancelNotification.type.method) {
593
- const cancelId = message.params.id;
594
- knownCanceledRequests.delete(cancelId);
595
- traceReceivedNotification(message);
596
- return;
597
- }
598
- else {
599
- const element = notificationHandlers.get(message.method);
600
- if (element) {
601
- notificationHandler = element.handler;
602
- type = element.type;
603
- }
604
- }
605
- if (notificationHandler || starNotificationHandler) {
606
- try {
607
- traceReceivedNotification(message);
608
- if (notificationHandler) {
609
- if (message.params === undefined) {
610
- if (type !== undefined) {
611
- if (type.numberOfParams !== 0 && type.parameterStructures !== messages_1.ParameterStructures.byName) {
612
- logger.error(`Notification ${message.method} defines ${type.numberOfParams} params but received none.`);
613
- }
614
- }
615
- notificationHandler();
616
- }
617
- else if (Array.isArray(message.params)) {
618
- // There are JSON-RPC libraries that send progress message as positional params although
619
- // specified as named. So convert them if this is the case.
620
- const params = message.params;
621
- if (message.method === ProgressNotification.type.method && params.length === 2 && ProgressToken.is(params[0])) {
622
- notificationHandler({ token: params[0], value: params[1] });
623
- }
624
- else {
625
- if (type !== undefined) {
626
- if (type.parameterStructures === messages_1.ParameterStructures.byName) {
627
- logger.error(`Notification ${message.method} defines parameters by name but received parameters by position`);
628
- }
629
- if (type.numberOfParams !== message.params.length) {
630
- logger.error(`Notification ${message.method} defines ${type.numberOfParams} params but received ${params.length} arguments`);
631
- }
632
- }
633
- notificationHandler(...params);
634
- }
635
- }
636
- else {
637
- if (type !== undefined && type.parameterStructures === messages_1.ParameterStructures.byPosition) {
638
- logger.error(`Notification ${message.method} defines parameters by position but received parameters by name`);
639
- }
640
- notificationHandler(message.params);
641
- }
642
- }
643
- else if (starNotificationHandler) {
644
- starNotificationHandler(message.method, message.params);
645
- }
646
- }
647
- catch (error) {
648
- if (error.message) {
649
- logger.error(`Notification handler '${message.method}' failed with message: ${error.message}`);
650
- }
651
- else {
652
- logger.error(`Notification handler '${message.method}' failed unexpectedly.`);
653
- }
654
- }
655
- }
656
- else {
657
- unhandledNotificationEmitter.fire(message);
658
- }
659
- }
660
- function handleInvalidMessage(message) {
661
- if (!message) {
662
- logger.error('Received empty message.');
663
- return;
664
- }
665
- logger.error(`Received message which is neither a response nor a notification message:\n${JSON.stringify(message, null, 4)}`);
666
- // Test whether we find an id to reject the promise
667
- const responseMessage = message;
668
- if (Is.string(responseMessage.id) || Is.number(responseMessage.id)) {
669
- const key = responseMessage.id;
670
- const responseHandler = responsePromises.get(key);
671
- if (responseHandler) {
672
- responseHandler.reject(new Error('The received response has neither a result nor an error property.'));
673
- }
674
- }
675
- }
676
- function stringifyTrace(params) {
677
- if (params === undefined || params === null) {
678
- return undefined;
679
- }
680
- switch (trace) {
681
- case Trace.Verbose:
682
- return JSON.stringify(params, null, 4);
683
- case Trace.Compact:
684
- return JSON.stringify(params);
685
- default:
686
- return undefined;
687
- }
688
- }
689
- function traceSendingRequest(message) {
690
- if (trace === Trace.Off || !tracer) {
691
- return;
692
- }
693
- if (traceFormat === TraceFormat.Text) {
694
- let data = undefined;
695
- if ((trace === Trace.Verbose || trace === Trace.Compact) && message.params) {
696
- data = `Params: ${stringifyTrace(message.params)}\n\n`;
697
- }
698
- tracer.log(`Sending request '${message.method} - (${message.id})'.`, data);
699
- }
700
- else {
701
- logLSPMessage('send-request', message);
702
- }
703
- }
704
- function traceSendingNotification(message) {
705
- if (trace === Trace.Off || !tracer) {
706
- return;
707
- }
708
- if (traceFormat === TraceFormat.Text) {
709
- let data = undefined;
710
- if (trace === Trace.Verbose || trace === Trace.Compact) {
711
- if (message.params) {
712
- data = `Params: ${stringifyTrace(message.params)}\n\n`;
713
- }
714
- else {
715
- data = 'No parameters provided.\n\n';
716
- }
717
- }
718
- tracer.log(`Sending notification '${message.method}'.`, data);
719
- }
720
- else {
721
- logLSPMessage('send-notification', message);
722
- }
723
- }
724
- function traceSendingResponse(message, method, startTime) {
725
- if (trace === Trace.Off || !tracer) {
726
- return;
727
- }
728
- if (traceFormat === TraceFormat.Text) {
729
- let data = undefined;
730
- if (trace === Trace.Verbose || trace === Trace.Compact) {
731
- if (message.error && message.error.data) {
732
- data = `Error data: ${stringifyTrace(message.error.data)}\n\n`;
733
- }
734
- else {
735
- if (message.result) {
736
- data = `Result: ${stringifyTrace(message.result)}\n\n`;
737
- }
738
- else if (message.error === undefined) {
739
- data = 'No result returned.\n\n';
740
- }
741
- }
742
- }
743
- tracer.log(`Sending response '${method} - (${message.id})'. Processing request took ${Date.now() - startTime}ms`, data);
744
- }
745
- else {
746
- logLSPMessage('send-response', message);
747
- }
748
- }
749
- function traceReceivedRequest(message) {
750
- if (trace === Trace.Off || !tracer) {
751
- return;
752
- }
753
- if (traceFormat === TraceFormat.Text) {
754
- let data = undefined;
755
- if ((trace === Trace.Verbose || trace === Trace.Compact) && message.params) {
756
- data = `Params: ${stringifyTrace(message.params)}\n\n`;
757
- }
758
- tracer.log(`Received request '${message.method} - (${message.id})'.`, data);
759
- }
760
- else {
761
- logLSPMessage('receive-request', message);
762
- }
763
- }
764
- function traceReceivedNotification(message) {
765
- if (trace === Trace.Off || !tracer || message.method === LogTraceNotification.type.method) {
766
- return;
767
- }
768
- if (traceFormat === TraceFormat.Text) {
769
- let data = undefined;
770
- if (trace === Trace.Verbose || trace === Trace.Compact) {
771
- if (message.params) {
772
- data = `Params: ${stringifyTrace(message.params)}\n\n`;
773
- }
774
- else {
775
- data = 'No parameters provided.\n\n';
776
- }
777
- }
778
- tracer.log(`Received notification '${message.method}'.`, data);
779
- }
780
- else {
781
- logLSPMessage('receive-notification', message);
782
- }
783
- }
784
- function traceReceivedResponse(message, responsePromise) {
785
- if (trace === Trace.Off || !tracer) {
786
- return;
787
- }
788
- if (traceFormat === TraceFormat.Text) {
789
- let data = undefined;
790
- if (trace === Trace.Verbose || trace === Trace.Compact) {
791
- if (message.error && message.error.data) {
792
- data = `Error data: ${stringifyTrace(message.error.data)}\n\n`;
793
- }
794
- else {
795
- if (message.result) {
796
- data = `Result: ${stringifyTrace(message.result)}\n\n`;
797
- }
798
- else if (message.error === undefined) {
799
- data = 'No result returned.\n\n';
800
- }
801
- }
802
- }
803
- if (responsePromise) {
804
- const error = message.error ? ` Request failed: ${message.error.message} (${message.error.code}).` : '';
805
- tracer.log(`Received response '${responsePromise.method} - (${message.id})' in ${Date.now() - responsePromise.timerStart}ms.${error}`, data);
806
- }
807
- else {
808
- tracer.log(`Received response ${message.id} without active response promise.`, data);
809
- }
810
- }
811
- else {
812
- logLSPMessage('receive-response', message);
813
- }
814
- }
815
- function logLSPMessage(type, message) {
816
- if (!tracer || trace === Trace.Off) {
817
- return;
818
- }
819
- const lspMessage = {
820
- isLSPMessage: true,
821
- type,
822
- message,
823
- timestamp: Date.now()
824
- };
825
- tracer.log(lspMessage);
826
- }
827
- function throwIfClosedOrDisposed() {
828
- if (isClosed()) {
829
- throw new ConnectionError(ConnectionErrors.Closed, 'Connection is closed.');
830
- }
831
- if (isDisposed()) {
832
- throw new ConnectionError(ConnectionErrors.Disposed, 'Connection is disposed.');
833
- }
834
- }
835
- function throwIfListening() {
836
- if (isListening()) {
837
- throw new ConnectionError(ConnectionErrors.AlreadyListening, 'Connection is already listening');
838
- }
839
- }
840
- function throwIfNotListening() {
841
- if (!isListening()) {
842
- throw new Error('Call listen() first.');
843
- }
844
- }
845
- function undefinedToNull(param) {
846
- if (param === undefined) {
847
- return null;
848
- }
849
- else {
850
- return param;
851
- }
852
- }
853
- function nullToUndefined(param) {
854
- if (param === null) {
855
- return undefined;
856
- }
857
- else {
858
- return param;
859
- }
860
- }
861
- function isNamedParam(param) {
862
- return param !== undefined && param !== null && !Array.isArray(param) && typeof param === 'object';
863
- }
864
- function computeSingleParam(parameterStructures, param) {
865
- switch (parameterStructures) {
866
- case messages_1.ParameterStructures.auto:
867
- if (isNamedParam(param)) {
868
- return nullToUndefined(param);
869
- }
870
- else {
871
- return [undefinedToNull(param)];
872
- }
873
- case messages_1.ParameterStructures.byName:
874
- if (!isNamedParam(param)) {
875
- throw new Error(`Received parameters by name but param is not an object literal.`);
876
- }
877
- return nullToUndefined(param);
878
- case messages_1.ParameterStructures.byPosition:
879
- return [undefinedToNull(param)];
880
- default:
881
- throw new Error(`Unknown parameter structure ${parameterStructures.toString()}`);
882
- }
883
- }
884
- function computeMessageParams(type, params) {
885
- let result;
886
- const numberOfParams = type.numberOfParams;
887
- switch (numberOfParams) {
888
- case 0:
889
- result = undefined;
890
- break;
891
- case 1:
892
- result = computeSingleParam(type.parameterStructures, params[0]);
893
- break;
894
- default:
895
- result = [];
896
- for (let i = 0; i < params.length && i < numberOfParams; i++) {
897
- result.push(undefinedToNull(params[i]));
898
- }
899
- if (params.length < numberOfParams) {
900
- for (let i = params.length; i < numberOfParams; i++) {
901
- result.push(null);
902
- }
903
- }
904
- break;
905
- }
906
- return result;
907
- }
908
- const connection = {
909
- sendNotification: (type, ...args) => {
910
- throwIfClosedOrDisposed();
911
- let method;
912
- let messageParams;
913
- if (Is.string(type)) {
914
- method = type;
915
- const first = args[0];
916
- let paramStart = 0;
917
- let parameterStructures = messages_1.ParameterStructures.auto;
918
- if (messages_1.ParameterStructures.is(first)) {
919
- paramStart = 1;
920
- parameterStructures = first;
921
- }
922
- let paramEnd = args.length;
923
- const numberOfParams = paramEnd - paramStart;
924
- switch (numberOfParams) {
925
- case 0:
926
- messageParams = undefined;
927
- break;
928
- case 1:
929
- messageParams = computeSingleParam(parameterStructures, args[paramStart]);
930
- break;
931
- default:
932
- if (parameterStructures === messages_1.ParameterStructures.byName) {
933
- throw new Error(`Received ${numberOfParams} parameters for 'by Name' notification parameter structure.`);
934
- }
935
- messageParams = args.slice(paramStart, paramEnd).map(value => undefinedToNull(value));
936
- break;
937
- }
938
- }
939
- else {
940
- const params = args;
941
- method = type.method;
942
- messageParams = computeMessageParams(type, params);
943
- }
944
- const notificationMessage = {
945
- jsonrpc: version,
946
- method: method,
947
- params: messageParams
948
- };
949
- traceSendingNotification(notificationMessage);
950
- return messageWriter.write(notificationMessage).catch((error) => {
951
- logger.error(`Sending notification failed.`);
952
- throw error;
953
- });
954
- },
955
- onNotification: (type, handler) => {
956
- throwIfClosedOrDisposed();
957
- let method;
958
- if (Is.func(type)) {
959
- starNotificationHandler = type;
960
- }
961
- else if (handler) {
962
- if (Is.string(type)) {
963
- method = type;
964
- notificationHandlers.set(type, { type: undefined, handler });
965
- }
966
- else {
967
- method = type.method;
968
- notificationHandlers.set(type.method, { type, handler });
969
- }
970
- }
971
- return {
972
- dispose: () => {
973
- if (method !== undefined) {
974
- notificationHandlers.delete(method);
975
- }
976
- else {
977
- starNotificationHandler = undefined;
978
- }
979
- }
980
- };
981
- },
982
- onProgress: (_type, token, handler) => {
983
- if (progressHandlers.has(token)) {
984
- throw new Error(`Progress handler for token ${token} already registered`);
985
- }
986
- progressHandlers.set(token, handler);
987
- return {
988
- dispose: () => {
989
- progressHandlers.delete(token);
990
- }
991
- };
992
- },
993
- sendProgress: (_type, token, value) => {
994
- // This should not await but simple return to ensure that we don't have another
995
- // async scheduling. Otherwise one send could overtake another send.
996
- return connection.sendNotification(ProgressNotification.type, { token, value });
997
- },
998
- onUnhandledProgress: unhandledProgressEmitter.event,
999
- sendRequest: (type, ...args) => {
1000
- throwIfClosedOrDisposed();
1001
- throwIfNotListening();
1002
- let method;
1003
- let messageParams;
1004
- let token = undefined;
1005
- if (Is.string(type)) {
1006
- method = type;
1007
- const first = args[0];
1008
- const last = args[args.length - 1];
1009
- let paramStart = 0;
1010
- let parameterStructures = messages_1.ParameterStructures.auto;
1011
- if (messages_1.ParameterStructures.is(first)) {
1012
- paramStart = 1;
1013
- parameterStructures = first;
1014
- }
1015
- let paramEnd = args.length;
1016
- if (cancellation_1.CancellationToken.is(last)) {
1017
- paramEnd = paramEnd - 1;
1018
- token = last;
1019
- }
1020
- const numberOfParams = paramEnd - paramStart;
1021
- switch (numberOfParams) {
1022
- case 0:
1023
- messageParams = undefined;
1024
- break;
1025
- case 1:
1026
- messageParams = computeSingleParam(parameterStructures, args[paramStart]);
1027
- break;
1028
- default:
1029
- if (parameterStructures === messages_1.ParameterStructures.byName) {
1030
- throw new Error(`Received ${numberOfParams} parameters for 'by Name' request parameter structure.`);
1031
- }
1032
- messageParams = args.slice(paramStart, paramEnd).map(value => undefinedToNull(value));
1033
- break;
1034
- }
1035
- }
1036
- else {
1037
- const params = args;
1038
- method = type.method;
1039
- messageParams = computeMessageParams(type, params);
1040
- const numberOfParams = type.numberOfParams;
1041
- token = cancellation_1.CancellationToken.is(params[numberOfParams]) ? params[numberOfParams] : undefined;
1042
- }
1043
- const id = sequenceNumber++;
1044
- let disposable;
1045
- if (token) {
1046
- disposable = token.onCancellationRequested(() => {
1047
- const p = cancellationStrategy.sender.sendCancellation(connection, id);
1048
- if (p === undefined) {
1049
- logger.log(`Received no promise from cancellation strategy when cancelling id ${id}`);
1050
- return Promise.resolve();
1051
- }
1052
- else {
1053
- return p.catch(() => {
1054
- logger.log(`Sending cancellation messages for id ${id} failed`);
1055
- });
1056
- }
1057
- });
1058
- }
1059
- const requestMessage = {
1060
- jsonrpc: version,
1061
- id: id,
1062
- method: method,
1063
- params: messageParams
1064
- };
1065
- traceSendingRequest(requestMessage);
1066
- if (typeof cancellationStrategy.sender.enableCancellation === 'function') {
1067
- cancellationStrategy.sender.enableCancellation(requestMessage);
1068
- }
1069
- return new Promise(async (resolve, reject) => {
1070
- const resolveWithCleanup = (r) => {
1071
- resolve(r);
1072
- cancellationStrategy.sender.cleanup(id);
1073
- disposable?.dispose();
1074
- };
1075
- const rejectWithCleanup = (r) => {
1076
- reject(r);
1077
- cancellationStrategy.sender.cleanup(id);
1078
- disposable?.dispose();
1079
- };
1080
- const responsePromise = { method: method, timerStart: Date.now(), resolve: resolveWithCleanup, reject: rejectWithCleanup };
1081
- try {
1082
- await messageWriter.write(requestMessage);
1083
- responsePromises.set(id, responsePromise);
1084
- }
1085
- catch (error) {
1086
- logger.error(`Sending request failed.`);
1087
- // Writing the message failed. So we need to reject the promise.
1088
- responsePromise.reject(new messages_1.ResponseError(messages_1.ErrorCodes.MessageWriteError, error.message ? error.message : 'Unknown reason'));
1089
- throw error;
1090
- }
1091
- });
1092
- },
1093
- onRequest: (type, handler) => {
1094
- throwIfClosedOrDisposed();
1095
- let method = null;
1096
- if (StarRequestHandler.is(type)) {
1097
- method = undefined;
1098
- starRequestHandler = type;
1099
- }
1100
- else if (Is.string(type)) {
1101
- method = null;
1102
- if (handler !== undefined) {
1103
- method = type;
1104
- requestHandlers.set(type, { handler: handler, type: undefined });
1105
- }
1106
- }
1107
- else {
1108
- if (handler !== undefined) {
1109
- method = type.method;
1110
- requestHandlers.set(type.method, { type, handler });
1111
- }
1112
- }
1113
- return {
1114
- dispose: () => {
1115
- if (method === null) {
1116
- return;
1117
- }
1118
- if (method !== undefined) {
1119
- requestHandlers.delete(method);
1120
- }
1121
- else {
1122
- starRequestHandler = undefined;
1123
- }
1124
- }
1125
- };
1126
- },
1127
- hasPendingResponse: () => {
1128
- return responsePromises.size > 0;
1129
- },
1130
- trace: async (_value, _tracer, sendNotificationOrTraceOptions) => {
1131
- let _sendNotification = false;
1132
- let _traceFormat = TraceFormat.Text;
1133
- if (sendNotificationOrTraceOptions !== undefined) {
1134
- if (Is.boolean(sendNotificationOrTraceOptions)) {
1135
- _sendNotification = sendNotificationOrTraceOptions;
1136
- }
1137
- else {
1138
- _sendNotification = sendNotificationOrTraceOptions.sendNotification || false;
1139
- _traceFormat = sendNotificationOrTraceOptions.traceFormat || TraceFormat.Text;
1140
- }
1141
- }
1142
- trace = _value;
1143
- traceFormat = _traceFormat;
1144
- if (trace === Trace.Off) {
1145
- tracer = undefined;
1146
- }
1147
- else {
1148
- tracer = _tracer;
1149
- }
1150
- if (_sendNotification && !isClosed() && !isDisposed()) {
1151
- await connection.sendNotification(SetTraceNotification.type, { value: Trace.toString(_value) });
1152
- }
1153
- },
1154
- onError: errorEmitter.event,
1155
- onClose: closeEmitter.event,
1156
- onUnhandledNotification: unhandledNotificationEmitter.event,
1157
- onDispose: disposeEmitter.event,
1158
- end: () => {
1159
- messageWriter.end();
1160
- },
1161
- dispose: () => {
1162
- if (isDisposed()) {
1163
- return;
1164
- }
1165
- state = ConnectionState.Disposed;
1166
- disposeEmitter.fire(undefined);
1167
- const error = new messages_1.ResponseError(messages_1.ErrorCodes.PendingResponseRejected, 'Pending response rejected since connection got disposed');
1168
- for (const promise of responsePromises.values()) {
1169
- promise.reject(error);
1170
- }
1171
- responsePromises = new Map();
1172
- requestTokens = new Map();
1173
- knownCanceledRequests = new Set();
1174
- messageQueue = new linkedMap_1.LinkedMap();
1175
- // Test for backwards compatibility
1176
- if (Is.func(messageWriter.dispose)) {
1177
- messageWriter.dispose();
1178
- }
1179
- if (Is.func(messageReader.dispose)) {
1180
- messageReader.dispose();
1181
- }
1182
- },
1183
- listen: () => {
1184
- throwIfClosedOrDisposed();
1185
- throwIfListening();
1186
- state = ConnectionState.Listening;
1187
- messageReader.listen(callback);
1188
- },
1189
- inspect: () => {
1190
- // eslint-disable-next-line no-console
1191
- (0, ral_1.default)().console.log('inspect');
1192
- }
1193
- };
1194
- connection.onNotification(LogTraceNotification.type, (params) => {
1195
- if (trace === Trace.Off || !tracer) {
1196
- return;
1197
- }
1198
- const verbose = trace === Trace.Verbose || trace === Trace.Compact;
1199
- tracer.log(params.message, verbose ? params.verbose : undefined);
1200
- });
1201
- connection.onNotification(ProgressNotification.type, (params) => {
1202
- const handler = progressHandlers.get(params.token);
1203
- if (handler) {
1204
- handler(params.value);
1205
- }
1206
- else {
1207
- unhandledProgressEmitter.fire(params);
1208
- }
1209
- });
1210
- return connection;
1211
- }
1212
- exports.createMessageConnection = createMessageConnection;