@poe-platform/safe-bash 0.1.803 → 0.1.804

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 (696) hide show
  1. package/README.md +56 -31
  2. package/dist/image-ast/ast.d.ts +1 -0
  3. package/dist/image-ast/browser/ast.d.ts +1 -0
  4. package/dist/image-ast/browser/codecs/jpeg.d.ts +2 -2
  5. package/dist/image-ast/codecs/jpeg.d.ts +2 -2
  6. package/dist/image-ast/index.browser.js +692 -8364
  7. package/dist/image-ast/index.js +692 -8364
  8. package/dist/mp4-ast/codecs.d.ts +7 -2
  9. package/dist/safe-bash/chunks/{chunk-CHYGPFVM.js → chunk-22SX3F2R.js} +1 -1
  10. package/dist/safe-bash/chunks/{chunk-FBUCWVTE.js → chunk-2IVBJTBD.js} +1 -1
  11. package/dist/safe-bash/chunks/chunk-2POETUMB.js +190 -0
  12. package/dist/safe-bash/chunks/{chunk-XVOSKJE2.js → chunk-47D7WBJK.js} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-VKNVHEX3.js → chunk-4ESI236Y.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-74GHTNJA.js → chunk-4KTMKD5W.js} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-55YJASTN.js → chunk-4T53AERN.js} +1 -1
  16. package/dist/safe-bash/chunks/{chunk-DQP3VHSB.js → chunk-5XIFJVOO.js} +1 -1
  17. package/dist/safe-bash/chunks/{chunk-5OHX7C2V.js → chunk-62BOHHJT.js} +1 -1
  18. package/dist/safe-bash/chunks/{chunk-HZAMGT5I.js → chunk-67WIFM3N.js} +17 -6
  19. package/dist/safe-bash/chunks/{chunk-4D4N7IU2.js → chunk-6LNFRPW5.js} +2 -2
  20. package/dist/safe-bash/chunks/{chunk-6O77NL2S.js → chunk-6SMICPI3.js} +1 -1
  21. package/dist/safe-bash/chunks/{chunk-4BSJLKNM.js → chunk-7O76UFQD.js} +1 -1
  22. package/dist/safe-bash/chunks/{chunk-PNBBUWSM.js → chunk-AW5KIT6V.js} +3488 -39
  23. package/dist/safe-bash/chunks/{chunk-JMMEIDPF.js → chunk-B2Z73HTZ.js} +52 -28
  24. package/dist/safe-bash/chunks/chunk-B3ZMOJVM.js +319 -0
  25. package/dist/safe-bash/chunks/{chunk-7ZBU7KYV.js → chunk-CFAWS3O4.js} +1 -1
  26. package/dist/safe-bash/chunks/{chunk-I5HZ4FGE.js → chunk-CL2FCTTO.js} +1 -1
  27. package/dist/safe-bash/chunks/{chunk-2LSAMQER.js → chunk-CTXNARJH.js} +1 -1
  28. package/dist/safe-bash/chunks/{chunk-TFIBK2GI.js → chunk-D5Q7NFWI.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-OQRVVGR6.js → chunk-DSOOVZ6Q.js} +1 -1
  30. package/dist/safe-bash/chunks/{chunk-VTH3MLDU.js → chunk-DUTAG6ZD.js} +1 -1
  31. package/dist/safe-bash/chunks/{chunk-XAQMU6OY.js → chunk-EE5YGFIZ.js} +1 -1
  32. package/dist/safe-bash/chunks/{chunk-FZE4HW6G.js → chunk-EJOYT2ME.js} +1 -1
  33. package/dist/safe-bash/chunks/chunk-FAAIR6EJ.js +887 -0
  34. package/dist/safe-bash/chunks/{chunk-OV6IHKO6.js → chunk-FOB2FZR4.js} +2 -2
  35. package/dist/safe-bash/chunks/chunk-G6V4RRSQ.js +14 -0
  36. package/dist/safe-bash/chunks/{chunk-UTBUUFDM.js → chunk-GGQAGQXQ.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-K6VCD7IY.js → chunk-HIIYIJ5G.js} +2 -4
  38. package/dist/safe-bash/chunks/{chunk-VBTDHOWC.js → chunk-IOHH2GTI.js} +4 -3
  39. package/dist/safe-bash/chunks/{chunk-CTVWDACF.js → chunk-IQW34XQT.js} +1 -1
  40. package/dist/safe-bash/chunks/{chunk-HZ7BWKQ3.js → chunk-IS572AAT.js} +1 -1
  41. package/dist/safe-bash/chunks/{chunk-AUSNDQTJ.js → chunk-JPSUHHOA.js} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-ZVD5IS4V.js → chunk-KBZ4UB2O.js} +2 -2
  43. package/dist/safe-bash/chunks/{chunk-AM5ESLPH.js → chunk-KU5CVWKA.js} +1 -1
  44. package/dist/safe-bash/chunks/{chunk-RYFQ3LZG.js → chunk-LPOVNKNB.js} +173 -153
  45. package/dist/safe-bash/chunks/{chunk-46Z5E5EV.js → chunk-MBOC3LZ4.js} +1 -1
  46. package/dist/safe-bash/chunks/{chunk-6PAVEFT3.js → chunk-N4BQFD3P.js} +1 -1
  47. package/dist/safe-bash/chunks/{chunk-CS4MNM6I.js → chunk-NGKCVNWS.js} +1 -1
  48. package/dist/safe-bash/chunks/{chunk-7R5BDCG7.js → chunk-OHML2BEU.js} +1 -1
  49. package/dist/safe-bash/chunks/{chunk-C5OWC2TL.js → chunk-OQ3AGYCZ.js} +1 -1
  50. package/dist/safe-bash/chunks/{chunk-B7TAL7S5.js → chunk-PTAEWLSE.js} +0 -2
  51. package/dist/safe-bash/chunks/{chunk-LVOBFF4D.js → chunk-Q4FNLOTI.js} +1 -1
  52. package/dist/safe-bash/chunks/chunk-Q5XO3NAS.js +1036 -0
  53. package/dist/safe-bash/chunks/{chunk-GEG3BWGE.js → chunk-RHFRJIWQ.js} +1 -1
  54. package/dist/safe-bash/chunks/chunk-RUR6J33T.js +11 -0
  55. package/dist/safe-bash/chunks/{chunk-EEEWOYEG.js → chunk-S4RFUUXO.js} +839 -24
  56. package/dist/safe-bash/chunks/{chunk-RRR7AQ24.js → chunk-SD2ISU5L.js} +1 -1
  57. package/dist/safe-bash/chunks/{chunk-3NDIFSNM.js → chunk-SUJ3NTMH.js} +3 -3
  58. package/dist/safe-bash/chunks/{chunk-R3NAKOED.js → chunk-SZRUU5HS.js} +2 -2
  59. package/dist/safe-bash/chunks/{chunk-PH63PLPZ.js → chunk-TC3F4UFF.js} +1 -1
  60. package/dist/safe-bash/chunks/{chunk-3R3AANOR.js → chunk-TCKYOLUE.js} +1 -1
  61. package/dist/safe-bash/chunks/{chunk-D3ANYGMC.js → chunk-UV4X32QU.js} +1 -1
  62. package/dist/safe-bash/chunks/{chunk-E7OYNDGL.js → chunk-V7QT2RWC.js} +1 -1
  63. package/dist/safe-bash/chunks/{chunk-B7PIL77G.js → chunk-W2IYOVHK.js} +804 -1195
  64. package/dist/safe-bash/chunks/{chunk-3HQU4OJO.js → chunk-XNGVOSGI.js} +1 -1
  65. package/dist/safe-bash/chunks/{chunk-J42RIHHJ.js → chunk-XQWCQSRN.js} +1 -1
  66. package/dist/safe-bash/chunks/{chunk-A7XEHALN.js → chunk-Y7FW6GLT.js} +6 -6
  67. package/dist/safe-bash/chunks/{chunk-QGUV42T5.js → chunk-YL3GBUG4.js} +1 -1
  68. package/dist/safe-bash/chunks/chunk-YOXUCJER.js +389 -0
  69. package/dist/safe-bash/chunks/{chunk-HBCN24ZA.js → chunk-Z2AAYYJN.js} +2 -2
  70. package/dist/safe-bash/chunks/chunk-ZKYKJCZZ.js +30 -0
  71. package/dist/safe-bash/chunks/core-IE3AFIDX.js +85806 -0
  72. package/dist/safe-bash/chunks/{ffmpeg-WTC3TEFI.js → ffmpeg-YANDK6HU.js} +2 -2
  73. package/dist/safe-bash/chunks/{gh-6WU6PXL4.js → gh-4MBJ2S5V.js} +2 -2
  74. package/dist/safe-bash/chunks/{git-EFZIGJW4.js → git-2QONJNRQ.js} +2 -2
  75. package/dist/safe-bash/chunks/{imagemagick-EIEYGWPF.js → imagemagick-JLEHGYSN.js} +2 -2
  76. package/dist/safe-bash/chunks/{mmdc-ROQJT5HQ.js → mmdc-6LD7A6ND.js} +2 -2
  77. package/dist/safe-bash/chunks/{pdfimages-DW7LWXFI.js → pdfimages-RSHL7LOP.js} +2 -2
  78. package/dist/safe-bash/chunks/{pdfinfo-TIP6XLUQ.js → pdfinfo-L3SGWPNG.js} +2 -2
  79. package/dist/safe-bash/chunks/{pdftk-DMG22ITZ.js → pdftk-LFBJNU5A.js} +2 -2
  80. package/dist/safe-bash/chunks/{pdftoppm-WNDYR72T.js → pdftoppm-NXXFUIHG.js} +2 -2
  81. package/dist/safe-bash/chunks/{pdftotext-5IPZ4NI7.js → pdftotext-4IHNWT6F.js} +2 -2
  82. package/dist/safe-bash/chunks/{qpdf-TTX2DIUA.js → qpdf-ZEIREV63.js} +2 -2
  83. package/dist/safe-bash/chunks/read-builtin-A4QKAT45.js +9 -0
  84. package/dist/safe-bash/chunks/{sips-XYS46JPJ.js → sips-D5YBG2V3.js} +2 -2
  85. package/dist/safe-bash/chunks/{soffice-TU73E5KL.js → soffice-RAJU3JUT.js} +2 -2
  86. package/dist/safe-bash/chunks/source-files-3XWRRHFA.js +7 -0
  87. package/dist/safe-bash/chunks/{wkhtmltopdf-FSZ2CHGE.js → wkhtmltopdf-7UE4FORZ.js} +2 -2
  88. package/dist/safe-bash/command-chunks/{chunk-7KWZXKY6.js → chunk-26RTBV2I.js} +1 -0
  89. package/dist/safe-bash/command-chunks/{chunk-AQJ2ROJO.js → chunk-2WYNMZR2.js} +10 -8
  90. package/dist/safe-bash/command-chunks/{chunk-BDSMROQZ.js → chunk-36GFRF2N.js} +2 -1
  91. package/dist/safe-bash/command-chunks/{chunk-GC5TJZOF.js → chunk-3VIA2IA7.js} +114 -31
  92. package/dist/safe-bash/command-chunks/{chunk-NKFYQSES.js → chunk-4CTI3ZTX.js} +1 -0
  93. package/dist/safe-bash/command-chunks/{chunk-WH627NJL.js → chunk-4MYP2FX4.js} +2 -1
  94. package/dist/safe-bash/command-chunks/{chunk-ZDN7MJE6.js → chunk-4R5ADJM5.js} +11 -1
  95. package/dist/safe-bash/command-chunks/{chunk-P2N33UMN.js → chunk-5MIKM54M.js} +4 -4
  96. package/dist/safe-bash/command-chunks/{chunk-DB453IE6.js → chunk-6FZQUOSJ.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-PICVQ6B5.js → chunk-6GKYHPJG.js} +1 -1
  98. package/dist/safe-bash/command-chunks/{chunk-7K6JYKPJ.js → chunk-6M2ELGEN.js} +17 -15
  99. package/dist/safe-bash/command-chunks/{chunk-PXEIT2O4.js → chunk-6UR7V3ET.js} +8 -1
  100. package/dist/safe-bash/command-chunks/{chunk-6KJ3LPI2.js → chunk-6XBS5B46.js} +26 -3
  101. package/dist/safe-bash/command-chunks/{chunk-5PWJG2UK.js → chunk-6YXLZX7L.js} +2 -2
  102. package/dist/safe-bash/command-chunks/{chunk-EK6YNAXT.js → chunk-753YOR54.js} +31 -5
  103. package/dist/safe-bash/command-chunks/{chunk-RMWQAAO5.js → chunk-7IR4NRNE.js} +2 -2
  104. package/dist/safe-bash/command-chunks/{chunk-FZTK4MFI.js → chunk-7NM73SVK.js} +8 -8
  105. package/dist/safe-bash/command-chunks/{chunk-NXEQ3ESQ.js → chunk-7QD5YY4F.js} +6 -11
  106. package/dist/safe-bash/command-chunks/{chunk-EMPU65ZK.js → chunk-A5LBSJGH.js} +1 -0
  107. package/dist/safe-bash/command-chunks/{chunk-4FEVBOL5.js → chunk-ARZMP2L2.js} +2 -2
  108. package/dist/safe-bash/command-chunks/{chunk-NKIELG7Y.js → chunk-BAKFZ477.js} +40 -19
  109. package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
  110. package/dist/safe-bash/command-chunks/{chunk-CQHP3I66.js → chunk-BOEOJS2Q.js} +1 -1
  111. package/dist/safe-bash/command-chunks/{chunk-XS72HTMA.js → chunk-BWGGLYEB.js} +5 -22
  112. package/dist/safe-bash/command-chunks/{chunk-PMBFZXTK.js → chunk-C5ZZKP7V.js} +1 -1
  113. package/dist/safe-bash/command-chunks/{chunk-LHIOAFWW.js → chunk-C7SEB6WU.js} +1 -1
  114. package/dist/safe-bash/command-chunks/{chunk-XPT2UGBF.js → chunk-CHJKFRT7.js} +1 -1
  115. package/dist/safe-bash/command-chunks/{chunk-TIOCQVUQ.js → chunk-CON26Q2O.js} +1 -1
  116. package/dist/safe-bash/command-chunks/{chunk-E55UKBIE.js → chunk-DBAT3IK2.js} +1 -1
  117. package/dist/safe-bash/command-chunks/{chunk-Z45N42QC.js → chunk-DPAYAVMS.js} +15 -1
  118. package/dist/safe-bash/command-chunks/chunk-DS3NXVUM.js +368 -0
  119. package/dist/safe-bash/command-chunks/{chunk-5ZMZ573Q.js → chunk-DSJ3VRL3.js} +16 -4
  120. package/dist/safe-bash/command-chunks/{chunk-K2GDEMEU.js → chunk-EFRCFWVR.js} +4 -4
  121. package/dist/safe-bash/command-chunks/{chunk-DZCY63VJ.js → chunk-EV6HIJ5H.js} +6 -5
  122. package/dist/safe-bash/command-chunks/{chunk-JDYXY44P.js → chunk-FJURV46Y.js} +3 -3
  123. package/dist/safe-bash/command-chunks/{chunk-TZZ4WUKH.js → chunk-FZAWGKSE.js} +6 -4
  124. package/dist/safe-bash/command-chunks/{chunk-YHFXOX6U.js → chunk-GOCFQ6XV.js} +4 -4
  125. package/dist/safe-bash/command-chunks/{chunk-QVOS4YXL.js → chunk-HH5O7DJI.js} +1 -1
  126. package/dist/safe-bash/command-chunks/{chunk-3HHCU5YU.js → chunk-HK7F5SDC.js} +13 -0
  127. package/dist/safe-bash/command-chunks/{chunk-JNZ3CVAE.js → chunk-HQBXIZC7.js} +8 -3
  128. package/dist/safe-bash/command-chunks/{chunk-V4K2JDYU.js → chunk-I63DBZXZ.js} +2 -2
  129. package/dist/safe-bash/command-chunks/{chunk-WNE7FPVR.js → chunk-I64TLTIW.js} +24 -16
  130. package/dist/safe-bash/command-chunks/{chunk-GFC2NTDG.js → chunk-ICANWOXH.js} +5 -29
  131. package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.js} +1 -1
  132. package/dist/safe-bash/command-chunks/{chunk-TGSNCQSR.js → chunk-JT4RYCA6.js} +1771 -1663
  133. package/dist/safe-bash/command-chunks/{chunk-II77KPZN.js → chunk-JWW6FYBN.js} +2 -2
  134. package/dist/safe-bash/command-chunks/{chunk-ZYXH3B66.js → chunk-LCJWKTCJ.js} +250 -203
  135. package/dist/safe-bash/command-chunks/chunk-LU4HBPP2.js +97 -0
  136. package/dist/safe-bash/command-chunks/{chunk-XJXU3VVH.js → chunk-LWOE65OE.js} +20 -5
  137. package/dist/safe-bash/command-chunks/{chunk-GMIHJYDG.js → chunk-M32HFSX7.js} +22 -6
  138. package/dist/safe-bash/command-chunks/{chunk-YG4EPFWC.js → chunk-M3NINRDU.js} +2880 -172
  139. package/dist/safe-bash/command-chunks/chunk-MQREDAL6.js +164 -0
  140. package/dist/safe-bash/command-chunks/{chunk-LWS62ISU.js → chunk-N6DIASO2.js} +1 -1
  141. package/dist/safe-bash/command-chunks/chunk-NGL7YK7O.js +188 -0
  142. package/dist/safe-bash/command-chunks/{chunk-EARHPPPJ.js → chunk-NJYHWKIL.js} +39 -9
  143. package/dist/safe-bash/command-chunks/{chunk-6JSIFWYT.js → chunk-OJQRSCBP.js} +1 -1
  144. package/dist/safe-bash/command-chunks/{chunk-OQU6UT6X.js → chunk-OV3XREFN.js} +11 -0
  145. package/dist/safe-bash/command-chunks/{chunk-MIXBO6U7.js → chunk-PTZLF456.js} +2 -2
  146. package/dist/safe-bash/command-chunks/{chunk-ALDC4XP4.js → chunk-QILLRNES.js} +34 -10
  147. package/dist/safe-bash/command-chunks/{chunk-L22T3H7L.js → chunk-QR25JLKO.js} +1 -1
  148. package/dist/safe-bash/command-chunks/{chunk-NASVPT6F.js → chunk-R7C4MGZ5.js} +17 -224
  149. package/dist/safe-bash/command-chunks/{chunk-LCF3OB7P.js → chunk-RBME3JEH.js} +1 -1
  150. package/dist/safe-bash/command-chunks/{chunk-2KG2QLJE.js → chunk-RFWGYT7G.js} +3 -0
  151. package/dist/safe-bash/command-chunks/{chunk-5TBUOBDE.js → chunk-RZMVRT26.js} +27 -13
  152. package/dist/safe-bash/command-chunks/chunk-TFR6B3WB.js +44 -0
  153. package/dist/safe-bash/command-chunks/chunk-TOH3OF3O.js +179 -0
  154. package/dist/safe-bash/command-chunks/chunk-TT4DAFBT.js +13621 -0
  155. package/dist/safe-bash/command-chunks/{chunk-LWSBAWLT.js → chunk-TXI64OAG.js} +1 -1
  156. package/dist/safe-bash/command-chunks/{chunk-GIRNFXP3.js → chunk-TZRI7BJZ.js} +45 -15
  157. package/dist/safe-bash/command-chunks/{chunk-QOKBZFFD.js → chunk-U3MMODA5.js} +2 -7
  158. package/dist/safe-bash/command-chunks/{chunk-ZYHTWNAE.js → chunk-UAW423ZL.js} +11 -11
  159. package/dist/safe-bash/command-chunks/{chunk-C5YYCQHW.js → chunk-UXEEUGOV.js} +222 -12
  160. package/dist/safe-bash/command-chunks/{chunk-GY3BWK7K.js → chunk-VOZPMJRX.js} +87 -80
  161. package/dist/safe-bash/command-chunks/{chunk-ILX2NOLF.js → chunk-WPANOB4A.js} +20 -20
  162. package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
  163. package/dist/safe-bash/command-chunks/{chunk-HDCNKOIX.js → chunk-XGI57GCN.js} +1 -1
  164. package/dist/safe-bash/command-chunks/{chunk-5UBXNSFZ.js → chunk-XUCU7QQT.js} +1281 -1278
  165. package/dist/safe-bash/command-chunks/chunk-Y22VXJBD.js +296 -0
  166. package/dist/safe-bash/command-chunks/{chunk-WVHONVZ4.js → chunk-YMFUUPDX.js} +5 -3
  167. package/dist/safe-bash/command-chunks/{chunk-IR2BY7EL.js → chunk-YYGIBXFZ.js} +2 -2
  168. package/dist/safe-bash/command-chunks/{chunk-MSFXC3OC.js → chunk-Z4FO6OHE.js} +2 -2
  169. package/dist/safe-bash/command-chunks/{chunk-WWIBP2ET.js → chunk-Z5ZZVDUD.js} +143 -22
  170. package/dist/safe-bash/command-chunks/{chunk-LOICUCHG.js → chunk-ZHN3QDCI.js} +1 -1
  171. package/dist/safe-bash/commands/alias/index.d.ts +2 -0
  172. package/dist/safe-bash/commands/alias/index.js +2 -0
  173. package/dist/safe-bash/commands/apply-patch/index.browser.js +2 -3
  174. package/dist/safe-bash/commands/apply-patch/index.d.ts +0 -1
  175. package/dist/safe-bash/commands/apply-patch/index.js +0 -1
  176. package/dist/safe-bash/commands/archive/index.browser.js +2 -3
  177. package/dist/safe-bash/commands/archive/index.d.ts +0 -1
  178. package/dist/safe-bash/commands/archive/index.js +0 -1
  179. package/dist/safe-bash/commands/bytes/index.js +2 -1
  180. package/dist/safe-bash/commands/chmod/index.browser.js +1 -1
  181. package/dist/safe-bash/commands/column/index.browser.js +2 -3
  182. package/dist/safe-bash/commands/column/index.d.ts +0 -1
  183. package/dist/safe-bash/commands/column/index.js +0 -1
  184. package/dist/safe-bash/commands/copy-source.js +1 -0
  185. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  186. package/dist/safe-bash/commands/csvkit/index.browser.js +72 -0
  187. package/dist/safe-bash/commands/csvkit/index.d.ts +0 -5
  188. package/dist/safe-bash/commands/csvkit/index.js +0 -50
  189. package/dist/safe-bash/commands/docx/index.browser.js +5 -7
  190. package/dist/safe-bash/commands/du/index.browser.js +2 -3
  191. package/dist/safe-bash/commands/du/index.d.ts +0 -1
  192. package/dist/safe-bash/commands/du/index.js +0 -1
  193. package/dist/safe-bash/commands/expr/index.browser.js +2 -3
  194. package/dist/safe-bash/commands/expr/index.d.ts +0 -1
  195. package/dist/safe-bash/commands/expr/index.js +0 -1
  196. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  197. package/dist/safe-bash/commands/file/index.browser.js +2 -3
  198. package/dist/safe-bash/commands/file/index.d.ts +0 -1
  199. package/dist/safe-bash/commands/file/index.js +0 -1
  200. package/dist/safe-bash/commands/filesystem.js +1 -1
  201. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  202. package/dist/safe-bash/commands/grep-aliases/index.browser.js +3 -3
  203. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  204. package/dist/safe-bash/commands/html-to-markdown/index.browser.js +2 -3
  205. package/dist/safe-bash/commands/html-to-markdown/index.d.ts +0 -1
  206. package/dist/safe-bash/commands/html-to-markdown/index.js +0 -1
  207. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -5
  208. package/dist/safe-bash/commands/htmlq/index.js +1 -143
  209. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  210. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  211. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  212. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  213. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  214. package/dist/safe-bash/commands/media/index.browser.js +4 -16314
  215. package/dist/safe-bash/commands/media/index.d.ts +1 -5
  216. package/dist/safe-bash/commands/media/index.js +1 -3
  217. package/dist/safe-bash/commands/media/plugin.d.ts +1 -18
  218. package/dist/safe-bash/commands/media/plugin.js +1 -90
  219. package/dist/safe-bash/commands/media/remote.d.ts +1 -63
  220. package/dist/safe-bash/commands/media/remote.js +1 -405
  221. package/dist/safe-bash/commands/media/settings.d.ts +1 -4
  222. package/dist/safe-bash/commands/media/settings.js +1 -26
  223. package/dist/safe-bash/commands/metadata/index.browser.js +3 -4
  224. package/dist/safe-bash/commands/metadata/index.d.ts +0 -1
  225. package/dist/safe-bash/commands/metadata/index.js +2 -2
  226. package/dist/safe-bash/commands/mktemp/index.browser.js +1 -1
  227. package/dist/safe-bash/commands/network/curl.js +1 -3
  228. package/dist/safe-bash/commands/network/index.browser.js +3 -4
  229. package/dist/safe-bash/commands/network/public.d.ts +0 -1
  230. package/dist/safe-bash/commands/network/public.js +0 -1
  231. package/dist/safe-bash/commands/network/transport.js +2 -1
  232. package/dist/safe-bash/commands/network/wget.js +1 -3
  233. package/dist/safe-bash/commands/node/browser.d.ts +0 -1
  234. package/dist/safe-bash/commands/node/browser.js +0 -1
  235. package/dist/safe-bash/commands/node/default-runtime.d.ts +3 -0
  236. package/dist/safe-bash/commands/node/default-runtime.js +15 -0
  237. package/dist/safe-bash/commands/node/index.browser.js +7 -8
  238. package/dist/safe-bash/commands/node/index.js +3 -3
  239. package/dist/safe-bash/commands/node/path.js +1 -1
  240. package/dist/safe-bash/commands/node/preload.d.ts +1 -1
  241. package/dist/safe-bash/commands/node/preload.js +4 -1
  242. package/dist/safe-bash/commands/node/quickjs.d.ts +2 -0
  243. package/dist/safe-bash/commands/node/quickjs.js +2 -0
  244. package/dist/safe-bash/commands/node/safejs.js +26 -12
  245. package/dist/safe-bash/commands/op/index.browser.js +2 -3
  246. package/dist/safe-bash/commands/op/index.d.ts +0 -11
  247. package/dist/safe-bash/commands/op/index.js +0 -84
  248. package/dist/safe-bash/commands/pandoc/index.browser.js +44 -0
  249. package/dist/safe-bash/commands/pandoc/index.d.ts +0 -1
  250. package/dist/safe-bash/commands/pandoc/index.js +0 -1
  251. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  252. package/dist/safe-bash/commands/python/docker-runner.js +4 -3
  253. package/dist/safe-bash/commands/python/docker.d.ts +1 -0
  254. package/dist/safe-bash/commands/python/docker.js +5 -2
  255. package/dist/safe-bash/commands/python/index.browser.js +17 -13
  256. package/dist/safe-bash/commands/python/index.d.ts +2 -1
  257. package/dist/safe-bash/commands/python/index.js +10 -8
  258. package/dist/safe-bash/commands/python/llm-capability.js +65 -2
  259. package/dist/safe-bash/commands/python/llm-dependencies.d.ts +27 -0
  260. package/dist/safe-bash/commands/python/llm-dependencies.js +66 -0
  261. package/dist/safe-bash/commands/python/llm-module.js +6 -4
  262. package/dist/safe-bash/commands/python/llm-reference-module.d.ts +3 -0
  263. package/dist/safe-bash/commands/python/llm-reference-module.js +690 -0
  264. package/dist/safe-bash/commands/python/worker.browser.js +2 -3
  265. package/dist/safe-bash/commands/python/worker.d.ts +0 -1
  266. package/dist/safe-bash/commands/python/worker.js +0 -1
  267. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.d.ts +1 -1
  268. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.js +3 -3
  269. package/dist/safe-bash/commands/regex-execution/public.browser.js +7 -7
  270. package/dist/safe-bash/commands/safejs/options.js +5 -1
  271. package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -0
  272. package/dist/safe-bash/commands/safejs/runtime.js +1 -1
  273. package/dist/safe-bash/commands/split/index.browser.js +2 -3
  274. package/dist/safe-bash/commands/split/index.d.ts +0 -1
  275. package/dist/safe-bash/commands/split/index.js +0 -1
  276. package/dist/safe-bash/commands/ssconvert/index.browser.js +98 -0
  277. package/dist/safe-bash/commands/stat/index.browser.js +1 -1
  278. package/dist/safe-bash/commands/stream-format/index.browser.js +3 -4
  279. package/dist/safe-bash/commands/stream-format/index.d.ts +0 -1
  280. package/dist/safe-bash/commands/stream-format/index.js +0 -1
  281. package/dist/safe-bash/commands/stream-inspection/index.browser.js +3 -4
  282. package/dist/safe-bash/commands/stream-inspection/index.d.ts +0 -1
  283. package/dist/safe-bash/commands/stream-inspection/index.js +0 -1
  284. package/dist/safe-bash/commands/streams.js +2 -1
  285. package/dist/safe-bash/commands/table-text/index.browser.js +3 -4
  286. package/dist/safe-bash/commands/table-text/index.d.ts +0 -1
  287. package/dist/safe-bash/commands/table-text/index.js +0 -1
  288. package/dist/safe-bash/commands/text.js +28 -24
  289. package/dist/safe-bash/commands/time-env/index.browser.js +3 -4
  290. package/dist/safe-bash/commands/time-env/index.d.ts +0 -1
  291. package/dist/safe-bash/commands/time-env/index.js +0 -1
  292. package/dist/safe-bash/commands/tree/index.browser.js +2 -3
  293. package/dist/safe-bash/commands/tree/index.d.ts +0 -1
  294. package/dist/safe-bash/commands/tree/index.js +0 -1
  295. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  296. package/dist/safe-bash/commands/unalias/index.d.ts +2 -0
  297. package/dist/safe-bash/commands/unalias/index.js +2 -0
  298. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  299. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  300. package/dist/safe-bash/core.browser.js +2 -2
  301. package/dist/safe-bash/core.d.ts +7 -1
  302. package/dist/safe-bash/core.js +7 -1
  303. package/dist/safe-bash/execution-runtime.js +2 -1
  304. package/dist/safe-bash/fs/s3/http/index.d.ts +2 -2
  305. package/dist/safe-bash/fs/s3/http/index.js +1 -1
  306. package/dist/safe-bash/full-core.browser.js +283 -945
  307. package/dist/safe-bash/internal/op/types.d.ts +1 -0
  308. package/dist/safe-bash/jobs.browser.js +5 -5
  309. package/dist/safe-bash/lazy-optional.d.ts +3 -3
  310. package/dist/safe-bash/lazy-optional.js +1 -1
  311. package/dist/safe-bash/opt-in/commands/cmp/index.js +7 -6
  312. package/dist/safe-bash/opt-in/commands/dd/index.js +1 -1
  313. package/dist/safe-bash/opt-in/commands/dd/io.js +51 -5
  314. package/dist/safe-bash/opt-in/commands/truncate/index.js +2 -2
  315. package/dist/safe-bash/opt-in/commands/yq/native-work.js +2 -0
  316. package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +2 -1
  317. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -2
  318. package/dist/safe-bash/opt-in/optional.d.ts +1 -1
  319. package/dist/safe-bash/opt-in/optional.js +1 -1
  320. package/dist/safe-bash/opt-in/shell/extensions/read/index.js +2 -344
  321. package/dist/safe-bash/optional-host.browser.js +23 -18
  322. package/dist/safe-bash/optional-host.d.ts +1 -0
  323. package/dist/safe-bash/optional-host.js +1 -0
  324. package/dist/safe-bash/playwright/controller.js +41 -3
  325. package/dist/safe-bash/playwright/native-storage-targets.js +4 -2
  326. package/dist/safe-bash/plugins/base.d.ts +1 -1
  327. package/dist/safe-bash/plugins/base.js +3 -3
  328. package/dist/safe-bash/plugins/composition.d.ts +5 -2
  329. package/dist/safe-bash/plugins/composition.js +10 -7
  330. package/dist/safe-bash/plugins/index.browser.js +44 -41
  331. package/dist/safe-bash/plugins/index.js +3 -2
  332. package/dist/safe-bash/plugins/portable-commands.d.ts +3 -0
  333. package/dist/safe-bash/plugins/portable-commands.js +31 -0
  334. package/dist/safe-bash/registry-entry.browser.js +41 -42
  335. package/dist/safe-bash/search.browser.js +32 -33
  336. package/dist/safe-bash/shell/arithmetic.js +19 -6
  337. package/dist/safe-bash/shell/arrays/state.js +1 -1
  338. package/dist/safe-bash/shell/arrays/syntax.js +4 -3
  339. package/dist/safe-bash/shell/index.d.ts +0 -1
  340. package/dist/safe-bash/shell/index.js +0 -1
  341. package/dist/safe-bash/shell/parser.d.ts +2 -2
  342. package/dist/safe-bash/shell/parser.js +268 -64
  343. package/dist/safe-bash/shell/read-builtin.d.ts +3 -0
  344. package/dist/safe-bash/shell/read-builtin.js +344 -0
  345. package/dist/safe-bash/shell/runtime.d.ts +21 -4
  346. package/dist/safe-bash/shell/runtime.js +373 -412
  347. package/dist/safe-bash/shell/session-state.js +25 -0
  348. package/dist/safe-bash/shell/shell.js +76 -154
  349. package/dist/safe-bash/shell/tilde-expansion.d.ts +1 -1
  350. package/dist/safe-bash/shell/tilde-expansion.js +2 -2
  351. package/dist/safe-bash/shell/types.d.ts +5 -0
  352. package/dist/safe-bash/shell/value-state.js +1 -1
  353. package/dist/safe-bash/shell-entry.browser.js +32 -33
  354. package/dist/safe-bash/trap.browser.js +4 -4
  355. package/dist/safe-bash/yq-browser/index.js +1 -1
  356. package/dist/safe-bash-calendar-engine/time-env/calendar.d.ts +1 -1
  357. package/dist/safe-bash-calendar-engine/time-env/calendar.js +1 -1
  358. package/dist/safe-bash-calendar-engine/time-env/format.js +1 -1
  359. package/dist/safe-bash-command-alias/index.d.ts +13 -0
  360. package/dist/safe-bash-command-alias/index.js +88 -0
  361. package/dist/safe-bash-command-apply-patch/apply.js +3 -3
  362. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  363. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  364. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  365. package/dist/safe-bash-command-awk/awk-pipes.js +2 -2
  366. package/dist/safe-bash-command-awk/awk-reader.js +1 -1
  367. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  368. package/dist/safe-bash-command-awk/awk.js +5 -5
  369. package/dist/safe-bash-command-awk/index.js +5 -5
  370. package/dist/safe-bash-command-bc/index.js +206 -60
  371. package/dist/safe-bash-command-cmp/index.js +7 -6
  372. package/dist/safe-bash-command-column/column.js +3 -3
  373. package/dist/safe-bash-command-column/index.js +3 -3
  374. package/dist/safe-bash-command-column/layout.js +2 -2
  375. package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
  376. package/dist/safe-bash-command-csvkit/index.js +1505 -7
  377. package/dist/safe-bash-command-csvkit/sync-support.js +2 -7
  378. package/dist/safe-bash-command-curl/curl.js +1 -1
  379. package/dist/safe-bash-command-curl/index.js +1 -1
  380. package/dist/safe-bash-command-date/date.js +1 -1
  381. package/dist/safe-bash-command-date/index.js +1 -1
  382. package/dist/safe-bash-command-dd/index.js +1 -1
  383. package/dist/safe-bash-command-dd/io.js +51 -5
  384. package/dist/safe-bash-command-diff/diff.js +1 -1
  385. package/dist/safe-bash-command-diff/index.js +1 -1
  386. package/dist/safe-bash-command-diff3/index.js +10 -13
  387. package/dist/safe-bash-command-exiftool/index.js +278 -50
  388. package/dist/safe-bash-command-exiftool/registry.d.ts +4 -2
  389. package/dist/safe-bash-command-factor/command.js +2 -2
  390. package/dist/safe-bash-command-factor/index.js +2 -2
  391. package/dist/safe-bash-command-fd/arguments.d.ts +2 -0
  392. package/dist/safe-bash-command-fd/index.js +42 -12
  393. package/dist/safe-bash-command-ffmpeg/index.js +356 -66
  394. package/dist/safe-bash-command-find/find-format.d.ts +3 -0
  395. package/dist/safe-bash-command-find/find-format.js +1 -1
  396. package/dist/safe-bash-command-find/find.js +2 -2
  397. package/dist/safe-bash-command-find/index.js +2 -2
  398. package/dist/safe-bash-command-fmt/index.js +1 -4
  399. package/dist/safe-bash-command-fold/engine.d.ts +1 -1
  400. package/dist/safe-bash-command-fold/family.js +2 -2
  401. package/dist/safe-bash-command-fold/index.js +1 -1
  402. package/dist/safe-bash-command-hexdump/command.js +2 -2
  403. package/dist/safe-bash-command-hexdump/index.js +2 -2
  404. package/dist/safe-bash-command-html-to-markdown/entities.js +1 -1
  405. package/dist/safe-bash-command-html-to-markdown/index.js +4 -4
  406. package/dist/safe-bash-command-html-to-markdown/input.js +3 -3
  407. package/dist/safe-bash-command-html-to-markdown/parser.js +2 -2
  408. package/dist/safe-bash-command-html-to-markdown/render.js +3 -3
  409. package/dist/safe-bash-command-htmlq/contracts.d.ts +5 -2
  410. package/dist/safe-bash-command-htmlq/index.d.ts +2 -1
  411. package/dist/safe-bash-command-htmlq/index.js +175 -49
  412. package/dist/safe-bash-command-htmlq/sync.d.ts +1 -0
  413. package/dist/safe-bash-command-imagemagick/index.js +56 -6
  414. package/dist/safe-bash-command-install/arguments.d.ts +27 -0
  415. package/dist/safe-bash-command-install/arguments.js +224 -0
  416. package/dist/safe-bash-command-install/index.d.ts +7 -0
  417. package/dist/safe-bash-command-install/index.js +942 -0
  418. package/dist/safe-bash-command-install/mode.d.ts +6 -0
  419. package/dist/safe-bash-command-install/mode.js +71 -0
  420. package/dist/safe-bash-command-install/options.d.ts +40 -0
  421. package/dist/safe-bash-command-install/options.js +27 -0
  422. package/dist/safe-bash-command-jq/index.js +1 -1
  423. package/dist/safe-bash-command-jq/jq.js +1 -1
  424. package/dist/safe-bash-command-less/index.js +37 -61
  425. package/dist/safe-bash-command-llm/command.js +1 -1
  426. package/dist/safe-bash-command-llm/elevenlabs.js +2 -2
  427. package/dist/safe-bash-command-llm/index.js +4 -4
  428. package/dist/safe-bash-command-llm/openai.js +2 -2
  429. package/dist/safe-bash-command-llm/providers/elevenlabs.js +2 -2
  430. package/dist/safe-bash-command-llm/providers/index.js +3 -3
  431. package/dist/safe-bash-command-llm/providers/openai.js +2 -2
  432. package/dist/safe-bash-command-llm/providers/shared.js +1 -1
  433. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.browser.d.ts +463 -46
  434. package/dist/safe-bash-command-mcp/index.browser.js +19308 -0
  435. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.d.ts +15 -6
  436. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.js +2804 -2771
  437. package/dist/safe-bash-command-media/LICENSE +21 -0
  438. package/dist/safe-bash-command-media/index.d.ts +6 -0
  439. package/dist/safe-bash-command-media/index.js +30 -0
  440. package/dist/safe-bash-command-media/plugin.d.ts +18 -0
  441. package/dist/safe-bash-command-media/plugin.js +11 -0
  442. package/dist/safe-bash-command-media/remote.d.ts +63 -0
  443. package/dist/safe-bash-command-media/remote.js +11 -0
  444. package/dist/safe-bash-command-media/settings.d.ts +4 -0
  445. package/dist/safe-bash-command-media/settings.js +41 -0
  446. package/dist/safe-bash-command-mktemp/command.js +1 -1
  447. package/dist/safe-bash-command-mktemp/index.js +1 -1
  448. package/dist/safe-bash-command-mmdc/arguments.d.ts +1 -0
  449. package/dist/safe-bash-command-mmdc/command.d.ts +2 -0
  450. package/dist/safe-bash-command-mmdc/contracts.d.ts +8 -1
  451. package/dist/safe-bash-command-mmdc/index.js +359 -7
  452. package/dist/safe-bash-command-nl/index.js +1 -1
  453. package/dist/safe-bash-command-nl/nl.js +1 -1
  454. package/dist/safe-bash-command-node/LICENSE +21 -0
  455. package/dist/safe-bash-command-node/index.d.ts +17 -0
  456. package/dist/safe-bash-command-node/index.js +328 -0
  457. package/dist/safe-bash-command-numfmt/index.js +1 -0
  458. package/dist/safe-bash-command-od/index.js +10 -6
  459. package/dist/safe-bash-command-op/index.js +39 -32
  460. package/dist/safe-bash-command-op/types.d.ts +1 -0
  461. package/dist/safe-bash-command-pandoc/command.js +3 -3
  462. package/dist/safe-bash-command-pandoc/index.d.ts +1 -0
  463. package/dist/safe-bash-command-pandoc/index.js +5 -3
  464. package/dist/safe-bash-command-pandoc/sync.d.ts +1 -0
  465. package/dist/safe-bash-command-patch/index.js +4 -4
  466. package/dist/safe-bash-command-patch/patch.js +4 -4
  467. package/dist/safe-bash-command-pdfimages/index.js +1 -1
  468. package/dist/safe-bash-command-pdfinfo/index.js +30 -5
  469. package/dist/safe-bash-command-pdftk/index.js +21 -23
  470. package/dist/safe-bash-command-pdftoppm/index.js +17 -4
  471. package/dist/safe-bash-command-pdftotext/index.js +11 -14
  472. package/dist/safe-bash-command-qpdf/index.d.ts +1 -0
  473. package/dist/safe-bash-command-qpdf/index.js +9 -6
  474. package/dist/safe-bash-command-rg/index.js +1 -1
  475. package/dist/safe-bash-command-rg/rg-command.js +1 -1
  476. package/dist/safe-bash-command-sed/index.js +1 -1
  477. package/dist/safe-bash-command-sed/sed.js +1 -1
  478. package/dist/safe-bash-command-shuf/input.d.ts +2 -2
  479. package/dist/safe-bash-command-shuf/input.js +2 -1
  480. package/dist/safe-bash-command-shuf/shuf.js +4 -2
  481. package/dist/safe-bash-command-sips/index.js +2 -2
  482. package/dist/safe-bash-command-soffice/index.js +97 -12
  483. package/dist/safe-bash-command-sponge/index.js +4 -1
  484. package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -0
  485. package/dist/safe-bash-command-sqlite3/index.js +510 -70
  486. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +2 -2
  487. package/dist/safe-bash-command-ssconvert/index.js +44 -22
  488. package/dist/safe-bash-command-stat/command.js +1 -1
  489. package/dist/safe-bash-command-stat/index.js +1 -1
  490. package/dist/safe-bash-command-tar/create.d.ts +1 -0
  491. package/dist/safe-bash-command-tar/create.js +2 -2
  492. package/dist/safe-bash-command-tar/extract.js +2 -2
  493. package/dist/safe-bash-command-tar/index.js +4 -4
  494. package/dist/safe-bash-command-tar/modes.js +4 -4
  495. package/dist/safe-bash-command-tar/options.js +1 -1
  496. package/dist/safe-bash-command-truncate/index.js +2 -2
  497. package/dist/safe-bash-command-tsort/command.js +2 -2
  498. package/dist/safe-bash-command-tsort/index.js +2 -2
  499. package/dist/safe-bash-command-unalias/index.d.ts +12 -0
  500. package/dist/safe-bash-command-unalias/index.js +67 -0
  501. package/dist/safe-bash-command-unrtf/index.js +26 -4
  502. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  503. package/dist/safe-bash-command-xan/argv.js +2 -2
  504. package/dist/safe-bash-command-xan/budget.d.ts +0 -1
  505. package/dist/safe-bash-command-xan/budget.js +1 -1
  506. package/dist/safe-bash-command-xan/commands.js +6 -6
  507. package/dist/safe-bash-command-xan/csv.js +2 -2
  508. package/dist/safe-bash-command-xan/index.js +8 -9
  509. package/dist/safe-bash-command-xan/io.js +4 -4
  510. package/dist/safe-bash-command-xan/options.js +1 -1
  511. package/dist/safe-bash-command-xan/selector.js +2 -2
  512. package/dist/safe-bash-command-xmllint/index.js +45 -23
  513. package/dist/safe-bash-command-xxd/index.js +41 -10
  514. package/dist/safe-bash-command-yq/accounting.js +1 -1
  515. package/dist/safe-bash-command-yq/index.js +3 -2
  516. package/dist/safe-bash-command-yq/native-work.js +2 -0
  517. package/dist/safe-bash-command-yq/parser.js +2 -2
  518. package/dist/safe-bash-command-yq/query.js +5 -5
  519. package/dist/safe-bash-command-yq/toml.js +2 -2
  520. package/dist/safe-bash-command-zip/index.js +3 -3
  521. package/dist/safe-bash-compression-engine/bounded-codec.js +2 -2
  522. package/dist/safe-bash-compression-engine/codec-loader.js +1 -1
  523. package/dist/safe-bash-compression-engine/files.js +5 -5
  524. package/dist/safe-bash-compression-engine/index.js +4 -4
  525. package/dist/safe-bash-compression-engine/operand.js +5 -5
  526. package/dist/safe-bash-compression-engine/stream.js +4 -4
  527. package/dist/safe-bash-compression-engine/zstd-decode.js +3 -3
  528. package/dist/safe-bash-contracts/command.js +3 -3
  529. package/dist/safe-bash-contracts/default-executor.js +2 -2
  530. package/dist/safe-bash-contracts/diagnostics.js +3 -3
  531. package/dist/safe-bash-contracts/escaping.js +6 -6
  532. package/dist/safe-bash-contracts/filesystem-descriptor.js +3 -3
  533. package/dist/safe-bash-contracts/filesystem-output.js +5 -5
  534. package/dist/safe-bash-contracts/http.d.ts +7 -0
  535. package/dist/safe-bash-contracts/index.js +8 -8
  536. package/dist/safe-bash-contracts/io.js +2 -2
  537. package/dist/safe-bash-contracts/output.js +3 -3
  538. package/dist/safe-bash-contracts/runtime-control.d.ts +2 -2
  539. package/dist/safe-bash-contracts/runtime-control.js +4 -2
  540. package/dist/safe-bash-contracts/signals.d.ts +2 -0
  541. package/dist/safe-bash-contracts/signals.js +3 -1
  542. package/dist/safe-bash-contracts/yield.js +1 -1
  543. package/dist/safe-bash-csv-engine/index.d.ts +2 -1
  544. package/dist/safe-bash-csv-engine/index.js +21 -15
  545. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  546. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +6 -6
  547. package/dist/safe-bash-io-engine/internal.js +1 -1
  548. package/dist/safe-bash-io-engine/shell/pattern.js +38 -18
  549. package/dist/safe-bash-line-ending-engine/convert.js +9 -204
  550. package/dist/safe-bash-line-ending-engine/encoding.js +9 -42
  551. package/dist/safe-bash-line-ending-engine/index.js +48 -0
  552. package/dist/safe-bash-line-ending-engine/info.js +9 -90
  553. package/dist/safe-bash-line-ending-engine/internal.js +15 -160
  554. package/dist/safe-bash-line-ending-engine/io.js +12 -289
  555. package/dist/safe-bash-line-ending-engine/stage.js +10 -160
  556. package/dist/safe-bash-markdown-engine/index.js +3 -3
  557. package/dist/safe-bash-network-engine/args.d.ts +6 -0
  558. package/dist/safe-bash-network-engine/args.js +4 -2
  559. package/dist/safe-bash-network-engine/body.js +1 -1
  560. package/dist/safe-bash-network-engine/fetch-transport.js +3 -1
  561. package/dist/safe-bash-network-engine/index.js +3 -1
  562. package/dist/safe-bash-network-engine/input.js +2 -2
  563. package/dist/safe-bash-network-engine/platform-portable.js +3 -1
  564. package/dist/safe-bash-query-engine/dates.d.ts +1 -1
  565. package/dist/safe-bash-query-engine/dates.js +1 -1
  566. package/dist/safe-bash-query-engine/index.js +6 -6
  567. package/dist/safe-bash-query-engine/interpreter.js +4 -4
  568. package/dist/safe-bash-query-engine/parser.js +1 -1
  569. package/dist/safe-bash-query-engine/query-core.js +6 -6
  570. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +10 -0
  571. package/dist/safe-bash-regex-engine/index.js +1 -1
  572. package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -1
  573. package/dist/safe-bash-regex-engine/text/regex.js +1 -1
  574. package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +1 -0
  575. package/dist/safe-bash-search-engine/ergonomic-regex.js +1 -1
  576. package/dist/safe-bash-search-engine/grep.js +16 -9
  577. package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
  578. package/dist/safe-bash-search-engine/matcher.js +12 -8
  579. package/dist/safe-bash-search-engine/shared.js +1 -1
  580. package/dist/safe-bash-search-engine/walk.js +13 -1
  581. package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +1 -1
  582. package/dist/safe-bash-text-stream-engine/stream-format/shared.js +2 -1
  583. package/dist/safe-bash-xml-engine/document.js +3 -3
  584. package/dist/safe-bash-xml-engine/evaluate.js +2 -2
  585. package/dist/safe-bash-xml-engine/index.js +4 -4
  586. package/dist/safe-bash-xml-engine/io.js +7 -2
  587. package/dist/safe-bash-xml-engine/limits.d.ts +0 -2
  588. package/dist/safe-bash-xml-engine/limits.js +1 -1
  589. package/dist/safe-bash-xml-engine/query.js +3 -3
  590. package/dist/safe-bash-zip-engine/index.js +3 -3
  591. package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
  592. package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
  593. package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
  594. package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
  595. package/dist/safe-bash-zip-engine/zip-format.js +3 -3
  596. package/dist/safe-playwright-cloudflare/browser-socket-closure.js +18 -3
  597. package/dist/safe-playwright-cloudflare/shell-browser-resource.js +1 -1
  598. package/dist/xlsx-ast/xlsx.js +6 -5
  599. package/package.json +86 -98
  600. package/dist/media-cli/bytes.d.ts +0 -8
  601. package/dist/media-cli/bytes.js +0 -40
  602. package/dist/media-cli/concat.d.ts +0 -30
  603. package/dist/media-cli/concat.js +0 -197
  604. package/dist/media-cli/content.js +0 -66
  605. package/dist/media-cli/dependency-grammars.d.ts +0 -12
  606. package/dist/media-cli/dependency-grammars.js +0 -557
  607. package/dist/media-cli/discover.js +0 -286
  608. package/dist/media-cli/engine.js +0 -190
  609. package/dist/media-cli/filename-expression.js +0 -147
  610. package/dist/media-cli/filesystem.js +0 -35
  611. package/dist/media-cli/frontend-contract.js +0 -8
  612. package/dist/media-cli/frontend-issues.d.ts +0 -6
  613. package/dist/media-cli/frontend-issues.js +0 -9
  614. package/dist/media-cli/imagemagick-operand.d.ts +0 -42
  615. package/dist/media-cli/imagemagick-operand.js +0 -229
  616. package/dist/media-cli/imagemagick-references.d.ts +0 -7
  617. package/dist/media-cli/imagemagick-references.js +0 -42
  618. package/dist/media-cli/imagemagick.generated.js +0 -3254
  619. package/dist/media-cli/imagemagick.js +0 -615
  620. package/dist/media-cli/index.js +0 -12
  621. package/dist/media-cli/mvg.d.ts +0 -10
  622. package/dist/media-cli/mvg.js +0 -102
  623. package/dist/media-cli/network.js +0 -78
  624. package/dist/media-cli/options.generated.js +0 -3312
  625. package/dist/media-cli/preset.d.ts +0 -11
  626. package/dist/media-cli/preset.js +0 -57
  627. package/dist/media-cli/resolution-path.d.ts +0 -23
  628. package/dist/media-cli/resolution-path.js +0 -217
  629. package/dist/media-cli/resolver.js +0 -494
  630. package/dist/media-cli/resources.d.ts +0 -16
  631. package/dist/media-cli/resources.js +0 -187
  632. package/dist/media-cli/shim.js +0 -52
  633. package/dist/media-cli/tee.d.ts +0 -6
  634. package/dist/media-cli/tee.js +0 -38
  635. package/dist/office-package/zip-sync.js +0 -111
  636. package/dist/remote-execution/binary.js +0 -178
  637. package/dist/remote-execution/callback-result.js +0 -26
  638. package/dist/remote-execution/canonical-capabilities.d.ts +0 -5
  639. package/dist/remote-execution/canonical-capabilities.js +0 -45
  640. package/dist/remote-execution/canonical-metadata.d.ts +0 -4
  641. package/dist/remote-execution/canonical-metadata.js +0 -32
  642. package/dist/remote-execution/client.js +0 -824
  643. package/dist/remote-execution/deployment.js +0 -131
  644. package/dist/remote-execution/descriptors.js +0 -267
  645. package/dist/remote-execution/effects.js +0 -357
  646. package/dist/remote-execution/endpoint.js +0 -224
  647. package/dist/remote-execution/files.js +0 -291
  648. package/dist/remote-execution/hosting-operation.js +0 -26
  649. package/dist/remote-execution/hosting-request.d.ts +0 -4
  650. package/dist/remote-execution/hosting-request.js +0 -12
  651. package/dist/remote-execution/hosting-stream.d.ts +0 -8
  652. package/dist/remote-execution/hosting-stream.js +0 -64
  653. package/dist/remote-execution/index.js +0 -18
  654. package/dist/remote-execution/invocation-admission.d.ts +0 -3
  655. package/dist/remote-execution/invocation-admission.js +0 -17
  656. package/dist/remote-execution/job-binding.js +0 -1269
  657. package/dist/remote-execution/materializations.js +0 -284
  658. package/dist/remote-execution/modal-driver.js +0 -90
  659. package/dist/remote-execution/native-result.d.ts +0 -3
  660. package/dist/remote-execution/native-result.js +0 -16
  661. package/dist/remote-execution/output-freshness.d.ts +0 -4
  662. package/dist/remote-execution/output-freshness.js +0 -19
  663. package/dist/remote-execution/output-retrieval.js +0 -474
  664. package/dist/remote-execution/process-http.js +0 -607
  665. package/dist/remote-execution/process.js +0 -577
  666. package/dist/remote-execution/protocol.js +0 -208
  667. package/dist/remote-execution/relay.js +0 -91
  668. package/dist/remote-execution/rest-driver.js +0 -93
  669. package/dist/remote-execution/upload-descriptor.js +0 -201
  670. package/dist/remote-execution/upload-protocol.js +0 -62
  671. package/dist/remote-execution/uploads.js +0 -324
  672. package/dist/remote-execution/wire-json.d.ts +0 -4
  673. package/dist/remote-execution/wire-json.js +0 -44
  674. package/dist/remote-execution/wire-validation.js +0 -131
  675. package/dist/remote-execution/wire.generated.js +0 -4224
  676. package/dist/safe-bash/chunks/chunk-GDYNCWRV.js +0 -161
  677. package/dist/safe-bash/chunks/chunk-IWDICZVK.js +0 -20
  678. package/dist/safe-bash/chunks/chunk-MHMMRCYC.js +0 -3464
  679. package/dist/safe-bash/chunks/chunk-UE5KZDEK.js +0 -77
  680. package/dist/safe-bash/chunks/csvkit-TACDU7FC.js +0 -1618
  681. package/dist/safe-bash/chunks/implementation-MLFHUQ5M.js +0 -133
  682. package/dist/safe-bash/commands/csvkit/sync.js +0 -1639
  683. package/dist/safe-bash/commands/node/unconfigured.d.ts +0 -3
  684. package/dist/safe-bash/commands/node/unconfigured.js +0 -10
  685. package/dist/safe-bash/commands/pandoc/implementation.d.ts +0 -8
  686. package/dist/safe-bash/commands/pandoc/implementation.js +0 -94
  687. package/dist/safe-bash-mcp/index.browser.js +0 -9167
  688. package/dist/safe-bash/command-chunks/{chunk-ZRRBXU3M.js → chunk-GIN5GUDP.js} +4 -4
  689. package/dist/safe-bash/command-chunks/{chunk-LAOM65EE.js → chunk-IEO4XVN6.js} +3 -3
  690. package/dist/safe-bash/command-chunks/{chunk-BXCXRYVU.js → chunk-JNANXVJV.js} +0 -0
  691. package/dist/safe-bash/command-chunks/{chunk-364TMWBT.js → chunk-MWREVL44.js} +6 -6
  692. package/dist/safe-bash/command-chunks/{chunk-464RVBGB.js → chunk-Q5TDKFHK.js} +3 -3
  693. package/dist/safe-bash/command-chunks/{chunk-AJR3AQYA.js → chunk-UKX3LZHR.js} +0 -0
  694. package/dist/safe-bash/command-chunks/{chunk-XIIBTGC5.js → chunk-XPXEQKRW.js} +9 -9
  695. package/dist/safe-bash/command-chunks/{chunk-FDBUV4HJ.js → chunk-Y4HGTG3E.js} +3 -3
  696. /package/dist/{safe-bash/commands/csvkit → safe-bash-command-csvkit}/sync.d.ts +0 -0
@@ -0,0 +1,1036 @@
1
+ import {
2
+ init_platform
3
+ } from "./chunk-PTAEWLSE.js";
4
+
5
+ // packages/safe-js/src/modules/source-files.ts
6
+ init_platform();
7
+
8
+ // packages/safe-js/src/platform/workerd.ts
9
+ init_platform();
10
+
11
+ // packages/safe-js/src/platform/context.ts
12
+ init_platform();
13
+ var StackContext = class _StackContext {
14
+ static stores = /* @__PURE__ */ new Set();
15
+ value;
16
+ generation = 0;
17
+ constructor() {
18
+ _StackContext.stores.add(new WeakRef(this));
19
+ }
20
+ getStore() {
21
+ return this.value;
22
+ }
23
+ run(value, callback) {
24
+ const previous = this.value;
25
+ const generation = this.generation;
26
+ this.value = value;
27
+ try {
28
+ return callback();
29
+ } finally {
30
+ if (this.generation === generation) this.value = previous;
31
+ }
32
+ }
33
+ exit(callback) {
34
+ const previous = this.value;
35
+ const generation = this.generation;
36
+ this.value = void 0;
37
+ try {
38
+ return callback();
39
+ } finally {
40
+ if (this.generation === generation) this.value = previous;
41
+ }
42
+ }
43
+ disable() {
44
+ this.value = void 0;
45
+ this.generation++;
46
+ }
47
+ static snapshot() {
48
+ const values = [];
49
+ for (const reference of _StackContext.stores) {
50
+ const store = reference.deref();
51
+ if (store === void 0) _StackContext.stores.delete(reference);
52
+ else values.push([store, store.value, store.generation]);
53
+ }
54
+ return (callback) => {
55
+ const restore = values.map(([store]) => store.value);
56
+ for (const [store, value, generation] of values) if (store.generation === generation) store.value = value;
57
+ try {
58
+ return callback();
59
+ } finally {
60
+ values.forEach(([store, , generation], index) => {
61
+ if (store.generation === generation) store.value = restore[index];
62
+ });
63
+ }
64
+ };
65
+ }
66
+ };
67
+
68
+ // packages/safe-js/src/platform/types.ts
69
+ init_platform();
70
+ function slot(method, value) {
71
+ if (typeof value !== "object" || value === null) return false;
72
+ try {
73
+ Reflect.apply(method, value, []);
74
+ return true;
75
+ } catch {
76
+ return false;
77
+ }
78
+ }
79
+ var getter = (prototype, key) => Object.getOwnPropertyDescriptor(prototype, key).get;
80
+ var regexpPrototype = RegExp.prototype;
81
+ var regexpSource = getter(regexpPrototype, "source");
82
+ var booleanValue = Boolean.prototype.valueOf;
83
+ var numberValue = Number.prototype.valueOf;
84
+ var stringValue = String.prototype.valueOf;
85
+ var bigintValue = BigInt.prototype.valueOf;
86
+ var symbolValue = Symbol.prototype.valueOf;
87
+ var dateValue = Date.prototype.getTime;
88
+ var asyncFunctionPrototype = Object.getPrototypeOf(async function() {
89
+ });
90
+ var generatorFunctionPrototype = Object.getPrototypeOf(function* () {
91
+ });
92
+ var arrayBufferLength = getter(ArrayBuffer.prototype, "byteLength");
93
+ var dataViewBuffer = getter(DataView.prototype, "buffer");
94
+ var mapSize = getter(Map.prototype, "size");
95
+ var promiseThen = Promise.prototype.then;
96
+ var NativeError = Error;
97
+ var nativeIsError = Reflect.get(NativeError, "isError");
98
+ var proxies = /* @__PURE__ */ new WeakSet();
99
+ function createTrackedProxy(target, handler) {
100
+ const proxy = new Proxy(target, handler);
101
+ proxies.add(proxy);
102
+ return proxy;
103
+ }
104
+ var types = {
105
+ isProxy: (value) => (typeof value === "object" && value !== null || typeof value === "function") && proxies.has(value),
106
+ isBooleanObject: (value) => typeof value === "object" && value !== null && slot(booleanValue, value),
107
+ isNumberObject: (value) => typeof value === "object" && value !== null && slot(numberValue, value),
108
+ isStringObject: (value) => typeof value === "object" && slot(stringValue, value),
109
+ isBigIntObject: (value) => typeof value === "object" && value !== null && slot(bigintValue, value),
110
+ isSymbolObject: (value) => typeof value === "object" && value !== null && slot(symbolValue, value),
111
+ isDate: (value) => slot(dateValue, value),
112
+ isRegExp: (value) => value !== regexpPrototype && slot(regexpSource, value),
113
+ isArrayBuffer: (value) => slot(arrayBufferLength, value),
114
+ isDataView: (value) => slot(dataViewBuffer, value),
115
+ isMap: (value) => slot(mapSize, value),
116
+ isPromise(value) {
117
+ try {
118
+ Reflect.apply(promiseThen, value, [() => void 0, () => void 0]);
119
+ return true;
120
+ } catch {
121
+ return false;
122
+ }
123
+ },
124
+ isAsyncFunction: (value) => typeof value === "function" && Object.getPrototypeOf(value) === asyncFunctionPrototype,
125
+ isGeneratorFunction: (value) => typeof value === "function" && Object.getPrototypeOf(value) === generatorFunctionPrototype,
126
+ isNativeError: (value) => typeof value === "object" && value !== null && (typeof nativeIsError === "function" ? Reflect.apply(nativeIsError, NativeError, [value]) === true : value instanceof NativeError)
127
+ };
128
+
129
+ // packages/safe-js/src/interp/budget.ts
130
+ init_platform();
131
+
132
+ // packages/safe-js/src/error/shape.ts
133
+ init_platform();
134
+
135
+ // packages/safe-js/src/interp/internal-symbols.ts
136
+ init_platform();
137
+ var internalSymbols = /* @__PURE__ */ new Set();
138
+
139
+ // packages/safe-js/src/error/shape.ts
140
+ var wrappedErrorCause = /* @__PURE__ */ Symbol("wrappedErrorCause");
141
+ internalSymbols.add(wrappedErrorCause);
142
+ var sandboxErrorNames = [
143
+ "Error",
144
+ "TypeError",
145
+ "RangeError",
146
+ "ReferenceError",
147
+ "SyntaxError",
148
+ "URIError",
149
+ "EvalError",
150
+ "AbortError",
151
+ "AggregateError",
152
+ "SuppressedError",
153
+ "HarnessFailure"
154
+ ];
155
+ var sandboxErrorTypes = /* @__PURE__ */ new WeakMap();
156
+ var hostErrorData = /* @__PURE__ */ new WeakMap();
157
+ function formatErrorStack(name, message, stackFrames = []) {
158
+ const header = message.length === 0 ? name : `${name}: ${message}`;
159
+ return [header, ...stackFrames].join("\n");
160
+ }
161
+ function replaceErrorStack(error, stackFrames = []) {
162
+ error.stack = formatErrorStack(error.name, error.message, stackFrames);
163
+ }
164
+ function attachErrorSpan(error, span) {
165
+ if (span === void 0 || hasOwnProperty(error, "span")) {
166
+ return;
167
+ }
168
+ Object.defineProperty(error, "span", {
169
+ configurable: true,
170
+ value: span
171
+ });
172
+ }
173
+ function attachErrorCause(error, cause) {
174
+ if (cause === void 0 || hasOwnProperty(error, "cause")) {
175
+ return;
176
+ }
177
+ Object.defineProperty(error, "cause", {
178
+ configurable: true,
179
+ value: cause
180
+ });
181
+ }
182
+ function attachWrappedErrorCause(error, cause) {
183
+ if (cause === void 0 || wrappedErrorCause in error) {
184
+ return;
185
+ }
186
+ Object.defineProperty(error, wrappedErrorCause, {
187
+ configurable: true,
188
+ value: cause
189
+ });
190
+ }
191
+ function materializeWrappedErrorCause(value) {
192
+ if (typeof value !== "object" || value === null || !(wrappedErrorCause in value)) {
193
+ return;
194
+ }
195
+ attachErrorCause(value, value[wrappedErrorCause]);
196
+ }
197
+ function readErrorSpan(value) {
198
+ if (typeof value !== "object" || value === null || !hasOwnProperty(value, "span")) {
199
+ return void 0;
200
+ }
201
+ const span = value.span;
202
+ return isErrorSourceSpan(span) ? span : void 0;
203
+ }
204
+ function readErrorCause(value) {
205
+ return typeof value === "object" && value !== null && hasOwnProperty(value, "cause") ? value.cause : void 0;
206
+ }
207
+ function isErrorSourceSpan(value) {
208
+ if (typeof value !== "object" || value === null || !hasOwnProperty(value, "start") || !hasOwnProperty(value, "end")) {
209
+ return false;
210
+ }
211
+ return isErrorSourcePosition(value.start) && isErrorSourcePosition(value.end);
212
+ }
213
+ function createSourceSpan(source, line, column, endLine, endColumn) {
214
+ const start = createSourcePosition(source, line, column);
215
+ const rawEnd = createSourcePosition(source, endLine, endColumn);
216
+ const end = rawEnd.offset > start.offset ? rawEnd : createSourcePositionFromOffset(source, Math.min(start.offset + 1, source.length));
217
+ return { start, end };
218
+ }
219
+ function describeThrownValue(value) {
220
+ if (value instanceof Error) {
221
+ return value.message.length > 0 ? `${value.name}: ${value.message}` : value.name;
222
+ }
223
+ if (typeof value === "string") {
224
+ return value;
225
+ }
226
+ if (value === void 0 || value === null || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint" || typeof value === "symbol") {
227
+ return String(value);
228
+ }
229
+ try {
230
+ const serialized = JSON.stringify(value);
231
+ return serialized === void 0 ? String(value) : serialized;
232
+ } catch {
233
+ return String(value);
234
+ }
235
+ }
236
+ function isErrorSourcePosition(value) {
237
+ return typeof value === "object" && value !== null && hasOwnProperty(value, "line") && typeof value.line === "number" && hasOwnProperty(value, "column") && typeof value.column === "number" && hasOwnProperty(value, "offset") && typeof value.offset === "number";
238
+ }
239
+ function hasOwnProperty(value, name) {
240
+ return Object.prototype.hasOwnProperty.call(value, name);
241
+ }
242
+ function createSourcePosition(source, line, column) {
243
+ return createSourcePositionFromOffset(source, findSourceOffset(source, line, column));
244
+ }
245
+ function createSourcePositionFromOffset(source, offset) {
246
+ let line = 1;
247
+ let column = 1;
248
+ for (let index = 0; index < offset; index += 1) {
249
+ const character = source[index];
250
+ if (character === "\r" || character === "\n" || character === "\u2028" || character === "\u2029") {
251
+ if (character === "\r" && source[index + 1] === "\n" && index + 1 < offset) index += 1;
252
+ line += 1;
253
+ column = 1;
254
+ } else {
255
+ column += 1;
256
+ }
257
+ }
258
+ return {
259
+ column,
260
+ line,
261
+ offset
262
+ };
263
+ }
264
+ function findSourceOffset(source, line, column) {
265
+ let currentLine = 1;
266
+ let currentColumn = 1;
267
+ for (let offset = 0; offset <= source.length; offset += 1) {
268
+ if (currentLine === line && currentColumn === column) {
269
+ return offset;
270
+ }
271
+ const character = source[offset];
272
+ if (character === void 0) {
273
+ return source.length;
274
+ }
275
+ if (character === "\r" || character === "\n" || character === "\u2028" || character === "\u2029") {
276
+ if (character === "\r" && source[offset + 1] === "\n") offset += 1;
277
+ currentLine += 1;
278
+ currentColumn = 1;
279
+ } else {
280
+ currentColumn += 1;
281
+ }
282
+ }
283
+ return source.length;
284
+ }
285
+
286
+ // packages/safe-js/src/interp/template-cache.ts
287
+ init_platform();
288
+ var templateRealms = /* @__PURE__ */ new WeakMap();
289
+ function releaseTemplateObjects(budget) {
290
+ const realm = templateRealms.get(budget);
291
+ if (realm !== void 0) budget.setRetainedValues(realm, void 0);
292
+ templateRealms.delete(budget);
293
+ }
294
+
295
+ // packages/safe-js/src/interp/budget.ts
296
+ var REGEX_COMPILE_LIMITS = Object.freeze({
297
+ sourceLength: Infinity,
298
+ flagsLength: Infinity,
299
+ depth: Infinity,
300
+ allocations: Infinity
301
+ });
302
+ var DEADLINE_CHECK_INTERVAL = 1024;
303
+ var SandboxError = class extends Error {
304
+ code;
305
+ budget;
306
+ current;
307
+ limit;
308
+ constructor(input) {
309
+ super(
310
+ input === "aborted" ? "aborted" : input === "reentry" ? "Sandbox object is already running." : `Sandbox budget exceeded for ${input.budget}: ${input.current} > ${input.limit}.`
311
+ );
312
+ this.name = "SandboxError";
313
+ replaceErrorStack(this);
314
+ if (input === "aborted") {
315
+ this.code = "aborted";
316
+ return;
317
+ }
318
+ if (input === "reentry") {
319
+ this.code = "reentry";
320
+ return;
321
+ }
322
+ this.code = "budgetExceeded";
323
+ this.budget = input.budget;
324
+ this.current = input.current;
325
+ this.limit = input.limit;
326
+ }
327
+ };
328
+ function isFatalSandboxError(error) {
329
+ return error instanceof SandboxError && (error.code === "budgetExceeded" || error.code === "reentry");
330
+ }
331
+ var BudgetAccounting = class {
332
+ deadline;
333
+ limits;
334
+ stepsUsed = 0;
335
+ peakCallDepth = 0;
336
+ currentDataSize = 0;
337
+ peakDataSize = 0;
338
+ currentCallDepth = 0;
339
+ allChecksSuspended = 0;
340
+ deadlineChecksSuspended = 0;
341
+ visitsUntilDeadlineCheck = DEADLINE_CHECK_INTERVAL;
342
+ pendingDeadlines;
343
+ earliestPendingDeadline;
344
+ retainedDataSize = 0;
345
+ retainedData = /* @__PURE__ */ new Map();
346
+ retainedValueSources = /* @__PURE__ */ new Map();
347
+ compileGeneration = 0;
348
+ activeCompileOwner;
349
+ defaultCompileOwner;
350
+ compileUses = 0;
351
+ provisionalScopes = 0;
352
+ compileTickets = /* @__PURE__ */ new Map();
353
+ completedCompileTickets = /* @__PURE__ */ new Set();
354
+ reconciliationHolds = 0;
355
+ deferredCompileDiscards = /* @__PURE__ */ new Set();
356
+ realmViews;
357
+ constructor(options = {}) {
358
+ this.deadline = normalizeDeadline(options.deadline);
359
+ this.limits = Object.freeze({
360
+ maxSteps: normalizeLimit("maxSteps", options.maxSteps),
361
+ maxCallDepth: normalizeLimit("maxCallDepth", options.maxCallDepth),
362
+ stringLength: normalizeLimit("stringLength", options.stringLength),
363
+ ...options.regexSourceLength === void 0 ? {} : {
364
+ regexSourceLength: normalizeRegexLimit("regexSourceLength", options.regexSourceLength)
365
+ },
366
+ ...options.regexCompileAllocations === void 0 ? {} : {
367
+ regexCompileAllocations: normalizeRegexLimit("regexCompileAllocations", options.regexCompileAllocations)
368
+ },
369
+ arrayLength: normalizeLimit("arrayLength", options.arrayLength),
370
+ dataSize: normalizeLimit("dataSize", options.dataSize)
371
+ });
372
+ }
373
+ };
374
+ var Budget = class _Budget {
375
+ accounting;
376
+ realmView = false;
377
+ realmLease = false;
378
+ constructor(options = {}) {
379
+ this.accounting = new BudgetAccounting(options);
380
+ }
381
+ get deadline() {
382
+ return this.accounting.deadline;
383
+ }
384
+ get limits() {
385
+ return this.accounting.limits;
386
+ }
387
+ get stepsUsed() {
388
+ return this.accounting.stepsUsed;
389
+ }
390
+ set stepsUsed(value) {
391
+ this.accounting.stepsUsed = value;
392
+ }
393
+ get peakCallDepth() {
394
+ return this.accounting.peakCallDepth;
395
+ }
396
+ set peakCallDepth(value) {
397
+ this.accounting.peakCallDepth = value;
398
+ }
399
+ get currentDataSize() {
400
+ return this.accounting.currentDataSize;
401
+ }
402
+ set currentDataSize(value) {
403
+ this.accounting.currentDataSize = value;
404
+ }
405
+ get peakDataSize() {
406
+ return this.accounting.peakDataSize;
407
+ }
408
+ set peakDataSize(value) {
409
+ this.accounting.peakDataSize = value;
410
+ }
411
+ get currentCallDepth() {
412
+ return this.accounting.currentCallDepth;
413
+ }
414
+ set currentCallDepth(value) {
415
+ this.accounting.currentCallDepth = value;
416
+ }
417
+ // Pending host operations keep their elapsed deadline active during sampled
418
+ // synchronous work. Linked private records need no observable native hooks.
419
+ acquireDeadline(deadline, onExceeded) {
420
+ if (!Number.isFinite(deadline)) throw new TypeError("Deadline must be a finite timestamp.");
421
+ const accounting = this.accounting;
422
+ const pending = {
423
+ deadline,
424
+ onExceeded,
425
+ next: accounting.pendingDeadlines,
426
+ active: true
427
+ };
428
+ if (pending.next !== void 0) pending.next.previous = pending;
429
+ accounting.pendingDeadlines = pending;
430
+ if (accounting.earliestPendingDeadline === void 0 || pending.deadline < accounting.earliestPendingDeadline.deadline)
431
+ accounting.earliestPendingDeadline = pending;
432
+ return () => {
433
+ if (!pending.active) return;
434
+ pending.active = false;
435
+ if (pending.previous === void 0) accounting.pendingDeadlines = pending.next;
436
+ else pending.previous.next = pending.next;
437
+ if (pending.next !== void 0) pending.next.previous = pending.previous;
438
+ pending.previous = pending.next = void 0;
439
+ pending.onExceeded = void 0;
440
+ if (accounting.earliestPendingDeadline !== pending) return;
441
+ accounting.earliestPendingDeadline = void 0;
442
+ for (let next = accounting.pendingDeadlines; next !== void 0; next = next.next)
443
+ if (accounting.earliestPendingDeadline === void 0 || next.deadline < accounting.earliestPendingDeadline.deadline)
444
+ accounting.earliestPendingDeadline = next;
445
+ };
446
+ }
447
+ forkRealm() {
448
+ const view = new _Budget();
449
+ view.accounting = this.accounting;
450
+ view.realmView = true;
451
+ const views = this.accounting.realmViews ??= /* @__PURE__ */ new Set([new WeakRef(this)]);
452
+ views.add(new WeakRef(view));
453
+ return view;
454
+ }
455
+ acquireRealmOwner() {
456
+ if (this.realmLease) throw new SandboxError("reentry");
457
+ const lease = this.acquireCompileOwner(
458
+ !this.realmView,
459
+ this.realmView ? this.accounting.activeCompileOwner : void 0
460
+ );
461
+ this.realmLease = true;
462
+ let released = false;
463
+ return {
464
+ owner: lease.owner,
465
+ release: () => {
466
+ if (released) return;
467
+ released = true;
468
+ this.realmLease = false;
469
+ lease.release();
470
+ }
471
+ };
472
+ }
473
+ visitNode(units = 1) {
474
+ if (!Number.isSafeInteger(units) || units < 0) {
475
+ throw new Error("units must be a non-negative safe integer.");
476
+ }
477
+ if (units === 0) return;
478
+ this.accounting.stepsUsed += units;
479
+ this.checkSampledDeadline(units);
480
+ if (this.accounting.allChecksSuspended === 0 && this.accounting.limits.maxSteps !== void 0 && this.accounting.stepsUsed > this.accounting.limits.maxSteps) {
481
+ throw new SandboxError({
482
+ budget: "steps",
483
+ current: this.accounting.stepsUsed,
484
+ limit: this.accounting.limits.maxSteps
485
+ });
486
+ }
487
+ }
488
+ allocateString(value) {
489
+ this.allocateStringLength(value.length);
490
+ return value;
491
+ }
492
+ allocateStringLength(length) {
493
+ if (this.accounting.allChecksSuspended === 0 && this.accounting.limits.stringLength !== void 0 && length > this.accounting.limits.stringLength) {
494
+ throw new SandboxError({
495
+ budget: "stringLength",
496
+ current: length,
497
+ limit: this.accounting.limits.stringLength
498
+ });
499
+ }
500
+ }
501
+ reserveString(length) {
502
+ if (!Number.isSafeInteger(length) || length < 0) {
503
+ throw new RangeError("string length must be a nonnegative safe integer");
504
+ }
505
+ if (this.accounting.allChecksSuspended === 0 && this.accounting.limits.stringLength !== void 0 && length > this.accounting.limits.stringLength) {
506
+ throw new SandboxError({ budget: "stringLength", current: length, limit: this.accounting.limits.stringLength });
507
+ }
508
+ return this.provisionDataUsage(length);
509
+ }
510
+ allocateArrayLength(length) {
511
+ if (this.accounting.allChecksSuspended === 0 && this.accounting.limits.arrayLength !== void 0 && length > this.accounting.limits.arrayLength) {
512
+ throw new SandboxError({
513
+ budget: "arrayLength",
514
+ current: length,
515
+ limit: this.accounting.limits.arrayLength
516
+ });
517
+ }
518
+ }
519
+ allocateCollectionEntries(count) {
520
+ this.allocateArrayLength(count);
521
+ }
522
+ reconcileDataUsage(usage) {
523
+ const measured = usage + this.accounting.retainedDataSize;
524
+ const total = this.reconciliationDeferred ? Math.max(measured, this.accounting.currentDataSize) : measured;
525
+ this.checkDataUsage(total);
526
+ this.accounting.currentDataSize = total;
527
+ this.accounting.peakDataSize = Math.max(this.accounting.peakDataSize, total);
528
+ }
529
+ setRetainedDataUsage(owner, usage) {
530
+ if (!Number.isSafeInteger(usage) || usage < 0) {
531
+ throw new TypeError("Retained data usage must be a non-negative safe integer.");
532
+ }
533
+ const delta = usage - (this.accounting.retainedData.get(owner) ?? 0);
534
+ const total = this.accounting.currentDataSize + delta;
535
+ this.checkDataUsage(total);
536
+ if (usage === 0) this.accounting.retainedData.delete(owner);
537
+ else this.accounting.retainedData.set(owner, usage);
538
+ this.accounting.retainedDataSize += delta;
539
+ this.accounting.currentDataSize = total;
540
+ this.accounting.peakDataSize = Math.max(this.accounting.peakDataSize, total);
541
+ }
542
+ setRetainedValues(owner, values) {
543
+ if (values === void 0) this.accounting.retainedValueSources.delete(owner);
544
+ else this.accounting.retainedValueSources.set(owner, values);
545
+ }
546
+ get reconciliationDeferred() {
547
+ return this.accounting.reconciliationHolds > 0;
548
+ }
549
+ deferReconciliation() {
550
+ this.accounting.reconciliationHolds++;
551
+ const generation = this.accounting.compileGeneration;
552
+ let released = false;
553
+ return () => {
554
+ if (released) return;
555
+ released = true;
556
+ if (generation !== this.accounting.compileGeneration) return;
557
+ if (--this.accounting.reconciliationHolds !== 0) return;
558
+ for (const ticket of this.accounting.deferredCompileDiscards)
559
+ this.accounting.completedCompileTickets.add(ticket);
560
+ this.accounting.deferredCompileDiscards.clear();
561
+ };
562
+ }
563
+ *retainedValues() {
564
+ for (const values of this.accounting.retainedValueSources.values()) {
565
+ const retained = values();
566
+ if (retained !== void 0) yield* retained;
567
+ }
568
+ }
569
+ acquireCompileOwner(reset = false, owner) {
570
+ if (owner !== void 0 && (owner.budget.accounting !== this.accounting || owner.generation !== this.accounting.compileGeneration) || this.accounting.activeCompileOwner !== void 0 && this.accounting.activeCompileOwner !== owner || reset && (this.accounting.compileUses !== 0 || owner !== void 0)) {
571
+ throw new SandboxError("reentry");
572
+ }
573
+ if (reset) this.reset();
574
+ const selected = owner ?? (this.accounting.defaultCompileOwner ??= Object.freeze({ budget: this, generation: this.accounting.compileGeneration }));
575
+ this.accounting.activeCompileOwner = selected;
576
+ this.accounting.compileUses += 1;
577
+ let released = false;
578
+ return {
579
+ owner: selected,
580
+ release: () => {
581
+ if (released) return;
582
+ released = true;
583
+ this.accounting.compileUses -= 1;
584
+ if (this.accounting.compileUses === 0) this.accounting.activeCompileOwner = void 0;
585
+ }
586
+ };
587
+ }
588
+ createCompileTicket(owner) {
589
+ if (owner.budget.accounting !== this.accounting || owner.generation !== this.accounting.compileGeneration || this.accounting.activeCompileOwner !== owner) {
590
+ throw new SandboxError("reentry");
591
+ }
592
+ const ticket = Object.freeze({ owner });
593
+ this.accounting.compileTickets.set(ticket, 0);
594
+ return ticket;
595
+ }
596
+ compileTicketUsage(ticket) {
597
+ return ticket.owner.generation === this.accounting.compileGeneration ? this.accounting.compileTickets.get(ticket) ?? 0 : 0;
598
+ }
599
+ resizeCompileTicket(ticket, usage) {
600
+ if (ticket.owner.generation !== this.accounting.compileGeneration || !this.accounting.compileTickets.has(ticket)) {
601
+ throw new SandboxError("reentry");
602
+ }
603
+ if (this.reconciliationDeferred) usage = Math.max(usage, this.compileTicketUsage(ticket));
604
+ this.setRetainedDataUsage(ticket, usage);
605
+ this.accounting.compileTickets.set(ticket, usage);
606
+ }
607
+ discardCompileTicket(ticket) {
608
+ if (ticket.owner.generation !== this.accounting.compileGeneration) return;
609
+ const usage = this.accounting.compileTickets.get(ticket);
610
+ if (usage === void 0) return;
611
+ if (this.reconciliationDeferred) {
612
+ this.accounting.deferredCompileDiscards.add(ticket);
613
+ return;
614
+ }
615
+ this.accounting.compileTickets.delete(ticket);
616
+ this.accounting.completedCompileTickets.delete(ticket);
617
+ this.accounting.retainedData.delete(ticket);
618
+ this.accounting.retainedDataSize -= usage;
619
+ this.accounting.currentDataSize -= usage;
620
+ }
621
+ reconcileCompileData(usage, included, transferred = included, retainedOwner, complete = false) {
622
+ if (this.reconciliationDeferred) {
623
+ if (retainedOwner !== void 0) this.setRetainedDataUsage(retainedOwner, usage);
624
+ else {
625
+ let includedUsage2 = 0;
626
+ for (const ticket of included) includedUsage2 += this.compileTicketUsage(ticket);
627
+ const measured2 = usage + this.accounting.retainedDataSize - includedUsage2;
628
+ const total2 = Math.max(measured2, this.accounting.currentDataSize);
629
+ this.checkDataUsage(total2);
630
+ this.accounting.currentDataSize = total2;
631
+ this.accounting.peakDataSize = Math.max(this.accounting.peakDataSize, total2);
632
+ }
633
+ return /* @__PURE__ */ new Set();
634
+ }
635
+ let includedUsage = 0;
636
+ let transferredUsage = 0;
637
+ let discardedUsage = 0;
638
+ const releasing = [];
639
+ const retained = /* @__PURE__ */ new Set();
640
+ for (const ticket of included) {
641
+ const charge = this.compileTicketUsage(ticket);
642
+ includedUsage += charge;
643
+ if (charge > 0 && transferred.has(ticket) && (this.accounting.provisionalScopes === 0 || retainedOwner !== void 0)) {
644
+ releasing.push(ticket);
645
+ transferredUsage += charge;
646
+ } else if (charge > 0 && complete && transferred.has(ticket)) {
647
+ retained.add(ticket);
648
+ }
649
+ }
650
+ if (retainedOwner === void 0) {
651
+ for (const ticket of this.accounting.completedCompileTickets) {
652
+ if (included.has(ticket)) continue;
653
+ releasing.push(ticket);
654
+ discardedUsage += this.compileTicketUsage(ticket);
655
+ }
656
+ }
657
+ const oldOwnerUsage = retainedOwner === void 0 ? 0 : this.accounting.retainedData.get(retainedOwner) ?? 0;
658
+ const nextRetained = this.accounting.retainedDataSize - transferredUsage - discardedUsage + (retainedOwner === void 0 ? 0 : usage - oldOwnerUsage);
659
+ const measured = retainedOwner === void 0 ? usage - includedUsage + transferredUsage : this.accounting.currentDataSize - this.accounting.retainedDataSize;
660
+ const total = measured + nextRetained;
661
+ this.checkDataUsage(total);
662
+ for (const ticket of releasing) {
663
+ this.accounting.compileTickets.delete(ticket);
664
+ this.accounting.completedCompileTickets.delete(ticket);
665
+ this.accounting.retainedData.delete(ticket);
666
+ }
667
+ if (retainedOwner !== void 0) {
668
+ if (usage === 0) this.accounting.retainedData.delete(retainedOwner);
669
+ else this.accounting.retainedData.set(retainedOwner, usage);
670
+ }
671
+ this.accounting.retainedDataSize = nextRetained;
672
+ this.accounting.currentDataSize = total;
673
+ this.accounting.peakDataSize = Math.max(this.accounting.peakDataSize, total);
674
+ for (const ticket of retained) this.accounting.completedCompileTickets.add(ticket);
675
+ return retained;
676
+ }
677
+ chargeDataUsage(usage) {
678
+ const total = this.accounting.currentDataSize + usage;
679
+ this.checkDataUsage(total);
680
+ this.accounting.currentDataSize = total;
681
+ this.accounting.peakDataSize = Math.max(this.accounting.peakDataSize, total);
682
+ }
683
+ provisionDataUsage(usage) {
684
+ const previous = this.accounting.currentDataSize;
685
+ const previousRetained = this.accounting.retainedDataSize;
686
+ const next = previous + usage;
687
+ this.checkDataUsage(next);
688
+ this.accounting.currentDataSize = next;
689
+ this.accounting.peakDataSize = Math.max(this.accounting.peakDataSize, next);
690
+ const generation = this.accounting.compileGeneration;
691
+ this.accounting.provisionalScopes += 1;
692
+ let released = false;
693
+ return (commit = false) => {
694
+ if (released) return;
695
+ released = true;
696
+ if (generation !== this.accounting.compileGeneration) return;
697
+ this.accounting.provisionalScopes -= 1;
698
+ if (!commit) {
699
+ const restored = previous + this.accounting.retainedDataSize - previousRetained;
700
+ this.accounting.currentDataSize = this.reconciliationDeferred ? Math.max(restored, this.accounting.currentDataSize) : restored;
701
+ }
702
+ };
703
+ }
704
+ enterCall() {
705
+ return this.enterDepth();
706
+ }
707
+ enterAwait() {
708
+ return this.enterDepth();
709
+ }
710
+ reset() {
711
+ if (this.accounting.compileUses !== 0) throw new SandboxError("reentry");
712
+ releaseTemplateObjects(this);
713
+ for (const reference of this.accounting.realmViews ?? []) {
714
+ const view = reference.deref();
715
+ if (view === void 0) this.accounting.realmViews.delete(reference);
716
+ else if (view !== this) releaseTemplateObjects(view);
717
+ }
718
+ this.accounting.compileGeneration += 1;
719
+ this.accounting.defaultCompileOwner = void 0;
720
+ this.accounting.provisionalScopes = 0;
721
+ this.accounting.compileTickets.clear();
722
+ this.accounting.completedCompileTickets.clear();
723
+ this.accounting.reconciliationHolds = 0;
724
+ this.accounting.deferredCompileDiscards.clear();
725
+ this.accounting.stepsUsed = 0;
726
+ this.accounting.peakCallDepth = 0;
727
+ this.accounting.currentCallDepth = 0;
728
+ this.accounting.currentDataSize = 0;
729
+ this.accounting.peakDataSize = 0;
730
+ this.accounting.retainedDataSize = 0;
731
+ this.accounting.retainedData.clear();
732
+ this.accounting.retainedValueSources.clear();
733
+ this.accounting.allChecksSuspended = 0;
734
+ this.accounting.deadlineChecksSuspended = 0;
735
+ this.accounting.visitsUntilDeadlineCheck = DEADLINE_CHECK_INTERVAL;
736
+ }
737
+ suspendChecks() {
738
+ this.accounting.allChecksSuspended += 1;
739
+ let resumed = false;
740
+ return () => {
741
+ if (resumed) {
742
+ return;
743
+ }
744
+ resumed = true;
745
+ this.accounting.allChecksSuspended -= 1;
746
+ };
747
+ }
748
+ suspendDeadlineChecks() {
749
+ this.accounting.deadlineChecksSuspended += 1;
750
+ let resumed = false;
751
+ return () => {
752
+ if (resumed) {
753
+ return;
754
+ }
755
+ resumed = true;
756
+ this.accounting.deadlineChecksSuspended -= 1;
757
+ };
758
+ }
759
+ checkDeadline() {
760
+ const pending = this.accounting.earliestPendingDeadline;
761
+ const deadline = this.accounting.deadline === void 0 ? pending?.deadline : Math.min(this.accounting.deadline, pending?.deadline ?? Infinity);
762
+ if (this.accounting.allChecksSuspended > 0 || this.accounting.deadlineChecksSuspended > 0 || deadline === void 0) {
763
+ return;
764
+ }
765
+ const now = Date.now();
766
+ if (now <= deadline) {
767
+ return;
768
+ }
769
+ const reason = new SandboxError({
770
+ budget: "deadline",
771
+ current: now,
772
+ limit: deadline
773
+ });
774
+ if (pending?.deadline === deadline) {
775
+ const notify = pending.onExceeded;
776
+ pending.onExceeded = void 0;
777
+ notify?.(reason);
778
+ }
779
+ throw reason;
780
+ }
781
+ checkDataUsage(usage) {
782
+ if (this.accounting.allChecksSuspended === 0 && this.accounting.limits.dataSize !== void 0 && usage > this.accounting.limits.dataSize) {
783
+ throw new SandboxError({
784
+ budget: "dataSize",
785
+ current: usage,
786
+ limit: this.accounting.limits.dataSize
787
+ });
788
+ }
789
+ }
790
+ checkSampledDeadline(units) {
791
+ if (this.accounting.allChecksSuspended > 0 || this.accounting.deadlineChecksSuspended > 0 || this.accounting.deadline === void 0 && this.accounting.earliestPendingDeadline === void 0) {
792
+ return;
793
+ }
794
+ this.accounting.visitsUntilDeadlineCheck -= units;
795
+ if (this.accounting.visitsUntilDeadlineCheck > 0) {
796
+ return;
797
+ }
798
+ this.accounting.visitsUntilDeadlineCheck = DEADLINE_CHECK_INTERVAL - -this.accounting.visitsUntilDeadlineCheck % DEADLINE_CHECK_INTERVAL;
799
+ this.checkDeadline();
800
+ }
801
+ enterDepth() {
802
+ const nextDepth = this.accounting.currentCallDepth + 1;
803
+ if (this.accounting.allChecksSuspended === 0 && this.accounting.limits.maxCallDepth !== void 0 && nextDepth > this.accounting.limits.maxCallDepth) {
804
+ throw new SandboxError({
805
+ budget: "callDepth",
806
+ current: nextDepth,
807
+ limit: this.accounting.limits.maxCallDepth
808
+ });
809
+ }
810
+ this.accounting.currentCallDepth = nextDepth;
811
+ if (nextDepth > this.accounting.peakCallDepth) {
812
+ this.accounting.peakCallDepth = nextDepth;
813
+ }
814
+ let left = false;
815
+ return () => {
816
+ if (left) {
817
+ return;
818
+ }
819
+ left = true;
820
+ this.accounting.currentCallDepth -= 1;
821
+ };
822
+ }
823
+ };
824
+ function normalizeDeadline(deadline) {
825
+ if (deadline === void 0 || deadline === Infinity) {
826
+ return void 0;
827
+ }
828
+ return deadline instanceof Date ? deadline.getTime() : deadline;
829
+ }
830
+ function normalizeLimit(name, value) {
831
+ if (value === void 0 || value === Infinity) {
832
+ return void 0;
833
+ }
834
+ if (!Number.isInteger(value) || value < 0) {
835
+ throw new Error(`${name} must be a non-negative integer.`);
836
+ }
837
+ return value;
838
+ }
839
+ function normalizeRegexLimit(name, value) {
840
+ if (value === void 0 || value === Infinity) return void 0;
841
+ if (!Number.isSafeInteger(value) || value < 1)
842
+ throw new RangeError(`${name} must be a positive safe integer.`);
843
+ return value;
844
+ }
845
+
846
+ // packages/safe-js/src/platform/workerd.ts
847
+ var AsyncLocalStorage = Reflect.get(globalThis, "AsyncLocalStorage") ?? StackContext;
848
+ var cloneSharedBufferWrapper = structuredClone;
849
+ function createHostCallbackContext() {
850
+ let storage = new AsyncLocalStorage();
851
+ return {
852
+ run(value, callback) {
853
+ if (storage === void 0) throw new SandboxError("reentry");
854
+ return storage.run(value, callback);
855
+ },
856
+ getStore() {
857
+ return storage?.getStore();
858
+ },
859
+ disable() {
860
+ storage = void 0;
861
+ }
862
+ };
863
+ }
864
+ var accessDeniedSystemError = [-13, "permission denied"];
865
+ var yieldToHost = () => new Promise((resolve2) => setTimeout(resolve2, 0));
866
+ var hostCwd = () => "/";
867
+ var hostPlatform = "workerd";
868
+ var hostEnv = () => ({});
869
+ var fsConstants = { F_OK: 0, R_OK: 4, W_OK: 2, X_OK: 1, COPYFILE_EXCL: 1 };
870
+ var hostFs = new Proxy({}, {
871
+ get() {
872
+ throw new TypeError("A filesystem adapter is required on this host.");
873
+ }
874
+ });
875
+ function inspect(value, _options) {
876
+ if (typeof value === "string") return "'" + value.replaceAll("'", "\\'") + "'";
877
+ if (typeof value === "object" && value !== null) return Array.isArray(value) ? "[Array]" : "[Object]";
878
+ return String(value);
879
+ }
880
+
881
+ // packages/safe-js/src/modules/source-files.ts
882
+ import { resolvePath as resolvePath2 } from "@poe-platform/safe-fs/core";
883
+
884
+ // packages/safe-js/src/modules/paths.ts
885
+ init_platform();
886
+ import { basename, dirname, extname, isAbsolutePath, joinPath, relativePath, resolvePath } from "@poe-platform/safe-fs/core";
887
+ var sep = "/";
888
+ function resolve(...paths) {
889
+ return resolvePath(hostCwd(), ...paths);
890
+ }
891
+ function relative(from, to) {
892
+ return relativePath(resolve(from), resolve(to));
893
+ }
894
+ var paths_default = { basename, dirname, extname, isAbsolute: isAbsolutePath, join: joinPath, relative, resolve, sep };
895
+
896
+ // packages/safe-js/src/modules/source-files.ts
897
+ async function createRootedSourceResolver(root, adapter) {
898
+ const realpath = (filename) => adapter ? adapter.realpath(filename) : hostFs.realpath(filename);
899
+ const stat = async (filename) => adapter ? sourceStat(await adapter.stat(filename)) : await hostFs.stat(filename);
900
+ const granted = adapter ? resolvePath2("/", root) : paths_default.resolve(root);
901
+ const directory = await realpath(granted);
902
+ if (!(await stat(directory)).isDirectory()) throw new TypeError("Source module root must be a directory.");
903
+ const contains = (filename) => {
904
+ const relative2 = paths_default.relative(directory, filename);
905
+ return relative2 !== ".." && !relative2.startsWith(`..${paths_default.sep}`) && !paths_default.isAbsolute(relative2);
906
+ };
907
+ const resolver = async (specifier, referrer, { signal }) => {
908
+ signal?.throwIfAborted();
909
+ if (!specifier.startsWith("./") && !specifier.startsWith("../") || !paths_default.isAbsolute(referrer)) return void 0;
910
+ const relative2 = paths_default.relative(granted, referrer);
911
+ const canonicalReferrer = relative2 !== ".." && !relative2.startsWith(`..${paths_default.sep}`) && !paths_default.isAbsolute(relative2) ? paths_default.resolve(directory, relative2) : referrer;
912
+ if (!contains(canonicalReferrer)) return void 0;
913
+ const candidate = paths_default.resolve(paths_default.dirname(canonicalReferrer), specifier);
914
+ if (!contains(candidate)) return void 0;
915
+ try {
916
+ const id = await realpath(candidate);
917
+ signal?.throwIfAborted();
918
+ if (!contains(id)) return void 0;
919
+ const expected = await stat(id);
920
+ signal?.throwIfAborted();
921
+ if (!expected.isFile()) return void 0;
922
+ const handle = adapter ? await openSourceFile(adapter, id, signal) : await hostFs.open(id, fsConstants.O_RDONLY | fsConstants.O_NOFOLLOW | fsConstants.O_NONBLOCK);
923
+ try {
924
+ signal?.throwIfAborted();
925
+ const actual = await handle.stat();
926
+ signal?.throwIfAborted();
927
+ if (!actual.isFile() || ("identity" in actual && "identity" in expected ? !sameSourceIdentity(actual.identity, expected.identity) : actual.dev !== expected.dev || actual.ino !== expected.ino)) return void 0;
928
+ const currentId = await realpath(id);
929
+ signal?.throwIfAborted();
930
+ if (currentId !== id) return void 0;
931
+ const source = await handle.readFile({ encoding: "utf8", signal });
932
+ signal?.throwIfAborted();
933
+ return { id, source };
934
+ } finally {
935
+ await handle.close();
936
+ }
937
+ } catch (error) {
938
+ signal?.throwIfAborted();
939
+ if (error !== null && typeof error === "object" && "code" in error && ["ENOENT", "ENOTDIR", "ELOOP"].includes(String(error.code))) return void 0;
940
+ throw error;
941
+ }
942
+ };
943
+ return Object.assign(resolver, { async entryId(filename) {
944
+ if (filename === void 0) return paths_default.join(directory, "<entry>");
945
+ const supplied = paths_default.resolve(granted, filename);
946
+ const relative2 = paths_default.relative(granted, supplied);
947
+ const candidate = relative2 !== ".." && !relative2.startsWith(`..${paths_default.sep}`) && !paths_default.isAbsolute(relative2) ? paths_default.resolve(directory, relative2) : supplied;
948
+ if (!contains(candidate)) throw new TypeError("Source entry must be inside its granted root.");
949
+ try {
950
+ const id = await realpath(candidate);
951
+ if (!contains(id)) throw new TypeError("Source entry must be inside its granted root.");
952
+ return id;
953
+ } catch (error) {
954
+ if (error !== null && typeof error === "object" && "code" in error && error.code === "ENOENT") return candidate;
955
+ throw error;
956
+ }
957
+ } });
958
+ }
959
+ function sourceStat(value) {
960
+ return {
961
+ identity: value,
962
+ dev: value.dev,
963
+ ino: value.ino,
964
+ isFile: () => value.type === "file",
965
+ isDirectory: () => value.type === "directory"
966
+ };
967
+ }
968
+ function sameSourceIdentity(actual, expected) {
969
+ if (expected.identityScope !== void 0 && expected.opaqueIdentity !== void 0) {
970
+ return actual.identityScope === expected.identityScope && actual.opaqueIdentity === expected.opaqueIdentity && (expected.opaqueVersion === void 0 || actual.opaqueVersion === expected.opaqueVersion);
971
+ }
972
+ return expected.dev !== void 0 && expected.ino !== void 0 && actual.dev === expected.dev && actual.ino === expected.ino;
973
+ }
974
+ async function openSourceFile(adapter, id, signal) {
975
+ if (!adapter.openReadFile) throw new TypeError("Source filesystem must support retained reads.");
976
+ const handle = await adapter.openReadFile(id, signal ? { signal } : {});
977
+ return {
978
+ stat: async () => sourceStat(await handle.stat(signal ? { signal } : {})),
979
+ close: handle.close.bind(handle),
980
+ async readFile(_options) {
981
+ const decoder = new TextDecoder("utf-8", { ignoreBOM: true });
982
+ const chunks = [];
983
+ let position = 0;
984
+ for (; ; ) {
985
+ signal?.throwIfAborted();
986
+ const chunk = await handle.read(position, 64 * 1024, signal ? { signal } : {});
987
+ if (chunk.byteLength === 0) break;
988
+ chunks.push(decoder.decode(chunk, { stream: true }));
989
+ position += chunk.byteLength;
990
+ }
991
+ chunks.push(decoder.decode());
992
+ return chunks.join("");
993
+ }
994
+ };
995
+ }
996
+
997
+ export {
998
+ createTrackedProxy,
999
+ types,
1000
+ internalSymbols,
1001
+ sandboxErrorNames,
1002
+ sandboxErrorTypes,
1003
+ hostErrorData,
1004
+ formatErrorStack,
1005
+ replaceErrorStack,
1006
+ attachErrorSpan,
1007
+ attachWrappedErrorCause,
1008
+ materializeWrappedErrorCause,
1009
+ readErrorSpan,
1010
+ readErrorCause,
1011
+ createSourceSpan,
1012
+ describeThrownValue,
1013
+ templateRealms,
1014
+ releaseTemplateObjects,
1015
+ REGEX_COMPILE_LIMITS,
1016
+ SandboxError,
1017
+ isFatalSandboxError,
1018
+ Budget,
1019
+ AsyncLocalStorage,
1020
+ cloneSharedBufferWrapper,
1021
+ createHostCallbackContext,
1022
+ accessDeniedSystemError,
1023
+ yieldToHost,
1024
+ hostPlatform,
1025
+ hostEnv,
1026
+ fsConstants,
1027
+ hostFs,
1028
+ inspect,
1029
+ basename,
1030
+ dirname,
1031
+ isAbsolutePath,
1032
+ sep,
1033
+ resolve,
1034
+ relative,
1035
+ createRootedSourceResolver
1036
+ };