@seanhogg/builderforce-webcontainers-core 2026.10.2 → 2026.10.4

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 (426) hide show
  1. package/dist/build.d.ts +42 -0
  2. package/dist/build.d.ts.map +1 -0
  3. package/dist/build.js +65 -0
  4. package/dist/build.js.map +1 -0
  5. package/dist/buildHost.d.ts +31 -0
  6. package/dist/buildHost.d.ts.map +1 -0
  7. package/dist/buildHost.js +125 -0
  8. package/dist/buildHost.js.map +1 -0
  9. package/dist/buildHtml.d.ts +28 -0
  10. package/dist/buildHtml.d.ts.map +1 -0
  11. package/dist/buildHtml.js +74 -0
  12. package/dist/buildHtml.js.map +1 -0
  13. package/dist/bundler.d.ts +129 -0
  14. package/dist/bundler.d.ts.map +1 -0
  15. package/dist/bundler.js +79 -0
  16. package/dist/bundler.js.map +1 -0
  17. package/dist/check/acquire.d.ts +46 -0
  18. package/dist/check/acquire.d.ts.map +1 -0
  19. package/dist/check/acquire.js +179 -0
  20. package/dist/check/acquire.js.map +1 -0
  21. package/dist/check/compilerHost.d.ts +22 -0
  22. package/dist/check/compilerHost.d.ts.map +1 -0
  23. package/dist/check/compilerHost.js +128 -0
  24. package/dist/check/compilerHost.js.map +1 -0
  25. package/dist/check/diagnostics.d.ts +23 -0
  26. package/dist/check/diagnostics.d.ts.map +1 -0
  27. package/dist/check/diagnostics.js +28 -0
  28. package/dist/check/diagnostics.js.map +1 -0
  29. package/dist/check/index.d.ts +19 -0
  30. package/dist/check/index.d.ts.map +1 -0
  31. package/dist/check/index.js +13 -0
  32. package/dist/check/index.js.map +1 -0
  33. package/dist/check/projects.d.ts +26 -0
  34. package/dist/check/projects.d.ts.map +1 -0
  35. package/dist/check/projects.js +124 -0
  36. package/dist/check/projects.js.map +1 -0
  37. package/dist/check/shims.d.ts +29 -0
  38. package/dist/check/shims.d.ts.map +1 -0
  39. package/dist/check/shims.js +76 -0
  40. package/dist/check/shims.js.map +1 -0
  41. package/dist/check/typeStore.d.ts +57 -0
  42. package/dist/check/typeStore.d.ts.map +1 -0
  43. package/dist/check/typeStore.js +89 -0
  44. package/dist/check/typeStore.js.map +1 -0
  45. package/dist/check/typecheck.d.ts +29 -0
  46. package/dist/check/typecheck.d.ts.map +1 -0
  47. package/dist/check/typecheck.js +91 -0
  48. package/dist/check/typecheck.js.map +1 -0
  49. package/dist/compileComponent.d.ts +8 -0
  50. package/dist/compileComponent.d.ts.map +1 -0
  51. package/dist/compileComponent.js +22 -0
  52. package/dist/compileComponent.js.map +1 -0
  53. package/dist/compileScript.d.ts +19 -4
  54. package/dist/compileScript.d.ts.map +1 -1
  55. package/dist/compileScript.js +37 -12
  56. package/dist/compileScript.js.map +1 -1
  57. package/dist/components.d.ts +41 -0
  58. package/dist/components.d.ts.map +1 -0
  59. package/dist/components.js +14 -0
  60. package/dist/components.js.map +1 -0
  61. package/dist/detectProject.d.ts +3 -0
  62. package/dist/detectProject.d.ts.map +1 -1
  63. package/dist/detectProject.js +16 -6
  64. package/dist/detectProject.js.map +1 -1
  65. package/dist/devServer.d.ts +5 -2
  66. package/dist/devServer.d.ts.map +1 -1
  67. package/dist/devServer.js +12 -8
  68. package/dist/devServer.js.map +1 -1
  69. package/dist/hash.d.ts +2 -0
  70. package/dist/hash.d.ts.map +1 -0
  71. package/dist/hash.js +22 -0
  72. package/dist/hash.js.map +1 -0
  73. package/dist/index.d.ts +24 -6
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +14 -3
  76. package/dist/index.js.map +1 -1
  77. package/dist/installer/bins.d.ts +24 -0
  78. package/dist/installer/bins.d.ts.map +1 -0
  79. package/dist/installer/bins.js +56 -0
  80. package/dist/installer/bins.js.map +1 -0
  81. package/dist/installer/index.d.ts +14 -0
  82. package/dist/installer/index.d.ts.map +1 -0
  83. package/dist/installer/index.js +9 -0
  84. package/dist/installer/index.js.map +1 -0
  85. package/dist/installer/install.d.ts +46 -0
  86. package/dist/installer/install.d.ts.map +1 -0
  87. package/dist/installer/install.js +245 -0
  88. package/dist/installer/install.js.map +1 -0
  89. package/dist/installer/lockfile.d.ts +49 -0
  90. package/dist/installer/lockfile.d.ts.map +1 -0
  91. package/dist/installer/lockfile.js +110 -0
  92. package/dist/installer/lockfile.js.map +1 -0
  93. package/dist/installer/registry.d.ts +84 -0
  94. package/dist/installer/registry.d.ts.map +1 -0
  95. package/dist/installer/registry.js +130 -0
  96. package/dist/installer/registry.js.map +1 -0
  97. package/dist/installer/semver.d.ts +38 -0
  98. package/dist/installer/semver.d.ts.map +1 -0
  99. package/dist/installer/semver.js +187 -0
  100. package/dist/installer/semver.js.map +1 -0
  101. package/dist/installer/spec.d.ts +30 -0
  102. package/dist/installer/spec.d.ts.map +1 -0
  103. package/dist/installer/spec.js +30 -0
  104. package/dist/installer/spec.js.map +1 -0
  105. package/dist/installer/tar.d.ts +17 -0
  106. package/dist/installer/tar.d.ts.map +1 -0
  107. package/dist/installer/tar.js +150 -0
  108. package/dist/installer/tar.js.map +1 -0
  109. package/dist/installer/tree.d.ts +48 -0
  110. package/dist/installer/tree.d.ts.map +1 -0
  111. package/dist/installer/tree.js +179 -0
  112. package/dist/installer/tree.js.map +1 -0
  113. package/dist/node/assert.d.ts +15 -0
  114. package/dist/node/assert.d.ts.map +1 -0
  115. package/dist/node/assert.js +137 -0
  116. package/dist/node/assert.js.map +1 -0
  117. package/dist/node/buffer.d.ts +84 -0
  118. package/dist/node/buffer.d.ts.map +1 -0
  119. package/dist/node/buffer.js +304 -0
  120. package/dist/node/buffer.js.map +1 -0
  121. package/dist/node/builtins.d.ts +25 -0
  122. package/dist/node/builtins.d.ts.map +1 -0
  123. package/dist/node/builtins.js +101 -0
  124. package/dist/node/builtins.js.map +1 -0
  125. package/dist/node/callable.d.ts +13 -0
  126. package/dist/node/callable.d.ts.map +1 -0
  127. package/dist/node/callable.js +26 -0
  128. package/dist/node/callable.js.map +1 -0
  129. package/dist/node/childProcess.d.ts +13 -0
  130. package/dist/node/childProcess.d.ts.map +1 -0
  131. package/dist/node/childProcess.js +143 -0
  132. package/dist/node/childProcess.js.map +1 -0
  133. package/dist/node/crypto.d.ts +3 -0
  134. package/dist/node/crypto.d.ts.map +1 -0
  135. package/dist/node/crypto.js +180 -0
  136. package/dist/node/crypto.js.map +1 -0
  137. package/dist/node/esm.d.ts +9 -0
  138. package/dist/node/esm.d.ts.map +1 -0
  139. package/dist/node/esm.js +202 -0
  140. package/dist/node/esm.js.map +1 -0
  141. package/dist/node/events.d.ts +40 -0
  142. package/dist/node/events.d.ts.map +1 -0
  143. package/dist/node/events.js +160 -0
  144. package/dist/node/events.js.map +1 -0
  145. package/dist/node/fs/index.d.ts +7 -0
  146. package/dist/node/fs/index.d.ts.map +1 -0
  147. package/dist/node/fs/index.js +270 -0
  148. package/dist/node/fs/index.js.map +1 -0
  149. package/dist/node/fs/stats.d.ts +93 -0
  150. package/dist/node/fs/stats.d.ts.map +1 -0
  151. package/dist/node/fs/stats.js +104 -0
  152. package/dist/node/fs/stats.js.map +1 -0
  153. package/dist/node/fs/sync.d.ts +98 -0
  154. package/dist/node/fs/sync.d.ts.map +1 -0
  155. package/dist/node/fs/sync.js +348 -0
  156. package/dist/node/fs/sync.js.map +1 -0
  157. package/dist/node/hashes.d.ts +15 -0
  158. package/dist/node/hashes.d.ts.map +1 -0
  159. package/dist/node/hashes.js +195 -0
  160. package/dist/node/hashes.js.map +1 -0
  161. package/dist/node/http/client.d.ts +35 -0
  162. package/dist/node/http/client.d.ts.map +1 -0
  163. package/dist/node/http/client.js +161 -0
  164. package/dist/node/http/client.js.map +1 -0
  165. package/dist/node/http/index.d.ts +5 -0
  166. package/dist/node/http/index.d.ts.map +1 -0
  167. package/dist/node/http/index.js +125 -0
  168. package/dist/node/http/index.js.map +1 -0
  169. package/dist/node/http/server.d.ts +135 -0
  170. package/dist/node/http/server.d.ts.map +1 -0
  171. package/dist/node/http/server.js +308 -0
  172. package/dist/node/http/server.js.map +1 -0
  173. package/dist/node/http/status.d.ts +3 -0
  174. package/dist/node/http/status.d.ts.map +1 -0
  175. package/dist/node/http/status.js +13 -0
  176. package/dist/node/http/status.js.map +1 -0
  177. package/dist/node/inspect.d.ts +22 -0
  178. package/dist/node/inspect.d.ts.map +1 -0
  179. package/dist/node/inspect.js +172 -0
  180. package/dist/node/inspect.js.map +1 -0
  181. package/dist/node/loader.d.ts +91 -0
  182. package/dist/node/loader.d.ts.map +1 -0
  183. package/dist/node/loader.js +265 -0
  184. package/dist/node/loader.js.map +1 -0
  185. package/dist/node/loop.d.ts +71 -0
  186. package/dist/node/loop.d.ts.map +1 -0
  187. package/dist/node/loop.js +189 -0
  188. package/dist/node/loop.js.map +1 -0
  189. package/dist/node/misc.d.ts +10 -0
  190. package/dist/node/misc.d.ts.map +1 -0
  191. package/dist/node/misc.js +256 -0
  192. package/dist/node/misc.js.map +1 -0
  193. package/dist/node/path.d.ts +14 -0
  194. package/dist/node/path.d.ts.map +1 -0
  195. package/dist/node/path.js +128 -0
  196. package/dist/node/path.js.map +1 -0
  197. package/dist/node/process.d.ts +31 -0
  198. package/dist/node/process.d.ts.map +1 -0
  199. package/dist/node/process.js +309 -0
  200. package/dist/node/process.js.map +1 -0
  201. package/dist/node/program.d.ts +19 -0
  202. package/dist/node/program.d.ts.map +1 -0
  203. package/dist/node/program.js +165 -0
  204. package/dist/node/program.js.map +1 -0
  205. package/dist/node/readline.d.ts +2 -0
  206. package/dist/node/readline.d.ts.map +1 -0
  207. package/dist/node/readline.js +155 -0
  208. package/dist/node/readline.js.map +1 -0
  209. package/dist/node/resolve.d.ts +45 -0
  210. package/dist/node/resolve.d.ts.map +1 -0
  211. package/dist/node/resolve.js +206 -0
  212. package/dist/node/resolve.js.map +1 -0
  213. package/dist/node/runtime.d.ts +40 -0
  214. package/dist/node/runtime.d.ts.map +1 -0
  215. package/dist/node/runtime.js +149 -0
  216. package/dist/node/runtime.js.map +1 -0
  217. package/dist/node/stream/index.d.ts +52 -0
  218. package/dist/node/stream/index.d.ts.map +1 -0
  219. package/dist/node/stream/index.js +184 -0
  220. package/dist/node/stream/index.js.map +1 -0
  221. package/dist/node/stream/readable.d.ts +83 -0
  222. package/dist/node/stream/readable.d.ts.map +1 -0
  223. package/dist/node/stream/readable.js +325 -0
  224. package/dist/node/stream/readable.js.map +1 -0
  225. package/dist/node/stream/writable.d.ts +80 -0
  226. package/dist/node/stream/writable.d.ts.map +1 -0
  227. package/dist/node/stream/writable.js +224 -0
  228. package/dist/node/stream/writable.js.map +1 -0
  229. package/dist/node/urlqs.d.ts +22 -0
  230. package/dist/node/urlqs.d.ts.map +1 -0
  231. package/dist/node/urlqs.js +165 -0
  232. package/dist/node/urlqs.js.map +1 -0
  233. package/dist/node/util.d.ts +37 -0
  234. package/dist/node/util.d.ts.map +1 -0
  235. package/dist/node/util.js +160 -0
  236. package/dist/node/util.js.map +1 -0
  237. package/dist/node/zlib.d.ts +2 -0
  238. package/dist/node/zlib.d.ts.map +1 -0
  239. package/dist/node/zlib.js +133 -0
  240. package/dist/node/zlib.js.map +1 -0
  241. package/dist/packageCdn.d.ts +40 -0
  242. package/dist/packageCdn.d.ts.map +1 -1
  243. package/dist/packageCdn.js +54 -7
  244. package/dist/packageCdn.js.map +1 -1
  245. package/dist/projectConfig.d.ts +6 -2
  246. package/dist/projectConfig.d.ts.map +1 -1
  247. package/dist/projectConfig.js +32 -8
  248. package/dist/projectConfig.js.map +1 -1
  249. package/dist/shell/builtins.d.ts +23 -0
  250. package/dist/shell/builtins.d.ts.map +1 -0
  251. package/dist/shell/builtins.js +131 -0
  252. package/dist/shell/builtins.js.map +1 -0
  253. package/dist/shell/context.d.ts +41 -0
  254. package/dist/shell/context.d.ts.map +1 -0
  255. package/dist/shell/context.js +65 -0
  256. package/dist/shell/context.js.map +1 -0
  257. package/dist/shell/devHandoff.d.ts +18 -0
  258. package/dist/shell/devHandoff.d.ts.map +1 -0
  259. package/dist/shell/devHandoff.js +36 -0
  260. package/dist/shell/devHandoff.js.map +1 -0
  261. package/dist/shell/exec.d.ts +67 -0
  262. package/dist/shell/exec.d.ts.map +1 -0
  263. package/dist/shell/exec.js +247 -0
  264. package/dist/shell/exec.js.map +1 -0
  265. package/dist/shell/expand.d.ts +28 -0
  266. package/dist/shell/expand.d.ts.map +1 -0
  267. package/dist/shell/expand.js +149 -0
  268. package/dist/shell/expand.js.map +1 -0
  269. package/dist/shell/fileCommands.d.ts +10 -0
  270. package/dist/shell/fileCommands.d.ts.map +1 -0
  271. package/dist/shell/fileCommands.js +208 -0
  272. package/dist/shell/fileCommands.js.map +1 -0
  273. package/dist/shell/lineEditor.d.ts +43 -0
  274. package/dist/shell/lineEditor.d.ts.map +1 -0
  275. package/dist/shell/lineEditor.js +234 -0
  276. package/dist/shell/lineEditor.js.map +1 -0
  277. package/dist/shell/npm.d.ts +6 -0
  278. package/dist/shell/npm.d.ts.map +1 -0
  279. package/dist/shell/npm.js +234 -0
  280. package/dist/shell/npm.js.map +1 -0
  281. package/dist/shell/parse.d.ts +73 -0
  282. package/dist/shell/parse.d.ts.map +1 -0
  283. package/dist/shell/parse.js +300 -0
  284. package/dist/shell/parse.js.map +1 -0
  285. package/dist/shell/program.d.ts +12 -0
  286. package/dist/shell/program.d.ts.map +1 -0
  287. package/dist/shell/program.js +219 -0
  288. package/dist/shell/program.js.map +1 -0
  289. package/dist/shell/textCommands.d.ts +15 -0
  290. package/dist/shell/textCommands.d.ts.map +1 -0
  291. package/dist/shell/textCommands.js +185 -0
  292. package/dist/shell/textCommands.js.map +1 -0
  293. package/dist/styleModules.d.ts +6 -0
  294. package/dist/styleModules.d.ts.map +1 -1
  295. package/dist/styleModules.js +14 -4
  296. package/dist/styleModules.js.map +1 -1
  297. package/dist/svelteCompiler.d.ts +28 -0
  298. package/dist/svelteCompiler.d.ts.map +1 -0
  299. package/dist/svelteCompiler.js +13 -0
  300. package/dist/svelteCompiler.js.map +1 -0
  301. package/dist/system/commands.d.ts +26 -0
  302. package/dist/system/commands.d.ts.map +1 -0
  303. package/dist/system/commands.js +53 -0
  304. package/dist/system/commands.js.map +1 -0
  305. package/dist/system/index.d.ts +23 -0
  306. package/dist/system/index.d.ts.map +1 -0
  307. package/dist/system/index.js +16 -0
  308. package/dist/system/index.js.map +1 -0
  309. package/dist/system/kernel.d.ts +54 -0
  310. package/dist/system/kernel.d.ts.map +1 -0
  311. package/dist/system/kernel.js +81 -0
  312. package/dist/system/kernel.js.map +1 -0
  313. package/dist/system/ports.d.ts +32 -0
  314. package/dist/system/ports.d.ts.map +1 -0
  315. package/dist/system/ports.js +57 -0
  316. package/dist/system/ports.js.map +1 -0
  317. package/dist/system/process.d.ts +32 -0
  318. package/dist/system/process.d.ts.map +1 -0
  319. package/dist/system/process.js +130 -0
  320. package/dist/system/process.js.map +1 -0
  321. package/dist/system/programs.d.ts +10 -0
  322. package/dist/system/programs.d.ts.map +1 -0
  323. package/dist/system/programs.js +22 -0
  324. package/dist/system/programs.js.map +1 -0
  325. package/dist/system/terminal.d.ts +45 -0
  326. package/dist/system/terminal.d.ts.map +1 -0
  327. package/dist/system/terminal.js +127 -0
  328. package/dist/system/terminal.js.map +1 -0
  329. package/dist/system/types.d.ts +100 -0
  330. package/dist/system/types.d.ts.map +1 -0
  331. package/dist/system/types.js +2 -0
  332. package/dist/system/types.js.map +1 -0
  333. package/dist/vfs.d.ts +28 -4
  334. package/dist/vfs.d.ts.map +1 -1
  335. package/dist/vfs.js +95 -32
  336. package/dist/vfs.js.map +1 -1
  337. package/dist/vueCompiler.d.ts +75 -0
  338. package/dist/vueCompiler.d.ts.map +1 -0
  339. package/dist/vueCompiler.js +67 -0
  340. package/dist/vueCompiler.js.map +1 -0
  341. package/package.json +18 -2
  342. package/src/build.ts +105 -0
  343. package/src/buildHost.ts +154 -0
  344. package/src/buildHtml.ts +101 -0
  345. package/src/bundler.ts +190 -0
  346. package/src/check/acquire.ts +212 -0
  347. package/src/check/compilerHost.ts +138 -0
  348. package/src/check/diagnostics.ts +48 -0
  349. package/src/check/index.ts +28 -0
  350. package/src/check/projects.ts +149 -0
  351. package/src/check/shims.ts +88 -0
  352. package/src/check/typeStore.ts +103 -0
  353. package/src/check/typecheck.ts +134 -0
  354. package/src/compileComponent.ts +21 -0
  355. package/src/compileScript.ts +42 -13
  356. package/src/components.ts +59 -0
  357. package/src/detectProject.ts +18 -6
  358. package/src/devServer.ts +16 -11
  359. package/src/hash.ts +22 -0
  360. package/src/index.ts +35 -6
  361. package/src/installer/bins.ts +64 -0
  362. package/src/installer/index.ts +13 -0
  363. package/src/installer/install.ts +275 -0
  364. package/src/installer/lockfile.ts +146 -0
  365. package/src/installer/registry.ts +175 -0
  366. package/src/installer/semver.ts +190 -0
  367. package/src/installer/spec.ts +53 -0
  368. package/src/installer/tar.ts +155 -0
  369. package/src/installer/tree.ts +236 -0
  370. package/src/node/assert.ts +127 -0
  371. package/src/node/buffer.ts +304 -0
  372. package/src/node/builtins.ts +123 -0
  373. package/src/node/callable.ts +25 -0
  374. package/src/node/childProcess.ts +164 -0
  375. package/src/node/crypto.ts +187 -0
  376. package/src/node/esm.ts +196 -0
  377. package/src/node/events.ts +176 -0
  378. package/src/node/fs/index.ts +277 -0
  379. package/src/node/fs/stats.ts +110 -0
  380. package/src/node/fs/sync.ts +335 -0
  381. package/src/node/hashes.ts +171 -0
  382. package/src/node/http/client.ts +173 -0
  383. package/src/node/http/index.ts +122 -0
  384. package/src/node/http/server.ts +308 -0
  385. package/src/node/http/status.ts +13 -0
  386. package/src/node/inspect.ts +166 -0
  387. package/src/node/loader.ts +293 -0
  388. package/src/node/loop.ts +193 -0
  389. package/src/node/misc.ts +250 -0
  390. package/src/node/path.ts +135 -0
  391. package/src/node/process.ts +324 -0
  392. package/src/node/program.ts +170 -0
  393. package/src/node/readline.ts +157 -0
  394. package/src/node/resolve.ts +216 -0
  395. package/src/node/runtime.ts +184 -0
  396. package/src/node/stream/index.ts +196 -0
  397. package/src/node/stream/readable.ts +345 -0
  398. package/src/node/stream/writable.ts +244 -0
  399. package/src/node/urlqs.ts +162 -0
  400. package/src/node/util.ts +145 -0
  401. package/src/node/zlib.ts +145 -0
  402. package/src/packageCdn.ts +91 -7
  403. package/src/projectConfig.ts +34 -7
  404. package/src/shell/builtins.ts +141 -0
  405. package/src/shell/context.ts +89 -0
  406. package/src/shell/devHandoff.ts +49 -0
  407. package/src/shell/exec.ts +268 -0
  408. package/src/shell/expand.ts +145 -0
  409. package/src/shell/fileCommands.ts +206 -0
  410. package/src/shell/lineEditor.ts +233 -0
  411. package/src/shell/npm.ts +229 -0
  412. package/src/shell/parse.ts +295 -0
  413. package/src/shell/program.ts +223 -0
  414. package/src/shell/textCommands.ts +177 -0
  415. package/src/styleModules.ts +15 -4
  416. package/src/svelteCompiler.ts +31 -0
  417. package/src/system/commands.ts +72 -0
  418. package/src/system/index.ts +22 -0
  419. package/src/system/kernel.ts +106 -0
  420. package/src/system/ports.ts +73 -0
  421. package/src/system/process.ts +158 -0
  422. package/src/system/programs.ts +31 -0
  423. package/src/system/terminal.ts +135 -0
  424. package/src/system/types.ts +103 -0
  425. package/src/vfs.ts +92 -28
  426. package/src/vueCompiler.ts +121 -0
@@ -0,0 +1,46 @@
1
+ import type * as TS from 'typescript';
2
+ import type { VirtualFileSystem } from '../vfs.js';
3
+ import { type TypeSources, type TypeStore } from './typeStore.js';
4
+ /** The part of a fetch `Response` acquisition reads; the real `fetch` satisfies it. */
5
+ export interface FetchResponseLike {
6
+ ok: boolean;
7
+ /** The final URL after redirects. Relative references resolve against it. */
8
+ url: string;
9
+ headers: {
10
+ get(name: string): string | null;
11
+ };
12
+ text(): Promise<string>;
13
+ }
14
+ export type FetchLike = (url: string) => Promise<FetchResponseLike>;
15
+ export interface AcquireRequest {
16
+ /** Bare module specifiers imported by project files (`react`, `react/jsx-runtime`). */
17
+ specifiers: string[];
18
+ /** `types` entries and `/// <reference types>` names. */
19
+ typeReferences: string[];
20
+ /** Lib file names (`lib.es2020.full.d.ts`). */
21
+ libFiles: string[];
22
+ dependencies: Readonly<Record<string, string>>;
23
+ }
24
+ export interface AcquireOptions {
25
+ fetch: FetchLike;
26
+ sources: TypeSources;
27
+ /** Upper bound on fetched `.d.ts` files — one run-away graph must not stall a check. */
28
+ maxFiles: number;
29
+ }
30
+ /**
31
+ * Fetch every declaration file the request can reach into the store: package
32
+ * entry types (via the CDN's `X-TypeScript-Types` header), then everything those
33
+ * import or reference, transitively; lib files and their `/// <reference lib>`s.
34
+ *
35
+ * Fetches run concurrently. Each URL is fetched once and its references are
36
+ * scheduled rather than awaited inside the fetch, so reference cycles between
37
+ * declaration files cannot deadlock.
38
+ */
39
+ export declare function acquireTypes(ts: typeof TS, store: TypeStore, request: AcquireRequest, options: AcquireOptions): Promise<void>;
40
+ /**
41
+ * Fetch tsconfig files the project `extends` from packages (`@vue/tsconfig`,
42
+ * `@tsconfig/svelte`) into the store's virtual node_modules, following their own
43
+ * `extends` chains, so the config parser sees what a local install would hold.
44
+ */
45
+ export declare function acquireExtendedConfigs(fs: VirtualFileSystem, store: TypeStore, dependencies: Readonly<Record<string, string>>, options: Pick<AcquireOptions, 'fetch' | 'sources'>): Promise<void>;
46
+ //# sourceMappingURL=acquire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquire.d.ts","sourceRoot":"","sources":["../../src/check/acquire.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAItC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,EAML,KAAK,WAAW,EAChB,KAAK,SAAS,EACf,MAAM,gBAAgB,CAAC;AAExB,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,OAAO,CAAC;IACZ,6EAA6E;IAC7E,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAC9C,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzB;AAED,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpE,MAAM,WAAW,cAAc;IAC7B,uFAAuF;IACvF,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,yDAAyD;IACzD,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,+CAA+C;IAC/C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,CAAC;IACjB,OAAO,EAAE,WAAW,CAAC;IACrB,wFAAwF;IACxF,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqGnI;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,iBAAiB,EACrB,KAAK,EAAE,SAAS,EAChB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC9C,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,GAAG,SAAS,CAAC,GACjD,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
@@ -0,0 +1,179 @@
1
+ import { isBareSpecifier, splitPackageSpecifier } from '../resolve.js';
2
+ import { dirname, join } from '../paths.js';
3
+ import { parseLooseJson } from '../projectConfig.js';
4
+ import { SHIMMED_TYPE_REFERENCES } from './shims.js';
5
+ import { CONFIG_MODULES_DIR, dtsCandidates, packageRequestUrl, typesPackageName, versioned, } from './typeStore.js';
6
+ const TYPES_HEADER = 'X-TypeScript-Types';
7
+ /**
8
+ * Fetch every declaration file the request can reach into the store: package
9
+ * entry types (via the CDN's `X-TypeScript-Types` header), then everything those
10
+ * import or reference, transitively; lib files and their `/// <reference lib>`s.
11
+ *
12
+ * Fetches run concurrently. Each URL is fetched once and its references are
13
+ * scheduled rather than awaited inside the fetch, so reference cycles between
14
+ * declaration files cannot deadlock.
15
+ */
16
+ export async function acquireTypes(ts, store, request, options) {
17
+ const { sources } = options;
18
+ const inflight = new Map();
19
+ const tasks = [];
20
+ const schedule = (task) => tasks.push(task().catch(() => undefined));
21
+ const once = (key, task) => {
22
+ if (!inflight.has(key))
23
+ inflight.set(key, task());
24
+ return inflight.get(key);
25
+ };
26
+ const get = (url) => options.fetch(url).then((res) => (res.ok ? res : undefined), () => undefined);
27
+ function walk(fromUrl, text) {
28
+ const info = ts.preProcessFile(text, true, true);
29
+ for (const ref of info.referencedFiles)
30
+ schedule(() => fetchFirst(dtsCandidates(ref.fileName, fromUrl)));
31
+ for (const ref of info.typeReferenceDirectives)
32
+ schedule(() => ensureTypeReference(ref.fileName));
33
+ for (const ref of info.libReferenceDirectives)
34
+ schedule(() => ensureLib(`lib.${ref.fileName.toLowerCase()}.d.ts`));
35
+ for (const ref of info.importedFiles) {
36
+ const spec = ref.fileName;
37
+ schedule(() => (isBareSpecifier(spec) ? ensurePackage(spec) : fetchFirst(dtsCandidates(spec, fromUrl))));
38
+ }
39
+ }
40
+ /** Fetch one declaration file; resolves to its final URL. */
41
+ function fetchDts(url) {
42
+ const known = store.redirects.get(url);
43
+ if (known !== undefined)
44
+ return Promise.resolve(known || undefined);
45
+ if (store.files.has(url))
46
+ return Promise.resolve(url);
47
+ return once(`dts:${url}`, async () => {
48
+ if (store.files.size >= options.maxFiles)
49
+ return undefined;
50
+ const res = await get(url);
51
+ if (!res) {
52
+ store.redirects.set(url, '');
53
+ return undefined;
54
+ }
55
+ const final = res.url || url;
56
+ store.redirects.set(url, final);
57
+ if (!store.files.has(final)) {
58
+ const text = await res.text();
59
+ store.files.set(final, text);
60
+ walk(final, text);
61
+ }
62
+ return final;
63
+ });
64
+ }
65
+ async function fetchFirst(candidates) {
66
+ for (const url of candidates) {
67
+ const final = await fetchDts(url);
68
+ if (final)
69
+ return final;
70
+ }
71
+ return undefined;
72
+ }
73
+ /** A bare specifier's entry types, located by the CDN's header. */
74
+ function ensurePackage(specifier, dependencies = {}) {
75
+ const key = packageRequestUrl(sources.typesOrigin, specifier, dependencies);
76
+ if (store.packages.has(key))
77
+ return Promise.resolve(store.packages.get(key) ?? undefined);
78
+ return once(`pkg:${key}`, async () => {
79
+ const res = await get(key);
80
+ const header = res?.headers.get(TYPES_HEADER);
81
+ const final = header ? await fetchDts(new URL(header, res.url || key).href) : undefined;
82
+ store.packages.set(key, final ?? null);
83
+ return final;
84
+ });
85
+ }
86
+ /** `/// <reference types="x" />` and `types: ["x"]`: the package's own types, else DefinitelyTyped. */
87
+ function ensureTypeReference(name, dependencies = {}) {
88
+ if (SHIMMED_TYPE_REFERENCES.has(name))
89
+ return Promise.resolve();
90
+ const key = `types:${name}`;
91
+ if (store.packages.has(key))
92
+ return Promise.resolve();
93
+ return once(key, async () => {
94
+ // `node` is DefinitelyTyped's, not the npm package called "node".
95
+ const own = name === 'node' ? undefined : await ensurePackage(name, dependencies);
96
+ const { name: pkg, subpath } = splitPackageSpecifier(name);
97
+ const typesPkg = typesPackageName(pkg);
98
+ const definitelyTyped = own
99
+ ? undefined
100
+ : await fetchDts(`${sources.typesOrigin}/${versioned(typesPkg, dependencies)}${subpath || '/index'}.d.ts`);
101
+ store.packages.set(key, own ?? definitelyTyped ?? null);
102
+ });
103
+ }
104
+ function ensureLib(file) {
105
+ if (store.libs.has(file))
106
+ return Promise.resolve();
107
+ return once(`lib:${file}`, async () => {
108
+ const res = await get(`${sources.libBaseUrl}/${file}`);
109
+ const text = res ? await res.text() : null;
110
+ store.libs.set(file, text);
111
+ if (text) {
112
+ for (const ref of ts.preProcessFile(text, true, false).libReferenceDirectives) {
113
+ schedule(() => ensureLib(`lib.${ref.fileName.toLowerCase()}.d.ts`));
114
+ }
115
+ }
116
+ });
117
+ }
118
+ for (const spec of request.specifiers)
119
+ schedule(() => ensurePackage(spec, request.dependencies));
120
+ for (const name of request.typeReferences)
121
+ schedule(() => ensureTypeReference(name, request.dependencies));
122
+ for (const file of request.libFiles)
123
+ schedule(() => ensureLib(file));
124
+ while (tasks.length)
125
+ await Promise.all(tasks.splice(0));
126
+ }
127
+ /**
128
+ * Fetch tsconfig files the project `extends` from packages (`@vue/tsconfig`,
129
+ * `@tsconfig/svelte`) into the store's virtual node_modules, following their own
130
+ * `extends` chains, so the config parser sees what a local install would hold.
131
+ */
132
+ export async function acquireExtendedConfigs(fs, store, dependencies, options) {
133
+ const tasks = [];
134
+ function extendsOf(text) {
135
+ try {
136
+ const value = parseLooseJson(text).extends;
137
+ return (Array.isArray(value) ? value : [value]).filter((v) => typeof v === 'string');
138
+ }
139
+ catch {
140
+ return [];
141
+ }
142
+ }
143
+ function follow(fromPath, text) {
144
+ for (const spec of extendsOf(text)) {
145
+ let path;
146
+ if (isBareSpecifier(spec)) {
147
+ const { name, subpath } = splitPackageSpecifier(spec);
148
+ path = `${CONFIG_MODULES_DIR}/${name}${subpath ? (subpath.endsWith('.json') ? subpath : `${subpath}.json`) : '/tsconfig.json'}`;
149
+ }
150
+ else if (fromPath.startsWith(`${CONFIG_MODULES_DIR}/`)) {
151
+ path = join(dirname(fromPath), spec.endsWith('.json') ? spec : `${spec}.json`);
152
+ }
153
+ else {
154
+ continue; // a project-local config: already in the VFS
155
+ }
156
+ if (store.configs.has(path))
157
+ continue;
158
+ store.configs.set(path, null);
159
+ tasks.push(fetchConfig(path));
160
+ }
161
+ }
162
+ async function fetchConfig(path) {
163
+ const rest = path.slice(CONFIG_MODULES_DIR.length + 1);
164
+ const { name, subpath } = splitPackageSpecifier(rest);
165
+ const res = await options.fetch(`${options.sources.npmBaseUrl}/${versioned(name, dependencies)}${subpath}`).catch(() => undefined);
166
+ if (!res?.ok)
167
+ return;
168
+ const text = await res.text();
169
+ store.configs.set(path, text);
170
+ follow(path, text);
171
+ }
172
+ for (const path of fs.list()) {
173
+ if (/^\/tsconfig[^/]*\.json$/.test(path))
174
+ follow(path, fs.readText(path) ?? '');
175
+ }
176
+ while (tasks.length)
177
+ await Promise.all(tasks.splice(0));
178
+ }
179
+ //# sourceMappingURL=acquire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/check/acquire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type * as TS from 'typescript';
2
+ import type { VirtualFileSystem } from '../vfs.js';
3
+ import type { PathAlias } from '../projectConfig.js';
4
+ import { type TypeStore } from './typeStore.js';
5
+ /**
6
+ * A synchronous TypeScript CompilerHost over the project's VFS and a filled
7
+ * {@link TypeStore}. Module resolution is done here rather than by TypeScript's
8
+ * node resolver: project imports follow the runtime's own rules (resolve.ts
9
+ * probing, tsconfig aliases), bare imports go to the types the CDN named, and
10
+ * references inside fetched declaration files resolve as URLs.
11
+ */
12
+ export interface VirtualHostOptions {
13
+ fs: VirtualFileSystem;
14
+ store: TypeStore;
15
+ typesOrigin: string;
16
+ dependencies: Readonly<Record<string, string>>;
17
+ aliases: readonly PathAlias[];
18
+ /** The ambient shim's text (see shims.ts). */
19
+ shim: string;
20
+ }
21
+ export declare function createVirtualHost(ts: typeof TS, options: VirtualHostOptions): TS.CompilerHost;
22
+ //# sourceMappingURL=compilerHost.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compilerHost.d.ts","sourceRoot":"","sources":["../../src/check/compilerHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAIrD,OAAO,EAAwD,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEtG;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,iBAAiB,CAAC;IACtB,KAAK,EAAE,SAAS,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/C,OAAO,EAAE,SAAS,SAAS,EAAE,CAAC;IAC9B,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;CACd;AA4BD,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,GAAG,EAAE,CAAC,YAAY,CAsF7F"}
@@ -0,0 +1,128 @@
1
+ import { dirname, extname, join, normalizePath } from '../paths.js';
2
+ import { isBareSpecifier } from '../resolve.js';
3
+ import { AMBIENT_SHIM_PATH, EMPTY_TYPES_PATH, SHIMMED_TYPE_REFERENCES, SHIM_DIR } from './shims.js';
4
+ import { dtsCandidates, LIB_DIR, packageRequestUrl, TYPES_DIR } from './typeStore.js';
5
+ const TS_PROBE = ['.ts', '.tsx', '.d.ts', '.mts', '.cts', '.js', '.jsx', '.mjs', '.cjs', '.json'];
6
+ function extensionOf(ts, path) {
7
+ if (path.endsWith('.d.ts'))
8
+ return ts.Extension.Dts;
9
+ if (path.endsWith('.d.mts'))
10
+ return ts.Extension.Dmts;
11
+ if (path.endsWith('.d.cts'))
12
+ return ts.Extension.Dcts;
13
+ const map = {
14
+ '.ts': ts.Extension.Ts, '.tsx': ts.Extension.Tsx, '.mts': ts.Extension.Mts, '.cts': ts.Extension.Cts,
15
+ '.js': ts.Extension.Js, '.jsx': ts.Extension.Jsx, '.mjs': ts.Extension.Mjs, '.cjs': ts.Extension.Cjs, '.json': ts.Extension.Json,
16
+ };
17
+ return map[extname(path)] ?? ts.Extension.Ts;
18
+ }
19
+ /** TypeScript's probing for a project-relative path: extensions, `.js` → `.ts`, `index`. */
20
+ function probeProject(fs, base) {
21
+ const ext = extname(base);
22
+ if (fs.isFile(base) && TS_PROBE.includes(ext))
23
+ return base;
24
+ for (const candidate of TS_PROBE)
25
+ if (fs.isFile(base + candidate))
26
+ return base + candidate;
27
+ if (ext === '.js' || ext === '.jsx' || ext === '.mjs' || ext === '.cjs') {
28
+ const stem = base.slice(0, -ext.length);
29
+ for (const alt of ['.ts', '.tsx', '.d.ts', '.mts', '.cts'])
30
+ if (fs.isFile(stem + alt))
31
+ return stem + alt;
32
+ }
33
+ for (const candidate of TS_PROBE)
34
+ if (fs.isFile(join(base, `index${candidate}`)))
35
+ return join(base, `index${candidate}`);
36
+ return undefined;
37
+ }
38
+ export function createVirtualHost(ts, options) {
39
+ const { fs, store } = options;
40
+ const readFile = (path) => {
41
+ if (path === AMBIENT_SHIM_PATH)
42
+ return options.shim;
43
+ if (path === EMPTY_TYPES_PATH)
44
+ return 'export {};\n';
45
+ return fs.readText(path) ?? store.read(path);
46
+ };
47
+ function typesFor(url) {
48
+ return url ? store.virtualPath(url) : undefined;
49
+ }
50
+ function resolveInTypes(specifier, containingUrl) {
51
+ if (isBareSpecifier(specifier))
52
+ return typesFor(store.packages.get(packageRequestUrl(options.typesOrigin, specifier, {})));
53
+ for (const candidate of dtsCandidates(specifier, containingUrl)) {
54
+ const final = store.finalUrl(candidate);
55
+ if (final)
56
+ return typesFor(final);
57
+ }
58
+ return undefined;
59
+ }
60
+ function resolveInProject(specifier, containingFile) {
61
+ if (specifier.includes('?'))
62
+ return undefined; // `?raw`/`?url`: the ambient shim declares them
63
+ if (!isBareSpecifier(specifier)) {
64
+ const base = specifier.startsWith('/') ? normalizePath(specifier) : join(dirname(containingFile), specifier);
65
+ return probeProject(fs, base);
66
+ }
67
+ for (const alias of options.aliases) {
68
+ const matches = alias.wildcard ? specifier.startsWith(alias.prefix) : specifier === alias.prefix;
69
+ if (!matches)
70
+ continue;
71
+ const rest = alias.wildcard ? specifier.slice(alias.prefix.length) : '';
72
+ for (const target of alias.targets) {
73
+ const hit = probeProject(fs, normalizePath(target + rest));
74
+ if (hit)
75
+ return hit;
76
+ }
77
+ }
78
+ return typesFor(store.packages.get(packageRequestUrl(options.typesOrigin, specifier, options.dependencies)));
79
+ }
80
+ function resolveModule(specifier, containingFile) {
81
+ const containingUrl = store.urlOf(containingFile);
82
+ const resolved = containingUrl ? resolveInTypes(specifier, containingUrl) : resolveInProject(specifier, containingFile);
83
+ if (!resolved)
84
+ return undefined;
85
+ return { resolvedFileName: resolved, extension: extensionOf(ts, resolved), isExternalLibraryImport: resolved.startsWith(`${TYPES_DIR}/`) };
86
+ }
87
+ /** `/// <reference types>` resolves the same from anywhere: acquisition keyed it by name. */
88
+ function resolveTypeReference(name) {
89
+ if (SHIMMED_TYPE_REFERENCES.has(name))
90
+ return EMPTY_TYPES_PATH;
91
+ return typesFor(store.packages.get(`types:${name}`));
92
+ }
93
+ return {
94
+ getSourceFile(fileName, languageVersion) {
95
+ const shared = !fs.isFile(fileName);
96
+ const cached = shared ? store.sourceFiles.get(fileName) : undefined;
97
+ if (cached)
98
+ return cached;
99
+ const text = readFile(fileName);
100
+ if (text === undefined)
101
+ return undefined;
102
+ const file = ts.createSourceFile(fileName, text, languageVersion, true);
103
+ // Lib and package files never change for a URL: parse once per store.
104
+ if (shared && fileName !== AMBIENT_SHIM_PATH)
105
+ store.sourceFiles.set(fileName, file);
106
+ return file;
107
+ },
108
+ getDefaultLibFileName: (compilerOptions) => `${LIB_DIR}/${ts.getDefaultLibFileName(compilerOptions)}`,
109
+ getDefaultLibLocation: () => LIB_DIR,
110
+ writeFile: () => undefined,
111
+ getCurrentDirectory: () => '/',
112
+ getCanonicalFileName: (fileName) => fileName,
113
+ useCaseSensitiveFileNames: () => true,
114
+ getNewLine: () => '\n',
115
+ fileExists: (fileName) => readFile(fileName) !== undefined,
116
+ readFile,
117
+ directoryExists: (dir) => fs.isDirectory(dir) || dir.startsWith(TYPES_DIR) || dir === LIB_DIR || dir === SHIM_DIR,
118
+ getDirectories: () => [],
119
+ resolveModuleNameLiterals: (literals, containingFile) => literals.map((literal) => ({ resolvedModule: resolveModule(literal.text, containingFile) })),
120
+ resolveTypeReferenceDirectiveReferences: (references) => references.map((reference) => {
121
+ const resolved = resolveTypeReference(typeof reference === 'string' ? reference : reference.fileName);
122
+ return {
123
+ resolvedTypeReferenceDirective: resolved ? { primary: true, resolvedFileName: resolved, isExternalLibraryImport: true } : undefined,
124
+ };
125
+ }),
126
+ };
127
+ }
128
+ //# sourceMappingURL=compilerHost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compilerHost.js","sourceRoot":"","sources":["../../src/check/compilerHost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type * as TS from 'typescript';
2
+ export type DiagnosticCategory = 'error' | 'warning' | 'suggestion' | 'message';
3
+ /**
4
+ * One problem, in a shape an editor (or an agent) can act on without the
5
+ * TypeScript API: positions are 1-based like an editor's gutter, and `file` is
6
+ * the project-relative path (`src/App.tsx`), the same key `FlatFiles` uses.
7
+ */
8
+ export interface CheckDiagnostic {
9
+ /** Project-relative path; absent for global problems (compiler options, a missing lib). */
10
+ file?: string;
11
+ line: number;
12
+ column: number;
13
+ message: string;
14
+ /** TypeScript's code (2322 for TS2322). */
15
+ code: number;
16
+ category: DiagnosticCategory;
17
+ }
18
+ export declare function toCheckDiagnostic(ts: typeof TS, diagnostic: TS.Diagnostic): CheckDiagnostic;
19
+ /** `src/App.tsx(3,7): error TS2322: Type 'number' is not assignable to type 'string'.` — tsc's own format. */
20
+ export declare function formatDiagnostic(diagnostic: CheckDiagnostic): string;
21
+ /** Stable order (file, then position) and no duplicates — a file in two tsconfig projects reports once. */
22
+ export declare function sortDiagnostics(diagnostics: CheckDiagnostic[]): CheckDiagnostic[];
23
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../../src/check/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,SAAS,CAAC;AAEhF;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,2FAA2F;IAC3F,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAID,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,eAAe,CAM3F;AAED,8GAA8G;AAC9G,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM,CAGpE;AAED,2GAA2G;AAC3G,wBAAgB,eAAe,CAAC,WAAW,EAAE,eAAe,EAAE,GAAG,eAAe,EAAE,CAUjF"}
@@ -0,0 +1,28 @@
1
+ const CATEGORIES = { 0: 'warning', 1: 'error', 2: 'suggestion', 3: 'message' };
2
+ export function toCheckDiagnostic(ts, diagnostic) {
3
+ const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
4
+ const category = CATEGORIES[diagnostic.category] ?? 'error';
5
+ if (!diagnostic.file || diagnostic.start === undefined)
6
+ return { line: 1, column: 1, message, code: diagnostic.code, category };
7
+ const { line, character } = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start);
8
+ return { file: diagnostic.file.fileName.replace(/^\//, ''), line: line + 1, column: character + 1, message, code: diagnostic.code, category };
9
+ }
10
+ /** `src/App.tsx(3,7): error TS2322: Type 'number' is not assignable to type 'string'.` — tsc's own format. */
11
+ export function formatDiagnostic(diagnostic) {
12
+ const where = diagnostic.file ? `${diagnostic.file}(${diagnostic.line},${diagnostic.column}): ` : '';
13
+ return `${where}${diagnostic.category} TS${diagnostic.code}: ${diagnostic.message}`;
14
+ }
15
+ /** Stable order (file, then position) and no duplicates — a file in two tsconfig projects reports once. */
16
+ export function sortDiagnostics(diagnostics) {
17
+ const seen = new Set();
18
+ return diagnostics
19
+ .filter((d) => {
20
+ const key = `${d.file ?? ''}:${d.line}:${d.column}:${d.code}:${d.message}`;
21
+ if (seen.has(key))
22
+ return false;
23
+ seen.add(key);
24
+ return true;
25
+ })
26
+ .sort((a, b) => (a.file ?? '').localeCompare(b.file ?? '') || a.line - b.line || a.column - b.column);
27
+ }
28
+ //# sourceMappingURL=diagnostics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.js","sourceRoot":"","sources":["../../src/check/diagnostics.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,GAAuC,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC;AAEnH,MAAM,UAAU,iBAAiB,CAAC,EAAa,EAAE,UAAyB;IACxE,MAAM,OAAO,GAAG,EAAE,CAAC,4BAA4B,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC9E,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,KAAK,KAAK,SAAS;QAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;IAChI,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,IAAI,CAAC,6BAA6B,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5F,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,MAAM,EAAE,SAAS,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;AAChJ,CAAC;AAED,8GAA8G;AAC9G,MAAM,UAAU,gBAAgB,CAAC,UAA2B;IAC1D,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACrG,OAAO,GAAG,KAAK,GAAG,UAAU,CAAC,QAAQ,MAAM,UAAU,CAAC,IAAI,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;AACtF,CAAC;AAED,2GAA2G;AAC3G,MAAM,UAAU,eAAe,CAAC,WAA8B;IAC5D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,OAAO,WAAW;SACf,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE;QACZ,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3E,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAChC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;AAC1G,CAAC"}
@@ -0,0 +1,19 @@
1
+ /**
2
+ * `@seanhogg/builderforce-webcontainers-core/check` — type-checking a project in
3
+ * memory. A separate entry point because it is typed against the `typescript`
4
+ * package (an optional peer dependency), which the rest of the core never needs.
5
+ */
6
+ export { typecheckProject } from './typecheck.js';
7
+ export type { TypecheckOptions, TypecheckResult } from './typecheck.js';
8
+ export { toCheckDiagnostic, formatDiagnostic, sortDiagnostics } from './diagnostics.js';
9
+ export type { CheckDiagnostic, DiagnosticCategory } from './diagnostics.js';
10
+ export { acquireTypes, acquireExtendedConfigs } from './acquire.js';
11
+ export type { FetchLike, FetchResponseLike, AcquireRequest, AcquireOptions } from './acquire.js';
12
+ export { resolveCheckProjects, defaultCompilerOptions, createParseConfigHost } from './projects.js';
13
+ export type { CheckProject } from './projects.js';
14
+ export { createVirtualHost } from './compilerHost.js';
15
+ export type { VirtualHostOptions } from './compilerHost.js';
16
+ export { ambientShim, declaresModule, AMBIENT_SHIM_PATH, SHIMMED_TYPE_REFERENCES } from './shims.js';
17
+ export { TypeStore, libBaseUrlFor, typesPackageName, dtsCandidates, packageRequestUrl, DEFAULT_TYPES_ORIGIN, DEFAULT_NPM_BASE_URL, TYPES_DIR, LIB_DIR, } from './typeStore.js';
18
+ export type { TypeSources } from './typeStore.js';
19
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACpE,YAAY,EAAE,SAAS,EAAE,iBAAiB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACpG,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,OAAO,GACR,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * `@seanhogg/builderforce-webcontainers-core/check` — type-checking a project in
3
+ * memory. A separate entry point because it is typed against the `typescript`
4
+ * package (an optional peer dependency), which the rest of the core never needs.
5
+ */
6
+ export { typecheckProject } from './typecheck.js';
7
+ export { toCheckDiagnostic, formatDiagnostic, sortDiagnostics } from './diagnostics.js';
8
+ export { acquireTypes, acquireExtendedConfigs } from './acquire.js';
9
+ export { resolveCheckProjects, defaultCompilerOptions, createParseConfigHost } from './projects.js';
10
+ export { createVirtualHost } from './compilerHost.js';
11
+ export { ambientShim, declaresModule, AMBIENT_SHIM_PATH, SHIMMED_TYPE_REFERENCES } from './shims.js';
12
+ export { TypeStore, libBaseUrlFor, typesPackageName, dtsCandidates, packageRequestUrl, DEFAULT_TYPES_ORIGIN, DEFAULT_NPM_BASE_URL, TYPES_DIR, LIB_DIR, } from './typeStore.js';
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/check/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExF,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAEpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AACrG,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACT,OAAO,GACR,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type * as TS from 'typescript';
2
+ import type { VirtualFileSystem } from '../vfs.js';
3
+ import type { TypeStore } from './typeStore.js';
4
+ /**
5
+ * Which programs to build, with which options, over which files — what `tsc -b`
6
+ * would derive from the project's tsconfig files.
7
+ *
8
+ * Vite's templates keep a root `tsconfig.json` holding only `references` (to
9
+ * `tsconfig.app.json` and `tsconfig.node.json`); each reference is its own
10
+ * program. With no tsconfig at all, the checker synthesises Vite's defaults for
11
+ * a React + TS app, so a generated project with no config still gets checked.
12
+ */
13
+ export interface CheckProject {
14
+ /** The tsconfig this came from; undefined when synthesised. */
15
+ configPath?: string;
16
+ options: TS.CompilerOptions;
17
+ rootNames: string[];
18
+ /** Problems parsing the config itself. */
19
+ errors: readonly TS.Diagnostic[];
20
+ }
21
+ /** Vite's React + TS template, made strict-ish; what a project with no tsconfig gets. */
22
+ export declare function defaultCompilerOptions(ts: typeof TS, jsxImportSource?: string): TS.CompilerOptions;
23
+ /** The ParseConfigHost the config parser reads through: the VFS plus fetched `extends` packages. */
24
+ export declare function createParseConfigHost(fs: VirtualFileSystem, store: TypeStore): TS.ParseConfigHost;
25
+ export declare function resolveCheckProjects(ts: typeof TS, fs: VirtualFileSystem, store: TypeStore, jsxImportSource?: string): CheckProject[];
26
+ //# sourceMappingURL=projects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/check/projects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAEnD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,EAAE,CAAC,eAAe,CAAC;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,0CAA0C;IAC1C,MAAM,EAAE,SAAS,EAAE,CAAC,UAAU,EAAE,CAAC;CAClC;AAQD,yFAAyF;AACzF,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,EAAE,CAAC,eAAe,CAiBlG;AAuCD,oGAAoG;AACpG,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,GAAG,EAAE,CAAC,eAAe,CAgBjG;AAsBD,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,iBAAiB,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAuBrI"}