css-variable-lsp 1.0.0 → 1.0.2

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 (454) hide show
  1. package/README.md +5 -9
  2. package/package.json +5 -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/src/server.js +1 -0
  18. package/server/out/server/src/server.js.map +1 -1
  19. package/server/out/server.js +458 -0
  20. package/server/out/server.js.map +1 -0
  21. package/server/out/specificity.js +138 -0
  22. package/server/out/specificity.js.map +1 -0
  23. package/server/out/specificity.test.js +66 -0
  24. package/server/out/specificity.test.js.map +1 -0
  25. package/server/out/test.js +112 -0
  26. package/server/out/test.js.map +1 -0
  27. package/server/out/tsconfig.tsbuildinfo +1 -1
  28. package/server/src/server.ts +2 -0
  29. package/server/tsconfig.tsbuildinfo +1 -0
  30. package/client/node_modules/.package-lock.json +0 -110
  31. package/client/node_modules/@types/node/LICENSE +0 -21
  32. package/client/node_modules/@types/node/README.md +0 -15
  33. package/client/node_modules/@types/node/assert/strict.d.ts +0 -8
  34. package/client/node_modules/@types/node/assert.d.ts +0 -1005
  35. package/client/node_modules/@types/node/async_hooks.d.ts +0 -586
  36. package/client/node_modules/@types/node/buffer.buffer.d.ts +0 -457
  37. package/client/node_modules/@types/node/buffer.d.ts +0 -1901
  38. package/client/node_modules/@types/node/child_process.d.ts +0 -1453
  39. package/client/node_modules/@types/node/cluster.d.ts +0 -578
  40. package/client/node_modules/@types/node/compatibility/disposable.d.ts +0 -14
  41. package/client/node_modules/@types/node/compatibility/index.d.ts +0 -9
  42. package/client/node_modules/@types/node/compatibility/indexable.d.ts +0 -20
  43. package/client/node_modules/@types/node/compatibility/iterators.d.ts +0 -20
  44. package/client/node_modules/@types/node/console.d.ts +0 -452
  45. package/client/node_modules/@types/node/constants.d.ts +0 -21
  46. package/client/node_modules/@types/node/crypto.d.ts +0 -4504
  47. package/client/node_modules/@types/node/dgram.d.ts +0 -596
  48. package/client/node_modules/@types/node/diagnostics_channel.d.ts +0 -551
  49. package/client/node_modules/@types/node/dns/promises.d.ts +0 -477
  50. package/client/node_modules/@types/node/dns.d.ts +0 -860
  51. package/client/node_modules/@types/node/domain.d.ts +0 -170
  52. package/client/node_modules/@types/node/events.d.ts +0 -863
  53. package/client/node_modules/@types/node/fs/promises.d.ts +0 -1208
  54. package/client/node_modules/@types/node/fs.d.ts +0 -4332
  55. package/client/node_modules/@types/node/globals.d.ts +0 -170
  56. package/client/node_modules/@types/node/globals.typedarray.d.ts +0 -21
  57. package/client/node_modules/@types/node/http.d.ts +0 -1919
  58. package/client/node_modules/@types/node/http2.d.ts +0 -2580
  59. package/client/node_modules/@types/node/https.d.ts +0 -549
  60. package/client/node_modules/@types/node/index.d.ts +0 -92
  61. package/client/node_modules/@types/node/inspector.generated.d.ts +0 -2775
  62. package/client/node_modules/@types/node/module.d.ts +0 -503
  63. package/client/node_modules/@types/node/net.d.ts +0 -924
  64. package/client/node_modules/@types/node/os.d.ts +0 -480
  65. package/client/node_modules/@types/node/package.json +0 -145
  66. package/client/node_modules/@types/node/path.d.ts +0 -191
  67. package/client/node_modules/@types/node/perf_hooks.d.ts +0 -860
  68. package/client/node_modules/@types/node/process.d.ts +0 -1632
  69. package/client/node_modules/@types/node/punycode.d.ts +0 -117
  70. package/client/node_modules/@types/node/querystring.d.ts +0 -140
  71. package/client/node_modules/@types/node/readline/promises.d.ts +0 -154
  72. package/client/node_modules/@types/node/readline.d.ts +0 -715
  73. package/client/node_modules/@types/node/repl.d.ts +0 -430
  74. package/client/node_modules/@types/node/stream/consumers.d.ts +0 -38
  75. package/client/node_modules/@types/node/stream/promises.d.ts +0 -90
  76. package/client/node_modules/@types/node/stream/web.d.ts +0 -527
  77. package/client/node_modules/@types/node/stream.d.ts +0 -1680
  78. package/client/node_modules/@types/node/string_decoder.d.ts +0 -67
  79. package/client/node_modules/@types/node/test.d.ts +0 -1208
  80. package/client/node_modules/@types/node/timers/promises.d.ts +0 -108
  81. package/client/node_modules/@types/node/timers.d.ts +0 -286
  82. package/client/node_modules/@types/node/tls.d.ts +0 -1204
  83. package/client/node_modules/@types/node/trace_events.d.ts +0 -171
  84. package/client/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +0 -455
  85. package/client/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +0 -19
  86. package/client/node_modules/@types/node/ts5.6/index.d.ts +0 -92
  87. package/client/node_modules/@types/node/tty.d.ts +0 -206
  88. package/client/node_modules/@types/node/url.d.ts +0 -957
  89. package/client/node_modules/@types/node/util.d.ts +0 -2083
  90. package/client/node_modules/@types/node/v8.d.ts +0 -753
  91. package/client/node_modules/@types/node/vm.d.ts +0 -704
  92. package/client/node_modules/@types/node/wasi.d.ts +0 -160
  93. package/client/node_modules/@types/node/web-globals/abortcontroller.d.ts +0 -34
  94. package/client/node_modules/@types/node/web-globals/domexception.d.ts +0 -68
  95. package/client/node_modules/@types/node/web-globals/events.d.ts +0 -81
  96. package/client/node_modules/@types/node/web-globals/fetch.d.ts +0 -38
  97. package/client/node_modules/@types/node/worker_threads.d.ts +0 -698
  98. package/client/node_modules/@types/node/zlib.d.ts +0 -517
  99. package/client/node_modules/@types/vscode/LICENSE +0 -21
  100. package/client/node_modules/@types/vscode/README.md +0 -15
  101. package/client/node_modules/@types/vscode/index.d.ts +0 -21145
  102. package/client/node_modules/@types/vscode/package.json +0 -26
  103. package/client/node_modules/balanced-match/.github/FUNDING.yml +0 -2
  104. package/client/node_modules/balanced-match/LICENSE.md +0 -21
  105. package/client/node_modules/balanced-match/README.md +0 -97
  106. package/client/node_modules/balanced-match/index.js +0 -62
  107. package/client/node_modules/balanced-match/package.json +0 -48
  108. package/client/node_modules/brace-expansion/.github/FUNDING.yml +0 -2
  109. package/client/node_modules/brace-expansion/LICENSE +0 -21
  110. package/client/node_modules/brace-expansion/README.md +0 -135
  111. package/client/node_modules/brace-expansion/index.js +0 -203
  112. package/client/node_modules/brace-expansion/package.json +0 -49
  113. package/client/node_modules/minimatch/LICENSE +0 -15
  114. package/client/node_modules/minimatch/README.md +0 -259
  115. package/client/node_modules/minimatch/lib/path.js +0 -4
  116. package/client/node_modules/minimatch/minimatch.js +0 -944
  117. package/client/node_modules/minimatch/package.json +0 -35
  118. package/client/node_modules/semver/LICENSE +0 -15
  119. package/client/node_modules/semver/README.md +0 -664
  120. package/client/node_modules/semver/bin/semver.js +0 -191
  121. package/client/node_modules/semver/classes/comparator.js +0 -143
  122. package/client/node_modules/semver/classes/index.js +0 -7
  123. package/client/node_modules/semver/classes/range.js +0 -557
  124. package/client/node_modules/semver/classes/semver.js +0 -333
  125. package/client/node_modules/semver/functions/clean.js +0 -8
  126. package/client/node_modules/semver/functions/cmp.js +0 -54
  127. package/client/node_modules/semver/functions/coerce.js +0 -62
  128. package/client/node_modules/semver/functions/compare-build.js +0 -9
  129. package/client/node_modules/semver/functions/compare-loose.js +0 -5
  130. package/client/node_modules/semver/functions/compare.js +0 -7
  131. package/client/node_modules/semver/functions/diff.js +0 -60
  132. package/client/node_modules/semver/functions/eq.js +0 -5
  133. package/client/node_modules/semver/functions/gt.js +0 -5
  134. package/client/node_modules/semver/functions/gte.js +0 -5
  135. package/client/node_modules/semver/functions/inc.js +0 -21
  136. package/client/node_modules/semver/functions/lt.js +0 -5
  137. package/client/node_modules/semver/functions/lte.js +0 -5
  138. package/client/node_modules/semver/functions/major.js +0 -5
  139. package/client/node_modules/semver/functions/minor.js +0 -5
  140. package/client/node_modules/semver/functions/neq.js +0 -5
  141. package/client/node_modules/semver/functions/parse.js +0 -18
  142. package/client/node_modules/semver/functions/patch.js +0 -5
  143. package/client/node_modules/semver/functions/prerelease.js +0 -8
  144. package/client/node_modules/semver/functions/rcompare.js +0 -5
  145. package/client/node_modules/semver/functions/rsort.js +0 -5
  146. package/client/node_modules/semver/functions/satisfies.js +0 -12
  147. package/client/node_modules/semver/functions/sort.js +0 -5
  148. package/client/node_modules/semver/functions/valid.js +0 -8
  149. package/client/node_modules/semver/index.js +0 -91
  150. package/client/node_modules/semver/internal/constants.js +0 -37
  151. package/client/node_modules/semver/internal/debug.js +0 -11
  152. package/client/node_modules/semver/internal/identifiers.js +0 -29
  153. package/client/node_modules/semver/internal/lrucache.js +0 -42
  154. package/client/node_modules/semver/internal/parse-options.js +0 -17
  155. package/client/node_modules/semver/internal/re.js +0 -223
  156. package/client/node_modules/semver/package.json +0 -78
  157. package/client/node_modules/semver/preload.js +0 -4
  158. package/client/node_modules/semver/range.bnf +0 -16
  159. package/client/node_modules/semver/ranges/gtr.js +0 -6
  160. package/client/node_modules/semver/ranges/intersects.js +0 -9
  161. package/client/node_modules/semver/ranges/ltr.js +0 -6
  162. package/client/node_modules/semver/ranges/max-satisfying.js +0 -27
  163. package/client/node_modules/semver/ranges/min-satisfying.js +0 -26
  164. package/client/node_modules/semver/ranges/min-version.js +0 -63
  165. package/client/node_modules/semver/ranges/outside.js +0 -82
  166. package/client/node_modules/semver/ranges/simplify.js +0 -49
  167. package/client/node_modules/semver/ranges/subset.js +0 -249
  168. package/client/node_modules/semver/ranges/to-comparators.js +0 -10
  169. package/client/node_modules/semver/ranges/valid.js +0 -13
  170. package/client/node_modules/undici-types/README.md +0 -6
  171. package/client/node_modules/undici-types/agent.d.ts +0 -31
  172. package/client/node_modules/undici-types/api.d.ts +0 -43
  173. package/client/node_modules/undici-types/balanced-pool.d.ts +0 -18
  174. package/client/node_modules/undici-types/cache.d.ts +0 -36
  175. package/client/node_modules/undici-types/client.d.ts +0 -97
  176. package/client/node_modules/undici-types/connector.d.ts +0 -34
  177. package/client/node_modules/undici-types/content-type.d.ts +0 -21
  178. package/client/node_modules/undici-types/cookies.d.ts +0 -28
  179. package/client/node_modules/undici-types/diagnostics-channel.d.ts +0 -67
  180. package/client/node_modules/undici-types/dispatcher.d.ts +0 -241
  181. package/client/node_modules/undici-types/errors.d.ts +0 -128
  182. package/client/node_modules/undici-types/fetch.d.ts +0 -209
  183. package/client/node_modules/undici-types/file.d.ts +0 -39
  184. package/client/node_modules/undici-types/filereader.d.ts +0 -54
  185. package/client/node_modules/undici-types/formdata.d.ts +0 -108
  186. package/client/node_modules/undici-types/global-dispatcher.d.ts +0 -9
  187. package/client/node_modules/undici-types/global-origin.d.ts +0 -7
  188. package/client/node_modules/undici-types/handlers.d.ts +0 -9
  189. package/client/node_modules/undici-types/header.d.ts +0 -4
  190. package/client/node_modules/undici-types/index.d.ts +0 -63
  191. package/client/node_modules/undici-types/interceptors.d.ts +0 -5
  192. package/client/node_modules/undici-types/mock-agent.d.ts +0 -50
  193. package/client/node_modules/undici-types/mock-client.d.ts +0 -25
  194. package/client/node_modules/undici-types/mock-errors.d.ts +0 -12
  195. package/client/node_modules/undici-types/mock-interceptor.d.ts +0 -93
  196. package/client/node_modules/undici-types/mock-pool.d.ts +0 -25
  197. package/client/node_modules/undici-types/package.json +0 -55
  198. package/client/node_modules/undici-types/patch.d.ts +0 -71
  199. package/client/node_modules/undici-types/pool-stats.d.ts +0 -19
  200. package/client/node_modules/undici-types/pool.d.ts +0 -28
  201. package/client/node_modules/undici-types/proxy-agent.d.ts +0 -30
  202. package/client/node_modules/undici-types/readable.d.ts +0 -61
  203. package/client/node_modules/undici-types/webidl.d.ts +0 -220
  204. package/client/node_modules/undici-types/websocket.d.ts +0 -131
  205. package/client/node_modules/vscode-jsonrpc/License.txt +0 -11
  206. package/client/node_modules/vscode-jsonrpc/README.md +0 -69
  207. package/client/node_modules/vscode-jsonrpc/browser.d.ts +0 -6
  208. package/client/node_modules/vscode-jsonrpc/browser.js +0 -7
  209. package/client/node_modules/vscode-jsonrpc/lib/browser/main.d.ts +0 -17
  210. package/client/node_modules/vscode-jsonrpc/lib/browser/main.js +0 -76
  211. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.d.ts +0 -12
  212. package/client/node_modules/vscode-jsonrpc/lib/browser/ril.js +0 -156
  213. package/client/node_modules/vscode-jsonrpc/lib/common/api.d.ts +0 -14
  214. package/client/node_modules/vscode-jsonrpc/lib/common/api.js +0 -81
  215. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.d.ts +0 -32
  216. package/client/node_modules/vscode-jsonrpc/lib/common/cancellation.js +0 -96
  217. package/client/node_modules/vscode-jsonrpc/lib/common/connection.d.ts +0 -358
  218. package/client/node_modules/vscode-jsonrpc/lib/common/connection.js +0 -1212
  219. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.d.ts +0 -9
  220. package/client/node_modules/vscode-jsonrpc/lib/common/disposable.js +0 -16
  221. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.d.ts +0 -52
  222. package/client/node_modules/vscode-jsonrpc/lib/common/encoding.js +0 -70
  223. package/client/node_modules/vscode-jsonrpc/lib/common/events.d.ts +0 -39
  224. package/client/node_modules/vscode-jsonrpc/lib/common/events.js +0 -128
  225. package/client/node_modules/vscode-jsonrpc/lib/common/is.d.ts +0 -7
  226. package/client/node_modules/vscode-jsonrpc/lib/common/is.js +0 -35
  227. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.d.ts +0 -53
  228. package/client/node_modules/vscode-jsonrpc/lib/common/linkedMap.js +0 -398
  229. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.d.ts +0 -18
  230. package/client/node_modules/vscode-jsonrpc/lib/common/messageBuffer.js +0 -152
  231. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.d.ts +0 -77
  232. package/client/node_modules/vscode-jsonrpc/lib/common/messageReader.js +0 -197
  233. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.d.ts +0 -60
  234. package/client/node_modules/vscode-jsonrpc/lib/common/messageWriter.js +0 -115
  235. package/client/node_modules/vscode-jsonrpc/lib/common/messages.d.ts +0 -369
  236. package/client/node_modules/vscode-jsonrpc/lib/common/messages.js +0 -306
  237. package/client/node_modules/vscode-jsonrpc/lib/common/ral.d.ts +0 -74
  238. package/client/node_modules/vscode-jsonrpc/lib/common/ral.js +0 -23
  239. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.d.ts +0 -10
  240. package/client/node_modules/vscode-jsonrpc/lib/common/semaphore.js +0 -68
  241. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +0 -15
  242. package/client/node_modules/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +0 -76
  243. package/client/node_modules/vscode-jsonrpc/lib/node/main.d.ts +0 -63
  244. package/client/node_modules/vscode-jsonrpc/lib/node/main.js +0 -257
  245. package/client/node_modules/vscode-jsonrpc/lib/node/ril.d.ts +0 -13
  246. package/client/node_modules/vscode-jsonrpc/lib/node/ril.js +0 -161
  247. package/client/node_modules/vscode-jsonrpc/node.cmd +0 -5
  248. package/client/node_modules/vscode-jsonrpc/node.d.ts +0 -6
  249. package/client/node_modules/vscode-jsonrpc/node.js +0 -7
  250. package/client/node_modules/vscode-jsonrpc/package.json +0 -45
  251. package/client/node_modules/vscode-jsonrpc/thirdpartynotices.txt +0 -16
  252. package/client/node_modules/vscode-jsonrpc/typings/thenable.d.ts +0 -5
  253. package/client/node_modules/vscode-languageclient/License.txt +0 -11
  254. package/client/node_modules/vscode-languageclient/README.md +0 -17
  255. package/client/node_modules/vscode-languageclient/browser.d.ts +0 -6
  256. package/client/node_modules/vscode-languageclient/browser.js +0 -7
  257. package/client/node_modules/vscode-languageclient/lib/browser/main.d.ts +0 -8
  258. package/client/node_modules/vscode-languageclient/lib/browser/main.js +0 -37
  259. package/client/node_modules/vscode-languageclient/lib/common/api.d.ts +0 -36
  260. package/client/node_modules/vscode-languageclient/lib/common/api.js +0 -27
  261. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.d.ts +0 -37
  262. package/client/node_modules/vscode-languageclient/lib/common/callHierarchy.js +0 -97
  263. package/client/node_modules/vscode-languageclient/lib/common/client.d.ts +0 -476
  264. package/client/node_modules/vscode-languageclient/lib/common/client.js +0 -1600
  265. package/client/node_modules/vscode-languageclient/lib/common/codeAction.d.ts +0 -19
  266. package/client/node_modules/vscode-languageclient/lib/common/codeAction.js +0 -99
  267. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.d.ts +0 -78
  268. package/client/node_modules/vscode-languageclient/lib/common/codeConverter.js +0 -876
  269. package/client/node_modules/vscode-languageclient/lib/common/codeLens.d.ts +0 -23
  270. package/client/node_modules/vscode-languageclient/lib/common/codeLens.js +0 -78
  271. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.d.ts +0 -25
  272. package/client/node_modules/vscode-languageclient/lib/common/colorProvider.js +0 -74
  273. package/client/node_modules/vscode-languageclient/lib/common/completion.d.ts +0 -20
  274. package/client/node_modules/vscode-languageclient/lib/common/completion.js +0 -126
  275. package/client/node_modules/vscode-languageclient/lib/common/configuration.d.ts +0 -69
  276. package/client/node_modules/vscode-languageclient/lib/common/configuration.js +0 -209
  277. package/client/node_modules/vscode-languageclient/lib/common/declaration.d.ts +0 -16
  278. package/client/node_modules/vscode-languageclient/lib/common/declaration.js +0 -54
  279. package/client/node_modules/vscode-languageclient/lib/common/definition.d.ts +0 -16
  280. package/client/node_modules/vscode-languageclient/lib/common/definition.js +0 -55
  281. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.d.ts +0 -122
  282. package/client/node_modules/vscode-languageclient/lib/common/diagnostic.js +0 -814
  283. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.d.ts +0 -15
  284. package/client/node_modules/vscode-languageclient/lib/common/documentHighlight.js +0 -50
  285. package/client/node_modules/vscode-languageclient/lib/common/documentLink.d.ts +0 -19
  286. package/client/node_modules/vscode-languageclient/lib/common/documentLink.js +0 -71
  287. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.d.ts +0 -17
  288. package/client/node_modules/vscode-languageclient/lib/common/documentSymbol.js +0 -104
  289. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.d.ts +0 -21
  290. package/client/node_modules/vscode-languageclient/lib/common/executeCommand.js +0 -72
  291. package/client/node_modules/vscode-languageclient/lib/common/features.d.ts +0 -418
  292. package/client/node_modules/vscode-languageclient/lib/common/features.js +0 -291
  293. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.d.ts +0 -116
  294. package/client/node_modules/vscode-languageclient/lib/common/fileOperations.js +0 -333
  295. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.d.ts +0 -18
  296. package/client/node_modules/vscode-languageclient/lib/common/fileSystemWatcher.js +0 -95
  297. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.d.ts +0 -19
  298. package/client/node_modules/vscode-languageclient/lib/common/foldingRange.js +0 -65
  299. package/client/node_modules/vscode-languageclient/lib/common/formatting.d.ts +0 -39
  300. package/client/node_modules/vscode-languageclient/lib/common/formatting.js +0 -182
  301. package/client/node_modules/vscode-languageclient/lib/common/hover.d.ts +0 -16
  302. package/client/node_modules/vscode-languageclient/lib/common/hover.js +0 -58
  303. package/client/node_modules/vscode-languageclient/lib/common/implementation.d.ts +0 -16
  304. package/client/node_modules/vscode-languageclient/lib/common/implementation.js +0 -54
  305. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.d.ts +0 -20
  306. package/client/node_modules/vscode-languageclient/lib/common/inlayHint.js +0 -92
  307. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.d.ts +0 -18
  308. package/client/node_modules/vscode-languageclient/lib/common/inlineCompletion.js +0 -54
  309. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.d.ts +0 -18
  310. package/client/node_modules/vscode-languageclient/lib/common/inlineValue.js +0 -65
  311. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.d.ts +0 -21
  312. package/client/node_modules/vscode-languageclient/lib/common/linkedEditingRange.js +0 -53
  313. package/client/node_modules/vscode-languageclient/lib/common/notebook.d.ts +0 -96
  314. package/client/node_modules/vscode-languageclient/lib/common/notebook.js +0 -851
  315. package/client/node_modules/vscode-languageclient/lib/common/progress.d.ts +0 -11
  316. package/client/node_modules/vscode-languageclient/lib/common/progress.js +0 -44
  317. package/client/node_modules/vscode-languageclient/lib/common/progressPart.d.ts +0 -24
  318. package/client/node_modules/vscode-languageclient/lib/common/progressPart.js +0 -96
  319. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.d.ts +0 -6
  320. package/client/node_modules/vscode-languageclient/lib/common/protocolCallHierarchyItem.js +0 -16
  321. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.d.ts +0 -6
  322. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeAction.js +0 -14
  323. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.d.ts +0 -5
  324. package/client/node_modules/vscode-languageclient/lib/common/protocolCodeLens.js +0 -13
  325. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.d.ts +0 -11
  326. package/client/node_modules/vscode-languageclient/lib/common/protocolCompletionItem.js +0 -13
  327. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.d.ts +0 -167
  328. package/client/node_modules/vscode-languageclient/lib/common/protocolConverter.js +0 -1134
  329. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.d.ts +0 -18
  330. package/client/node_modules/vscode-languageclient/lib/common/protocolDiagnostic.js +0 -25
  331. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.d.ts +0 -5
  332. package/client/node_modules/vscode-languageclient/lib/common/protocolDocumentLink.js +0 -13
  333. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.d.ts +0 -5
  334. package/client/node_modules/vscode-languageclient/lib/common/protocolInlayHint.js +0 -13
  335. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.d.ts +0 -6
  336. package/client/node_modules/vscode-languageclient/lib/common/protocolTypeHierarchyItem.js +0 -16
  337. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.d.ts +0 -7
  338. package/client/node_modules/vscode-languageclient/lib/common/protocolWorkspaceSymbol.js +0 -18
  339. package/client/node_modules/vscode-languageclient/lib/common/reference.d.ts +0 -20
  340. package/client/node_modules/vscode-languageclient/lib/common/reference.js +0 -53
  341. package/client/node_modules/vscode-languageclient/lib/common/rename.d.ts +0 -27
  342. package/client/node_modules/vscode-languageclient/lib/common/rename.js +0 -113
  343. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.d.ts +0 -16
  344. package/client/node_modules/vscode-languageclient/lib/common/selectionRange.js +0 -57
  345. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.d.ts +0 -33
  346. package/client/node_modules/vscode-languageclient/lib/common/semanticTokens.js +0 -179
  347. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.d.ts +0 -16
  348. package/client/node_modules/vscode-languageclient/lib/common/signatureHelp.js +0 -71
  349. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.d.ts +0 -101
  350. package/client/node_modules/vscode-languageclient/lib/common/textSynchronization.js +0 -402
  351. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.d.ts +0 -16
  352. package/client/node_modules/vscode-languageclient/lib/common/typeDefinition.js +0 -55
  353. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.d.ts +0 -31
  354. package/client/node_modules/vscode-languageclient/lib/common/typeHierarchy.js +0 -96
  355. package/client/node_modules/vscode-languageclient/lib/common/utils/async.d.ts +0 -41
  356. package/client/node_modules/vscode-languageclient/lib/common/utils/async.js +0 -276
  357. package/client/node_modules/vscode-languageclient/lib/common/utils/is.d.ts +0 -12
  358. package/client/node_modules/vscode-languageclient/lib/common/utils/is.js +0 -57
  359. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.d.ts +0 -22
  360. package/client/node_modules/vscode-languageclient/lib/common/utils/uuid.js +0 -97
  361. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.d.ts +0 -30
  362. package/client/node_modules/vscode-languageclient/lib/common/workspaceFolder.js +0 -148
  363. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.d.ts +0 -19
  364. package/client/node_modules/vscode-languageclient/lib/common/workspaceSymbol.js +0 -79
  365. package/client/node_modules/vscode-languageclient/lib/node/main.d.ts +0 -100
  366. package/client/node_modules/vscode-languageclient/lib/node/main.js +0 -570
  367. package/client/node_modules/vscode-languageclient/lib/node/processes.d.ts +0 -6
  368. package/client/node_modules/vscode-languageclient/lib/node/processes.js +0 -47
  369. package/client/node_modules/vscode-languageclient/lib/node/terminateProcess.sh +0 -16
  370. package/client/node_modules/vscode-languageclient/node.cmd +0 -5
  371. package/client/node_modules/vscode-languageclient/node.d.ts +0 -6
  372. package/client/node_modules/vscode-languageclient/node.js +0 -7
  373. package/client/node_modules/vscode-languageclient/package.json +0 -50
  374. package/client/node_modules/vscode-languageserver-protocol/License.txt +0 -11
  375. package/client/node_modules/vscode-languageserver-protocol/README.md +0 -16
  376. package/client/node_modules/vscode-languageserver-protocol/browser.d.ts +0 -6
  377. package/client/node_modules/vscode-languageserver-protocol/browser.js +0 -7
  378. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.d.ts +0 -4
  379. package/client/node_modules/vscode-languageserver-protocol/lib/browser/main.js +0 -28
  380. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.d.ts +0 -58
  381. package/client/node_modules/vscode-languageserver-protocol/lib/common/api.js +0 -77
  382. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.d.ts +0 -187
  383. package/client/node_modules/vscode-languageserver-protocol/lib/common/connection.js +0 -15
  384. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.d.ts +0 -51
  385. package/client/node_modules/vscode-languageserver-protocol/lib/common/messages.js +0 -44
  386. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.d.ts +0 -1
  387. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.$.js +0 -43
  388. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.d.ts +0 -86
  389. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.callHierarchy.js +0 -42
  390. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.d.ts +0 -66
  391. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.colorProvider.js +0 -32
  392. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.d.ts +0 -35
  393. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.configuration.js +0 -24
  394. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.d.ts +0 -3252
  395. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.d.ts +0 -37
  396. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.declaration.js +0 -22
  397. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.d.ts +0 -341
  398. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.diagnostic.js +0 -74
  399. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.d.ts +0 -306
  400. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.fileOperations.js +0 -101
  401. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.d.ts +0 -109
  402. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.foldingRange.js +0 -30
  403. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.d.ts +0 -38
  404. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.implementation.js +0 -21
  405. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.d.ts +0 -110
  406. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlayHint.js +0 -43
  407. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.d.ts +0 -57
  408. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineCompletion.js +0 -22
  409. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.d.ts +0 -86
  410. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.inlineValue.js +0 -30
  411. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.js +0 -943
  412. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.d.ts +0 -52
  413. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.linkedEditingRange.js +0 -19
  414. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.d.ts +0 -106
  415. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.moniker.js +0 -68
  416. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.d.ts +0 -400
  417. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.notebook.js +0 -214
  418. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.d.ts +0 -107
  419. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.progress.js +0 -37
  420. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.d.ts +0 -41
  421. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.selectionRange.js +0 -20
  422. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.d.ts +0 -223
  423. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.semanticTokens.js +0 -57
  424. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.d.ts +0 -72
  425. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.showDocument.js +0 -22
  426. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.d.ts +0 -38
  427. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeDefinition.js +0 -21
  428. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.d.ts +0 -83
  429. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.typeHierarchy.js +0 -42
  430. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.d.ts +0 -74
  431. package/client/node_modules/vscode-languageserver-protocol/lib/common/protocol.workspaceFolder.js +0 -27
  432. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.d.ts +0 -9
  433. package/client/node_modules/vscode-languageserver-protocol/lib/common/utils/is.js +0 -46
  434. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.d.ts +0 -6
  435. package/client/node_modules/vscode-languageserver-protocol/lib/node/main.js +0 -28
  436. package/client/node_modules/vscode-languageserver-protocol/metaModel.schema.json +0 -783
  437. package/client/node_modules/vscode-languageserver-protocol/node.cmd +0 -5
  438. package/client/node_modules/vscode-languageserver-protocol/node.d.ts +0 -6
  439. package/client/node_modules/vscode-languageserver-protocol/node.js +0 -7
  440. package/client/node_modules/vscode-languageserver-protocol/package.json +0 -45
  441. package/client/node_modules/vscode-languageserver-protocol/thirdpartynotices.txt +0 -31
  442. package/client/node_modules/vscode-languageserver-types/License.txt +0 -11
  443. package/client/node_modules/vscode-languageserver-types/README.md +0 -17
  444. package/client/node_modules/vscode-languageserver-types/lib/esm/main.d.ts +0 -3139
  445. package/client/node_modules/vscode-languageserver-types/lib/esm/main.js +0 -2222
  446. package/client/node_modules/vscode-languageserver-types/lib/esm/package.json +0 -3
  447. package/client/node_modules/vscode-languageserver-types/lib/umd/main.d.ts +0 -3139
  448. package/client/node_modules/vscode-languageserver-types/lib/umd/main.js +0 -2272
  449. package/client/node_modules/vscode-languageserver-types/package.json +0 -38
  450. package/client/node_modules/vscode-languageserver-types/thirdpartynotices.txt +0 -16
  451. package/client/package-lock.json +0 -125
  452. package/client/package.json +0 -42
  453. package/client/src/extension.ts +0 -56
  454. 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;