@macroforge/svelte-language-server 0.1.3

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 (256) hide show
  1. package/README.md +331 -0
  2. package/bin/server.js +5 -0
  3. package/dist/src/importPackage.d.ts +16 -0
  4. package/dist/src/importPackage.js +76 -0
  5. package/dist/src/importPackage.js.map +1 -0
  6. package/dist/src/index.d.ts +3 -0
  7. package/dist/src/index.js +23 -0
  8. package/dist/src/index.js.map +1 -0
  9. package/dist/src/lib/DiagnosticsManager.d.ts +20 -0
  10. package/dist/src/lib/DiagnosticsManager.js +71 -0
  11. package/dist/src/lib/DiagnosticsManager.js.map +1 -0
  12. package/dist/src/lib/FallbackWatcher.d.ts +15 -0
  13. package/dist/src/lib/FallbackWatcher.js +66 -0
  14. package/dist/src/lib/FallbackWatcher.js.map +1 -0
  15. package/dist/src/lib/documentHighlight/wordHighlight.d.ts +3 -0
  16. package/dist/src/lib/documentHighlight/wordHighlight.js +62 -0
  17. package/dist/src/lib/documentHighlight/wordHighlight.js.map +1 -0
  18. package/dist/src/lib/documents/Document.d.ts +63 -0
  19. package/dist/src/lib/documents/Document.js +138 -0
  20. package/dist/src/lib/documents/Document.js.map +1 -0
  21. package/dist/src/lib/documents/DocumentBase.d.ts +65 -0
  22. package/dist/src/lib/documents/DocumentBase.js +69 -0
  23. package/dist/src/lib/documents/DocumentBase.js.map +1 -0
  24. package/dist/src/lib/documents/DocumentManager.d.ts +28 -0
  25. package/dist/src/lib/documents/DocumentManager.js +122 -0
  26. package/dist/src/lib/documents/DocumentManager.js.map +1 -0
  27. package/dist/src/lib/documents/DocumentMapper.d.ts +88 -0
  28. package/dist/src/lib/documents/DocumentMapper.js +258 -0
  29. package/dist/src/lib/documents/DocumentMapper.js.map +1 -0
  30. package/dist/src/lib/documents/configLoader.d.ts +80 -0
  31. package/dist/src/lib/documents/configLoader.js +265 -0
  32. package/dist/src/lib/documents/configLoader.js.map +1 -0
  33. package/dist/src/lib/documents/fileCollection.d.ts +41 -0
  34. package/dist/src/lib/documents/fileCollection.js +87 -0
  35. package/dist/src/lib/documents/fileCollection.js.map +1 -0
  36. package/dist/src/lib/documents/index.d.ts +5 -0
  37. package/dist/src/lib/documents/index.js +22 -0
  38. package/dist/src/lib/documents/index.js.map +1 -0
  39. package/dist/src/lib/documents/parseHtml.d.ts +13 -0
  40. package/dist/src/lib/documents/parseHtml.js +160 -0
  41. package/dist/src/lib/documents/parseHtml.js.map +1 -0
  42. package/dist/src/lib/documents/utils.d.ts +105 -0
  43. package/dist/src/lib/documents/utils.js +410 -0
  44. package/dist/src/lib/documents/utils.js.map +1 -0
  45. package/dist/src/lib/foldingRange/indentFolding.d.ts +26 -0
  46. package/dist/src/lib/foldingRange/indentFolding.js +142 -0
  47. package/dist/src/lib/foldingRange/indentFolding.js.map +1 -0
  48. package/dist/src/lib/semanticToken/semanticTokenLegend.d.ts +33 -0
  49. package/dist/src/lib/semanticToken/semanticTokenLegend.js +37 -0
  50. package/dist/src/lib/semanticToken/semanticTokenLegend.js.map +1 -0
  51. package/dist/src/logger.d.ts +9 -0
  52. package/dist/src/logger.js +28 -0
  53. package/dist/src/logger.js.map +1 -0
  54. package/dist/src/ls-config.d.ts +326 -0
  55. package/dist/src/ls-config.js +386 -0
  56. package/dist/src/ls-config.js.map +1 -0
  57. package/dist/src/plugins/PluginHost.d.ts +68 -0
  58. package/dist/src/plugins/PluginHost.js +447 -0
  59. package/dist/src/plugins/PluginHost.js.map +1 -0
  60. package/dist/src/plugins/css/CSSDocument.d.ts +46 -0
  61. package/dist/src/plugins/css/CSSDocument.js +78 -0
  62. package/dist/src/plugins/css/CSSDocument.js.map +1 -0
  63. package/dist/src/plugins/css/CSSPlugin.d.ts +35 -0
  64. package/dist/src/plugins/css/CSSPlugin.js +407 -0
  65. package/dist/src/plugins/css/CSSPlugin.js.map +1 -0
  66. package/dist/src/plugins/css/FileSystemProvider.d.ts +10 -0
  67. package/dist/src/plugins/css/FileSystemProvider.js +75 -0
  68. package/dist/src/plugins/css/FileSystemProvider.js.map +1 -0
  69. package/dist/src/plugins/css/StyleAttributeDocument.d.ts +41 -0
  70. package/dist/src/plugins/css/StyleAttributeDocument.js +65 -0
  71. package/dist/src/plugins/css/StyleAttributeDocument.js.map +1 -0
  72. package/dist/src/plugins/css/features/getIdClassCompletion.d.ts +19 -0
  73. package/dist/src/plugins/css/features/getIdClassCompletion.js +56 -0
  74. package/dist/src/plugins/css/features/getIdClassCompletion.js.map +1 -0
  75. package/dist/src/plugins/css/features/svelte-selectors.d.ts +2 -0
  76. package/dist/src/plugins/css/features/svelte-selectors.js +18 -0
  77. package/dist/src/plugins/css/features/svelte-selectors.js.map +1 -0
  78. package/dist/src/plugins/css/global-vars.d.ts +16 -0
  79. package/dist/src/plugins/css/global-vars.js +82 -0
  80. package/dist/src/plugins/css/global-vars.js.map +1 -0
  81. package/dist/src/plugins/css/service.d.ts +5 -0
  82. package/dist/src/plugins/css/service.js +66 -0
  83. package/dist/src/plugins/css/service.js.map +1 -0
  84. package/dist/src/plugins/documentContext.d.ts +3 -0
  85. package/dist/src/plugins/documentContext.js +36 -0
  86. package/dist/src/plugins/documentContext.js.map +1 -0
  87. package/dist/src/plugins/html/HTMLPlugin.d.ts +36 -0
  88. package/dist/src/plugins/html/HTMLPlugin.js +363 -0
  89. package/dist/src/plugins/html/HTMLPlugin.js.map +1 -0
  90. package/dist/src/plugins/html/dataProvider.d.ts +1 -0
  91. package/dist/src/plugins/html/dataProvider.js +481 -0
  92. package/dist/src/plugins/html/dataProvider.js.map +1 -0
  93. package/dist/src/plugins/index.d.ts +7 -0
  94. package/dist/src/plugins/index.js +24 -0
  95. package/dist/src/plugins/index.js.map +1 -0
  96. package/dist/src/plugins/interfaces.d.ts +132 -0
  97. package/dist/src/plugins/interfaces.js +3 -0
  98. package/dist/src/plugins/interfaces.js.map +1 -0
  99. package/dist/src/plugins/svelte/SvelteDocument.d.ts +98 -0
  100. package/dist/src/plugins/svelte/SvelteDocument.js +318 -0
  101. package/dist/src/plugins/svelte/SvelteDocument.js.map +1 -0
  102. package/dist/src/plugins/svelte/SveltePlugin.d.ts +24 -0
  103. package/dist/src/plugins/svelte/SveltePlugin.js +306 -0
  104. package/dist/src/plugins/svelte/SveltePlugin.js.map +1 -0
  105. package/dist/src/plugins/svelte/features/SvelteTags.d.ts +28 -0
  106. package/dist/src/plugins/svelte/features/SvelteTags.js +136 -0
  107. package/dist/src/plugins/svelte/features/SvelteTags.js.map +1 -0
  108. package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.d.ts +11 -0
  109. package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.js +140 -0
  110. package/dist/src/plugins/svelte/features/getCodeActions/getQuickfixes.js.map +1 -0
  111. package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.d.ts +9 -0
  112. package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.js +140 -0
  113. package/dist/src/plugins/svelte/features/getCodeActions/getRefactorings.js.map +1 -0
  114. package/dist/src/plugins/svelte/features/getCodeActions/index.d.ts +4 -0
  115. package/dist/src/plugins/svelte/features/getCodeActions/index.js +19 -0
  116. package/dist/src/plugins/svelte/features/getCodeActions/index.js.map +1 -0
  117. package/dist/src/plugins/svelte/features/getCompletions.d.ts +4 -0
  118. package/dist/src/plugins/svelte/features/getCompletions.js +184 -0
  119. package/dist/src/plugins/svelte/features/getCompletions.js.map +1 -0
  120. package/dist/src/plugins/svelte/features/getDiagnostics.d.ts +9 -0
  121. package/dist/src/plugins/svelte/features/getDiagnostics.js +284 -0
  122. package/dist/src/plugins/svelte/features/getDiagnostics.js.map +1 -0
  123. package/dist/src/plugins/svelte/features/getHoverInfo.d.ts +7 -0
  124. package/dist/src/plugins/svelte/features/getHoverInfo.js +93 -0
  125. package/dist/src/plugins/svelte/features/getHoverInfo.js.map +1 -0
  126. package/dist/src/plugins/svelte/features/getModifierData.d.ts +7 -0
  127. package/dist/src/plugins/svelte/features/getModifierData.js +56 -0
  128. package/dist/src/plugins/svelte/features/getModifierData.js.map +1 -0
  129. package/dist/src/plugins/svelte/features/getSelectionRanges.d.ts +3 -0
  130. package/dist/src/plugins/svelte/features/getSelectionRanges.js +46 -0
  131. package/dist/src/plugins/svelte/features/getSelectionRanges.js.map +1 -0
  132. package/dist/src/plugins/svelte/features/utils.d.ts +5 -0
  133. package/dist/src/plugins/svelte/features/utils.js +18 -0
  134. package/dist/src/plugins/svelte/features/utils.js.map +1 -0
  135. package/dist/src/plugins/typescript/ComponentInfoProvider.d.ts +27 -0
  136. package/dist/src/plugins/typescript/ComponentInfoProvider.js +116 -0
  137. package/dist/src/plugins/typescript/ComponentInfoProvider.js.map +1 -0
  138. package/dist/src/plugins/typescript/DocumentMapper.d.ts +10 -0
  139. package/dist/src/plugins/typescript/DocumentMapper.js +25 -0
  140. package/dist/src/plugins/typescript/DocumentMapper.js.map +1 -0
  141. package/dist/src/plugins/typescript/DocumentSnapshot.d.ts +173 -0
  142. package/dist/src/plugins/typescript/DocumentSnapshot.js +623 -0
  143. package/dist/src/plugins/typescript/DocumentSnapshot.js.map +1 -0
  144. package/dist/src/plugins/typescript/LSAndTSDocResolver.d.ts +100 -0
  145. package/dist/src/plugins/typescript/LSAndTSDocResolver.js +301 -0
  146. package/dist/src/plugins/typescript/LSAndTSDocResolver.js.map +1 -0
  147. package/dist/src/plugins/typescript/SnapshotManager.d.ts +59 -0
  148. package/dist/src/plugins/typescript/SnapshotManager.js +238 -0
  149. package/dist/src/plugins/typescript/SnapshotManager.js.map +1 -0
  150. package/dist/src/plugins/typescript/TypeScriptPlugin.d.ts +65 -0
  151. package/dist/src/plugins/typescript/TypeScriptPlugin.js +332 -0
  152. package/dist/src/plugins/typescript/TypeScriptPlugin.js.map +1 -0
  153. package/dist/src/plugins/typescript/features/CallHierarchyProvider.d.ts +24 -0
  154. package/dist/src/plugins/typescript/features/CallHierarchyProvider.js +325 -0
  155. package/dist/src/plugins/typescript/features/CallHierarchyProvider.js.map +1 -0
  156. package/dist/src/plugins/typescript/features/CodeActionsProvider.d.ts +72 -0
  157. package/dist/src/plugins/typescript/features/CodeActionsProvider.js +1030 -0
  158. package/dist/src/plugins/typescript/features/CodeActionsProvider.js.map +1 -0
  159. package/dist/src/plugins/typescript/features/CodeLensProvider.d.ts +28 -0
  160. package/dist/src/plugins/typescript/features/CodeLensProvider.js +205 -0
  161. package/dist/src/plugins/typescript/features/CodeLensProvider.js.map +1 -0
  162. package/dist/src/plugins/typescript/features/CompletionProvider.d.ts +57 -0
  163. package/dist/src/plugins/typescript/features/CompletionProvider.js +791 -0
  164. package/dist/src/plugins/typescript/features/CompletionProvider.js.map +1 -0
  165. package/dist/src/plugins/typescript/features/DiagnosticsProvider.d.ts +36 -0
  166. package/dist/src/plugins/typescript/features/DiagnosticsProvider.js +497 -0
  167. package/dist/src/plugins/typescript/features/DiagnosticsProvider.js.map +1 -0
  168. package/dist/src/plugins/typescript/features/DocumentHighlightProvider.d.ts +17 -0
  169. package/dist/src/plugins/typescript/features/DocumentHighlightProvider.js +211 -0
  170. package/dist/src/plugins/typescript/features/DocumentHighlightProvider.js.map +1 -0
  171. package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.d.ts +9 -0
  172. package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.js +66 -0
  173. package/dist/src/plugins/typescript/features/FindComponentReferencesProvider.js.map +1 -0
  174. package/dist/src/plugins/typescript/features/FindFileReferencesProvider.d.ts +9 -0
  175. package/dist/src/plugins/typescript/features/FindFileReferencesProvider.js +38 -0
  176. package/dist/src/plugins/typescript/features/FindFileReferencesProvider.js.map +1 -0
  177. package/dist/src/plugins/typescript/features/FindReferencesProvider.d.ts +20 -0
  178. package/dist/src/plugins/typescript/features/FindReferencesProvider.js +149 -0
  179. package/dist/src/plugins/typescript/features/FindReferencesProvider.js.map +1 -0
  180. package/dist/src/plugins/typescript/features/FoldingRangeProvider.d.ts +28 -0
  181. package/dist/src/plugins/typescript/features/FoldingRangeProvider.js +247 -0
  182. package/dist/src/plugins/typescript/features/FoldingRangeProvider.js.map +1 -0
  183. package/dist/src/plugins/typescript/features/HoverProvider.d.ts +11 -0
  184. package/dist/src/plugins/typescript/features/HoverProvider.js +75 -0
  185. package/dist/src/plugins/typescript/features/HoverProvider.js.map +1 -0
  186. package/dist/src/plugins/typescript/features/ImplementationProvider.d.ts +9 -0
  187. package/dist/src/plugins/typescript/features/ImplementationProvider.js +47 -0
  188. package/dist/src/plugins/typescript/features/ImplementationProvider.js.map +1 -0
  189. package/dist/src/plugins/typescript/features/InlayHintProvider.d.ts +22 -0
  190. package/dist/src/plugins/typescript/features/InlayHintProvider.js +225 -0
  191. package/dist/src/plugins/typescript/features/InlayHintProvider.js.map +1 -0
  192. package/dist/src/plugins/typescript/features/RenameProvider.d.ts +53 -0
  193. package/dist/src/plugins/typescript/features/RenameProvider.js +423 -0
  194. package/dist/src/plugins/typescript/features/RenameProvider.js.map +1 -0
  195. package/dist/src/plugins/typescript/features/SelectionRangeProvider.d.ts +18 -0
  196. package/dist/src/plugins/typescript/features/SelectionRangeProvider.js +62 -0
  197. package/dist/src/plugins/typescript/features/SelectionRangeProvider.js.map +1 -0
  198. package/dist/src/plugins/typescript/features/SemanticTokensProvider.d.ts +15 -0
  199. package/dist/src/plugins/typescript/features/SemanticTokensProvider.js +116 -0
  200. package/dist/src/plugins/typescript/features/SemanticTokensProvider.js.map +1 -0
  201. package/dist/src/plugins/typescript/features/SignatureHelpProvider.d.ts +22 -0
  202. package/dist/src/plugins/typescript/features/SignatureHelpProvider.js +110 -0
  203. package/dist/src/plugins/typescript/features/SignatureHelpProvider.js.map +1 -0
  204. package/dist/src/plugins/typescript/features/TypeDefinitionProvider.d.ts +9 -0
  205. package/dist/src/plugins/typescript/features/TypeDefinitionProvider.js +35 -0
  206. package/dist/src/plugins/typescript/features/TypeDefinitionProvider.js.map +1 -0
  207. package/dist/src/plugins/typescript/features/UpdateImportsProvider.d.ts +11 -0
  208. package/dist/src/plugins/typescript/features/UpdateImportsProvider.js +109 -0
  209. package/dist/src/plugins/typescript/features/UpdateImportsProvider.js.map +1 -0
  210. package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.d.ts +25 -0
  211. package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.js +176 -0
  212. package/dist/src/plugins/typescript/features/WorkspaceSymbolProvider.js.map +1 -0
  213. package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.d.ts +13 -0
  214. package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.js +58 -0
  215. package/dist/src/plugins/typescript/features/getDirectiveCommentCompletions.js.map +1 -0
  216. package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.d.ts +4 -0
  217. package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.js +57 -0
  218. package/dist/src/plugins/typescript/features/getJsDocTemplateCompletion.js.map +1 -0
  219. package/dist/src/plugins/typescript/features/utils.d.ts +81 -0
  220. package/dist/src/plugins/typescript/features/utils.js +331 -0
  221. package/dist/src/plugins/typescript/features/utils.js.map +1 -0
  222. package/dist/src/plugins/typescript/macroforgeAugmenter.d.ts +23 -0
  223. package/dist/src/plugins/typescript/macroforgeAugmenter.js +41 -0
  224. package/dist/src/plugins/typescript/macroforgeAugmenter.js.map +1 -0
  225. package/dist/src/plugins/typescript/module-loader.d.ts +28 -0
  226. package/dist/src/plugins/typescript/module-loader.js +254 -0
  227. package/dist/src/plugins/typescript/module-loader.js.map +1 -0
  228. package/dist/src/plugins/typescript/previewer.d.ts +7 -0
  229. package/dist/src/plugins/typescript/previewer.js +120 -0
  230. package/dist/src/plugins/typescript/previewer.js.map +1 -0
  231. package/dist/src/plugins/typescript/service.d.ts +105 -0
  232. package/dist/src/plugins/typescript/service.js +1073 -0
  233. package/dist/src/plugins/typescript/service.js.map +1 -0
  234. package/dist/src/plugins/typescript/serviceCache.d.ts +90 -0
  235. package/dist/src/plugins/typescript/serviceCache.js +50 -0
  236. package/dist/src/plugins/typescript/serviceCache.js.map +1 -0
  237. package/dist/src/plugins/typescript/svelte-ast-utils.d.ts +77 -0
  238. package/dist/src/plugins/typescript/svelte-ast-utils.js +100 -0
  239. package/dist/src/plugins/typescript/svelte-ast-utils.js.map +1 -0
  240. package/dist/src/plugins/typescript/svelte-sys.d.ts +9 -0
  241. package/dist/src/plugins/typescript/svelte-sys.js +79 -0
  242. package/dist/src/plugins/typescript/svelte-sys.js.map +1 -0
  243. package/dist/src/plugins/typescript/utils.d.ts +48 -0
  244. package/dist/src/plugins/typescript/utils.js +334 -0
  245. package/dist/src/plugins/typescript/utils.js.map +1 -0
  246. package/dist/src/server.d.ts +19 -0
  247. package/dist/src/server.js +434 -0
  248. package/dist/src/server.js.map +1 -0
  249. package/dist/src/svelte-check.d.ts +65 -0
  250. package/dist/src/svelte-check.js +288 -0
  251. package/dist/src/svelte-check.js.map +1 -0
  252. package/dist/src/utils.d.ts +111 -0
  253. package/dist/src/utils.js +337 -0
  254. package/dist/src/utils.js.map +1 -0
  255. package/dist/tsconfig.tsbuildinfo +1 -0
  256. package/package.json +79 -0
@@ -0,0 +1,258 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SourceMapDocumentMapper = exports.FragmentMapper = exports.IdentityMapper = void 0;
4
+ exports.mapRangeToOriginal = mapRangeToOriginal;
5
+ exports.mapLocationToOriginal = mapLocationToOriginal;
6
+ exports.mapRangeToGenerated = mapRangeToGenerated;
7
+ exports.mapCompletionItemToOriginal = mapCompletionItemToOriginal;
8
+ exports.mapHoverToParent = mapHoverToParent;
9
+ exports.mapObjWithRangeToOriginal = mapObjWithRangeToOriginal;
10
+ exports.mapInsertReplaceEditToOriginal = mapInsertReplaceEditToOriginal;
11
+ exports.mapEditToOriginal = mapEditToOriginal;
12
+ exports.mapDiagnosticToGenerated = mapDiagnosticToGenerated;
13
+ exports.mapColorPresentationToOriginal = mapColorPresentationToOriginal;
14
+ exports.mapSymbolInformationToOriginal = mapSymbolInformationToOriginal;
15
+ exports.mapLocationLinkToOriginal = mapLocationLinkToOriginal;
16
+ exports.mapTextDocumentEditToOriginal = mapTextDocumentEditToOriginal;
17
+ exports.mapCodeActionToOriginal = mapCodeActionToOriginal;
18
+ exports.mapSelectionRangeToParent = mapSelectionRangeToParent;
19
+ const vscode_languageserver_1 = require("vscode-languageserver");
20
+ const utils_1 = require("./utils");
21
+ const logger_1 = require("../../logger");
22
+ const trace_mapping_1 = require("@jridgewell/trace-mapping");
23
+ /**
24
+ * Does not map, returns positions as is.
25
+ */
26
+ class IdentityMapper {
27
+ constructor(url, parent) {
28
+ this.url = url;
29
+ this.parent = parent;
30
+ }
31
+ getOriginalPosition(generatedPosition) {
32
+ if (this.parent) {
33
+ generatedPosition = this.getOriginalPosition(generatedPosition);
34
+ }
35
+ return generatedPosition;
36
+ }
37
+ getGeneratedPosition(originalPosition) {
38
+ if (this.parent) {
39
+ originalPosition = this.getGeneratedPosition(originalPosition);
40
+ }
41
+ return originalPosition;
42
+ }
43
+ isInGenerated(position) {
44
+ if (this.parent && !this.parent.isInGenerated(position)) {
45
+ return false;
46
+ }
47
+ return true;
48
+ }
49
+ getURL() {
50
+ return this.url;
51
+ }
52
+ }
53
+ exports.IdentityMapper = IdentityMapper;
54
+ /**
55
+ * Maps positions in a fragment relative to a parent.
56
+ */
57
+ class FragmentMapper {
58
+ constructor(originalText, tagInfo, url) {
59
+ this.originalText = originalText;
60
+ this.tagInfo = tagInfo;
61
+ this.url = url;
62
+ this.lineOffsetsOriginal = (0, utils_1.getLineOffsets)(this.originalText);
63
+ this.lineOffsetsGenerated = (0, utils_1.getLineOffsets)(this.tagInfo.content);
64
+ }
65
+ getOriginalPosition(generatedPosition) {
66
+ const parentOffset = this.offsetInParent((0, utils_1.offsetAt)(generatedPosition, this.tagInfo.content, this.lineOffsetsGenerated));
67
+ return (0, utils_1.positionAt)(parentOffset, this.originalText, this.lineOffsetsOriginal);
68
+ }
69
+ offsetInParent(offset) {
70
+ return this.tagInfo.start + offset;
71
+ }
72
+ getGeneratedPosition(originalPosition) {
73
+ const fragmentOffset = (0, utils_1.offsetAt)(originalPosition, this.originalText, this.lineOffsetsOriginal) -
74
+ this.tagInfo.start;
75
+ return (0, utils_1.positionAt)(fragmentOffset, this.tagInfo.content, this.lineOffsetsGenerated);
76
+ }
77
+ isInGenerated(pos) {
78
+ const offset = (0, utils_1.offsetAt)(pos, this.originalText, this.lineOffsetsOriginal);
79
+ return offset >= this.tagInfo.start && offset <= this.tagInfo.end;
80
+ }
81
+ getURL() {
82
+ return this.url;
83
+ }
84
+ }
85
+ exports.FragmentMapper = FragmentMapper;
86
+ class SourceMapDocumentMapper {
87
+ constructor(traceMap, sourceUri, parent) {
88
+ this.traceMap = traceMap;
89
+ this.sourceUri = sourceUri;
90
+ this.parent = parent;
91
+ }
92
+ getOriginalPosition(generatedPosition) {
93
+ if (this.parent) {
94
+ generatedPosition = this.parent.getOriginalPosition(generatedPosition);
95
+ }
96
+ if (generatedPosition.line < 0) {
97
+ return { line: -1, character: -1 };
98
+ }
99
+ const mapped = (0, trace_mapping_1.originalPositionFor)(this.traceMap, {
100
+ line: generatedPosition.line + 1,
101
+ column: generatedPosition.character
102
+ });
103
+ if (!mapped) {
104
+ return { line: -1, character: -1 };
105
+ }
106
+ if (mapped.line === 0) {
107
+ logger_1.Logger.debug('Got 0 mapped line from', generatedPosition, 'col was', mapped.column);
108
+ }
109
+ return {
110
+ line: (mapped.line || 0) - 1,
111
+ character: mapped.column || 0
112
+ };
113
+ }
114
+ getGeneratedPosition(originalPosition) {
115
+ if (this.parent) {
116
+ originalPosition = this.parent.getGeneratedPosition(originalPosition);
117
+ }
118
+ const mapped = (0, trace_mapping_1.generatedPositionFor)(this.traceMap, {
119
+ line: originalPosition.line + 1,
120
+ column: originalPosition.character,
121
+ source: this.sourceUri
122
+ });
123
+ if (!mapped) {
124
+ return { line: -1, character: -1 };
125
+ }
126
+ const result = {
127
+ line: (mapped.line || 0) - 1,
128
+ character: mapped.column || 0
129
+ };
130
+ if (result.line < 0) {
131
+ return result;
132
+ }
133
+ return result;
134
+ }
135
+ isInGenerated(position) {
136
+ if (this.parent && !this.isInGenerated(position)) {
137
+ return false;
138
+ }
139
+ const generated = this.getGeneratedPosition(position);
140
+ return generated.line >= 0;
141
+ }
142
+ getURL() {
143
+ return this.sourceUri;
144
+ }
145
+ }
146
+ exports.SourceMapDocumentMapper = SourceMapDocumentMapper;
147
+ function mapRangeToOriginal(fragment, range) {
148
+ // DON'T use Range.create here! Positions might not be mapped
149
+ // and therefore return negative numbers, which makes Range.create throw.
150
+ // These invalid position need to be handled
151
+ // on a case-by-case basis in the calling functions.
152
+ const originalRange = {
153
+ start: fragment.getOriginalPosition(range.start),
154
+ end: fragment.getOriginalPosition(range.end)
155
+ };
156
+ checkRangeLength(originalRange, range);
157
+ return originalRange;
158
+ }
159
+ /** Range may be mapped one character short - reverse that for "in the same line" cases*/
160
+ function checkRangeLength(originalRange, range) {
161
+ if (originalRange.start.line === originalRange.end.line &&
162
+ range.start.line === range.end.line &&
163
+ originalRange.end.character - originalRange.start.character ===
164
+ range.end.character - range.start.character - 1) {
165
+ originalRange.end.character += 1;
166
+ }
167
+ }
168
+ function mapLocationToOriginal(fragment, range) {
169
+ const map = (fragment.getOriginalFilePosition ??
170
+ fragment.getOriginalPosition).bind(fragment);
171
+ const start = map(range.start);
172
+ const end = map(range.end);
173
+ const originalRange = {
174
+ start: { line: start.line, character: start.character },
175
+ end: { line: end.line, character: end.character }
176
+ };
177
+ checkRangeLength(originalRange, range);
178
+ return {
179
+ range: originalRange,
180
+ uri: start.uri ? start.uri : fragment.getURL()
181
+ };
182
+ }
183
+ function mapRangeToGenerated(fragment, range) {
184
+ return vscode_languageserver_1.Range.create(fragment.getGeneratedPosition(range.start), fragment.getGeneratedPosition(range.end));
185
+ }
186
+ function mapCompletionItemToOriginal(fragment, item) {
187
+ if (!item.textEdit) {
188
+ return item;
189
+ }
190
+ return {
191
+ ...item,
192
+ textEdit: mapEditToOriginal(fragment, item.textEdit)
193
+ };
194
+ }
195
+ function mapHoverToParent(fragment, hover) {
196
+ if (!hover.range) {
197
+ return hover;
198
+ }
199
+ return { ...hover, range: mapRangeToOriginal(fragment, hover.range) };
200
+ }
201
+ function mapObjWithRangeToOriginal(fragment, objWithRange) {
202
+ return { ...objWithRange, range: mapRangeToOriginal(fragment, objWithRange.range) };
203
+ }
204
+ function mapInsertReplaceEditToOriginal(fragment, edit) {
205
+ return {
206
+ ...edit,
207
+ insert: mapRangeToOriginal(fragment, edit.insert),
208
+ replace: mapRangeToOriginal(fragment, edit.replace)
209
+ };
210
+ }
211
+ function mapEditToOriginal(fragment, edit) {
212
+ return vscode_languageserver_1.TextEdit.is(edit)
213
+ ? mapObjWithRangeToOriginal(fragment, edit)
214
+ : mapInsertReplaceEditToOriginal(fragment, edit);
215
+ }
216
+ function mapDiagnosticToGenerated(fragment, diagnostic) {
217
+ return { ...diagnostic, range: mapRangeToGenerated(fragment, diagnostic.range) };
218
+ }
219
+ function mapColorPresentationToOriginal(fragment, presentation) {
220
+ const item = {
221
+ ...presentation
222
+ };
223
+ if (item.textEdit) {
224
+ item.textEdit = mapObjWithRangeToOriginal(fragment, item.textEdit);
225
+ }
226
+ if (item.additionalTextEdits) {
227
+ item.additionalTextEdits = item.additionalTextEdits.map((edit) => mapObjWithRangeToOriginal(fragment, edit));
228
+ }
229
+ return item;
230
+ }
231
+ function mapSymbolInformationToOriginal(fragment, info) {
232
+ return { ...info, location: mapObjWithRangeToOriginal(fragment, info.location) };
233
+ }
234
+ function mapLocationLinkToOriginal(fragment, def) {
235
+ return vscode_languageserver_1.LocationLink.create(def.targetUri, fragment.getURL() === def.targetUri
236
+ ? mapRangeToOriginal(fragment, def.targetRange)
237
+ : def.targetRange, fragment.getURL() === def.targetUri
238
+ ? mapRangeToOriginal(fragment, def.targetSelectionRange)
239
+ : def.targetSelectionRange, def.originSelectionRange
240
+ ? mapRangeToOriginal(fragment, def.originSelectionRange)
241
+ : undefined);
242
+ }
243
+ function mapTextDocumentEditToOriginal(fragment, edit) {
244
+ if (edit.textDocument.uri !== fragment.getURL()) {
245
+ return edit;
246
+ }
247
+ return vscode_languageserver_1.TextDocumentEdit.create(edit.textDocument, edit.edits.map((textEdit) => mapObjWithRangeToOriginal(fragment, textEdit)));
248
+ }
249
+ function mapCodeActionToOriginal(fragment, codeAction) {
250
+ return vscode_languageserver_1.CodeAction.create(codeAction.title, {
251
+ documentChanges: codeAction.edit.documentChanges.map((edit) => mapTextDocumentEditToOriginal(fragment, edit))
252
+ }, codeAction.kind);
253
+ }
254
+ function mapSelectionRangeToParent(fragment, selectionRange) {
255
+ const { range, parent } = selectionRange;
256
+ return vscode_languageserver_1.SelectionRange.create(mapRangeToOriginal(fragment, range), parent && mapSelectionRangeToParent(fragment, parent));
257
+ }
258
+ //# sourceMappingURL=DocumentMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DocumentMapper.js","sourceRoot":"","sources":["../../../../src/lib/documents/DocumentMapper.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,80 @@
1
+ import { CompileOptions } from 'svelte/types/compiler/interfaces';
2
+ import { PreprocessorGroup } from 'svelte/types/compiler/preprocess';
3
+ import { fdir } from 'fdir';
4
+ import _path from 'path';
5
+ import _fs from 'fs';
6
+ import { URL } from 'url';
7
+ export type InternalPreprocessorGroup = PreprocessorGroup & {
8
+ /**
9
+ * svelte-preprocess has this since 4.x
10
+ */
11
+ defaultLanguages?: {
12
+ markup?: string;
13
+ script?: string;
14
+ style?: string;
15
+ };
16
+ };
17
+ export interface SvelteConfig {
18
+ compilerOptions?: CompileOptions;
19
+ preprocess?: InternalPreprocessorGroup | InternalPreprocessorGroup[];
20
+ loadConfigError?: any;
21
+ isFallbackConfig?: boolean;
22
+ kit?: any;
23
+ }
24
+ /**
25
+ * This function encapsulates the import call in a way
26
+ * that TypeScript does not transpile `import()`.
27
+ * https://github.com/microsoft/TypeScript/issues/43329
28
+ */
29
+ declare const _dynamicImport: (modulePath: URL) => Promise<any>;
30
+ /**
31
+ * Loads svelte.config.{js,cjs,mjs} files. Provides both a synchronous and asynchronous
32
+ * interface to get a config file because snapshots need access to it synchronously.
33
+ * This means that another instance (the ts service host on startup) should make
34
+ * sure that all config files are loaded before snapshots are retrieved.
35
+ * Asynchronousity is needed because we use the dynamic `import()` statement.
36
+ */
37
+ export declare class ConfigLoader {
38
+ private globSync;
39
+ private fs;
40
+ private path;
41
+ private dynamicImport;
42
+ private configFiles;
43
+ private configFilesAsync;
44
+ private filePathToConfigPath;
45
+ private disabled;
46
+ constructor(globSync: typeof fdir, fs: Pick<typeof _fs, 'existsSync'>, path: Pick<typeof _path, 'dirname' | 'relative' | 'join'>, dynamicImport: typeof _dynamicImport);
47
+ /**
48
+ * Enable/disable loading of configs (for security reasons for example)
49
+ */
50
+ setDisabled(disabled: boolean): void;
51
+ /**
52
+ * Tries to load all `svelte.config.js` files below given directory
53
+ * and the first one found inside/above that directory.
54
+ *
55
+ * @param directory Directory where to load the configs from
56
+ */
57
+ loadConfigs(directory: string): Promise<void>;
58
+ private addFallbackConfig;
59
+ private searchConfigPathUpwards;
60
+ private loadAndCacheConfig;
61
+ private loadConfig;
62
+ /**
63
+ * Returns config associated to file. If no config is found, the file
64
+ * was called in a context where no config file search was done before,
65
+ * which can happen
66
+ * - if TS intellisense is turned off and the search did not run on tsconfig init
67
+ * - if the file was opened not through the TS service crawl, but through the LSP
68
+ *
69
+ * @param file
70
+ */
71
+ getConfig(file: string): SvelteConfig | undefined;
72
+ /**
73
+ * Like `getConfig`, but will search for a config above if no config found.
74
+ */
75
+ awaitConfig(file: string): Promise<SvelteConfig | undefined>;
76
+ private tryGetConfig;
77
+ private useFallbackPreprocessor;
78
+ }
79
+ export declare const configLoader: ConfigLoader;
80
+ export {};
@@ -0,0 +1,265 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.configLoader = exports.ConfigLoader = void 0;
7
+ const logger_1 = require("../../logger");
8
+ const importPackage_1 = require("../../importPackage");
9
+ const fdir_1 = require("fdir");
10
+ const path_1 = __importDefault(require("path"));
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const url_1 = require("url");
13
+ const fileCollection_1 = require("./fileCollection");
14
+ const typescript_1 = __importDefault(require("typescript"));
15
+ const DEFAULT_OPTIONS = {
16
+ dev: true
17
+ };
18
+ const NO_GENERATE = {
19
+ generate: false
20
+ };
21
+ /**
22
+ * This function encapsulates the import call in a way
23
+ * that TypeScript does not transpile `import()`.
24
+ * https://github.com/microsoft/TypeScript/issues/43329
25
+ */
26
+ const _dynamicImport = new Function('modulePath', 'return import(modulePath)');
27
+ const configRegex = /\/svelte\.config\.(js|cjs|mjs)$/;
28
+ /**
29
+ * Loads svelte.config.{js,cjs,mjs} files. Provides both a synchronous and asynchronous
30
+ * interface to get a config file because snapshots need access to it synchronously.
31
+ * This means that another instance (the ts service host on startup) should make
32
+ * sure that all config files are loaded before snapshots are retrieved.
33
+ * Asynchronousity is needed because we use the dynamic `import()` statement.
34
+ */
35
+ class ConfigLoader {
36
+ constructor(globSync, fs, path, dynamicImport) {
37
+ this.globSync = globSync;
38
+ this.fs = fs;
39
+ this.path = path;
40
+ this.dynamicImport = dynamicImport;
41
+ this.configFiles = new fileCollection_1.FileMap();
42
+ this.configFilesAsync = new fileCollection_1.FileMap();
43
+ this.filePathToConfigPath = new fileCollection_1.FileMap();
44
+ this.disabled = false;
45
+ }
46
+ /**
47
+ * Enable/disable loading of configs (for security reasons for example)
48
+ */
49
+ setDisabled(disabled) {
50
+ this.disabled = disabled;
51
+ }
52
+ /**
53
+ * Tries to load all `svelte.config.js` files below given directory
54
+ * and the first one found inside/above that directory.
55
+ *
56
+ * @param directory Directory where to load the configs from
57
+ */
58
+ async loadConfigs(directory) {
59
+ logger_1.Logger.log('Trying to load configs for', directory);
60
+ try {
61
+ const pathResults = new this.globSync({})
62
+ .withPathSeparator('/')
63
+ .exclude((_, path) => {
64
+ // no / at the start, path could start with node_modules
65
+ return path.includes('node_modules/') || path.includes('/.') || path[0] === '.';
66
+ })
67
+ .filter((path, isDir) => {
68
+ return !isDir && configRegex.test(path);
69
+ })
70
+ .withRelativePaths()
71
+ .crawl(directory)
72
+ .sync();
73
+ const someConfigIsImmediateFileInDirectory = pathResults.length > 0 && pathResults.some((res) => !this.path.dirname(res));
74
+ if (!someConfigIsImmediateFileInDirectory) {
75
+ const configPathUpwards = this.searchConfigPathUpwards(directory);
76
+ if (configPathUpwards) {
77
+ pathResults.push(this.path.relative(directory, configPathUpwards));
78
+ }
79
+ }
80
+ if (pathResults.length === 0) {
81
+ this.addFallbackConfig(directory);
82
+ return;
83
+ }
84
+ const promises = pathResults
85
+ .map((pathResult) => this.path.join(directory, pathResult))
86
+ .filter((pathResult) => {
87
+ const config = this.configFiles.get(pathResult);
88
+ return !config || config.loadConfigError;
89
+ })
90
+ .map(async (pathResult) => {
91
+ await this.loadAndCacheConfig(pathResult, directory);
92
+ });
93
+ await Promise.all(promises);
94
+ }
95
+ catch (e) {
96
+ logger_1.Logger.error(e);
97
+ }
98
+ }
99
+ addFallbackConfig(directory) {
100
+ const fallback = this.useFallbackPreprocessor(directory, false);
101
+ const path = this.path.join(directory, 'svelte.config.js');
102
+ this.configFilesAsync.set(path, Promise.resolve(fallback));
103
+ this.configFiles.set(path, fallback);
104
+ }
105
+ searchConfigPathUpwards(path) {
106
+ let currentDir = path;
107
+ let nextDir = this.path.dirname(path);
108
+ while (currentDir !== nextDir) {
109
+ const tryFindConfigPath = (ending) => {
110
+ const path = this.path.join(currentDir, `svelte.config.${ending}`);
111
+ return this.fs.existsSync(path) ? path : undefined;
112
+ };
113
+ const configPath = tryFindConfigPath('js') || tryFindConfigPath('cjs') || tryFindConfigPath('mjs');
114
+ if (configPath) {
115
+ return configPath;
116
+ }
117
+ currentDir = nextDir;
118
+ nextDir = this.path.dirname(currentDir);
119
+ }
120
+ }
121
+ async loadAndCacheConfig(configPath, directory) {
122
+ const loadingConfig = this.configFilesAsync.get(configPath);
123
+ if (loadingConfig) {
124
+ await loadingConfig;
125
+ }
126
+ else {
127
+ const newConfig = this.loadConfig(configPath, directory);
128
+ this.configFilesAsync.set(configPath, newConfig);
129
+ this.configFiles.set(configPath, await newConfig);
130
+ }
131
+ }
132
+ async loadConfig(configPath, directory) {
133
+ try {
134
+ let config = this.disabled
135
+ ? {}
136
+ : (await this.dynamicImport((0, url_1.pathToFileURL)(configPath)))?.default;
137
+ if (!config) {
138
+ throw new Error('Missing exports in the config. Make sure to include "export default config" or "module.exports = config"');
139
+ }
140
+ config = {
141
+ ...config,
142
+ compilerOptions: {
143
+ ...DEFAULT_OPTIONS,
144
+ ...config.compilerOptions,
145
+ ...NO_GENERATE
146
+ }
147
+ };
148
+ logger_1.Logger.log('Loaded config at ', configPath);
149
+ return config;
150
+ }
151
+ catch (err) {
152
+ logger_1.Logger.error('Error while loading config at ', configPath);
153
+ logger_1.Logger.error(err);
154
+ const config = {
155
+ ...this.useFallbackPreprocessor(directory, true),
156
+ compilerOptions: {
157
+ ...DEFAULT_OPTIONS,
158
+ ...NO_GENERATE
159
+ },
160
+ loadConfigError: err
161
+ };
162
+ return config;
163
+ }
164
+ }
165
+ /**
166
+ * Returns config associated to file. If no config is found, the file
167
+ * was called in a context where no config file search was done before,
168
+ * which can happen
169
+ * - if TS intellisense is turned off and the search did not run on tsconfig init
170
+ * - if the file was opened not through the TS service crawl, but through the LSP
171
+ *
172
+ * @param file
173
+ */
174
+ getConfig(file) {
175
+ const cached = this.filePathToConfigPath.get(file);
176
+ if (cached) {
177
+ return this.configFiles.get(cached);
178
+ }
179
+ let currentDir = file;
180
+ let nextDir = this.path.dirname(file);
181
+ while (currentDir !== nextDir) {
182
+ currentDir = nextDir;
183
+ const config = this.tryGetConfig(file, currentDir, 'js') ||
184
+ this.tryGetConfig(file, currentDir, 'cjs') ||
185
+ this.tryGetConfig(file, currentDir, 'mjs');
186
+ if (config) {
187
+ return config;
188
+ }
189
+ nextDir = this.path.dirname(currentDir);
190
+ }
191
+ }
192
+ /**
193
+ * Like `getConfig`, but will search for a config above if no config found.
194
+ */
195
+ async awaitConfig(file) {
196
+ const config = this.getConfig(file);
197
+ if (config) {
198
+ return config;
199
+ }
200
+ const fileDirectory = this.path.dirname(file);
201
+ const configPath = this.searchConfigPathUpwards(fileDirectory);
202
+ if (configPath) {
203
+ await this.loadAndCacheConfig(configPath, fileDirectory);
204
+ }
205
+ else {
206
+ this.addFallbackConfig(fileDirectory);
207
+ }
208
+ return this.getConfig(file);
209
+ }
210
+ tryGetConfig(file, fromDirectory, configFileEnding) {
211
+ const path = this.path.join(fromDirectory, `svelte.config.${configFileEnding}`);
212
+ const config = this.configFiles.get(path);
213
+ if (config) {
214
+ this.filePathToConfigPath.set(file, path);
215
+ return config;
216
+ }
217
+ }
218
+ useFallbackPreprocessor(path, foundConfig) {
219
+ try {
220
+ const sveltePreprocess = (0, importPackage_1.importSveltePreprocess)(path);
221
+ logger_1.Logger.log((foundConfig
222
+ ? 'Found svelte.config.js but there was an error loading it. '
223
+ : 'No svelte.config.js found. ') +
224
+ 'Using https://github.com/sveltejs/svelte-preprocess as fallback');
225
+ return {
226
+ preprocess: sveltePreprocess({
227
+ // 4.x does not have transpileOnly anymore, but if the user has version 3.x
228
+ // in his repo, that one is loaded instead, for which we still need this.
229
+ typescript: {
230
+ transpileOnly: true,
231
+ compilerOptions: { sourceMap: true, inlineSourceMap: false }
232
+ }
233
+ }),
234
+ isFallbackConfig: true
235
+ };
236
+ }
237
+ catch (e) {
238
+ // User doesn't have svelte-preprocess installed, provide a barebones TS preprocessor
239
+ return {
240
+ preprocess: {
241
+ // @ts-ignore name property exists in Svelte 4 onwards
242
+ name: 'svelte-language-tools-ts-fallback-preprocessor',
243
+ script: ({ content, attributes, filename }) => {
244
+ if (attributes.lang !== 'ts')
245
+ return;
246
+ const { outputText, sourceMapText } = typescript_1.default.transpileModule(content, {
247
+ fileName: filename,
248
+ compilerOptions: {
249
+ module: typescript_1.default.ModuleKind.ESNext,
250
+ target: typescript_1.default.ScriptTarget.ESNext,
251
+ sourceMap: true,
252
+ verbatimModuleSyntax: true
253
+ }
254
+ });
255
+ return { code: outputText, map: sourceMapText };
256
+ }
257
+ },
258
+ isFallbackConfig: true
259
+ };
260
+ }
261
+ }
262
+ }
263
+ exports.ConfigLoader = ConfigLoader;
264
+ exports.configLoader = new ConfigLoader(fdir_1.fdir, fs_1.default, path_1.default, _dynamicImport);
265
+ //# sourceMappingURL=configLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configLoader.js","sourceRoot":"","sources":["../../../../src/lib/documents/configLoader.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * wrapper around Map<string, T> for case insensitive file systems
3
+ */
4
+ export declare class FileMap<T> implements Iterable<[string, T]> {
5
+ private getCanonicalFileName;
6
+ private readonly map;
7
+ constructor(useCaseSensitiveFileNames?: boolean);
8
+ get(filePath: string): T | undefined;
9
+ set(filePath: string, value: T): Map<string, T>;
10
+ has(filePath: string): boolean;
11
+ delete(filePath: string): boolean;
12
+ /**
13
+ * Returns an iterable of key, value pairs for every entry in the map.
14
+ * In case insensitive file system the key in the key-value pairs is in lowercase
15
+ */
16
+ entries(): IterableIterator<[string, T]>;
17
+ /**
18
+ *
19
+ * @param callbackfn In case insensitive file system the key parameter for the callback is in lowercase
20
+ */
21
+ forEach(callbackfn: (value: T, key: string) => void): void;
22
+ values(): MapIterator<T>;
23
+ clear(): void;
24
+ /**
25
+ * Returns an iterable of values in the map.
26
+ * In case insensitive file system the key is in lowercase
27
+ */
28
+ keys(): MapIterator<string>;
29
+ get size(): number;
30
+ [Symbol.iterator](): Iterator<[string, T]>;
31
+ }
32
+ export declare class FileSet implements Iterable<string> {
33
+ private getCanonicalFileName;
34
+ private readonly set;
35
+ constructor(useCaseSensitiveFileNames?: boolean);
36
+ add(filePath: string): void;
37
+ has(filePath: string): boolean;
38
+ delete(filePath: string): boolean;
39
+ clear(): void;
40
+ [Symbol.iterator](): Iterator<string>;
41
+ }