@eidos.space/just-bash 3.0.2

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 (899) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/LICENSE +201 -0
  3. package/README.md +609 -0
  4. package/dist/AGENTS.md +325 -0
  5. package/dist/Bash.d.ts +257 -0
  6. package/dist/ast/types.d.ts +609 -0
  7. package/dist/banned-patterns-test.d.ts +1 -0
  8. package/dist/bin/chunks/alias-YRVAW27Y.js +3 -0
  9. package/dist/bin/chunks/awk2-RLMNTGI7.js +3 -0
  10. package/dist/bin/chunks/base64-RZRLGMB3.js +3 -0
  11. package/dist/bin/chunks/basename-F3AQ4KAQ.js +3 -0
  12. package/dist/bin/chunks/bash-CLP24TE2.js +3 -0
  13. package/dist/bin/chunks/cat-LQH5FSAR.js +3 -0
  14. package/dist/bin/chunks/chmod-S564JCJW.js +3 -0
  15. package/dist/bin/chunks/chunk-22HCD466.js +3 -0
  16. package/dist/bin/chunks/chunk-2AIXTPH2.js +9 -0
  17. package/dist/bin/chunks/chunk-2ETT4ELS.js +4 -0
  18. package/dist/bin/chunks/chunk-2GG3NVC4.js +10 -0
  19. package/dist/bin/chunks/chunk-2NRAWO6E.js +7 -0
  20. package/dist/bin/chunks/chunk-2SVX7I5P.js +14 -0
  21. package/dist/bin/chunks/chunk-3BYTCO2H.js +12 -0
  22. package/dist/bin/chunks/chunk-3MRB66F4.js +3 -0
  23. package/dist/bin/chunks/chunk-3UKQXBQ3.js +6 -0
  24. package/dist/bin/chunks/chunk-3WIMLJM7.js +8 -0
  25. package/dist/bin/chunks/chunk-47WZ2U6M.js +9 -0
  26. package/dist/bin/chunks/chunk-4KSZJAQK.js +6 -0
  27. package/dist/bin/chunks/chunk-5XSZHUEI.js +15 -0
  28. package/dist/bin/chunks/chunk-6FSBHK6H.js +22 -0
  29. package/dist/bin/chunks/chunk-6WJQNLR2.js +7 -0
  30. package/dist/bin/chunks/chunk-77MLOOQS.js +11 -0
  31. package/dist/bin/chunks/chunk-7AYT3UKI.js +6 -0
  32. package/dist/bin/chunks/chunk-7JZKVC3F.js +2 -0
  33. package/dist/bin/chunks/chunk-7NC4CPHS.js +20 -0
  34. package/dist/bin/chunks/chunk-7UU7KPEM.js +7 -0
  35. package/dist/bin/chunks/chunk-7VCQWCSH.js +15 -0
  36. package/dist/bin/chunks/chunk-AGKL4LDL.js +4 -0
  37. package/dist/bin/chunks/chunk-AJF3OBTR.js +4 -0
  38. package/dist/bin/chunks/chunk-ALVEEXFD.js +19 -0
  39. package/dist/bin/chunks/chunk-B2DRBHGQ.js +3 -0
  40. package/dist/bin/chunks/chunk-BE4PARL3.js +13 -0
  41. package/dist/bin/chunks/chunk-BGX3RW7H.js +10 -0
  42. package/dist/bin/chunks/chunk-BIJXTWZ4.js +3 -0
  43. package/dist/bin/chunks/chunk-BPZJYOUA.js +33 -0
  44. package/dist/bin/chunks/chunk-BZP56QBM.js +24 -0
  45. package/dist/bin/chunks/chunk-C7ISPH7Y.js +18 -0
  46. package/dist/bin/chunks/chunk-CAZ75E7E.js +3 -0
  47. package/dist/bin/chunks/chunk-D6CPXGKK.js +75 -0
  48. package/dist/bin/chunks/chunk-DJAX3ZRG.js +8 -0
  49. package/dist/bin/chunks/chunk-DYIBFLS3.js +17 -0
  50. package/dist/bin/chunks/chunk-EDTBGO7F.js +37 -0
  51. package/dist/bin/chunks/chunk-F3GKANW3.js +12 -0
  52. package/dist/bin/chunks/chunk-F3WNDKOC.js +3 -0
  53. package/dist/bin/chunks/chunk-FKVQZWJQ.js +10 -0
  54. package/dist/bin/chunks/chunk-FOUVACI7.js +16 -0
  55. package/dist/bin/chunks/chunk-FVRXEJYQ.js +141 -0
  56. package/dist/bin/chunks/chunk-G4AUMZUY.js +4 -0
  57. package/dist/bin/chunks/chunk-H7JTIXAO.js +4 -0
  58. package/dist/bin/chunks/chunk-HL4ZS7TX.js +6 -0
  59. package/dist/bin/chunks/chunk-HN2DCT7T.js +13 -0
  60. package/dist/bin/chunks/chunk-I4IRHQDW.js +3 -0
  61. package/dist/bin/chunks/chunk-IEXQTXU5.js +34 -0
  62. package/dist/bin/chunks/chunk-IZGLHVBB.js +8 -0
  63. package/dist/bin/chunks/chunk-J7TUF2VI.js +9 -0
  64. package/dist/bin/chunks/chunk-JNUX75OX.js +85 -0
  65. package/dist/bin/chunks/chunk-JXLDT4KX.js +4 -0
  66. package/dist/bin/chunks/chunk-JZW7NFK2.js +288 -0
  67. package/dist/bin/chunks/chunk-KFMPGSUT.js +9 -0
  68. package/dist/bin/chunks/chunk-KI54R2QB.js +3 -0
  69. package/dist/bin/chunks/chunk-KRRM5UCC.js +3 -0
  70. package/dist/bin/chunks/chunk-KUMHQGUR.js +3 -0
  71. package/dist/bin/chunks/chunk-L24QXM5S.js +34 -0
  72. package/dist/bin/chunks/chunk-LAHBP3FW.js +11 -0
  73. package/dist/bin/chunks/chunk-LC6D27QJ.js +3 -0
  74. package/dist/bin/chunks/chunk-LNNWMRCB.js +3 -0
  75. package/dist/bin/chunks/chunk-LNVSXNT7.js +3 -0
  76. package/dist/bin/chunks/chunk-LSQTB2QK.js +7 -0
  77. package/dist/bin/chunks/chunk-M65CQLJE.js +101 -0
  78. package/dist/bin/chunks/chunk-MLUOPG3W.js +3 -0
  79. package/dist/bin/chunks/chunk-MNWK4UIM.js +22 -0
  80. package/dist/bin/chunks/chunk-MROECM42.js +3 -0
  81. package/dist/bin/chunks/chunk-MUFNRCMY.js +24 -0
  82. package/dist/bin/chunks/chunk-N6YW4W3Z.js +29 -0
  83. package/dist/bin/chunks/chunk-NE4R2FVV.js +5 -0
  84. package/dist/bin/chunks/chunk-NXVG64T3.js +22 -0
  85. package/dist/bin/chunks/chunk-NYIPFY36.js +3 -0
  86. package/dist/bin/chunks/chunk-O2BCKSMK.js +3 -0
  87. package/dist/bin/chunks/chunk-OLEQNRKX.js +8 -0
  88. package/dist/bin/chunks/chunk-OPMLWMNH.js +17 -0
  89. package/dist/bin/chunks/chunk-PAYQNSZN.js +18 -0
  90. package/dist/bin/chunks/chunk-PBOVSFTJ.js +3 -0
  91. package/dist/bin/chunks/chunk-PXP4YYZA.js +13 -0
  92. package/dist/bin/chunks/chunk-PZQVSQX6.js +4 -0
  93. package/dist/bin/chunks/chunk-Q2GOPGDA.js +6 -0
  94. package/dist/bin/chunks/chunk-Q4UMTSRO.js +15 -0
  95. package/dist/bin/chunks/chunk-QL33F2W6.js +8 -0
  96. package/dist/bin/chunks/chunk-RVPTAYDS.js +4 -0
  97. package/dist/bin/chunks/chunk-SMSELHIY.js +12 -0
  98. package/dist/bin/chunks/chunk-UGJM7CKP.js +17 -0
  99. package/dist/bin/chunks/chunk-UO5LOD7U.js +12 -0
  100. package/dist/bin/chunks/chunk-UOMNSQEZ.js +10 -0
  101. package/dist/bin/chunks/chunk-UR4CEP4Y.js +3 -0
  102. package/dist/bin/chunks/chunk-V2RP73X4.js +15 -0
  103. package/dist/bin/chunks/chunk-VBDLSL7Y.js +10 -0
  104. package/dist/bin/chunks/chunk-VZK4FHWJ.js +3 -0
  105. package/dist/bin/chunks/chunk-WDWNEHHE.js +9 -0
  106. package/dist/bin/chunks/chunk-X4MX6EHF.js +6 -0
  107. package/dist/bin/chunks/chunk-XBB73LFB.js +5 -0
  108. package/dist/bin/chunks/chunk-XFFUAO3F.js +3 -0
  109. package/dist/bin/chunks/chunk-XHCCSVP6.js +9 -0
  110. package/dist/bin/chunks/chunk-XJ37N3S5.js +7 -0
  111. package/dist/bin/chunks/chunk-XPTYN6UE.js +8 -0
  112. package/dist/bin/chunks/chunk-XRUDFQG5.js +7 -0
  113. package/dist/bin/chunks/chunk-Y4FPH5DQ.js +64 -0
  114. package/dist/bin/chunks/chunk-YJ5OCPSK.js +7 -0
  115. package/dist/bin/chunks/chunk-YOIFOOGX.js +9 -0
  116. package/dist/bin/chunks/chunk-YOKQNNQO.js +6 -0
  117. package/dist/bin/chunks/chunk-YUZRUF5F.js +10 -0
  118. package/dist/bin/chunks/chunk-YY5PJR7O.js +7 -0
  119. package/dist/bin/chunks/chunk-ZFUVUYWG.js +15 -0
  120. package/dist/bin/chunks/clear-FGNEKYDU.js +3 -0
  121. package/dist/bin/chunks/column-AQB3A3PJ.js +3 -0
  122. package/dist/bin/chunks/comm-Q4VDF6ZO.js +3 -0
  123. package/dist/bin/chunks/cp-HYXTMN3D.js +3 -0
  124. package/dist/bin/chunks/curl-PLHETP4J.js +27 -0
  125. package/dist/bin/chunks/cut-ZI2HIAW7.js +3 -0
  126. package/dist/bin/chunks/date-JEZYSA4F.js +3 -0
  127. package/dist/bin/chunks/diff-YDJ42RKS.js +3 -0
  128. package/dist/bin/chunks/dirname-VCINTLPD.js +3 -0
  129. package/dist/bin/chunks/du-4LRQIGRG.js +3 -0
  130. package/dist/bin/chunks/echo-KCOHTNDF.js +3 -0
  131. package/dist/bin/chunks/env-NY32PQJM.js +3 -0
  132. package/dist/bin/chunks/expand-YYSO35NS.js +3 -0
  133. package/dist/bin/chunks/expansion-PPP6PD75.js +3 -0
  134. package/dist/bin/chunks/expr-7PLWSWZI.js +3 -0
  135. package/dist/bin/chunks/file-GRZLWDVH.js +3 -0
  136. package/dist/bin/chunks/find-P4DOE7CE.js +3 -0
  137. package/dist/bin/chunks/flag-coverage-RFKIBJ6L.js +3 -0
  138. package/dist/bin/chunks/fold-5MF7QZWQ.js +3 -0
  139. package/dist/bin/chunks/grep-VAYCFO4O.js +3 -0
  140. package/dist/bin/chunks/gzip-UGBQQKIH.js +3 -0
  141. package/dist/bin/chunks/head-QNC2ZYDO.js +3 -0
  142. package/dist/bin/chunks/help-CGUEOGXQ.js +3 -0
  143. package/dist/bin/chunks/history-AQQWW3QB.js +3 -0
  144. package/dist/bin/chunks/hostname-USNWOQCK.js +3 -0
  145. package/dist/bin/chunks/html-to-markdown-QEFY7XQR.js +3 -0
  146. package/dist/bin/chunks/join-EJ73DYTK.js +3 -0
  147. package/dist/bin/chunks/jq-GGTKKMEN.js +3 -0
  148. package/dist/bin/chunks/js-exec-BC6NI55L.js +98 -0
  149. package/dist/bin/chunks/js-exec-worker.js +4443 -0
  150. package/dist/bin/chunks/ln-LP4HMCSM.js +3 -0
  151. package/dist/bin/chunks/ls-KBNHNZWQ.js +3 -0
  152. package/dist/bin/chunks/md5sum-MCVDIB35.js +3 -0
  153. package/dist/bin/chunks/mkdir-P4DKRCDX.js +3 -0
  154. package/dist/bin/chunks/mv-QQK4FQX6.js +3 -0
  155. package/dist/bin/chunks/nl-KUPLVCTS.js +3 -0
  156. package/dist/bin/chunks/od-YQ5ZUI2H.js +3 -0
  157. package/dist/bin/chunks/paste-A5KKPWXX.js +3 -0
  158. package/dist/bin/chunks/printf-Z5C2UOI5.js +3 -0
  159. package/dist/bin/chunks/pwd-FCNDA467.js +3 -0
  160. package/dist/bin/chunks/python3-BQWDPUBM.js +13 -0
  161. package/dist/bin/chunks/readlink-25V57VOL.js +3 -0
  162. package/dist/bin/chunks/rev-PYHOZ4D4.js +3 -0
  163. package/dist/bin/chunks/rg-BGFMSIVK.js +3 -0
  164. package/dist/bin/chunks/rm-ECNUFR66.js +3 -0
  165. package/dist/bin/chunks/rmdir-DLOHIA7Q.js +3 -0
  166. package/dist/bin/chunks/sed-FWA634SN.js +3 -0
  167. package/dist/bin/chunks/seq-UXDJE6FB.js +3 -0
  168. package/dist/bin/chunks/sha1sum-4KF52U3Y.js +3 -0
  169. package/dist/bin/chunks/sha256sum-6YEPULPX.js +3 -0
  170. package/dist/bin/chunks/sleep-QHAPNY3Q.js +3 -0
  171. package/dist/bin/chunks/sort-4C6WOKNK.js +3 -0
  172. package/dist/bin/chunks/split-TV7NL7LA.js +3 -0
  173. package/dist/bin/chunks/sqlite3-W777NCI4.js +3 -0
  174. package/dist/bin/chunks/sqlite3-worker.js +1728 -0
  175. package/dist/bin/chunks/stat-BD6KT3BP.js +3 -0
  176. package/dist/bin/chunks/strings-MDD72LR6.js +3 -0
  177. package/dist/bin/chunks/tac-C2N4NQ6S.js +3 -0
  178. package/dist/bin/chunks/tail-BCB5W6JC.js +3 -0
  179. package/dist/bin/chunks/tar-DOO744MK.js +3 -0
  180. package/dist/bin/chunks/tee-UQHPO4OW.js +3 -0
  181. package/dist/bin/chunks/time-ZPY52VT2.js +3 -0
  182. package/dist/bin/chunks/timeout-5AX3ZS3X.js +3 -0
  183. package/dist/bin/chunks/touch-DFGSVIX7.js +3 -0
  184. package/dist/bin/chunks/tr-G7K6M6HP.js +3 -0
  185. package/dist/bin/chunks/tree-6D7SMPUR.js +3 -0
  186. package/dist/bin/chunks/true-SKL4L7JP.js +3 -0
  187. package/dist/bin/chunks/unexpand-QIR4EDPG.js +3 -0
  188. package/dist/bin/chunks/uniq-I7PVFJR4.js +3 -0
  189. package/dist/bin/chunks/wc-6NGWULAP.js +3 -0
  190. package/dist/bin/chunks/which-LCXKCLFC.js +3 -0
  191. package/dist/bin/chunks/whoami-TZDZDU7T.js +3 -0
  192. package/dist/bin/chunks/worker.js +3150 -0
  193. package/dist/bin/chunks/xan-KX4VPXUN.js +3 -0
  194. package/dist/bin/chunks/xan-view-JXOZLJ7S.js +3 -0
  195. package/dist/bin/chunks/xargs-UWHPYLY7.js +3 -0
  196. package/dist/bin/chunks/yq-GCDCJBKB.js +3 -0
  197. package/dist/bin/just-bash.js +755 -0
  198. package/dist/bin/shell/chunks/alias-YRVAW27Y.js +3 -0
  199. package/dist/bin/shell/chunks/awk2-RLMNTGI7.js +3 -0
  200. package/dist/bin/shell/chunks/base64-RZRLGMB3.js +3 -0
  201. package/dist/bin/shell/chunks/basename-F3AQ4KAQ.js +3 -0
  202. package/dist/bin/shell/chunks/bash-CLP24TE2.js +3 -0
  203. package/dist/bin/shell/chunks/cat-LQH5FSAR.js +3 -0
  204. package/dist/bin/shell/chunks/chmod-S564JCJW.js +3 -0
  205. package/dist/bin/shell/chunks/chunk-22HCD466.js +3 -0
  206. package/dist/bin/shell/chunks/chunk-2AIXTPH2.js +9 -0
  207. package/dist/bin/shell/chunks/chunk-2ETT4ELS.js +4 -0
  208. package/dist/bin/shell/chunks/chunk-2GG3NVC4.js +10 -0
  209. package/dist/bin/shell/chunks/chunk-2NRAWO6E.js +7 -0
  210. package/dist/bin/shell/chunks/chunk-2SVX7I5P.js +14 -0
  211. package/dist/bin/shell/chunks/chunk-3BYTCO2H.js +12 -0
  212. package/dist/bin/shell/chunks/chunk-3MRB66F4.js +3 -0
  213. package/dist/bin/shell/chunks/chunk-3UKQXBQ3.js +6 -0
  214. package/dist/bin/shell/chunks/chunk-3WIMLJM7.js +8 -0
  215. package/dist/bin/shell/chunks/chunk-47WZ2U6M.js +9 -0
  216. package/dist/bin/shell/chunks/chunk-4KSZJAQK.js +6 -0
  217. package/dist/bin/shell/chunks/chunk-5XSZHUEI.js +15 -0
  218. package/dist/bin/shell/chunks/chunk-6FSBHK6H.js +22 -0
  219. package/dist/bin/shell/chunks/chunk-6WJQNLR2.js +7 -0
  220. package/dist/bin/shell/chunks/chunk-77MLOOQS.js +11 -0
  221. package/dist/bin/shell/chunks/chunk-7AYT3UKI.js +6 -0
  222. package/dist/bin/shell/chunks/chunk-7JZKVC3F.js +2 -0
  223. package/dist/bin/shell/chunks/chunk-7NC4CPHS.js +20 -0
  224. package/dist/bin/shell/chunks/chunk-7UU7KPEM.js +7 -0
  225. package/dist/bin/shell/chunks/chunk-7VCQWCSH.js +15 -0
  226. package/dist/bin/shell/chunks/chunk-AGKL4LDL.js +4 -0
  227. package/dist/bin/shell/chunks/chunk-AJF3OBTR.js +4 -0
  228. package/dist/bin/shell/chunks/chunk-ALVEEXFD.js +19 -0
  229. package/dist/bin/shell/chunks/chunk-B2DRBHGQ.js +3 -0
  230. package/dist/bin/shell/chunks/chunk-BE4PARL3.js +13 -0
  231. package/dist/bin/shell/chunks/chunk-BGX3RW7H.js +10 -0
  232. package/dist/bin/shell/chunks/chunk-BIJXTWZ4.js +3 -0
  233. package/dist/bin/shell/chunks/chunk-BPZJYOUA.js +33 -0
  234. package/dist/bin/shell/chunks/chunk-BZP56QBM.js +24 -0
  235. package/dist/bin/shell/chunks/chunk-C7ISPH7Y.js +18 -0
  236. package/dist/bin/shell/chunks/chunk-CAZ75E7E.js +3 -0
  237. package/dist/bin/shell/chunks/chunk-D6CPXGKK.js +75 -0
  238. package/dist/bin/shell/chunks/chunk-DJAX3ZRG.js +8 -0
  239. package/dist/bin/shell/chunks/chunk-DYIBFLS3.js +17 -0
  240. package/dist/bin/shell/chunks/chunk-EDTBGO7F.js +37 -0
  241. package/dist/bin/shell/chunks/chunk-F3GKANW3.js +12 -0
  242. package/dist/bin/shell/chunks/chunk-F3WNDKOC.js +3 -0
  243. package/dist/bin/shell/chunks/chunk-FKVQZWJQ.js +10 -0
  244. package/dist/bin/shell/chunks/chunk-FOUVACI7.js +16 -0
  245. package/dist/bin/shell/chunks/chunk-FVRXEJYQ.js +141 -0
  246. package/dist/bin/shell/chunks/chunk-G4AUMZUY.js +4 -0
  247. package/dist/bin/shell/chunks/chunk-H7JTIXAO.js +4 -0
  248. package/dist/bin/shell/chunks/chunk-HL4ZS7TX.js +6 -0
  249. package/dist/bin/shell/chunks/chunk-HN2DCT7T.js +13 -0
  250. package/dist/bin/shell/chunks/chunk-I4IRHQDW.js +3 -0
  251. package/dist/bin/shell/chunks/chunk-IEXQTXU5.js +34 -0
  252. package/dist/bin/shell/chunks/chunk-IZGLHVBB.js +8 -0
  253. package/dist/bin/shell/chunks/chunk-J7TUF2VI.js +9 -0
  254. package/dist/bin/shell/chunks/chunk-JNUX75OX.js +85 -0
  255. package/dist/bin/shell/chunks/chunk-JXLDT4KX.js +4 -0
  256. package/dist/bin/shell/chunks/chunk-JZW7NFK2.js +288 -0
  257. package/dist/bin/shell/chunks/chunk-KFMPGSUT.js +9 -0
  258. package/dist/bin/shell/chunks/chunk-KI54R2QB.js +3 -0
  259. package/dist/bin/shell/chunks/chunk-KRRM5UCC.js +3 -0
  260. package/dist/bin/shell/chunks/chunk-KUMHQGUR.js +3 -0
  261. package/dist/bin/shell/chunks/chunk-L24QXM5S.js +34 -0
  262. package/dist/bin/shell/chunks/chunk-LAHBP3FW.js +11 -0
  263. package/dist/bin/shell/chunks/chunk-LC6D27QJ.js +3 -0
  264. package/dist/bin/shell/chunks/chunk-LNNWMRCB.js +3 -0
  265. package/dist/bin/shell/chunks/chunk-LNVSXNT7.js +3 -0
  266. package/dist/bin/shell/chunks/chunk-LSQTB2QK.js +7 -0
  267. package/dist/bin/shell/chunks/chunk-M65CQLJE.js +101 -0
  268. package/dist/bin/shell/chunks/chunk-MLUOPG3W.js +3 -0
  269. package/dist/bin/shell/chunks/chunk-MNWK4UIM.js +22 -0
  270. package/dist/bin/shell/chunks/chunk-MROECM42.js +3 -0
  271. package/dist/bin/shell/chunks/chunk-MUFNRCMY.js +24 -0
  272. package/dist/bin/shell/chunks/chunk-N6YW4W3Z.js +29 -0
  273. package/dist/bin/shell/chunks/chunk-NE4R2FVV.js +5 -0
  274. package/dist/bin/shell/chunks/chunk-NXVG64T3.js +22 -0
  275. package/dist/bin/shell/chunks/chunk-NYIPFY36.js +3 -0
  276. package/dist/bin/shell/chunks/chunk-O2BCKSMK.js +3 -0
  277. package/dist/bin/shell/chunks/chunk-OLEQNRKX.js +8 -0
  278. package/dist/bin/shell/chunks/chunk-OPMLWMNH.js +17 -0
  279. package/dist/bin/shell/chunks/chunk-PAYQNSZN.js +18 -0
  280. package/dist/bin/shell/chunks/chunk-PBOVSFTJ.js +3 -0
  281. package/dist/bin/shell/chunks/chunk-PXP4YYZA.js +13 -0
  282. package/dist/bin/shell/chunks/chunk-PZQVSQX6.js +4 -0
  283. package/dist/bin/shell/chunks/chunk-Q2GOPGDA.js +6 -0
  284. package/dist/bin/shell/chunks/chunk-Q4UMTSRO.js +15 -0
  285. package/dist/bin/shell/chunks/chunk-QL33F2W6.js +8 -0
  286. package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +4 -0
  287. package/dist/bin/shell/chunks/chunk-SMSELHIY.js +12 -0
  288. package/dist/bin/shell/chunks/chunk-UGJM7CKP.js +17 -0
  289. package/dist/bin/shell/chunks/chunk-UO5LOD7U.js +12 -0
  290. package/dist/bin/shell/chunks/chunk-UOMNSQEZ.js +10 -0
  291. package/dist/bin/shell/chunks/chunk-UR4CEP4Y.js +3 -0
  292. package/dist/bin/shell/chunks/chunk-V2RP73X4.js +15 -0
  293. package/dist/bin/shell/chunks/chunk-VBDLSL7Y.js +10 -0
  294. package/dist/bin/shell/chunks/chunk-VZK4FHWJ.js +3 -0
  295. package/dist/bin/shell/chunks/chunk-WDWNEHHE.js +9 -0
  296. package/dist/bin/shell/chunks/chunk-X4MX6EHF.js +6 -0
  297. package/dist/bin/shell/chunks/chunk-XBB73LFB.js +5 -0
  298. package/dist/bin/shell/chunks/chunk-XFFUAO3F.js +3 -0
  299. package/dist/bin/shell/chunks/chunk-XHCCSVP6.js +9 -0
  300. package/dist/bin/shell/chunks/chunk-XJ37N3S5.js +7 -0
  301. package/dist/bin/shell/chunks/chunk-XPTYN6UE.js +8 -0
  302. package/dist/bin/shell/chunks/chunk-XRUDFQG5.js +7 -0
  303. package/dist/bin/shell/chunks/chunk-Y4FPH5DQ.js +64 -0
  304. package/dist/bin/shell/chunks/chunk-YJ5OCPSK.js +7 -0
  305. package/dist/bin/shell/chunks/chunk-YOIFOOGX.js +9 -0
  306. package/dist/bin/shell/chunks/chunk-YOKQNNQO.js +6 -0
  307. package/dist/bin/shell/chunks/chunk-YUZRUF5F.js +10 -0
  308. package/dist/bin/shell/chunks/chunk-YY5PJR7O.js +7 -0
  309. package/dist/bin/shell/chunks/chunk-ZFUVUYWG.js +15 -0
  310. package/dist/bin/shell/chunks/clear-FGNEKYDU.js +3 -0
  311. package/dist/bin/shell/chunks/column-AQB3A3PJ.js +3 -0
  312. package/dist/bin/shell/chunks/comm-Q4VDF6ZO.js +3 -0
  313. package/dist/bin/shell/chunks/cp-HYXTMN3D.js +3 -0
  314. package/dist/bin/shell/chunks/curl-PLHETP4J.js +27 -0
  315. package/dist/bin/shell/chunks/cut-ZI2HIAW7.js +3 -0
  316. package/dist/bin/shell/chunks/date-JEZYSA4F.js +3 -0
  317. package/dist/bin/shell/chunks/diff-YDJ42RKS.js +3 -0
  318. package/dist/bin/shell/chunks/dirname-VCINTLPD.js +3 -0
  319. package/dist/bin/shell/chunks/du-4LRQIGRG.js +3 -0
  320. package/dist/bin/shell/chunks/echo-KCOHTNDF.js +3 -0
  321. package/dist/bin/shell/chunks/env-NY32PQJM.js +3 -0
  322. package/dist/bin/shell/chunks/expand-YYSO35NS.js +3 -0
  323. package/dist/bin/shell/chunks/expansion-PPP6PD75.js +3 -0
  324. package/dist/bin/shell/chunks/expr-7PLWSWZI.js +3 -0
  325. package/dist/bin/shell/chunks/file-GRZLWDVH.js +3 -0
  326. package/dist/bin/shell/chunks/find-P4DOE7CE.js +3 -0
  327. package/dist/bin/shell/chunks/flag-coverage-RFKIBJ6L.js +3 -0
  328. package/dist/bin/shell/chunks/fold-5MF7QZWQ.js +3 -0
  329. package/dist/bin/shell/chunks/grep-VAYCFO4O.js +3 -0
  330. package/dist/bin/shell/chunks/gzip-UGBQQKIH.js +3 -0
  331. package/dist/bin/shell/chunks/head-QNC2ZYDO.js +3 -0
  332. package/dist/bin/shell/chunks/help-CGUEOGXQ.js +3 -0
  333. package/dist/bin/shell/chunks/history-AQQWW3QB.js +3 -0
  334. package/dist/bin/shell/chunks/hostname-USNWOQCK.js +3 -0
  335. package/dist/bin/shell/chunks/html-to-markdown-QEFY7XQR.js +3 -0
  336. package/dist/bin/shell/chunks/join-EJ73DYTK.js +3 -0
  337. package/dist/bin/shell/chunks/jq-GGTKKMEN.js +3 -0
  338. package/dist/bin/shell/chunks/js-exec-BC6NI55L.js +98 -0
  339. package/dist/bin/shell/chunks/ln-LP4HMCSM.js +3 -0
  340. package/dist/bin/shell/chunks/ls-KBNHNZWQ.js +3 -0
  341. package/dist/bin/shell/chunks/md5sum-MCVDIB35.js +3 -0
  342. package/dist/bin/shell/chunks/mkdir-P4DKRCDX.js +3 -0
  343. package/dist/bin/shell/chunks/mv-QQK4FQX6.js +3 -0
  344. package/dist/bin/shell/chunks/nl-KUPLVCTS.js +3 -0
  345. package/dist/bin/shell/chunks/od-YQ5ZUI2H.js +3 -0
  346. package/dist/bin/shell/chunks/paste-A5KKPWXX.js +3 -0
  347. package/dist/bin/shell/chunks/printf-Z5C2UOI5.js +3 -0
  348. package/dist/bin/shell/chunks/pwd-FCNDA467.js +3 -0
  349. package/dist/bin/shell/chunks/python3-BQWDPUBM.js +13 -0
  350. package/dist/bin/shell/chunks/readlink-25V57VOL.js +3 -0
  351. package/dist/bin/shell/chunks/rev-PYHOZ4D4.js +3 -0
  352. package/dist/bin/shell/chunks/rg-BGFMSIVK.js +3 -0
  353. package/dist/bin/shell/chunks/rm-ECNUFR66.js +3 -0
  354. package/dist/bin/shell/chunks/rmdir-DLOHIA7Q.js +3 -0
  355. package/dist/bin/shell/chunks/sed-FWA634SN.js +3 -0
  356. package/dist/bin/shell/chunks/seq-UXDJE6FB.js +3 -0
  357. package/dist/bin/shell/chunks/sha1sum-4KF52U3Y.js +3 -0
  358. package/dist/bin/shell/chunks/sha256sum-6YEPULPX.js +3 -0
  359. package/dist/bin/shell/chunks/sleep-QHAPNY3Q.js +3 -0
  360. package/dist/bin/shell/chunks/sort-4C6WOKNK.js +3 -0
  361. package/dist/bin/shell/chunks/split-TV7NL7LA.js +3 -0
  362. package/dist/bin/shell/chunks/sqlite3-W777NCI4.js +3 -0
  363. package/dist/bin/shell/chunks/stat-BD6KT3BP.js +3 -0
  364. package/dist/bin/shell/chunks/strings-MDD72LR6.js +3 -0
  365. package/dist/bin/shell/chunks/tac-C2N4NQ6S.js +3 -0
  366. package/dist/bin/shell/chunks/tail-BCB5W6JC.js +3 -0
  367. package/dist/bin/shell/chunks/tar-DOO744MK.js +3 -0
  368. package/dist/bin/shell/chunks/tee-UQHPO4OW.js +3 -0
  369. package/dist/bin/shell/chunks/time-ZPY52VT2.js +3 -0
  370. package/dist/bin/shell/chunks/timeout-5AX3ZS3X.js +3 -0
  371. package/dist/bin/shell/chunks/touch-DFGSVIX7.js +3 -0
  372. package/dist/bin/shell/chunks/tr-G7K6M6HP.js +3 -0
  373. package/dist/bin/shell/chunks/tree-6D7SMPUR.js +3 -0
  374. package/dist/bin/shell/chunks/true-SKL4L7JP.js +3 -0
  375. package/dist/bin/shell/chunks/unexpand-QIR4EDPG.js +3 -0
  376. package/dist/bin/shell/chunks/uniq-I7PVFJR4.js +3 -0
  377. package/dist/bin/shell/chunks/wc-6NGWULAP.js +3 -0
  378. package/dist/bin/shell/chunks/which-LCXKCLFC.js +3 -0
  379. package/dist/bin/shell/chunks/whoami-TZDZDU7T.js +3 -0
  380. package/dist/bin/shell/chunks/xan-KX4VPXUN.js +3 -0
  381. package/dist/bin/shell/chunks/xan-view-JXOZLJ7S.js +3 -0
  382. package/dist/bin/shell/chunks/xargs-UWHPYLY7.js +3 -0
  383. package/dist/bin/shell/chunks/yq-GCDCJBKB.js +3 -0
  384. package/dist/bin/shell/shell.js +734 -0
  385. package/dist/browser.d.ts +23 -0
  386. package/dist/bundle/browser.js +1515 -0
  387. package/dist/bundle/chunks/alias-RTYYYW3D.js +2 -0
  388. package/dist/bundle/chunks/awk2-LA3USKJP.js +2 -0
  389. package/dist/bundle/chunks/base64-C2AIWVNC.js +2 -0
  390. package/dist/bundle/chunks/basename-UB3CIYNI.js +2 -0
  391. package/dist/bundle/chunks/bash-YZ33HQZQ.js +2 -0
  392. package/dist/bundle/chunks/cat-TSFMZVYS.js +2 -0
  393. package/dist/bundle/chunks/chmod-TFEPA42X.js +2 -0
  394. package/dist/bundle/chunks/chunk-27JIFWUR.js +3 -0
  395. package/dist/bundle/chunks/chunk-2JIPICV3.js +13 -0
  396. package/dist/bundle/chunks/chunk-2SMD2AUA.js +3 -0
  397. package/dist/bundle/chunks/chunk-2VDTE5BV.js +14 -0
  398. package/dist/bundle/chunks/chunk-2VJJEDV2.js +8 -0
  399. package/dist/bundle/chunks/chunk-46RN27KI.js +100 -0
  400. package/dist/bundle/chunks/chunk-4I3HOE5Z.js +21 -0
  401. package/dist/bundle/chunks/chunk-4JLVZKHC.js +8 -0
  402. package/dist/bundle/chunks/chunk-4MZPEZTU.js +3 -0
  403. package/dist/bundle/chunks/chunk-4N6J7B5P.js +6 -0
  404. package/dist/bundle/chunks/chunk-4RUAZWKT.js +33 -0
  405. package/dist/bundle/chunks/chunk-4WKZNNJK.js +2 -0
  406. package/dist/bundle/chunks/chunk-5H5SCKJM.js +11 -0
  407. package/dist/bundle/chunks/chunk-6LASZU3O.js +5 -0
  408. package/dist/bundle/chunks/chunk-6SHYIICL.js +4 -0
  409. package/dist/bundle/chunks/chunk-6VAT5Z2D.js +5 -0
  410. package/dist/bundle/chunks/chunk-7AISL3XV.js +12 -0
  411. package/dist/bundle/chunks/chunk-7EUWTCWK.js +2 -0
  412. package/dist/bundle/chunks/chunk-7JHM3L42.js +6 -0
  413. package/dist/bundle/chunks/chunk-A4R2GWRF.js +9 -0
  414. package/dist/bundle/chunks/chunk-ACSZB4FE.js +11 -0
  415. package/dist/bundle/chunks/chunk-AQ6FYS2X.js +2 -0
  416. package/dist/bundle/chunks/chunk-BVKWRAS6.js +12 -0
  417. package/dist/bundle/chunks/chunk-BZUGFHVS.js +2 -0
  418. package/dist/bundle/chunks/chunk-CBJVD2XA.js +7 -0
  419. package/dist/bundle/chunks/chunk-CHFEPBH4.js +18 -0
  420. package/dist/bundle/chunks/chunk-CN5XGDNN.js +6 -0
  421. package/dist/bundle/chunks/chunk-DLL7UR66.js +2 -0
  422. package/dist/bundle/chunks/chunk-EBAPSGAO.js +9 -0
  423. package/dist/bundle/chunks/chunk-FAXLQUCQ.js +10 -0
  424. package/dist/bundle/chunks/chunk-FHC24QSK.js +7 -0
  425. package/dist/bundle/chunks/chunk-FJK43EBQ.js +14 -0
  426. package/dist/bundle/chunks/chunk-FOCWZZDE.js +2 -0
  427. package/dist/bundle/chunks/chunk-FW54FHZR.js +2 -0
  428. package/dist/bundle/chunks/chunk-FX4RBUYU.js +5 -0
  429. package/dist/bundle/chunks/chunk-FX7KQCEA.js +33 -0
  430. package/dist/bundle/chunks/chunk-FZRQOL3C.js +7 -0
  431. package/dist/bundle/chunks/chunk-G5EVRAOO.js +74 -0
  432. package/dist/bundle/chunks/chunk-GGC5NEPZ.js +8 -0
  433. package/dist/bundle/chunks/chunk-GIUR5SNU.js +15 -0
  434. package/dist/bundle/chunks/chunk-GJC3WVOW.js +2 -0
  435. package/dist/bundle/chunks/chunk-GSPYNYZA.js +6 -0
  436. package/dist/bundle/chunks/chunk-GTQIUQM6.js +5 -0
  437. package/dist/bundle/chunks/chunk-HBVMHTO5.js +2 -0
  438. package/dist/bundle/chunks/chunk-HDRAUQK2.js +2 -0
  439. package/dist/bundle/chunks/chunk-HJBTD7PY.js +21 -0
  440. package/dist/bundle/chunks/chunk-ICIEVHY5.js +36 -0
  441. package/dist/bundle/chunks/chunk-KATRCGLX.js +2 -0
  442. package/dist/bundle/chunks/chunk-KD3KENL6.js +11 -0
  443. package/dist/bundle/chunks/chunk-KWGBQNTV.js +32 -0
  444. package/dist/bundle/chunks/chunk-L2UW7DWF.js +2 -0
  445. package/dist/bundle/chunks/chunk-L64BMZUV.js +2 -0
  446. package/dist/bundle/chunks/chunk-LEKBROJD.js +6 -0
  447. package/dist/bundle/chunks/chunk-LNBPBRV4.js +21 -0
  448. package/dist/bundle/chunks/chunk-LPJEKUCB.js +8 -0
  449. package/dist/bundle/chunks/chunk-LSLPJOYM.js +3 -0
  450. package/dist/bundle/chunks/chunk-MFDPAVC6.js +14 -0
  451. package/dist/bundle/chunks/chunk-MLIO3BK2.js +7 -0
  452. package/dist/bundle/chunks/chunk-MQKGGNPS.js +16 -0
  453. package/dist/bundle/chunks/chunk-MZFCCXPZ.js +63 -0
  454. package/dist/bundle/chunks/chunk-N6DXJ2JN.js +287 -0
  455. package/dist/bundle/chunks/chunk-NRSASXYY.js +2 -0
  456. package/dist/bundle/chunks/chunk-OC35HPHG.js +2 -0
  457. package/dist/bundle/chunks/chunk-OGJ5CFPR.js +9 -0
  458. package/dist/bundle/chunks/chunk-OVGANXCG.js +8 -0
  459. package/dist/bundle/chunks/chunk-Q7H5W7YE.js +140 -0
  460. package/dist/bundle/chunks/chunk-QAYAQNCG.js +23 -0
  461. package/dist/bundle/chunks/chunk-QIQMJJZ4.js +4 -0
  462. package/dist/bundle/chunks/chunk-R4IFXNY5.js +28 -0
  463. package/dist/bundle/chunks/chunk-R74UQCKX.js +5 -0
  464. package/dist/bundle/chunks/chunk-S3LEJEPP.js +2 -0
  465. package/dist/bundle/chunks/chunk-S443BAN4.js +7 -0
  466. package/dist/bundle/chunks/chunk-SAI2SPQQ.js +8 -0
  467. package/dist/bundle/chunks/chunk-SBBYKIYU.js +3 -0
  468. package/dist/bundle/chunks/chunk-SETW5JBN.js +9 -0
  469. package/dist/bundle/chunks/chunk-SHKOQWO4.js +3 -0
  470. package/dist/bundle/chunks/chunk-SJYEXC2Z.js +14 -0
  471. package/dist/bundle/chunks/chunk-SO6R3ZKN.js +16 -0
  472. package/dist/bundle/chunks/chunk-STHBFACM.js +1 -0
  473. package/dist/bundle/chunks/chunk-SX2HC7SO.js +2 -0
  474. package/dist/bundle/chunks/chunk-T4TFLF3R.js +16 -0
  475. package/dist/bundle/chunks/chunk-TDD4NFYE.js +2 -0
  476. package/dist/bundle/chunks/chunk-TN7HHBQW.js +5 -0
  477. package/dist/bundle/chunks/chunk-U73A73IE.js +17 -0
  478. package/dist/bundle/chunks/chunk-UIJUTQPH.js +3 -0
  479. package/dist/bundle/chunks/chunk-UP6MSJGD.js +17 -0
  480. package/dist/bundle/chunks/chunk-VLCHOJWK.js +6 -0
  481. package/dist/bundle/chunks/chunk-VPADYNBD.js +10 -0
  482. package/dist/bundle/chunks/chunk-W5DWRFSU.js +2 -0
  483. package/dist/bundle/chunks/chunk-WM5IJFMP.js +8 -0
  484. package/dist/bundle/chunks/chunk-WNH3HOQA.js +2 -0
  485. package/dist/bundle/chunks/chunk-WPGQVBSY.js +6 -0
  486. package/dist/bundle/chunks/chunk-WVRWIZF5.js +23 -0
  487. package/dist/bundle/chunks/chunk-XCQWV4AU.js +12 -0
  488. package/dist/bundle/chunks/chunk-XDGLKIHR.js +9 -0
  489. package/dist/bundle/chunks/chunk-XHLMAZX2.js +5 -0
  490. package/dist/bundle/chunks/chunk-XRFHFXFP.js +2 -0
  491. package/dist/bundle/chunks/chunk-XUIHBHL5.js +5 -0
  492. package/dist/bundle/chunks/chunk-XYXUMFSU.js +14 -0
  493. package/dist/bundle/chunks/chunk-Y4LIDHSD.js +7 -0
  494. package/dist/bundle/chunks/chunk-YCLFEX4T.js +3 -0
  495. package/dist/bundle/chunks/chunk-YS4NUBYX.js +9 -0
  496. package/dist/bundle/chunks/chunk-ZDIT6ST5.js +7 -0
  497. package/dist/bundle/chunks/chunk-ZDPFA4L3.js +6 -0
  498. package/dist/bundle/chunks/chunk-ZZKH2ELC.js +11 -0
  499. package/dist/bundle/chunks/clear-HKGFEOF6.js +2 -0
  500. package/dist/bundle/chunks/column-XT6UFXNQ.js +2 -0
  501. package/dist/bundle/chunks/comm-VV2LDX2J.js +2 -0
  502. package/dist/bundle/chunks/cp-BISAAS7A.js +2 -0
  503. package/dist/bundle/chunks/curl-GRYA74XW.js +26 -0
  504. package/dist/bundle/chunks/cut-OKARJCCV.js +2 -0
  505. package/dist/bundle/chunks/date-UUUPW43J.js +2 -0
  506. package/dist/bundle/chunks/diff-MWJFIG7X.js +2 -0
  507. package/dist/bundle/chunks/dirname-MPHRFUTI.js +2 -0
  508. package/dist/bundle/chunks/du-572XNP42.js +2 -0
  509. package/dist/bundle/chunks/echo-NDWZZHPO.js +2 -0
  510. package/dist/bundle/chunks/env-36M5BO7M.js +2 -0
  511. package/dist/bundle/chunks/expand-JSPG6VOP.js +2 -0
  512. package/dist/bundle/chunks/expansion-R25BK4W3.js +2 -0
  513. package/dist/bundle/chunks/expr-5JAACS4X.js +2 -0
  514. package/dist/bundle/chunks/file-IPZJC3FQ.js +2 -0
  515. package/dist/bundle/chunks/find-INTH3OLC.js +2 -0
  516. package/dist/bundle/chunks/flag-coverage-XWSYNE72.js +2 -0
  517. package/dist/bundle/chunks/fold-4TQNYMSW.js +2 -0
  518. package/dist/bundle/chunks/grep-V3LQVMRQ.js +2 -0
  519. package/dist/bundle/chunks/gzip-O5ASJAFY.js +2 -0
  520. package/dist/bundle/chunks/head-442HYESI.js +2 -0
  521. package/dist/bundle/chunks/help-HZ6M2CKN.js +2 -0
  522. package/dist/bundle/chunks/history-WYYKSLSZ.js +2 -0
  523. package/dist/bundle/chunks/hostname-C4HQXXUP.js +2 -0
  524. package/dist/bundle/chunks/html-to-markdown-JW4MSQZO.js +2 -0
  525. package/dist/bundle/chunks/join-TBRGI3LQ.js +2 -0
  526. package/dist/bundle/chunks/jq-4XLYLOS5.js +2 -0
  527. package/dist/bundle/chunks/js-exec-N5KEZBH7.js +97 -0
  528. package/dist/bundle/chunks/js-exec-worker.js +4443 -0
  529. package/dist/bundle/chunks/ln-4LGSXXGD.js +2 -0
  530. package/dist/bundle/chunks/ls-ZJGQER7M.js +2 -0
  531. package/dist/bundle/chunks/md5sum-SPU24VSG.js +2 -0
  532. package/dist/bundle/chunks/mkdir-MEPGZOB6.js +2 -0
  533. package/dist/bundle/chunks/mv-W5BIQ646.js +2 -0
  534. package/dist/bundle/chunks/nl-WSDW7I4O.js +2 -0
  535. package/dist/bundle/chunks/od-WOKFDJTP.js +2 -0
  536. package/dist/bundle/chunks/paste-7JC6S4DX.js +2 -0
  537. package/dist/bundle/chunks/printf-TWGXF445.js +2 -0
  538. package/dist/bundle/chunks/pwd-WE6EN5AV.js +2 -0
  539. package/dist/bundle/chunks/python3-POMOR4OA.js +12 -0
  540. package/dist/bundle/chunks/readlink-OPJF4DL5.js +2 -0
  541. package/dist/bundle/chunks/rev-5EHFX4EJ.js +2 -0
  542. package/dist/bundle/chunks/rg-S4FXYXWB.js +2 -0
  543. package/dist/bundle/chunks/rm-SSGETQVQ.js +2 -0
  544. package/dist/bundle/chunks/rmdir-OC4ZLPYA.js +2 -0
  545. package/dist/bundle/chunks/sed-S5UIK574.js +2 -0
  546. package/dist/bundle/chunks/seq-M5EC7Q57.js +2 -0
  547. package/dist/bundle/chunks/sha1sum-2PTOAFR6.js +2 -0
  548. package/dist/bundle/chunks/sha256sum-NS7D3IXX.js +2 -0
  549. package/dist/bundle/chunks/sleep-X22JJINO.js +2 -0
  550. package/dist/bundle/chunks/sort-SW2YEO5B.js +2 -0
  551. package/dist/bundle/chunks/split-4KKZZXXE.js +2 -0
  552. package/dist/bundle/chunks/sqlite3-CGOEFJAO.js +2 -0
  553. package/dist/bundle/chunks/sqlite3-worker.js +1728 -0
  554. package/dist/bundle/chunks/stat-CD34IZ4P.js +2 -0
  555. package/dist/bundle/chunks/strings-6WDHLGMX.js +2 -0
  556. package/dist/bundle/chunks/tac-2STMMJYW.js +2 -0
  557. package/dist/bundle/chunks/tail-R4PCA2C4.js +2 -0
  558. package/dist/bundle/chunks/tar-STHHZTZ6.js +2 -0
  559. package/dist/bundle/chunks/tee-YUZ2FKCJ.js +2 -0
  560. package/dist/bundle/chunks/time-D4LNBSWX.js +2 -0
  561. package/dist/bundle/chunks/timeout-YDCRSLPQ.js +2 -0
  562. package/dist/bundle/chunks/touch-UA33VN3N.js +2 -0
  563. package/dist/bundle/chunks/tr-36LHWFRQ.js +2 -0
  564. package/dist/bundle/chunks/tree-YLD52CNT.js +2 -0
  565. package/dist/bundle/chunks/true-FHQXJXBE.js +2 -0
  566. package/dist/bundle/chunks/unexpand-CADSA4VO.js +2 -0
  567. package/dist/bundle/chunks/uniq-XSIZR6PB.js +2 -0
  568. package/dist/bundle/chunks/wc-LF7NU4LA.js +2 -0
  569. package/dist/bundle/chunks/which-XEM24D5D.js +2 -0
  570. package/dist/bundle/chunks/whoami-XMTX52VE.js +2 -0
  571. package/dist/bundle/chunks/worker.js +3150 -0
  572. package/dist/bundle/chunks/xan-Y6WF3IRG.js +2 -0
  573. package/dist/bundle/chunks/xan-view-HDVKHFC2.js +2 -0
  574. package/dist/bundle/chunks/xargs-MGZPH7AX.js +2 -0
  575. package/dist/bundle/chunks/yq-4QJW3EQG.js +2 -0
  576. package/dist/bundle/index.cjs +2178 -0
  577. package/dist/bundle/index.js +710 -0
  578. package/dist/commands/alias/alias.d.ts +6 -0
  579. package/dist/commands/awk/ast.d.ts +202 -0
  580. package/dist/commands/awk/awk2.d.ts +9 -0
  581. package/dist/commands/awk/builtins.d.ts +17 -0
  582. package/dist/commands/awk/interpreter/context.d.ts +75 -0
  583. package/dist/commands/awk/interpreter/expressions.d.ts +17 -0
  584. package/dist/commands/awk/interpreter/fields.d.ts +25 -0
  585. package/dist/commands/awk/interpreter/index.d.ts +8 -0
  586. package/dist/commands/awk/interpreter/interpreter.d.ts +54 -0
  587. package/dist/commands/awk/interpreter/statements.d.ts +11 -0
  588. package/dist/commands/awk/interpreter/type-coercion.d.ts +32 -0
  589. package/dist/commands/awk/interpreter/types.d.ts +13 -0
  590. package/dist/commands/awk/interpreter/variables.d.ts +35 -0
  591. package/dist/commands/awk/lexer.d.ts +100 -0
  592. package/dist/commands/awk/parser2-print.d.ts +35 -0
  593. package/dist/commands/awk/parser2.d.ts +81 -0
  594. package/dist/commands/base64/base64.d.ts +7 -0
  595. package/dist/commands/basename/basename.d.ts +4 -0
  596. package/dist/commands/bash/bash.d.ts +6 -0
  597. package/dist/commands/browser-excluded.d.ts +16 -0
  598. package/dist/commands/cat/cat.d.ts +4 -0
  599. package/dist/commands/chmod/chmod.d.ts +4 -0
  600. package/dist/commands/clear/clear.d.ts +4 -0
  601. package/dist/commands/column/column.d.ts +11 -0
  602. package/dist/commands/comm/comm.d.ts +12 -0
  603. package/dist/commands/cp/cp.d.ts +4 -0
  604. package/dist/commands/curl/curl.d.ts +8 -0
  605. package/dist/commands/curl/form.d.ts +21 -0
  606. package/dist/commands/curl/help.d.ts +9 -0
  607. package/dist/commands/curl/parse.d.ts +9 -0
  608. package/dist/commands/curl/response-formatting.d.ts +20 -0
  609. package/dist/commands/curl/types.d.ts +60 -0
  610. package/dist/commands/cut/cut.d.ts +4 -0
  611. package/dist/commands/date/date.d.ts +7 -0
  612. package/dist/commands/diff/diff.d.ts +7 -0
  613. package/dist/commands/dirname/dirname.d.ts +4 -0
  614. package/dist/commands/du/du.d.ts +4 -0
  615. package/dist/commands/duration.d.ts +5 -0
  616. package/dist/commands/echo/echo.d.ts +4 -0
  617. package/dist/commands/env/env.d.ts +6 -0
  618. package/dist/commands/expand/expand.d.ts +12 -0
  619. package/dist/commands/expand/unexpand.d.ts +12 -0
  620. package/dist/commands/expr/expr.d.ts +9 -0
  621. package/dist/commands/file/file.d.ts +9 -0
  622. package/dist/commands/find/find.d.ts +4 -0
  623. package/dist/commands/find/matcher.d.ts +69 -0
  624. package/dist/commands/find/parser.d.ts +2 -0
  625. package/dist/commands/find/types.d.ts +88 -0
  626. package/dist/commands/flag-coverage.d.ts +2 -0
  627. package/dist/commands/fold/fold.d.ts +12 -0
  628. package/dist/commands/format-mode.d.ts +4 -0
  629. package/dist/commands/fuzz-flags-types.d.ts +17 -0
  630. package/dist/commands/fuzz-flags.d.ts +8 -0
  631. package/dist/commands/grep/grep.d.ts +8 -0
  632. package/dist/commands/gzip/gzip.d.ts +13 -0
  633. package/dist/commands/head/head-tail-shared.d.ts +38 -0
  634. package/dist/commands/head/head.d.ts +4 -0
  635. package/dist/commands/help/help.d.ts +4 -0
  636. package/dist/commands/help.d.ts +16 -0
  637. package/dist/commands/history/history.d.ts +4 -0
  638. package/dist/commands/hostname/hostname.d.ts +11 -0
  639. package/dist/commands/html-to-markdown/html-to-markdown.d.ts +9 -0
  640. package/dist/commands/join/join.d.ts +12 -0
  641. package/dist/commands/jq/jq.d.ts +9 -0
  642. package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
  643. package/dist/commands/js-exec/js-exec-worker.d.ts +32 -0
  644. package/dist/commands/js-exec/js-exec.d.ts +11 -0
  645. package/dist/commands/js-exec/module-shims.d.ts +29 -0
  646. package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
  647. package/dist/commands/ln/ln.d.ts +4 -0
  648. package/dist/commands/ls/ls.d.ts +4 -0
  649. package/dist/commands/md5sum/checksum.d.ts +7 -0
  650. package/dist/commands/md5sum/md5sum.d.ts +4 -0
  651. package/dist/commands/md5sum/sha1sum.d.ts +4 -0
  652. package/dist/commands/md5sum/sha256sum.d.ts +4 -0
  653. package/dist/commands/mkdir/mkdir.d.ts +4 -0
  654. package/dist/commands/mv/mv.d.ts +4 -0
  655. package/dist/commands/nl/nl.d.ts +12 -0
  656. package/dist/commands/od/od.d.ts +12 -0
  657. package/dist/commands/paste/paste.d.ts +4 -0
  658. package/dist/commands/printf/escapes.d.ts +25 -0
  659. package/dist/commands/printf/printf.d.ts +4 -0
  660. package/dist/commands/printf/strftime.d.ts +9 -0
  661. package/dist/commands/pwd/pwd.d.ts +4 -0
  662. package/dist/commands/python3/python3.d.ts +16 -0
  663. package/dist/commands/python3/worker.d.ts +28 -0
  664. package/dist/commands/query-engine/builtins/array-builtins.d.ts +20 -0
  665. package/dist/commands/query-engine/builtins/control-builtins.d.ts +18 -0
  666. package/dist/commands/query-engine/builtins/date-builtins.d.ts +15 -0
  667. package/dist/commands/query-engine/builtins/format-builtins.d.ts +11 -0
  668. package/dist/commands/query-engine/builtins/index-builtins.d.ts +16 -0
  669. package/dist/commands/query-engine/builtins/index.d.ts +17 -0
  670. package/dist/commands/query-engine/builtins/math-builtins.d.ts +15 -0
  671. package/dist/commands/query-engine/builtins/navigation-builtins.d.ts +18 -0
  672. package/dist/commands/query-engine/builtins/object-builtins.d.ts +15 -0
  673. package/dist/commands/query-engine/builtins/path-builtins.d.ts +20 -0
  674. package/dist/commands/query-engine/builtins/sql-builtins.d.ts +16 -0
  675. package/dist/commands/query-engine/builtins/string-builtins.d.ts +15 -0
  676. package/dist/commands/query-engine/builtins/type-builtins.d.ts +11 -0
  677. package/dist/commands/query-engine/evaluator.d.ts +40 -0
  678. package/dist/commands/query-engine/index.d.ts +8 -0
  679. package/dist/commands/query-engine/parser-types.d.ts +171 -0
  680. package/dist/commands/query-engine/parser.d.ts +9 -0
  681. package/dist/commands/query-engine/path-operations.d.ts +15 -0
  682. package/dist/commands/query-engine/safe-object.d.ts +83 -0
  683. package/dist/commands/query-engine/value-operations.d.ts +41 -0
  684. package/dist/commands/readlink/readlink.d.ts +4 -0
  685. package/dist/commands/registry.d.ts +56 -0
  686. package/dist/commands/rev/rev.d.ts +13 -0
  687. package/dist/commands/rg/file-types.d.ts +49 -0
  688. package/dist/commands/rg/gitignore.d.ts +98 -0
  689. package/dist/commands/rg/rg-options.d.ts +61 -0
  690. package/dist/commands/rg/rg-parser.d.ts +20 -0
  691. package/dist/commands/rg/rg-search.d.ts +15 -0
  692. package/dist/commands/rg/rg.d.ts +14 -0
  693. package/dist/commands/rm/rm.d.ts +4 -0
  694. package/dist/commands/rmdir/rmdir.d.ts +4 -0
  695. package/dist/commands/search-engine/index.d.ts +10 -0
  696. package/dist/commands/search-engine/matcher.d.ts +66 -0
  697. package/dist/commands/search-engine/regex.d.ts +46 -0
  698. package/dist/commands/sed/executor.d.ts +7 -0
  699. package/dist/commands/sed/lexer.d.ts +86 -0
  700. package/dist/commands/sed/parser.d.ts +18 -0
  701. package/dist/commands/sed/sed-regex.d.ts +23 -0
  702. package/dist/commands/sed/sed.d.ts +4 -0
  703. package/dist/commands/sed/types.d.ts +216 -0
  704. package/dist/commands/seq/seq.d.ts +16 -0
  705. package/dist/commands/sleep/sleep.d.ts +4 -0
  706. package/dist/commands/sort/comparator.d.ts +9 -0
  707. package/dist/commands/sort/parser.d.ts +11 -0
  708. package/dist/commands/sort/sort.d.ts +4 -0
  709. package/dist/commands/sort/types.d.ts +30 -0
  710. package/dist/commands/split/split.d.ts +12 -0
  711. package/dist/commands/sqlite3/formatters.d.ts +15 -0
  712. package/dist/commands/sqlite3/sqlite3.d.ts +23 -0
  713. package/dist/commands/sqlite3/worker.d.ts +45 -0
  714. package/dist/commands/sqlite3/worker.js +1728 -0
  715. package/dist/commands/stat/stat.d.ts +4 -0
  716. package/dist/commands/strings/strings.d.ts +12 -0
  717. package/dist/commands/tac/tac.d.ts +11 -0
  718. package/dist/commands/tail/tail.d.ts +4 -0
  719. package/dist/commands/tar/archive.d.ts +135 -0
  720. package/dist/commands/tar/bzip2-compress.d.ts +17 -0
  721. package/dist/commands/tar/tar-options.d.ts +37 -0
  722. package/dist/commands/tar/tar.d.ts +10 -0
  723. package/dist/commands/tee/tee.d.ts +4 -0
  724. package/dist/commands/time/time.d.ts +27 -0
  725. package/dist/commands/timeout/timeout.d.ts +4 -0
  726. package/dist/commands/touch/touch.d.ts +4 -0
  727. package/dist/commands/tr/tr.d.ts +4 -0
  728. package/dist/commands/tree/tree.d.ts +4 -0
  729. package/dist/commands/true/true.d.ts +6 -0
  730. package/dist/commands/uniq/uniq.d.ts +4 -0
  731. package/dist/commands/wc/wc.d.ts +4 -0
  732. package/dist/commands/which/which.d.ts +4 -0
  733. package/dist/commands/whoami/whoami.d.ts +11 -0
  734. package/dist/commands/worker-bridge/bridge-handler.d.ts +73 -0
  735. package/dist/commands/worker-bridge/protocol.d.ts +141 -0
  736. package/dist/commands/worker-bridge/sync-backend.d.ts +86 -0
  737. package/dist/commands/xan/aggregation.d.ts +20 -0
  738. package/dist/commands/xan/column-selection.d.ts +19 -0
  739. package/dist/commands/xan/csv.d.ts +37 -0
  740. package/dist/commands/xan/moonblade-parser.d.ts +80 -0
  741. package/dist/commands/xan/moonblade-to-jq.d.ts +12 -0
  742. package/dist/commands/xan/moonblade-tokenizer.d.ts +25 -0
  743. package/dist/commands/xan/subcommands.d.ts +15 -0
  744. package/dist/commands/xan/xan-agg.d.ts +8 -0
  745. package/dist/commands/xan/xan-columns.d.ts +8 -0
  746. package/dist/commands/xan/xan-core.d.ts +10 -0
  747. package/dist/commands/xan/xan-data.d.ts +52 -0
  748. package/dist/commands/xan/xan-filter.d.ts +8 -0
  749. package/dist/commands/xan/xan-map.d.ts +11 -0
  750. package/dist/commands/xan/xan-reshape.d.ts +40 -0
  751. package/dist/commands/xan/xan-simple.d.ts +40 -0
  752. package/dist/commands/xan/xan-view.d.ts +12 -0
  753. package/dist/commands/xan/xan.d.ts +10 -0
  754. package/dist/commands/xargs/xargs.d.ts +4 -0
  755. package/dist/commands/yq/formats.d.ts +64 -0
  756. package/dist/commands/yq/yq.d.ts +13 -0
  757. package/dist/custom-commands.d.ts +42 -0
  758. package/dist/encoding.d.ts +115 -0
  759. package/dist/fs/encoding.d.ts +17 -0
  760. package/dist/fs/in-memory-fs/in-memory-fs.d.ts +75 -0
  761. package/dist/fs/in-memory-fs/index.d.ts +1 -0
  762. package/dist/fs/init.d.ts +22 -0
  763. package/dist/fs/interface.d.ts +251 -0
  764. package/dist/fs/mountable-fs/index.d.ts +1 -0
  765. package/dist/fs/mountable-fs/mountable-fs.d.ts +118 -0
  766. package/dist/fs/overlay-fs/index.d.ts +1 -0
  767. package/dist/fs/overlay-fs/overlay-fs.d.ts +165 -0
  768. package/dist/fs/path-utils.d.ts +46 -0
  769. package/dist/fs/read-write-fs/index.d.ts +1 -0
  770. package/dist/fs/read-write-fs/read-write-fs.d.ts +98 -0
  771. package/dist/fs/real-fs-utils.d.ts +90 -0
  772. package/dist/fs/sanitize-error.d.ts +19 -0
  773. package/dist/index.d.cts +29 -0
  774. package/dist/index.d.ts +29 -0
  775. package/dist/interpreter/alias-expansion.d.ts +23 -0
  776. package/dist/interpreter/arithmetic.d.ts +24 -0
  777. package/dist/interpreter/assignment-expansion.d.ts +24 -0
  778. package/dist/interpreter/builtin-dispatch.d.ts +39 -0
  779. package/dist/interpreter/builtins/break.d.ts +6 -0
  780. package/dist/interpreter/builtins/cd.d.ts +6 -0
  781. package/dist/interpreter/builtins/compgen.d.ts +26 -0
  782. package/dist/interpreter/builtins/complete.d.ts +17 -0
  783. package/dist/interpreter/builtins/compopt.d.ts +28 -0
  784. package/dist/interpreter/builtins/continue.d.ts +6 -0
  785. package/dist/interpreter/builtins/declare-array-parsing.d.ts +14 -0
  786. package/dist/interpreter/builtins/declare-print.d.ts +39 -0
  787. package/dist/interpreter/builtins/declare.d.ts +35 -0
  788. package/dist/interpreter/builtins/dirs.d.ts +29 -0
  789. package/dist/interpreter/builtins/eval.d.ts +9 -0
  790. package/dist/interpreter/builtins/exit.d.ts +5 -0
  791. package/dist/interpreter/builtins/export.d.ts +14 -0
  792. package/dist/interpreter/builtins/getopts.d.ts +18 -0
  793. package/dist/interpreter/builtins/hash.d.ts +19 -0
  794. package/dist/interpreter/builtins/help.d.ts +12 -0
  795. package/dist/interpreter/builtins/index.d.ts +45 -0
  796. package/dist/interpreter/builtins/let.d.ts +18 -0
  797. package/dist/interpreter/builtins/local.d.ts +6 -0
  798. package/dist/interpreter/builtins/mapfile.d.ts +17 -0
  799. package/dist/interpreter/builtins/read.d.ts +6 -0
  800. package/dist/interpreter/builtins/return.d.ts +6 -0
  801. package/dist/interpreter/builtins/set.d.ts +9 -0
  802. package/dist/interpreter/builtins/shift.d.ts +15 -0
  803. package/dist/interpreter/builtins/shopt.d.ts +7 -0
  804. package/dist/interpreter/builtins/source.d.ts +6 -0
  805. package/dist/interpreter/builtins/unset.d.ts +16 -0
  806. package/dist/interpreter/builtins/variable-assignment.d.ts +66 -0
  807. package/dist/interpreter/command-resolution.d.ts +43 -0
  808. package/dist/interpreter/conditionals.d.ts +17 -0
  809. package/dist/interpreter/control-flow.d.ts +21 -0
  810. package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
  811. package/dist/interpreter/errors.d.ts +158 -0
  812. package/dist/interpreter/expansion/analysis.d.ts +37 -0
  813. package/dist/interpreter/expansion/arith-text-expansion.d.ts +20 -0
  814. package/dist/interpreter/expansion/array-pattern-ops.d.ts +21 -0
  815. package/dist/interpreter/expansion/array-prefix-suffix.d.ts +46 -0
  816. package/dist/interpreter/expansion/array-slice-transform.d.ts +36 -0
  817. package/dist/interpreter/expansion/array-word-expansion.d.ts +39 -0
  818. package/dist/interpreter/expansion/brace-range.d.ts +20 -0
  819. package/dist/interpreter/expansion/command-substitution.d.ts +23 -0
  820. package/dist/interpreter/expansion/glob-escape.d.ts +32 -0
  821. package/dist/interpreter/expansion/indirect-expansion.d.ts +42 -0
  822. package/dist/interpreter/expansion/parameter-ops.d.ts +113 -0
  823. package/dist/interpreter/expansion/pattern-expansion.d.ts +23 -0
  824. package/dist/interpreter/expansion/pattern-removal.d.ts +18 -0
  825. package/dist/interpreter/expansion/pattern.d.ts +23 -0
  826. package/dist/interpreter/expansion/positional-params.d.ts +59 -0
  827. package/dist/interpreter/expansion/prompt.d.ts +39 -0
  828. package/dist/interpreter/expansion/quoting.d.ts +13 -0
  829. package/dist/interpreter/expansion/tilde.d.ts +12 -0
  830. package/dist/interpreter/expansion/unquoted-expansion.d.ts +76 -0
  831. package/dist/interpreter/expansion/variable-attrs.d.ts +19 -0
  832. package/dist/interpreter/expansion/variable.d.ts +36 -0
  833. package/dist/interpreter/expansion/word-glob-expansion.d.ts +33 -0
  834. package/dist/interpreter/expansion/word-split.d.ts +29 -0
  835. package/dist/interpreter/expansion.d.ts +53 -0
  836. package/dist/interpreter/functions.d.ts +12 -0
  837. package/dist/interpreter/helpers/array.d.ts +43 -0
  838. package/dist/interpreter/helpers/condition.d.ts +22 -0
  839. package/dist/interpreter/helpers/errors.d.ts +8 -0
  840. package/dist/interpreter/helpers/file-tests.d.ts +33 -0
  841. package/dist/interpreter/helpers/ifs.d.ts +104 -0
  842. package/dist/interpreter/helpers/loop.d.ts +24 -0
  843. package/dist/interpreter/helpers/nameref.d.ts +65 -0
  844. package/dist/interpreter/helpers/numeric-compare.d.ts +13 -0
  845. package/dist/interpreter/helpers/quoting.d.ts +24 -0
  846. package/dist/interpreter/helpers/readonly.d.ts +45 -0
  847. package/dist/interpreter/helpers/regex.d.ts +8 -0
  848. package/dist/interpreter/helpers/result.d.ts +60 -0
  849. package/dist/interpreter/helpers/shell-constants.d.ts +25 -0
  850. package/dist/interpreter/helpers/shellopts.d.ts +28 -0
  851. package/dist/interpreter/helpers/statements.d.ts +20 -0
  852. package/dist/interpreter/helpers/string-compare.d.ts +24 -0
  853. package/dist/interpreter/helpers/string-tests.d.ts +13 -0
  854. package/dist/interpreter/helpers/tilde.d.ts +13 -0
  855. package/dist/interpreter/helpers/variable-tests.d.ts +9 -0
  856. package/dist/interpreter/helpers/word-matching.d.ts +26 -0
  857. package/dist/interpreter/helpers/word-parts.d.ts +22 -0
  858. package/dist/interpreter/helpers/xtrace.d.ts +18 -0
  859. package/dist/interpreter/index.d.ts +3 -0
  860. package/dist/interpreter/interpreter.d.ts +79 -0
  861. package/dist/interpreter/pipeline-execution.d.ts +16 -0
  862. package/dist/interpreter/redirections.d.ts +51 -0
  863. package/dist/interpreter/simple-command-assignments.d.ts +29 -0
  864. package/dist/interpreter/subshell-group.d.ts +32 -0
  865. package/dist/interpreter/type-command.d.ts +37 -0
  866. package/dist/interpreter/types.d.ts +349 -0
  867. package/dist/limits.d.ts +52 -0
  868. package/dist/network/allow-list/shared.d.ts +57 -0
  869. package/dist/network/allow-list.d.ts +59 -0
  870. package/dist/network/dns-pin.d.ts +43 -0
  871. package/dist/network/fetch.d.ts +25 -0
  872. package/dist/network/index.d.ts +7 -0
  873. package/dist/network/types.d.ts +155 -0
  874. package/dist/parser/arithmetic-parser.d.ts +23 -0
  875. package/dist/parser/arithmetic-primaries.d.ts +45 -0
  876. package/dist/parser/command-parser.d.ts +10 -0
  877. package/dist/parser/compound-parser.d.ts +28 -0
  878. package/dist/parser/conditional-parser.d.ts +8 -0
  879. package/dist/parser/expansion-parser.d.ts +16 -0
  880. package/dist/parser/lexer.d.ts +197 -0
  881. package/dist/parser/parser-substitution.d.ts +62 -0
  882. package/dist/parser/parser.d.ts +135 -0
  883. package/dist/parser/types.d.ts +25 -0
  884. package/dist/parser/word-parser.d.ts +33 -0
  885. package/dist/sandbox/Command.d.ts +35 -0
  886. package/dist/sandbox/Sandbox.d.ts +90 -0
  887. package/dist/sandbox/index.d.ts +2 -0
  888. package/dist/shell-metadata.d.ts +25 -0
  889. package/dist/timers.d.ts +4 -0
  890. package/dist/types.d.ts +247 -0
  891. package/dist/utils/args.d.ts +55 -0
  892. package/dist/utils/constants.d.ts +15 -0
  893. package/dist/utils/file-reader.d.ts +74 -0
  894. package/dist/utils/glob.d.ts +25 -0
  895. package/dist/vitest-setup.d.ts +1 -0
  896. package/package.json +127 -0
  897. package/vendor/cpython-emscripten/python.cjs +2 -0
  898. package/vendor/cpython-emscripten/python.wasm +0 -0
  899. package/vendor/cpython-emscripten/python313.zip +0 -0
@@ -0,0 +1,75 @@
1
+ import { type ByteString } from "../../encoding.js";
2
+ import type { BufferEncoding, CpOptions, DirectoryEntry, DirentEntry, FileContent, FileEntry, FsEntry, FsStat, IFileSystem, InitialFiles, LazyFileEntry, MkdirOptions, ReadFileOptions, RmOptions, SymlinkEntry, WriteFileOptions } from "../interface.js";
3
+ export type { BufferEncoding, FileContent, FileEntry, LazyFileEntry, DirectoryEntry, SymlinkEntry, FsEntry, FsStat, IFileSystem, };
4
+ export interface FsData {
5
+ [path: string]: FsEntry;
6
+ }
7
+ export declare class InMemoryFs implements IFileSystem {
8
+ private data;
9
+ constructor(initialFiles?: InitialFiles);
10
+ private ensureParentDirs;
11
+ writeFileSync(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding, metadata?: {
12
+ mode?: number;
13
+ mtime?: Date;
14
+ }): void;
15
+ /**
16
+ * Store a lazy file entry whose content is provided by a function on first read.
17
+ * Writing to the path replaces the lazy entry, so the function is never called.
18
+ */
19
+ writeFileLazy(path: string, lazy: () => string | Uint8Array | Promise<string | Uint8Array>, metadata?: {
20
+ mode?: number;
21
+ mtime?: Date;
22
+ }): void;
23
+ /**
24
+ * Materialize a lazy file entry, replacing it with a concrete FileEntry.
25
+ * Returns the materialized FileEntry.
26
+ */
27
+ private materializeLazy;
28
+ readFile(path: string, options?: ReadFileOptions | BufferEncoding): Promise<string>;
29
+ readFileBytes(path: string): Promise<ByteString>;
30
+ readFileBuffer(path: string): Promise<Uint8Array>;
31
+ writeFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
32
+ appendFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
33
+ exists(path: string): Promise<boolean>;
34
+ stat(path: string): Promise<FsStat>;
35
+ lstat(path: string): Promise<FsStat>;
36
+ /**
37
+ * Resolve symlinks in intermediate path components only (not the final component).
38
+ * Used by lstat which should not follow the final symlink.
39
+ */
40
+ private resolveIntermediateSymlinks;
41
+ /**
42
+ * Resolve all symlinks in a path, including intermediate components.
43
+ * For example: /home/user/linkdir/file.txt where linkdir is a symlink to "subdir"
44
+ * would resolve to /home/user/subdir/file.txt
45
+ */
46
+ private resolvePathWithSymlinks;
47
+ mkdir(path: string, options?: MkdirOptions): Promise<void>;
48
+ /**
49
+ * Synchronous version of mkdir
50
+ */
51
+ mkdirSync(path: string, options?: MkdirOptions): void;
52
+ readdir(path: string): Promise<string[]>;
53
+ readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
54
+ rm(path: string, options?: RmOptions): Promise<void>;
55
+ cp(src: string, dest: string, options?: CpOptions): Promise<void>;
56
+ mv(src: string, dest: string): Promise<void>;
57
+ getAllPaths(): string[];
58
+ resolvePath(base: string, path: string): string;
59
+ chmod(path: string, mode: number): Promise<void>;
60
+ symlink(target: string, linkPath: string): Promise<void>;
61
+ link(existingPath: string, newPath: string): Promise<void>;
62
+ readlink(path: string): Promise<string>;
63
+ /**
64
+ * Resolve all symlinks in a path to get the canonical physical path.
65
+ * This is equivalent to POSIX realpath().
66
+ */
67
+ realpath(path: string): Promise<string>;
68
+ /**
69
+ * Set access and modification times of a file
70
+ * @param path - The file path
71
+ * @param _atime - Access time (ignored, kept for API compatibility)
72
+ * @param mtime - Modification time
73
+ */
74
+ utimes(path: string, _atime: Date, mtime: Date): Promise<void>;
75
+ }
@@ -0,0 +1 @@
1
+ export { InMemoryFs } from "./in-memory-fs.js";
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Filesystem Initialization
3
+ *
4
+ * Sets up the default filesystem structure for the bash environment
5
+ * including /dev, /proc, and common directories.
6
+ */
7
+ import type { IFileSystem } from "./interface.js";
8
+ /**
9
+ * Virtual process info for /proc filesystem initialization.
10
+ */
11
+ interface VirtualProcessInfo {
12
+ pid: number;
13
+ ppid: number;
14
+ uid: number;
15
+ gid: number;
16
+ }
17
+ /**
18
+ * Initialize the filesystem with standard directories and files
19
+ * Works with both InMemoryFs and OverlayFs (both write to memory)
20
+ */
21
+ export declare function initFilesystem(fs: IFileSystem, useDefaultLayout: boolean, processInfo?: VirtualProcessInfo): void;
22
+ export {};
@@ -0,0 +1,251 @@
1
+ import type { ByteString } from "../encoding.js";
2
+ /**
3
+ * Supported buffer encodings
4
+ */
5
+ export type BufferEncoding = "utf8" | "utf-8" | "ascii" | "binary" | "base64" | "hex" | "latin1";
6
+ /**
7
+ * File content can be string or Buffer
8
+ */
9
+ export type FileContent = string | Uint8Array;
10
+ /**
11
+ * Options for reading files
12
+ */
13
+ export interface ReadFileOptions {
14
+ encoding?: BufferEncoding | null;
15
+ }
16
+ /**
17
+ * Options for writing files
18
+ */
19
+ export interface WriteFileOptions {
20
+ encoding?: BufferEncoding;
21
+ }
22
+ /**
23
+ * File system entry types
24
+ */
25
+ export interface FileEntry {
26
+ type: "file";
27
+ content: string | Uint8Array;
28
+ mode: number;
29
+ mtime: Date;
30
+ }
31
+ export interface DirectoryEntry {
32
+ type: "directory";
33
+ mode: number;
34
+ mtime: Date;
35
+ }
36
+ export interface SymlinkEntry {
37
+ type: "symlink";
38
+ target: string;
39
+ mode: number;
40
+ mtime: Date;
41
+ }
42
+ export interface LazyFileEntry {
43
+ type: "file";
44
+ lazy: () => string | Uint8Array | Promise<string | Uint8Array>;
45
+ mode: number;
46
+ mtime: Date;
47
+ }
48
+ export type FsEntry = FileEntry | LazyFileEntry | DirectoryEntry | SymlinkEntry;
49
+ /**
50
+ * Directory entry with type information (similar to Node's Dirent)
51
+ * Used by readdirWithFileTypes for efficient directory listing without stat calls
52
+ */
53
+ export interface DirentEntry {
54
+ name: string;
55
+ isFile: boolean;
56
+ isDirectory: boolean;
57
+ isSymbolicLink: boolean;
58
+ }
59
+ /**
60
+ * Stat result from the filesystem
61
+ */
62
+ export interface FsStat {
63
+ isFile: boolean;
64
+ isDirectory: boolean;
65
+ isSymbolicLink: boolean;
66
+ mode: number;
67
+ size: number;
68
+ mtime: Date;
69
+ }
70
+ /**
71
+ * Options for mkdir operation
72
+ */
73
+ export interface MkdirOptions {
74
+ recursive?: boolean;
75
+ }
76
+ /**
77
+ * Options for rm operation
78
+ */
79
+ export interface RmOptions {
80
+ recursive?: boolean;
81
+ force?: boolean;
82
+ }
83
+ /**
84
+ * Options for cp operation
85
+ */
86
+ export interface CpOptions {
87
+ recursive?: boolean;
88
+ }
89
+ /**
90
+ * Abstract filesystem interface that can be implemented by different backends.
91
+ * This allows BashEnv to work with:
92
+ * - InMemoryFs (in-memory, default)
93
+ * - Real filesystem (via node:fs)
94
+ * - Custom implementations (e.g., remote storage, browser IndexedDB)
95
+ */
96
+ export interface IFileSystem {
97
+ /**
98
+ * Read the contents of a file as decoded text. Default encoding is utf8;
99
+ * pass an explicit text encoding (`"ascii"`, etc.) to override.
100
+ *
101
+ * For raw bytes (encoding `"binary"` / `"latin1"`), use {@link readFileBytes}
102
+ * — the opaque return type forces callers to decide whether to forward
103
+ * bytes unchanged or decode as text.
104
+ *
105
+ * @throws Error if file doesn't exist or is a directory
106
+ */
107
+ readFile(path: string, options?: ReadFileOptions | BufferEncoding): Promise<string>;
108
+ /**
109
+ * Read the raw bytes of a file as a {@link ByteString} (latin1-shaped: each
110
+ * char = one byte). Use when the bytes will be piped onward unchanged or
111
+ * explicitly decoded with `decodeBytesToUtf8` — never call string methods
112
+ * on the result, that's the bug class this type prevents.
113
+ *
114
+ * Optional for backwards compatibility with external `IFileSystem`
115
+ * implementations written before this method existed; built-in
116
+ * filesystems all implement it. Internal callers must route through the
117
+ * `readBytesFrom(fs, path)` helper, which falls back to `readFileBuffer`
118
+ * when this method is missing.
119
+ *
120
+ * @throws Error if file doesn't exist or is a directory
121
+ */
122
+ readFileBytes?(path: string): Promise<ByteString>;
123
+ /**
124
+ * Read the contents of a file as a Uint8Array (binary)
125
+ * @throws Error if file doesn't exist or is a directory
126
+ */
127
+ readFileBuffer(path: string): Promise<Uint8Array>;
128
+ /**
129
+ * Write content to a file, creating it if it doesn't exist
130
+ */
131
+ writeFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
132
+ /**
133
+ * Append content to a file, creating it if it doesn't exist
134
+ */
135
+ appendFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
136
+ /**
137
+ * Check if a path exists
138
+ */
139
+ exists(path: string): Promise<boolean>;
140
+ /**
141
+ * Get file/directory information
142
+ * @throws Error if path doesn't exist
143
+ */
144
+ stat(path: string): Promise<FsStat>;
145
+ /**
146
+ * Create a directory
147
+ * @throws Error if parent doesn't exist (unless recursive) or path exists
148
+ */
149
+ mkdir(path: string, options?: MkdirOptions): Promise<void>;
150
+ /**
151
+ * Read directory contents
152
+ * @returns Array of entry names (not full paths)
153
+ * @throws Error if path doesn't exist or is not a directory
154
+ */
155
+ readdir(path: string): Promise<string[]>;
156
+ /**
157
+ * Read directory contents with file type information (optional)
158
+ * This is more efficient than readdir + stat for each entry
159
+ * @returns Array of DirentEntry objects with name and type
160
+ * @throws Error if path doesn't exist or is not a directory
161
+ */
162
+ readdirWithFileTypes?(path: string): Promise<DirentEntry[]>;
163
+ /**
164
+ * Remove a file or directory
165
+ * @throws Error if path doesn't exist (unless force) or directory not empty (unless recursive)
166
+ */
167
+ rm(path: string, options?: RmOptions): Promise<void>;
168
+ /**
169
+ * Copy a file or directory
170
+ * @throws Error if source doesn't exist or trying to copy directory without recursive
171
+ */
172
+ cp(src: string, dest: string, options?: CpOptions): Promise<void>;
173
+ /**
174
+ * Move/rename a file or directory
175
+ */
176
+ mv(src: string, dest: string): Promise<void>;
177
+ /**
178
+ * Resolve a relative path against a base path
179
+ */
180
+ resolvePath(base: string, path: string): string;
181
+ /**
182
+ * Get all paths in the filesystem (useful for glob matching)
183
+ * Optional - implementations may return empty array if not supported
184
+ */
185
+ getAllPaths(): string[];
186
+ /**
187
+ * Change file/directory permissions
188
+ * @throws Error if path doesn't exist
189
+ */
190
+ chmod(path: string, mode: number): Promise<void>;
191
+ /**
192
+ * Create a symbolic link
193
+ * @param target - The path the symlink should point to
194
+ * @param linkPath - The path where the symlink will be created
195
+ * @throws Error if linkPath already exists
196
+ */
197
+ symlink(target: string, linkPath: string): Promise<void>;
198
+ /**
199
+ * Create a hard link
200
+ * @param existingPath - The existing file to link to
201
+ * @param newPath - The path where the new link will be created
202
+ * @throws Error if existingPath doesn't exist or newPath already exists
203
+ */
204
+ link(existingPath: string, newPath: string): Promise<void>;
205
+ /**
206
+ * Read the target of a symbolic link
207
+ * @throws Error if path doesn't exist or is not a symlink
208
+ */
209
+ readlink(path: string): Promise<string>;
210
+ /**
211
+ * Get file/directory information without following symlinks
212
+ * @throws Error if path doesn't exist
213
+ */
214
+ lstat(path: string): Promise<FsStat>;
215
+ /**
216
+ * Resolve all symlinks in a path to get the canonical physical path.
217
+ * This is equivalent to POSIX realpath() - it resolves all symlinks
218
+ * in the path and returns the absolute physical path.
219
+ * Used by pwd -P and cd -P for symlink resolution.
220
+ * @throws Error if path doesn't exist or contains a broken symlink
221
+ */
222
+ realpath(path: string): Promise<string>;
223
+ /**
224
+ * Set access and modification times of a file
225
+ * @param path - The file path
226
+ * @param atime - Access time (currently ignored, kept for API compatibility)
227
+ * @param mtime - Modification time
228
+ * @throws Error if path doesn't exist
229
+ */
230
+ utimes(path: string, atime: Date, mtime: Date): Promise<void>;
231
+ }
232
+ /**
233
+ * Extended file initialization options with optional metadata
234
+ */
235
+ export interface FileInit {
236
+ content: FileContent;
237
+ mode?: number;
238
+ mtime?: Date;
239
+ }
240
+ /**
241
+ * Lazy file provider - a function whose return value becomes the file content on first read
242
+ */
243
+ export type LazyFileProvider = () => string | Uint8Array | Promise<string | Uint8Array>;
244
+ /**
245
+ * Initial files can be simple content, extended options with metadata, or lazy providers
246
+ */
247
+ export type InitialFiles = Record<string, FileContent | FileInit | LazyFileProvider>;
248
+ /**
249
+ * Factory function type for creating filesystem instances
250
+ */
251
+ export type FileSystemFactory = (initialFiles?: InitialFiles) => IFileSystem;
@@ -0,0 +1 @@
1
+ export { MountableFs, type MountableFsOptions, type MountConfig, } from "./mountable-fs.js";
@@ -0,0 +1,118 @@
1
+ import { type ByteString } from "../../encoding.js";
2
+ import type { BufferEncoding, CpOptions, FileContent, FsStat, IFileSystem, MkdirOptions, ReadFileOptions, RmOptions, WriteFileOptions } from "../interface.js";
3
+ /**
4
+ * Configuration for a mount point
5
+ */
6
+ export interface MountConfig {
7
+ /** Virtual path where the filesystem is mounted */
8
+ mountPoint: string;
9
+ /** The filesystem to mount at this path */
10
+ filesystem: IFileSystem;
11
+ }
12
+ /**
13
+ * Options for creating a MountableFs
14
+ */
15
+ export interface MountableFsOptions {
16
+ /** Base filesystem used for unmounted paths (defaults to InMemoryFs) */
17
+ base?: IFileSystem;
18
+ /** Initial mounts to configure */
19
+ mounts?: MountConfig[];
20
+ }
21
+ /**
22
+ * A filesystem that supports mounting other filesystems at specific paths.
23
+ *
24
+ * This allows combining multiple filesystem backends into a unified namespace.
25
+ * For example, mounting a read-only knowledge base at /mnt/knowledge and a
26
+ * read-write workspace at /home/agent.
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * const fs = new MountableFs({ base: new InMemoryFs() });
31
+ * fs.mount('/mnt/knowledge', new OverlayFs({ root: "/path/to/knowledge", readOnly: true }));
32
+ * fs.mount('/home/agent', new ReadWriteFs({ root: "/path/to/workspace" }));
33
+ * ```
34
+ */
35
+ export declare class MountableFs implements IFileSystem {
36
+ private baseFs;
37
+ private mounts;
38
+ constructor(options?: MountableFsOptions);
39
+ /**
40
+ * Mount a filesystem at the specified virtual path.
41
+ *
42
+ * @param mountPoint - The virtual path where the filesystem will be accessible
43
+ * @param filesystem - The filesystem to mount
44
+ * @throws Error if mounting at root '/' or inside an existing mount
45
+ */
46
+ mount(mountPoint: string, filesystem: IFileSystem): void;
47
+ /**
48
+ * Unmount the filesystem at the specified path.
49
+ *
50
+ * @param mountPoint - The virtual path to unmount
51
+ * @throws Error if no filesystem is mounted at this path
52
+ */
53
+ unmount(mountPoint: string): void;
54
+ /**
55
+ * Get all current mounts.
56
+ */
57
+ getMounts(): ReadonlyArray<{
58
+ mountPoint: string;
59
+ filesystem: IFileSystem;
60
+ }>;
61
+ /**
62
+ * Check if a path is exactly a mount point.
63
+ */
64
+ isMountPoint(path: string): boolean;
65
+ /**
66
+ * Validate mount path format before normalization.
67
+ * Rejects paths containing . or .. segments.
68
+ */
69
+ private validateMountPath;
70
+ /**
71
+ * Validate that a mount point is allowed.
72
+ */
73
+ private validateMount;
74
+ /**
75
+ * Route a path to the appropriate filesystem.
76
+ * Returns the filesystem and the relative path within that filesystem.
77
+ */
78
+ private routePath;
79
+ /**
80
+ * Get mount points that are immediate children of a directory.
81
+ */
82
+ private getChildMountPoints;
83
+ readFile(path: string, options?: ReadFileOptions | BufferEncoding): Promise<string>;
84
+ readFileBytes(path: string): Promise<ByteString>;
85
+ readFileBuffer(path: string): Promise<Uint8Array>;
86
+ writeFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
87
+ appendFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
88
+ exists(path: string): Promise<boolean>;
89
+ stat(path: string): Promise<FsStat>;
90
+ lstat(path: string): Promise<FsStat>;
91
+ mkdir(path: string, options?: MkdirOptions): Promise<void>;
92
+ readdir(path: string): Promise<string[]>;
93
+ rm(path: string, options?: RmOptions): Promise<void>;
94
+ cp(src: string, dest: string, options?: CpOptions): Promise<void>;
95
+ mv(src: string, dest: string): Promise<void>;
96
+ resolvePath(base: string, path: string): string;
97
+ getAllPaths(): string[];
98
+ chmod(path: string, mode: number): Promise<void>;
99
+ symlink(target: string, linkPath: string): Promise<void>;
100
+ link(existingPath: string, newPath: string): Promise<void>;
101
+ readlink(path: string): Promise<string>;
102
+ /**
103
+ * Resolve all symlinks in a path to get the canonical physical path.
104
+ * This is equivalent to POSIX realpath().
105
+ */
106
+ realpath(path: string): Promise<string>;
107
+ /**
108
+ * Perform a cross-mount copy operation.
109
+ */
110
+ private crossMountCopy;
111
+ /**
112
+ * Set access and modification times of a file
113
+ * @param path - The file path
114
+ * @param atime - Access time
115
+ * @param mtime - Modification time
116
+ */
117
+ utimes(path: string, atime: Date, mtime: Date): Promise<void>;
118
+ }
@@ -0,0 +1 @@
1
+ export { OverlayFs, type OverlayFsOptions } from "./overlay-fs.js";
@@ -0,0 +1,165 @@
1
+ /**
2
+ * OverlayFs - Copy-on-write filesystem backed by a real directory
3
+ *
4
+ * Reads come from the real filesystem, writes go to an in-memory layer.
5
+ * Changes don't persist to disk and can't escape the root directory.
6
+ *
7
+ * Security: Symlinks are blocked by default (allowSymlinks: false).
8
+ * All real-FS access goes through resolveRealPath_() / resolveRealPathParent_()
9
+ * gates which detect symlink traversal via path comparison and return the
10
+ * canonical path for I/O (closing the TOCTOU gap). New methods must use these
11
+ * gates — never access the real FS directly.
12
+ */
13
+ import { type ByteString } from "../../encoding.js";
14
+ import { type FileContent } from "../encoding.js";
15
+ import type { CpOptions, DirentEntry, FsStat, IFileSystem, MkdirOptions, ReadFileOptions, RmOptions, WriteFileOptions } from "../interface.js";
16
+ export interface OverlayFsOptions {
17
+ /**
18
+ * The root directory on the real filesystem.
19
+ * All paths are relative to this root and cannot escape it.
20
+ */
21
+ root: string;
22
+ /**
23
+ * The virtual mount point where the root directory appears.
24
+ * Defaults to "/home/user/project".
25
+ */
26
+ mountPoint?: string;
27
+ /**
28
+ * If true, all write operations will throw an error.
29
+ * Useful for truly read-only access to the filesystem.
30
+ * Defaults to false.
31
+ */
32
+ readOnly?: boolean;
33
+ /**
34
+ * Maximum file size in bytes that can be read from the real filesystem.
35
+ * Files larger than this will throw an EFBIG error.
36
+ * Defaults to 10MB (10485760).
37
+ */
38
+ maxFileReadSize?: number;
39
+ /**
40
+ * Whether to allow following and creating symlinks on the real filesystem.
41
+ * When false (default), any real-FS path traversing a symlink is rejected
42
+ * and symlink() throws EPERM.
43
+ */
44
+ allowSymlinks?: boolean;
45
+ }
46
+ export declare class OverlayFs implements IFileSystem {
47
+ private readonly root;
48
+ private readonly canonicalRoot;
49
+ private readonly mountPoint;
50
+ private readonly readOnly;
51
+ private readonly maxFileReadSize;
52
+ private readonly allowSymlinks;
53
+ private readonly memory;
54
+ private readonly deleted;
55
+ constructor(options: OverlayFsOptions);
56
+ /**
57
+ * Throws an error if the filesystem is in read-only mode.
58
+ */
59
+ private assertWritable;
60
+ /**
61
+ * Create directory entries for the mount point path
62
+ */
63
+ private createMountPointDirs;
64
+ /**
65
+ * Get the mount point for this overlay
66
+ */
67
+ getMountPoint(): string;
68
+ /**
69
+ * Create a virtual directory in memory (sync, for initialization)
70
+ */
71
+ mkdirSync(path: string, _options?: MkdirOptions): void;
72
+ /**
73
+ * Create a virtual file in memory (sync, for initialization)
74
+ */
75
+ writeFileSync(path: string, content: string | Uint8Array): void;
76
+ private getDirname;
77
+ /**
78
+ * Check if a normalized virtual path is under the mount point.
79
+ * Returns the relative path within the mount point, or null if not under it.
80
+ */
81
+ private getRelativeToMount;
82
+ /**
83
+ * Convert a virtual path to a real filesystem path.
84
+ * Returns null if the path is not under the mount point or would escape the root.
85
+ */
86
+ private toRealPath;
87
+ /**
88
+ * Resolve a real-FS path to its canonical form and validate it stays
89
+ * within the sandbox. Returns the canonical path for I/O, or null if
90
+ * the path escapes the root or traverses a symlink (when !allowSymlinks).
91
+ *
92
+ * Callers MUST use the returned canonical path for subsequent I/O to
93
+ * close the TOCTOU gap between validation and use.
94
+ */
95
+ private resolveRealPath_;
96
+ /**
97
+ * Resolve only the parent directory of a real-FS path, then join with
98
+ * the original basename. Used by lstat/readlink/existsInOverlay where
99
+ * the final component may itself be a symlink we want to inspect (not
100
+ * follow). Returns the canonical parent + basename for I/O, or null.
101
+ */
102
+ private resolveRealPathParent_;
103
+ private sanitizeError;
104
+ private ensureParentDirs;
105
+ /**
106
+ * Check if a path exists in the overlay (memory + real fs - deleted)
107
+ */
108
+ private existsInOverlay;
109
+ readFile(path: string, options?: ReadFileOptions | BufferEncoding): Promise<string>;
110
+ readFileBytes(path: string): Promise<ByteString>;
111
+ readFileBuffer(path: string, seen?: Set<string>): Promise<Uint8Array>;
112
+ writeFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
113
+ appendFile(path: string, content: FileContent, options?: WriteFileOptions | BufferEncoding): Promise<void>;
114
+ exists(path: string): Promise<boolean>;
115
+ stat(path: string, seen?: Set<string>): Promise<FsStat>;
116
+ lstat(path: string): Promise<FsStat>;
117
+ private resolveSymlink;
118
+ /**
119
+ * Convert a real-fs symlink target to a virtual target suitable for resolveSymlink.
120
+ * Handles absolute real-fs paths that point within the root by converting them
121
+ * to virtual paths relative to the mount point.
122
+ */
123
+ private realTargetToVirtual;
124
+ mkdir(path: string, options?: MkdirOptions): Promise<void>;
125
+ /**
126
+ * Core readdir implementation that returns entries with file types.
127
+ * Both readdir and readdirWithFileTypes use this shared implementation.
128
+ */
129
+ private readdirCore;
130
+ /**
131
+ * Follow symlinks to resolve the final directory path.
132
+ * Returns outsideOverlay: true if the symlink points outside the overlay or
133
+ * the resolved target doesn't exist (security - broken symlinks return []).
134
+ */
135
+ private resolveForReaddir;
136
+ readdir(path: string): Promise<string[]>;
137
+ readdirWithFileTypes(path: string): Promise<DirentEntry[]>;
138
+ rm(path: string, options?: RmOptions): Promise<void>;
139
+ /**
140
+ * Check (synchronously) whether a path exists on the real filesystem.
141
+ * Used to decide whether a tombstone is needed after deletion.
142
+ */
143
+ private existsOnRealFs;
144
+ cp(src: string, dest: string, options?: CpOptions): Promise<void>;
145
+ mv(src: string, dest: string): Promise<void>;
146
+ resolvePath(base: string, rel: string): string;
147
+ getAllPaths(): string[];
148
+ private scanRealFs;
149
+ chmod(path: string, mode: number): Promise<void>;
150
+ symlink(target: string, linkPath: string): Promise<void>;
151
+ link(existingPath: string, newPath: string): Promise<void>;
152
+ readlink(path: string): Promise<string>;
153
+ /**
154
+ * Resolve all symlinks in a path to get the canonical physical path.
155
+ * This is equivalent to POSIX realpath().
156
+ */
157
+ realpath(path: string): Promise<string>;
158
+ /**
159
+ * Set access and modification times of a file
160
+ * @param path - The file path
161
+ * @param _atime - Access time (ignored, kept for API compatibility)
162
+ * @param mtime - Modification time
163
+ */
164
+ utimes(path: string, _atime: Date, mtime: Date): Promise<void>;
165
+ }
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Pure path utilities for virtual filesystems.
3
+ *
4
+ * No node:fs or node:path dependencies — safe for browser bundles.
5
+ * Real-FS-backed implementations should import from real-fs-utils.ts
6
+ * (which re-exports these) to keep a single import source.
7
+ */
8
+ /** Maximum depth for symlink resolution loops. */
9
+ export declare const MAX_SYMLINK_DEPTH = 40;
10
+ /** Default directory permissions. */
11
+ export declare const DEFAULT_DIR_MODE = 493;
12
+ /** Default file permissions. */
13
+ export declare const DEFAULT_FILE_MODE = 420;
14
+ /** Default symlink permissions. */
15
+ export declare const SYMLINK_MODE = 511;
16
+ /**
17
+ * Normalize a virtual path: resolve `.` and `..`, ensure it starts with `/`,
18
+ * strip trailing slashes. Pure function, no I/O.
19
+ */
20
+ export declare function normalizePath(path: string): string;
21
+ /**
22
+ * Validate that a path does not contain null bytes.
23
+ * Null bytes in paths can be used to truncate filenames or bypass security
24
+ * filters.
25
+ */
26
+ export declare function validatePath(path: string, operation: string): void;
27
+ /**
28
+ * Get the directory name of a normalized virtual path.
29
+ */
30
+ export declare function dirname(path: string): string;
31
+ /**
32
+ * Resolve a relative path against a base directory.
33
+ * If `path` is absolute, it is normalized and returned directly.
34
+ */
35
+ export declare function resolvePath(base: string, path: string): string;
36
+ /**
37
+ * Join a parent path with a child name.
38
+ * Handles the root-path edge case (`"/" + "child"` → `"/child"`).
39
+ */
40
+ export declare function joinPath(parent: string, child: string): string;
41
+ /**
42
+ * Resolve a symlink target relative to the symlink's location.
43
+ * Absolute targets are normalized directly; relative targets are
44
+ * resolved from the symlink's parent directory.
45
+ */
46
+ export declare function resolveSymlinkTarget(symlinkPath: string, target: string): string;
@@ -0,0 +1 @@
1
+ export { ReadWriteFs, type ReadWriteFsOptions } from "./read-write-fs.js";