@canonical/terrazzo-lsp 0.0.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (807) hide show
  1. package/README.md +158 -10
  2. package/dist/esm/cli/expandGlobs.js +21 -0
  3. package/dist/esm/cli/expandGlobs.js.map +1 -0
  4. package/dist/esm/cli/index.js +64 -0
  5. package/dist/esm/cli/index.js.map +1 -0
  6. package/dist/esm/cli/loadArtifactFiles.js +21 -0
  7. package/dist/esm/cli/loadArtifactFiles.js.map +1 -0
  8. package/dist/esm/cli/printHelp.js +20 -0
  9. package/dist/esm/cli/printHelp.js.map +1 -0
  10. package/dist/esm/cli/runCheck.js +52 -0
  11. package/dist/esm/cli/runCheck.js.map +1 -0
  12. package/dist/esm/cli/runGraph.js +41 -0
  13. package/dist/esm/cli/runGraph.js.map +1 -0
  14. package/dist/esm/cli/runInspect.js +27 -0
  15. package/dist/esm/cli/runInspect.js.map +1 -0
  16. package/dist/esm/cli/runInstall.js +126 -0
  17. package/dist/esm/cli/runInstall.js.map +1 -0
  18. package/dist/esm/cli/runResolve.js +17 -0
  19. package/dist/esm/cli/runResolve.js.map +1 -0
  20. package/dist/esm/cli/runStatus.js +18 -0
  21. package/dist/esm/cli/runStatus.js.map +1 -0
  22. package/dist/esm/cli.js +2 -361
  23. package/dist/esm/cli.js.map +1 -1
  24. package/dist/esm/css/colorSetup.js +13 -0
  25. package/dist/esm/css/colorSetup.js.map +1 -0
  26. package/dist/esm/css/createDocumentIndex.js +43 -0
  27. package/dist/esm/css/createDocumentIndex.js.map +1 -0
  28. package/dist/esm/css/imports/extractCssImports.js +41 -0
  29. package/dist/esm/css/imports/extractCssImports.js.map +1 -0
  30. package/dist/esm/css/{extractJsImports.js → imports/extractJsImports.js} +1 -4
  31. package/dist/esm/css/imports/extractJsImports.js.map +1 -0
  32. package/dist/esm/css/{extractPackageName.js → imports/extractPackageName.js} +1 -1
  33. package/dist/esm/css/imports/extractPackageName.js.map +1 -0
  34. package/dist/esm/css/imports/formatFileUri.js +6 -0
  35. package/dist/esm/css/imports/formatFileUri.js.map +1 -0
  36. package/dist/esm/css/imports/index.js +9 -0
  37. package/dist/esm/css/imports/index.js.map +1 -0
  38. package/dist/esm/css/{isBareSpecifier.js → imports/isBareSpecifier.js} +1 -1
  39. package/dist/esm/css/imports/isBareSpecifier.js.map +1 -0
  40. package/dist/esm/css/{isExternalPath.js → imports/isExternalPath.js} +1 -1
  41. package/dist/esm/css/imports/isExternalPath.js.map +1 -0
  42. package/dist/esm/css/imports/parseFileUri.js +6 -0
  43. package/dist/esm/css/imports/parseFileUri.js.map +1 -0
  44. package/dist/esm/css/{resolveImportSpecifier.js → imports/resolveImportSpecifier.js} +1 -4
  45. package/dist/esm/css/imports/resolveImportSpecifier.js.map +1 -0
  46. package/dist/esm/css/index.js +6 -24
  47. package/dist/esm/css/index.js.map +1 -1
  48. package/dist/esm/css/lezer/applyTreeChanges.js +5 -0
  49. package/dist/esm/css/lezer/applyTreeChanges.js.map +1 -0
  50. package/dist/esm/css/lezer/computeChangedRange.js +23 -0
  51. package/dist/esm/css/lezer/computeChangedRange.js.map +1 -0
  52. package/dist/esm/css/lezer/createTreeFragments.js +5 -0
  53. package/dist/esm/css/lezer/createTreeFragments.js.map +1 -0
  54. package/dist/esm/css/lezer/index.js +6 -0
  55. package/dist/esm/css/lezer/index.js.map +1 -0
  56. package/dist/esm/css/lezer/nodeText.js +4 -0
  57. package/dist/esm/css/lezer/nodeText.js.map +1 -0
  58. package/dist/esm/css/lezer/parseCSS.js +5 -0
  59. package/dist/esm/css/lezer/parseCSS.js.map +1 -0
  60. package/dist/esm/css/lezer/types.js +2 -0
  61. package/dist/esm/css/lezer/types.js.map +1 -0
  62. package/dist/esm/css/scanners/extractPropertyAtPosition.js +23 -0
  63. package/dist/esm/css/scanners/extractPropertyAtPosition.js.map +1 -0
  64. package/dist/esm/css/scanners/index.js +6 -0
  65. package/dist/esm/css/scanners/index.js.map +1 -0
  66. package/dist/esm/css/scanners/parseSuppressionDirectives.js +88 -0
  67. package/dist/esm/css/scanners/parseSuppressionDirectives.js.map +1 -0
  68. package/dist/esm/css/scanners/scanDeclarations.js +38 -0
  69. package/dist/esm/css/scanners/scanDeclarations.js.map +1 -0
  70. package/dist/esm/css/scanners/scanProperties.js +49 -0
  71. package/dist/esm/css/scanners/scanProperties.js.map +1 -0
  72. package/dist/esm/css/scanners/scanUsages.js +64 -0
  73. package/dist/esm/css/scanners/scanUsages.js.map +1 -0
  74. package/dist/esm/css/{buildSelectorContext.js → selectors/buildSelectorContext.js} +2 -2
  75. package/dist/esm/css/selectors/buildSelectorContext.js.map +1 -0
  76. package/dist/esm/css/{classifySelectorScope.js → selectors/classifySelectorScope.js} +1 -1
  77. package/dist/esm/css/selectors/classifySelectorScope.js.map +1 -0
  78. package/dist/esm/css/selectors/index.js +3 -0
  79. package/dist/esm/css/selectors/index.js.map +1 -0
  80. package/dist/esm/css/tree/ancestors.js +74 -0
  81. package/dist/esm/css/tree/ancestors.js.map +1 -0
  82. package/dist/esm/css/tree/declarations.js +6 -0
  83. package/dist/esm/css/tree/declarations.js.map +1 -0
  84. package/dist/esm/css/tree/index.js +5 -0
  85. package/dist/esm/css/tree/index.js.map +1 -0
  86. package/dist/esm/css/tree/lineage.js +10 -0
  87. package/dist/esm/css/tree/lineage.js.map +1 -0
  88. package/dist/esm/css/tree/lines.js +25 -0
  89. package/dist/esm/css/tree/lines.js.map +1 -0
  90. package/dist/esm/css/values/compareFallbackStaleness.js +34 -0
  91. package/dist/esm/css/values/compareFallbackStaleness.js.map +1 -0
  92. package/dist/esm/css/{constants.js → values/constants.js} +0 -2
  93. package/dist/esm/css/values/constants.js.map +1 -0
  94. package/dist/esm/css/{expectedTypeForProperty.js → values/expectedTypeForProperty.js} +0 -7
  95. package/dist/esm/css/values/expectedTypeForProperty.js.map +1 -0
  96. package/dist/esm/css/values/extractUnit.js +6 -0
  97. package/dist/esm/css/values/extractUnit.js.map +1 -0
  98. package/dist/esm/css/values/index.js +11 -0
  99. package/dist/esm/css/values/index.js.map +1 -0
  100. package/dist/esm/css/values/inferValueType.js +104 -0
  101. package/dist/esm/css/values/inferValueType.js.map +1 -0
  102. package/dist/esm/css/{isAssignable.js → values/isAssignable.js} +1 -2
  103. package/dist/esm/css/values/isAssignable.js.map +1 -0
  104. package/dist/esm/css/values/isSuppressed.js +47 -0
  105. package/dist/esm/css/values/isSuppressed.js.map +1 -0
  106. package/dist/esm/css/{mapDtcgType.js → values/mapDtcgType.js} +1 -2
  107. package/dist/esm/css/values/mapDtcgType.js.map +1 -0
  108. package/dist/esm/css/values/parseSyntaxType.js +50 -0
  109. package/dist/esm/css/values/parseSyntaxType.js.map +1 -0
  110. package/dist/esm/css/{resolveDimensionValue.js → values/resolveDimensionValue.js} +2 -3
  111. package/dist/esm/css/{resolveDimensionValue.js.map → values/resolveDimensionValue.js.map} +1 -1
  112. package/dist/esm/diagnosticCodes.js +18 -0
  113. package/dist/esm/diagnosticCodes.js.map +1 -0
  114. package/dist/esm/extension/findBundledVsixPath.js +20 -0
  115. package/dist/esm/extension/findBundledVsixPath.js.map +1 -0
  116. package/dist/esm/extension/index.js +4 -0
  117. package/dist/esm/extension/index.js.map +1 -0
  118. package/dist/esm/extension/installBundledVscodeExtension.js +25 -0
  119. package/dist/esm/extension/installBundledVscodeExtension.js.map +1 -0
  120. package/dist/esm/extension/updateVscodeSettings.js +8 -0
  121. package/dist/esm/extension/updateVscodeSettings.js.map +1 -0
  122. package/dist/esm/graph/ReachabilityCache.js +38 -22
  123. package/dist/esm/graph/ReachabilityCache.js.map +1 -1
  124. package/dist/esm/graph/TokenGraph.js +256 -7
  125. package/dist/esm/graph/TokenGraph.js.map +1 -1
  126. package/dist/esm/graph/index.js +4 -4
  127. package/dist/esm/graph/index.js.map +1 -1
  128. package/dist/esm/graph/loadArtifact.js +26 -31
  129. package/dist/esm/graph/loadArtifact.js.map +1 -1
  130. package/dist/esm/graph/parseArtifactToken.js +19 -18
  131. package/dist/esm/graph/parseArtifactToken.js.map +1 -1
  132. package/dist/esm/index.js +0 -2
  133. package/dist/esm/index.js.map +1 -1
  134. package/dist/esm/protocol/createRequest.js +5 -2
  135. package/dist/esm/protocol/createRequest.js.map +1 -1
  136. package/dist/esm/protocol/index.js +3 -7
  137. package/dist/esm/protocol/index.js.map +1 -1
  138. package/dist/esm/protocol/matchResponse.js +1 -1
  139. package/dist/esm/protocol/matchResponse.js.map +1 -1
  140. package/dist/esm/protocol/resolveConfig.js +41 -25
  141. package/dist/esm/protocol/resolveConfig.js.map +1 -1
  142. package/dist/esm/protocol/typeGuards.js +16 -0
  143. package/dist/esm/protocol/typeGuards.js.map +1 -0
  144. package/dist/esm/providers/artifactDiagnostics/checkBrokenAlias.js +15 -0
  145. package/dist/esm/providers/artifactDiagnostics/checkBrokenAlias.js.map +1 -0
  146. package/dist/esm/providers/artifactDiagnostics/checkCircularAlias.js +22 -0
  147. package/dist/esm/providers/artifactDiagnostics/checkCircularAlias.js.map +1 -0
  148. package/dist/esm/providers/artifactDiagnostics/checkDraftSyntax.js +15 -0
  149. package/dist/esm/providers/artifactDiagnostics/checkDraftSyntax.js.map +1 -0
  150. package/dist/esm/providers/artifactDiagnostics/checkMissingType.js +10 -0
  151. package/dist/esm/providers/artifactDiagnostics/checkMissingType.js.map +1 -0
  152. package/dist/esm/providers/artifactDiagnostics/checkSchemaViolation.js +15 -0
  153. package/dist/esm/providers/artifactDiagnostics/checkSchemaViolation.js.map +1 -0
  154. package/dist/esm/providers/artifactDiagnostics/index.js +28 -0
  155. package/dist/esm/providers/artifactDiagnostics/index.js.map +1 -0
  156. package/dist/esm/providers/classifyProvenance.js +5 -5
  157. package/dist/esm/providers/classifyProvenance.js.map +1 -1
  158. package/dist/esm/providers/completions/buildCompletionItem.js +132 -0
  159. package/dist/esm/providers/completions/buildCompletionItem.js.map +1 -0
  160. package/dist/esm/providers/completions/buildSortText.js +39 -0
  161. package/dist/esm/providers/completions/buildSortText.js.map +1 -0
  162. package/dist/esm/providers/completions/index.js +6 -0
  163. package/dist/esm/providers/completions/index.js.map +1 -0
  164. package/dist/esm/providers/completions/provideCompletions.js +64 -0
  165. package/dist/esm/providers/completions/provideCompletions.js.map +1 -0
  166. package/dist/esm/providers/completions/resolveCompletionItem.js +26 -0
  167. package/dist/esm/providers/completions/resolveCompletionItem.js.map +1 -0
  168. package/dist/esm/providers/completions/resolveExpectedType.js +17 -0
  169. package/dist/esm/providers/completions/resolveExpectedType.js.map +1 -0
  170. package/dist/esm/providers/constants.js +53 -0
  171. package/dist/esm/providers/constants.js.map +1 -0
  172. package/dist/esm/providers/diagnostics/checkMissingFallback.js +20 -0
  173. package/dist/esm/providers/diagnostics/checkMissingFallback.js.map +1 -0
  174. package/dist/esm/providers/diagnostics/checkNoColorScheme.js +27 -0
  175. package/dist/esm/providers/diagnostics/checkNoColorScheme.js.map +1 -0
  176. package/dist/esm/providers/diagnostics/checkPrimitiveToken.js +20 -0
  177. package/dist/esm/providers/diagnostics/checkPrimitiveToken.js.map +1 -0
  178. package/dist/esm/providers/diagnostics/checkScopedUsage.js +28 -0
  179. package/dist/esm/providers/diagnostics/checkScopedUsage.js.map +1 -0
  180. package/dist/esm/providers/diagnostics/checkStaleFallback.js +22 -0
  181. package/dist/esm/providers/diagnostics/checkStaleFallback.js.map +1 -0
  182. package/dist/esm/providers/diagnostics/checkTypeMismatch.js +24 -0
  183. package/dist/esm/providers/diagnostics/checkTypeMismatch.js.map +1 -0
  184. package/dist/esm/providers/diagnostics/checkTypeUncertain.js +19 -0
  185. package/dist/esm/providers/diagnostics/checkTypeUncertain.js.map +1 -0
  186. package/dist/esm/providers/diagnostics/checkUnknownVar.js +18 -0
  187. package/dist/esm/providers/diagnostics/checkUnknownVar.js.map +1 -0
  188. package/dist/esm/providers/diagnostics/checkUnreachableToken.js +25 -0
  189. package/dist/esm/providers/diagnostics/checkUnreachableToken.js.map +1 -0
  190. package/dist/esm/providers/diagnostics/index.js +2 -0
  191. package/dist/esm/providers/diagnostics/index.js.map +1 -0
  192. package/dist/esm/providers/diagnostics/orchestrateDiagnostics.js +90 -0
  193. package/dist/esm/providers/diagnostics/orchestrateDiagnostics.js.map +1 -0
  194. package/dist/esm/providers/diagnostics/types.js +2 -0
  195. package/dist/esm/providers/diagnostics/types.js.map +1 -0
  196. package/dist/esm/providers/formatCheckReport.js +4 -4
  197. package/dist/esm/providers/formatCheckReport.js.map +1 -1
  198. package/dist/esm/providers/index.js +18 -10
  199. package/dist/esm/providers/index.js.map +1 -1
  200. package/dist/esm/providers/makeDiagnostic.js +13 -0
  201. package/dist/esm/providers/makeDiagnostic.js.map +1 -0
  202. package/dist/esm/providers/prepareRename.js +36 -0
  203. package/dist/esm/providers/prepareRename.js.map +1 -0
  204. package/dist/esm/providers/provideCodeActions.js +154 -0
  205. package/dist/esm/providers/provideCodeActions.js.map +1 -0
  206. package/dist/esm/providers/provideDocumentColors.js +1 -1
  207. package/dist/esm/providers/provideDocumentColors.js.map +1 -1
  208. package/dist/esm/providers/provideDocumentLinks.js +55 -0
  209. package/dist/esm/providers/provideDocumentLinks.js.map +1 -0
  210. package/dist/esm/providers/provideHover.js +3 -6
  211. package/dist/esm/providers/provideHover.js.map +1 -1
  212. package/dist/esm/providers/provideInlayHints.js +82 -0
  213. package/dist/esm/providers/provideInlayHints.js.map +1 -0
  214. package/dist/esm/providers/provideReferences.js +39 -0
  215. package/dist/esm/providers/provideReferences.js.map +1 -0
  216. package/dist/esm/providers/provideRename.js +4 -4
  217. package/dist/esm/providers/provideRename.js.map +1 -1
  218. package/dist/esm/providers/provideSemanticTokens.js +6 -13
  219. package/dist/esm/providers/provideSemanticTokens.js.map +1 -1
  220. package/dist/esm/providers/provideWorkspaceSymbols.js +39 -13
  221. package/dist/esm/providers/provideWorkspaceSymbols.js.map +1 -1
  222. package/dist/esm/providers/resolveDefinition.js +4 -4
  223. package/dist/esm/providers/resolveDefinition.js.map +1 -1
  224. package/dist/esm/providers/tokenTooltip/buildResolutionTable.js +121 -0
  225. package/dist/esm/providers/tokenTooltip/buildResolutionTable.js.map +1 -0
  226. package/dist/esm/providers/tokenTooltip/buildTokenTooltip.js +60 -0
  227. package/dist/esm/providers/tokenTooltip/buildTokenTooltip.js.map +1 -0
  228. package/dist/esm/providers/tokenTooltip/constants.js +14 -0
  229. package/dist/esm/providers/tokenTooltip/constants.js.map +1 -0
  230. package/dist/esm/providers/tokenTooltip/formatDeclarationSites.js +53 -0
  231. package/dist/esm/providers/tokenTooltip/formatDeclarationSites.js.map +1 -0
  232. package/dist/esm/providers/tokenTooltip/formatProvenanceLine.js +86 -0
  233. package/dist/esm/providers/tokenTooltip/formatProvenanceLine.js.map +1 -0
  234. package/dist/esm/providers/tokenTooltip/index.js +6 -0
  235. package/dist/esm/providers/tokenTooltip/index.js.map +1 -0
  236. package/dist/esm/providers/tokenTooltip/resolveToLiteral.js +19 -0
  237. package/dist/esm/providers/tokenTooltip/resolveToLiteral.js.map +1 -0
  238. package/dist/esm/providers/truncate.js +6 -0
  239. package/dist/esm/providers/truncate.js.map +1 -0
  240. package/dist/esm/providers/types.js +38 -0
  241. package/dist/esm/providers/types.js.map +1 -0
  242. package/dist/esm/runtime/ConfigNotFoundError.js +21 -0
  243. package/dist/esm/runtime/ConfigNotFoundError.js.map +1 -0
  244. package/dist/esm/runtime/artifacts/index.js +2 -0
  245. package/dist/esm/runtime/artifacts/index.js.map +1 -0
  246. package/dist/esm/runtime/artifacts/loadConfiguredArtifacts.js +32 -0
  247. package/dist/esm/runtime/artifacts/loadConfiguredArtifacts.js.map +1 -0
  248. package/dist/esm/runtime/buildImportGraph.js +15 -55
  249. package/dist/esm/runtime/buildImportGraph.js.map +1 -1
  250. package/dist/esm/runtime/config/ensureServerConfig.js +64 -0
  251. package/dist/esm/runtime/config/ensureServerConfig.js.map +1 -0
  252. package/dist/esm/runtime/config/index.js +2 -0
  253. package/dist/esm/runtime/config/index.js.map +1 -0
  254. package/dist/esm/runtime/createConfigCandidatePath.js +7 -0
  255. package/dist/esm/runtime/createConfigCandidatePath.js.map +1 -0
  256. package/dist/esm/runtime/createGraphWorker.js +13 -319
  257. package/dist/esm/runtime/createGraphWorker.js.map +1 -1
  258. package/dist/esm/runtime/createServerState.js +39 -0
  259. package/dist/esm/runtime/createServerState.js.map +1 -0
  260. package/dist/esm/runtime/detectRuntime.js +40 -0
  261. package/dist/esm/runtime/detectRuntime.js.map +1 -0
  262. package/dist/esm/runtime/dispatch/LogMessageType.js +8 -0
  263. package/dist/esm/runtime/dispatch/LogMessageType.js.map +1 -0
  264. package/dist/esm/runtime/dispatch/handleWorkerResponse.js +58 -0
  265. package/dist/esm/runtime/dispatch/handleWorkerResponse.js.map +1 -0
  266. package/dist/esm/runtime/dispatch/index.js +5 -0
  267. package/dist/esm/runtime/dispatch/index.js.map +1 -0
  268. package/dist/esm/runtime/dispatch/routeLspRequest.js +232 -0
  269. package/dist/esm/runtime/dispatch/routeLspRequest.js.map +1 -0
  270. package/dist/esm/runtime/dispatch/routeWorkerRequest.js +162 -0
  271. package/dist/esm/runtime/dispatch/routeWorkerRequest.js.map +1 -0
  272. package/dist/esm/runtime/dispatch/types.js +2 -0
  273. package/dist/esm/runtime/dispatch/types.js.map +1 -0
  274. package/dist/esm/runtime/documents/handleArtifactChanged.js +18 -0
  275. package/dist/esm/runtime/documents/handleArtifactChanged.js.map +1 -0
  276. package/dist/esm/runtime/documents/handleChangeDocument.js +41 -0
  277. package/dist/esm/runtime/documents/handleChangeDocument.js.map +1 -0
  278. package/dist/esm/runtime/documents/handleCloseDocument.js +10 -0
  279. package/dist/esm/runtime/documents/handleCloseDocument.js.map +1 -0
  280. package/dist/esm/runtime/documents/handleFileChanged.js +14 -0
  281. package/dist/esm/runtime/documents/handleFileChanged.js.map +1 -0
  282. package/dist/esm/runtime/documents/handleOpenDocument.js +37 -0
  283. package/dist/esm/runtime/documents/handleOpenDocument.js.map +1 -0
  284. package/dist/esm/runtime/documents/index.js +6 -0
  285. package/dist/esm/runtime/documents/index.js.map +1 -0
  286. package/dist/esm/runtime/getServerCapabilities.js +35 -0
  287. package/dist/esm/runtime/getServerCapabilities.js.map +1 -0
  288. package/dist/esm/runtime/index.js +12 -3
  289. package/dist/esm/runtime/index.js.map +1 -1
  290. package/dist/esm/runtime/indexing/index.js +5 -0
  291. package/dist/esm/runtime/indexing/index.js.map +1 -0
  292. package/dist/esm/runtime/indexing/indexDocument.js +32 -0
  293. package/dist/esm/runtime/indexing/indexDocument.js.map +1 -0
  294. package/dist/esm/runtime/indexing/indexGlobalStylesheets.js +12 -0
  295. package/dist/esm/runtime/indexing/indexGlobalStylesheets.js.map +1 -0
  296. package/dist/esm/runtime/indexing/reindexDocument.js +16 -0
  297. package/dist/esm/runtime/indexing/reindexDocument.js.map +1 -0
  298. package/dist/esm/runtime/indexing/updateImportEdges.js +5 -0
  299. package/dist/esm/runtime/indexing/updateImportEdges.js.map +1 -0
  300. package/dist/esm/runtime/scheduleBufferUpdate.js +13 -35
  301. package/dist/esm/runtime/scheduleBufferUpdate.js.map +1 -1
  302. package/dist/esm/runtime/startLspServer.js +36 -335
  303. package/dist/esm/runtime/startLspServer.js.map +1 -1
  304. package/dist/esm/runtime/types.js +0 -6
  305. package/dist/esm/runtime/types.js.map +1 -1
  306. package/dist/esm/testing/index.js +8 -0
  307. package/dist/esm/testing/index.js.map +1 -0
  308. package/dist/esm/testing/makeArtifactToken.js +31 -0
  309. package/dist/esm/testing/makeArtifactToken.js.map +1 -0
  310. package/dist/esm/testing/makeConfig.js +40 -0
  311. package/dist/esm/testing/makeConfig.js.map +1 -0
  312. package/dist/esm/testing/makeDeclarationNode.js +18 -0
  313. package/dist/esm/testing/makeDeclarationNode.js.map +1 -0
  314. package/dist/esm/testing/makePropertyNode.js +12 -0
  315. package/dist/esm/testing/makePropertyNode.js.map +1 -0
  316. package/dist/esm/testing/makeServerState.js +21 -0
  317. package/dist/esm/testing/makeServerState.js.map +1 -0
  318. package/dist/esm/testing/makeTokenNode.js +34 -0
  319. package/dist/esm/testing/makeTokenNode.js.map +1 -0
  320. package/dist/esm/testing/makeTransport.js +9 -0
  321. package/dist/esm/testing/makeTransport.js.map +1 -0
  322. package/dist/esm/transport/index.js +2 -0
  323. package/dist/esm/transport/index.js.map +1 -0
  324. package/dist/esm/transport/stdio/createMessageStream.js +50 -0
  325. package/dist/esm/transport/stdio/createMessageStream.js.map +1 -0
  326. package/dist/esm/transport/stdio/index.js +2 -0
  327. package/dist/esm/transport/stdio/index.js.map +1 -0
  328. package/dist/esm/types/config.js +6 -0
  329. package/dist/esm/types/config.js.map +1 -0
  330. package/dist/esm/types/css.js +6 -0
  331. package/dist/esm/types/css.js.map +1 -0
  332. package/dist/esm/types/graph.js +6 -0
  333. package/dist/esm/types/graph.js.map +1 -0
  334. package/dist/esm/types/index.js +16 -0
  335. package/dist/esm/types/index.js.map +1 -0
  336. package/dist/esm/types/lsp.js +10 -0
  337. package/dist/esm/types/lsp.js.map +1 -0
  338. package/dist/esm/types/protocol.js +35 -0
  339. package/dist/esm/types/protocol.js.map +1 -0
  340. package/dist/esm/types/worker.js +6 -0
  341. package/dist/esm/types/worker.js.map +1 -0
  342. package/dist/types/cli/expandGlobs.d.ts +2 -0
  343. package/dist/types/cli/expandGlobs.d.ts.map +1 -0
  344. package/dist/types/cli/index.d.ts +2 -0
  345. package/dist/types/cli/index.d.ts.map +1 -0
  346. package/dist/types/cli/loadArtifactFiles.d.ts +3 -0
  347. package/dist/types/cli/loadArtifactFiles.d.ts.map +1 -0
  348. package/dist/types/cli/printHelp.d.ts +3 -0
  349. package/dist/types/cli/printHelp.d.ts.map +1 -0
  350. package/dist/types/cli/runCheck.d.ts +2 -0
  351. package/dist/types/cli/runCheck.d.ts.map +1 -0
  352. package/dist/types/cli/runGraph.d.ts +2 -0
  353. package/dist/types/cli/runGraph.d.ts.map +1 -0
  354. package/dist/types/cli/runInspect.d.ts +2 -0
  355. package/dist/types/cli/runInspect.d.ts.map +1 -0
  356. package/dist/types/cli/runInstall.d.ts +7 -0
  357. package/dist/types/cli/runInstall.d.ts.map +1 -0
  358. package/dist/types/cli/runResolve.d.ts +8 -0
  359. package/dist/types/cli/runResolve.d.ts.map +1 -0
  360. package/dist/types/cli/runStatus.d.ts +2 -0
  361. package/dist/types/cli/runStatus.d.ts.map +1 -0
  362. package/dist/types/cli.d.ts +2 -1
  363. package/dist/types/cli.d.ts.map +1 -1
  364. package/dist/types/css/colorSetup.d.ts +2 -0
  365. package/dist/types/css/colorSetup.d.ts.map +1 -0
  366. package/dist/types/css/createDocumentIndex.d.ts +21 -0
  367. package/dist/types/css/createDocumentIndex.d.ts.map +1 -0
  368. package/dist/types/css/imports/extractCssImports.d.ts +4 -0
  369. package/dist/types/css/imports/extractCssImports.d.ts.map +1 -0
  370. package/dist/types/css/imports/extractJsImports.d.ts +3 -0
  371. package/dist/types/css/imports/extractJsImports.d.ts.map +1 -0
  372. package/dist/types/css/{extractPackageName.d.ts → imports/extractPackageName.d.ts} +1 -1
  373. package/dist/types/css/imports/extractPackageName.d.ts.map +1 -0
  374. package/dist/types/css/imports/formatFileUri.d.ts +2 -0
  375. package/dist/types/css/imports/formatFileUri.d.ts.map +1 -0
  376. package/dist/types/css/imports/index.d.ts +9 -0
  377. package/dist/types/css/imports/index.d.ts.map +1 -0
  378. package/dist/types/css/imports/isBareSpecifier.d.ts +3 -0
  379. package/dist/types/css/imports/isBareSpecifier.d.ts.map +1 -0
  380. package/dist/types/css/imports/isExternalPath.d.ts +3 -0
  381. package/dist/types/css/imports/isExternalPath.d.ts.map +1 -0
  382. package/dist/types/css/imports/parseFileUri.d.ts +2 -0
  383. package/dist/types/css/imports/parseFileUri.d.ts.map +1 -0
  384. package/dist/types/css/{resolveImportSpecifier.d.ts → imports/resolveImportSpecifier.d.ts} +1 -1
  385. package/dist/types/css/imports/resolveImportSpecifier.d.ts.map +1 -0
  386. package/dist/types/css/index.d.ts +7 -24
  387. package/dist/types/css/index.d.ts.map +1 -1
  388. package/dist/types/css/lezer/applyTreeChanges.d.ts +4 -0
  389. package/dist/types/css/lezer/applyTreeChanges.d.ts.map +1 -0
  390. package/dist/types/css/lezer/computeChangedRange.d.ts +3 -0
  391. package/dist/types/css/lezer/computeChangedRange.d.ts.map +1 -0
  392. package/dist/types/css/lezer/createTreeFragments.d.ts +4 -0
  393. package/dist/types/css/lezer/createTreeFragments.d.ts.map +1 -0
  394. package/dist/types/css/lezer/index.d.ts +7 -0
  395. package/dist/types/css/lezer/index.d.ts.map +1 -0
  396. package/dist/types/css/lezer/nodeText.d.ts +3 -0
  397. package/dist/types/css/lezer/nodeText.d.ts.map +1 -0
  398. package/dist/types/css/lezer/parseCSS.d.ts +4 -0
  399. package/dist/types/css/lezer/parseCSS.d.ts.map +1 -0
  400. package/dist/types/css/lezer/types.d.ts +2 -0
  401. package/dist/types/css/lezer/types.d.ts.map +1 -0
  402. package/dist/types/css/scanners/extractPropertyAtPosition.d.ts +20 -0
  403. package/dist/types/css/scanners/extractPropertyAtPosition.d.ts.map +1 -0
  404. package/dist/types/css/scanners/index.d.ts +6 -0
  405. package/dist/types/css/scanners/index.d.ts.map +1 -0
  406. package/dist/types/css/scanners/parseSuppressionDirectives.d.ts +10 -0
  407. package/dist/types/css/scanners/parseSuppressionDirectives.d.ts.map +1 -0
  408. package/dist/types/css/scanners/scanDeclarations.d.ts +5 -0
  409. package/dist/types/css/scanners/scanDeclarations.d.ts.map +1 -0
  410. package/dist/types/css/scanners/scanProperties.d.ts +5 -0
  411. package/dist/types/css/scanners/scanProperties.d.ts.map +1 -0
  412. package/dist/types/css/scanners/scanUsages.d.ts +5 -0
  413. package/dist/types/css/scanners/scanUsages.d.ts.map +1 -0
  414. package/dist/types/css/selectors/buildSelectorContext.d.ts +4 -0
  415. package/dist/types/css/selectors/buildSelectorContext.d.ts.map +1 -0
  416. package/dist/types/css/selectors/classifySelectorScope.d.ts +4 -0
  417. package/dist/types/css/selectors/classifySelectorScope.d.ts.map +1 -0
  418. package/dist/types/css/selectors/index.d.ts +3 -0
  419. package/dist/types/css/selectors/index.d.ts.map +1 -0
  420. package/dist/types/css/tree/ancestors.d.ts +6 -0
  421. package/dist/types/css/tree/ancestors.d.ts.map +1 -0
  422. package/dist/types/css/tree/declarations.d.ts +2 -0
  423. package/dist/types/css/tree/declarations.d.ts.map +1 -0
  424. package/dist/types/css/tree/index.d.ts +5 -0
  425. package/dist/types/css/tree/index.d.ts.map +1 -0
  426. package/dist/types/css/tree/lineage.d.ts +5 -0
  427. package/dist/types/css/tree/lineage.d.ts.map +1 -0
  428. package/dist/types/css/tree/lines.d.ts +4 -0
  429. package/dist/types/css/tree/lines.d.ts.map +1 -0
  430. package/dist/types/css/values/compareFallbackStaleness.d.ts +2 -0
  431. package/dist/types/css/values/compareFallbackStaleness.d.ts.map +1 -0
  432. package/dist/types/css/values/constants.d.ts +5 -0
  433. package/dist/types/css/values/constants.d.ts.map +1 -0
  434. package/dist/types/css/values/expectedTypeForProperty.d.ts +7 -0
  435. package/dist/types/css/values/expectedTypeForProperty.d.ts.map +1 -0
  436. package/dist/types/css/values/extractUnit.d.ts +3 -0
  437. package/dist/types/css/values/extractUnit.d.ts.map +1 -0
  438. package/dist/types/css/values/index.d.ts +11 -0
  439. package/dist/types/css/values/index.d.ts.map +1 -0
  440. package/dist/types/css/values/inferValueType.d.ts +16 -0
  441. package/dist/types/css/values/inferValueType.d.ts.map +1 -0
  442. package/dist/types/css/values/isAssignable.d.ts +4 -0
  443. package/dist/types/css/values/isAssignable.d.ts.map +1 -0
  444. package/dist/types/css/values/isSuppressed.d.ts +4 -0
  445. package/dist/types/css/values/isSuppressed.d.ts.map +1 -0
  446. package/dist/types/css/values/mapDtcgType.d.ts +3 -0
  447. package/dist/types/css/values/mapDtcgType.d.ts.map +1 -0
  448. package/dist/types/css/values/parseSyntaxType.d.ts +13 -0
  449. package/dist/types/css/values/parseSyntaxType.d.ts.map +1 -0
  450. package/dist/types/css/values/resolveDimensionValue.d.ts +4 -0
  451. package/dist/types/css/values/resolveDimensionValue.d.ts.map +1 -0
  452. package/dist/types/diagnosticCodes.d.ts +4 -0
  453. package/dist/types/diagnosticCodes.d.ts.map +1 -0
  454. package/dist/types/extension/findBundledVsixPath.d.ts +3 -0
  455. package/dist/types/extension/findBundledVsixPath.d.ts.map +1 -0
  456. package/dist/types/extension/index.d.ts +4 -0
  457. package/dist/types/extension/index.d.ts.map +1 -0
  458. package/dist/types/extension/installBundledVscodeExtension.d.ts +12 -0
  459. package/dist/types/extension/installBundledVscodeExtension.d.ts.map +1 -0
  460. package/dist/types/extension/updateVscodeSettings.d.ts +3 -0
  461. package/dist/types/extension/updateVscodeSettings.d.ts.map +1 -0
  462. package/dist/types/graph/ReachabilityCache.d.ts +15 -5
  463. package/dist/types/graph/ReachabilityCache.d.ts.map +1 -1
  464. package/dist/types/graph/TokenGraph.d.ts +107 -5
  465. package/dist/types/graph/TokenGraph.d.ts.map +1 -1
  466. package/dist/types/graph/index.d.ts +4 -4
  467. package/dist/types/graph/index.d.ts.map +1 -1
  468. package/dist/types/graph/loadArtifact.d.ts +8 -4
  469. package/dist/types/graph/loadArtifact.d.ts.map +1 -1
  470. package/dist/types/graph/parseArtifactToken.d.ts +8 -4
  471. package/dist/types/graph/parseArtifactToken.d.ts.map +1 -1
  472. package/dist/types/index.d.ts +2 -3
  473. package/dist/types/index.d.ts.map +1 -1
  474. package/dist/types/protocol/createRequest.d.ts +6 -6
  475. package/dist/types/protocol/createRequest.d.ts.map +1 -1
  476. package/dist/types/protocol/index.d.ts +3 -7
  477. package/dist/types/protocol/index.d.ts.map +1 -1
  478. package/dist/types/protocol/matchResponse.d.ts +2 -2
  479. package/dist/types/protocol/matchResponse.d.ts.map +1 -1
  480. package/dist/types/protocol/resolveConfig.d.ts +10 -2
  481. package/dist/types/protocol/resolveConfig.d.ts.map +1 -1
  482. package/dist/types/protocol/typeGuards.d.ts +17 -0
  483. package/dist/types/protocol/typeGuards.d.ts.map +1 -0
  484. package/dist/types/providers/artifactDiagnostics/checkBrokenAlias.d.ts +4 -0
  485. package/dist/types/providers/artifactDiagnostics/checkBrokenAlias.d.ts.map +1 -0
  486. package/dist/types/providers/artifactDiagnostics/checkCircularAlias.d.ts +4 -0
  487. package/dist/types/providers/artifactDiagnostics/checkCircularAlias.d.ts.map +1 -0
  488. package/dist/types/providers/artifactDiagnostics/checkDraftSyntax.d.ts +4 -0
  489. package/dist/types/providers/artifactDiagnostics/checkDraftSyntax.d.ts.map +1 -0
  490. package/dist/types/providers/artifactDiagnostics/checkMissingType.d.ts +4 -0
  491. package/dist/types/providers/artifactDiagnostics/checkMissingType.d.ts.map +1 -0
  492. package/dist/types/providers/artifactDiagnostics/checkSchemaViolation.d.ts +4 -0
  493. package/dist/types/providers/artifactDiagnostics/checkSchemaViolation.d.ts.map +1 -0
  494. package/dist/types/providers/artifactDiagnostics/index.d.ts +13 -0
  495. package/dist/types/providers/artifactDiagnostics/index.d.ts.map +1 -0
  496. package/dist/types/providers/classifyProvenance.d.ts +8 -3
  497. package/dist/types/providers/classifyProvenance.d.ts.map +1 -1
  498. package/dist/types/providers/completions/buildCompletionItem.d.ts +5 -0
  499. package/dist/types/providers/completions/buildCompletionItem.d.ts.map +1 -0
  500. package/dist/types/providers/completions/buildSortText.d.ts +15 -0
  501. package/dist/types/providers/completions/buildSortText.d.ts.map +1 -0
  502. package/dist/types/providers/completions/index.d.ts +6 -0
  503. package/dist/types/providers/completions/index.d.ts.map +1 -0
  504. package/dist/types/providers/{provideCompletions.d.ts → completions/provideCompletions.d.ts} +3 -6
  505. package/dist/types/providers/completions/provideCompletions.d.ts.map +1 -0
  506. package/dist/types/providers/completions/resolveCompletionItem.d.ts +9 -0
  507. package/dist/types/providers/completions/resolveCompletionItem.d.ts.map +1 -0
  508. package/dist/types/providers/completions/resolveExpectedType.d.ts +9 -0
  509. package/dist/types/providers/completions/resolveExpectedType.d.ts.map +1 -0
  510. package/dist/types/providers/constants.d.ts +31 -0
  511. package/dist/types/providers/constants.d.ts.map +1 -0
  512. package/dist/types/providers/diagnostics/checkMissingFallback.d.ts +5 -0
  513. package/dist/types/providers/diagnostics/checkMissingFallback.d.ts.map +1 -0
  514. package/dist/types/providers/diagnostics/checkNoColorScheme.d.ts +5 -0
  515. package/dist/types/providers/diagnostics/checkNoColorScheme.d.ts.map +1 -0
  516. package/dist/types/providers/diagnostics/checkPrimitiveToken.d.ts +5 -0
  517. package/dist/types/providers/diagnostics/checkPrimitiveToken.d.ts.map +1 -0
  518. package/dist/types/providers/diagnostics/checkScopedUsage.d.ts +5 -0
  519. package/dist/types/providers/diagnostics/checkScopedUsage.d.ts.map +1 -0
  520. package/dist/types/providers/diagnostics/checkStaleFallback.d.ts +5 -0
  521. package/dist/types/providers/diagnostics/checkStaleFallback.d.ts.map +1 -0
  522. package/dist/types/providers/diagnostics/checkTypeMismatch.d.ts +5 -0
  523. package/dist/types/providers/diagnostics/checkTypeMismatch.d.ts.map +1 -0
  524. package/dist/types/providers/diagnostics/checkTypeUncertain.d.ts +5 -0
  525. package/dist/types/providers/diagnostics/checkTypeUncertain.d.ts.map +1 -0
  526. package/dist/types/providers/diagnostics/checkUnknownVar.d.ts +5 -0
  527. package/dist/types/providers/diagnostics/checkUnknownVar.d.ts.map +1 -0
  528. package/dist/types/providers/diagnostics/checkUnreachableToken.d.ts +5 -0
  529. package/dist/types/providers/diagnostics/checkUnreachableToken.d.ts.map +1 -0
  530. package/dist/types/providers/diagnostics/index.d.ts +3 -0
  531. package/dist/types/providers/diagnostics/index.d.ts.map +1 -0
  532. package/dist/types/providers/diagnostics/orchestrateDiagnostics.d.ts +6 -0
  533. package/dist/types/providers/diagnostics/orchestrateDiagnostics.d.ts.map +1 -0
  534. package/dist/types/providers/diagnostics/types.d.ts +30 -0
  535. package/dist/types/providers/diagnostics/types.d.ts.map +1 -0
  536. package/dist/types/providers/formatCheckReport.d.ts +4 -3
  537. package/dist/types/providers/formatCheckReport.d.ts.map +1 -1
  538. package/dist/types/providers/index.d.ts +18 -10
  539. package/dist/types/providers/index.d.ts.map +1 -1
  540. package/dist/types/providers/makeDiagnostic.d.ts +3 -0
  541. package/dist/types/providers/makeDiagnostic.d.ts.map +1 -0
  542. package/dist/types/providers/prepareRename.d.ts +15 -0
  543. package/dist/types/providers/prepareRename.d.ts.map +1 -0
  544. package/dist/types/providers/provideCodeActions.d.ts +9 -0
  545. package/dist/types/providers/provideCodeActions.d.ts.map +1 -0
  546. package/dist/types/providers/provideDocumentColors.d.ts +1 -14
  547. package/dist/types/providers/provideDocumentColors.d.ts.map +1 -1
  548. package/dist/types/providers/provideDocumentLinks.d.ts +13 -0
  549. package/dist/types/providers/provideDocumentLinks.d.ts.map +1 -0
  550. package/dist/types/providers/provideHover.d.ts +2 -5
  551. package/dist/types/providers/provideHover.d.ts.map +1 -1
  552. package/dist/types/providers/provideInlayHints.d.ts +21 -0
  553. package/dist/types/providers/provideInlayHints.d.ts.map +1 -0
  554. package/dist/types/providers/provideReferences.d.ts +10 -0
  555. package/dist/types/providers/provideReferences.d.ts.map +1 -0
  556. package/dist/types/providers/provideRename.d.ts +2 -3
  557. package/dist/types/providers/provideRename.d.ts.map +1 -1
  558. package/dist/types/providers/provideSemanticTokens.d.ts +2 -1
  559. package/dist/types/providers/provideSemanticTokens.d.ts.map +1 -1
  560. package/dist/types/providers/provideWorkspaceSymbols.d.ts +2 -10
  561. package/dist/types/providers/provideWorkspaceSymbols.d.ts.map +1 -1
  562. package/dist/types/providers/resolveDefinition.d.ts +2 -5
  563. package/dist/types/providers/resolveDefinition.d.ts.map +1 -1
  564. package/dist/types/providers/tokenTooltip/buildResolutionTable.d.ts +4 -0
  565. package/dist/types/providers/tokenTooltip/buildResolutionTable.d.ts.map +1 -0
  566. package/dist/types/providers/tokenTooltip/buildTokenTooltip.d.ts +22 -0
  567. package/dist/types/providers/tokenTooltip/buildTokenTooltip.d.ts.map +1 -0
  568. package/dist/types/providers/tokenTooltip/constants.d.ts +5 -0
  569. package/dist/types/providers/tokenTooltip/constants.d.ts.map +1 -0
  570. package/dist/types/providers/tokenTooltip/formatDeclarationSites.d.ts +3 -0
  571. package/dist/types/providers/tokenTooltip/formatDeclarationSites.d.ts.map +1 -0
  572. package/dist/types/providers/tokenTooltip/formatProvenanceLine.d.ts +4 -0
  573. package/dist/types/providers/tokenTooltip/formatProvenanceLine.d.ts.map +1 -0
  574. package/dist/types/providers/tokenTooltip/index.d.ts +6 -0
  575. package/dist/types/providers/tokenTooltip/index.d.ts.map +1 -0
  576. package/dist/types/providers/tokenTooltip/resolveToLiteral.d.ts +3 -0
  577. package/dist/types/providers/tokenTooltip/resolveToLiteral.d.ts.map +1 -0
  578. package/dist/types/providers/truncate.d.ts +4 -0
  579. package/dist/types/providers/truncate.d.ts.map +1 -0
  580. package/dist/types/providers/types.d.ts +101 -0
  581. package/dist/types/providers/types.d.ts.map +1 -0
  582. package/dist/types/runtime/ConfigNotFoundError.d.ts +8 -0
  583. package/dist/types/runtime/ConfigNotFoundError.d.ts.map +1 -0
  584. package/dist/types/runtime/artifacts/index.d.ts +2 -0
  585. package/dist/types/runtime/artifacts/index.d.ts.map +1 -0
  586. package/dist/types/runtime/artifacts/loadConfiguredArtifacts.d.ts +3 -0
  587. package/dist/types/runtime/artifacts/loadConfiguredArtifacts.d.ts.map +1 -0
  588. package/dist/types/runtime/buildImportGraph.d.ts +2 -1
  589. package/dist/types/runtime/buildImportGraph.d.ts.map +1 -1
  590. package/dist/types/runtime/config/ensureServerConfig.d.ts +3 -0
  591. package/dist/types/runtime/config/ensureServerConfig.d.ts.map +1 -0
  592. package/dist/types/runtime/config/index.d.ts +2 -0
  593. package/dist/types/runtime/config/index.d.ts.map +1 -0
  594. package/dist/types/runtime/createConfigCandidatePath.d.ts +3 -0
  595. package/dist/types/runtime/createConfigCandidatePath.d.ts.map +1 -0
  596. package/dist/types/runtime/createGraphWorker.d.ts +16 -3
  597. package/dist/types/runtime/createGraphWorker.d.ts.map +1 -1
  598. package/dist/types/runtime/createServerState.d.ts +3 -0
  599. package/dist/types/runtime/createServerState.d.ts.map +1 -0
  600. package/dist/types/runtime/detectRuntime.d.ts +10 -0
  601. package/dist/types/runtime/detectRuntime.d.ts.map +1 -0
  602. package/dist/types/runtime/dispatch/LogMessageType.d.ts +7 -0
  603. package/dist/types/runtime/dispatch/LogMessageType.d.ts.map +1 -0
  604. package/dist/types/runtime/dispatch/handleWorkerResponse.d.ts +9 -0
  605. package/dist/types/runtime/dispatch/handleWorkerResponse.d.ts.map +1 -0
  606. package/dist/types/runtime/dispatch/index.d.ts +6 -0
  607. package/dist/types/runtime/dispatch/index.d.ts.map +1 -0
  608. package/dist/types/runtime/dispatch/routeLspRequest.d.ts +3 -0
  609. package/dist/types/runtime/dispatch/routeLspRequest.d.ts.map +1 -0
  610. package/dist/types/runtime/dispatch/routeWorkerRequest.d.ts +4 -0
  611. package/dist/types/runtime/dispatch/routeWorkerRequest.d.ts.map +1 -0
  612. package/dist/types/runtime/dispatch/types.d.ts +29 -0
  613. package/dist/types/runtime/dispatch/types.d.ts.map +1 -0
  614. package/dist/types/runtime/documents/handleArtifactChanged.d.ts +7 -0
  615. package/dist/types/runtime/documents/handleArtifactChanged.d.ts.map +1 -0
  616. package/dist/types/runtime/documents/handleChangeDocument.d.ts +6 -0
  617. package/dist/types/runtime/documents/handleChangeDocument.d.ts.map +1 -0
  618. package/dist/types/runtime/documents/handleCloseDocument.d.ts +11 -0
  619. package/dist/types/runtime/documents/handleCloseDocument.d.ts.map +1 -0
  620. package/dist/types/runtime/documents/handleFileChanged.d.ts +7 -0
  621. package/dist/types/runtime/documents/handleFileChanged.d.ts.map +1 -0
  622. package/dist/types/runtime/documents/handleOpenDocument.d.ts +6 -0
  623. package/dist/types/runtime/documents/handleOpenDocument.d.ts.map +1 -0
  624. package/dist/types/runtime/documents/index.d.ts +6 -0
  625. package/dist/types/runtime/documents/index.d.ts.map +1 -0
  626. package/dist/types/runtime/getServerCapabilities.d.ts +42 -0
  627. package/dist/types/runtime/getServerCapabilities.d.ts.map +1 -0
  628. package/dist/types/runtime/index.d.ts +13 -4
  629. package/dist/types/runtime/index.d.ts.map +1 -1
  630. package/dist/types/runtime/indexing/index.d.ts +5 -0
  631. package/dist/types/runtime/indexing/index.d.ts.map +1 -0
  632. package/dist/types/runtime/indexing/indexDocument.d.ts +12 -0
  633. package/dist/types/runtime/indexing/indexDocument.d.ts.map +1 -0
  634. package/dist/types/runtime/indexing/indexGlobalStylesheets.d.ts +16 -0
  635. package/dist/types/runtime/indexing/indexGlobalStylesheets.d.ts.map +1 -0
  636. package/dist/types/runtime/indexing/reindexDocument.d.ts +18 -0
  637. package/dist/types/runtime/indexing/reindexDocument.d.ts.map +1 -0
  638. package/dist/types/runtime/indexing/updateImportEdges.d.ts +12 -0
  639. package/dist/types/runtime/indexing/updateImportEdges.d.ts.map +1 -0
  640. package/dist/types/runtime/scheduleBufferUpdate.d.ts +12 -2
  641. package/dist/types/runtime/scheduleBufferUpdate.d.ts.map +1 -1
  642. package/dist/types/runtime/startLspServer.d.ts +5 -4
  643. package/dist/types/runtime/startLspServer.d.ts.map +1 -1
  644. package/dist/types/runtime/types.d.ts +25 -2
  645. package/dist/types/runtime/types.d.ts.map +1 -1
  646. package/dist/types/testing/index.d.ts +8 -0
  647. package/dist/types/testing/index.d.ts.map +1 -0
  648. package/dist/types/testing/makeArtifactToken.d.ts +11 -0
  649. package/dist/types/testing/makeArtifactToken.d.ts.map +1 -0
  650. package/dist/types/testing/makeConfig.d.ts +4 -0
  651. package/dist/types/testing/makeConfig.d.ts.map +1 -0
  652. package/dist/types/testing/makeDeclarationNode.d.ts +7 -0
  653. package/dist/types/testing/makeDeclarationNode.d.ts.map +1 -0
  654. package/dist/types/testing/makePropertyNode.d.ts +7 -0
  655. package/dist/types/testing/makePropertyNode.d.ts.map +1 -0
  656. package/dist/types/testing/makeServerState.d.ts +12 -0
  657. package/dist/types/testing/makeServerState.d.ts.map +1 -0
  658. package/dist/types/testing/makeTokenNode.d.ts +6 -0
  659. package/dist/types/testing/makeTokenNode.d.ts.map +1 -0
  660. package/dist/types/testing/makeTransport.d.ts +4 -0
  661. package/dist/types/testing/makeTransport.d.ts.map +1 -0
  662. package/dist/types/transport/index.d.ts +2 -0
  663. package/dist/types/transport/index.d.ts.map +1 -0
  664. package/dist/types/transport/stdio/createMessageStream.d.ts +21 -0
  665. package/dist/types/transport/stdio/createMessageStream.d.ts.map +1 -0
  666. package/dist/types/transport/stdio/index.d.ts +2 -0
  667. package/dist/types/transport/stdio/index.d.ts.map +1 -0
  668. package/dist/types/types/config.d.ts +121 -0
  669. package/dist/types/types/config.d.ts.map +1 -0
  670. package/dist/types/types/css.d.ts +81 -0
  671. package/dist/types/types/css.d.ts.map +1 -0
  672. package/dist/types/types/graph.d.ts +220 -0
  673. package/dist/types/types/graph.d.ts.map +1 -0
  674. package/dist/types/types/index.d.ts +17 -0
  675. package/dist/types/types/index.d.ts.map +1 -0
  676. package/dist/types/types/lsp.d.ts +90 -0
  677. package/dist/types/types/lsp.d.ts.map +1 -0
  678. package/dist/types/types/protocol.d.ts +124 -0
  679. package/dist/types/types/protocol.d.ts.map +1 -0
  680. package/dist/types/types/worker.d.ts +231 -0
  681. package/dist/types/types/worker.d.ts.map +1 -0
  682. package/extension/terrazzo-lsp-0.1.0.vsix +0 -0
  683. package/package.json +37 -4
  684. package/dist/esm/css/buildSelectorContext.js.map +0 -1
  685. package/dist/esm/css/classifySelectorScope.js.map +0 -1
  686. package/dist/esm/css/compareFallbackStaleness.js +0 -61
  687. package/dist/esm/css/compareFallbackStaleness.js.map +0 -1
  688. package/dist/esm/css/constants.js.map +0 -1
  689. package/dist/esm/css/expectedTypeForProperty.js.map +0 -1
  690. package/dist/esm/css/extractCssImports.js +0 -20
  691. package/dist/esm/css/extractCssImports.js.map +0 -1
  692. package/dist/esm/css/extractJsImports.js.map +0 -1
  693. package/dist/esm/css/extractPackageName.js.map +0 -1
  694. package/dist/esm/css/extractPropertyAtPosition.js +0 -30
  695. package/dist/esm/css/extractPropertyAtPosition.js.map +0 -1
  696. package/dist/esm/css/extractUnit.js +0 -9
  697. package/dist/esm/css/extractUnit.js.map +0 -1
  698. package/dist/esm/css/formatFileUri.js +0 -5
  699. package/dist/esm/css/formatFileUri.js.map +0 -1
  700. package/dist/esm/css/isAssignable.js.map +0 -1
  701. package/dist/esm/css/isBareSpecifier.js.map +0 -1
  702. package/dist/esm/css/isExternalPath.js.map +0 -1
  703. package/dist/esm/css/isSuppressed.js +0 -49
  704. package/dist/esm/css/isSuppressed.js.map +0 -1
  705. package/dist/esm/css/mapDtcgType.js.map +0 -1
  706. package/dist/esm/css/parseFileUri.js +0 -5
  707. package/dist/esm/css/parseFileUri.js.map +0 -1
  708. package/dist/esm/css/parseSuppressionDirectives.js +0 -57
  709. package/dist/esm/css/parseSuppressionDirectives.js.map +0 -1
  710. package/dist/esm/css/parseSyntaxType.js +0 -27
  711. package/dist/esm/css/parseSyntaxType.js.map +0 -1
  712. package/dist/esm/css/resolveImportSpecifier.js.map +0 -1
  713. package/dist/esm/css/scanDeclarations.js +0 -107
  714. package/dist/esm/css/scanDeclarations.js.map +0 -1
  715. package/dist/esm/css/scanProperties.js +0 -40
  716. package/dist/esm/css/scanProperties.js.map +0 -1
  717. package/dist/esm/css/scanUsages.js +0 -81
  718. package/dist/esm/css/scanUsages.js.map +0 -1
  719. package/dist/esm/protocol/isCompletionRequest.js +0 -4
  720. package/dist/esm/protocol/isCompletionRequest.js.map +0 -1
  721. package/dist/esm/protocol/isDefinitionRequest.js +0 -4
  722. package/dist/esm/protocol/isDefinitionRequest.js.map +0 -1
  723. package/dist/esm/protocol/isDiagnosticsRequest.js +0 -4
  724. package/dist/esm/protocol/isDiagnosticsRequest.js.map +0 -1
  725. package/dist/esm/protocol/isHoverRequest.js +0 -4
  726. package/dist/esm/protocol/isHoverRequest.js.map +0 -1
  727. package/dist/esm/protocol/isReferencesRequest.js +0 -4
  728. package/dist/esm/protocol/isReferencesRequest.js.map +0 -1
  729. package/dist/esm/providers/buildTokenTooltip.js +0 -504
  730. package/dist/esm/providers/buildTokenTooltip.js.map +0 -1
  731. package/dist/esm/providers/produceArtifactDiagnostics.js +0 -101
  732. package/dist/esm/providers/produceArtifactDiagnostics.js.map +0 -1
  733. package/dist/esm/providers/produceDiagnostics.js +0 -245
  734. package/dist/esm/providers/produceDiagnostics.js.map +0 -1
  735. package/dist/esm/providers/provideCompletions.js +0 -286
  736. package/dist/esm/providers/provideCompletions.js.map +0 -1
  737. package/dist/esm/providers/tooltipOptions.js +0 -15
  738. package/dist/esm/providers/tooltipOptions.js.map +0 -1
  739. package/dist/esm/types.js +0 -74
  740. package/dist/esm/types.js.map +0 -1
  741. package/dist/types/css/buildSelectorContext.d.ts +0 -4
  742. package/dist/types/css/buildSelectorContext.d.ts.map +0 -1
  743. package/dist/types/css/classifySelectorScope.d.ts +0 -7
  744. package/dist/types/css/classifySelectorScope.d.ts.map +0 -1
  745. package/dist/types/css/compareFallbackStaleness.d.ts +0 -8
  746. package/dist/types/css/compareFallbackStaleness.d.ts.map +0 -1
  747. package/dist/types/css/constants.d.ts +0 -11
  748. package/dist/types/css/constants.d.ts.map +0 -1
  749. package/dist/types/css/expectedTypeForProperty.d.ts +0 -22
  750. package/dist/types/css/expectedTypeForProperty.d.ts.map +0 -1
  751. package/dist/types/css/extractCssImports.d.ts +0 -6
  752. package/dist/types/css/extractCssImports.d.ts.map +0 -1
  753. package/dist/types/css/extractJsImports.d.ts +0 -6
  754. package/dist/types/css/extractJsImports.d.ts.map +0 -1
  755. package/dist/types/css/extractPackageName.d.ts.map +0 -1
  756. package/dist/types/css/extractPropertyAtPosition.d.ts +0 -22
  757. package/dist/types/css/extractPropertyAtPosition.d.ts.map +0 -1
  758. package/dist/types/css/extractUnit.d.ts +0 -6
  759. package/dist/types/css/extractUnit.d.ts.map +0 -1
  760. package/dist/types/css/formatFileUri.d.ts +0 -3
  761. package/dist/types/css/formatFileUri.d.ts.map +0 -1
  762. package/dist/types/css/isAssignable.d.ts +0 -7
  763. package/dist/types/css/isAssignable.d.ts.map +0 -1
  764. package/dist/types/css/isBareSpecifier.d.ts +0 -3
  765. package/dist/types/css/isBareSpecifier.d.ts.map +0 -1
  766. package/dist/types/css/isExternalPath.d.ts +0 -3
  767. package/dist/types/css/isExternalPath.d.ts.map +0 -1
  768. package/dist/types/css/isSuppressed.d.ts +0 -7
  769. package/dist/types/css/isSuppressed.d.ts.map +0 -1
  770. package/dist/types/css/mapDtcgType.d.ts +0 -7
  771. package/dist/types/css/mapDtcgType.d.ts.map +0 -1
  772. package/dist/types/css/parseFileUri.d.ts +0 -3
  773. package/dist/types/css/parseFileUri.d.ts.map +0 -1
  774. package/dist/types/css/parseSuppressionDirectives.d.ts +0 -13
  775. package/dist/types/css/parseSuppressionDirectives.d.ts.map +0 -1
  776. package/dist/types/css/parseSyntaxType.d.ts +0 -4
  777. package/dist/types/css/parseSyntaxType.d.ts.map +0 -1
  778. package/dist/types/css/resolveDimensionValue.d.ts +0 -7
  779. package/dist/types/css/resolveDimensionValue.d.ts.map +0 -1
  780. package/dist/types/css/resolveImportSpecifier.d.ts.map +0 -1
  781. package/dist/types/css/scanDeclarations.d.ts +0 -8
  782. package/dist/types/css/scanDeclarations.d.ts.map +0 -1
  783. package/dist/types/css/scanProperties.d.ts +0 -7
  784. package/dist/types/css/scanProperties.d.ts.map +0 -1
  785. package/dist/types/css/scanUsages.d.ts +0 -7
  786. package/dist/types/css/scanUsages.d.ts.map +0 -1
  787. package/dist/types/protocol/isCompletionRequest.d.ts +0 -5
  788. package/dist/types/protocol/isCompletionRequest.d.ts.map +0 -1
  789. package/dist/types/protocol/isDefinitionRequest.d.ts +0 -5
  790. package/dist/types/protocol/isDefinitionRequest.d.ts.map +0 -1
  791. package/dist/types/protocol/isDiagnosticsRequest.d.ts +0 -5
  792. package/dist/types/protocol/isDiagnosticsRequest.d.ts.map +0 -1
  793. package/dist/types/protocol/isHoverRequest.d.ts +0 -5
  794. package/dist/types/protocol/isHoverRequest.d.ts.map +0 -1
  795. package/dist/types/protocol/isReferencesRequest.d.ts +0 -5
  796. package/dist/types/protocol/isReferencesRequest.d.ts.map +0 -1
  797. package/dist/types/providers/buildTokenTooltip.d.ts +0 -33
  798. package/dist/types/providers/buildTokenTooltip.d.ts.map +0 -1
  799. package/dist/types/providers/produceArtifactDiagnostics.d.ts +0 -14
  800. package/dist/types/providers/produceArtifactDiagnostics.d.ts.map +0 -1
  801. package/dist/types/providers/produceDiagnostics.d.ts +0 -5
  802. package/dist/types/providers/produceDiagnostics.d.ts.map +0 -1
  803. package/dist/types/providers/provideCompletions.d.ts.map +0 -1
  804. package/dist/types/providers/tooltipOptions.d.ts +0 -12
  805. package/dist/types/providers/tooltipOptions.d.ts.map +0 -1
  806. package/dist/types/types.d.ts +0 -927
  807. package/dist/types/types.d.ts.map +0 -1
package/README.md CHANGED
@@ -17,15 +17,23 @@ Language server providing CSS custom property intelligence for design token work
17
17
 
18
18
  ## Editor Setup
19
19
 
20
- Build the packages first (`bun run build:all` from the repo root), then install for your editor:
21
-
22
- **VS Code:**
20
+ **VS Code** (recommended):
23
21
 
24
22
  ```bash
25
- bun dist/esm/cli.js install vscode
23
+ bun run build:all
24
+ npm install -D @canonical/design-tokens
25
+ npx terrazzo-lsp install vscode
26
26
  ```
27
27
 
28
- **Neovim:**
28
+ The `terrazzo-lsp` command is re-exported by `@canonical/design-tokens`, so
29
+ consumers can use `npx terrazzo-lsp` without installing the LSP package
30
+ directly. The install command attempts to install the bundled VS Code extension
31
+ with the `code` CLI and always writes `.vscode/settings.json`. If `code` is not
32
+ on your `PATH`, it prints the manual `code --install-extension ...` command.
33
+
34
+ The extension auto-detects `bun` first and falls back to `node >= 22`.
35
+
36
+ **Neovim** (via nvim-lspconfig):
29
37
 
30
38
  ```bash
31
39
  bun dist/esm/cli.js install neovim
@@ -40,12 +48,124 @@ bun dist/esm/cli.js install helix
40
48
  ## CLI
41
49
 
42
50
  ```bash
43
- bun dist/esm/cli.js --stdio # Start LSP server on stdio
44
- bun dist/esm/cli.js check [globs] # Run diagnostics on CSS files
45
- bun dist/esm/cli.js status # Show config and artifact status
46
- bun dist/esm/cli.js inspect <var> # Inspect a CSS custom property
51
+ npx terrazzo-lsp install vscode # Install bundled VS Code extension + workspace settings
52
+ npx terrazzo-lsp --stdio # Start LSP server on stdio
53
+ npx terrazzo-lsp --stdio --allow-degraded # Start with reduced capabilities when config is missing
54
+ npx terrazzo-lsp check [globs] # Run diagnostics on CSS files
55
+ npx terrazzo-lsp status # Show config and artifact status
56
+ npx terrazzo-lsp inspect <var> # Inspect a CSS custom property
57
+ npx terrazzo-lsp resolve <spec> # Resolve an import specifier
58
+ npx terrazzo-lsp graph <file> # Show import graph from a file
59
+ ```
60
+
61
+ ## Diagnostics Reference
62
+
63
+ The LSP emits 14 diagnostic codes across two categories: **CSS** (in-file analysis) and **DTCG** (artifact-level validation). The example below triggers every CSS diagnostic:
64
+
65
+ ```css
66
+ /* ──────────────────────────────────────────────────────────
67
+ Example: every terrazzo-lsp CSS diagnostic in one file
68
+ ────────────────────────────────────────────────────────── */
69
+
70
+ /* Assume the following tokens exist in the artifact:
71
+ * --color-fg : oklch(17.2% 0 0) tier: semantic, type: color
72
+ * --spacing-sm : 0.5rem tier: semantic, type: dimension
73
+ * --color-palette-blue : oklch(50% 0.15 250) tier: primitive, type: color
74
+ * --button-pad : 0.75rem tier: semantic, scoped to .button
75
+ * --unreachable-token : 1rem (in a file not imported by this sheet)
76
+ */
77
+
78
+ /* ① css/unknown-var (off by default — enable via config)
79
+ * A var() reference that does not match any known custom property. */
80
+ .unknown {
81
+ margin: var(--does-not-exist);
82
+ }
83
+
84
+ /* ② css/missing-fallback
85
+ * A var() reference to a non-artifact property with no fallback value
86
+ * and no @property registration. */
87
+ .missing-fb {
88
+ padding: var(--local-pad);
89
+ }
90
+
91
+ /* ③ css/stale-fallback
92
+ * The fallback literal no longer matches the token's resolved value. */
93
+ .stale-fb {
94
+ gap: var(--spacing-sm, 16px); /* actual resolved value is 0.5rem, not 16px */
95
+ }
96
+
97
+ /* ④ css/type-mismatch
98
+ * A token's DTCG type is incompatible with the CSS property's
99
+ * expected value type (e.g. color token in a length context). */
100
+ .type-err {
101
+ width: var(--color-fg); /* color token used where <length> is expected */
102
+ }
103
+
104
+ /* ⑤ css/type-uncertain
105
+ * A typed token appears in a shorthand or context where multiple
106
+ * value types are acceptable — the LSP cannot confirm correctness. */
107
+ .type-warn {
108
+ background: var(--spacing-sm); /* dimension token in a shorthand that accepts many types */
109
+ }
110
+
111
+ /* ⑥ css/unreachable-token
112
+ * The token's artifact output file is not reachable through this
113
+ * file's @import graph. */
114
+ .unreachable {
115
+ margin: var(--unreachable-token);
116
+ }
117
+
118
+ /* ⑦ css/primitive-token
119
+ * Direct use of a primitive-tier token. Prefer semantic aliases. */
120
+ .primitive {
121
+ color: var(--color-palette-blue);
122
+ }
123
+
124
+ /* ⑧ css/scoped-usage
125
+ * The token is declared under a specific selector scope (e.g. .button)
126
+ * but is referenced outside that scope. */
127
+ .card {
128
+ padding: var(--button-pad); /* --button-pad is scoped to .button */
129
+ }
130
+
131
+ /* ⑨ css/no-color-scheme
132
+ * A light-dark() function is used without a color-scheme property
133
+ * on the same selector or an ancestor. */
134
+ .no-scheme {
135
+ color: light-dark(black, white); /* no color-scheme declared */
136
+ }
137
+
138
+ /* ──────────────────────────────────────────────────────────
139
+ Suppression syntax
140
+ ────────────────────────────────────────────────────────── */
141
+
142
+ /* Disable all checks for a region: */
143
+ /* terrazzo-lsp-disable */
144
+ .suppressed {
145
+ width: var(--color-fg); /* no diagnostic — all checks disabled */
146
+ }
147
+ /* terrazzo-lsp-enable */
148
+
149
+ /* Disable a specific code for the next line: */
150
+ /* terrazzo-lsp-disable css/primitive-token */
151
+ .selective {
152
+ color: var(--color-palette-blue); /* no diagnostic — primitive check disabled */
153
+ }
154
+ /* terrazzo-lsp-enable css/primitive-token */
47
155
  ```
48
156
 
157
+ ### DTCG Diagnostics (artifact-level)
158
+
159
+ These are emitted once when loading `tokens.json` artifacts, not per CSS file. They validate that the design token definitions conform to the [DTCG 2025.10](https://tr.designtokens.org/format/) specification.
160
+
161
+ | Code | Default Severity | Trigger |
162
+ |------|-----------------|---------|
163
+ | `dtcg/broken-alias` | Error | An `{alias.path}` reference points to a token ID that does not exist in any loaded artifact. |
164
+ | `dtcg/schema-violation` | Error | A token's value is invalid for its declared `$type` — e.g. `$type: color` with a value that is not a valid CSS colour, or `$type: dimension` with a value that cannot be resolved to a length/percentage. |
165
+ | `dtcg/circular-alias` | Error | The alias chain for a token forms a cycle (a token ID appears more than once in the resolution path). |
166
+ | `dtcg/missing-type` | Warning | Token has no `$type` field and cannot inherit one from a parent group. The resolved type is ambiguous. |
167
+ | `dtcg/draft-syntax` | Info | Token uses pre-standardisation draft field syntax (`value`/`type` without the `$` prefix) or has an empty token ID, suggesting it was authored before the DTCG standard was finalised. |
168
+
49
169
  ## Configuration
50
170
 
51
171
  Create a `terrazzo-lsp.config.json` in your workspace root:
@@ -57,13 +177,41 @@ Create a `terrazzo-lsp.config.json` in your workspace root:
57
177
  }
58
178
  ```
59
179
 
180
+ If no config file is present, the output panel logs every candidate path it
181
+ tried, prints a ready-to-copy starter config, and then exits. For temporary
182
+ degraded startup, pass `--allow-degraded`.
183
+
184
+ ```json
185
+ { "artifacts": ["@canonical/design-tokens/dist/tokens.json"] }
186
+ ```
187
+
60
188
  See the root repository README for the full configuration reference.
61
189
 
62
190
  ## Development
63
191
 
192
+ ### Architecture
193
+
194
+ The LSP server is organised into four main layers:
195
+
196
+ | Layer | Path | Responsibility |
197
+ |-------|------|----------------|
198
+ | **Protocol** | `protocol/` | JSON-RPC message parsing, config loading, request/response matching |
199
+ | **Runtime** | `runtime/` | Server lifecycle, document management, import graph building, worker dispatch |
200
+ | **Graph** | `graph/` | Token graph data structure, artifact loading, reachability cache |
201
+ | **Providers** | `providers/` | All LSP features: completions, hover, diagnostics, rename, etc. |
202
+
203
+ **Diagnostics pipeline:**
204
+
205
+ ```
206
+ CSS diagnostics: orchestrateDiagnostics → per-rule check modules → makeDiagnostic
207
+ DTCG diagnostics: produceArtifactDiagnostics → per-rule check modules → makeDiagnostic
208
+ ```
209
+
210
+ Each diagnostic rule lives in its own file (`diagnostics/checkMissingFallback.ts`, `artifactDiagnostics/checkBrokenAlias.ts`, etc.) with a co-located `.tests.ts` file. The orchestrator loops over usages (CSS) or tokens (DTCG) and delegates to each check function.
211
+
64
212
  ```bash
65
213
  bun run build # Compile LSP server (tsc)
66
- bun run build:ext # Build + package VS Code extension
214
+ bun run build:all # Build + package VS Code extension
67
215
  bun run test # Run tests
68
216
  bun run check # Lint + type check
69
217
  ```
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Expand glob patterns to matching file paths (deduplicated).
3
+ *
4
+ * @note Impure — reads the file system via `fs.glob`.
5
+ */
6
+ import * as fs from "node:fs/promises";
7
+ export async function expandGlobs(patterns, rootDir) {
8
+ const results = [];
9
+ for (const pattern of patterns) {
10
+ try {
11
+ for await (const entry of fs.glob(pattern, { cwd: rootDir })) {
12
+ results.push(entry);
13
+ }
14
+ }
15
+ catch {
16
+ // Pattern didn't match — skip
17
+ }
18
+ }
19
+ return [...new Set(results)];
20
+ }
21
+ //# sourceMappingURL=expandGlobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expandGlobs.js","sourceRoot":"","sources":["../../../src/cli/expandGlobs.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,QAAkB,EAClB,OAAe;IAEf,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;gBAC7D,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,8BAA8B;QAChC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * CLI entry-point dispatcher.
3
+ *
4
+ * Parses `process.argv`, dispatches to the appropriate sub-command,
5
+ * then tail-calls `run()`.
6
+ */
7
+ import startLspServer from "../runtime/startLspServer.js";
8
+ import { printHelp } from "./printHelp.js";
9
+ import { runCheck } from "./runCheck.js";
10
+ import { runGraph } from "./runGraph.js";
11
+ import { runInspect } from "./runInspect.js";
12
+ import { runInstall } from "./runInstall.js";
13
+ import { runResolve } from "./runResolve.js";
14
+ import { runStatus } from "./runStatus.js";
15
+ const args = process.argv.slice(2).filter((arg) => arg !== "--allow-degraded");
16
+ const allowDegraded = process.argv.includes("--allow-degraded");
17
+ const command = args[0] ?? "--stdio";
18
+ const rootDir = process.cwd();
19
+ /**
20
+ * Run the CLI.
21
+ *
22
+ * @note This function is impure — it reads files, writes to stdout,
23
+ * and may exit the process.
24
+ */
25
+ async function run() {
26
+ switch (command) {
27
+ case "--stdio":
28
+ case "serve":
29
+ startLspServer(rootDir, { allowDegraded });
30
+ break;
31
+ case "check":
32
+ await runCheck(args.slice(1), rootDir);
33
+ break;
34
+ case "status":
35
+ await runStatus(rootDir);
36
+ break;
37
+ case "inspect":
38
+ await runInspect(args[1], rootDir);
39
+ break;
40
+ case "resolve":
41
+ await runResolve(args[1], rootDir);
42
+ break;
43
+ case "graph":
44
+ await runGraph(args[1], rootDir);
45
+ break;
46
+ case "install":
47
+ await runInstall(args[1], rootDir);
48
+ break;
49
+ case "--help":
50
+ case "-h":
51
+ printHelp();
52
+ break;
53
+ case "--version":
54
+ case "-v":
55
+ console.log("terrazzo-lsp 0.1.0");
56
+ break;
57
+ default:
58
+ console.error(`Unknown command: ${command}`);
59
+ printHelp();
60
+ process.exit(1);
61
+ }
62
+ }
63
+ void run();
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,cAAc,MAAM,8BAA8B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,kBAAkB,CAAC,CAAC;AAC/E,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAChE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;AACrC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;AAE9B;;;;;GAKG;AACH,KAAK,UAAU,GAAG;IAChB,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,SAAS,CAAC;QACf,KAAK,OAAO;YACV,cAAc,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,CAAC,CAAC;YAC3C,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACvC,MAAM;QACR,KAAK,QAAQ;YACX,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YACzB,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,OAAO;YACV,MAAM,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACjC,MAAM;QACR,KAAK,SAAS;YACZ,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACnC,MAAM;QACR,KAAK,QAAQ,CAAC;QACd,KAAK,IAAI;YACP,SAAS,EAAE,CAAC;YACZ,MAAM;QACR,KAAK,WAAW,CAAC;QACjB,KAAK,IAAI;YACP,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAClC,MAAM;QACR;YACE,OAAO,CAAC,KAAK,CAAC,oBAAoB,OAAO,EAAE,CAAC,CAAC;YAC7C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,KAAK,GAAG,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Read JSON artifact files from disk and load them into the token graph.
3
+ *
4
+ * @note Impure — reads files from disk.
5
+ */
6
+ import * as fs from "node:fs/promises";
7
+ import { dirname } from "node:path";
8
+ import { loadArtifact } from "../graph/index.js";
9
+ export async function loadArtifactFiles(paths, graph) {
10
+ for (const p of paths) {
11
+ try {
12
+ const raw = await fs.readFile(p, "utf-8");
13
+ const artifact = JSON.parse(raw);
14
+ loadArtifact(artifact, graph, "", dirname(p));
15
+ }
16
+ catch {
17
+ // Skip missing artifacts
18
+ }
19
+ }
20
+ }
21
+ //# sourceMappingURL=loadArtifactFiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loadArtifactFiles.js","sourceRoot":"","sources":["../../../src/cli/loadArtifactFiles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,YAAY,EAAmB,MAAM,mBAAmB,CAAC;AAGlE,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAAe,EACf,KAAiB;IAEjB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM,QAAQ,GAAgB,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC9C,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,20 @@
1
+ /** Print CLI usage help. */
2
+ export function printHelp() {
3
+ console.log(`terrazzo-lsp — CSS custom property intelligence for design tokens
4
+
5
+ Usage:
6
+ terrazzo-lsp Start LSP server (stdio)
7
+ terrazzo-lsp check [globs] Run diagnostics on CSS files
8
+ terrazzo-lsp status Show config and artifact status
9
+ terrazzo-lsp inspect <var> Inspect a CSS custom property
10
+ terrazzo-lsp resolve <spec> Resolve an import specifier
11
+ terrazzo-lsp graph <file> Show import graph from a file
12
+ terrazzo-lsp install <editor> Install LSP config (neovim, helix, vscode)
13
+
14
+ Options:
15
+ --stdio Start LSP server on stdio (default)
16
+ --allow-degraded Keep the server alive without config, with reduced capabilities
17
+ -h, --help Show this help
18
+ -v, --version Show version`);
19
+ }
20
+ //# sourceMappingURL=printHelp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"printHelp.js","sourceRoot":"","sources":["../../../src/cli/printHelp.ts"],"names":[],"mappings":"AAAA,4BAA4B;AAC5B,MAAM,UAAU,SAAS;IACvB,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;6CAe+B,CAAC,CAAC;AAC/C,CAAC"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * `check` command — run diagnostics on CSS files and report.
3
+ *
4
+ * @note Impure — reads files, writes to stdout, may exit the process.
5
+ */
6
+ import * as fs from "node:fs/promises";
7
+ import { resolve } from "node:path";
8
+ import { ReachabilityCache, TokenGraph } from "../graph/index.js";
9
+ import { loadConfigFile, resolveConfig } from "../protocol/index.js";
10
+ import { produceDiagnostics } from "../providers/index.js";
11
+ import { DiagnosticSeverity } from "../types/index.js";
12
+ import { expandGlobs } from "./expandGlobs.js";
13
+ import { loadArtifactFiles } from "./loadArtifactFiles.js";
14
+ export async function runCheck(globs, rootDir) {
15
+ const { raw, configDir } = await loadConfigFile(rootDir);
16
+ const config = resolveConfig(raw, configDir ?? rootDir);
17
+ const graph = new TokenGraph();
18
+ const cache = new ReachabilityCache();
19
+ await loadArtifactFiles(config.artifactPaths, graph);
20
+ const patterns = globs.length > 0 ? globs : config.scanGlobs;
21
+ const files = await expandGlobs(patterns, rootDir);
22
+ let errorCount = 0;
23
+ let warningCount = 0;
24
+ for (const file of files) {
25
+ const absPath = resolve(rootDir, file);
26
+ const source = await fs.readFile(absPath, "utf-8");
27
+ const uri = `file://${absPath}`;
28
+ const diagnostics = produceDiagnostics(uri, source, graph, cache, config);
29
+ for (const diag of diagnostics) {
30
+ const severity = diag.severity === DiagnosticSeverity.Error
31
+ ? "error"
32
+ : diag.severity === DiagnosticSeverity.Warning
33
+ ? "warning"
34
+ : "info";
35
+ if (diag.severity === DiagnosticSeverity.Error)
36
+ errorCount++;
37
+ if (diag.severity === DiagnosticSeverity.Warning)
38
+ warningCount++;
39
+ const loc = `${file}:${diag.range.start.line + 1}:${diag.range.start.character + 1}`;
40
+ console.log(`${loc} ${severity} ${diag.code} ${diag.message}`);
41
+ }
42
+ }
43
+ const total = errorCount + warningCount;
44
+ if (total > 0) {
45
+ console.log(`\n${errorCount} errors, ${warningCount} warnings`);
46
+ process.exit(errorCount > 0 ? 1 : 0);
47
+ }
48
+ else {
49
+ console.log("No issues found.");
50
+ }
51
+ }
52
+ //# sourceMappingURL=runCheck.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runCheck.js","sourceRoot":"","sources":["../../../src/cli/runCheck.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * `graph` command — show the import graph from a file.
3
+ *
4
+ * @note Impure — reads files, writes to stdout/stderr, may exit the process.
5
+ */
6
+ import * as fs from "node:fs/promises";
7
+ import { resolve } from "node:path";
8
+ import { TokenGraph } from "../graph/index.js";
9
+ import buildImportGraph from "../runtime/buildImportGraph.js";
10
+ export async function runGraph(file, rootDir) {
11
+ if (!file) {
12
+ console.error("Usage: terrazzo-lsp graph <file>");
13
+ process.exit(1);
14
+ }
15
+ const graph = new TokenGraph();
16
+ const absPath = resolve(rootDir, file);
17
+ const uri = `file://${absPath}`;
18
+ const nodeFs = {
19
+ rootDir,
20
+ async readFile(fileUri) {
21
+ const fsPath = fileUri.startsWith("file://") ? fileUri.slice(7) : fileUri;
22
+ try {
23
+ return await fs.readFile(fsPath, "utf-8");
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ },
29
+ };
30
+ await buildImportGraph(uri, graph, nodeFs);
31
+ console.log(`Import graph from ${file}:`);
32
+ for (const [importer, imported] of graph.importEntries()) {
33
+ for (const dep of imported) {
34
+ const short = (s) => s.startsWith("file://") ? s.slice(7).replace(rootDir, ".") : s;
35
+ console.log(` ${short(importer)} → ${short(dep)}`);
36
+ }
37
+ }
38
+ console.log(`\nFiles: ${graph.fileCount}`);
39
+ console.log(`Declarations: ${graph.varCount}`);
40
+ }
41
+ //# sourceMappingURL=runGraph.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runGraph.js","sourceRoot":"","sources":["../../../src/cli/runGraph.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,gBAAgB,MAAM,gCAAgC,CAAC;AAG9D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,IAAwB,EACxB,OAAe;IAEf,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IACvC,MAAM,GAAG,GAAG,UAAU,OAAO,EAAE,CAAC;IAEhC,MAAM,MAAM,GAAe;QACzB,OAAO;QACP,KAAK,CAAC,QAAQ,CAAC,OAAe;YAC5B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC1E,IAAI,CAAC;gBACH,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5C,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;KACF,CAAC;IAEF,MAAM,gBAAgB,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3C,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,GAAG,CAAC,CAAC;IAC1C,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,KAAK,CAAC,aAAa,EAAE,EAAE,CAAC;QACzD,KAAK,MAAM,GAAG,IAAI,QAAQ,EAAE,CAAC;YAC3B,MAAM,KAAK,GAAG,CAAC,CAAS,EAAE,EAAE,CAC1B,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjD,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * `inspect` command — inspect a CSS custom property.
3
+ *
4
+ * @note Impure — reads config + artifacts, writes to stdout/stderr,
5
+ * may exit the process.
6
+ */
7
+ import { TokenGraph } from "../graph/index.js";
8
+ import { loadConfigFile, resolveConfig } from "../protocol/index.js";
9
+ import { loadArtifactFiles } from "./loadArtifactFiles.js";
10
+ export async function runInspect(cssVar, rootDir) {
11
+ if (!cssVar) {
12
+ console.error("Usage: terrazzo-lsp inspect <--custom-property>");
13
+ process.exit(1);
14
+ }
15
+ const { raw, configDir } = await loadConfigFile(rootDir);
16
+ const config = resolveConfig(raw, configDir ?? rootDir);
17
+ const graph = new TokenGraph();
18
+ await loadArtifactFiles(config.artifactPaths, graph);
19
+ const token = graph.resolveToken(cssVar);
20
+ if (token) {
21
+ console.log(JSON.stringify(token, null, 2));
22
+ }
23
+ else {
24
+ console.log(`Token "${cssVar}" not found in loaded artifacts.`);
25
+ }
26
+ }
27
+ //# sourceMappingURL=runInspect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runInspect.js","sourceRoot":"","sources":["../../../src/cli/runInspect.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAA0B,EAC1B,OAAe;IAEf,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,EAAE,SAAS,IAAI,OAAO,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,IAAI,UAAU,EAAE,CAAC;IAC/B,MAAM,iBAAiB,CAAC,MAAM,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAErD,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,UAAU,MAAM,kCAAkC,CAAC,CAAC;IAClE,CAAC;AACH,CAAC"}
@@ -0,0 +1,126 @@
1
+ /**
2
+ * `install` command — install LSP configuration for an editor.
3
+ *
4
+ * @note Impure — writes config files to disk, may exit the process.
5
+ */
6
+ import * as fs from "node:fs/promises";
7
+ import { homedir } from "node:os";
8
+ import { dirname, join, resolve } from "node:path";
9
+ import { fileURLToPath } from "node:url";
10
+ import { findBundledVsixPath, installBundledVscodeExtension, updateVscodeSettings, } from "../extension/index.js";
11
+ const NEOVIM_CONFIG = `-- terrazzo-lsp configuration for Neovim
12
+ -- Add this to your init.lua or lspconfig setup
13
+ --
14
+ -- Requires: bun (recommended) or node >= 22
15
+ -- Update the cmd path to point to your project's dist/esm/cli.js
16
+ require('lspconfig').terrazzo_lsp.setup({
17
+ cmd = { 'bun', 'run', '<path-to-repo>/dist/esm/cli.js', '--stdio' },
18
+ filetypes = { 'css', 'scss', 'json' },
19
+ root_dir = require('lspconfig').util.root_pattern(
20
+ 'terrazzo-lsp.config.json', 'package.json', '.git'
21
+ ),
22
+ on_attach = function(client, bufnr)
23
+ local o = { buffer = bufnr, noremap = true, silent = true }
24
+ vim.keymap.set('n', 'gd', vim.lsp.buf.definition, o)
25
+ vim.keymap.set('n', 'gr', vim.lsp.buf.references, o)
26
+ vim.keymap.set('n', 'K', vim.lsp.buf.hover, o)
27
+ vim.keymap.set('n', '<leader>ca', vim.lsp.buf.code_action, o)
28
+ vim.keymap.set('n', '<leader>rn', vim.lsp.buf.rename, o)
29
+ end,
30
+ })
31
+ `;
32
+ const HELIX_CONFIG = `# terrazzo-lsp configuration for Helix
33
+ # Add this to your ~/.config/helix/languages.toml
34
+ #
35
+ # Requires: bun (recommended) or node >= 22
36
+ # Update the command path to point to your project's dist/esm/cli.js
37
+
38
+ [language-server.terrazzo]
39
+ command = "bun"
40
+ args = ["run", "<path-to-repo>/dist/esm/cli.js", "--stdio"]
41
+
42
+ [[language]]
43
+ name = "css"
44
+ language-servers = ["terrazzo", "vscode-css-language-server"]
45
+
46
+ [[language]]
47
+ name = "scss"
48
+ language-servers = ["terrazzo", "vscode-css-language-server"]
49
+ `;
50
+ /**
51
+ * Install LSP configuration for the specified editor.
52
+ *
53
+ * @note This function is impure — it writes config files.
54
+ */
55
+ export async function runInstall(editor, rootDir) {
56
+ if (!editor) {
57
+ console.error("Usage: terrazzo-lsp install <editor>\nEditors: neovim, helix, vscode");
58
+ process.exit(1);
59
+ return;
60
+ }
61
+ switch (editor) {
62
+ case "neovim": {
63
+ const configDir = join(homedir(), ".config", "nvim", "lsp");
64
+ await fs.mkdir(configDir, { recursive: true });
65
+ const configPath = join(configDir, "terrazzo_lsp.lua");
66
+ await fs.writeFile(configPath, NEOVIM_CONFIG, "utf-8");
67
+ console.log(`Wrote Neovim LSP config to ${configPath}`);
68
+ console.log("Ensure nvim-lspconfig is installed. Update the cmd path in the config.");
69
+ break;
70
+ }
71
+ case "helix": {
72
+ const configDir = join(homedir(), ".config", "helix");
73
+ const configPath = join(configDir, "languages.toml");
74
+ let existing = "";
75
+ try {
76
+ existing = await fs.readFile(configPath, "utf-8");
77
+ }
78
+ catch {
79
+ // File doesn't exist yet
80
+ }
81
+ if (existing.includes("terrazzo")) {
82
+ console.log(`Helix config at ${configPath} already contains terrazzo configuration.`);
83
+ }
84
+ else {
85
+ await fs.mkdir(configDir, { recursive: true });
86
+ const updated = existing
87
+ ? `${existing}\n${HELIX_CONFIG}`
88
+ : HELIX_CONFIG;
89
+ await fs.writeFile(configPath, updated, "utf-8");
90
+ console.log(`Appended terrazzo-lsp config to ${configPath}`);
91
+ }
92
+ break;
93
+ }
94
+ case "vscode": {
95
+ const packageRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..", "..", "..");
96
+ const vsixPath = await findBundledVsixPath(packageRoot);
97
+ const extDir = join(rootDir, ".vscode");
98
+ await fs.mkdir(extDir, { recursive: true });
99
+ const settingsPath = join(extDir, "settings.json");
100
+ let settings = {};
101
+ try {
102
+ const raw = await fs.readFile(settingsPath, "utf-8");
103
+ settings = JSON.parse(raw);
104
+ }
105
+ catch {
106
+ // New file
107
+ }
108
+ if (vsixPath) {
109
+ const installResult = await installBundledVscodeExtension(vsixPath);
110
+ console.log(installResult.message);
111
+ }
112
+ else {
113
+ console.log("Bundled VS Code extension not found. Build it with `bun run build:extension`.");
114
+ }
115
+ settings = updateVscodeSettings(settings);
116
+ await fs.writeFile(settingsPath, JSON.stringify(settings, null, 2), "utf-8");
117
+ console.log(`Updated VS Code settings at ${settingsPath}`);
118
+ break;
119
+ }
120
+ default:
121
+ console.error(`Unknown editor: ${editor}`);
122
+ console.error("Supported editors: neovim, helix, vscode");
123
+ process.exit(1);
124
+ }
125
+ }
126
+ //# sourceMappingURL=runInstall.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runInstall.js","sourceRoot":"","sources":["../../../src/cli/runInstall.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * `resolve` command — resolve an import specifier.
3
+ *
4
+ * @note Impure — dynamically imports css module, writes to stdout/stderr,
5
+ * may exit the process.
6
+ */
7
+ export async function runResolve(specifier, rootDir) {
8
+ if (!specifier) {
9
+ console.error("Usage: terrazzo-lsp resolve <import-specifier>");
10
+ process.exit(1);
11
+ return;
12
+ }
13
+ const { resolveImportSpecifier } = await import("../css/index.js");
14
+ const resolved = resolveImportSpecifier(specifier, rootDir, rootDir);
15
+ console.log(resolved ?? "(unresolvable)");
16
+ }
17
+ //# sourceMappingURL=runResolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runResolve.js","sourceRoot":"","sources":["../../../src/cli/runResolve.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAA6B,EAC7B,OAAe;IAEf,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IACD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACnE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;AAC5C,CAAC"}