@poe-platform/safe-bash 0.1.800 → 0.1.801
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.
- package/README.md +16 -5
- package/dist/image-ast/index.browser.js +119 -75
- package/dist/image-ast/index.js +119 -75
- package/dist/pdf-ast/index.js +4 -3
- package/dist/safe-bash/chunks/{chunk-LUOFIVNI.js → chunk-3NDIFSNM.js} +3 -3
- package/dist/safe-bash/chunks/{chunk-4SEW2Q6H.js → chunk-3R3AANOR.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-HHW7MGS2.js → chunk-45PK3NWI.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-KHMGTPD6.js → chunk-46Z5E5EV.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-XB3B7KMM.js → chunk-6O77NL2S.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-T3JTVIEP.js → chunk-6PAVEFT3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PYVEAFJM.js → chunk-74GHTNJA.js} +3 -2
- package/dist/safe-bash/chunks/{chunk-LQHGH25W.js → chunk-7R5BDCG7.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-RMWLWH7Q.js → chunk-7VNF5BFF.js} +300 -737
- package/dist/safe-bash/chunks/{chunk-QVSRRNZT.js → chunk-A7XEHALN.js} +4 -4
- package/dist/safe-bash/chunks/{chunk-MHZ24KEI.js → chunk-AM5ESLPH.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-3L3T6LYV.js → chunk-AUSNDQTJ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-YG5WAHK7.js → chunk-B7TAL7S5.js} +1 -3
- package/dist/safe-bash/chunks/{chunk-K7IQZE7D.js → chunk-C5OWC2TL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-F3RV2F72.js → chunk-CHYGPFVM.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-M4CFCXHN.js → chunk-CS4MNM6I.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-H6JW3E4F.js → chunk-CTVWDACF.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-BHJE5LPZ.js → chunk-D3ANYGMC.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-NLAW7KDI.js → chunk-E7OYNDGL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-SOZK5JVX.js → chunk-FBUCWVTE.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-RKKRJ54E.js → chunk-FNDNHAGE.js} +30 -23
- package/dist/safe-bash/chunks/{chunk-KCVSVD65.js → chunk-I5HZ4FGE.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-JJSTTIEZ.js → chunk-ICFDYV64.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-TYD7EVUJ.js → chunk-IVRQ4BXL.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-KV7PKOHV.js → chunk-IWDICZVK.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I4OAEOP6.js → chunk-J42RIHHJ.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-K2VCOJ2B.js → chunk-K6VCD7IY.js} +7 -12
- package/dist/safe-bash/chunks/{chunk-63FXVDGF.js → chunk-LVOBFF4D.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-U5NUZPCC.js → chunk-MHMMRCYC.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-6HZYFL3H.js → chunk-NR3EM4LS.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-VYZTG3GV.js → chunk-NZQXYWA3.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-TFGRKY43.js → chunk-OQRVVGR6.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-PPYM75Z3.js → chunk-OV6IHKO6.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-KW24TAIU.js → chunk-PQRAK7HU.js} +920 -432
- package/dist/safe-bash/chunks/{chunk-K4YMYFRJ.js → chunk-SZH7EJLD.js} +116 -697
- package/dist/safe-bash/chunks/{chunk-7YSRXFEG.js → chunk-TFIBK2GI.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-I7L3G3NX.js → chunk-UE5KZDEK.js} +2 -2
- package/dist/safe-bash/chunks/{chunk-QU3BVQ53.js → chunk-UTBUUFDM.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-JTLSUJ7V.js → chunk-VQDD3G76.js} +42 -25
- package/dist/safe-bash/chunks/{chunk-46UISJCK.js → chunk-VTH3MLDU.js} +1 -1
- package/dist/safe-bash/chunks/{chunk-LLZCZ24K.js → chunk-XVOSKJE2.js} +1 -1
- package/dist/safe-bash/chunks/{csvkit-QGP3GAOB.js → csvkit-TACDU7FC.js} +3 -3
- package/dist/safe-bash/chunks/{ffmpeg-JTVH26MK.js → ffmpeg-WTC3TEFI.js} +2 -2
- package/dist/safe-bash/chunks/{gh-I7QX7N5C.js → gh-6WU6PXL4.js} +2 -2
- package/dist/safe-bash/chunks/{git-MA7NKYVP.js → git-EFZIGJW4.js} +2 -2
- package/dist/safe-bash/chunks/{imagemagick-Y4NPWX2Q.js → imagemagick-EIEYGWPF.js} +2 -2
- package/dist/safe-bash/chunks/{implementation-BWDKOVQJ.js → implementation-MLFHUQ5M.js} +2 -2
- package/dist/safe-bash/chunks/{mmdc-44PELHDG.js → mmdc-ROQJT5HQ.js} +2 -2
- package/dist/safe-bash/chunks/{pdfimages-635TRW4Q.js → pdfimages-DW7LWXFI.js} +2 -2
- package/dist/safe-bash/chunks/{pdfinfo-FSDAA2KY.js → pdfinfo-TIP6XLUQ.js} +2 -2
- package/dist/safe-bash/chunks/{pdftk-GQ5UH3VG.js → pdftk-DMG22ITZ.js} +2 -2
- package/dist/safe-bash/chunks/{pdftoppm-YTXQCAYT.js → pdftoppm-WNDYR72T.js} +2 -2
- package/dist/safe-bash/chunks/{pdftotext-CVA2G7FY.js → pdftotext-5IPZ4NI7.js} +2 -2
- package/dist/safe-bash/chunks/{qpdf-HZMIFG4A.js → qpdf-TTX2DIUA.js} +2 -2
- package/dist/safe-bash/chunks/{sips-E7UBDP33.js → sips-XYS46JPJ.js} +2 -2
- package/dist/safe-bash/chunks/{soffice-ELASUWUK.js → soffice-TU73E5KL.js} +2 -2
- package/dist/safe-bash/chunks/{wkhtmltopdf-EPO6YCMG.js → wkhtmltopdf-FSZ2CHGE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-QBGA56UH.js → chunk-2ELYGJDD.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-52PCQXD2.js → chunk-2NHI5F5S.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-HDKVO47G.js → chunk-2SQEIUGJ.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-5LSGEIZY.js → chunk-3HHCU5YU.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-TF6OA2GK.js → chunk-3NV3HYT2.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-2QHG43WJ.js → chunk-4BB2SWJ5.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IEXHHNOF.js → chunk-4J5CZ2DP.js} +2 -7
- package/dist/safe-bash/command-chunks/{chunk-WDHI3S6Y.js → chunk-4OOUQTQO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-YMONDXET.js → chunk-4ZQWGOZB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-L6DVEBW3.js → chunk-5BSTFCXG.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-Q3DII3Q7.js → chunk-5PWJG2UK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-JMPP4TCW.js → chunk-5UBXNSFZ.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-3NG75MOB.js → chunk-67GQA75T.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-L6SU4S26.js → chunk-6B7WQIKB.js} +0 -7
- package/dist/safe-bash/command-chunks/{chunk-V6MSPQLA.js → chunk-6BNTBWIK.js} +4 -39
- package/dist/safe-bash/command-chunks/{chunk-JN7WIP6S.js → chunk-6KJ3LPI2.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-HLDTOR7M.js → chunk-6ZVI7LUY.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-X6NJC3IC.js → chunk-75OFBY5R.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-MRW5HD2D.js → chunk-7O3E4LPT.js} +4 -22
- package/dist/safe-bash/command-chunks/{chunk-TEVJJPTC.js → chunk-7U7EXOXX.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6CYTRQ24.js → chunk-7VTKQUA5.js} +20 -17
- package/dist/safe-bash/command-chunks/{chunk-BZPAWTUL.js → chunk-AEF5BA3D.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-63R3FEZJ.js → chunk-AIV5BF5W.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AYUTO323.js → chunk-AKJG2XD3.js} +2 -18
- package/dist/safe-bash/command-chunks/{chunk-J34TZVMW.js → chunk-ALDC4XP4.js} +0 -5
- package/dist/safe-bash/command-chunks/{chunk-CKXV2CLD.js → chunk-ARBYOQUZ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-44AHAB5O.js → chunk-BDSMROQZ.js} +1 -4
- package/dist/safe-bash/command-chunks/{chunk-53P53XFM.js → chunk-BPE5INLI.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-OT4LZMLB.js → chunk-BR73BIOW.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-WB5SVIG7.js → chunk-C5YYCQHW.js} +498 -88
- package/dist/safe-bash/command-chunks/{chunk-EUSPTFAX.js → chunk-CAP7ZJSY.js} +7 -7
- package/dist/safe-bash/command-chunks/{chunk-DWFLVJC6.js → chunk-CCRHMAU5.js} +2 -1
- package/dist/safe-bash/command-chunks/{chunk-GI4CJED2.js → chunk-CQTRW45K.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-N2F74VRO.js → chunk-CZ7EN3JG.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-KKG4BAFZ.js → chunk-DIEPXUM4.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-QJAFJP2G.js → chunk-DZCY63VJ.js} +12 -10
- package/dist/safe-bash/command-chunks/{chunk-QUENU6GM.js → chunk-E55UKBIE.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-HLGKIZ25.js → chunk-F6OYH562.js} +2 -0
- package/dist/safe-bash/command-chunks/{chunk-MC3VWLIZ.js → chunk-FDBUV4HJ.js} +28 -19
- package/dist/safe-bash/command-chunks/{chunk-7FKUC34S.js → chunk-FPVUD6TH.js} +6 -3
- package/dist/safe-bash/command-chunks/{chunk-E2LB7FRT.js → chunk-FXOA7RBK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QWIDNAAK.js → chunk-FZTK4MFI.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-K543PB3I.js → chunk-G66QUHIZ.js} +6 -35
- package/dist/safe-bash/command-chunks/{chunk-YJDV76GL.js → chunk-GFQZCKO6.js} +29 -19
- package/dist/safe-bash/command-chunks/{chunk-FKKB5X5V.js → chunk-GOB777HR.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IYPAQ7PH.js → chunk-GRBWW4SG.js} +6 -0
- package/dist/safe-bash/command-chunks/{chunk-PPNBNFAU.js → chunk-GYQ2HAKQ.js} +8 -8
- package/dist/safe-bash/command-chunks/{chunk-PJJUYO3R.js → chunk-II77KPZN.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-VL67NWNS.js → chunk-JDYXY44P.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4QJOYXVB.js → chunk-JV7LBUTP.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-IKS2YXZQ.js → chunk-K67MWWWH.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-BKCNF5U3.js → chunk-KQLD3AED.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-UMDIOL3O.js → chunk-KXU3IRUO.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QZF3SINC.js → chunk-LAOM65EE.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-HFII3QYO.js → chunk-LWS62ISU.js} +46 -32
- package/dist/safe-bash/command-chunks/{chunk-BZDDAPSV.js → chunk-LWSBAWLT.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-U6G67N23.js → chunk-MIXBO6U7.js} +18 -5
- package/dist/safe-bash/command-chunks/{chunk-JQ74HC37.js → chunk-MQFIPHIQ.js} +23 -50
- package/dist/safe-bash/command-chunks/{chunk-ZJBR5Q5I.js → chunk-MSFXC3OC.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-NI7MKJPN.js → chunk-MTQH74CF.js} +3 -55
- package/dist/safe-bash/command-chunks/chunk-MWUZZWXK.js +354 -0
- package/dist/safe-bash/command-chunks/{chunk-RVLO4DYT.js → chunk-N4PFUSRM.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-D4OP2BR3.js → chunk-NKFYQSES.js} +1 -2
- package/dist/safe-bash/command-chunks/{chunk-NGWB2YBL.js → chunk-O4JQSB7O.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-7L24L4UO.js → chunk-OQU6UT6X.js} +2 -20
- package/dist/safe-bash/command-chunks/{chunk-TYCGMRLM.js → chunk-OYYV7ZAF.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-SVULUDOP.js → chunk-P2N33UMN.js} +20 -81
- package/dist/safe-bash/command-chunks/{chunk-Q7Q5GM5S.js → chunk-P5APDEFB.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-SAMH7SQE.js → chunk-PCEFOYA3.js} +237 -145
- package/dist/safe-bash/command-chunks/{chunk-3HXDA5PT.js → chunk-PMBFZXTK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-4Y3WVMK4.js → chunk-PV66YWHB.js} +1 -0
- package/dist/safe-bash/command-chunks/{chunk-AXK3H4PX.js → chunk-QJ33BHI4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-3LSOYLNV.js → chunk-QKFSRZGQ.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-JZSNU2MY.js → chunk-QKJLP53H.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-LC2MFKT4.js → chunk-RMWQAAO5.js} +24 -25
- package/dist/safe-bash/command-chunks/{chunk-QDTBMSBE.js → chunk-RO62EWX6.js} +2 -2
- package/dist/safe-bash/command-chunks/{chunk-4C6QI5BQ.js → chunk-RZZI24ZE.js} +4 -4
- package/dist/safe-bash/command-chunks/{chunk-PFAADCB5.js → chunk-SDNBCQ3X.js} +10 -24
- package/dist/safe-bash/command-chunks/{chunk-36O5OT7E.js → chunk-T35Y7YQD.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-6HMX4CQS.js → chunk-TGSNCQSR.js} +44 -16
- package/dist/safe-bash/command-chunks/{chunk-5T7CRJHW.js → chunk-TIOCQVUQ.js} +4 -7
- package/dist/safe-bash/command-chunks/{chunk-T5H5UJQ3.js → chunk-TNOA7FCQ.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-GN2TKLE7.js → chunk-TS65BJHG.js} +5 -5
- package/dist/safe-bash/command-chunks/{chunk-7RGB363W.js → chunk-TSCGT46G.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-KBEURXFF.js → chunk-UN6WS55J.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-SX2X3IH4.js → chunk-V2V5OCL3.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-ERYJLO6G.js → chunk-V7A7DRTU.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-5SHGJ7NO.js → chunk-VA5ZHYYA.js} +73 -33
- package/dist/safe-bash/command-chunks/{chunk-XETLEHZP.js → chunk-VPR5LQYX.js} +3 -2
- package/dist/safe-bash/command-chunks/{chunk-3DT2YOGW.js → chunk-VSRGNQCP.js} +3 -3
- package/dist/safe-bash/command-chunks/{chunk-J5SN3PZ3.js → chunk-VXSLJH7G.js} +53 -3
- package/dist/safe-bash/command-chunks/{chunk-PXYOWWMV.js → chunk-W7RAD4EW.js} +4 -3
- package/dist/safe-bash/command-chunks/{chunk-YGC6OS5O.js → chunk-WECIOOQB.js} +5 -8
- package/dist/safe-bash/command-chunks/{chunk-HHP343KT.js → chunk-WTECBRU4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-AO6Z5EQ7.js → chunk-WVE64WM2.js} +6 -5
- package/dist/safe-bash/command-chunks/{chunk-Z7RVSD5K.js → chunk-WVHONVZ4.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QNIMV57G.js → chunk-XNLFHHOC.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-XAFSZDY2.js → chunk-XS72HTMA.js} +11 -0
- package/dist/safe-bash/command-chunks/{chunk-KYSPGS33.js → chunk-YIQACGEW.js} +2 -0
- package/dist/safe-bash/command-chunks/{chunk-NAY27PXB.js → chunk-YOFC45RK.js} +1 -1
- package/dist/safe-bash/command-chunks/{chunk-QI7LGHJJ.js → chunk-Z45N42QC.js} +21 -6
- package/dist/safe-bash/command-chunks/{chunk-67IQF5GC.js → chunk-ZYHTWNAE.js} +23 -9
- package/dist/safe-bash/command-chunks/{chunk-STC3LEWJ.js → chunk-ZYXH3B66.js} +5 -3
- package/dist/safe-bash/commands/bytes/compression/index.js +3 -2
- package/dist/safe-bash/commands/copy-preserve.d.ts +1 -0
- package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
- package/dist/safe-bash/commands/docx/index.browser.js +1 -1
- package/dist/safe-bash/commands/execution.js +19 -13
- package/dist/safe-bash/commands/factor/index.browser.js +2 -2
- package/dist/safe-bash/commands/filesystem.d.ts +1 -1
- package/dist/safe-bash/commands/filesystem.js +17 -13
- package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
- package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
- package/dist/safe-bash/commands/htmlq/index.d.ts +1 -1
- package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
- package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/index.browser.js +2 -2
- package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
- package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
- package/dist/safe-bash/commands/media/index.browser.js +1 -1
- package/dist/safe-bash/commands/network/curl.d.ts +1 -1
- package/dist/safe-bash/commands/network/curl.js +1 -3
- package/dist/safe-bash/commands/network/index.browser.js +4 -4
- package/dist/safe-bash/commands/network/platform-portable.d.ts +1 -5
- package/dist/safe-bash/commands/network/platform-portable.js +1 -26
- package/dist/safe-bash/commands/network/public.d.ts +2 -2
- package/dist/safe-bash/commands/network/public.js +2 -2
- package/dist/safe-bash/commands/network/transport.js +2 -2
- package/dist/safe-bash/commands/network/wget.d.ts +1 -1
- package/dist/safe-bash/commands/network/wget.js +1 -3
- package/dist/safe-bash/commands/node/filesystem.js +3 -2
- package/dist/safe-bash/commands/node/index.browser.js +8 -8
- package/dist/safe-bash/commands/node/types.js +1 -1
- package/dist/safe-bash/commands/op/index.browser.js +3 -3
- package/dist/safe-bash/commands/pr/index.browser.js +2 -2
- package/dist/safe-bash/commands/python/host-capabilities.js +31 -14
- package/dist/safe-bash/commands/python/index.browser.js +11 -11
- package/dist/safe-bash/commands/python/manifest.d.ts +1 -0
- package/dist/safe-bash/commands/python/manifest.js +6 -3
- package/dist/safe-bash/commands/python/shell-capability.d.ts +1 -0
- package/dist/safe-bash/commands/python/shell-capability.js +3 -2
- package/dist/safe-bash/commands/python/worker.browser.js +3 -3
- package/dist/safe-bash/commands/regex-execution/public.browser.js +4 -4
- package/dist/safe-bash/commands/safejs/runtime.js +16 -7
- package/dist/safe-bash/commands/standard.d.ts +1 -0
- package/dist/safe-bash/commands/standard.js +2 -1
- package/dist/safe-bash/commands/streams.js +6 -24
- package/dist/safe-bash/commands/text.js +268 -364
- package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
- package/dist/safe-bash/commands/xml/index.browser.js +2 -2
- package/dist/safe-bash/commands/yq/index.browser.js +2 -2
- package/dist/safe-bash/core.browser.js +1 -1
- package/dist/safe-bash/core.d.ts +6 -1
- package/dist/safe-bash/core.js +1 -1
- package/dist/safe-bash/full-core.browser.js +108 -104
- package/dist/safe-bash/jobs.browser.js +5 -5
- package/dist/safe-bash/opt-in/commands/dd/index.js +2 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/options.d.ts +1 -0
- package/dist/safe-bash/opt-in/optional/commands/shuf/options.js +2 -4
- package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +2 -1
- package/dist/safe-bash/optional-host.browser.js +11 -11
- package/dist/safe-bash/plugins/composition.d.ts +1 -0
- package/dist/safe-bash/plugins/composition.js +3 -8
- package/dist/safe-bash/plugins/index.browser.js +27 -27
- package/dist/safe-bash/registry-entry.browser.js +28 -28
- package/dist/safe-bash/shell/arrays/bindings.js +1 -1
- package/dist/safe-bash/shell/arrays/state.js +4 -0
- package/dist/safe-bash/shell/brace-expansion.js +1 -1
- package/dist/safe-bash/shell/dynamic-variables.d.ts +10 -0
- package/dist/safe-bash/shell/dynamic-variables.js +25 -0
- package/dist/safe-bash/shell/parser.js +8 -1
- package/dist/safe-bash/shell/runtime.d.ts +4 -4
- package/dist/safe-bash/shell/runtime.js +291 -741
- package/dist/safe-bash/shell/shell.js +2 -31
- package/dist/safe-bash/shell-entry.browser.js +25 -25
- package/dist/safe-bash/trap.browser.js +4 -4
- package/dist/safe-bash/yq-browser/index.js +1 -1
- package/dist/safe-bash-base-encoding-engine/base.js +2 -2
- package/dist/safe-bash-base-encoding-engine/shared.js +1 -1
- package/dist/safe-bash-byte-input-engine/index.d.ts +3 -2
- package/dist/safe-bash-byte-input-engine/index.js +4 -1
- package/dist/safe-bash-checksum-engine/index.js +13 -6
- package/dist/safe-bash-command-apply-patch/apply.d.ts +1 -1
- package/dist/safe-bash-command-apply-patch/apply.js +4 -3
- package/dist/safe-bash-command-apply-patch/index.js +3 -3
- package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
- package/dist/safe-bash-command-apply-patch/parser.js +1 -1
- package/dist/safe-bash-command-awk/awk-inspection.js +2 -2
- package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
- package/dist/safe-bash-command-awk/awk-syntax.d.ts +1 -1
- package/dist/safe-bash-command-awk/awk-syntax.js +2 -2
- package/dist/safe-bash-command-awk/awk-values.js +1 -1
- package/dist/safe-bash-command-awk/awk.js +5 -5
- package/dist/safe-bash-command-awk/index.js +5 -5
- package/dist/safe-bash-command-bc/index.d.ts +2 -0
- package/dist/safe-bash-command-bc/index.js +123 -92
- package/dist/safe-bash-command-column/column.js +5 -5
- package/dist/safe-bash-command-column/display.d.ts +1 -1
- package/dist/safe-bash-command-column/display.js +1 -1
- package/dist/safe-bash-command-column/index.js +5 -5
- package/dist/safe-bash-command-column/internal.d.ts +0 -2
- package/dist/safe-bash-command-column/internal.js +1 -1
- package/dist/safe-bash-command-column/layout.js +4 -4
- package/dist/safe-bash-command-column/table.js +2 -2
- package/dist/safe-bash-command-comm/comm.js +1 -1
- package/dist/safe-bash-command-comm/index.js +1 -1
- package/dist/safe-bash-command-csvcut/index.d.ts +1 -0
- package/dist/safe-bash-command-csvcut/index.js +1 -0
- package/dist/safe-bash-command-csvgrep/index.d.ts +1 -0
- package/dist/safe-bash-command-csvgrep/index.js +2 -2
- package/dist/safe-bash-command-csvkit/index.js +9 -9
- package/dist/safe-bash-command-csvkit/sync-support.js +1 -1
- package/dist/safe-bash-command-curl/curl.js +1 -1
- package/dist/safe-bash-command-curl/index.js +1 -1
- package/dist/safe-bash-command-dd/index.js +2 -0
- package/dist/safe-bash-command-diff/diff.js +1 -1
- package/dist/safe-bash-command-diff/index.js +1 -1
- package/dist/safe-bash-command-exiftool/index.d.ts +1 -0
- package/dist/safe-bash-command-fd/index.js +9 -9
- package/dist/safe-bash-command-ffmpeg/index.js +31 -8
- package/dist/safe-bash-command-file/index.js +1 -1
- package/dist/safe-bash-command-file/shared.js +1 -1
- package/dist/safe-bash-command-find/find.js +1 -1
- package/dist/safe-bash-command-find/index.js +1 -1
- package/dist/safe-bash-command-gzip/index.js +3 -2
- package/dist/safe-bash-command-hexdump/command.js +4 -4
- package/dist/safe-bash-command-hexdump/custom.d.ts +24 -0
- package/dist/safe-bash-command-hexdump/index.js +4 -4
- package/dist/safe-bash-command-hexdump/internal.d.ts +2 -0
- package/dist/safe-bash-command-hexdump/internal.js +1 -1
- package/dist/safe-bash-command-hexdump/io.js +2 -2
- package/dist/safe-bash-command-hexdump/options.d.ts +3 -0
- package/dist/safe-bash-command-hexdump/options.js +2 -2
- package/dist/safe-bash-command-hostname/index.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/budget.js +1 -1
- package/dist/safe-bash-command-html-to-markdown/entities.js +3 -3
- package/dist/safe-bash-command-html-to-markdown/index.js +6 -6
- package/dist/safe-bash-command-html-to-markdown/input.js +5 -5
- package/dist/safe-bash-command-html-to-markdown/parser.d.ts +1 -0
- package/dist/safe-bash-command-html-to-markdown/parser.js +4 -4
- package/dist/safe-bash-command-html-to-markdown/render.js +5 -5
- package/dist/safe-bash-command-html-to-markdown/text.js +2 -2
- package/dist/safe-bash-command-htmlq/index.d.ts +1 -0
- package/dist/safe-bash-command-htmlq/index.js +27 -9
- package/dist/safe-bash-command-iconv/codec.js +1 -1
- package/dist/safe-bash-command-iconv/command.js +2 -2
- package/dist/safe-bash-command-iconv/index.js +2 -2
- package/dist/safe-bash-command-imagemagick/index.js +24 -6
- package/dist/safe-bash-command-join/index.js +1 -1
- package/dist/safe-bash-command-join/join.js +1 -1
- package/dist/safe-bash-command-jq/index.js +1 -1
- package/dist/safe-bash-command-jq/jq.js +1 -1
- package/dist/safe-bash-command-less/index.js +43 -28
- package/dist/safe-bash-command-mmdc/index.d.ts +1 -0
- package/dist/safe-bash-command-numfmt/index.js +0 -11
- package/dist/safe-bash-command-od/index.js +101 -68
- package/dist/safe-bash-command-pandoc/command.js +1 -1
- package/dist/safe-bash-command-pandoc/index.js +1 -1
- package/dist/safe-bash-command-paste/index.js +1 -1
- package/dist/safe-bash-command-paste/paste.js +1 -1
- package/dist/safe-bash-command-pathchk/index.js +3 -13
- package/dist/safe-bash-command-pdfimages/index.js +27 -11
- package/dist/safe-bash-command-pdfinfo/index.js +19 -10
- package/dist/safe-bash-command-pdftk/index.js +3 -3
- package/dist/safe-bash-command-pdftoppm/index.js +26 -10
- package/dist/safe-bash-command-pdftotext/index.js +27 -13
- package/dist/safe-bash-command-qpdf/index.js +5 -5
- package/dist/safe-bash-command-sed/index.js +1 -1
- package/dist/safe-bash-command-sed/sed.js +1 -1
- package/dist/safe-bash-command-shuf/options.d.ts +1 -0
- package/dist/safe-bash-command-shuf/options.js +2 -4
- package/dist/safe-bash-command-shuf/shuf.js +2 -1
- package/dist/safe-bash-command-soffice/index.js +20 -16
- package/dist/safe-bash-command-split/index.js +3 -3
- package/dist/safe-bash-command-split/io.js +1 -1
- package/dist/safe-bash-command-split/outputs.js +2 -2
- package/dist/safe-bash-command-split/split.js +3 -3
- package/dist/safe-bash-command-sqlite3/btree.d.ts +1 -0
- package/dist/safe-bash-command-sqlite3/engine.d.ts +6 -0
- package/dist/safe-bash-command-sqlite3/index.js +284 -85
- package/dist/safe-bash-command-ssconvert/commands.js +9 -9
- package/dist/safe-bash-command-ssconvert/core.js +8 -8
- package/dist/safe-bash-command-ssconvert/formats/csv.js +9 -9
- package/dist/safe-bash-command-ssconvert/formats/ods.js +8 -8
- package/dist/safe-bash-command-ssconvert/formats/spreadsheetml.js +2 -2
- package/dist/safe-bash-command-ssconvert/formats/xls.js +9 -9
- package/dist/safe-bash-command-ssconvert/formats/xlsx.js +8 -8
- package/dist/safe-bash-command-ssconvert/index.js +20 -20
- package/dist/safe-bash-command-tar/extract.js +1 -1
- package/dist/safe-bash-command-tar/index.js +5 -4
- package/dist/safe-bash-command-tar/modes.js +2 -2
- package/dist/safe-bash-command-tree/arguments.js +3 -3
- package/dist/safe-bash-command-tree/charset.js +1 -1
- package/dist/safe-bash-command-tree/index.js +4 -4
- package/dist/safe-bash-command-tree/io.js +1 -1
- package/dist/safe-bash-command-tree/pattern.js +2 -2
- package/dist/safe-bash-command-tree/tree.js +4 -4
- package/dist/safe-bash-command-unrtf/index.js +14 -7
- package/dist/safe-bash-command-unzip/index.js +1 -1
- package/dist/safe-bash-command-unzip/unzip.js +1 -1
- package/dist/safe-bash-command-wget/index.js +1 -1
- package/dist/safe-bash-command-wget/wget.js +1 -1
- package/dist/safe-bash-command-xan/argv.d.ts +1 -1
- package/dist/safe-bash-command-xan/argv.js +1 -1
- package/dist/safe-bash-command-xan/commands.js +5 -3
- package/dist/safe-bash-command-xan/csv.d.ts +1 -1
- package/dist/safe-bash-command-xan/csv.js +1 -1
- package/dist/safe-bash-command-xan/index.js +7 -7
- package/dist/safe-bash-command-xan/io.js +3 -3
- package/dist/safe-bash-command-xmllint/index.js +1 -1
- package/dist/safe-bash-command-xxd/index.js +105 -91
- package/dist/safe-bash-command-xz/command.d.ts +2 -0
- package/dist/safe-bash-command-xz/index.d.ts +1 -1
- package/dist/safe-bash-command-xz/index.js +8 -0
- package/dist/safe-bash-command-yq/query.js +1 -1
- package/dist/safe-bash-command-zip/index.js +1 -1
- package/dist/safe-bash-command-zip/zip.js +1 -1
- package/dist/safe-bash-contracts/escaping.js +3 -3
- package/dist/safe-bash-contracts/filesystem-output.js +2 -2
- package/dist/safe-bash-contracts/index.d.ts +1 -0
- package/dist/safe-bash-contracts/index.js +7 -3
- package/dist/safe-bash-contracts/io.d.ts +4 -1
- package/dist/safe-bash-contracts/io.js +3 -1
- package/dist/safe-bash-contracts/managed-abort.d.ts +10 -0
- package/dist/safe-bash-contracts/output.js +2 -2
- package/dist/safe-bash-diff-engine/index.js +1 -1
- package/dist/safe-bash-diff-engine/shared.d.ts +3 -2
- package/dist/safe-bash-diff-engine/shared.js +1 -1
- package/dist/safe-bash-io-engine/commands/archive/internal.js +5 -23
- package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
- package/dist/safe-bash-io-engine/commands/text-programs/shared.js +33 -44
- package/dist/safe-bash-io-engine/internal.js +1 -1
- package/dist/safe-bash-io-engine/shell/pattern.js +1 -1
- package/dist/safe-bash-io-engine/shell/string-operations.js +1 -1
- package/dist/safe-bash-mcp/index.browser.d.ts +155 -35
- package/dist/safe-bash-mcp/index.browser.js +416 -0
- package/dist/safe-bash-mcp/index.d.ts +54 -2
- package/dist/safe-bash-mcp/index.js +283 -89
- package/dist/safe-bash-network-engine/aggregate.js +2 -2
- package/dist/safe-bash-network-engine/args.js +4 -4
- package/dist/safe-bash-network-engine/authorizer.js +1 -1
- package/dist/safe-bash-network-engine/body.js +6 -6
- package/dist/safe-bash-network-engine/decode.d.ts +1 -1
- package/dist/safe-bash-network-engine/decode.js +3 -4
- package/dist/safe-bash-network-engine/fetch-transport.js +3 -3
- package/dist/safe-bash-network-engine/form-content-type.js +2 -2
- package/dist/safe-bash-network-engine/form-headers.js +2 -2
- package/dist/safe-bash-network-engine/glob.js +1 -1
- package/dist/safe-bash-network-engine/index.js +4 -4
- package/dist/safe-bash-network-engine/input.js +6 -6
- package/dist/safe-bash-network-engine/output.js +2 -2
- package/dist/safe-bash-network-engine/platform-portable.js +3 -3
- package/dist/safe-bash-network-engine/shared.js +2 -2
- package/dist/safe-bash-network-engine/types.d.ts +7 -2
- package/dist/safe-bash-network-engine/types.js +1 -1
- package/dist/safe-bash-network-engine/url.js +2 -2
- package/dist/safe-bash-query-engine/capture.js +3 -3
- package/dist/safe-bash-query-engine/delpaths.js +3 -3
- package/dist/safe-bash-query-engine/formats.js +2 -2
- package/dist/safe-bash-query-engine/index.js +11 -11
- package/dist/safe-bash-query-engine/indices.js +3 -3
- package/dist/safe-bash-query-engine/input.js +1 -1
- package/dist/safe-bash-query-engine/interpreter.js +9 -9
- package/dist/safe-bash-query-engine/parser.js +1 -1
- package/dist/safe-bash-query-engine/query-core.js +11 -11
- package/dist/safe-bash-query-engine/regex.js +4 -4
- package/dist/safe-bash-query-engine/splits.js +5 -5
- package/dist/safe-bash-query-engine/values.js +2 -2
- package/dist/safe-bash-regex-engine/ere/matcher.js +102 -30
- package/dist/safe-bash-regex-engine/execution/bounded-provider.js +55 -67
- package/dist/safe-bash-regex-engine/execution/portable.d.ts +0 -1
- package/dist/safe-bash-regex-engine/execution/portable.js +6 -10
- package/dist/safe-bash-regex-engine/execution/protocol.d.ts +0 -5
- package/dist/safe-bash-regex-engine/execution/protocol.js +1 -3
- package/dist/safe-bash-regex-engine/index.js +6 -4
- package/dist/safe-bash-regex-engine/text/budget.d.ts +1 -0
- package/dist/safe-bash-regex-engine/text/budget.js +1 -1
- package/dist/safe-bash-regex-engine/text/regex.d.ts +14 -0
- package/dist/safe-bash-regex-engine/text/regex.js +6 -4
- package/dist/safe-bash-regex-engine/text/replacement-buffer.js +2 -2
- package/dist/safe-bash-regex-engine/text/rust-syntax.js +2 -2
- package/dist/safe-bash-search-engine/grep.js +189 -227
- package/dist/safe-bash-table-text-engine/table-text/internal.d.ts +7 -5
- package/dist/safe-bash-table-text-engine/table-text/internal.js +39 -21
- package/dist/safe-playwright-cloudflare/browser-trace-budget.js +6 -2
- package/dist/spreadsheet-engine/codecs/odf-hyperlinks.js +8 -2
- package/dist/spreadsheet-engine/formulas/functions/captured-bessel-phase.js +2 -2
- package/dist/spreadsheet-engine/formulas/label-references.js +54 -33
- package/dist/spreadsheet-engine/formulas/parser.js +3 -1
- package/dist/spreadsheet-engine/formulas/rewriting.js +13 -3
- package/dist/spreadsheet-format-xls/biff-data-tables.js +4 -6
- package/dist/spreadsheet-format-xls/biff-formulas.js +3 -0
- package/dist/spreadsheet-format-xls/biff-label-ranges.js +9 -6
- package/dist/spreadsheet-format-xls/biff.js +1 -1
- package/dist/xlsx-ast/xlsx.js +8 -5
- package/package.json +9 -8
- package/dist/safe-bash/command-chunks/chunk-KAGBORIC.js +0 -88
- /package/dist/safe-bash/command-chunks/{chunk-BWNXWI33.js → chunk-2LMZVE3I.js} +0 -0
|
@@ -20,6 +20,23 @@ import {
|
|
|
20
20
|
|
|
21
21
|
// packages/safe-bash-regex-engine/src/ere/matcher.ts
|
|
22
22
|
init_buffer();
|
|
23
|
+
function spanStateKey(position, task, nodeIds) {
|
|
24
|
+
let key = String(position);
|
|
25
|
+
for (let current = task; current; current = current.next) {
|
|
26
|
+
if (current.kind === "close") return `${key}/close`;
|
|
27
|
+
let id = nodeIds.get(current.node);
|
|
28
|
+
if (id === void 0) {
|
|
29
|
+
id = nodeIds.size;
|
|
30
|
+
nodeIds.set(current.node, id);
|
|
31
|
+
}
|
|
32
|
+
key += `/${id}`;
|
|
33
|
+
if (current.kind === "repeat") {
|
|
34
|
+
const count = current.node.max === Infinity ? Math.min(current.count, Math.max(1, current.node.min)) : current.count;
|
|
35
|
+
key += `:${count}:${current.previous === position ? 1 : 0}`;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return key;
|
|
39
|
+
}
|
|
23
40
|
var initialCharacters = /* @__PURE__ */ new WeakMap();
|
|
24
41
|
var sequenceNullNextTasks = /* @__PURE__ */ new WeakMap();
|
|
25
42
|
var SINGLE_NULL_CAPTURES = Object.freeze([null]);
|
|
@@ -317,9 +334,14 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
|
|
|
317
334
|
}
|
|
318
335
|
if (unbounded) {
|
|
319
336
|
if (signal?.aborted) throw signal.reason;
|
|
337
|
+
const nodeIds = /* @__PURE__ */ new Map();
|
|
338
|
+
const seen = /* @__PURE__ */ new Set();
|
|
320
339
|
const pendingPos = [];
|
|
321
340
|
const pendingTask = [];
|
|
322
341
|
const push2 = (position, next) => {
|
|
342
|
+
const key = spanStateKey(position, next, nodeIds);
|
|
343
|
+
if (seen.has(key)) return;
|
|
344
|
+
seen.add(key);
|
|
323
345
|
pendingPos.push(position);
|
|
324
346
|
pendingTask.push(next);
|
|
325
347
|
};
|
|
@@ -327,6 +349,8 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
|
|
|
327
349
|
const anchored = root.kind === "start" || root.kind === "sequence" && root.children[0]?.kind === "start";
|
|
328
350
|
const maxStart2 = anchored ? 0 : rLen;
|
|
329
351
|
for (let start = 0; start <= maxStart2; start++) {
|
|
352
|
+
if (ledger.workAllowanceUntilCheckpoint(signal) < 1) return null;
|
|
353
|
+
ledger.chargeWork(1, signal);
|
|
330
354
|
if (firstLitCode >= 0 && !anchored) {
|
|
331
355
|
const found = buf.indexOf(firstLitCode, rStart + start);
|
|
332
356
|
if (found < 0 || found >= rStart + rLen) break;
|
|
@@ -337,14 +361,17 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
|
|
|
337
361
|
}
|
|
338
362
|
if (word && start > 0 && isAsciiWord(buf[rStart + start - 1])) continue;
|
|
339
363
|
if (secondLitCode >= 0 && (start + 1 >= rLen || buf[rStart + start + 1] !== secondLitCode)) continue;
|
|
364
|
+
seen.clear();
|
|
340
365
|
push2(start, rootTask2);
|
|
341
366
|
let bestPos = -1;
|
|
342
367
|
while (pendingPos.length > 0) {
|
|
368
|
+
if (ledger.workAllowanceUntilCheckpoint(signal) < 1) return null;
|
|
369
|
+
ledger.chargeWork(1, signal);
|
|
343
370
|
const statePos = pendingPos.pop();
|
|
344
371
|
const current = pendingTask.pop();
|
|
345
372
|
if (current === null) {
|
|
346
373
|
if (word && statePos < rLen && isAsciiWord(buf[rStart + statePos])) continue;
|
|
347
|
-
if (leftmostFirst) {
|
|
374
|
+
if (leftmostFirst || statePos === rLen) {
|
|
348
375
|
bestPos = statePos;
|
|
349
376
|
pendingPos.length = 0;
|
|
350
377
|
pendingTask.length = 0;
|
|
@@ -363,11 +390,14 @@ function tryMatchEreAsciiRangeNfaSync(root, initial, buf, rStart, rLen, ledger,
|
|
|
363
390
|
}
|
|
364
391
|
const minDotPos = statePos + node2.min;
|
|
365
392
|
if (minDotPos <= maxDotPos) {
|
|
393
|
+
const scanWork = maxDotPos - minDotPos + 1;
|
|
394
|
+
if (ledger.workAllowanceUntilCheckpoint(signal) < scanWork) return null;
|
|
395
|
+
ledger.chargeWork(scanWork, signal);
|
|
366
396
|
const nextTask = current.next;
|
|
367
397
|
if (nextTask && nextTask.kind === "node" && nextTask.node.kind === "literal" && !nextTask.node.insensitive) {
|
|
368
398
|
const targetCode = nextTask.node.code;
|
|
369
399
|
const afterLit = nextTask.next;
|
|
370
|
-
for (let p = minDotPos; p <
|
|
400
|
+
for (let p = minDotPos; p <= maxDotPos && p < rLen; p++) {
|
|
371
401
|
if (buf[rStart + p] === targetCode) push2(p + 1, afterLit);
|
|
372
402
|
}
|
|
373
403
|
} else {
|
|
@@ -776,8 +806,22 @@ function admitSynchronousWork(ledger, amount, signal) {
|
|
|
776
806
|
ledger.chargeWork(amount, signal);
|
|
777
807
|
return true;
|
|
778
808
|
}
|
|
779
|
-
function
|
|
780
|
-
|
|
809
|
+
function* chargeLinearWork(ledger, amount, signal) {
|
|
810
|
+
while (amount > 0) {
|
|
811
|
+
const allowance = ledger.workAllowanceUntilCheckpoint(signal);
|
|
812
|
+
if (allowance === 0) {
|
|
813
|
+
if (ledger.usage.work >= ledger.limits.work) ledger.chargeWork(1, signal);
|
|
814
|
+
yield;
|
|
815
|
+
continue;
|
|
816
|
+
}
|
|
817
|
+
const charged = Math.min(amount, allowance);
|
|
818
|
+
ledger.chargeWork(charged, signal);
|
|
819
|
+
amount -= charged;
|
|
820
|
+
if (amount > 0) yield;
|
|
821
|
+
}
|
|
822
|
+
}
|
|
823
|
+
function* compileEreLinearChain(root, ledger, signal) {
|
|
824
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
781
825
|
const cached = ereLinearChainCache.get(root);
|
|
782
826
|
if (cached !== void 0) return cached;
|
|
783
827
|
ledger.charge("allocationUnits", 3, signal);
|
|
@@ -788,7 +832,7 @@ function compileEreLinearChain(root, ledger, signal) {
|
|
|
788
832
|
const pending = [root];
|
|
789
833
|
let supported = true;
|
|
790
834
|
while (pending.length > 0 && supported) {
|
|
791
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
835
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
792
836
|
const node = pending.pop();
|
|
793
837
|
switch (node.kind) {
|
|
794
838
|
case "start":
|
|
@@ -802,7 +846,7 @@ function compileEreLinearChain(root, ledger, signal) {
|
|
|
802
846
|
anchoredEnd = true;
|
|
803
847
|
break;
|
|
804
848
|
case "sequence":
|
|
805
|
-
if (!admitSynchronousWork(ledger, node.children.length, signal))
|
|
849
|
+
if (!admitSynchronousWork(ledger, node.children.length, signal)) yield* chargeLinearWork(ledger, node.children.length, signal);
|
|
806
850
|
ledger.charge("allocationUnits", node.children.length, signal);
|
|
807
851
|
for (let i = node.children.length - 1; i >= 0; i--) pending.push(node.children[i]);
|
|
808
852
|
break;
|
|
@@ -844,16 +888,16 @@ function compileEreLinearChain(root, ledger, signal) {
|
|
|
844
888
|
}
|
|
845
889
|
let firstAtom;
|
|
846
890
|
for (let i = steps.length - 1; supported && i >= 0; i--) {
|
|
847
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
891
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
848
892
|
const step = steps[i];
|
|
849
893
|
if (step.kind !== "char" && step.kind !== "repeat") continue;
|
|
850
894
|
if (step.kind === "repeat" && firstAtom) {
|
|
851
|
-
if (!admitSynchronousWork(ledger, 129, signal))
|
|
895
|
+
if (!admitSynchronousWork(ledger, 129, signal)) yield* chargeLinearWork(ledger, 129, signal);
|
|
852
896
|
if (!ereAtomsDisjoint(step.atom, firstAtom)) supported = false;
|
|
853
897
|
}
|
|
854
898
|
firstAtom = step.atom;
|
|
855
899
|
}
|
|
856
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
900
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
857
901
|
ledger.charge("allocationUnits", supported && seenConsuming ? 6 : 2, signal);
|
|
858
902
|
if (!supported || !seenConsuming) {
|
|
859
903
|
ereLinearChainCache.set(root, null);
|
|
@@ -863,11 +907,11 @@ function compileEreLinearChain(root, ledger, signal) {
|
|
|
863
907
|
ereLinearChainCache.set(root, compiled);
|
|
864
908
|
return compiled;
|
|
865
909
|
}
|
|
866
|
-
function
|
|
867
|
-
const chain = compileEreLinearChain(root, ledger, signal);
|
|
910
|
+
function* matchEreLinearChain(program, root, subject, ledger, signal) {
|
|
911
|
+
const chain = yield* compileEreLinearChain(root, ledger, signal);
|
|
868
912
|
if (!chain) return void 0;
|
|
869
913
|
const width = program.groups + 1;
|
|
870
|
-
if (!admitSynchronousWork(ledger, width * 2, signal))
|
|
914
|
+
if (!admitSynchronousWork(ledger, width * 2, signal)) yield* chargeLinearWork(ledger, width * 2, signal);
|
|
871
915
|
ledger.charge("allocationUnits", width * 2 + 2, signal);
|
|
872
916
|
const groupStarts = new Int32Array(width);
|
|
873
917
|
const groupEnds = new Int32Array(width);
|
|
@@ -875,7 +919,7 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
|
|
|
875
919
|
const steps = chain.steps;
|
|
876
920
|
const stepsLen = steps.length;
|
|
877
921
|
for (let start = 0; start <= maxStart; start++) {
|
|
878
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
922
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
879
923
|
ledger.charge("states", 1, signal);
|
|
880
924
|
if (chain.firstAtom) {
|
|
881
925
|
if (start >= subject.length) break;
|
|
@@ -883,13 +927,13 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
|
|
|
883
927
|
continue;
|
|
884
928
|
}
|
|
885
929
|
}
|
|
886
|
-
if (!admitSynchronousWork(ledger, width * 2, signal))
|
|
930
|
+
if (!admitSynchronousWork(ledger, width * 2, signal)) yield* chargeLinearWork(ledger, width * 2, signal);
|
|
887
931
|
groupStarts.fill(-1);
|
|
888
932
|
groupEnds.fill(-1);
|
|
889
933
|
let pos = start;
|
|
890
934
|
let ok = true;
|
|
891
935
|
for (let s = 0; s < stepsLen; s++) {
|
|
892
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
936
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
893
937
|
ledger.charge("states", 1, signal);
|
|
894
938
|
const step = steps[s];
|
|
895
939
|
if (step.kind === "groupOpen") {
|
|
@@ -905,7 +949,7 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
|
|
|
905
949
|
} else {
|
|
906
950
|
let count = 0;
|
|
907
951
|
while (pos < subject.length) {
|
|
908
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
952
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
909
953
|
ledger.charge("states", 1, signal);
|
|
910
954
|
if (!ereAtomMatchesCode(step.atom, subject.charCodeAt(pos))) break;
|
|
911
955
|
pos++;
|
|
@@ -918,14 +962,14 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
|
|
|
918
962
|
}
|
|
919
963
|
}
|
|
920
964
|
if (!ok || chain.anchoredEnd && pos !== subject.length) continue;
|
|
921
|
-
if (!admitSynchronousWork(ledger, width, signal))
|
|
965
|
+
if (!admitSynchronousWork(ledger, width, signal)) yield* chargeLinearWork(ledger, width, signal);
|
|
922
966
|
let bytes = pos - start;
|
|
923
967
|
for (let g = 1; g < width; g++) {
|
|
924
968
|
if (groupStarts[g] >= 0 && groupEnds[g] >= groupStarts[g]) {
|
|
925
969
|
bytes += groupEnds[g] - groupStarts[g];
|
|
926
970
|
}
|
|
927
971
|
}
|
|
928
|
-
if (!admitSynchronousWork(ledger, width * 3 + bytes, signal))
|
|
972
|
+
if (!admitSynchronousWork(ledger, width * 3 + bytes, signal)) yield* chargeLinearWork(ledger, width * 3 + bytes, signal);
|
|
929
973
|
ledger.charge("captureSlots", width, signal);
|
|
930
974
|
ledger.charge("captureBytes", bytes, signal);
|
|
931
975
|
ledger.charge("allocationUnits", width * 4 + bytes + 6, signal);
|
|
@@ -947,32 +991,50 @@ function tryMatchEreLinearChainSync(program, root, subject, ledger, signal) {
|
|
|
947
991
|
ledger.check(signal);
|
|
948
992
|
return Object.freeze({ matched: true, captures: Object.freeze(captures), values: Object.freeze(values) });
|
|
949
993
|
}
|
|
950
|
-
if (!admitSynchronousWork(ledger, 1, signal))
|
|
994
|
+
if (!admitSynchronousWork(ledger, 1, signal)) yield* chargeLinearWork(ledger, 1, signal);
|
|
951
995
|
ledger.charge("allocationUnits", 4, signal);
|
|
952
996
|
ledger.check(signal);
|
|
953
997
|
return Object.freeze({ matched: false, captures: Object.freeze([]), values: Object.freeze([]) });
|
|
954
998
|
}
|
|
999
|
+
var linearContinuations = /* @__PURE__ */ new WeakMap();
|
|
955
1000
|
function tryMatchEreSync(program, subject, ledger, signal) {
|
|
956
1001
|
ledger.check(signal);
|
|
957
1002
|
const root = resolveEreProgram(program, ledger);
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
1003
|
+
const pending = linearContinuations.get(ledger);
|
|
1004
|
+
if (pending?.program === program && pending.subject === subject && pending.signal === signal) return void 0;
|
|
1005
|
+
linearContinuations.delete(ledger);
|
|
1006
|
+
if (subject.length > ledger.limits.subjectBytes || ledger.workAllowanceUntilCheckpoint(signal) < subject.length + 16) return void 0;
|
|
961
1007
|
ledger.admitInput("subjectBytes", subject.length, signal);
|
|
962
1008
|
const adm = admitAscii(subject, ledger, signal);
|
|
963
1009
|
if (adm) return void 0;
|
|
964
|
-
|
|
1010
|
+
const iterator = matchEreLinearChain(program, root, subject, ledger, signal);
|
|
1011
|
+
const next = iterator.next();
|
|
1012
|
+
if (next.done) return next.value;
|
|
1013
|
+
linearContinuations.set(ledger, { program, subject, signal, iterator });
|
|
1014
|
+
return void 0;
|
|
965
1015
|
}
|
|
966
1016
|
async function matchEre(program, subject, ledger, signal) {
|
|
967
1017
|
ledger.check(signal);
|
|
968
|
-
resolveEreProgram(program, ledger);
|
|
969
|
-
ledger.admitInput("subjectBytes", subject.length, signal);
|
|
970
1018
|
const root = resolveEreProgram(program, ledger);
|
|
971
|
-
const
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
if (
|
|
975
|
-
|
|
1019
|
+
const pending = linearContinuations.get(ledger);
|
|
1020
|
+
linearContinuations.delete(ledger);
|
|
1021
|
+
let iterator;
|
|
1022
|
+
if (pending?.program === program && pending.subject === subject && pending.signal === signal) {
|
|
1023
|
+
iterator = pending.iterator;
|
|
1024
|
+
const checkpoint = ledger.checkpoint(signal);
|
|
1025
|
+
if (checkpoint) await checkpoint;
|
|
1026
|
+
} else {
|
|
1027
|
+
ledger.admitInput("subjectBytes", subject.length, signal);
|
|
1028
|
+
const adm = admitAscii(subject, ledger, signal);
|
|
1029
|
+
if (adm) await adm;
|
|
1030
|
+
iterator = matchEreLinearChain(program, root, subject, ledger, signal);
|
|
1031
|
+
}
|
|
1032
|
+
for (; ; ) {
|
|
1033
|
+
const next = iterator.next();
|
|
1034
|
+
if (next.done) return next.value ?? runMatcher(program, subject, ledger, signal, 0, true);
|
|
1035
|
+
const checkpoint = ledger.checkpoint(signal);
|
|
1036
|
+
if (checkpoint) await checkpoint;
|
|
1037
|
+
}
|
|
976
1038
|
}
|
|
977
1039
|
async function createEreSpanMatcher(program, subject, ledger, signal) {
|
|
978
1040
|
ledger.check(signal);
|
|
@@ -1051,16 +1113,26 @@ async function runMatcher(program, subject, ledger, signal, from, materialize, l
|
|
|
1051
1113
|
const emptyCaptures = Object.freeze(new Array(width).fill(null));
|
|
1052
1114
|
const emptyHistories = Object.freeze(new Array(width).fill(null));
|
|
1053
1115
|
const pending = [];
|
|
1116
|
+
const seen = program.groups === 0 ? /* @__PURE__ */ new Set() : void 0;
|
|
1117
|
+
const nodeIds = /* @__PURE__ */ new Map();
|
|
1054
1118
|
const task = (create) => {
|
|
1055
1119
|
ledger.charge("allocationUnits", 5, signal);
|
|
1056
1120
|
return create();
|
|
1057
1121
|
};
|
|
1058
1122
|
const push = (position, next, captures, histories) => {
|
|
1123
|
+
if (seen) {
|
|
1124
|
+
const key = spanStateKey(position, next, nodeIds);
|
|
1125
|
+
ledger.charge("work", key.length, signal);
|
|
1126
|
+
ledger.charge("allocationUnits", key.length + 2, signal);
|
|
1127
|
+
if (seen.has(key)) return;
|
|
1128
|
+
seen.add(key);
|
|
1129
|
+
}
|
|
1059
1130
|
ledger.charge("states", 1, signal);
|
|
1060
1131
|
ledger.charge("allocationUnits", 5, signal);
|
|
1061
1132
|
pending.push({ position, task: next, captures, histories });
|
|
1062
1133
|
};
|
|
1063
1134
|
for (let start = from; start <= subject.length; start++) {
|
|
1135
|
+
seen?.clear();
|
|
1064
1136
|
if (initial) {
|
|
1065
1137
|
ledger.charge("work", 1, signal);
|
|
1066
1138
|
const pendingCheck = ledger.checkpoint(signal);
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
trustedInputRows,
|
|
7
7
|
trustedWorkerReplies,
|
|
8
8
|
trustedWorkerRequests
|
|
9
|
-
} from "../../safe-bash/command-chunks/chunk-
|
|
9
|
+
} from "../../safe-bash/command-chunks/chunk-6B7WQIKB.js";
|
|
10
10
|
import {
|
|
11
11
|
matchExprSteps,
|
|
12
12
|
searchBreSteps
|
|
@@ -48,12 +48,6 @@ var byteBuffer = Object.getOwnPropertyDescriptor(typedArrayPrototype, "buffer").
|
|
|
48
48
|
var emptyFloat64 = new Float64Array(0);
|
|
49
49
|
var emptyFloat64Results = [];
|
|
50
50
|
var emptyMatchRow = [];
|
|
51
|
-
var reusableTrustedReply = {
|
|
52
|
-
id: 0,
|
|
53
|
-
results: emptyFloat64Results,
|
|
54
|
-
directMatches: []
|
|
55
|
-
};
|
|
56
|
-
trustedWorkerReplies.add(reusableTrustedReply);
|
|
57
51
|
function fail(kind, message) {
|
|
58
52
|
throw new PublicDiagnostic(`bounded regex ${kind}: ${message}`);
|
|
59
53
|
}
|
|
@@ -186,12 +180,7 @@ function admit(input, limits, signal, allowSharedLedger = true) {
|
|
|
186
180
|
if (allowSharedLedger && knownTrustedRows) {
|
|
187
181
|
const ledger2 = sharedSyncLedger.resetWithLimits(getPrevalidatedEreLimits(limits, selected.fixed));
|
|
188
182
|
ledger2.charge("allocationUnits", bytes + input.rows.length * 12 + selected.patterns.length * 2 + 16, signal);
|
|
189
|
-
|
|
190
|
-
sharedOwnedRequest.descriptor = selected;
|
|
191
|
-
sharedOwnedRequest.rows = input.rows;
|
|
192
|
-
sharedOwnedRequest.ledger = ledger2;
|
|
193
|
-
sharedOwnedRequest.limits = limits;
|
|
194
|
-
return sharedOwnedRequest;
|
|
183
|
+
return { id: input.id, descriptor: selected, rows: input.rows, ledger: ledger2, limits };
|
|
195
184
|
}
|
|
196
185
|
const ledger = selected.kind !== "glob" ? EreLedger.withPrevalidatedLimits(getPrevalidatedEreLimits(limits, selected.fixed)) : new EreLedger({ maxExpansionBytes: Infinity, maxExpansionFields: Infinity }, {
|
|
197
186
|
patternBytes: Infinity,
|
|
@@ -600,20 +589,18 @@ async function enumerate(input, row, finders, usage, signal) {
|
|
|
600
589
|
await ledger.checkpoint(signal);
|
|
601
590
|
return new Float64Array(ranges);
|
|
602
591
|
}
|
|
603
|
-
var lastLiteralCache;
|
|
604
|
-
var lastEreCache;
|
|
605
592
|
function ereCacheKeyFor(selected, fold) {
|
|
606
593
|
if (selected.patterns.length !== 1 || selected.patterns[0].length > 128) return void 0;
|
|
607
594
|
return `${selected.kind}:${fold ? 1 : 0}:${selected.kind === "rg" && selected.nullData ? 1 : 0}:${selected.kind === "grep" && !selected.extended ? 1 : 0}:${selected.whole ? 1 : 0}:${selected.patterns[0]}`;
|
|
608
595
|
}
|
|
609
|
-
function tryExecuteEreSync(input, signal, fold) {
|
|
596
|
+
function tryExecuteEreSync(input, signal, fold, cache) {
|
|
610
597
|
const { descriptor: selected, rows, ledger } = input;
|
|
611
598
|
if (selected.patterns.length !== 1) return void 0;
|
|
612
599
|
const pattern0 = selected.patterns[0];
|
|
613
|
-
if (
|
|
600
|
+
if (cache.ere === void 0 || cache.ere.kind !== selected.kind || cache.ere.fold !== fold || cache.ere.nullData !== (selected.kind === "rg" && selected.nullData) || cache.ere.bre !== (selected.kind === "grep" && !selected.extended) || cache.ere.whole !== selected.whole || cache.ere.pattern0 !== pattern0) {
|
|
614
601
|
return void 0;
|
|
615
602
|
}
|
|
616
|
-
const programs =
|
|
603
|
+
const programs = cache.ere.programs;
|
|
617
604
|
const unboundedLedger = ledger.limits.work === Infinity && ledger.limits.states === Infinity && ledger.limits.allocationUnits === Infinity;
|
|
618
605
|
if (!unboundedLedger) {
|
|
619
606
|
for (let p = 0; p < programs.length; p++) {
|
|
@@ -632,21 +619,21 @@ function tryExecuteEreSync(input, signal, fold) {
|
|
|
632
619
|
batchWork += rLen * 4 + 5 + patLen;
|
|
633
620
|
batchAllocUnits += rLen * 11 + 23;
|
|
634
621
|
}
|
|
635
|
-
const estimatedWork =
|
|
622
|
+
const estimatedWork = cache.ere.work + batchWork + 256;
|
|
636
623
|
if (ledger.workAllowanceUntilCheckpoint(signal) < estimatedWork) {
|
|
637
624
|
return void 0;
|
|
638
625
|
}
|
|
639
626
|
ledger.admitInput("subjectBytes", maxSubjectLen, signal);
|
|
640
|
-
ledger.charge("work",
|
|
641
|
-
ledger.charge("patternBytes",
|
|
642
|
-
ledger.charge("states",
|
|
643
|
-
ledger.charge("allocationUnits",
|
|
627
|
+
ledger.charge("work", cache.ere.work + batchWork, signal);
|
|
628
|
+
ledger.charge("patternBytes", cache.ere.patternBytes, signal);
|
|
629
|
+
ledger.charge("states", cache.ere.states, signal);
|
|
630
|
+
ledger.charge("allocationUnits", cache.ere.allocationUnits + 3 + batchAllocUnits, signal);
|
|
644
631
|
runYieldCheckpoint(signal);
|
|
645
632
|
if (rows.length === 0) {
|
|
646
633
|
signal.throwIfAborted();
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
return
|
|
634
|
+
const reply2 = { id: input.id, results: emptyFloat64Results, directMatches: [] };
|
|
635
|
+
trustedWorkerReplies.add(reply2);
|
|
636
|
+
return reply2;
|
|
650
637
|
}
|
|
651
638
|
const directMatches = new Array(rows.length);
|
|
652
639
|
let matchCount = 0;
|
|
@@ -681,7 +668,7 @@ function tryExecuteEreSync(input, signal, fold) {
|
|
|
681
668
|
if (matchCount >= maxMatches) fail("limit", "total match or result byte limit exceeded");
|
|
682
669
|
matchCount++;
|
|
683
670
|
if (bestSpan.start === 0 && bestSpan.end < 128) {
|
|
684
|
-
const byEnd =
|
|
671
|
+
const byEnd = cache.ere.singleMatchByEnd ??= [];
|
|
685
672
|
directMatches[r] = byEnd[bestSpan.end] ??= [bestSpan];
|
|
686
673
|
} else {
|
|
687
674
|
directMatches[r] = [{ start: bestSpan.start, end: bestSpan.end }];
|
|
@@ -691,9 +678,9 @@ function tryExecuteEreSync(input, signal, fold) {
|
|
|
691
678
|
}
|
|
692
679
|
}
|
|
693
680
|
signal.throwIfAborted();
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
return
|
|
681
|
+
const reply = { id: input.id, results: emptyFloat64Results, directMatches };
|
|
682
|
+
trustedWorkerReplies.add(reply);
|
|
683
|
+
return reply;
|
|
697
684
|
}
|
|
698
685
|
var sharedSyncLedger = EreLedger.withPrevalidatedLimits(Object.freeze({
|
|
699
686
|
patternBytes: Infinity,
|
|
@@ -704,13 +691,6 @@ var sharedSyncLedger = EreLedger.withPrevalidatedLimits(Object.freeze({
|
|
|
704
691
|
captureBytes: Infinity,
|
|
705
692
|
captureSlots: Infinity
|
|
706
693
|
}));
|
|
707
|
-
var sharedOwnedRequest = {
|
|
708
|
-
id: 0,
|
|
709
|
-
descriptor: void 0,
|
|
710
|
-
rows: [],
|
|
711
|
-
ledger: sharedSyncLedger,
|
|
712
|
-
limits: void 0
|
|
713
|
-
};
|
|
714
694
|
var cachedWorkerLimitsRef;
|
|
715
695
|
var cachedFixedEreLimits;
|
|
716
696
|
var cachedRegexEreLimits;
|
|
@@ -780,7 +760,7 @@ function literalStartRangeSync(program, buf, rStart, rEnd, whole, word) {
|
|
|
780
760
|
lastRangeSyncWork = work;
|
|
781
761
|
return -1;
|
|
782
762
|
}
|
|
783
|
-
function tryExecuteLiteralSync(input, signal, fold) {
|
|
763
|
+
function tryExecuteLiteralSync(input, signal, fold, cache) {
|
|
784
764
|
const { descriptor: selected, rows, ledger } = input;
|
|
785
765
|
for (let i = 0; i < rows.length; i++) {
|
|
786
766
|
if (rows[i].all) return void 0;
|
|
@@ -789,7 +769,7 @@ function tryExecuteLiteralSync(input, signal, fold) {
|
|
|
789
769
|
const pattern0 = selected.patterns[0];
|
|
790
770
|
if (pattern0.length > 128) return void 0;
|
|
791
771
|
const nullData = selected.kind === "rg" && selected.nullData;
|
|
792
|
-
if (
|
|
772
|
+
if (cache.literal?.kind !== selected.kind || cache.literal.fold !== fold || cache.literal.nullData !== nullData || cache.literal.pattern0 !== pattern0) {
|
|
793
773
|
const snapBefore = ledger.usage;
|
|
794
774
|
const compiled = [];
|
|
795
775
|
for (const pattern of selected.patterns) {
|
|
@@ -801,7 +781,7 @@ function tryExecuteLiteralSync(input, signal, fold) {
|
|
|
801
781
|
compiled.push(progOrPromise);
|
|
802
782
|
}
|
|
803
783
|
const snapAfter = ledger.usage;
|
|
804
|
-
|
|
784
|
+
cache.literal = {
|
|
805
785
|
kind: selected.kind,
|
|
806
786
|
fold,
|
|
807
787
|
nullData,
|
|
@@ -813,11 +793,11 @@ function tryExecuteLiteralSync(input, signal, fold) {
|
|
|
813
793
|
allocationUnits: snapAfter.allocationUnits - snapBefore.allocationUnits | 0
|
|
814
794
|
};
|
|
815
795
|
} else {
|
|
816
|
-
if (ledger.workAllowanceUntilCheckpoint(signal) <
|
|
817
|
-
ledger.charge("work",
|
|
818
|
-
ledger.charge("patternBytes",
|
|
819
|
-
ledger.charge("states",
|
|
820
|
-
ledger.charge("allocationUnits",
|
|
796
|
+
if (ledger.workAllowanceUntilCheckpoint(signal) < cache.literal.work) return void 0;
|
|
797
|
+
ledger.charge("work", cache.literal.work, signal);
|
|
798
|
+
ledger.charge("patternBytes", cache.literal.patternBytes, signal);
|
|
799
|
+
ledger.charge("states", cache.literal.states, signal);
|
|
800
|
+
ledger.charge("allocationUnits", cache.literal.allocationUnits, signal);
|
|
821
801
|
}
|
|
822
802
|
const workPerByte = selected.kind === "grep" ? 2 : 3;
|
|
823
803
|
let estimatedWork = 3;
|
|
@@ -830,7 +810,7 @@ function tryExecuteLiteralSync(input, signal, fold) {
|
|
|
830
810
|
return void 0;
|
|
831
811
|
}
|
|
832
812
|
runYieldCheckpoint(signal);
|
|
833
|
-
const programs =
|
|
813
|
+
const programs = cache.literal.programs;
|
|
834
814
|
ledger.charge("allocationUnits", 3, signal);
|
|
835
815
|
const directMatches = new Array(rows.length);
|
|
836
816
|
let matchCount = 0;
|
|
@@ -907,11 +887,11 @@ function tryExecuteLiteralSync(input, signal, fold) {
|
|
|
907
887
|
}
|
|
908
888
|
if (batchWork > 0) ledger.chargeWork(batchWork, signal);
|
|
909
889
|
else signal.throwIfAborted();
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
return
|
|
890
|
+
const reply = { id: input.id, results: emptyFloat64Results, directMatches };
|
|
891
|
+
trustedWorkerReplies.add(reply);
|
|
892
|
+
return reply;
|
|
913
893
|
}
|
|
914
|
-
function tryExecuteSync(input, signal) {
|
|
894
|
+
function tryExecuteSync(input, signal, cache) {
|
|
915
895
|
const { descriptor: selected, ledger } = input;
|
|
916
896
|
const foldOrPromise = insensitive(selected, ledger, signal);
|
|
917
897
|
if (typeof foldOrPromise !== "boolean") return void 0;
|
|
@@ -931,20 +911,20 @@ function tryExecuteSync(input, signal) {
|
|
|
931
911
|
}
|
|
932
912
|
}
|
|
933
913
|
}
|
|
934
|
-
if (!literal) return tryExecuteEreSync(input, signal, foldOrPromise);
|
|
935
|
-
return tryExecuteLiteralSync(input, signal, foldOrPromise);
|
|
914
|
+
if (!literal) return tryExecuteEreSync(input, signal, foldOrPromise, cache);
|
|
915
|
+
return tryExecuteLiteralSync(input, signal, foldOrPromise, cache);
|
|
936
916
|
}
|
|
937
|
-
async function executeLiteral(input, signal, fold) {
|
|
917
|
+
async function executeLiteral(input, signal, fold, cache) {
|
|
938
918
|
const { descriptor: selected, rows, ledger } = input;
|
|
939
919
|
const pattern0 = selected.patterns.length === 1 && selected.patterns[0].length <= 128 ? selected.patterns[0] : void 0;
|
|
940
920
|
const nullData = selected.kind === "rg" && selected.nullData;
|
|
941
921
|
let programs;
|
|
942
|
-
if (pattern0 !== void 0 &&
|
|
943
|
-
ledger.charge("work",
|
|
944
|
-
ledger.charge("patternBytes",
|
|
945
|
-
ledger.charge("states",
|
|
946
|
-
ledger.charge("allocationUnits",
|
|
947
|
-
programs =
|
|
922
|
+
if (pattern0 !== void 0 && cache.literal?.kind === selected.kind && cache.literal.fold === fold && cache.literal.nullData === nullData && cache.literal.pattern0 === pattern0 && ledger.workAllowanceUntilCheckpoint(signal) >= cache.literal.work) {
|
|
923
|
+
ledger.charge("work", cache.literal.work, signal);
|
|
924
|
+
ledger.charge("patternBytes", cache.literal.patternBytes, signal);
|
|
925
|
+
ledger.charge("states", cache.literal.states, signal);
|
|
926
|
+
ledger.charge("allocationUnits", cache.literal.allocationUnits, signal);
|
|
927
|
+
programs = cache.literal.programs;
|
|
948
928
|
} else {
|
|
949
929
|
const snapBefore = ledger.usage;
|
|
950
930
|
const compiled = [];
|
|
@@ -958,7 +938,7 @@ async function executeLiteral(input, signal, fold) {
|
|
|
958
938
|
programs = compiled;
|
|
959
939
|
if (pattern0 !== void 0) {
|
|
960
940
|
const snapAfter = ledger.usage;
|
|
961
|
-
|
|
941
|
+
cache.literal = {
|
|
962
942
|
kind: selected.kind,
|
|
963
943
|
fold,
|
|
964
944
|
nullData,
|
|
@@ -1043,7 +1023,7 @@ async function insensitiveAsync(selected, ledger, signal) {
|
|
|
1043
1023
|
}
|
|
1044
1024
|
return true;
|
|
1045
1025
|
}
|
|
1046
|
-
async function execute(input, signal) {
|
|
1026
|
+
async function execute(input, signal, cache) {
|
|
1047
1027
|
const { descriptor: selected, rows, ledger } = input;
|
|
1048
1028
|
const foldOrPromise = insensitive(selected, ledger, signal);
|
|
1049
1029
|
const fold = typeof foldOrPromise === "boolean" ? foldOrPromise : await foldOrPromise;
|
|
@@ -1063,7 +1043,7 @@ async function execute(input, signal) {
|
|
|
1063
1043
|
}
|
|
1064
1044
|
}
|
|
1065
1045
|
}
|
|
1066
|
-
if (literal) return executeLiteral(input, signal, fold);
|
|
1046
|
+
if (literal) return executeLiteral(input, signal, fold, cache);
|
|
1067
1047
|
const ereKey = ereCacheKeyFor(selected, fold);
|
|
1068
1048
|
const snapBeforeEre = ledger.usage;
|
|
1069
1049
|
const programs = [];
|
|
@@ -1096,8 +1076,13 @@ async function execute(input, signal) {
|
|
|
1096
1076
|
const buf = hasRange ? rWithRange.chunk : row.bytes;
|
|
1097
1077
|
const rStart = hasRange ? rWithRange.start : 0;
|
|
1098
1078
|
const rEnd = hasRange ? rWithRange.searchEnd : buf.length;
|
|
1099
|
-
let ascii =
|
|
1100
|
-
|
|
1079
|
+
let ascii = rEnd - rStart <= 16384;
|
|
1080
|
+
if (ascii) {
|
|
1081
|
+
ledger.chargeWork(rEnd - rStart + 1, signal);
|
|
1082
|
+
const pending = ledger.checkpoint(signal);
|
|
1083
|
+
if (pending) await pending;
|
|
1084
|
+
}
|
|
1085
|
+
for (let i = rStart; ascii && i < rEnd; i++) {
|
|
1101
1086
|
const b = buf[i];
|
|
1102
1087
|
if (b === 0 || b >= 128) {
|
|
1103
1088
|
ascii = false;
|
|
@@ -1162,7 +1147,7 @@ async function execute(input, signal) {
|
|
|
1162
1147
|
for (const prog of programs) {
|
|
1163
1148
|
if (canFastSyncEreProgram(prog)) await warmEreProgram(prog);
|
|
1164
1149
|
}
|
|
1165
|
-
|
|
1150
|
+
cache.ere = {
|
|
1166
1151
|
key: ereKey,
|
|
1167
1152
|
kind: selected.kind,
|
|
1168
1153
|
fold,
|
|
@@ -1190,6 +1175,7 @@ var CooperativeWorker = class {
|
|
|
1190
1175
|
}
|
|
1191
1176
|
limits;
|
|
1192
1177
|
release;
|
|
1178
|
+
cache = {};
|
|
1193
1179
|
controller;
|
|
1194
1180
|
listeners = /* @__PURE__ */ new Map();
|
|
1195
1181
|
singleMessageListener;
|
|
@@ -1289,7 +1275,7 @@ var CooperativeWorker = class {
|
|
|
1289
1275
|
if (isTrusted && owned && !("subject" in owned) && owned.descriptor.kind !== "glob") {
|
|
1290
1276
|
try {
|
|
1291
1277
|
signal.throwIfAborted();
|
|
1292
|
-
const syncReply = tryExecuteSync(owned, signal);
|
|
1278
|
+
const syncReply = tryExecuteSync(owned, signal, this.cache);
|
|
1293
1279
|
if (syncReply !== void 0) {
|
|
1294
1280
|
owned = void 0;
|
|
1295
1281
|
if (!this.closing) this.emit(syncReply);
|
|
@@ -1322,7 +1308,7 @@ var CooperativeWorker = class {
|
|
|
1322
1308
|
let reply;
|
|
1323
1309
|
try {
|
|
1324
1310
|
signal.throwIfAborted();
|
|
1325
|
-
reply = owned ? "subject" in owned ? await executeExpr(owned, signal) : owned.descriptor.kind === "glob" ? await executeBoundedGlobs(owned, signal) : await execute(owned, signal) : { id, error: failure };
|
|
1311
|
+
reply = owned ? "subject" in owned ? await executeExpr(owned, signal) : owned.descriptor.kind === "glob" ? await executeBoundedGlobs(owned, signal) : await execute(owned, signal, this.cache) : { id, error: failure };
|
|
1326
1312
|
if (owned && !("subject" in owned) && !("error" in reply)) {
|
|
1327
1313
|
trustedWorkerReplies.add(reply);
|
|
1328
1314
|
}
|
|
@@ -1349,6 +1335,8 @@ var CooperativeWorker = class {
|
|
|
1349
1335
|
terminate() {
|
|
1350
1336
|
if (!this.closing) {
|
|
1351
1337
|
this.closing = Promise.allSettled([...this.tasks]).then(() => {
|
|
1338
|
+
this.cache = {};
|
|
1339
|
+
this.singleMessageListener = void 0;
|
|
1352
1340
|
this.listeners.clear();
|
|
1353
1341
|
this.tasks.clear();
|
|
1354
1342
|
this.release();
|
|
@@ -4,7 +4,6 @@ import {
|
|
|
4
4
|
inProcessRegexWorkers,
|
|
5
5
|
inputBytes,
|
|
6
6
|
policy,
|
|
7
|
-
reusableTrustedRequest,
|
|
8
7
|
trustedInputRows,
|
|
9
8
|
trustedWorkerReplies,
|
|
10
9
|
trustedWorkerRequests,
|
|
@@ -13,7 +12,7 @@ import {
|
|
|
13
12
|
validateExprInput,
|
|
14
13
|
validateExprReply,
|
|
15
14
|
validateReply
|
|
16
|
-
} from "../../safe-bash/command-chunks/chunk-
|
|
15
|
+
} from "../../safe-bash/command-chunks/chunk-6B7WQIKB.js";
|
|
17
16
|
import {
|
|
18
17
|
init_buffer
|
|
19
18
|
} from "../../safe-bash/command-chunks/chunk-HX3SHTCE.js";
|
|
@@ -161,7 +160,7 @@ async function withRegexSessionSlow(context, executor, execute) {
|
|
|
161
160
|
if (hasCleanupFailure) throw cleanupError;
|
|
162
161
|
return result;
|
|
163
162
|
}
|
|
164
|
-
var Slot = class
|
|
163
|
+
var Slot = class {
|
|
165
164
|
constructor(owner) {
|
|
166
165
|
this.owner = owner;
|
|
167
166
|
this.worker = owner.provider.createWorker(owner.options);
|
|
@@ -184,7 +183,6 @@ var Slot = class _Slot {
|
|
|
184
183
|
idleTimer;
|
|
185
184
|
receiver;
|
|
186
185
|
failure;
|
|
187
|
-
static syncResultBox = { sync: true, value: void 0 };
|
|
188
186
|
syncSettled = false;
|
|
189
187
|
syncRejected = false;
|
|
190
188
|
syncValue;
|
|
@@ -289,8 +287,7 @@ var Slot = class _Slot {
|
|
|
289
287
|
const val = this.syncValue;
|
|
290
288
|
this.syncValue = void 0;
|
|
291
289
|
if (this.syncRejected) return { sync: false, promise: Promise.reject(val) };
|
|
292
|
-
|
|
293
|
-
return _Slot.syncResultBox;
|
|
290
|
+
return { sync: true, value: val };
|
|
294
291
|
}
|
|
295
292
|
return this.awaitInProcessAsync(timeout, signal);
|
|
296
293
|
}
|
|
@@ -498,10 +495,9 @@ var RegexExecutor = class {
|
|
|
498
495
|
readySlot.busy = true;
|
|
499
496
|
let ex;
|
|
500
497
|
if (readySlot.inProcess) {
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
ex = readySlot.postInProcessSync(reusableTrustedRequest, this.options.requestTimeoutMs, signal);
|
|
498
|
+
const request = { id, descriptor, rows };
|
|
499
|
+
trustedWorkerRequests.add(request);
|
|
500
|
+
ex = readySlot.postInProcessSync(request, this.options.requestTimeoutMs, signal);
|
|
505
501
|
} else {
|
|
506
502
|
ex = this.exchangeOutOfProcessSyncOrAsync(readySlot, id, descriptor, rows, session._ensureAsyncState());
|
|
507
503
|
}
|