@stylelint/language-server 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (334) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +39 -0
  3. package/bin/stylelint-language-server.mjs +25 -0
  4. package/build/di/container.d.ts +12 -0
  5. package/build/di/container.js +76 -0
  6. package/build/di/container.js.map +1 -0
  7. package/build/di/hooks.d.ts +16 -0
  8. package/build/di/hooks.js +25 -0
  9. package/build/di/hooks.js.map +1 -0
  10. package/build/di/index.d.ts +7 -0
  11. package/build/di/index.js +8 -0
  12. package/build/di/index.js.map +1 -0
  13. package/build/di/inject.d.ts +48 -0
  14. package/build/di/inject.js +55 -0
  15. package/build/di/inject.js.map +1 -0
  16. package/build/di/module.d.ts +51 -0
  17. package/build/di/module.js +93 -0
  18. package/build/di/module.js.map +1 -0
  19. package/build/di/runtime/application.d.ts +17 -0
  20. package/build/di/runtime/application.js +209 -0
  21. package/build/di/runtime/application.js.map +1 -0
  22. package/build/di/runtime/decorators.d.ts +14 -0
  23. package/build/di/runtime/decorators.js +26 -0
  24. package/build/di/runtime/decorators.js.map +1 -0
  25. package/build/di/runtime/index.d.ts +3 -0
  26. package/build/di/runtime/index.js +4 -0
  27. package/build/di/runtime/index.js.map +1 -0
  28. package/build/di/runtime/symbols.d.ts +1 -0
  29. package/build/di/runtime/symbols.js +2 -0
  30. package/build/di/runtime/symbols.js.map +1 -0
  31. package/build/di/runtime/types.d.ts +20 -0
  32. package/build/di/runtime/types.js +2 -0
  33. package/build/di/runtime/types.js.map +1 -0
  34. package/build/di/tokens.d.ts +8 -0
  35. package/build/di/tokens.js +7 -0
  36. package/build/di/tokens.js.map +1 -0
  37. package/build/di/types.d.ts +16 -0
  38. package/build/di/types.js +2 -0
  39. package/build/di/types.js.map +1 -0
  40. package/build/server/config/default-options.d.ts +2 -0
  41. package/build/server/config/default-options.js +29 -0
  42. package/build/server/config/default-options.js.map +1 -0
  43. package/build/server/decorators.d.ts +121 -0
  44. package/build/server/decorators.js +272 -0
  45. package/build/server/decorators.js.map +1 -0
  46. package/build/server/index.d.ts +2 -0
  47. package/build/server/index.js +3 -0
  48. package/build/server/index.js.map +1 -0
  49. package/build/server/modules/documents.module.d.ts +1 -0
  50. package/build/server/modules/documents.module.js +12 -0
  51. package/build/server/modules/documents.module.js.map +1 -0
  52. package/build/server/modules/index.d.ts +6 -0
  53. package/build/server/modules/index.js +7 -0
  54. package/build/server/modules/index.js.map +1 -0
  55. package/build/server/modules/infrastructure.module.d.ts +1 -0
  56. package/build/server/modules/infrastructure.module.js +7 -0
  57. package/build/server/modules/infrastructure.module.js.map +1 -0
  58. package/build/server/modules/lsp.module.d.ts +1 -0
  59. package/build/server/modules/lsp.module.js +18 -0
  60. package/build/server/modules/lsp.module.js.map +1 -0
  61. package/build/server/modules/platform.module.d.ts +4 -0
  62. package/build/server/modules/platform.module.js +33 -0
  63. package/build/server/modules/platform.module.js.map +1 -0
  64. package/build/server/modules/stylelint-runtime.module.d.ts +1 -0
  65. package/build/server/modules/stylelint-runtime.module.js +19 -0
  66. package/build/server/modules/stylelint-runtime.module.js.map +1 -0
  67. package/build/server/modules/workspace.module.d.ts +1 -0
  68. package/build/server/modules/workspace.module.js +7 -0
  69. package/build/server/modules/workspace.module.js.map +1 -0
  70. package/build/server/runtime/application.d.ts +19 -0
  71. package/build/server/runtime/application.js +22 -0
  72. package/build/server/runtime/application.js.map +1 -0
  73. package/build/server/runtime/language-server-feature.d.ts +13 -0
  74. package/build/server/runtime/language-server-feature.js +142 -0
  75. package/build/server/runtime/language-server-feature.js.map +1 -0
  76. package/build/server/runtime/lsp-service-runtime.d.ts +15 -0
  77. package/build/server/runtime/lsp-service-runtime.js +133 -0
  78. package/build/server/runtime/lsp-service-runtime.js.map +1 -0
  79. package/build/server/server.d.ts +13 -0
  80. package/build/server/server.js +38 -0
  81. package/build/server/server.js.map +1 -0
  82. package/build/server/server.module.d.ts +1 -0
  83. package/build/server/server.module.js +13 -0
  84. package/build/server/server.module.js.map +1 -0
  85. package/build/server/services/documents/document-diagnostics.service.d.ts +15 -0
  86. package/build/server/services/documents/document-diagnostics.service.js +88 -0
  87. package/build/server/services/documents/document-diagnostics.service.js.map +1 -0
  88. package/build/server/services/documents/document-fixes.service.d.ts +14 -0
  89. package/build/server/services/documents/document-fixes.service.js +94 -0
  90. package/build/server/services/documents/document-fixes.service.js.map +1 -0
  91. package/build/server/services/documents/index.d.ts +2 -0
  92. package/build/server/services/documents/index.js +3 -0
  93. package/build/server/services/documents/index.js.map +1 -0
  94. package/build/server/services/index.d.ts +5 -0
  95. package/build/server/services/index.js +6 -0
  96. package/build/server/services/index.js.map +1 -0
  97. package/build/server/services/infrastructure/command.service.d.ts +22 -0
  98. package/build/server/services/infrastructure/command.service.js +151 -0
  99. package/build/server/services/infrastructure/command.service.js.map +1 -0
  100. package/build/server/services/infrastructure/index.d.ts +4 -0
  101. package/build/server/services/infrastructure/index.js +5 -0
  102. package/build/server/services/infrastructure/index.js.map +1 -0
  103. package/build/server/services/infrastructure/logging.service.d.ts +6 -0
  104. package/build/server/services/infrastructure/logging.service.js +4 -0
  105. package/build/server/services/infrastructure/logging.service.js.map +1 -0
  106. package/build/server/services/infrastructure/notification.service.d.ts +24 -0
  107. package/build/server/services/infrastructure/notification.service.js +142 -0
  108. package/build/server/services/infrastructure/notification.service.js.map +1 -0
  109. package/build/server/services/infrastructure/winston-logging.service.d.ts +10 -0
  110. package/build/server/services/infrastructure/winston-logging.service.js +48 -0
  111. package/build/server/services/infrastructure/winston-logging.service.js.map +1 -0
  112. package/build/server/services/lsp/auto-fix.service.d.ts +15 -0
  113. package/build/server/services/lsp/auto-fix.service.js +142 -0
  114. package/build/server/services/lsp/auto-fix.service.js.map +1 -0
  115. package/build/server/services/lsp/code-actions/code-action.service.d.ts +18 -0
  116. package/build/server/services/lsp/code-actions/code-action.service.js +288 -0
  117. package/build/server/services/lsp/code-actions/code-action.service.js.map +1 -0
  118. package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.d.ts +11 -0
  119. package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.js +72 -0
  120. package/build/server/services/lsp/code-actions/disable-rule-file-code-action.service.js.map +1 -0
  121. package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.d.ts +12 -0
  122. package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.js +80 -0
  123. package/build/server/services/lsp/code-actions/disable-rule-line-code-action.service.js.map +1 -0
  124. package/build/server/services/lsp/code-actions/index.d.ts +3 -0
  125. package/build/server/services/lsp/code-actions/index.js +4 -0
  126. package/build/server/services/lsp/code-actions/index.js.map +1 -0
  127. package/build/server/services/lsp/completion.service.d.ts +12 -0
  128. package/build/server/services/lsp/completion.service.js +183 -0
  129. package/build/server/services/lsp/completion.service.js.map +1 -0
  130. package/build/server/services/lsp/empty-config-warning.service.d.ts +17 -0
  131. package/build/server/services/lsp/empty-config-warning.service.js +149 -0
  132. package/build/server/services/lsp/empty-config-warning.service.js.map +1 -0
  133. package/build/server/services/lsp/formatter.service.d.ts +16 -0
  134. package/build/server/services/lsp/formatter.service.js +215 -0
  135. package/build/server/services/lsp/formatter.service.js.map +1 -0
  136. package/build/server/services/lsp/index.d.ts +8 -0
  137. package/build/server/services/lsp/index.js +9 -0
  138. package/build/server/services/lsp/index.js.map +1 -0
  139. package/build/server/services/lsp/old-stylelint-warning.service.d.ts +13 -0
  140. package/build/server/services/lsp/old-stylelint-warning.service.js +186 -0
  141. package/build/server/services/lsp/old-stylelint-warning.service.js.map +1 -0
  142. package/build/server/services/lsp/validator.service.d.ts +19 -0
  143. package/build/server/services/lsp/validator.service.js +273 -0
  144. package/build/server/services/lsp/validator.service.js.map +1 -0
  145. package/build/server/services/lsp/workspace-activity.service.d.ts +10 -0
  146. package/build/server/services/lsp/workspace-activity.service.js +76 -0
  147. package/build/server/services/lsp/workspace-activity.service.js.map +1 -0
  148. package/build/server/services/services.module.d.ts +1 -0
  149. package/build/server/services/services.module.js +19 -0
  150. package/build/server/services/services.module.js.map +1 -0
  151. package/build/server/services/stylelint-runtime/global-path-resolver.service.d.ts +38 -0
  152. package/build/server/services/stylelint-runtime/global-path-resolver.service.js +223 -0
  153. package/build/server/services/stylelint-runtime/global-path-resolver.service.js.map +1 -0
  154. package/build/server/services/stylelint-runtime/index.d.ts +11 -0
  155. package/build/server/services/stylelint-runtime/index.js +12 -0
  156. package/build/server/services/stylelint-runtime/index.js.map +1 -0
  157. package/build/server/services/stylelint-runtime/package-root-cache.service.d.ts +9 -0
  158. package/build/server/services/stylelint-runtime/package-root-cache.service.js +141 -0
  159. package/build/server/services/stylelint-runtime/package-root-cache.service.js.map +1 -0
  160. package/build/server/services/stylelint-runtime/package-root.service.d.ts +8 -0
  161. package/build/server/services/stylelint-runtime/package-root.service.js +119 -0
  162. package/build/server/services/stylelint-runtime/package-root.service.js.map +1 -0
  163. package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.d.ts +16 -0
  164. package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.js +195 -0
  165. package/build/server/services/stylelint-runtime/pnp-configuration-cache.service.js.map +1 -0
  166. package/build/server/services/stylelint-runtime/process-runner.service.d.ts +30 -0
  167. package/build/server/services/stylelint-runtime/process-runner.service.js +149 -0
  168. package/build/server/services/stylelint-runtime/process-runner.service.js.map +1 -0
  169. package/build/server/services/stylelint-runtime/stylelint-options.service.d.ts +12 -0
  170. package/build/server/services/stylelint-runtime/stylelint-options.service.js +185 -0
  171. package/build/server/services/stylelint-runtime/stylelint-options.service.js.map +1 -0
  172. package/build/server/services/stylelint-runtime/stylelint-runner.service.d.ts +42 -0
  173. package/build/server/services/stylelint-runtime/stylelint-runner.service.js +478 -0
  174. package/build/server/services/stylelint-runtime/stylelint-runner.service.js.map +1 -0
  175. package/build/server/services/stylelint-runtime/worker-environment.service.d.ts +17 -0
  176. package/build/server/services/stylelint-runtime/worker-environment.service.js +135 -0
  177. package/build/server/services/stylelint-runtime/worker-environment.service.js.map +1 -0
  178. package/build/server/services/stylelint-runtime/worker-process.service.d.ts +8 -0
  179. package/build/server/services/stylelint-runtime/worker-process.service.js +66 -0
  180. package/build/server/services/stylelint-runtime/worker-process.service.js.map +1 -0
  181. package/build/server/services/stylelint-runtime/worker-registry.service.d.ts +19 -0
  182. package/build/server/services/stylelint-runtime/worker-registry.service.js +289 -0
  183. package/build/server/services/stylelint-runtime/worker-registry.service.js.map +1 -0
  184. package/build/server/services/stylelint-runtime/workspace-stylelint.service.d.ts +37 -0
  185. package/build/server/services/stylelint-runtime/workspace-stylelint.service.js +185 -0
  186. package/build/server/services/stylelint-runtime/workspace-stylelint.service.js.map +1 -0
  187. package/build/server/services/workspace/index.d.ts +2 -0
  188. package/build/server/services/workspace/index.js +3 -0
  189. package/build/server/services/workspace/index.js.map +1 -0
  190. package/build/server/services/workspace/workspace-folder.service.d.ts +18 -0
  191. package/build/server/services/workspace/workspace-folder.service.js +101 -0
  192. package/build/server/services/workspace/workspace-folder.service.js.map +1 -0
  193. package/build/server/services/workspace/workspace-options.service.d.ts +12 -0
  194. package/build/server/services/workspace/workspace-options.service.js +125 -0
  195. package/build/server/services/workspace/workspace-options.service.js.map +1 -0
  196. package/build/server/stylelint/disable-metadata-lookup-table.d.ts +20 -0
  197. package/build/server/stylelint/disable-metadata-lookup-table.js +68 -0
  198. package/build/server/stylelint/disable-metadata-lookup-table.js.map +1 -0
  199. package/build/server/stylelint/formatting-options-to-rules.d.ts +12 -0
  200. package/build/server/stylelint/formatting-options-to-rules.js +19 -0
  201. package/build/server/stylelint/formatting-options-to-rules.js.map +1 -0
  202. package/build/server/stylelint/get-disable-diagnostic-rule.d.ts +7 -0
  203. package/build/server/stylelint/get-disable-diagnostic-rule.js +22 -0
  204. package/build/server/stylelint/get-disable-diagnostic-rule.js.map +1 -0
  205. package/build/server/stylelint/index.d.ts +7 -0
  206. package/build/server/stylelint/index.js +8 -0
  207. package/build/server/stylelint/index.js.map +1 -0
  208. package/build/server/stylelint/is-disable-report-rule.d.ts +6 -0
  209. package/build/server/stylelint/is-disable-report-rule.js +17 -0
  210. package/build/server/stylelint/is-disable-report-rule.js.map +1 -0
  211. package/build/server/stylelint/load-stylelint.d.ts +23 -0
  212. package/build/server/stylelint/load-stylelint.js +173 -0
  213. package/build/server/stylelint/load-stylelint.js.map +1 -0
  214. package/build/server/stylelint/process-linter-result.d.ts +32 -0
  215. package/build/server/stylelint/process-linter-result.js +129 -0
  216. package/build/server/stylelint/process-linter-result.js.map +1 -0
  217. package/build/server/stylelint/types.d.ts +143 -0
  218. package/build/server/stylelint/types.js +47 -0
  219. package/build/server/stylelint/types.js.map +1 -0
  220. package/build/server/stylelint/warning-to-diagnostic.d.ts +46 -0
  221. package/build/server/stylelint/warning-to-diagnostic.js +143 -0
  222. package/build/server/stylelint/warning-to-diagnostic.js.map +1 -0
  223. package/build/server/tokens.d.ts +20 -0
  224. package/build/server/tokens.js +16 -0
  225. package/build/server/tokens.js.map +1 -0
  226. package/build/server/types.d.ts +74 -0
  227. package/build/server/types.js +18 -0
  228. package/build/server/types.js.map +1 -0
  229. package/build/server/utils/documents/create-text-edits.d.ts +10 -0
  230. package/build/server/utils/documents/create-text-edits.js +31 -0
  231. package/build/server/utils/documents/create-text-edits.js.map +1 -0
  232. package/build/server/utils/documents/get-disable-type.d.ts +26 -0
  233. package/build/server/utils/documents/get-disable-type.js +32 -0
  234. package/build/server/utils/documents/get-disable-type.js.map +1 -0
  235. package/build/server/utils/documents/get-edit-info.d.ts +14 -0
  236. package/build/server/utils/documents/get-edit-info.js +31 -0
  237. package/build/server/utils/documents/get-edit-info.js.map +1 -0
  238. package/build/server/utils/documents/get-fixes.d.ts +12 -0
  239. package/build/server/utils/documents/get-fixes.js +18 -0
  240. package/build/server/utils/documents/get-fixes.js.map +1 -0
  241. package/build/server/utils/documents/index.d.ts +4 -0
  242. package/build/server/utils/documents/index.js +5 -0
  243. package/build/server/utils/documents/index.js.map +1 -0
  244. package/build/server/utils/errors.d.ts +10 -0
  245. package/build/server/utils/errors.js +89 -0
  246. package/build/server/utils/errors.js.map +1 -0
  247. package/build/server/utils/fs.d.ts +4 -0
  248. package/build/server/utils/fs.js +11 -0
  249. package/build/server/utils/fs.js.map +1 -0
  250. package/build/server/utils/functions/get-first-return-value.d.ts +11 -0
  251. package/build/server/utils/functions/get-first-return-value.js +28 -0
  252. package/build/server/utils/functions/get-first-return-value.js.map +1 -0
  253. package/build/server/utils/functions/index.d.ts +2 -0
  254. package/build/server/utils/functions/index.js +3 -0
  255. package/build/server/utils/functions/index.js.map +1 -0
  256. package/build/server/utils/functions/lazy-call.d.ts +12 -0
  257. package/build/server/utils/functions/lazy-call.js +33 -0
  258. package/build/server/utils/functions/lazy-call.js.map +1 -0
  259. package/build/server/utils/index.d.ts +11 -0
  260. package/build/server/utils/index.js +12 -0
  261. package/build/server/utils/index.js.map +1 -0
  262. package/build/server/utils/iterables.d.ts +8 -0
  263. package/build/server/utils/iterables.js +15 -0
  264. package/build/server/utils/iterables.js.map +1 -0
  265. package/build/server/utils/logging/error-formatter.d.ts +7 -0
  266. package/build/server/utils/logging/error-formatter.js +14 -0
  267. package/build/server/utils/logging/error-formatter.js.map +1 -0
  268. package/build/server/utils/logging/get-log-function.d.ts +8 -0
  269. package/build/server/utils/logging/get-log-function.js +11 -0
  270. package/build/server/utils/logging/get-log-function.js.map +1 -0
  271. package/build/server/utils/logging/index.d.ts +4 -0
  272. package/build/server/utils/logging/index.js +5 -0
  273. package/build/server/utils/logging/index.js.map +1 -0
  274. package/build/server/utils/logging/language-server-formatter.d.ts +19 -0
  275. package/build/server/utils/logging/language-server-formatter.js +55 -0
  276. package/build/server/utils/logging/language-server-formatter.js.map +1 -0
  277. package/build/server/utils/logging/language-server-transport.d.ts +19 -0
  278. package/build/server/utils/logging/language-server-transport.js +39 -0
  279. package/build/server/utils/logging/language-server-transport.js.map +1 -0
  280. package/build/server/utils/lsp/create-disable-completion-item.d.ts +7 -0
  281. package/build/server/utils/lsp/create-disable-completion-item.js +32 -0
  282. package/build/server/utils/lsp/create-disable-completion-item.js.map +1 -0
  283. package/build/server/utils/lsp/display-error.d.ts +7 -0
  284. package/build/server/utils/lsp/display-error.js +24 -0
  285. package/build/server/utils/lsp/display-error.js.map +1 -0
  286. package/build/server/utils/lsp/index.d.ts +4 -0
  287. package/build/server/utils/lsp/index.js +5 -0
  288. package/build/server/utils/lsp/index.js.map +1 -0
  289. package/build/server/utils/lsp/rule-code-actions-collection.d.ts +29 -0
  290. package/build/server/utils/lsp/rule-code-actions-collection.js +61 -0
  291. package/build/server/utils/lsp/rule-code-actions-collection.js.map +1 -0
  292. package/build/server/utils/lsp/types.d.ts +22 -0
  293. package/build/server/utils/lsp/types.js +2 -0
  294. package/build/server/utils/lsp/types.js.map +1 -0
  295. package/build/server/utils/objects/index.d.ts +3 -0
  296. package/build/server/utils/objects/index.js +4 -0
  297. package/build/server/utils/objects/index.js.map +1 -0
  298. package/build/server/utils/objects/is-object.d.ts +8 -0
  299. package/build/server/utils/objects/is-object.js +13 -0
  300. package/build/server/utils/objects/is-object.js.map +1 -0
  301. package/build/server/utils/objects/merge-assign.d.ts +8 -0
  302. package/build/server/utils/objects/merge-assign.js +38 -0
  303. package/build/server/utils/objects/merge-assign.js.map +1 -0
  304. package/build/server/utils/objects/merge-options-with-defaults.d.ts +5 -0
  305. package/build/server/utils/objects/merge-options-with-defaults.js +56 -0
  306. package/build/server/utils/objects/merge-options-with-defaults.js.map +1 -0
  307. package/build/server/utils/sets.d.ts +6 -0
  308. package/build/server/utils/sets.js +22 -0
  309. package/build/server/utils/sets.js.map +1 -0
  310. package/build/server/utils/strings.d.ts +12 -0
  311. package/build/server/utils/strings.js +20 -0
  312. package/build/server/utils/strings.js.map +1 -0
  313. package/build/server/utils/types.d.ts +27 -0
  314. package/build/server/utils/types.js +2 -0
  315. package/build/server/utils/types.js.map +1 -0
  316. package/build/server/worker/types.d.ts +63 -0
  317. package/build/server/worker/types.js +2 -0
  318. package/build/server/worker/types.js.map +1 -0
  319. package/build/server/worker/worker-entry.d.ts +1 -0
  320. package/build/server/worker/worker-entry.js +320 -0
  321. package/build/server/worker/worker-entry.js.map +1 -0
  322. package/build/server/worker/worker-logging.service.d.ts +18 -0
  323. package/build/server/worker/worker-logging.service.js +61 -0
  324. package/build/server/worker/worker-logging.service.js.map +1 -0
  325. package/build/server/worker/worker-process.d.ts +54 -0
  326. package/build/server/worker/worker-process.js +266 -0
  327. package/build/server/worker/worker-process.js.map +1 -0
  328. package/build/shared/log-level.d.ts +5 -0
  329. package/build/shared/log-level.js +11 -0
  330. package/build/shared/log-level.js.map +1 -0
  331. package/build/shared/types.d.ts +9 -0
  332. package/build/shared/types.js +3 -0
  333. package/build/shared/types.js.map +1 -0
  334. package/package.json +89 -0
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Runs each function, passing the result of the first function return
3
+ * a value that is not `undefined`. Any subsequent functions are not run.
4
+ */
5
+ export declare function getFirstReturnValue<V>(...functions: (() => V)[]): V | undefined;
6
+ /**
7
+ * Runs each async function, passing the resolved value of the first function
8
+ * that resolves to a value that is not `undefined`. Any subsequent functions
9
+ * are not run.
10
+ */
11
+ export declare function getFirstResolvedValue<V>(...functions: (() => Promise<V>)[]): Promise<V | undefined>;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Runs each function, passing the result of the first function return
3
+ * a value that is not `undefined`. Any subsequent functions are not run.
4
+ */
5
+ export function getFirstReturnValue(...functions) {
6
+ for (const func of functions) {
7
+ const result = func();
8
+ if (result !== undefined) {
9
+ return result;
10
+ }
11
+ }
12
+ return undefined;
13
+ }
14
+ /**
15
+ * Runs each async function, passing the resolved value of the first function
16
+ * that resolves to a value that is not `undefined`. Any subsequent functions
17
+ * are not run.
18
+ */
19
+ export async function getFirstResolvedValue(...functions) {
20
+ for (const func of functions) {
21
+ const result = await func();
22
+ if (result !== undefined) {
23
+ return result;
24
+ }
25
+ }
26
+ return undefined;
27
+ }
28
+ //# sourceMappingURL=get-first-return-value.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-first-return-value.js","sourceRoot":"","sources":["../../../../src/server/utils/functions/get-first-return-value.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAI,GAAG,SAAsB;IAC/D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC;QAEtB,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,GAAG,SAA+B;IAElC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAE5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,MAAM,CAAC;QACf,CAAC;IACF,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from './get-first-return-value.js';
2
+ export * from './lazy-call.js';
@@ -0,0 +1,3 @@
1
+ export * from './get-first-return-value.js';
2
+ export * from './lazy-call.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/functions/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Creates a lazy-call function. The inner function will be called only the
3
+ * first time the outer function is called. The inner function's return value
4
+ * will be cached for the lifetime of the outer function.
5
+ */
6
+ export declare function lazyCall<R>(inner: () => R): () => R;
7
+ /**
8
+ * Creates an async lazy-call function. The inner function will be called only
9
+ * the first time the outer function is called. The inner function's resolved
10
+ * value will be cached for the lifetime of the outer function.
11
+ */
12
+ export declare function lazyCallAsync<R>(inner: () => Promise<R>): () => Promise<R>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Creates a lazy-call function. The inner function will be called only the
3
+ * first time the outer function is called. The inner function's return value
4
+ * will be cached for the lifetime of the outer function.
5
+ */
6
+ export function lazyCall(inner) {
7
+ let cached = false;
8
+ let cache;
9
+ return () => {
10
+ if (!cached) {
11
+ cache = inner();
12
+ cached = true;
13
+ }
14
+ return cache;
15
+ };
16
+ }
17
+ /**
18
+ * Creates an async lazy-call function. The inner function will be called only
19
+ * the first time the outer function is called. The inner function's resolved
20
+ * value will be cached for the lifetime of the outer function.
21
+ */
22
+ export function lazyCallAsync(inner) {
23
+ let cached = false;
24
+ let cache;
25
+ return async () => {
26
+ if (!cached) {
27
+ cache = await inner();
28
+ cached = true;
29
+ }
30
+ return cache;
31
+ };
32
+ }
33
+ //# sourceMappingURL=lazy-call.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lazy-call.js","sourceRoot":"","sources":["../../../../src/server/utils/functions/lazy-call.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAI,KAAc;IACzC,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,IAAI,KAAQ,CAAC;IAEb,OAAO,GAAG,EAAE;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,KAAK,GAAG,KAAK,EAAE,CAAC;YAChB,MAAM,GAAG,IAAI,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAI,KAAuB;IACvD,IAAI,MAAM,GAAG,KAAK,CAAC;IAEnB,IAAI,KAAQ,CAAC;IAEb,OAAO,KAAK,IAAI,EAAE;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;YACb,KAAK,GAAG,MAAM,KAAK,EAAE,CAAC;YACtB,MAAM,GAAG,IAAI,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC;IACd,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * from './documents/index.js';
2
+ export * from './functions/index.js';
3
+ export * from './logging/index.js';
4
+ export * from './lsp/index.js';
5
+ export * from './objects/index.js';
6
+ export * from './errors.js';
7
+ export * from './fs.js';
8
+ export * from './iterables.js';
9
+ export * from './sets.js';
10
+ export * from './strings.js';
11
+ export * from './types.js';
@@ -0,0 +1,12 @@
1
+ export * from './documents/index.js';
2
+ export * from './functions/index.js';
3
+ export * from './logging/index.js';
4
+ export * from './lsp/index.js';
5
+ export * from './objects/index.js';
6
+ export * from './errors.js';
7
+ export * from './fs.js';
8
+ export * from './iterables.js';
9
+ export * from './sets.js';
10
+ export * from './strings.js';
11
+ export * from './types.js';
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Checks if the given value is iterable.
3
+ */
4
+ export declare function isIterable(obj: unknown): obj is Iterable<unknown>;
5
+ /**
6
+ * Checks if the given value is an iterable object.
7
+ */
8
+ export declare function isIterableObject(obj: unknown): obj is Iterable<unknown> & object;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Checks if the given value is iterable.
3
+ */
4
+ export function isIterable(obj) {
5
+ return (obj !== null &&
6
+ obj !== undefined &&
7
+ typeof obj[Symbol.iterator] === 'function');
8
+ }
9
+ /**
10
+ * Checks if the given value is an iterable object.
11
+ */
12
+ export function isIterableObject(obj) {
13
+ return isIterable(obj) && typeof obj === 'object';
14
+ }
15
+ //# sourceMappingURL=iterables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iterables.js","sourceRoot":"","sources":["../../../src/server/utils/iterables.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,GAAY;IACtC,OAAO,CACN,GAAG,KAAK,IAAI;QACZ,GAAG,KAAK,SAAS;QACjB,OAAQ,GAA+B,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,UAAU,CACvE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAY;IAC5C,OAAO,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC;AACnD,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type winston from 'winston';
2
+ /**
3
+ * Language server formatter for winston.
4
+ */
5
+ export declare class ErrorFormatter {
6
+ transform(info: winston.Logform.TransformableInfo): winston.Logform.TransformableInfo;
7
+ }
@@ -0,0 +1,14 @@
1
+ import { serializeErrors } from '../errors.js';
2
+ /**
3
+ * Language server formatter for winston.
4
+ */
5
+ export class ErrorFormatter {
6
+ transform(info) {
7
+ const transformed = serializeErrors({ ...info });
8
+ for (const key of Object.keys(transformed)) {
9
+ info[key] = transformed[key];
10
+ }
11
+ return info;
12
+ }
13
+ }
14
+ //# sourceMappingURL=error-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-formatter.js","sourceRoot":"","sources":["../../../../src/server/utils/logging/error-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C;;GAEG;AACH,MAAM,OAAO,cAAc;IAC1B,SAAS,CAAC,IAAuC;QAChD,MAAM,WAAW,GAAG,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAEjD,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
@@ -0,0 +1,8 @@
1
+ import type { RemoteConsole } from 'vscode-languageserver';
2
+ type RemoteConsoleLogLevels = 'info' | 'debug' | 'error' | 'warn' | 'log';
3
+ type RemoteConsoleLogFunctions = RemoteConsole[RemoteConsoleLogLevels];
4
+ /**
5
+ * Gets the log function for the given log level for the given remote console.
6
+ */
7
+ export declare const getLogFunction: (remoteConsole: RemoteConsole, level: string) => RemoteConsoleLogFunctions | undefined;
8
+ export {};
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Gets the log function for the given log level for the given remote console.
3
+ */
4
+ export const getLogFunction = (remoteConsole, level) => {
5
+ const logFunction = remoteConsole[level];
6
+ if (typeof logFunction === 'function') {
7
+ return logFunction;
8
+ }
9
+ return undefined;
10
+ };
11
+ //# sourceMappingURL=get-log-function.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-log-function.js","sourceRoot":"","sources":["../../../../src/server/utils/logging/get-log-function.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAC7B,aAA4B,EAC5B,KAAa,EAC2B,EAAE;IAC1C,MAAM,WAAW,GAAG,aAAa,CAAC,KAA+B,CAAC,CAAC;IAEnE,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;QACvC,OAAO,WAAW,CAAC;IACpB,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './error-formatter.js';
2
+ export * from './get-log-function.js';
3
+ export * from './language-server-formatter.js';
4
+ export * from './language-server-transport.js';
@@ -0,0 +1,5 @@
1
+ export * from './error-formatter.js';
2
+ export * from './get-log-function.js';
3
+ export * from './language-server-formatter.js';
4
+ export * from './language-server-transport.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/logging/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,gCAAgC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import type winston from 'winston';
2
+ import type { Connection } from 'vscode-languageserver';
3
+ /**
4
+ * Language server log formatter options.
5
+ */
6
+ export type LanguageServerFormatterOptions = {
7
+ connection: Connection;
8
+ preferredKeyOrder?: string[];
9
+ };
10
+ /**
11
+ * Language server formatter for winston.
12
+ */
13
+ export declare class LanguageServerFormatter {
14
+ options: LanguageServerFormatterOptions;
15
+ constructor(options: LanguageServerFormatterOptions);
16
+ transform(info: winston.Logform.TransformableInfo & {
17
+ [key: string | symbol]: any;
18
+ }): winston.Logform.TransformableInfo;
19
+ }
@@ -0,0 +1,55 @@
1
+ import { LEVEL, MESSAGE } from 'triple-beam';
2
+ import { getLogFunction } from './get-log-function.js';
3
+ import { padString, padNumber, upperCaseFirstChar } from '../strings.js';
4
+ /**
5
+ * Language server formatter for winston.
6
+ */
7
+ export class LanguageServerFormatter {
8
+ options;
9
+ constructor(options) {
10
+ this.options = options;
11
+ }
12
+ transform(
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ info) {
15
+ const date = new Date();
16
+ // h:mm:ss a.m./p.m.
17
+ const timestamp = `${date.getHours() % 12 || 12}:${padNumber(date.getMinutes(), 2)}:${padNumber(date.getSeconds(), 2)} ${date.getHours() < 12 ? 'a.m.' : 'p.m.'}`;
18
+ const messageParts = [];
19
+ const level = String(info[LEVEL]);
20
+ if (!getLogFunction(this.options.connection.console, level)) {
21
+ messageParts.push(`[${padString(upperCaseFirstChar(level), 5)} - ${timestamp}]`);
22
+ }
23
+ if (info.component) {
24
+ messageParts.push(`[${String(info.component)}]`);
25
+ }
26
+ messageParts.push(info.message);
27
+ delete info.component;
28
+ delete info.timestamp;
29
+ const keys = new Set(Object.keys({ ...info }));
30
+ const postMessageParts = [];
31
+ if (this.options.preferredKeyOrder) {
32
+ for (const key of this.options.preferredKeyOrder) {
33
+ if (keys.has(key)) {
34
+ postMessageParts.push(`${key}: ${JSON.stringify(info[key])}`);
35
+ keys.delete(key);
36
+ delete info[key];
37
+ }
38
+ }
39
+ }
40
+ for (const key of keys) {
41
+ if (key === 'level' || key === 'message') {
42
+ continue;
43
+ }
44
+ postMessageParts.push(`${key}: ${JSON.stringify(info[key])}`);
45
+ delete info[key];
46
+ }
47
+ const message = postMessageParts.length > 0
48
+ ? `${messageParts.join(' ')} | ${postMessageParts.join(' ')}`
49
+ : messageParts.join(' ');
50
+ info[MESSAGE] = message;
51
+ info.message = message;
52
+ return info;
53
+ }
54
+ }
55
+ //# sourceMappingURL=language-server-formatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-server-formatter.js","sourceRoot":"","sources":["../../../../src/server/utils/logging/language-server-formatter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAUzE;;GAEG;AACH,MAAM,OAAO,uBAAuB;IACnC,OAAO,CAAiC;IAExC,YAAY,OAAuC;QAClD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,SAAS;IACR,8DAA8D;IAC9D,IAAyE;QAEzE,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAExB,oBAAoB;QACpB,MAAM,SAAS,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,SAAS,CAC9F,IAAI,CAAC,UAAU,EAAE,EACjB,CAAC,CACD,IAAI,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QAE9C,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAElC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;YAC7D,YAAY,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,MAAM,SAAS,GAAG,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,YAAY,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC;QAED,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEhC,OAAO,IAAI,CAAC,SAAS,CAAC;QACtB,OAAO,IAAI,CAAC,SAAS,CAAC;QAEtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;QAC/C,MAAM,gBAAgB,GAAG,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;YACpC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;gBAClD,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oBACnB,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;oBAE9D,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;oBACjB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClB,CAAC;YACF,CAAC;QACF,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,GAAG,KAAK,OAAO,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;gBAC1C,SAAS;YACV,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;YAE9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAED,MAAM,OAAO,GACZ,gBAAgB,CAAC,MAAM,GAAG,CAAC;YAC1B,CAAC,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC7D,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE3B,IAAI,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QAEvB,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
@@ -0,0 +1,19 @@
1
+ import TransportStream, { type TransportStreamOptions } from 'winston-transport';
2
+ import type winston from 'winston';
3
+ import type { Connection } from 'vscode-languageserver';
4
+ /**
5
+ * Language server log transport options.
6
+ */
7
+ export type LanguageServerTransportOptions = TransportStreamOptions & {
8
+ connection: Connection;
9
+ };
10
+ /**
11
+ * Winston transport for logging through the language server connection.
12
+ */
13
+ export declare class LanguageServerTransport extends TransportStream {
14
+ #private;
15
+ constructor(options: LanguageServerTransportOptions);
16
+ log(info: winston.Logform.TransformableInfo & {
17
+ [key: string | symbol]: any;
18
+ }, callback: () => void): void;
19
+ }
@@ -0,0 +1,39 @@
1
+ import TransportStream from 'winston-transport';
2
+ import { LEVEL, MESSAGE } from 'triple-beam';
3
+ import { getLogFunction } from './get-log-function.js';
4
+ /**
5
+ * Winston transport for logging through the language server connection.
6
+ */
7
+ export class LanguageServerTransport extends TransportStream {
8
+ /**
9
+ * The language server remote console.
10
+ */
11
+ #console;
12
+ constructor(options) {
13
+ super(options);
14
+ this.#console = options.connection.console;
15
+ }
16
+ log(
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ info, callback) {
19
+ setImmediate(() => {
20
+ this.emit('logged', info);
21
+ });
22
+ try {
23
+ const logFunc = getLogFunction(this.#console, String(info[LEVEL]));
24
+ if (typeof logFunc === 'function') {
25
+ logFunc.call(this.#console, String(info[MESSAGE]));
26
+ }
27
+ else {
28
+ this.#console.log(String(info[MESSAGE]));
29
+ }
30
+ }
31
+ catch (error) {
32
+ if (!(error instanceof Error) || !error.message.includes('Connection is disposed')) {
33
+ this.emit('error', error);
34
+ }
35
+ }
36
+ callback();
37
+ }
38
+ }
39
+ //# sourceMappingURL=language-server-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-server-transport.js","sourceRoot":"","sources":["../../../../src/server/utils/logging/language-server-transport.ts"],"names":[],"mappings":"AAAA,OAAO,eAAgD,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AASvD;;GAEG;AACH,MAAM,OAAO,uBAAwB,SAAQ,eAAe;IAC3D;;OAEG;IACH,QAAQ,CAAgB;IAExB,YAAY,OAAuC;QAClD,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC;IAC5C,CAAC;IAED,GAAG;IACF,8DAA8D;IAC9D,IAAyE,EACzE,QAAoB;QAEpB,YAAY,CAAC,GAAG,EAAE;YACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC;YACJ,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAEnE,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;gBACnC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC1C,CAAC;QACF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,CAAC,KAAK,YAAY,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAC,EAAE,CAAC;gBACpF,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;QACF,CAAC;QAED,QAAQ,EAAE,CAAC;IACZ,CAAC;CACD"}
@@ -0,0 +1,7 @@
1
+ import { CompletionItem } from 'vscode-languageserver-types';
2
+ import type { DisableType } from '../documents/index.js';
3
+ /**
4
+ * Creates a disable completion item for the given disable type. Uses the given rule if one is
5
+ * provided, otherwise uses a placeholder.
6
+ */
7
+ export declare function createDisableCompletionItem(disableType: DisableType, rule?: string): CompletionItem;
@@ -0,0 +1,32 @@
1
+ import { CompletionItem, CompletionItemKind, InsertTextFormat, MarkupKind, } from 'vscode-languageserver-types';
2
+ /**
3
+ * Creates a disable completion item for the given disable type. Uses the given rule if one is
4
+ * provided, otherwise uses a placeholder.
5
+ */
6
+ export function createDisableCompletionItem(disableType, rule = '') {
7
+ const item = CompletionItem.create(disableType);
8
+ item.kind = CompletionItemKind.Snippet;
9
+ item.insertTextFormat = InsertTextFormat.Snippet;
10
+ if (disableType === 'stylelint-disable') {
11
+ item.insertText = `/* stylelint-disable \${0:${rule || 'rule'}} */\n/* stylelint-enable \${0:${rule || 'rule'}} */`;
12
+ item.detail =
13
+ 'Turn off all Stylelint or individual rules, after which you do not need to re-enable Stylelint. (Stylelint)';
14
+ item.documentation = {
15
+ kind: MarkupKind.Markdown,
16
+ value: `\`\`\`css\n/* stylelint-disable ${rule || 'rule'} */\n/* stylelint-enable ${rule || 'rule'} */\n\`\`\``,
17
+ };
18
+ }
19
+ else {
20
+ item.insertText = `/* ${disableType} \${0:${rule || 'rule'}} */`;
21
+ item.detail =
22
+ disableType === 'stylelint-disable-line'
23
+ ? 'Turn off Stylelint rules for individual lines only, after which you do not need to explicitly re-enable them. (Stylelint)'
24
+ : 'Turn off Stylelint rules for the next line only, after which you do not need to explicitly re-enable them. (Stylelint)';
25
+ item.documentation = {
26
+ kind: MarkupKind.Markdown,
27
+ value: `\`\`\`css\n/* ${disableType} ${rule || 'rule'} */\n\`\`\``,
28
+ };
29
+ }
30
+ return item;
31
+ }
32
+ //# sourceMappingURL=create-disable-completion-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-disable-completion-item.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/create-disable-completion-item.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAChB,UAAU,GACV,MAAM,6BAA6B,CAAC;AAGrC;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,WAAwB,EAAE,IAAI,GAAG,EAAE;IAC9E,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IAEhD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC,OAAO,CAAC;IACvC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,OAAO,CAAC;IAEjD,IAAI,WAAW,KAAK,mBAAmB,EAAE,CAAC;QACzC,IAAI,CAAC,UAAU,GAAG,6BAA6B,IAAI,IAAI,MAAM,kCAC5D,IAAI,IAAI,MACT,MAAM,CAAC;QACP,IAAI,CAAC,MAAM;YACV,6GAA6G,CAAC;QAC/G,IAAI,CAAC,aAAa,GAAG;YACpB,IAAI,EAAE,UAAU,CAAC,QAAQ;YACzB,KAAK,EAAE,mCAAmC,IAAI,IAAI,MAAM,4BACvD,IAAI,IAAI,MACT,aAAa;SACb,CAAC;IACH,CAAC;SAAM,CAAC;QACP,IAAI,CAAC,UAAU,GAAG,MAAM,WAAW,SAAS,IAAI,IAAI,MAAM,MAAM,CAAC;QACjE,IAAI,CAAC,MAAM;YACV,WAAW,KAAK,wBAAwB;gBACvC,CAAC,CAAC,2HAA2H;gBAC7H,CAAC,CAAC,wHAAwH,CAAC;QAC7H,IAAI,CAAC,aAAa,GAAG;YACpB,IAAI,EAAE,UAAU,CAAC,QAAQ;YACzB,KAAK,EAAE,iBAAiB,WAAW,IAAI,IAAI,IAAI,MAAM,aAAa;SAClE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Connection } from 'vscode-languageserver';
2
+ /**
3
+ * Takes an error and displays it in the UI using the given connection.
4
+ * @param connection The language server connection.
5
+ * @param err
6
+ */
7
+ export declare function displayError(connection: Connection, err: unknown): void;
@@ -0,0 +1,24 @@
1
+ import { isIterableObject } from '../iterables.js';
2
+ /**
3
+ * Takes an error and displays it in the UI using the given connection.
4
+ * @param connection The language server connection.
5
+ * @param err
6
+ */
7
+ export function displayError(connection, err) {
8
+ if (!(err instanceof Error)) {
9
+ connection.window.showErrorMessage(String(err).replace(/\n/gu, ' '));
10
+ return;
11
+ }
12
+ if (isIterableObject(err?.reasons)) {
13
+ for (const reason of err.reasons) {
14
+ connection.window.showErrorMessage(`Stylelint: ${reason}`);
15
+ }
16
+ return;
17
+ }
18
+ if (err?.code === 78) {
19
+ connection.window.showErrorMessage(`Stylelint: ${err.message}`);
20
+ return;
21
+ }
22
+ connection.window.showErrorMessage((err.stack || err.message).replace(/\n/gu, ' '));
23
+ }
24
+ //# sourceMappingURL=display-error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display-error.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/display-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,UAAsB,EAAE,GAAY;IAChE,IAAI,CAAC,CAAC,GAAG,YAAY,KAAK,CAAC,EAAE,CAAC;QAC7B,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;QAErE,OAAO;IACR,CAAC;IAED,IAAI,gBAAgB,CAAE,GAA0B,EAAE,OAAO,CAAC,EAAE,CAAC;QAC5D,KAAK,MAAM,MAAM,IAAK,GAA0B,CAAC,OAAO,EAAE,CAAC;YAC1D,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;QAED,OAAO;IACR,CAAC;IAED,IAAK,GAA0B,EAAE,IAAI,KAAK,EAAE,EAAE,CAAC;QAC9C,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,cAAc,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAEhE,OAAO;IACR,CAAC;IAED,UAAU,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC;AACrF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './create-disable-completion-item.js';
2
+ export * from './display-error.js';
3
+ export * from './rule-code-actions-collection.js';
4
+ export * from './types.js';
@@ -0,0 +1,5 @@
1
+ export * from './create-disable-completion-item.js';
2
+ export * from './display-error.js';
3
+ export * from './rule-code-actions-collection.js';
4
+ export * from './types.js';
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC;AACpD,cAAc,oBAAoB,CAAC;AACnC,cAAc,mCAAmC,CAAC;AAClD,cAAc,YAAY,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { CodeAction } from 'vscode-languageserver-protocol';
2
+ import type { RuleCodeActions } from './types.js';
3
+ /**
4
+ * A collection of code actions that apply to specific rules. Allows adding
5
+ * actions and retrieving them grouped by the rules to which they apply and
6
+ * sorted by the priority of the rule.
7
+ *
8
+ * Actions are prioritized in the order:
9
+ *
10
+ * 1. Fix all instances of a rule
11
+ * 2. Disable rule actions
12
+ * 3. Show documentation actions
13
+ */
14
+ export declare class RuleCodeActionsCollection implements Iterable<CodeAction> {
15
+ #private;
16
+ /**
17
+ * Gets the code actions for a rule.
18
+ */
19
+ get(ruleId: string): RuleCodeActions;
20
+ /**
21
+ * Iterates over the code actions, grouped by rule and sorted by the
22
+ * priority of the rule.
23
+ */
24
+ [Symbol.iterator](): IterableIterator<CodeAction>;
25
+ /**
26
+ * Gets the number of code actions.
27
+ */
28
+ get size(): number;
29
+ }
@@ -0,0 +1,61 @@
1
+ /**
2
+ * A collection of code actions that apply to specific rules. Allows adding
3
+ * actions and retrieving them grouped by the rules to which they apply and
4
+ * sorted by the priority of the rule.
5
+ *
6
+ * Actions are prioritized in the order:
7
+ *
8
+ * 1. Fix all instances of a rule
9
+ * 2. Disable rule actions
10
+ * 3. Show documentation actions
11
+ */
12
+ export class RuleCodeActionsCollection {
13
+ /**
14
+ * The code actions, keyed by their rule.
15
+ */
16
+ #actions = new Map();
17
+ /**
18
+ * Gets the code actions for a rule.
19
+ */
20
+ get(ruleId) {
21
+ const existing = this.#actions.get(ruleId);
22
+ if (existing) {
23
+ return existing;
24
+ }
25
+ const actions = {};
26
+ this.#actions.set(ruleId, actions);
27
+ return actions;
28
+ }
29
+ /**
30
+ * Iterates over the code actions, grouped by rule and sorted by the
31
+ * priority of the rule.
32
+ */
33
+ *[Symbol.iterator]() {
34
+ for (const actions of this.#actions.values()) {
35
+ if (actions.fixAll) {
36
+ yield actions.fixAll;
37
+ }
38
+ if (actions.disableLine) {
39
+ yield actions.disableLine;
40
+ }
41
+ if (actions.disableFile) {
42
+ yield actions.disableFile;
43
+ }
44
+ if (actions.documentation) {
45
+ yield actions.documentation;
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * Gets the number of code actions.
51
+ */
52
+ get size() {
53
+ const iterator = this[Symbol.iterator]();
54
+ let size = 0;
55
+ while (!iterator.next().done) {
56
+ size++;
57
+ }
58
+ return size;
59
+ }
60
+ }
61
+ //# sourceMappingURL=rule-code-actions-collection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-code-actions-collection.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/rule-code-actions-collection.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,MAAM,OAAO,yBAAyB;IACrC;;OAEG;IACH,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE9C;;OAEG;IACH,GAAG,CAAC,MAAc;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,QAAQ,EAAE,CAAC;YACd,OAAO,QAAQ,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAEnC,OAAO,OAAO,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC9C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACpB,MAAM,OAAO,CAAC,MAAM,CAAC;YACtB,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,OAAO,CAAC,WAAW,CAAC;YAC3B,CAAC;YAED,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;gBACzB,MAAM,OAAO,CAAC,WAAW,CAAC;YAC3B,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC3B,MAAM,OAAO,CAAC,aAAa,CAAC;YAC7B,CAAC;QACF,CAAC;IACF,CAAC;IAED;;OAEG;IACH,IAAI,IAAI;QACP,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzC,IAAI,IAAI,GAAG,CAAC,CAAC;QAEb,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,EAAE,CAAC;QACR,CAAC;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
@@ -0,0 +1,22 @@
1
+ import type LSP from 'vscode-languageserver-protocol';
2
+ /**
3
+ * Code actions for a particular rule.
4
+ */
5
+ export interface RuleCodeActions {
6
+ /**
7
+ * Action to fix all instances of this rule in the document.
8
+ */
9
+ fixAll?: LSP.CodeAction;
10
+ /**
11
+ * Action to disable the rule for a specific line.
12
+ */
13
+ disableLine?: LSP.CodeAction;
14
+ /**
15
+ * Action to disable the rule for an entire file.
16
+ */
17
+ disableFile?: LSP.CodeAction;
18
+ /**
19
+ * Action to show documentation for the rule.
20
+ */
21
+ documentation?: LSP.CodeAction;
22
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/server/utils/lsp/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export * from './is-object.js';
2
+ export * from './merge-assign.js';
3
+ export * from './merge-options-with-defaults.js';
@@ -0,0 +1,4 @@
1
+ export * from './is-object.js';
2
+ export * from './merge-assign.js';
3
+ export * from './merge-options-with-defaults.js';
4
+ //# sourceMappingURL=index.js.map