@tsc-rs/typescript 0.0.0-placeholder → 0.8.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 (555) hide show
  1. package/LICENSE +21 -0
  2. package/NOTICE.txt +599 -0
  3. package/README.md +111 -0
  4. package/bin/tsc +2 -0
  5. package/dist/api/async/api.d.ts +1041 -0
  6. package/dist/api/async/api.d.ts.map +1 -0
  7. package/dist/api/async/api.js +3143 -0
  8. package/dist/api/async/api.js.map +1 -0
  9. package/dist/api/async/client.d.ts +52 -0
  10. package/dist/api/async/client.d.ts.map +1 -0
  11. package/dist/api/async/client.js +365 -0
  12. package/dist/api/async/client.js.map +1 -0
  13. package/dist/api/async/types.d.ts +375 -0
  14. package/dist/api/async/types.d.ts.map +1 -0
  15. package/dist/api/async/types.js +2 -0
  16. package/dist/api/async/types.js.map +1 -0
  17. package/dist/api/compilerOptions.generated.d.ts +123 -0
  18. package/dist/api/compilerOptions.generated.d.ts.map +1 -0
  19. package/dist/api/compilerOptions.generated.js +8 -0
  20. package/dist/api/compilerOptions.generated.js.map +1 -0
  21. package/dist/api/diagnosticFormatter.d.ts +9 -0
  22. package/dist/api/diagnosticFormatter.d.ts.map +1 -0
  23. package/dist/api/diagnosticFormatter.js +169 -0
  24. package/dist/api/diagnosticFormatter.js.map +1 -0
  25. package/dist/api/fs.d.ts +78 -0
  26. package/dist/api/fs.d.ts.map +1 -0
  27. package/dist/api/fs.js +70 -0
  28. package/dist/api/fs.js.map +1 -0
  29. package/dist/api/fsCallbacks.d.ts +27 -0
  30. package/dist/api/fsCallbacks.d.ts.map +1 -0
  31. package/dist/api/fsCallbacks.js +111 -0
  32. package/dist/api/fsCallbacks.js.map +1 -0
  33. package/dist/api/node/encoder.d.ts +18 -0
  34. package/dist/api/node/encoder.d.ts.map +1 -0
  35. package/dist/api/node/encoder.generated.d.ts +5 -0
  36. package/dist/api/node/encoder.generated.d.ts.map +1 -0
  37. package/dist/api/node/encoder.generated.js +74 -0
  38. package/dist/api/node/encoder.generated.js.map +1 -0
  39. package/dist/api/node/encoder.js +292 -0
  40. package/dist/api/node/encoder.js.map +1 -0
  41. package/dist/api/node/msgpack.d.ts +32 -0
  42. package/dist/api/node/msgpack.d.ts.map +1 -0
  43. package/dist/api/node/msgpack.js +212 -0
  44. package/dist/api/node/msgpack.js.map +1 -0
  45. package/dist/api/node/node.d.ts +102 -0
  46. package/dist/api/node/node.d.ts.map +1 -0
  47. package/dist/api/node/node.generated.d.ts +189 -0
  48. package/dist/api/node/node.generated.d.ts.map +1 -0
  49. package/dist/api/node/node.generated.js +884 -0
  50. package/dist/api/node/node.generated.js.map +1 -0
  51. package/dist/api/node/node.infrastructure.d.ts +64 -0
  52. package/dist/api/node/node.infrastructure.d.ts.map +1 -0
  53. package/dist/api/node/node.infrastructure.js +102 -0
  54. package/dist/api/node/node.infrastructure.js.map +1 -0
  55. package/dist/api/node/node.js +454 -0
  56. package/dist/api/node/node.js.map +1 -0
  57. package/dist/api/node/protocol.d.ts +32 -0
  58. package/dist/api/node/protocol.d.ts.map +1 -0
  59. package/dist/api/node/protocol.generated.d.ts +4 -0
  60. package/dist/api/node/protocol.generated.d.ts.map +1 -0
  61. package/dist/api/node/protocol.generated.js +241 -0
  62. package/dist/api/node/protocol.generated.js.map +1 -0
  63. package/dist/api/node/protocol.js +33 -0
  64. package/dist/api/node/protocol.js.map +1 -0
  65. package/dist/api/node/wtf8.d.ts +10 -0
  66. package/dist/api/node/wtf8.d.ts.map +1 -0
  67. package/dist/api/node/wtf8.js +130 -0
  68. package/dist/api/node/wtf8.js.map +1 -0
  69. package/dist/api/options.d.ts +41 -0
  70. package/dist/api/options.d.ts.map +1 -0
  71. package/dist/api/options.js +32 -0
  72. package/dist/api/options.js.map +1 -0
  73. package/dist/api/path.d.ts +149 -0
  74. package/dist/api/path.d.ts.map +1 -0
  75. package/dist/api/path.js +884 -0
  76. package/dist/api/path.js.map +1 -0
  77. package/dist/api/prepareCompilerOptions.generated.d.ts +5 -0
  78. package/dist/api/prepareCompilerOptions.generated.d.ts.map +1 -0
  79. package/dist/api/prepareCompilerOptions.generated.js +24 -0
  80. package/dist/api/prepareCompilerOptions.generated.js.map +1 -0
  81. package/dist/api/proto.d.ts +95 -0
  82. package/dist/api/proto.d.ts.map +1 -0
  83. package/dist/api/proto.generated.d.ts +1423 -0
  84. package/dist/api/proto.generated.d.ts.map +1 -0
  85. package/dist/api/proto.generated.js +21 -0
  86. package/dist/api/proto.generated.js.map +1 -0
  87. package/dist/api/proto.js +65 -0
  88. package/dist/api/proto.js.map +1 -0
  89. package/dist/api/sourceFileCache.d.ts +110 -0
  90. package/dist/api/sourceFileCache.d.ts.map +1 -0
  91. package/dist/api/sourceFileCache.js +300 -0
  92. package/dist/api/sourceFileCache.js.map +1 -0
  93. package/dist/api/sync/api.d.ts +1729 -0
  94. package/dist/api/sync/api.d.ts.map +1 -0
  95. package/dist/api/sync/api.js +5484 -0
  96. package/dist/api/sync/api.js.map +1 -0
  97. package/dist/api/sync/client.d.ts +34 -0
  98. package/dist/api/sync/client.d.ts.map +1 -0
  99. package/dist/api/sync/client.js +148 -0
  100. package/dist/api/sync/client.js.map +1 -0
  101. package/dist/api/sync/generatorSupport.d.ts +32 -0
  102. package/dist/api/sync/generatorSupport.d.ts.map +1 -0
  103. package/dist/api/sync/generatorSupport.js +323 -0
  104. package/dist/api/sync/generatorSupport.js.map +1 -0
  105. package/dist/api/sync/types.d.ts +502 -0
  106. package/dist/api/sync/types.d.ts.map +1 -0
  107. package/dist/api/sync/types.js +2 -0
  108. package/dist/api/sync/types.js.map +1 -0
  109. package/dist/api/syncChannel.d.ts +115 -0
  110. package/dist/api/syncChannel.d.ts.map +1 -0
  111. package/dist/api/syncChannel.js +511 -0
  112. package/dist/api/syncChannel.js.map +1 -0
  113. package/dist/api/timing.d.ts +175 -0
  114. package/dist/api/timing.d.ts.map +1 -0
  115. package/dist/api/timing.js +149 -0
  116. package/dist/api/timing.js.map +1 -0
  117. package/dist/api/typedPaths.d.ts +3 -0
  118. package/dist/api/typedPaths.d.ts.map +1 -0
  119. package/dist/api/typedPaths.js +2 -0
  120. package/dist/api/typedPaths.js.map +1 -0
  121. package/dist/api/userPreferences.generated.d.ts +195 -0
  122. package/dist/api/userPreferences.generated.d.ts.map +1 -0
  123. package/dist/api/userPreferences.generated.js +3 -0
  124. package/dist/api/userPreferences.generated.js.map +1 -0
  125. package/dist/ast/ast.d.ts +186 -0
  126. package/dist/ast/ast.d.ts.map +1 -0
  127. package/dist/ast/ast.generated.d.ts +1167 -0
  128. package/dist/ast/ast.generated.d.ts.map +1 -0
  129. package/dist/ast/ast.generated.js +4 -0
  130. package/dist/ast/ast.generated.js.map +1 -0
  131. package/dist/ast/ast.js +7 -0
  132. package/dist/ast/ast.js.map +1 -0
  133. package/dist/ast/astnav.d.ts +22 -0
  134. package/dist/ast/astnav.d.ts.map +1 -0
  135. package/dist/ast/astnav.js +741 -0
  136. package/dist/ast/astnav.js.map +1 -0
  137. package/dist/ast/clone.d.ts +16 -0
  138. package/dist/ast/clone.d.ts.map +1 -0
  139. package/dist/ast/clone.js +104 -0
  140. package/dist/ast/clone.js.map +1 -0
  141. package/dist/ast/factory.generated.d.ts +533 -0
  142. package/dist/ast/factory.generated.d.ts.map +1 -0
  143. package/dist/ast/factory.generated.js +5750 -0
  144. package/dist/ast/factory.generated.js.map +1 -0
  145. package/dist/ast/index.d.ts +25 -0
  146. package/dist/ast/index.d.ts.map +1 -0
  147. package/dist/ast/index.js +25 -0
  148. package/dist/ast/index.js.map +1 -0
  149. package/dist/ast/is.d.ts +36 -0
  150. package/dist/ast/is.d.ts.map +1 -0
  151. package/dist/ast/is.generated.d.ts +1217 -0
  152. package/dist/ast/is.generated.d.ts.map +1 -0
  153. package/dist/ast/is.generated.js +1400 -0
  154. package/dist/ast/is.generated.js.map +1 -0
  155. package/dist/ast/is.js +456 -0
  156. package/dist/ast/is.js.map +1 -0
  157. package/dist/ast/jsdoc.d.ts +12 -0
  158. package/dist/ast/jsdoc.d.ts.map +1 -0
  159. package/dist/ast/jsdoc.js +208 -0
  160. package/dist/ast/jsdoc.js.map +1 -0
  161. package/dist/ast/modifiers.d.ts +4 -0
  162. package/dist/ast/modifiers.d.ts.map +1 -0
  163. package/dist/ast/modifiers.js +41 -0
  164. package/dist/ast/modifiers.js.map +1 -0
  165. package/dist/ast/scanner.d.ts +97 -0
  166. package/dist/ast/scanner.d.ts.map +1 -0
  167. package/dist/ast/scanner.js +2231 -0
  168. package/dist/ast/scanner.js.map +1 -0
  169. package/dist/ast/spanMap.d.ts +88 -0
  170. package/dist/ast/spanMap.d.ts.map +1 -0
  171. package/dist/ast/spanMap.js +417 -0
  172. package/dist/ast/spanMap.js.map +1 -0
  173. package/dist/ast/utils.d.ts +30 -0
  174. package/dist/ast/utils.d.ts.map +1 -0
  175. package/dist/ast/utils.js +318 -0
  176. package/dist/ast/utils.js.map +1 -0
  177. package/dist/ast/visitor.d.ts +16 -0
  178. package/dist/ast/visitor.d.ts.map +1 -0
  179. package/dist/ast/visitor.generated.d.ts +50 -0
  180. package/dist/ast/visitor.generated.d.ts.map +1 -0
  181. package/dist/ast/visitor.generated.js +979 -0
  182. package/dist/ast/visitor.generated.js.map +1 -0
  183. package/dist/ast/visitor.js +87 -0
  184. package/dist/ast/visitor.js.map +1 -0
  185. package/dist/enums/caseSensitivity.d.ts +2 -0
  186. package/dist/enums/caseSensitivity.d.ts.map +1 -0
  187. package/dist/enums/caseSensitivity.enum.d.ts +5 -0
  188. package/dist/enums/caseSensitivity.enum.d.ts.map +1 -0
  189. package/dist/enums/caseSensitivity.enum.js +7 -0
  190. package/dist/enums/caseSensitivity.enum.js.map +1 -0
  191. package/dist/enums/caseSensitivity.js +7 -0
  192. package/dist/enums/caseSensitivity.js.map +1 -0
  193. package/dist/enums/characterCodes.d.ts +2 -0
  194. package/dist/enums/characterCodes.d.ts.map +1 -0
  195. package/dist/enums/characterCodes.enum.d.ts +129 -0
  196. package/dist/enums/characterCodes.enum.d.ts.map +1 -0
  197. package/dist/enums/characterCodes.enum.js +132 -0
  198. package/dist/enums/characterCodes.enum.js.map +1 -0
  199. package/dist/enums/characterCodes.js +130 -0
  200. package/dist/enums/characterCodes.js.map +1 -0
  201. package/dist/enums/checkFlags.d.ts +2 -0
  202. package/dist/enums/checkFlags.d.ts.map +1 -0
  203. package/dist/enums/checkFlags.enum.d.ts +34 -0
  204. package/dist/enums/checkFlags.enum.d.ts.map +1 -0
  205. package/dist/enums/checkFlags.enum.js +36 -0
  206. package/dist/enums/checkFlags.enum.js.map +1 -0
  207. package/dist/enums/checkFlags.js +36 -0
  208. package/dist/enums/checkFlags.js.map +1 -0
  209. package/dist/enums/commentDirectiveType.d.ts +2 -0
  210. package/dist/enums/commentDirectiveType.d.ts.map +1 -0
  211. package/dist/enums/commentDirectiveType.enum.d.ts +5 -0
  212. package/dist/enums/commentDirectiveType.enum.d.ts.map +1 -0
  213. package/dist/enums/commentDirectiveType.enum.js +6 -0
  214. package/dist/enums/commentDirectiveType.enum.js.map +1 -0
  215. package/dist/enums/commentDirectiveType.js +6 -0
  216. package/dist/enums/commentDirectiveType.js.map +1 -0
  217. package/dist/enums/completionItemKind.d.ts +2 -0
  218. package/dist/enums/completionItemKind.d.ts.map +1 -0
  219. package/dist/enums/completionItemKind.enum.d.ts +28 -0
  220. package/dist/enums/completionItemKind.enum.d.ts.map +1 -0
  221. package/dist/enums/completionItemKind.enum.js +30 -0
  222. package/dist/enums/completionItemKind.enum.js.map +1 -0
  223. package/dist/enums/completionItemKind.js +30 -0
  224. package/dist/enums/completionItemKind.js.map +1 -0
  225. package/dist/enums/diagnosticCategory.d.ts +2 -0
  226. package/dist/enums/diagnosticCategory.d.ts.map +1 -0
  227. package/dist/enums/diagnosticCategory.enum.d.ts +7 -0
  228. package/dist/enums/diagnosticCategory.enum.d.ts.map +1 -0
  229. package/dist/enums/diagnosticCategory.enum.js +9 -0
  230. package/dist/enums/diagnosticCategory.enum.js.map +1 -0
  231. package/dist/enums/diagnosticCategory.js +9 -0
  232. package/dist/enums/diagnosticCategory.js.map +1 -0
  233. package/dist/enums/diagnosticDirectivePolicy.d.ts +2 -0
  234. package/dist/enums/diagnosticDirectivePolicy.d.ts.map +1 -0
  235. package/dist/enums/diagnosticDirectivePolicy.enum.d.ts +5 -0
  236. package/dist/enums/diagnosticDirectivePolicy.enum.d.ts.map +1 -0
  237. package/dist/enums/diagnosticDirectivePolicy.enum.js +7 -0
  238. package/dist/enums/diagnosticDirectivePolicy.enum.js.map +1 -0
  239. package/dist/enums/diagnosticDirectivePolicy.js +7 -0
  240. package/dist/enums/diagnosticDirectivePolicy.js.map +1 -0
  241. package/dist/enums/elementFlags.d.ts +2 -0
  242. package/dist/enums/elementFlags.d.ts.map +1 -0
  243. package/dist/enums/elementFlags.enum.d.ts +12 -0
  244. package/dist/enums/elementFlags.enum.d.ts.map +1 -0
  245. package/dist/enums/elementFlags.enum.js +14 -0
  246. package/dist/enums/elementFlags.enum.js.map +1 -0
  247. package/dist/enums/elementFlags.js +14 -0
  248. package/dist/enums/elementFlags.js.map +1 -0
  249. package/dist/enums/emitOnly.d.ts +2 -0
  250. package/dist/enums/emitOnly.d.ts.map +1 -0
  251. package/dist/enums/emitOnly.enum.d.ts +6 -0
  252. package/dist/enums/emitOnly.enum.d.ts.map +1 -0
  253. package/dist/enums/emitOnly.enum.js +8 -0
  254. package/dist/enums/emitOnly.enum.js.map +1 -0
  255. package/dist/enums/emitOnly.js +8 -0
  256. package/dist/enums/emitOnly.js.map +1 -0
  257. package/dist/enums/indexKind.d.ts +2 -0
  258. package/dist/enums/indexKind.d.ts.map +1 -0
  259. package/dist/enums/indexKind.enum.d.ts +5 -0
  260. package/dist/enums/indexKind.enum.d.ts.map +1 -0
  261. package/dist/enums/indexKind.enum.js +7 -0
  262. package/dist/enums/indexKind.enum.js.map +1 -0
  263. package/dist/enums/indexKind.js +7 -0
  264. package/dist/enums/indexKind.js.map +1 -0
  265. package/dist/enums/internalSymbolName.d.ts +2 -0
  266. package/dist/enums/internalSymbolName.d.ts.map +1 -0
  267. package/dist/enums/internalSymbolName.enum.d.ts +23 -0
  268. package/dist/enums/internalSymbolName.enum.d.ts.map +1 -0
  269. package/dist/enums/internalSymbolName.enum.js +25 -0
  270. package/dist/enums/internalSymbolName.enum.js.map +1 -0
  271. package/dist/enums/internalSymbolName.js +25 -0
  272. package/dist/enums/internalSymbolName.js.map +1 -0
  273. package/dist/enums/jsDeclarationKind.d.ts +2 -0
  274. package/dist/enums/jsDeclarationKind.d.ts.map +1 -0
  275. package/dist/enums/jsDeclarationKind.enum.d.ts +10 -0
  276. package/dist/enums/jsDeclarationKind.enum.d.ts.map +1 -0
  277. package/dist/enums/jsDeclarationKind.enum.js +12 -0
  278. package/dist/enums/jsDeclarationKind.enum.js.map +1 -0
  279. package/dist/enums/jsDeclarationKind.js +12 -0
  280. package/dist/enums/jsDeclarationKind.js.map +1 -0
  281. package/dist/enums/jsxEmit.d.ts +2 -0
  282. package/dist/enums/jsxEmit.d.ts.map +1 -0
  283. package/dist/enums/jsxEmit.enum.d.ts +9 -0
  284. package/dist/enums/jsxEmit.enum.d.ts.map +1 -0
  285. package/dist/enums/jsxEmit.enum.js +11 -0
  286. package/dist/enums/jsxEmit.enum.js.map +1 -0
  287. package/dist/enums/jsxEmit.js +11 -0
  288. package/dist/enums/jsxEmit.js.map +1 -0
  289. package/dist/enums/languageVariant.d.ts +2 -0
  290. package/dist/enums/languageVariant.d.ts.map +1 -0
  291. package/dist/enums/languageVariant.enum.d.ts +5 -0
  292. package/dist/enums/languageVariant.enum.d.ts.map +1 -0
  293. package/dist/enums/languageVariant.enum.js +6 -0
  294. package/dist/enums/languageVariant.enum.js.map +1 -0
  295. package/dist/enums/languageVariant.js +6 -0
  296. package/dist/enums/languageVariant.js.map +1 -0
  297. package/dist/enums/modifierFlags.d.ts +2 -0
  298. package/dist/enums/modifierFlags.d.ts.map +1 -0
  299. package/dist/enums/modifierFlags.enum.d.ts +42 -0
  300. package/dist/enums/modifierFlags.enum.d.ts.map +1 -0
  301. package/dist/enums/modifierFlags.enum.js +44 -0
  302. package/dist/enums/modifierFlags.enum.js.map +1 -0
  303. package/dist/enums/modifierFlags.js +44 -0
  304. package/dist/enums/modifierFlags.js.map +1 -0
  305. package/dist/enums/moduleDetectionKind.d.ts +2 -0
  306. package/dist/enums/moduleDetectionKind.d.ts.map +1 -0
  307. package/dist/enums/moduleDetectionKind.enum.d.ts +7 -0
  308. package/dist/enums/moduleDetectionKind.enum.d.ts.map +1 -0
  309. package/dist/enums/moduleDetectionKind.enum.js +9 -0
  310. package/dist/enums/moduleDetectionKind.enum.js.map +1 -0
  311. package/dist/enums/moduleDetectionKind.js +9 -0
  312. package/dist/enums/moduleDetectionKind.js.map +1 -0
  313. package/dist/enums/moduleKind.d.ts +2 -0
  314. package/dist/enums/moduleKind.d.ts.map +1 -0
  315. package/dist/enums/moduleKind.enum.d.ts +17 -0
  316. package/dist/enums/moduleKind.enum.d.ts.map +1 -0
  317. package/dist/enums/moduleKind.enum.js +19 -0
  318. package/dist/enums/moduleKind.enum.js.map +1 -0
  319. package/dist/enums/moduleKind.js +19 -0
  320. package/dist/enums/moduleKind.js.map +1 -0
  321. package/dist/enums/moduleResolutionKind.d.ts +2 -0
  322. package/dist/enums/moduleResolutionKind.d.ts.map +1 -0
  323. package/dist/enums/moduleResolutionKind.enum.d.ts +9 -0
  324. package/dist/enums/moduleResolutionKind.enum.d.ts.map +1 -0
  325. package/dist/enums/moduleResolutionKind.enum.js +11 -0
  326. package/dist/enums/moduleResolutionKind.enum.js.map +1 -0
  327. package/dist/enums/moduleResolutionKind.js +11 -0
  328. package/dist/enums/moduleResolutionKind.js.map +1 -0
  329. package/dist/enums/newLineKind.d.ts +2 -0
  330. package/dist/enums/newLineKind.d.ts.map +1 -0
  331. package/dist/enums/newLineKind.enum.d.ts +6 -0
  332. package/dist/enums/newLineKind.enum.d.ts.map +1 -0
  333. package/dist/enums/newLineKind.enum.js +8 -0
  334. package/dist/enums/newLineKind.enum.js.map +1 -0
  335. package/dist/enums/newLineKind.js +8 -0
  336. package/dist/enums/newLineKind.js.map +1 -0
  337. package/dist/enums/nodeBuilderFlags.d.ts +2 -0
  338. package/dist/enums/nodeBuilderFlags.d.ts.map +1 -0
  339. package/dist/enums/nodeBuilderFlags.enum.d.ts +36 -0
  340. package/dist/enums/nodeBuilderFlags.enum.d.ts.map +1 -0
  341. package/dist/enums/nodeBuilderFlags.enum.js +38 -0
  342. package/dist/enums/nodeBuilderFlags.enum.js.map +1 -0
  343. package/dist/enums/nodeBuilderFlags.js +38 -0
  344. package/dist/enums/nodeBuilderFlags.js.map +1 -0
  345. package/dist/enums/nodeFlags.d.ts +2 -0
  346. package/dist/enums/nodeFlags.d.ts.map +1 -0
  347. package/dist/enums/nodeFlags.enum.d.ts +44 -0
  348. package/dist/enums/nodeFlags.enum.d.ts.map +1 -0
  349. package/dist/enums/nodeFlags.enum.js +46 -0
  350. package/dist/enums/nodeFlags.enum.js.map +1 -0
  351. package/dist/enums/nodeFlags.js +46 -0
  352. package/dist/enums/nodeFlags.js.map +1 -0
  353. package/dist/enums/objectFlags.d.ts +2 -0
  354. package/dist/enums/objectFlags.d.ts.map +1 -0
  355. package/dist/enums/objectFlags.enum.d.ts +51 -0
  356. package/dist/enums/objectFlags.enum.d.ts.map +1 -0
  357. package/dist/enums/objectFlags.enum.js +53 -0
  358. package/dist/enums/objectFlags.enum.js.map +1 -0
  359. package/dist/enums/objectFlags.js +53 -0
  360. package/dist/enums/objectFlags.js.map +1 -0
  361. package/dist/enums/outerExpressionKinds.d.ts +2 -0
  362. package/dist/enums/outerExpressionKinds.d.ts.map +1 -0
  363. package/dist/enums/outerExpressionKinds.enum.d.ts +16 -0
  364. package/dist/enums/outerExpressionKinds.enum.d.ts.map +1 -0
  365. package/dist/enums/outerExpressionKinds.enum.js +18 -0
  366. package/dist/enums/outerExpressionKinds.enum.js.map +1 -0
  367. package/dist/enums/outerExpressionKinds.js +18 -0
  368. package/dist/enums/outerExpressionKinds.js.map +1 -0
  369. package/dist/enums/regularExpressionFlags.d.ts +2 -0
  370. package/dist/enums/regularExpressionFlags.d.ts.map +1 -0
  371. package/dist/enums/regularExpressionFlags.enum.d.ts +13 -0
  372. package/dist/enums/regularExpressionFlags.enum.d.ts.map +1 -0
  373. package/dist/enums/regularExpressionFlags.enum.js +14 -0
  374. package/dist/enums/regularExpressionFlags.enum.js.map +1 -0
  375. package/dist/enums/regularExpressionFlags.js +14 -0
  376. package/dist/enums/regularExpressionFlags.js.map +1 -0
  377. package/dist/enums/scriptKind.d.ts +2 -0
  378. package/dist/enums/scriptKind.d.ts.map +1 -0
  379. package/dist/enums/scriptKind.enum.d.ts +9 -0
  380. package/dist/enums/scriptKind.enum.d.ts.map +1 -0
  381. package/dist/enums/scriptKind.enum.js +11 -0
  382. package/dist/enums/scriptKind.enum.js.map +1 -0
  383. package/dist/enums/scriptKind.js +11 -0
  384. package/dist/enums/scriptKind.js.map +1 -0
  385. package/dist/enums/scriptTarget.d.ts +2 -0
  386. package/dist/enums/scriptTarget.d.ts.map +1 -0
  387. package/dist/enums/scriptTarget.enum.d.ts +18 -0
  388. package/dist/enums/scriptTarget.enum.d.ts.map +1 -0
  389. package/dist/enums/scriptTarget.enum.js +20 -0
  390. package/dist/enums/scriptTarget.enum.js.map +1 -0
  391. package/dist/enums/scriptTarget.js +20 -0
  392. package/dist/enums/scriptTarget.js.map +1 -0
  393. package/dist/enums/signatureFlags.d.ts +2 -0
  394. package/dist/enums/signatureFlags.d.ts.map +1 -0
  395. package/dist/enums/signatureFlags.enum.d.ts +15 -0
  396. package/dist/enums/signatureFlags.enum.d.ts.map +1 -0
  397. package/dist/enums/signatureFlags.enum.js +17 -0
  398. package/dist/enums/signatureFlags.enum.js.map +1 -0
  399. package/dist/enums/signatureFlags.js +17 -0
  400. package/dist/enums/signatureFlags.js.map +1 -0
  401. package/dist/enums/signatureKind.d.ts +2 -0
  402. package/dist/enums/signatureKind.d.ts.map +1 -0
  403. package/dist/enums/signatureKind.enum.d.ts +5 -0
  404. package/dist/enums/signatureKind.enum.d.ts.map +1 -0
  405. package/dist/enums/signatureKind.enum.js +7 -0
  406. package/dist/enums/signatureKind.enum.js.map +1 -0
  407. package/dist/enums/signatureKind.js +7 -0
  408. package/dist/enums/signatureKind.js.map +1 -0
  409. package/dist/enums/spanMapFeature.d.ts +2 -0
  410. package/dist/enums/spanMapFeature.d.ts.map +1 -0
  411. package/dist/enums/spanMapFeature.enum.d.ts +25 -0
  412. package/dist/enums/spanMapFeature.enum.d.ts.map +1 -0
  413. package/dist/enums/spanMapFeature.enum.js +27 -0
  414. package/dist/enums/spanMapFeature.enum.js.map +1 -0
  415. package/dist/enums/spanMapFeature.js +27 -0
  416. package/dist/enums/spanMapFeature.js.map +1 -0
  417. package/dist/enums/spanMapFidelity.d.ts +2 -0
  418. package/dist/enums/spanMapFidelity.d.ts.map +1 -0
  419. package/dist/enums/spanMapFidelity.enum.d.ts +7 -0
  420. package/dist/enums/spanMapFidelity.enum.d.ts.map +1 -0
  421. package/dist/enums/spanMapFidelity.enum.js +9 -0
  422. package/dist/enums/spanMapFidelity.enum.js.map +1 -0
  423. package/dist/enums/spanMapFidelity.js +9 -0
  424. package/dist/enums/spanMapFidelity.js.map +1 -0
  425. package/dist/enums/spanMapKind.d.ts +2 -0
  426. package/dist/enums/spanMapKind.d.ts.map +1 -0
  427. package/dist/enums/spanMapKind.enum.d.ts +6 -0
  428. package/dist/enums/spanMapKind.enum.d.ts.map +1 -0
  429. package/dist/enums/spanMapKind.enum.js +8 -0
  430. package/dist/enums/spanMapKind.enum.js.map +1 -0
  431. package/dist/enums/spanMapKind.js +8 -0
  432. package/dist/enums/spanMapKind.js.map +1 -0
  433. package/dist/enums/symbolFlags.d.ts +2 -0
  434. package/dist/enums/symbolFlags.d.ts.map +1 -0
  435. package/dist/enums/symbolFlags.enum.d.ts +70 -0
  436. package/dist/enums/symbolFlags.enum.d.ts.map +1 -0
  437. package/dist/enums/symbolFlags.enum.js +72 -0
  438. package/dist/enums/symbolFlags.enum.js.map +1 -0
  439. package/dist/enums/symbolFlags.js +72 -0
  440. package/dist/enums/symbolFlags.js.map +1 -0
  441. package/dist/enums/symbolOwnerKind.d.ts +2 -0
  442. package/dist/enums/symbolOwnerKind.d.ts.map +1 -0
  443. package/dist/enums/symbolOwnerKind.enum.d.ts +5 -0
  444. package/dist/enums/symbolOwnerKind.enum.d.ts.map +1 -0
  445. package/dist/enums/symbolOwnerKind.enum.js +7 -0
  446. package/dist/enums/symbolOwnerKind.enum.js.map +1 -0
  447. package/dist/enums/symbolOwnerKind.js +7 -0
  448. package/dist/enums/symbolOwnerKind.js.map +1 -0
  449. package/dist/enums/syntaxKind.d.ts +2 -0
  450. package/dist/enums/syntaxKind.d.ts.map +1 -0
  451. package/dist/enums/syntaxKind.enum.d.ts +390 -0
  452. package/dist/enums/syntaxKind.enum.d.ts.map +1 -0
  453. package/dist/enums/syntaxKind.enum.js +392 -0
  454. package/dist/enums/syntaxKind.enum.js.map +1 -0
  455. package/dist/enums/syntaxKind.js +392 -0
  456. package/dist/enums/syntaxKind.js.map +1 -0
  457. package/dist/enums/tokenFlags.d.ts +2 -0
  458. package/dist/enums/tokenFlags.d.ts.map +1 -0
  459. package/dist/enums/tokenFlags.enum.d.ts +30 -0
  460. package/dist/enums/tokenFlags.enum.d.ts.map +1 -0
  461. package/dist/enums/tokenFlags.enum.js +32 -0
  462. package/dist/enums/tokenFlags.enum.js.map +1 -0
  463. package/dist/enums/tokenFlags.js +32 -0
  464. package/dist/enums/tokenFlags.js.map +1 -0
  465. package/dist/enums/typeFlags.d.ts +2 -0
  466. package/dist/enums/typeFlags.d.ts.map +1 -0
  467. package/dist/enums/typeFlags.enum.d.ts +76 -0
  468. package/dist/enums/typeFlags.enum.d.ts.map +1 -0
  469. package/dist/enums/typeFlags.enum.js +78 -0
  470. package/dist/enums/typeFlags.enum.js.map +1 -0
  471. package/dist/enums/typeFlags.js +78 -0
  472. package/dist/enums/typeFlags.js.map +1 -0
  473. package/dist/enums/typeFormatFlags.d.ts +2 -0
  474. package/dist/enums/typeFormatFlags.d.ts.map +1 -0
  475. package/dist/enums/typeFormatFlags.enum.d.ts +29 -0
  476. package/dist/enums/typeFormatFlags.enum.d.ts.map +1 -0
  477. package/dist/enums/typeFormatFlags.enum.js +31 -0
  478. package/dist/enums/typeFormatFlags.enum.js.map +1 -0
  479. package/dist/enums/typeFormatFlags.js +31 -0
  480. package/dist/enums/typeFormatFlags.js.map +1 -0
  481. package/dist/enums/typePredicateKind.d.ts +2 -0
  482. package/dist/enums/typePredicateKind.d.ts.map +1 -0
  483. package/dist/enums/typePredicateKind.enum.d.ts +7 -0
  484. package/dist/enums/typePredicateKind.enum.d.ts.map +1 -0
  485. package/dist/enums/typePredicateKind.enum.js +9 -0
  486. package/dist/enums/typePredicateKind.enum.js.map +1 -0
  487. package/dist/enums/typePredicateKind.js +9 -0
  488. package/dist/enums/typePredicateKind.js.map +1 -0
  489. package/dist/internal/utils.d.ts +23 -0
  490. package/dist/internal/utils.d.ts.map +1 -0
  491. package/dist/internal/utils.js +25 -0
  492. package/dist/internal/utils.js.map +1 -0
  493. package/dist/vscode/extensionApi.d.ts +100 -0
  494. package/dist/vscode/extensionApi.d.ts.map +1 -0
  495. package/dist/vscode/extensionApi.js +2 -0
  496. package/dist/vscode/extensionApi.js.map +1 -0
  497. package/dist/vscode/moduleLoader.d.ts +14 -0
  498. package/dist/vscode/moduleLoader.d.ts.map +1 -0
  499. package/dist/vscode/moduleLoader.js +36 -0
  500. package/dist/vscode/moduleLoader.js.map +1 -0
  501. package/dist/vscode/protocol.generated.d.ts +2886 -0
  502. package/dist/vscode/protocol.generated.d.ts.map +1 -0
  503. package/dist/vscode/protocol.generated.js +4 -0
  504. package/dist/vscode/protocol.generated.js.map +1 -0
  505. package/lib/getExePath.d.ts +2 -0
  506. package/lib/getExePath.js +70 -0
  507. package/lib/install.js +108 -0
  508. package/lib/tsc.js +28 -0
  509. package/lib/version.cjs +5 -0
  510. package/lib/version.d.cts +2 -0
  511. package/package.json +79 -6
  512. package/schemas/jsconfig.schema.json +2207 -0
  513. package/schemas/tsconfig.schema.json +2206 -0
  514. package/vendor/vscode-jsonrpc/License.txt +11 -0
  515. package/vendor/vscode-jsonrpc/README.md +54 -0
  516. package/vendor/vscode-jsonrpc/lib/browser/main.d.ts +17 -0
  517. package/vendor/vscode-jsonrpc/lib/browser/main.js +83 -0
  518. package/vendor/vscode-jsonrpc/lib/browser/ril.d.ts +22 -0
  519. package/vendor/vscode-jsonrpc/lib/browser/ril.js +210 -0
  520. package/vendor/vscode-jsonrpc/lib/common/api.d.ts +14 -0
  521. package/vendor/vscode-jsonrpc/lib/common/api.js +87 -0
  522. package/vendor/vscode-jsonrpc/lib/common/cancellation.d.ts +32 -0
  523. package/vendor/vscode-jsonrpc/lib/common/cancellation.js +132 -0
  524. package/vendor/vscode-jsonrpc/lib/common/connection.d.ts +367 -0
  525. package/vendor/vscode-jsonrpc/lib/common/connection.js +1271 -0
  526. package/vendor/vscode-jsonrpc/lib/common/disposable.d.ts +9 -0
  527. package/vendor/vscode-jsonrpc/lib/common/disposable.js +16 -0
  528. package/vendor/vscode-jsonrpc/lib/common/encoding.d.ts +52 -0
  529. package/vendor/vscode-jsonrpc/lib/common/encoding.js +70 -0
  530. package/vendor/vscode-jsonrpc/lib/common/events.d.ts +39 -0
  531. package/vendor/vscode-jsonrpc/lib/common/events.js +135 -0
  532. package/vendor/vscode-jsonrpc/lib/common/is.d.ts +7 -0
  533. package/vendor/vscode-jsonrpc/lib/common/is.js +34 -0
  534. package/vendor/vscode-jsonrpc/lib/common/linkedMap.d.ts +55 -0
  535. package/vendor/vscode-jsonrpc/lib/common/linkedMap.js +412 -0
  536. package/vendor/vscode-jsonrpc/lib/common/messageBuffer.d.ts +18 -0
  537. package/vendor/vscode-jsonrpc/lib/common/messageBuffer.js +155 -0
  538. package/vendor/vscode-jsonrpc/lib/common/messageReader.d.ts +77 -0
  539. package/vendor/vscode-jsonrpc/lib/common/messageReader.js +246 -0
  540. package/vendor/vscode-jsonrpc/lib/common/messageWriter.d.ts +60 -0
  541. package/vendor/vscode-jsonrpc/lib/common/messageWriter.js +157 -0
  542. package/vendor/vscode-jsonrpc/lib/common/messages.d.ts +369 -0
  543. package/vendor/vscode-jsonrpc/lib/common/messages.js +436 -0
  544. package/vendor/vscode-jsonrpc/lib/common/ral.d.ts +74 -0
  545. package/vendor/vscode-jsonrpc/lib/common/ral.js +23 -0
  546. package/vendor/vscode-jsonrpc/lib/common/semaphore.d.ts +10 -0
  547. package/vendor/vscode-jsonrpc/lib/common/semaphore.js +74 -0
  548. package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.d.ts +15 -0
  549. package/vendor/vscode-jsonrpc/lib/common/sharedArrayCancellation.js +77 -0
  550. package/vendor/vscode-jsonrpc/lib/node/main.d.ts +58 -0
  551. package/vendor/vscode-jsonrpc/lib/node/main.js +289 -0
  552. package/vendor/vscode-jsonrpc/lib/node/ril.d.ts +12 -0
  553. package/vendor/vscode-jsonrpc/lib/node/ril.js +163 -0
  554. package/vendor/vscode-jsonrpc/package.json +54 -0
  555. package/vendor/vscode-jsonrpc/typings/thenable.d.ts +5 -0
@@ -0,0 +1,169 @@
1
+ import { convertToRelativePath } from "./path.js";
2
+ const foregroundColorEscapeGrey = "\x1b[90m";
3
+ const foregroundColorEscapeRed = "\x1b[91m";
4
+ const foregroundColorEscapeYellow = "\x1b[93m";
5
+ const foregroundColorEscapeBlue = "\x1b[94m";
6
+ const foregroundColorEscapeCyan = "\x1b[96m";
7
+ const gutterStyleSequence = "\x1b[7m";
8
+ const gutterSeparator = " ";
9
+ const resetEscapeSequence = "\x1b[0m";
10
+ const ellipsis = "...";
11
+ const halfIndent = " ";
12
+ const indent = " ";
13
+ const fileAppearsToBeBinaryCode = 1490;
14
+ function diagnosticCategoryName(category) {
15
+ switch (category) {
16
+ case 0:
17
+ return "warning";
18
+ case 1:
19
+ return "error";
20
+ case 2:
21
+ return "suggestion";
22
+ case 3:
23
+ return "message";
24
+ default:
25
+ throw new Error(`Unknown diagnostic category: ${category}`);
26
+ }
27
+ }
28
+ function getCategoryFormat(category) {
29
+ switch (category) {
30
+ case 0:
31
+ return foregroundColorEscapeYellow;
32
+ case 1:
33
+ return foregroundColorEscapeRed;
34
+ case 2:
35
+ return foregroundColorEscapeGrey;
36
+ case 3:
37
+ return foregroundColorEscapeBlue;
38
+ default:
39
+ throw new Error(`Unknown diagnostic category: ${category}`);
40
+ }
41
+ }
42
+ function formatColorAndReset(text, formatStyle) {
43
+ return formatStyle + text + resetEscapeSequence;
44
+ }
45
+ function diagnosticPrefix(diagnostic) {
46
+ return diagnostic.source || "TS";
47
+ }
48
+ function flattenDiagnosticMessage(diagnostic, newLine, indentLevel = 0) {
49
+ let result = "";
50
+ if (indentLevel) {
51
+ result += newLine + " ".repeat(indentLevel);
52
+ }
53
+ result += diagnostic.text;
54
+ for (const child of diagnostic.messageChain ?? []) {
55
+ result += flattenDiagnosticMessage(child, newLine, indentLevel + 1);
56
+ }
57
+ return result;
58
+ }
59
+ function relativeFileName(fileName, host) {
60
+ return convertToRelativePath(fileName, host.getCurrentDirectory(), name => host.getCanonicalFileName(name));
61
+ }
62
+ function formatLocation(diagnostic, host) {
63
+ if (!diagnostic.fileName || !diagnostic.startPosition)
64
+ return "";
65
+ const fileName = relativeFileName(diagnostic.fileName, host);
66
+ const { line, character } = diagnostic.startPosition;
67
+ return formatColorAndReset(fileName, foregroundColorEscapeCyan) +
68
+ ":" +
69
+ formatColorAndReset(`${line + 1}`, foregroundColorEscapeYellow) +
70
+ ":" +
71
+ formatColorAndReset(`${character + 1}`, foregroundColorEscapeYellow);
72
+ }
73
+ function formatCodeSpan(diagnostic, lineIndent, squiggleColor, host) {
74
+ const { startPosition, endPosition, sourceLines } = diagnostic;
75
+ if (!startPosition || !endPosition || !sourceLines?.length)
76
+ return "";
77
+ const endCharacter = startPosition.line === endPosition.line &&
78
+ startPosition.character === endPosition.character
79
+ ? endPosition.character + 1
80
+ : endPosition.character;
81
+ const hasMoreThanFiveLines = endPosition.line - startPosition.line >= 4;
82
+ const gutterWidth = hasMoreThanFiveLines
83
+ ? Math.max(ellipsis.length, `${endPosition.line + 1}`.length)
84
+ : `${endPosition.line + 1}`.length;
85
+ let context = "";
86
+ let previousLine;
87
+ for (const sourceLine of sourceLines) {
88
+ if (previousLine !== undefined && sourceLine.line > previousLine + 1) {
89
+ context += host.getNewLine();
90
+ context += lineIndent +
91
+ formatColorAndReset(ellipsis.padStart(gutterWidth), gutterStyleSequence) +
92
+ gutterSeparator;
93
+ }
94
+ const lineContent = sourceLine.text.trimEnd().replace(/\t/g, " ");
95
+ context += host.getNewLine();
96
+ context += lineIndent +
97
+ formatColorAndReset(`${sourceLine.line + 1}`.padStart(gutterWidth), gutterStyleSequence) +
98
+ gutterSeparator +
99
+ lineContent +
100
+ host.getNewLine();
101
+ context += lineIndent +
102
+ formatColorAndReset("".padStart(gutterWidth), gutterStyleSequence) +
103
+ gutterSeparator +
104
+ squiggleColor;
105
+ if (sourceLine.line === startPosition.line) {
106
+ const lastCharacter = sourceLine.line === endPosition.line
107
+ ? endCharacter
108
+ : lineContent.length;
109
+ context += " ".repeat(startPosition.character);
110
+ context += "~".repeat(Math.max(0, lastCharacter - startPosition.character));
111
+ }
112
+ else if (sourceLine.line === endPosition.line) {
113
+ context += "~".repeat(endCharacter);
114
+ }
115
+ else {
116
+ context += "~".repeat(lineContent.length);
117
+ }
118
+ context += resetEscapeSequence;
119
+ previousLine = sourceLine.line;
120
+ }
121
+ return context;
122
+ }
123
+ export function formatDiagnostics(diagnostics, host) {
124
+ let output = "";
125
+ for (const diagnostic of diagnostics) {
126
+ const errorMessage = `${diagnosticCategoryName(diagnostic.category)} ${diagnosticPrefix(diagnostic)}${diagnostic.code}: ${flattenDiagnosticMessage(diagnostic, host.getNewLine())}${host.getNewLine()}`;
127
+ if (diagnostic.fileName && diagnostic.startPosition) {
128
+ const { line, character } = diagnostic.startPosition;
129
+ output += `${relativeFileName(diagnostic.fileName, host)}(${line + 1},${character + 1}): ${errorMessage}`;
130
+ }
131
+ else {
132
+ output += errorMessage;
133
+ }
134
+ }
135
+ return output;
136
+ }
137
+ export function formatDiagnosticsWithColorAndContext(diagnostics, host) {
138
+ let output = "";
139
+ for (let i = 0; i < diagnostics.length; i++) {
140
+ if (i > 0) {
141
+ output += host.getNewLine();
142
+ }
143
+ const diagnostic = diagnostics[i];
144
+ if (diagnostic.fileName && diagnostic.startPosition) {
145
+ output += formatLocation(diagnostic, host) + " - ";
146
+ }
147
+ output += formatColorAndReset(diagnosticCategoryName(diagnostic.category), getCategoryFormat(diagnostic.category));
148
+ output += formatColorAndReset(` ${diagnosticPrefix(diagnostic)}${diagnostic.code}: `, foregroundColorEscapeGrey);
149
+ output += flattenDiagnosticMessage(diagnostic, host.getNewLine());
150
+ if (diagnostic.fileName && diagnostic.code !== fileAppearsToBeBinaryCode) {
151
+ output += host.getNewLine();
152
+ output += formatCodeSpan(diagnostic, "", getCategoryFormat(diagnostic.category), host);
153
+ output += host.getNewLine();
154
+ }
155
+ if (diagnostic.relatedInformation?.length) {
156
+ for (const related of diagnostic.relatedInformation) {
157
+ if (related.fileName && related.startPosition) {
158
+ output += host.getNewLine();
159
+ output += halfIndent + formatLocation(related, host);
160
+ output += " - " + flattenDiagnosticMessage(related, host.getNewLine());
161
+ output += formatCodeSpan(related, indent, foregroundColorEscapeCyan, host);
162
+ }
163
+ output += host.getNewLine();
164
+ }
165
+ }
166
+ }
167
+ return output;
168
+ }
169
+ //# sourceMappingURL=diagnosticFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnosticFormatter.js","sourceRoot":"","sources":["../../src/api/diagnosticFormatter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ import type { RootedDirectoryPath, RootedFilePath, RootedPath } from "../ast/index.ts";
2
+ import type { RequestDirectoryEntries, RequestFileSystem, RequestSymlink } from "./proto.generated.ts";
3
+ import { type DocumentIdentifier } from "./proto.ts";
4
+ export interface FileSystemEntries {
5
+ files: string[];
6
+ directories: string[];
7
+ /** Names from `files` or `directories` that are symbolic links. */
8
+ symlinks: string[] | undefined;
9
+ }
10
+ export interface FileSystemStat {
11
+ /** POSIX-style file mode, matching Node.js `fs.Stats.mode`. */
12
+ mode: number;
13
+ /** File size in bytes, matching Node.js `fs.Stats.size`. */
14
+ size: number;
15
+ /** Last modification time, matching Node.js `fs.Stats.mtime`. */
16
+ mtime: Date;
17
+ }
18
+ declare const useOS: unique symbol;
19
+ declare const identity: unique symbol;
20
+ declare const fakeStat: unique symbol;
21
+ declare const noop: unique symbol;
22
+ declare const error: unique symbol;
23
+ export declare const serverFS: {
24
+ /** Delegate the configured operation, or the current callback invocation, to the server's operating-system filesystem. */
25
+ readonly useOS: typeof useOS;
26
+ /** Use the input path as its own real path without consulting a filesystem. Valid only for `realpath`. */
27
+ readonly identity: typeof identity;
28
+ /** Synthesize stat information from `directoryExists` and `fileExists`. Valid only for `stat`. */
29
+ readonly fakeStat: typeof fakeStat;
30
+ /** Ignore writes without invoking a callback or writing to the server's operating-system filesystem. Valid only for `writeFile`. */
31
+ readonly noop: typeof noop;
32
+ /** Panic if the configured operation, or current callback invocation, reaches the server filesystem. */
33
+ readonly error: typeof error;
34
+ };
35
+ export interface FileSystemCallbacks {
36
+ directoryExists: ((directoryName: RootedDirectoryPath) => boolean | typeof serverFS.useOS | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.error;
37
+ fileExists: ((fileName: RootedFilePath) => boolean | typeof serverFS.useOS | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.error;
38
+ getAccessibleEntries: ((directoryName: RootedDirectoryPath) => FileSystemEntries | typeof serverFS.useOS | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.error;
39
+ /**
40
+ * Read a file's content.
41
+ * - Return the file content as a `string` (including `""` for empty files).
42
+ * - Return `undefined` to indicate the file does not exist.
43
+ * - Return {@link serverFS.useOS} to fall back to the server's operating-system filesystem.
44
+ */
45
+ readFile: ((fileName: RootedFilePath) => string | undefined | typeof serverFS.useOS | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.error;
46
+ /** Relative results are resolved against the queried path's directory by the server. */
47
+ realpath: ((path: RootedPath) => string | typeof serverFS.useOS | typeof serverFS.identity | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.identity | typeof serverFS.error;
48
+ stat: ((path: RootedPath) => FileSystemStat | undefined | typeof serverFS.useOS | typeof serverFS.fakeStat | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.fakeStat | typeof serverFS.error;
49
+ writeFile: ((path: RootedFilePath, content: string) => void | typeof serverFS.useOS | typeof serverFS.noop | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.noop | typeof serverFS.error;
50
+ removeFile: ((path: RootedPath) => void | typeof serverFS.useOS | typeof serverFS.noop | typeof serverFS.error) | typeof serverFS.useOS | typeof serverFS.noop | typeof serverFS.error;
51
+ }
52
+ export interface CreateFileSystemOptions {
53
+ /** Complete directory listings. Full filesystems derive these from `files` when omitted. */
54
+ directories?: Record<string, RequestDirectoryEntries> | undefined;
55
+ symlinks?: Record<string, RequestSymlink> | undefined;
56
+ /** Files or directory trees hidden from an underlying snapshot or host filesystem. */
57
+ removedPaths?: readonly string[] | undefined;
58
+ }
59
+ export interface CreateFileSystemWithLibOptions extends CreateFileSystemOptions {
60
+ /** Default library directory used by a custom or non-embedded compiler executable. */
61
+ defaultLibraryPath?: string | undefined;
62
+ }
63
+ /**
64
+ * Files supplied to a request filesystem. String identifiers are file names;
65
+ * use `{ uri }` when supplying a document URI so it can be decoded correctly.
66
+ */
67
+ export type RequestFileEntries = readonly (readonly [id: DocumentIdentifier, content: string])[];
68
+ /** Creates a full request filesystem. The server derives directory listings when omitted. */
69
+ export declare function createFileSystem(files: RequestFileEntries, options?: CreateFileSystemOptions): RequestFileSystem;
70
+ /**
71
+ * Creates a full request filesystem with the compiler's default library
72
+ * directory mounted read-only through the host filesystem.
73
+ */
74
+ export declare function createFileSystemWithLib(files: RequestFileEntries, options?: CreateFileSystemWithLibOptions): RequestFileSystem;
75
+ /** Creates a request filesystem layer, merging base directory listings when omitted. */
76
+ export declare function createFileSystemLayer(files: RequestFileEntries, options?: CreateFileSystemOptions): RequestFileSystem;
77
+ export {};
78
+ //# sourceMappingURL=fs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/api/fs.ts"],"names":[],"mappings":"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"}
package/dist/api/fs.js ADDED
@@ -0,0 +1,70 @@
1
+ import getExePath from "#getExePath";
2
+ import { dirname } from "node:path";
3
+ import { normalizePath } from "./path.js";
4
+ import { resolveFileName, } from "./proto.js";
5
+ const useOS = Symbol("useOS");
6
+ const identity = Symbol("identity");
7
+ const fakeStat = Symbol("fakeStat");
8
+ const noop = Symbol("noop");
9
+ const error = Symbol("error");
10
+ export const serverFS = {
11
+ useOS: useOS,
12
+ identity: identity,
13
+ fakeStat: fakeStat,
14
+ noop: noop,
15
+ error: error,
16
+ };
17
+ /** Creates a full request filesystem. The server derives directory listings when omitted. */
18
+ export function createFileSystem(files, options = {}) {
19
+ return createRequestFileSystem("full", files, options);
20
+ }
21
+ /**
22
+ * Creates a full request filesystem with the compiler's default library
23
+ * directory mounted read-only through the host filesystem.
24
+ */
25
+ export function createFileSystemWithLib(files, options = {}) {
26
+ const defaultLibraryPaths = options.defaultLibraryPath
27
+ ? [normalizePath(options.defaultLibraryPath)]
28
+ : [normalizePath("bundled:///libs")];
29
+ if (!options.defaultLibraryPath) {
30
+ try {
31
+ defaultLibraryPaths.push(normalizePath(dirname(getExePath())));
32
+ }
33
+ catch {
34
+ // A socket-connected embedded server can provide bundled libs without
35
+ // a locally installed compiler executable.
36
+ }
37
+ }
38
+ const symlinks = { ...options.symlinks };
39
+ for (const defaultLibraryPath of defaultLibraryPaths) {
40
+ symlinks[defaultLibraryPath] ??= { target: defaultLibraryPath, host: true };
41
+ }
42
+ return createRequestFileSystem("full", files, {
43
+ symlinks,
44
+ directories: options.directories,
45
+ removedPaths: options.removedPaths?.length ? options.removedPaths : undefined,
46
+ });
47
+ }
48
+ /** Creates a request filesystem layer, merging base directory listings when omitted. */
49
+ export function createFileSystemLayer(files, options = {}) {
50
+ return createRequestFileSystem("layer", files, options);
51
+ }
52
+ function createRequestFileSystem(kind, files, options) {
53
+ const normalizedFiles = new Map();
54
+ for (const [id, content] of files) {
55
+ const fileName = normalizePath(resolveFileName(id));
56
+ if (normalizedFiles.has(fileName)) {
57
+ throw new Error(`Duplicate request filesystem path: ${fileName}`);
58
+ }
59
+ normalizedFiles.set(fileName, content);
60
+ }
61
+ const fileRecord = Object.fromEntries(normalizedFiles);
62
+ return {
63
+ kind,
64
+ files: fileRecord,
65
+ directories: options.directories,
66
+ symlinks: options.symlinks,
67
+ removedPaths: options.removedPaths?.length ? [...options.removedPaths] : undefined,
68
+ };
69
+ }
70
+ //# sourceMappingURL=fs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/api/fs.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { type FileSystemCallbacks, serverFS } from "./fs.ts";
2
+ type ServerFSSentinelName = keyof typeof serverFS;
3
+ type ServerFSSentinel = typeof serverFS[ServerFSSentinelName];
4
+ type ServerFSSentinelResponse = {
5
+ [K in ServerFSSentinelName]: {
6
+ kind: K;
7
+ };
8
+ }[ServerFSSentinelName];
9
+ export type FileSystemCallbackResponse = {
10
+ kind: "value";
11
+ value?: unknown;
12
+ } | {
13
+ kind: "missing";
14
+ } | ServerFSSentinelResponse;
15
+ interface FileSystemCallbackDefinition {
16
+ serverFS: readonly ServerFSSentinel[];
17
+ }
18
+ declare const fileSystemCallbackTable: Record<keyof FileSystemCallbacks, FileSystemCallbackDefinition>;
19
+ type FileSystemCallbackName = keyof typeof fileSystemCallbackTable;
20
+ export interface FileSystemCallbackConfiguration {
21
+ callbackNames: FileSystemCallbackName[];
22
+ arguments: string[];
23
+ }
24
+ export declare function configureFileSystemCallbacks(fs: FileSystemCallbacks | undefined): FileSystemCallbackConfiguration;
25
+ export declare function encodeFileSystemCallbackResult(name: FileSystemCallbackName, result: unknown): FileSystemCallbackResponse;
26
+ export {};
27
+ //# sourceMappingURL=fsCallbacks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsCallbacks.d.ts","sourceRoot":"","sources":["../../src/api/fsCallbacks.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,KAAK,mBAAmB,EACxB,QAAQ,EACX,MAAM,SAAS,CAAC;AAEjB,KAAK,oBAAoB,GAAG,MAAM,OAAO,QAAQ,CAAC;AAClD,KAAK,gBAAgB,GAAG,OAAO,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC9D,KAAK,wBAAwB,GAAG;KAC3B,CAAC,IAAI,oBAAoB,GAAG;QAAE,IAAI,EAAE,CAAC,CAAC;KAAE;CAC5C,CAAC,oBAAoB,CAAC,CAAC;AAExB,MAAM,MAAM,0BAA0B,GAChC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAAE,GACnC;IAAE,IAAI,EAAE,SAAS,CAAC;CAAE,GACpB,wBAAwB,CAAC;AAE/B,UAAU,4BAA4B;IAClC,QAAQ,EAAE,SAAS,gBAAgB,EAAE,CAAC;CACzC;AAED,QAAA,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,mBAAmB,EAAE,4BAA4B,CAiB5F,CAAC;AAEF,KAAK,sBAAsB,GAAG,MAAM,OAAO,uBAAuB,CAAC;AAInE,MAAM,WAAW,+BAA+B;IAC5C,aAAa,EAAE,sBAAsB,EAAE,CAAC;IACxC,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,mBAAmB,GAAG,SAAS,GAAG,+BAA+B,CAyBjH;AAED,wBAAgB,8BAA8B,CAC1C,IAAI,EAAE,sBAAsB,EAC5B,MAAM,EAAE,OAAO,GAChB,0BAA0B,CAoD5B"}
@@ -0,0 +1,111 @@
1
+ import { serverFS, } from "./fs.js";
2
+ const fileSystemCallbackTable = {
3
+ readFile: { serverFS: [serverFS.useOS, serverFS.error] },
4
+ fileExists: { serverFS: [serverFS.useOS, serverFS.error] },
5
+ directoryExists: { serverFS: [serverFS.useOS, serverFS.error] },
6
+ getAccessibleEntries: { serverFS: [serverFS.useOS, serverFS.error] },
7
+ realpath: {
8
+ serverFS: [serverFS.useOS, serverFS.identity, serverFS.error],
9
+ },
10
+ stat: {
11
+ serverFS: [serverFS.useOS, serverFS.fakeStat, serverFS.error],
12
+ },
13
+ writeFile: {
14
+ serverFS: [serverFS.useOS, serverFS.noop, serverFS.error],
15
+ },
16
+ removeFile: {
17
+ serverFS: [serverFS.useOS, serverFS.noop, serverFS.error],
18
+ },
19
+ };
20
+ const fsCallbackNames = Object.keys(fileSystemCallbackTable);
21
+ const serverFSSentinelNames = Object.keys(serverFS);
22
+ export function configureFileSystemCallbacks(fs) {
23
+ if (!fs) {
24
+ return { callbackNames: [], arguments: [] };
25
+ }
26
+ const callbackNames = [];
27
+ const args = [];
28
+ for (const name of fsCallbackNames) {
29
+ const value = fs[name];
30
+ if (typeof value === "function") {
31
+ callbackNames.push(name);
32
+ continue;
33
+ }
34
+ const sentinel = fileSystemCallbackTable[name].serverFS.find(sentinel => sentinel === value);
35
+ if (sentinel) {
36
+ const sentinelName = getServerFSSentinelName(sentinel);
37
+ if (sentinelName !== "useOS") {
38
+ args.push(`${name}:${sentinelName}`);
39
+ }
40
+ continue;
41
+ }
42
+ throw new TypeError(`Invalid filesystem callback '${name}': expected a function or a supported serverFS sentinel`);
43
+ }
44
+ args.push(...callbackNames);
45
+ return { callbackNames, arguments: args };
46
+ }
47
+ export function encodeFileSystemCallbackResult(name, result) {
48
+ const sentinel = fileSystemCallbackTable[name].serverFS.find(sentinel => sentinel === result);
49
+ if (sentinel) {
50
+ return { kind: getServerFSSentinelName(sentinel) };
51
+ }
52
+ let valid;
53
+ switch (name) {
54
+ case "directoryExists":
55
+ case "fileExists":
56
+ valid = typeof result === "boolean";
57
+ break;
58
+ case "getAccessibleEntries": {
59
+ const entries = result;
60
+ valid = !!entries
61
+ && isStringArray(entries.files)
62
+ && isStringArray(entries.directories)
63
+ && (entries.symlinks === undefined || isStringArray(entries.symlinks));
64
+ break;
65
+ }
66
+ case "readFile":
67
+ if (result === undefined)
68
+ return { kind: "missing" };
69
+ valid = typeof result === "string";
70
+ break;
71
+ case "realpath":
72
+ valid = typeof result === "string";
73
+ break;
74
+ case "stat": {
75
+ if (result === undefined)
76
+ return { kind: "missing" };
77
+ const stat = result;
78
+ valid = !!stat
79
+ && typeof stat.mode === "number"
80
+ && Number.isSafeInteger(stat.mode)
81
+ && stat.mode >= 0
82
+ && stat.mode <= 0xffff_ffff
83
+ && typeof stat.size === "number"
84
+ && Number.isSafeInteger(stat.size)
85
+ && stat.size >= 0
86
+ && stat.mtime instanceof Date
87
+ && !Number.isNaN(stat.mtime.getTime());
88
+ break;
89
+ }
90
+ case "writeFile":
91
+ case "removeFile":
92
+ valid = result === undefined;
93
+ break;
94
+ }
95
+ if (!valid) {
96
+ throw new TypeError(`Invalid result from filesystem callback '${name}'`);
97
+ }
98
+ return name === "writeFile" || name === "removeFile" ? { kind: "value" } : { kind: "value", value: result };
99
+ }
100
+ function isStringArray(value) {
101
+ return Array.isArray(value) && value.every(element => typeof element === "string");
102
+ }
103
+ function getServerFSSentinelName(sentinel) {
104
+ for (const name of serverFSSentinelNames) {
105
+ if (serverFS[name] === sentinel) {
106
+ return name;
107
+ }
108
+ }
109
+ throw new TypeError("Unknown serverFS sentinel");
110
+ }
111
+ //# sourceMappingURL=fsCallbacks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fsCallbacks.js","sourceRoot":"","sources":["../../src/api/fsCallbacks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import type { Node, SourceFile } from "../../ast/index.ts";
2
+ /**
3
+ * Encode a SourceFile AST node into the binary format.
4
+ */
5
+ export declare function encodeSourceFile(sourceFile: SourceFile): Uint8Array;
6
+ /**
7
+ * Encode an arbitrary AST node into the binary format.
8
+ * When encoding a non-SourceFile node, the header hash and parse options fields will be zero.
9
+ */
10
+ export declare function encodeNode(node: Node): Uint8Array;
11
+ /**
12
+ * Encode a Uint8Array to a base64 string.
13
+ */
14
+ export declare function uint8ArrayToBase64(data: Uint8Array): string;
15
+ export declare function sourceFileResponseToUint8Array(response: {
16
+ readonly data: string;
17
+ } | null | undefined): Uint8Array | undefined;
18
+ //# sourceMappingURL=encoder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/api/node/encoder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGR,IAAI,EAEJ,UAAU,EAEb,MAAM,oBAAoB,CAAC;AAuL5B;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAEnE;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,CAuKjD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAE3D;AAED,wBAAgB,8BAA8B,CAAC,QAAQ,EAAE;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAI9H"}
@@ -0,0 +1,5 @@
1
+ import type { Node } from "../../ast/index.ts";
2
+ import { SyntaxKind } from "../../ast/index.ts";
3
+ export declare function getNodeDataType(kind: SyntaxKind): number;
4
+ export declare function getNodeCommonData(node: Node): number;
5
+ //# sourceMappingURL=encoder.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.generated.d.ts","sourceRoot":"","sources":["../../../src/api/node/encoder.generated.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAiBR,IAAI,EAMP,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOhD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAuBxD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CA6CpD"}
@@ -0,0 +1,74 @@
1
+ // Code generated by tools/scripts/tsc/generate-encoder.ts. DO NOT EDIT.
2
+ import { SyntaxKind } from "../../ast/index.js";
3
+ import { NODE_DATA_TYPE_CHILDREN, NODE_DATA_TYPE_EXTENDED, NODE_DATA_TYPE_STRING, } from "./protocol.js";
4
+ export function getNodeDataType(kind) {
5
+ switch (kind) {
6
+ case SyntaxKind.Identifier:
7
+ case SyntaxKind.PrivateIdentifier:
8
+ case SyntaxKind.JsxText:
9
+ case SyntaxKind.JSDocText:
10
+ case SyntaxKind.JSDocLink:
11
+ case SyntaxKind.JSDocLinkPlain:
12
+ case SyntaxKind.JSDocLinkCode:
13
+ return NODE_DATA_TYPE_STRING;
14
+ case SyntaxKind.StringLiteral:
15
+ case SyntaxKind.NumericLiteral:
16
+ case SyntaxKind.BigIntLiteral:
17
+ case SyntaxKind.RegularExpressionLiteral:
18
+ case SyntaxKind.NoSubstitutionTemplateLiteral:
19
+ case SyntaxKind.TemplateHead:
20
+ case SyntaxKind.TemplateMiddle:
21
+ case SyntaxKind.TemplateTail:
22
+ case SyntaxKind.SourceFile:
23
+ return NODE_DATA_TYPE_EXTENDED;
24
+ default:
25
+ return NODE_DATA_TYPE_CHILDREN;
26
+ }
27
+ }
28
+ export function getNodeCommonData(node) {
29
+ switch (node.kind) {
30
+ case SyntaxKind.Block:
31
+ return (node.multiLine ? 1 : 0) << 24;
32
+ case SyntaxKind.HeritageClause:
33
+ return (node.token === SyntaxKind.ImplementsKeyword ? 1 : 0) << 24;
34
+ case SyntaxKind.ExportAssignment:
35
+ return (node.isExportEquals ? 1 : 0) << 24;
36
+ case SyntaxKind.ExportSpecifier:
37
+ return (node.isTypeOnly ? 1 : 0) << 24;
38
+ case SyntaxKind.PrefixUnaryExpression:
39
+ return (node.operator === SyntaxKind.MinusToken ? 1 : node.operator === SyntaxKind.TildeToken ? 2 : node.operator === SyntaxKind.ExclamationToken ? 3 : node.operator === SyntaxKind.PlusPlusToken ? 4 : node.operator === SyntaxKind.MinusMinusToken ? 5 : 0) << 24;
40
+ case SyntaxKind.PostfixUnaryExpression:
41
+ return (node.operator === SyntaxKind.MinusMinusToken ? 1 : 0) << 24;
42
+ case SyntaxKind.MetaProperty:
43
+ return (node.keywordToken === SyntaxKind.NewKeyword ? 1 : 0) << 24;
44
+ case SyntaxKind.ArrayLiteralExpression:
45
+ return (node.multiLine ? 1 : 0) << 24;
46
+ case SyntaxKind.ObjectLiteralExpression:
47
+ return (node.multiLine ? 1 : 0) << 24;
48
+ case SyntaxKind.TypeOperator:
49
+ return (node.operator === SyntaxKind.ReadonlyKeyword ? 1 : node.operator === SyntaxKind.UniqueKeyword ? 2 : 0) << 24;
50
+ case SyntaxKind.ImportAttributes:
51
+ return (node.multiLine ? 1 : 0) << 24 | (node.token === SyntaxKind.AssertKeyword ? 1 : 0) << 25;
52
+ case SyntaxKind.JsxText:
53
+ return (node.containsOnlyTriviaWhiteSpaces ? 1 : 0) << 24;
54
+ case SyntaxKind.ModuleDeclaration:
55
+ return (node.keyword === SyntaxKind.NamespaceKeyword ? 1 : 0) << 24;
56
+ case SyntaxKind.ImportEqualsDeclaration:
57
+ return (node.isTypeOnly ? 1 : 0) << 24;
58
+ case SyntaxKind.ExportDeclaration:
59
+ return (node.isTypeOnly ? 1 : 0) << 24;
60
+ case SyntaxKind.ImportType:
61
+ return (node.isTypeOf ? 1 : 0) << 24;
62
+ case SyntaxKind.ImportClause:
63
+ return (node.phaseModifier === SyntaxKind.TypeKeyword ? 1 : node.phaseModifier === SyntaxKind.DeferKeyword ? 2 : node.phaseModifier === SyntaxKind.SourceKeyword ? 3 : 0) << 24;
64
+ case SyntaxKind.ImportSpecifier:
65
+ return (node.isTypeOnly ? 1 : 0) << 24;
66
+ case SyntaxKind.JSDocTypeLiteral:
67
+ return (node.isArrayType ? 1 : 0) << 24;
68
+ case SyntaxKind.JSDocParameterTag:
69
+ case SyntaxKind.JSDocPropertyTag:
70
+ return (node.isBracketed ? 1 : 0) << 24 | (node.isNameFirst ? 1 : 0) << 25;
71
+ }
72
+ return 0;
73
+ }
74
+ //# sourceMappingURL=encoder.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.generated.js","sourceRoot":"","sources":["../../../src/api/node/encoder.generated.ts"],"names":[],"mappings":"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"}