@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,142 @@
1
+ import { DidChangeConfigurationNotification, TextDocumentSyncKind, } from 'vscode-languageserver-protocol';
2
+ import { isLanguageServerServiceInstance } from '../decorators.js';
3
+ import { CommandService, NotificationService, StylelintRunnerService, WorkspaceOptionsService, } from '../services/index.js';
4
+ import { textDocumentsToken } from '../tokens.js';
5
+ import { mergeAssign } from '../utils/index.js';
6
+ import { LanguageServerServiceRuntime, } from './lsp-service-runtime.js';
7
+ const defaultRuntimeFactory = (commandService, options) => new LanguageServerServiceRuntime(commandService, options);
8
+ class LanguageServerFeature {
9
+ #connection;
10
+ #documentDisposables = [];
11
+ #runtimeFactory;
12
+ #documents;
13
+ #commandService;
14
+ #notificationService;
15
+ #optionsService;
16
+ #runner;
17
+ #serviceRuntime;
18
+ #supportsWorkspaceConfiguration = false;
19
+ constructor(connection, runtimeFactory) {
20
+ this.#connection = connection;
21
+ this.#runtimeFactory = runtimeFactory;
22
+ }
23
+ start(context) {
24
+ if (this.#serviceRuntime) {
25
+ return;
26
+ }
27
+ this.#documents = context.resolve(textDocumentsToken);
28
+ this.#commandService = context.resolve(CommandService);
29
+ this.#notificationService = context.resolve(NotificationService);
30
+ this.#optionsService = context.resolve(WorkspaceOptionsService);
31
+ this.#runner = context.resolve(StylelintRunnerService);
32
+ this.#serviceRuntime = this.#runtimeFactory(this.#commandService, {
33
+ documents: this.#documents,
34
+ });
35
+ this.#documents.listen(this.#connection);
36
+ this.#commandService.register();
37
+ this.#registerDocumentHandlers();
38
+ this.#registerConnectionHandlers();
39
+ this.#registerServices(context.metadata.services);
40
+ this.#serviceRuntime.registerCommandHandlers();
41
+ }
42
+ shutdown() {
43
+ if (!this.#serviceRuntime) {
44
+ return;
45
+ }
46
+ this.#serviceRuntime.dispose();
47
+ this.#serviceRuntime = undefined;
48
+ this.#disposeDocumentHandlers();
49
+ if (this.#commandService) {
50
+ this.#commandService.dispose();
51
+ this.#commandService = undefined;
52
+ }
53
+ if (this.#notificationService) {
54
+ this.#notificationService.dispose();
55
+ this.#notificationService = undefined;
56
+ }
57
+ try {
58
+ this.#runner?.dispose();
59
+ }
60
+ catch {
61
+ // Ignore resolution issues during shutdown.
62
+ }
63
+ this.#runner = undefined;
64
+ }
65
+ dispose() {
66
+ this.#disposeDocumentHandlers();
67
+ }
68
+ #registerServices(services) {
69
+ if (!this.#serviceRuntime) {
70
+ return;
71
+ }
72
+ for (const service of services) {
73
+ if (!isLanguageServerServiceInstance(service)) {
74
+ continue;
75
+ }
76
+ this.#serviceRuntime.registerService(service);
77
+ }
78
+ }
79
+ #registerDocumentHandlers() {
80
+ if (!this.#documents || !this.#optionsService) {
81
+ return;
82
+ }
83
+ const disposable = this.#documents.onDidClose(({ document }) => {
84
+ this.#optionsService?.delete(document.uri);
85
+ });
86
+ this.#documentDisposables.push(disposable);
87
+ }
88
+ #disposeDocumentHandlers() {
89
+ for (const disposable of this.#documentDisposables) {
90
+ try {
91
+ disposable.dispose();
92
+ }
93
+ catch {
94
+ // Best-effort cleanup.
95
+ }
96
+ }
97
+ this.#documentDisposables.length = 0;
98
+ }
99
+ #registerConnectionHandlers() {
100
+ this.#connection.onInitialize((params) => this.#handleInitialize(params));
101
+ this.#connection.onInitialized((params) => {
102
+ void this.#handleInitialized(params);
103
+ });
104
+ this.#connection.onDidChangeConfiguration((params) => this.#handleDidChangeConfiguration(params));
105
+ }
106
+ #handleInitialize(params) {
107
+ this.#supportsWorkspaceConfiguration = Boolean(params.capabilities.workspace?.configuration);
108
+ this.#optionsService?.setSupportsWorkspaceConfiguration(this.#supportsWorkspaceConfiguration);
109
+ const baseResult = {
110
+ capabilities: {
111
+ textDocumentSync: TextDocumentSyncKind.Full,
112
+ },
113
+ };
114
+ const decorated = this.#serviceRuntime?.runInitializers(params);
115
+ if (decorated) {
116
+ mergeAssign(baseResult, decorated);
117
+ }
118
+ return baseResult;
119
+ }
120
+ async #handleInitialized(_params) {
121
+ if (!this.#supportsWorkspaceConfiguration) {
122
+ return;
123
+ }
124
+ await this.#connection.client.register(DidChangeConfigurationNotification.type, {
125
+ section: 'stylelint',
126
+ });
127
+ }
128
+ #handleDidChangeConfiguration(params) {
129
+ if (!this.#optionsService) {
130
+ return;
131
+ }
132
+ this.#optionsService.clearCache();
133
+ this.#optionsService.updateGlobalOptions(params.settings);
134
+ }
135
+ }
136
+ /**
137
+ * Creates a runtime feature that wires the language server to the shared runtime.
138
+ */
139
+ export function createLanguageServerFeature(options) {
140
+ return new LanguageServerFeature(options.connection, options.runtimeFactory ?? defaultRuntimeFactory);
141
+ }
142
+ //# sourceMappingURL=language-server-feature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-server-feature.js","sourceRoot":"","sources":["../../../src/server/runtime/language-server-feature.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { TextDocuments } from 'vscode-languageserver';
2
+ import type * as LSP from 'vscode-languageserver-protocol';
3
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
4
+ import { CommandService } from '../services/infrastructure/command.service.js';
5
+ export interface LanguageServerServiceRuntimeOptions {
6
+ documents?: TextDocuments<TextDocument>;
7
+ }
8
+ export declare class LanguageServerServiceRuntime {
9
+ #private;
10
+ constructor(commands: CommandService, options?: LanguageServerServiceRuntimeOptions);
11
+ registerService(service: object): void;
12
+ runInitializers(params: LSP.InitializeParams): Partial<LSP.InitializeResult> | undefined;
13
+ registerCommandHandlers(): void;
14
+ dispose(): void;
15
+ }
@@ -0,0 +1,133 @@
1
+ import { mergeAssign } from '../utils/index.js';
2
+ import { getLanguageServerServiceMetadata, } from '../decorators.js';
3
+ export class LanguageServerServiceRuntime {
4
+ #commands;
5
+ #documents;
6
+ #services = new Set();
7
+ #commandsRegistered = false;
8
+ constructor(commands, options = {}) {
9
+ this.#commands = commands;
10
+ this.#documents = options.documents;
11
+ }
12
+ registerService(service) {
13
+ if (!getLanguageServerServiceMetadata(service)) {
14
+ return;
15
+ }
16
+ this.#services.add(service);
17
+ this.#registerTextDocumentHandlers(service);
18
+ }
19
+ runInitializers(params) {
20
+ let aggregated;
21
+ for (const service of this.#services) {
22
+ const metadata = getLanguageServerServiceMetadata(service);
23
+ if (!metadata) {
24
+ continue;
25
+ }
26
+ for (const initializer of metadata.initializerHandlers) {
27
+ const result = initializer(params);
28
+ if (!result) {
29
+ continue;
30
+ }
31
+ if (!aggregated) {
32
+ aggregated = { ...result };
33
+ continue;
34
+ }
35
+ mergeAssign(aggregated, result);
36
+ }
37
+ }
38
+ return aggregated;
39
+ }
40
+ registerCommandHandlers() {
41
+ if (this.#commandsRegistered) {
42
+ return;
43
+ }
44
+ for (const service of this.#services) {
45
+ const metadata = getLanguageServerServiceMetadata(service);
46
+ if (!metadata) {
47
+ continue;
48
+ }
49
+ for (const handlerMetadata of metadata.commandHandlers) {
50
+ const handler = this.#createCommandHandler(service, handlerMetadata);
51
+ const disposable = this.#commands.on(handlerMetadata.commandId, handler);
52
+ metadata.disposables.push(disposable);
53
+ }
54
+ }
55
+ this.#commandsRegistered = true;
56
+ }
57
+ dispose() {
58
+ for (const service of this.#services) {
59
+ const metadata = getLanguageServerServiceMetadata(service);
60
+ if (!metadata) {
61
+ continue;
62
+ }
63
+ this.#runShutdownHandlers(metadata);
64
+ this.#disposeMetadata(metadata);
65
+ }
66
+ this.#services.clear();
67
+ }
68
+ #disposeMetadata(metadata) {
69
+ for (const disposable of metadata.disposables) {
70
+ try {
71
+ disposable.dispose();
72
+ }
73
+ catch {
74
+ // Best effort cleanup.
75
+ }
76
+ }
77
+ metadata.disposables.length = 0;
78
+ }
79
+ #createCommandHandler(_service, descriptor) {
80
+ return async (params) => {
81
+ const args = params.arguments ?? [];
82
+ const minArgs = descriptor.options?.minArgs;
83
+ if (typeof minArgs === 'number' && args.length < minArgs) {
84
+ return {};
85
+ }
86
+ // Argument type checking is not performed here; it is the
87
+ // responsibility of the command handler to validate arguments.
88
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-argument
89
+ const result = descriptor.handler(...args);
90
+ const awaited = await Promise.resolve(result);
91
+ return awaited ?? {};
92
+ };
93
+ }
94
+ #registerTextDocumentHandlers(service) {
95
+ const metadata = getLanguageServerServiceMetadata(service);
96
+ if (!metadata || metadata.textDocumentHandlers.length === 0) {
97
+ return;
98
+ }
99
+ if (!this.#documents) {
100
+ throw new Error('@textDocumentEvent() requires a TextDocuments instance. Provide one when creating LanguageServerServiceDecoratorsHost.');
101
+ }
102
+ for (const descriptor of metadata.textDocumentHandlers) {
103
+ const disposable = this.#registerTextDocumentHandler(descriptor);
104
+ metadata.disposables.push(disposable);
105
+ }
106
+ }
107
+ #registerTextDocumentHandler(descriptor) {
108
+ const documents = this.#documents;
109
+ const wrappedHandler = (event) => {
110
+ void descriptor.handler(event)?.catch(() => {
111
+ // Ignore errors from async handlers to avoid crashing document events.
112
+ });
113
+ };
114
+ const registrar = documents[descriptor.event];
115
+ return registrar(wrappedHandler);
116
+ }
117
+ #runShutdownHandlers(metadata) {
118
+ for (const handler of metadata.shutdownHandlers) {
119
+ try {
120
+ const result = handler();
121
+ if (result && typeof result.then === 'function') {
122
+ void result.catch(() => {
123
+ // Suppress shutdown handler errors during disposal.
124
+ });
125
+ }
126
+ }
127
+ catch {
128
+ // Ignore failures to ensure shutdown continues.
129
+ }
130
+ }
131
+ }
132
+ }
133
+ //# sourceMappingURL=lsp-service-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lsp-service-runtime.js","sourceRoot":"","sources":["../../../src/server/runtime/lsp-service-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Connection } from 'vscode-languageserver';
2
+ import type { LogLevel } from '../shared/log-level.js';
3
+ export interface StylelintLanguageServerOptions {
4
+ connection: Connection;
5
+ logLevel?: LogLevel;
6
+ logPath?: string;
7
+ }
8
+ export declare class StylelintLanguageServer {
9
+ #private;
10
+ constructor(options: StylelintLanguageServerOptions);
11
+ start(): Promise<void>;
12
+ dispose(): Promise<void>;
13
+ }
@@ -0,0 +1,38 @@
1
+ // @no-unit-test -- Simple bootstrap code not needing unit tests; tested via integration tests.
2
+ import winston from 'winston';
3
+ import { module } from '../di/index.js';
4
+ import { platformModule } from './modules/index.js';
5
+ import { createLanguageServerApplication } from './runtime/application.js';
6
+ import { languageServerModule } from './server.module.js';
7
+ import { createWinstonLoggingService, winstonToken } from './services/index.js';
8
+ export class StylelintLanguageServer {
9
+ #application;
10
+ #options;
11
+ constructor(options) {
12
+ this.#options = options;
13
+ }
14
+ async start() {
15
+ if (this.#application) {
16
+ return;
17
+ }
18
+ const featureModule = module({
19
+ imports: [languageServerModule],
20
+ register: [
21
+ createWinstonLoggingService(this.#options.logLevel ?? 'info', this.#options.logPath),
22
+ ],
23
+ });
24
+ this.#application = createLanguageServerApplication({
25
+ connection: this.#options.connection,
26
+ modules: [platformModule, featureModule],
27
+ overrides: [[winstonToken, winston]],
28
+ });
29
+ await this.#application.start();
30
+ this.#options.connection.listen();
31
+ }
32
+ async dispose() {
33
+ await this.#application?.dispose();
34
+ this.#application = undefined;
35
+ this.#options.connection.dispose();
36
+ }
37
+ }
38
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server/server.ts"],"names":[],"mappings":"AAAA,+FAA+F;AAG/F,OAAO,OAAO,MAAM,SAAS,CAAC;AAE9B,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,+BAA+B,EAAE,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAShF,MAAM,OAAO,uBAAuB;IACnC,YAAY,CAAsD;IACzD,QAAQ,CAAiC;IAElD,YAAY,OAAuC;QAClD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACV,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;YACvB,OAAO;QACR,CAAC;QAED,MAAM,aAAa,GAAG,MAAM,CAAC;YAC5B,OAAO,EAAE,CAAC,oBAAoB,CAAC;YAC/B,QAAQ,EAAE;gBACT,2BAA2B,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;aACpF;SACD,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,GAAG,+BAA+B,CAAC;YACnD,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;YACpC,OAAO,EAAE,CAAC,cAAc,EAAE,aAAa,CAAC;YACxC,SAAS,EAAE,CAAC,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;SACpC,CAAC,CAAC;QAEH,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,OAAO;QACZ,MAAM,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;QAC9B,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACpC,CAAC;CACD"}
@@ -0,0 +1 @@
1
+ export declare const languageServerModule: import("../di/module.js").ModuleMetadata;
@@ -0,0 +1,13 @@
1
+ // @no-unit-test -- No logic, just DI module definition.
2
+ import { module } from '../di/index.js';
3
+ import { documentsModule, infrastructureModule, lspModule, stylelintRuntimeModule, workspaceModule, } from './modules/index.js';
4
+ export const languageServerModule = module({
5
+ imports: [
6
+ infrastructureModule,
7
+ workspaceModule,
8
+ stylelintRuntimeModule,
9
+ documentsModule,
10
+ lspModule,
11
+ ],
12
+ });
13
+ //# sourceMappingURL=server.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.module.js","sourceRoot":"","sources":["../../src/server/server.module.ts"],"names":[],"mappings":"AAAA,wDAAwD;AAExD,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,SAAS,EACT,sBAAsB,EACtB,eAAe,GACf,MAAM,oBAAoB,CAAC;AAE5B,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAC;IAC1C,OAAO,EAAE;QACR,oBAAoB;QACpB,eAAe;QACf,sBAAsB;QACtB,eAAe;QACf,SAAS;KACT;CACD,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type LSP from 'vscode-languageserver-protocol';
2
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
3
+ import type { LintDiagnostics } from '../../stylelint/index.js';
4
+ import { type LoggingService } from '../infrastructure/logging.service.js';
5
+ export type DocumentLintResult = (LintDiagnostics & {
6
+ version: number;
7
+ }) | undefined;
8
+ export declare class DocumentDiagnosticsService {
9
+ #private;
10
+ constructor(loggingService: LoggingService);
11
+ set(document: TextDocument, diagnostics: LSP.Diagnostic[], lintResult?: LintDiagnostics): void;
12
+ clear(uri: string): void;
13
+ getDiagnostics(uri: string): LSP.Diagnostic[];
14
+ getLintResult(uri: string): DocumentLintResult;
15
+ }
@@ -0,0 +1,88 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { inject } from '../../../di/inject.js';
36
+ import { loggingServiceToken } from '../infrastructure/logging.service.js';
37
+ let DocumentDiagnosticsService = (() => {
38
+ let _classDecorators = [inject({
39
+ inject: [loggingServiceToken],
40
+ })];
41
+ let _classDescriptor;
42
+ let _classExtraInitializers = [];
43
+ let _classThis;
44
+ var DocumentDiagnosticsService = class {
45
+ static { _classThis = this; }
46
+ static {
47
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
48
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
49
+ DocumentDiagnosticsService = _classThis = _classDescriptor.value;
50
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
51
+ __runInitializers(_classThis, _classExtraInitializers);
52
+ }
53
+ #logger;
54
+ #diagnostics = new Map();
55
+ #lintResults = new Map();
56
+ constructor(loggingService) {
57
+ this.#logger = loggingService.createLogger(DocumentDiagnosticsService);
58
+ }
59
+ set(document, diagnostics, lintResult) {
60
+ this.#diagnostics.set(document.uri, diagnostics);
61
+ if (lintResult) {
62
+ this.#lintResults.set(document.uri, { ...lintResult, version: document.version });
63
+ }
64
+ else {
65
+ this.#lintResults.delete(document.uri);
66
+ }
67
+ this.#logger?.debug('Updated diagnostics cache', {
68
+ uri: document.uri,
69
+ diagnostics: diagnostics.length,
70
+ hasLintResult: Boolean(lintResult),
71
+ });
72
+ }
73
+ clear(uri) {
74
+ this.#diagnostics.delete(uri);
75
+ this.#lintResults.delete(uri);
76
+ this.#logger?.debug('Cleared diagnostics cache', { uri });
77
+ }
78
+ getDiagnostics(uri) {
79
+ return this.#diagnostics.get(uri) ?? [];
80
+ }
81
+ getLintResult(uri) {
82
+ return this.#lintResults.get(uri);
83
+ }
84
+ };
85
+ return DocumentDiagnosticsService = _classThis;
86
+ })();
87
+ export { DocumentDiagnosticsService };
88
+ //# sourceMappingURL=document-diagnostics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-diagnostics.service.js","sourceRoot":"","sources":["../../../../src/server/services/documents/document-diagnostics.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,OAAO,EAAuB,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;IAOnF,0BAA0B;4BAHtC,MAAM,CAAC;YACP,MAAM,EAAE,CAAC,mBAAmB,CAAC;SAC7B,CAAC;;;;;;;;YACF,6KAuCC;;;YAvCY,uDAA0B;;QACtC,OAAO,CAAkB;QACzB,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;QACnD,YAAY,GAAG,IAAI,GAAG,EAAkD,CAAC;QAEzE,YAAY,cAA8B;YACzC,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,0BAA0B,CAAC,CAAC;QACxE,CAAC;QAED,GAAG,CAAC,QAAsB,EAAE,WAA6B,EAAE,UAA4B;YACtF,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;YAEjD,IAAI,UAAU,EAAE,CAAC;gBAChB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,GAAG,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,CAAC;iBAAM,CAAC;gBACP,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,2BAA2B,EAAE;gBAChD,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,aAAa,EAAE,OAAO,CAAC,UAAU,CAAC;aAClC,CAAC,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,GAAW;YAChB,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAE9B,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,2BAA2B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,CAAC;QAED,cAAc,CAAC,GAAW;YACzB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACzC,CAAC;QAED,aAAa,CAAC,GAAW;YACxB,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,CAAC;;;;SAtCW,0BAA0B"}
@@ -0,0 +1,14 @@
1
+ import type stylelint from 'stylelint';
2
+ import type { TextDocument } from 'vscode-languageserver-textdocument';
3
+ import type { TextEdit } from 'vscode-languageserver-types';
4
+ import { getFixes } from '../../utils/index.js';
5
+ import { type LoggingService } from '../infrastructure/logging.service.js';
6
+ import { StylelintRunnerService } from '../stylelint-runtime/stylelint-runner.service.js';
7
+ import { WorkspaceOptionsService } from '../workspace/workspace-options.service.js';
8
+ export declare const getFixesFnToken: import("../../../di/tokens.js").Token<typeof getFixes>;
9
+ export declare class DocumentFixesService {
10
+ #private;
11
+ constructor(runner: StylelintRunnerService, options: WorkspaceOptionsService, loggingService: LoggingService, getFixesFn: typeof getFixes);
12
+ getFixes(document: TextDocument, linterOptions?: stylelint.LinterOptions): Promise<TextEdit[]>;
13
+ resolveConfig(document: TextDocument): Promise<stylelint.Config | undefined>;
14
+ }
@@ -0,0 +1,94 @@
1
+ var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
+ function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
+ var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
+ var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
+ var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
+ var _, done = false;
7
+ for (var i = decorators.length - 1; i >= 0; i--) {
8
+ var context = {};
9
+ for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
+ for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
+ context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
+ var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
+ if (kind === "accessor") {
14
+ if (result === void 0) continue;
15
+ if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
+ if (_ = accept(result.get)) descriptor.get = _;
17
+ if (_ = accept(result.set)) descriptor.set = _;
18
+ if (_ = accept(result.init)) initializers.unshift(_);
19
+ }
20
+ else if (_ = accept(result)) {
21
+ if (kind === "field") initializers.unshift(_);
22
+ else descriptor[key] = _;
23
+ }
24
+ }
25
+ if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
+ done = true;
27
+ };
28
+ var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
+ var useValue = arguments.length > 2;
30
+ for (var i = 0; i < initializers.length; i++) {
31
+ value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
+ }
33
+ return useValue ? value : void 0;
34
+ };
35
+ import { createToken, inject } from '../../../di/index.js';
36
+ import { loggingServiceToken } from '../infrastructure/logging.service.js';
37
+ import { StylelintRunnerService } from '../stylelint-runtime/stylelint-runner.service.js';
38
+ import { WorkspaceOptionsService } from '../workspace/workspace-options.service.js';
39
+ export const getFixesFnToken = createToken('DocumentFixesGetFixesFn');
40
+ let DocumentFixesService = (() => {
41
+ let _classDecorators = [inject({
42
+ inject: [StylelintRunnerService, WorkspaceOptionsService, loggingServiceToken, getFixesFnToken],
43
+ })];
44
+ let _classDescriptor;
45
+ let _classExtraInitializers = [];
46
+ let _classThis;
47
+ var DocumentFixesService = class {
48
+ static { _classThis = this; }
49
+ static {
50
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
51
+ __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
52
+ DocumentFixesService = _classThis = _classDescriptor.value;
53
+ if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
54
+ __runInitializers(_classThis, _classExtraInitializers);
55
+ }
56
+ #runner;
57
+ #options;
58
+ #logger;
59
+ #getFixes;
60
+ constructor(runner, options, loggingService, getFixesFn) {
61
+ this.#runner = runner;
62
+ this.#options = options;
63
+ this.#logger = loggingService.createLogger(DocumentFixesService);
64
+ this.#getFixes = getFixesFn;
65
+ }
66
+ async getFixes(document, linterOptions = {}) {
67
+ try {
68
+ const options = await this.#options.getOptions(document.uri);
69
+ const edits = await this.#getFixes(this.#runner, document, linterOptions, options);
70
+ this.#logger?.debug('Fixes retrieved', { uri: document.uri, edits });
71
+ return edits;
72
+ }
73
+ catch (error) {
74
+ this.#logger?.error('Error getting fixes', { uri: document.uri, error });
75
+ return [];
76
+ }
77
+ }
78
+ async resolveConfig(document) {
79
+ try {
80
+ const runnerOptions = await this.#options.getOptions(document.uri);
81
+ const config = await this.#runner.resolveConfig(document, runnerOptions);
82
+ this.#logger?.debug('Config resolved', { uri: document.uri, hasConfig: Boolean(config) });
83
+ return config;
84
+ }
85
+ catch (error) {
86
+ this.#logger?.error('Error resolving config', { uri: document.uri, error });
87
+ return undefined;
88
+ }
89
+ }
90
+ };
91
+ return DocumentFixesService = _classThis;
92
+ })();
93
+ export { DocumentFixesService };
94
+ //# sourceMappingURL=document-fixes.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document-fixes.service.js","sourceRoot":"","sources":["../../../../src/server/services/documents/document-fixes.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAG3D,OAAO,EAAuB,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAChG,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,uBAAuB,EAAE,MAAM,2CAA2C,CAAC;AAEpF,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAkB,yBAAyB,CAAC,CAAC;IAK1E,oBAAoB;4BAHhC,MAAM,CAAC;YACP,MAAM,EAAE,CAAC,sBAAsB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,eAAe,CAAC;SAC/F,CAAC;;;;;;;;YACF,6KAkDC;;;YAlDY,uDAAoB;;QAChC,OAAO,CAAyB;QAChC,QAAQ,CAA0B;QAClC,OAAO,CAAkB;QACzB,SAAS,CAAkB;QAE3B,YACC,MAA8B,EAC9B,OAAgC,EAChC,cAA8B,EAC9B,UAA2B;YAE3B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;YACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,IAAI,CAAC,OAAO,GAAG,cAAc,CAAC,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACjE,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC;QAC7B,CAAC;QAED,KAAK,CAAC,QAAQ,CACb,QAAsB,EACtB,gBAAyC,EAAE;YAE3C,IAAI,CAAC;gBACJ,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBAC7D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;gBAEnF,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBAErE,OAAO,KAAK,CAAC;YACd,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBAEzE,OAAO,EAAE,CAAC;YACX,CAAC;QACF,CAAC;QAED,KAAK,CAAC,aAAa,CAAC,QAAsB;YACzC,IAAI,CAAC;gBACJ,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE,aAA8B,CAAC,CAAC;gBAE1F,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,iBAAiB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gBAE1F,OAAO,MAAM,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBAChB,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,wBAAwB,EAAE,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE5E,OAAO,SAAS,CAAC;YAClB,CAAC;QACF,CAAC;;;;SAjDW,oBAAoB"}
@@ -0,0 +1,2 @@
1
+ export * from './document-diagnostics.service.js';
2
+ export * from './document-fixes.service.js';
@@ -0,0 +1,3 @@
1
+ export * from './document-diagnostics.service.js';
2
+ export * from './document-fixes.service.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/server/services/documents/index.ts"],"names":[],"mappings":"AAAA,cAAc,mCAAmC,CAAC;AAClD,cAAc,6BAA6B,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './documents/index.js';
2
+ export * from './infrastructure/index.js';
3
+ export * from './lsp/index.js';
4
+ export * from './stylelint-runtime/index.js';
5
+ export * from './workspace/index.js';
@@ -0,0 +1,6 @@
1
+ export * from './documents/index.js';
2
+ export * from './infrastructure/index.js';
3
+ export * from './lsp/index.js';
4
+ export * from './stylelint-runtime/index.js';
5
+ export * from './workspace/index.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,sBAAsB,CAAC"}