@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 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/node/fs/stats.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,98 @@
1
+ /**
2
+ * The synchronous fs API over the VirtualFileSystem. Everything else (callback,
3
+ * promise and stream forms) is layered on these in index.ts, so error codes and
4
+ * edge cases live in exactly one place.
5
+ */
6
+ import type { VirtualFileSystem } from '../../vfs.js';
7
+ import { Buffer } from '../buffer.js';
8
+ import { Dirent, Stats } from './stats.js';
9
+ export interface FsContext {
10
+ vfs: VirtualFileSystem;
11
+ cwd(): string;
12
+ /** fd 1 and 2: `fs.writeSync(1, …)` is how some CLIs print. */
13
+ stdout(chunk: string | Uint8Array): void;
14
+ stderr(chunk: string | Uint8Array): void;
15
+ }
16
+ type PathLike = string | Uint8Array | URL;
17
+ type Data = string | ArrayBufferView;
18
+ type EncodingOption = string | null | undefined | {
19
+ encoding?: string | null;
20
+ flag?: string;
21
+ withFileTypes?: boolean;
22
+ recursive?: boolean;
23
+ force?: boolean;
24
+ mode?: number;
25
+ throwIfNoEntry?: boolean;
26
+ };
27
+ export declare function createSyncFs(ctx: FsContext): {
28
+ existsSync: (p: PathLike) => boolean;
29
+ accessSync(p: PathLike): void;
30
+ statSync: (p: PathLike, options?: {
31
+ throwIfNoEntry?: boolean;
32
+ }) => Stats | undefined;
33
+ lstatSync: (p: PathLike, options?: {
34
+ throwIfNoEntry?: boolean;
35
+ }) => Stats | undefined;
36
+ fstatSync: (fd: number) => Stats;
37
+ readFileSync(p: PathLike | number, options?: EncodingOption): string | Buffer;
38
+ writeFileSync: (p: PathLike | number, data: Data, options?: EncodingOption) => number | undefined;
39
+ appendFileSync: (p: PathLike | number, data: Data, options?: EncodingOption) => number | undefined;
40
+ mkdirSync: (p: PathLike, options?: EncodingOption | number) => string | undefined;
41
+ mkdtempSync(prefix: string): string;
42
+ readdirSync(p: PathLike, options?: EncodingOption): (string | Buffer)[] | Dirent[];
43
+ rmSync: (p: PathLike, options?: {
44
+ recursive?: boolean;
45
+ force?: boolean;
46
+ }) => void;
47
+ rmdirSync(p: PathLike, options?: {
48
+ recursive?: boolean;
49
+ }): void;
50
+ unlinkSync(p: PathLike): void;
51
+ renameSync(a: PathLike, b: PathLike): void;
52
+ copyFileSync: (src: PathLike, dest: PathLike, mode?: number) => void;
53
+ cpSync(src: PathLike, dest: PathLike, options?: {
54
+ recursive?: boolean;
55
+ force?: boolean;
56
+ }): void;
57
+ realpathSync: ((p: PathLike) => string) & {
58
+ native: (p: PathLike) => string;
59
+ };
60
+ readlinkSync: (p: PathLike) => never;
61
+ /** No symlinks in the VFS: a link to a file becomes a copy of it. */
62
+ symlinkSync(target: PathLike, p: PathLike): void;
63
+ linkSync: (a: PathLike, b: PathLike) => void;
64
+ truncateSync(p: PathLike, length?: number): void;
65
+ chmodSync: (p: PathLike) => undefined;
66
+ lchmodSync: (p: PathLike) => undefined;
67
+ chownSync: (p: PathLike) => undefined;
68
+ lchownSync: (p: PathLike) => undefined;
69
+ utimesSync: (p: PathLike) => undefined;
70
+ lutimesSync: (p: PathLike) => undefined;
71
+ fchmodSync: (fd: number) => undefined;
72
+ fchownSync: (fd: number) => undefined;
73
+ futimesSync: (fd: number) => undefined;
74
+ fsyncSync: (fd: number) => undefined;
75
+ fdatasyncSync: (fd: number) => undefined;
76
+ ftruncateSync: (fd: number, length?: number) => void;
77
+ openSync: (p: PathLike, flags?: string | number) => number;
78
+ closeSync(fd: number): void;
79
+ readSync(fd: number, buffer: ArrayBufferView, offsetOrOptions?: number | {
80
+ offset?: number;
81
+ length?: number;
82
+ position?: number | null;
83
+ }, length?: number, position?: number | null): number;
84
+ writeSync: (fd: number, data: Data | Uint8Array, offset?: number | string | null, length?: number, position?: number | null) => number;
85
+ opendirSync(p: PathLike): {
86
+ path: string;
87
+ readSync: () => Dirent | null;
88
+ read: () => Promise<Dirent | null>;
89
+ closeSync: () => undefined;
90
+ close: () => Promise<undefined>;
91
+ [Symbol.asyncIterator](): AsyncGenerator<Dirent, void, unknown>;
92
+ };
93
+ /** For the stream and watch layers. */
94
+ _resolve: (p: PathLike) => string;
95
+ };
96
+ export type SyncFs = ReturnType<typeof createSyncFs>;
97
+ export {};
98
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../../src/node/fs/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,348 @@
1
+ import { normalizePath, dirname, join } from '../../paths.js';
2
+ import { Buffer, encode } from '../buffer.js';
3
+ import { Dirent, fsError, Stats, constants } from './stats.js';
4
+ const encodingOf = (options) => (typeof options === 'string' ? options : options?.encoding);
5
+ export function createSyncFs(ctx) {
6
+ const { vfs } = ctx;
7
+ const fds = new Map();
8
+ let nextFd = 20;
9
+ const resolve = (p) => {
10
+ if (p instanceof URL) {
11
+ if (p.protocol !== 'file:')
12
+ throw new TypeError('The URL must be of scheme file');
13
+ return normalizePath(decodeURIComponent(p.pathname));
14
+ }
15
+ const text = typeof p === 'string' ? p : new TextDecoder().decode(p);
16
+ if (typeof text !== 'string')
17
+ throw new TypeError('The "path" argument must be of type string, Buffer or URL');
18
+ if (text.startsWith('file://'))
19
+ return normalizePath(decodeURIComponent(new URL(text).pathname));
20
+ return text.startsWith('/') ? normalizePath(text) : join(ctx.cwd(), text);
21
+ };
22
+ const bytesOf = (path) => {
23
+ const contents = vfs.readFile(path);
24
+ return typeof contents === 'string' ? encode(contents) : contents;
25
+ };
26
+ const requireParent = (path, syscall) => {
27
+ const parent = dirname(path);
28
+ if (vfs.isFile(parent))
29
+ throw fsError('ENOTDIR', syscall, path);
30
+ if (!vfs.isDirectory(parent))
31
+ throw fsError('ENOENT', syscall, path);
32
+ };
33
+ const toStored = (data, encoding) => {
34
+ if (typeof data === 'string')
35
+ return !encoding || /^utf-?8$/i.test(encoding) ? data : encode(data, encoding).slice();
36
+ return new Uint8Array(data.buffer, data.byteOffset, data.byteLength).slice();
37
+ };
38
+ const stat = (p, options) => {
39
+ const path = resolve(p);
40
+ if (vfs.isFile(path))
41
+ return new Stats(path, 'file', bytesOf(path).length, vfs.mtime(path) ?? Date.now());
42
+ if (vfs.isDirectory(path))
43
+ return new Stats(path, 'directory', 4096, 0);
44
+ if (options?.throwIfNoEntry === false)
45
+ return undefined;
46
+ throw fsError('ENOENT', 'stat', path);
47
+ };
48
+ const writeFile = (p, data, options) => {
49
+ if (typeof p === 'number')
50
+ return writeFd(p, data);
51
+ const path = resolve(p);
52
+ const flag = typeof options === 'object' && options ? options.flag ?? 'w' : 'w';
53
+ if (vfs.isDirectory(path))
54
+ throw fsError('EISDIR', 'open', path);
55
+ requireParent(path, 'open');
56
+ if (flag.includes('x') && vfs.isFile(path))
57
+ throw fsError('EEXIST', 'open', path);
58
+ if (flag.startsWith('a') && vfs.isFile(path)) {
59
+ const before = vfs.readFile(path);
60
+ const add = toStored(data, encodingOf(options));
61
+ vfs.writeFile(path, typeof before === 'string' && typeof add === 'string' ? before + add : Buffer.concat([typeof before === 'string' ? encode(before) : before, typeof add === 'string' ? encode(add) : add]));
62
+ return;
63
+ }
64
+ vfs.writeFile(path, toStored(data, encodingOf(options)));
65
+ };
66
+ const writeFd = (fd, data, offset, length, position) => {
67
+ const bytes = typeof data === 'string' ? encode(data, typeof offset === 'string' ? offset : undefined) : new Uint8Array(data.buffer, data.byteOffset + (typeof offset === 'number' ? offset : 0), length ?? data.byteLength - (typeof offset === 'number' ? offset : 0));
68
+ if (fd === 1 || fd === 2) {
69
+ (fd === 1 ? ctx.stdout : ctx.stderr)(bytes.slice());
70
+ return bytes.length;
71
+ }
72
+ const file = fds.get(fd);
73
+ if (!file || file.flags === 'r')
74
+ throw fsError('EBADF', 'write');
75
+ const current = vfs.isFile(file.path) ? bytesOf(file.path) : new Uint8Array();
76
+ const at = file.flags.startsWith('a') ? current.length : position ?? file.position;
77
+ const next = new Uint8Array(Math.max(current.length, at + bytes.length));
78
+ next.set(current);
79
+ next.set(bytes, at);
80
+ vfs.writeFile(file.path, next);
81
+ if (position === undefined || position === null)
82
+ file.position = at + bytes.length;
83
+ return bytes.length;
84
+ };
85
+ const readdirEntries = (dir, recursive, prefix = '') => {
86
+ const out = [];
87
+ for (const name of vfs.readdir(dir)) {
88
+ const full = join(dir, name);
89
+ const kind = vfs.isDirectory(full) ? 'directory' : 'file';
90
+ out.push({ name: prefix + name, parent: dir, kind });
91
+ if (recursive && kind === 'directory')
92
+ out.push(...readdirEntries(full, true, `${prefix}${name}/`));
93
+ }
94
+ return out;
95
+ };
96
+ const mkdir = (p, options) => {
97
+ const path = resolve(p);
98
+ const recursive = typeof options === 'object' && !!options?.recursive;
99
+ if (vfs.isFile(path))
100
+ throw fsError('EEXIST', 'mkdir', path);
101
+ if (vfs.isDirectory(path)) {
102
+ if (recursive)
103
+ return undefined;
104
+ throw fsError('EEXIST', 'mkdir', path);
105
+ }
106
+ if (!recursive)
107
+ requireParent(path, 'mkdir');
108
+ let first;
109
+ for (let dir = path; !vfs.isDirectory(dir); dir = dirname(dir)) {
110
+ if (vfs.isFile(dir))
111
+ throw fsError('ENOTDIR', 'mkdir', path);
112
+ first = dir;
113
+ }
114
+ vfs.mkdir(path);
115
+ return recursive ? first : undefined;
116
+ };
117
+ const rm = (p, options) => {
118
+ const path = resolve(p);
119
+ if (!vfs.exists(path)) {
120
+ if (options?.force)
121
+ return;
122
+ throw fsError('ENOENT', 'rm', path);
123
+ }
124
+ if (vfs.isDirectory(path) && !options?.recursive)
125
+ throw Object.assign(fsError('EISDIR', 'rm', path), { code: 'ERR_FS_EISDIR' });
126
+ vfs.rm(path);
127
+ };
128
+ const copyFile = (src, dest, mode = 0) => {
129
+ const from = resolve(src);
130
+ const to = resolve(dest);
131
+ if (!vfs.isFile(from))
132
+ throw fsError(vfs.isDirectory(from) ? 'EISDIR' : 'ENOENT', 'copyfile', from, to);
133
+ if (mode & constants.COPYFILE_EXCL && vfs.exists(to))
134
+ throw fsError('EEXIST', 'copyfile', from, to);
135
+ requireParent(to, 'copyfile');
136
+ const contents = vfs.readFile(from);
137
+ vfs.writeFile(to, typeof contents === 'string' ? contents : contents.slice());
138
+ };
139
+ const copyTree = (from, to) => {
140
+ if (vfs.isFile(from)) {
141
+ const contents = vfs.readFile(from);
142
+ vfs.writeFile(to, typeof contents === 'string' ? contents : contents.slice());
143
+ return;
144
+ }
145
+ vfs.mkdir(to);
146
+ for (const name of vfs.readdir(from))
147
+ copyTree(join(from, name), join(to, name));
148
+ };
149
+ const open = (p, flags = 'r') => {
150
+ const path = resolve(p);
151
+ const f = typeof flags === 'number' ? (flags & constants.O_APPEND ? 'a' : flags & (constants.O_WRONLY | constants.O_RDWR) ? 'w' : 'r') : flags;
152
+ if (vfs.isDirectory(path) && f !== 'r')
153
+ throw fsError('EISDIR', 'open', path);
154
+ if (f.startsWith('r')) {
155
+ if (!vfs.exists(path))
156
+ throw fsError('ENOENT', 'open', path);
157
+ }
158
+ else {
159
+ if (f.includes('x') && vfs.exists(path))
160
+ throw fsError('EEXIST', 'open', path);
161
+ requireParent(path, 'open');
162
+ if (f.startsWith('w') || !vfs.isFile(path))
163
+ vfs.writeFile(path, '');
164
+ }
165
+ const fd = nextFd++;
166
+ fds.set(fd, { path, flags: f, position: 0 });
167
+ return fd;
168
+ };
169
+ const fileOf = (fd, syscall) => {
170
+ const file = fds.get(fd);
171
+ if (!file)
172
+ throw fsError('EBADF', syscall);
173
+ return file;
174
+ };
175
+ const api = {
176
+ existsSync: (p) => {
177
+ try {
178
+ return vfs.exists(resolve(p));
179
+ }
180
+ catch {
181
+ return false;
182
+ }
183
+ },
184
+ accessSync(p) {
185
+ const path = resolve(p);
186
+ if (!vfs.exists(path))
187
+ throw fsError('ENOENT', 'access', path);
188
+ },
189
+ statSync: stat,
190
+ lstatSync: stat,
191
+ fstatSync: (fd) => stat(fileOf(fd, 'fstat').path),
192
+ readFileSync(p, options) {
193
+ if (p === 0)
194
+ return Buffer.alloc(0); // stdin is not readable synchronously here
195
+ const path = typeof p === 'number' ? fileOf(p, 'read').path : resolve(p);
196
+ if (vfs.isDirectory(path))
197
+ throw fsError('EISDIR', 'read', path);
198
+ const contents = vfs.readFile(path);
199
+ if (contents === undefined)
200
+ throw fsError('ENOENT', 'open', path);
201
+ const encoding = encodingOf(options);
202
+ if (encoding)
203
+ return typeof contents === 'string' && /^utf-?8$/i.test(encoding) ? contents : Buffer.from(typeof contents === 'string' ? encode(contents) : contents).toString(encoding);
204
+ return Buffer.from(typeof contents === 'string' ? encode(contents) : contents);
205
+ },
206
+ writeFileSync: writeFile,
207
+ appendFileSync: (p, data, options) => writeFile(p, data, { ...(typeof options === 'string' ? { encoding: options } : options ?? {}), flag: 'a' }),
208
+ mkdirSync: mkdir,
209
+ mkdtempSync(prefix) {
210
+ const path = `${prefix}${Math.random().toString(36).slice(2, 8)}`;
211
+ mkdir(path);
212
+ return resolve(path);
213
+ },
214
+ readdirSync(p, options) {
215
+ const path = resolve(p);
216
+ if (vfs.isFile(path))
217
+ throw fsError('ENOTDIR', 'scandir', path);
218
+ if (!vfs.isDirectory(path))
219
+ throw fsError('ENOENT', 'scandir', path);
220
+ const opts = typeof options === 'object' ? options : undefined;
221
+ const entries = readdirEntries(path, !!opts?.recursive);
222
+ if (opts?.withFileTypes)
223
+ return entries.map((e) => new Dirent(e.name.slice(e.name.lastIndexOf('/') + 1), e.name.includes('/') ? join(path, e.name, '..') : e.parent, e.kind));
224
+ return entries.map((e) => (encodingOf(options) === 'buffer' ? Buffer.from(e.name) : e.name));
225
+ },
226
+ rmSync: rm,
227
+ rmdirSync(p, options) {
228
+ const path = resolve(p);
229
+ if (vfs.isFile(path))
230
+ throw fsError('ENOTDIR', 'rmdir', path);
231
+ if (!vfs.isDirectory(path))
232
+ throw fsError('ENOENT', 'rmdir', path);
233
+ if (vfs.readdir(path).length && !options?.recursive)
234
+ throw fsError('ENOTEMPTY', 'rmdir', path);
235
+ vfs.rm(path);
236
+ },
237
+ unlinkSync(p) {
238
+ const path = resolve(p);
239
+ if (vfs.isDirectory(path))
240
+ throw fsError('EISDIR', 'unlink', path);
241
+ if (!vfs.isFile(path))
242
+ throw fsError('ENOENT', 'unlink', path);
243
+ vfs.rm(path);
244
+ },
245
+ renameSync(a, b) {
246
+ const from = resolve(a);
247
+ const to = resolve(b);
248
+ if (!vfs.exists(from))
249
+ throw fsError('ENOENT', 'rename', from, to);
250
+ if (from === to)
251
+ return;
252
+ if (vfs.isDirectory(to) && vfs.isFile(from))
253
+ throw fsError('EISDIR', 'rename', from, to);
254
+ requireParent(to, 'rename');
255
+ if (vfs.isFile(to) && vfs.isDirectory(from))
256
+ throw fsError('ENOTDIR', 'rename', from, to);
257
+ vfs.rm(to);
258
+ copyTree(from, to);
259
+ vfs.rm(from);
260
+ },
261
+ copyFileSync: copyFile,
262
+ cpSync(src, dest, options) {
263
+ const from = resolve(src);
264
+ if (vfs.isDirectory(from) && !options?.recursive)
265
+ throw Object.assign(fsError('EISDIR', 'cp', from), { code: 'ERR_FS_EISDIR' });
266
+ if (!vfs.exists(from))
267
+ throw fsError('ENOENT', 'cp', from);
268
+ copyTree(from, resolve(dest));
269
+ },
270
+ realpathSync: Object.assign((p) => {
271
+ const path = resolve(p);
272
+ if (!vfs.exists(path))
273
+ throw fsError('ENOENT', 'realpath', path);
274
+ return path;
275
+ }, { native: (p) => api.realpathSync(p) }),
276
+ readlinkSync: (p) => {
277
+ throw fsError('EINVAL', 'readlink', resolve(p));
278
+ },
279
+ /** No symlinks in the VFS: a link to a file becomes a copy of it. */
280
+ symlinkSync(target, p) {
281
+ const path = resolve(p);
282
+ const from = typeof target === 'string' && !target.startsWith('/') ? join(dirname(path), target) : resolve(target);
283
+ copyTree(from, path);
284
+ },
285
+ linkSync: (a, b) => copyFile(a, b),
286
+ truncateSync(p, length = 0) {
287
+ const path = resolve(p);
288
+ if (!vfs.isFile(path))
289
+ throw fsError('ENOENT', 'open', path);
290
+ const bytes = bytesOf(path);
291
+ const next = new Uint8Array(length);
292
+ next.set(bytes.subarray(0, length));
293
+ vfs.writeFile(path, next);
294
+ },
295
+ chmodSync: (p) => void api.accessSync(p),
296
+ lchmodSync: (p) => void api.accessSync(p),
297
+ chownSync: (p) => void api.accessSync(p),
298
+ lchownSync: (p) => void api.accessSync(p),
299
+ utimesSync: (p) => void api.accessSync(p),
300
+ lutimesSync: (p) => void api.accessSync(p),
301
+ fchmodSync: (fd) => void fileOf(fd, 'fchmod'),
302
+ fchownSync: (fd) => void fileOf(fd, 'fchown'),
303
+ futimesSync: (fd) => void fileOf(fd, 'futimes'),
304
+ fsyncSync: (fd) => void fileOf(fd, 'fsync'),
305
+ fdatasyncSync: (fd) => void fileOf(fd, 'fdatasync'),
306
+ ftruncateSync: (fd, length = 0) => api.truncateSync(fileOf(fd, 'ftruncate').path, length),
307
+ openSync: open,
308
+ closeSync(fd) {
309
+ if (fd > 2)
310
+ fileOf(fd, 'close');
311
+ fds.delete(fd);
312
+ },
313
+ readSync(fd, buffer, offsetOrOptions, length, position) {
314
+ const opts = typeof offsetOrOptions === 'object' ? offsetOrOptions : { offset: offsetOrOptions, length, position };
315
+ const file = fileOf(fd, 'read');
316
+ const bytes = bytesOf(file.path);
317
+ const target = new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);
318
+ const offset = opts.offset ?? 0;
319
+ const from = opts.position ?? file.position;
320
+ const chunk = bytes.subarray(from, from + Math.min(opts.length ?? target.length - offset, target.length - offset));
321
+ target.set(chunk, offset);
322
+ if (opts.position === undefined || opts.position === null)
323
+ file.position = from + chunk.length;
324
+ return chunk.length;
325
+ },
326
+ writeSync: writeFd,
327
+ opendirSync(p) {
328
+ const path = resolve(p);
329
+ const entries = api.readdirSync(path, { withFileTypes: true });
330
+ let i = 0;
331
+ return {
332
+ path,
333
+ readSync: () => entries[i++] ?? null,
334
+ read: async () => entries[i++] ?? null,
335
+ closeSync: () => undefined,
336
+ close: async () => undefined,
337
+ async *[Symbol.asyncIterator]() {
338
+ while (i < entries.length)
339
+ yield entries[i++];
340
+ },
341
+ };
342
+ },
343
+ /** For the stream and watch layers. */
344
+ _resolve: resolve,
345
+ };
346
+ return api;
347
+ }
348
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/node/fs/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Synchronous message digests for `crypto.createHash` — WebCrypto's digest is
3
+ * async-only, and Node's API is sync. md5, sha1, sha256, sha224, sha384, sha512.
4
+ * Inputs are buffered and hashed at `digest()`, which keeps each algorithm a
5
+ * single pure function.
6
+ */
7
+ export declare const HASHES: Record<string, {
8
+ digest(data: Uint8Array): Uint8Array;
9
+ blockSize: number;
10
+ }>;
11
+ export declare function hashAlgorithm(name: string): {
12
+ digest(data: Uint8Array): Uint8Array;
13
+ blockSize: number;
14
+ };
15
+ //# sourceMappingURL=hashes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hashes.d.ts","sourceRoot":"","sources":["../../src/node/hashes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuJH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAO9F,CAAC;AAEF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG;IAAE,MAAM,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAKvG"}