just-bash 2.12.3 → 2.12.5
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/dist/bin/chunks/awk2-4MK3F3NZ.js +2 -0
- package/dist/bin/chunks/{chmod-4O2C4V42.js → chmod-N5CQATDW.js} +1 -1
- package/dist/bin/chunks/chunk-2HDH5VPF.js +12 -0
- package/dist/bin/chunks/chunk-5ATRLST6.js +100 -0
- package/dist/bin/chunks/{chunk-3NVWSLHI.js → chunk-6W7JTG6A.js} +99 -99
- package/dist/bin/chunks/chunk-7ADG3DNO.js +8 -0
- package/dist/bin/chunks/chunk-DERQIX2O.js +36 -0
- package/dist/bin/{shell/chunks/chunk-7SWOLTCR.js → chunks/chunk-EMSJEY2U.js} +1 -1
- package/dist/bin/chunks/{chunk-2SIXTZCJ.js → chunk-EZS766DD.js} +4 -4
- package/dist/bin/chunks/chunk-LWKIHJ5L.js +13 -0
- package/dist/bin/chunks/chunk-MY5PY2PL.js +2 -0
- package/dist/bin/chunks/{chunk-OKL2SPHK.js → chunk-O5B6WWQQ.js} +39 -39
- package/dist/bin/chunks/chunk-OQV5J23L.js +7 -0
- package/dist/bin/chunks/chunk-Q5MYEU7X.js +5 -0
- package/dist/bin/chunks/chunk-QZNF3Y3J.js +2 -0
- package/dist/bin/chunks/chunk-R2LDP472.js +8 -0
- package/dist/bin/chunks/chunk-RDGXTKIB.js +21 -0
- package/dist/bin/chunks/chunk-RS2PRILS.js +10 -0
- package/dist/bin/chunks/chunk-STOAUD75.js +11 -0
- package/dist/bin/chunks/chunk-SXB55JOI.js +2 -0
- package/dist/bin/chunks/chunk-SYG3IW7P.js +2 -0
- package/dist/bin/chunks/chunk-SYL34GE7.js +21 -0
- package/dist/bin/chunks/chunk-UT6LUTWP.js +2 -0
- package/dist/bin/chunks/chunk-VIYJJTN2.js +14 -0
- package/dist/bin/chunks/chunk-W752QGNZ.js +6 -0
- package/dist/bin/chunks/{chunk-435ZOZCY.js → chunk-WWVVJW3F.js} +13 -13
- package/dist/bin/{shell/chunks/chunk-GA6KXSOC.js → chunks/chunk-YFPDB4PH.js} +1 -1
- package/dist/bin/chunks/chunk-YMMJLYIX.js +2 -0
- package/dist/bin/chunks/chunk-YTIURC67.js +2 -0
- package/dist/bin/chunks/chunk-YWZOGBFE.js +9 -0
- package/dist/bin/chunks/chunk-YX7OOTPO.js +9 -0
- package/dist/bin/chunks/chunk-ZRRNCS7N.js +2 -0
- package/dist/bin/chunks/chunk-ZSVBYEY4.js +6 -0
- package/dist/bin/chunks/curl-GIQ5S66Y.js +26 -0
- package/dist/bin/{shell/chunks/expansion-TCB3WZP5.js → chunks/expansion-JBCP2CHQ.js} +1 -1
- package/dist/bin/chunks/expr-VEFRBJT4.js +2 -0
- package/dist/bin/chunks/find-MTLF23HX.js +2 -0
- package/dist/bin/chunks/flag-coverage-NDF6MQAO.js +2 -0
- package/dist/bin/{shell/chunks/grep-F3GT2VPG.js → chunks/grep-OZJTRD4D.js} +1 -1
- package/dist/bin/chunks/jq-F7FJ46VM.js +2 -0
- package/dist/bin/chunks/ln-VAOSD4HK.js +2 -0
- package/dist/bin/chunks/mkdir-CH7JGW4N.js +2 -0
- package/dist/bin/chunks/python3-QBGIYRFR.js +17 -0
- package/dist/bin/{shell/chunks/readlink-YNOUXNUY.js → chunks/readlink-BD5VFOC5.js} +1 -1
- package/dist/bin/chunks/rm-GWYJO4W7.js +2 -0
- package/dist/bin/chunks/sed-ENUQOCBB.js +2 -0
- package/dist/bin/chunks/sleep-5T34UFNF.js +2 -0
- package/dist/bin/chunks/sqlite3-4SBQACEE.js +2 -0
- package/dist/bin/chunks/stat-XS2LXYS2.js +2 -0
- package/dist/bin/chunks/tar-3UIZ4IRM.js +2 -0
- package/dist/bin/chunks/time-GZSHCM77.js +2 -0
- package/dist/bin/chunks/timeout-7ECKKPNP.js +2 -0
- package/dist/bin/chunks/tr-LZF57GYP.js +2 -0
- package/dist/bin/chunks/worker.js +162 -31
- package/dist/bin/chunks/xan-5QTBTP4U.js +2 -0
- package/dist/bin/chunks/yq-O5RSLLA3.js +2 -0
- package/dist/bin/just-bash.js +281 -281
- package/dist/bin/shell/chunks/awk2-4MK3F3NZ.js +2 -0
- package/dist/bin/shell/chunks/{chmod-4O2C4V42.js → chmod-N5CQATDW.js} +1 -1
- package/dist/bin/shell/chunks/chunk-2HDH5VPF.js +12 -0
- package/dist/bin/shell/chunks/chunk-5ATRLST6.js +100 -0
- package/dist/bin/shell/chunks/{chunk-3NVWSLHI.js → chunk-6W7JTG6A.js} +99 -99
- package/dist/bin/shell/chunks/chunk-7ADG3DNO.js +8 -0
- package/dist/bin/shell/chunks/chunk-D64U2VGQ.js +2 -0
- package/dist/bin/shell/chunks/chunk-DERQIX2O.js +36 -0
- package/dist/bin/{chunks/chunk-7SWOLTCR.js → shell/chunks/chunk-EMSJEY2U.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-2SIXTZCJ.js → chunk-EZS766DD.js} +4 -4
- package/dist/bin/shell/chunks/chunk-LWKIHJ5L.js +13 -0
- package/dist/bin/shell/chunks/{chunk-OKL2SPHK.js → chunk-O5B6WWQQ.js} +39 -39
- package/dist/bin/shell/chunks/chunk-OQV5J23L.js +7 -0
- package/dist/bin/shell/chunks/chunk-Q5MYEU7X.js +5 -0
- package/dist/bin/shell/chunks/chunk-QZNF3Y3J.js +2 -0
- package/dist/bin/shell/chunks/chunk-R2LDP472.js +8 -0
- package/dist/bin/shell/chunks/chunk-RDGXTKIB.js +21 -0
- package/dist/bin/shell/chunks/chunk-RS2PRILS.js +10 -0
- package/dist/bin/shell/chunks/chunk-STOAUD75.js +11 -0
- package/dist/bin/shell/chunks/chunk-SXB55JOI.js +2 -0
- package/dist/bin/shell/chunks/chunk-SYG3IW7P.js +2 -0
- package/dist/bin/shell/chunks/chunk-SYL34GE7.js +21 -0
- package/dist/bin/shell/chunks/chunk-UT6LUTWP.js +2 -0
- package/dist/bin/shell/chunks/chunk-VIYJJTN2.js +14 -0
- package/dist/bin/shell/chunks/chunk-W752QGNZ.js +6 -0
- package/dist/bin/shell/chunks/{chunk-435ZOZCY.js → chunk-WWVVJW3F.js} +13 -13
- package/dist/bin/{chunks/chunk-GA6KXSOC.js → shell/chunks/chunk-YFPDB4PH.js} +1 -1
- package/dist/bin/shell/chunks/chunk-YMMJLYIX.js +2 -0
- package/dist/bin/shell/chunks/chunk-YTIURC67.js +2 -0
- package/dist/bin/shell/chunks/chunk-YWZOGBFE.js +9 -0
- package/dist/bin/shell/chunks/chunk-YX7OOTPO.js +9 -0
- package/dist/bin/shell/chunks/chunk-ZRRNCS7N.js +2 -0
- package/dist/bin/shell/chunks/chunk-ZSVBYEY4.js +6 -0
- package/dist/bin/shell/chunks/curl-GIQ5S66Y.js +26 -0
- package/dist/bin/{chunks/expansion-TCB3WZP5.js → shell/chunks/expansion-JBCP2CHQ.js} +1 -1
- package/dist/bin/shell/chunks/expr-VEFRBJT4.js +2 -0
- package/dist/bin/shell/chunks/find-MTLF23HX.js +2 -0
- package/dist/bin/shell/chunks/flag-coverage-NDF6MQAO.js +2 -0
- package/dist/bin/{chunks/grep-F3GT2VPG.js → shell/chunks/grep-OZJTRD4D.js} +1 -1
- package/dist/bin/shell/chunks/jq-F7FJ46VM.js +2 -0
- package/dist/bin/shell/chunks/ln-VAOSD4HK.js +2 -0
- package/dist/bin/shell/chunks/mkdir-CH7JGW4N.js +2 -0
- package/dist/bin/shell/chunks/python3-XN7O5X3A.js +17 -0
- package/dist/bin/{chunks/readlink-YNOUXNUY.js → shell/chunks/readlink-BD5VFOC5.js} +1 -1
- package/dist/bin/shell/chunks/rm-GWYJO4W7.js +2 -0
- package/dist/bin/shell/chunks/sed-ENUQOCBB.js +2 -0
- package/dist/bin/shell/chunks/sleep-5T34UFNF.js +2 -0
- package/dist/bin/shell/chunks/sqlite3-4SBQACEE.js +2 -0
- package/dist/bin/shell/chunks/stat-XS2LXYS2.js +2 -0
- package/dist/bin/shell/chunks/tar-3UIZ4IRM.js +2 -0
- package/dist/bin/shell/chunks/time-GZSHCM77.js +2 -0
- package/dist/bin/shell/chunks/timeout-7ECKKPNP.js +2 -0
- package/dist/bin/shell/chunks/tr-LZF57GYP.js +2 -0
- package/dist/bin/shell/chunks/xan-5QTBTP4U.js +2 -0
- package/dist/bin/shell/chunks/yq-O5RSLLA3.js +2 -0
- package/dist/bin/shell/shell.js +241 -241
- package/dist/bundle/browser.js +718 -721
- package/dist/bundle/chunks/awk2-ID6QVUYU.js +1 -0
- package/dist/bundle/chunks/{chmod-MIKE3OIT.js → chmod-SYMGL4JA.js} +1 -1
- package/dist/bundle/chunks/chunk-2OZNLYX4.js +9 -0
- package/dist/bundle/chunks/{chunk-C6ZZC5FL.js → chunk-3J4BCKUH.js} +99 -99
- package/dist/bundle/chunks/chunk-3ZBKQKTX.js +11 -0
- package/dist/bundle/chunks/chunk-3ZUFRYJ4.js +1 -0
- package/dist/bundle/chunks/chunk-4GTNDTRF.js +7 -0
- package/dist/bundle/chunks/chunk-5QVNJEHU.js +8 -0
- package/dist/bundle/chunks/chunk-64CW2LGZ.js +6 -0
- package/dist/bundle/chunks/chunk-AYQ5FKKK.js +20 -0
- package/dist/bundle/chunks/chunk-C764MECG.js +35 -0
- package/dist/bundle/chunks/{chunk-XULIVM35.js → chunk-CBAJ47B3.js} +1 -1
- package/dist/bundle/chunks/chunk-CCNMISUL.js +1 -0
- package/dist/bundle/chunks/chunk-D2FZX7A2.js +10 -0
- package/dist/bundle/chunks/chunk-EX62JIX3.js +13 -0
- package/dist/bundle/chunks/chunk-FD7SFJNJ.js +4 -0
- package/dist/bundle/chunks/chunk-FGALERPA.js +8 -0
- package/dist/bundle/chunks/chunk-HJWBQKYG.js +5 -0
- package/dist/bundle/chunks/chunk-HOFSUCIB.js +99 -0
- package/dist/bundle/chunks/chunk-IP7G3BNA.js +7 -0
- package/dist/bundle/chunks/chunk-J642UCRS.js +1 -0
- package/dist/bundle/chunks/chunk-L75XCEQX.js +1 -0
- package/dist/bundle/chunks/chunk-QI4EPYAT.js +5 -0
- package/dist/bundle/chunks/chunk-R5XRHEZH.js +12 -0
- package/dist/bundle/chunks/chunk-RH6GWZAJ.js +1 -0
- package/dist/bundle/chunks/{chunk-U7QI5ZS5.js → chunk-RVT3MU3A.js} +4 -4
- package/dist/bundle/chunks/chunk-SJ5LXPUH.js +1 -0
- package/dist/bundle/chunks/{chunk-4VCAQZKQ.js → chunk-TRD56HID.js} +39 -39
- package/dist/bundle/chunks/{chunk-5CJQNRNJ.js → chunk-TVHAURH5.js} +13 -13
- package/dist/bundle/chunks/chunk-X2AJGDEF.js +1 -0
- package/dist/bundle/chunks/chunk-XHM67O4N.js +1 -0
- package/dist/bundle/chunks/chunk-XXZ46GOX.js +20 -0
- package/dist/bundle/chunks/{chunk-CYTBPLPE.js → chunk-YS3AZT3J.js} +1 -1
- package/dist/bundle/chunks/curl-743M564K.js +25 -0
- package/dist/bundle/chunks/{expansion-HJ6B4DDG.js → expansion-XG7G47TX.js} +1 -1
- package/dist/bundle/chunks/expr-74QHYJL5.js +1 -0
- package/dist/bundle/chunks/find-DOIVMX6X.js +1 -0
- package/dist/bundle/chunks/flag-coverage-4M54QHNZ.js +1 -0
- package/dist/bundle/chunks/{grep-LXKUQUAE.js → grep-3AIAIJVR.js} +1 -1
- package/dist/bundle/chunks/jq-5FRYP6YP.js +1 -0
- package/dist/bundle/chunks/ln-UJ6YJVBK.js +1 -0
- package/dist/bundle/chunks/mkdir-F6XHPXZC.js +1 -0
- package/dist/bundle/chunks/python3-WANWDR22.js +16 -0
- package/dist/bundle/chunks/{readlink-IEQO24KU.js → readlink-MI4GCHJF.js} +1 -1
- package/dist/bundle/chunks/rm-FYNVTQIU.js +1 -0
- package/dist/bundle/chunks/sed-TS7M7I25.js +1 -0
- package/dist/bundle/chunks/sleep-RRZXXEW2.js +1 -0
- package/dist/bundle/chunks/sqlite3-IH5QMEIK.js +1 -0
- package/dist/bundle/chunks/stat-BT5A227F.js +1 -0
- package/dist/bundle/chunks/tar-JCULQ5J2.js +1 -0
- package/dist/bundle/chunks/time-XL42Z4U5.js +1 -0
- package/dist/bundle/chunks/timeout-DNGO7OHT.js +1 -0
- package/dist/bundle/chunks/tr-GVTWMRZB.js +1 -0
- package/dist/bundle/chunks/worker.js +162 -31
- package/dist/bundle/chunks/xan-LAW2EMOM.js +1 -0
- package/dist/bundle/chunks/yq-MFJEXB7R.js +1 -0
- package/dist/bundle/index.cjs +942 -945
- package/dist/bundle/index.js +274 -274
- package/dist/commands/awk/interpreter/context.d.ts +2 -0
- package/dist/commands/awk/interpreter/interpreter.d.ts +2 -0
- package/dist/commands/duration.d.ts +5 -0
- package/dist/commands/format-mode.d.ts +4 -0
- package/dist/commands/query-engine/evaluator.d.ts +3 -0
- package/dist/commands/sed/types.d.ts +0 -4
- package/dist/commands/tar/archive.d.ts +18 -4
- package/dist/fs/in-memory-fs/in-memory-fs.d.ts +0 -3
- package/dist/fs/mountable-fs/mountable-fs.d.ts +0 -4
- package/dist/fs/overlay-fs/overlay-fs.d.ts +6 -7
- package/dist/fs/path-utils.d.ts +46 -0
- package/dist/fs/read-write-fs/read-write-fs.d.ts +0 -4
- package/dist/fs/real-fs-utils.d.ts +17 -11
- package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
- package/dist/interpreter/interpreter.d.ts +8 -0
- package/dist/interpreter/types.d.ts +5 -0
- package/dist/timers.d.ts +2 -14
- package/dist/types.d.ts +6 -0
- package/package.json +34 -33
- package/vendor/cpython-emscripten/python.wasm +0 -0
- package/dist/bin/chunks/awk2-ZE5HJBNV.js +0 -2
- package/dist/bin/chunks/chunk-253LRF5J.js +0 -11
- package/dist/bin/chunks/chunk-2FFXXW3F.js +0 -14
- package/dist/bin/chunks/chunk-4E3LY6YK.js +0 -10
- package/dist/bin/chunks/chunk-4FNW6LFM.js +0 -5
- package/dist/bin/chunks/chunk-4PZYIYYG.js +0 -36
- package/dist/bin/chunks/chunk-5VFN7VVJ.js +0 -9
- package/dist/bin/chunks/chunk-6L4K3UGO.js +0 -100
- package/dist/bin/chunks/chunk-D2GFNFUN.js +0 -7
- package/dist/bin/chunks/chunk-DREQRXNN.js +0 -12
- package/dist/bin/chunks/chunk-EPIOK4SY.js +0 -6
- package/dist/bin/chunks/chunk-GIFF636B.js +0 -2
- package/dist/bin/chunks/chunk-IYZRLSTQ.js +0 -2
- package/dist/bin/chunks/chunk-JJHAWOIB.js +0 -2
- package/dist/bin/chunks/chunk-JNPUO56K.js +0 -10
- package/dist/bin/chunks/chunk-KPWFKFSD.js +0 -21
- package/dist/bin/chunks/chunk-KWLLB7S3.js +0 -7
- package/dist/bin/chunks/chunk-RYXW3SZQ.js +0 -13
- package/dist/bin/chunks/chunk-VZKEP45B.js +0 -21
- package/dist/bin/chunks/chunk-XAL6VWGA.js +0 -9
- package/dist/bin/chunks/chunk-YYQ22ZRL.js +0 -8
- package/dist/bin/chunks/curl-RWQO3SBN.js +0 -26
- package/dist/bin/chunks/expr-MLHUWFYI.js +0 -2
- package/dist/bin/chunks/find-4YAO7JQS.js +0 -2
- package/dist/bin/chunks/flag-coverage-23ZUDENJ.js +0 -2
- package/dist/bin/chunks/jq-CXSPO2J5.js +0 -2
- package/dist/bin/chunks/ln-5TCJXDGY.js +0 -2
- package/dist/bin/chunks/mkdir-6OKMS3KO.js +0 -2
- package/dist/bin/chunks/python3-74B25WCY.js +0 -17
- package/dist/bin/chunks/rm-5QIBTLJG.js +0 -2
- package/dist/bin/chunks/sed-DNLJZZXZ.js +0 -2
- package/dist/bin/chunks/sleep-GUJH2AMQ.js +0 -2
- package/dist/bin/chunks/sqlite3-57UI7HYL.js +0 -2
- package/dist/bin/chunks/stat-XH7E4E2C.js +0 -2
- package/dist/bin/chunks/tar-VIYVHMER.js +0 -2
- package/dist/bin/chunks/time-FAWHHOMA.js +0 -2
- package/dist/bin/chunks/timeout-4O4YYRTS.js +0 -2
- package/dist/bin/chunks/tr-4V5A3V2C.js +0 -2
- package/dist/bin/chunks/xan-7NIVZ3HP.js +0 -2
- package/dist/bin/chunks/yq-L5ZSGLLO.js +0 -2
- package/dist/bin/shell/chunks/awk2-ZE5HJBNV.js +0 -2
- package/dist/bin/shell/chunks/chunk-253LRF5J.js +0 -11
- package/dist/bin/shell/chunks/chunk-2FFXXW3F.js +0 -14
- package/dist/bin/shell/chunks/chunk-4E3LY6YK.js +0 -10
- package/dist/bin/shell/chunks/chunk-4FNW6LFM.js +0 -5
- package/dist/bin/shell/chunks/chunk-4PZYIYYG.js +0 -36
- package/dist/bin/shell/chunks/chunk-5VFN7VVJ.js +0 -9
- package/dist/bin/shell/chunks/chunk-6L4K3UGO.js +0 -100
- package/dist/bin/shell/chunks/chunk-D2GFNFUN.js +0 -7
- package/dist/bin/shell/chunks/chunk-DREQRXNN.js +0 -12
- package/dist/bin/shell/chunks/chunk-EPIOK4SY.js +0 -6
- package/dist/bin/shell/chunks/chunk-GIFF636B.js +0 -2
- package/dist/bin/shell/chunks/chunk-IYZRLSTQ.js +0 -2
- package/dist/bin/shell/chunks/chunk-JJHAWOIB.js +0 -2
- package/dist/bin/shell/chunks/chunk-JNPUO56K.js +0 -10
- package/dist/bin/shell/chunks/chunk-KPWFKFSD.js +0 -21
- package/dist/bin/shell/chunks/chunk-KWLLB7S3.js +0 -7
- package/dist/bin/shell/chunks/chunk-RYXW3SZQ.js +0 -13
- package/dist/bin/shell/chunks/chunk-VZKEP45B.js +0 -21
- package/dist/bin/shell/chunks/chunk-XAL6VWGA.js +0 -9
- package/dist/bin/shell/chunks/chunk-YYQ22ZRL.js +0 -8
- package/dist/bin/shell/chunks/curl-RWQO3SBN.js +0 -26
- package/dist/bin/shell/chunks/expr-MLHUWFYI.js +0 -2
- package/dist/bin/shell/chunks/find-4YAO7JQS.js +0 -2
- package/dist/bin/shell/chunks/flag-coverage-23ZUDENJ.js +0 -2
- package/dist/bin/shell/chunks/jq-CXSPO2J5.js +0 -2
- package/dist/bin/shell/chunks/ln-5TCJXDGY.js +0 -2
- package/dist/bin/shell/chunks/mkdir-6OKMS3KO.js +0 -2
- package/dist/bin/shell/chunks/python3-74B25WCY.js +0 -17
- package/dist/bin/shell/chunks/rm-5QIBTLJG.js +0 -2
- package/dist/bin/shell/chunks/sed-DNLJZZXZ.js +0 -2
- package/dist/bin/shell/chunks/sleep-GUJH2AMQ.js +0 -2
- package/dist/bin/shell/chunks/sqlite3-57UI7HYL.js +0 -2
- package/dist/bin/shell/chunks/stat-XH7E4E2C.js +0 -2
- package/dist/bin/shell/chunks/tar-VIYVHMER.js +0 -2
- package/dist/bin/shell/chunks/time-FAWHHOMA.js +0 -2
- package/dist/bin/shell/chunks/timeout-4O4YYRTS.js +0 -2
- package/dist/bin/shell/chunks/tr-4V5A3V2C.js +0 -2
- package/dist/bin/shell/chunks/xan-7NIVZ3HP.js +0 -2
- package/dist/bin/shell/chunks/yq-L5ZSGLLO.js +0 -2
- package/dist/bundle/chunks/awk2-T6LHPVZE.js +0 -1
- package/dist/bundle/chunks/chunk-27LMNKBP.js +0 -7
- package/dist/bundle/chunks/chunk-5BFLZVGH.js +0 -20
- package/dist/bundle/chunks/chunk-7BQDVPII.js +0 -9
- package/dist/bundle/chunks/chunk-7KHLIOOW.js +0 -4
- package/dist/bundle/chunks/chunk-AOFQVUAD.js +0 -99
- package/dist/bundle/chunks/chunk-BAAVD5NO.js +0 -20
- package/dist/bundle/chunks/chunk-BEFDX7IY.js +0 -1
- package/dist/bundle/chunks/chunk-GZ2N3SXD.js +0 -8
- package/dist/bundle/chunks/chunk-IJXFPKNC.js +0 -1
- package/dist/bundle/chunks/chunk-IKZ5LEGB.js +0 -6
- package/dist/bundle/chunks/chunk-KPFCTJEX.js +0 -12
- package/dist/bundle/chunks/chunk-LN5KAJOV.js +0 -5
- package/dist/bundle/chunks/chunk-NBAARP4B.js +0 -1
- package/dist/bundle/chunks/chunk-OFJTSXN6.js +0 -8
- package/dist/bundle/chunks/chunk-RHOPHAL6.js +0 -35
- package/dist/bundle/chunks/chunk-SL4FN3A5.js +0 -9
- package/dist/bundle/chunks/chunk-UJIR5V54.js +0 -11
- package/dist/bundle/chunks/chunk-XZ3MZS57.js +0 -6
- package/dist/bundle/chunks/chunk-YCABLDKV.js +0 -10
- package/dist/bundle/chunks/chunk-YIY2RKBW.js +0 -13
- package/dist/bundle/chunks/curl-6L7YZUIH.js +0 -25
- package/dist/bundle/chunks/expr-3572LAOT.js +0 -1
- package/dist/bundle/chunks/find-DQFMWHAC.js +0 -1
- package/dist/bundle/chunks/flag-coverage-L3DCLG6V.js +0 -1
- package/dist/bundle/chunks/jq-MYSLFARY.js +0 -1
- package/dist/bundle/chunks/ln-YAIFIHCT.js +0 -1
- package/dist/bundle/chunks/mkdir-QWGXDWUS.js +0 -1
- package/dist/bundle/chunks/python3-6BKA3FYA.js +0 -16
- package/dist/bundle/chunks/rm-KPTLPKPH.js +0 -1
- package/dist/bundle/chunks/sed-3ZCNFRHI.js +0 -1
- package/dist/bundle/chunks/sleep-LB7FI6AB.js +0 -1
- package/dist/bundle/chunks/sqlite3-FVNA4KNF.js +0 -1
- package/dist/bundle/chunks/stat-74KBZFAX.js +0 -1
- package/dist/bundle/chunks/tar-E2DVQEWO.js +0 -1
- package/dist/bundle/chunks/time-AGNW2ZY6.js +0 -1
- package/dist/bundle/chunks/timeout-VN35D5O7.js +0 -1
- package/dist/bundle/chunks/tr-2N7Q3KKJ.js +0 -1
- package/dist/bundle/chunks/xan-VTO4FP3H.js +0 -1
- package/dist/bundle/chunks/yq-JRZFRYSK.js +0 -1
|
@@ -10,6 +10,19 @@ import { createRequire } from "node:module";
|
|
|
10
10
|
import { dirname } from "node:path";
|
|
11
11
|
import { parentPort, workerData } from "node:worker_threads";
|
|
12
12
|
|
|
13
|
+
// src/fs/sanitize-error.ts
|
|
14
|
+
function sanitizeErrorMessage(message) {
|
|
15
|
+
if (!message) return message;
|
|
16
|
+
let sanitized = message.replace(/\n\s+at\s.*/g, "");
|
|
17
|
+
sanitized = sanitized.replace(
|
|
18
|
+
/(?:\/(?:Users|home|private|var|opt|Library|System|usr|etc|tmp|nix|snap))\b[^\s'",)}\]:]*/g,
|
|
19
|
+
"<path>"
|
|
20
|
+
);
|
|
21
|
+
sanitized = sanitized.replace(/node:internal\/[^\s'",)}\]:]+/g, "<internal>");
|
|
22
|
+
sanitized = sanitized.replace(/[A-Z]:\\[^\s'",)}\]:]+/g, "<path>");
|
|
23
|
+
return sanitized;
|
|
24
|
+
}
|
|
25
|
+
|
|
13
26
|
// src/security/blocked-globals.ts
|
|
14
27
|
function getBlockedGlobals() {
|
|
15
28
|
const globals = [
|
|
@@ -177,7 +190,14 @@ function getBlockedGlobals() {
|
|
|
177
190
|
// in defense-in-depth-box.ts and worker-defense-in-depth.ts
|
|
178
191
|
// Note: process.connected is a boolean primitive, handled specially
|
|
179
192
|
// in defense-in-depth-box.ts and worker-defense-in-depth.ts
|
|
180
|
-
// Working directory manipulation
|
|
193
|
+
// Working directory access/manipulation
|
|
194
|
+
{
|
|
195
|
+
prop: "cwd",
|
|
196
|
+
target: process,
|
|
197
|
+
violationType: "process_chdir",
|
|
198
|
+
strategy: "throw",
|
|
199
|
+
reason: "process.cwd could disclose real host working directory path"
|
|
200
|
+
},
|
|
181
201
|
{
|
|
182
202
|
prop: "chdir",
|
|
183
203
|
target: process,
|
|
@@ -241,6 +261,13 @@ function getBlockedGlobals() {
|
|
|
241
261
|
reason: "FinalizationRegistry could be used to leak references outside sandbox"
|
|
242
262
|
},
|
|
243
263
|
// Introspection/interception vectors (freeze instead of throw)
|
|
264
|
+
// SECURITY RATIONALE: Reflect is frozen (not blocked) because:
|
|
265
|
+
// 1. Defense infrastructure uses Reflect.apply/get/set/construct internally
|
|
266
|
+
// 2. Frozen Reflect cannot be mutated but remains fully functional
|
|
267
|
+
// 3. Reflect.construct(Function, ['code']) IS safe because globalThis.Function
|
|
268
|
+
// is replaced with a blocking proxy — Reflect.construct receives the proxy
|
|
269
|
+
// 4. Security depends on NEVER leaking original Function/eval references.
|
|
270
|
+
// If an unpatched Function ref leaked, Reflect.construct would bypass defense.
|
|
244
271
|
{
|
|
245
272
|
prop: "Reflect",
|
|
246
273
|
target: globalThis,
|
|
@@ -697,6 +724,64 @@ var WorkerDefenseInDepth = class {
|
|
|
697
724
|
} finally {
|
|
698
725
|
self.inTrap = false;
|
|
699
726
|
}
|
|
727
|
+
},
|
|
728
|
+
deleteProperty(target, prop) {
|
|
729
|
+
if (self.inTrap) {
|
|
730
|
+
return Reflect.deleteProperty(target, prop);
|
|
731
|
+
}
|
|
732
|
+
self.inTrap = true;
|
|
733
|
+
try {
|
|
734
|
+
const fullPath = `${path}.${String(prop)}`;
|
|
735
|
+
const message = `${fullPath} deletion is blocked in worker context`;
|
|
736
|
+
const violation = self.recordViolation(
|
|
737
|
+
violationType,
|
|
738
|
+
fullPath,
|
|
739
|
+
message
|
|
740
|
+
);
|
|
741
|
+
if (!auditMode) {
|
|
742
|
+
throw new WorkerSecurityViolationError(message, violation);
|
|
743
|
+
}
|
|
744
|
+
return Reflect.deleteProperty(target, prop);
|
|
745
|
+
} finally {
|
|
746
|
+
self.inTrap = false;
|
|
747
|
+
}
|
|
748
|
+
},
|
|
749
|
+
setPrototypeOf(target, proto) {
|
|
750
|
+
if (self.inTrap) {
|
|
751
|
+
return Reflect.setPrototypeOf(target, proto);
|
|
752
|
+
}
|
|
753
|
+
self.inTrap = true;
|
|
754
|
+
try {
|
|
755
|
+
const message = `${path} setPrototypeOf is blocked in worker context`;
|
|
756
|
+
const violation = self.recordViolation(violationType, path, message);
|
|
757
|
+
if (!auditMode) {
|
|
758
|
+
throw new WorkerSecurityViolationError(message, violation);
|
|
759
|
+
}
|
|
760
|
+
return Reflect.setPrototypeOf(target, proto);
|
|
761
|
+
} finally {
|
|
762
|
+
self.inTrap = false;
|
|
763
|
+
}
|
|
764
|
+
},
|
|
765
|
+
defineProperty(target, prop, descriptor) {
|
|
766
|
+
if (self.inTrap) {
|
|
767
|
+
return Reflect.defineProperty(target, prop, descriptor);
|
|
768
|
+
}
|
|
769
|
+
self.inTrap = true;
|
|
770
|
+
try {
|
|
771
|
+
const fullPath = `${path}.${String(prop)}`;
|
|
772
|
+
const message = `${fullPath} defineProperty is blocked in worker context`;
|
|
773
|
+
const violation = self.recordViolation(
|
|
774
|
+
violationType,
|
|
775
|
+
fullPath,
|
|
776
|
+
message
|
|
777
|
+
);
|
|
778
|
+
if (!auditMode) {
|
|
779
|
+
throw new WorkerSecurityViolationError(message, violation);
|
|
780
|
+
}
|
|
781
|
+
return Reflect.defineProperty(target, prop, descriptor);
|
|
782
|
+
} finally {
|
|
783
|
+
self.inTrap = false;
|
|
784
|
+
}
|
|
700
785
|
}
|
|
701
786
|
});
|
|
702
787
|
}
|
|
@@ -1253,9 +1338,23 @@ var WorkerDefenseInDepth = class {
|
|
|
1253
1338
|
}
|
|
1254
1339
|
};
|
|
1255
1340
|
|
|
1256
|
-
// src/
|
|
1257
|
-
|
|
1258
|
-
|
|
1341
|
+
// src/security/wasm-callback.ts
|
|
1342
|
+
function sanitizeUnknownError(error) {
|
|
1343
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1344
|
+
return sanitizeErrorMessage(message);
|
|
1345
|
+
}
|
|
1346
|
+
function wrapWasmCallback(component, phase, callback) {
|
|
1347
|
+
return (...args) => {
|
|
1348
|
+
try {
|
|
1349
|
+
return callback(...args);
|
|
1350
|
+
} catch (error) {
|
|
1351
|
+
const message = sanitizeUnknownError(error);
|
|
1352
|
+
throw new Error(`${component} ${phase} callback failed: ${message}`);
|
|
1353
|
+
}
|
|
1354
|
+
};
|
|
1355
|
+
}
|
|
1356
|
+
|
|
1357
|
+
// src/security/trusted-globals.ts
|
|
1259
1358
|
var _SharedArrayBuffer = globalThis.SharedArrayBuffer;
|
|
1260
1359
|
var _Atomics = globalThis.Atomics;
|
|
1261
1360
|
var _performanceNow = performance.now.bind(performance);
|
|
@@ -2413,9 +2512,8 @@ function createHTTPFS(backend, FS) {
|
|
|
2413
2512
|
});
|
|
2414
2513
|
lastResponse = encoder.encode(JSON.stringify(result));
|
|
2415
2514
|
} catch (e) {
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
);
|
|
2515
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2516
|
+
lastResponse = encoder.encode(JSON.stringify({ error: message }));
|
|
2419
2517
|
}
|
|
2420
2518
|
}
|
|
2421
2519
|
delete stream.hostContent;
|
|
@@ -2543,6 +2641,16 @@ sys.modules['jb_http'] = jb_http
|
|
|
2543
2641
|
`;
|
|
2544
2642
|
}
|
|
2545
2643
|
var cachedStdlibZip = new Uint8Array(readFileSync(stdlibZipPath));
|
|
2644
|
+
function postWorkerMessage(message) {
|
|
2645
|
+
try {
|
|
2646
|
+
parentPort?.postMessage(message);
|
|
2647
|
+
} catch (error) {
|
|
2648
|
+
console.debug(
|
|
2649
|
+
"[python3-worker] failed to post worker message:",
|
|
2650
|
+
sanitizeUnknownError(error)
|
|
2651
|
+
);
|
|
2652
|
+
}
|
|
2653
|
+
}
|
|
2546
2654
|
async function runPython(input) {
|
|
2547
2655
|
const backend = new SyncFsBackend(input.sharedBuffer);
|
|
2548
2656
|
const createPythonModule = require2(`${cpythonDir}/python.cjs`);
|
|
@@ -2551,17 +2659,20 @@ async function runPython(input) {
|
|
|
2551
2659
|
const pendingStderr = [];
|
|
2552
2660
|
let Module;
|
|
2553
2661
|
try {
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
preRun
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2662
|
+
const onPreRun = wrapWasmCallback(
|
|
2663
|
+
"python3-worker",
|
|
2664
|
+
"preRun",
|
|
2665
|
+
(mod) => {
|
|
2666
|
+
mod.FS.mkdirTree("/lib");
|
|
2667
|
+
mod.FS.writeFile("/lib/python313.zip", cachedStdlibZip);
|
|
2668
|
+
mod.ENV.PYTHONHOME = "/";
|
|
2669
|
+
mod.ENV.PYTHONPATH = "/lib/python313.zip";
|
|
2670
|
+
}
|
|
2671
|
+
);
|
|
2672
|
+
const onPrint = wrapWasmCallback(
|
|
2673
|
+
"python3-worker",
|
|
2674
|
+
"print",
|
|
2675
|
+
(text) => {
|
|
2565
2676
|
if (moduleReady) {
|
|
2566
2677
|
backend.writeStdout(`${text}
|
|
2567
2678
|
`);
|
|
@@ -2569,8 +2680,12 @@ async function runPython(input) {
|
|
|
2569
2680
|
pendingStdout.push(`${text}
|
|
2570
2681
|
`);
|
|
2571
2682
|
}
|
|
2572
|
-
}
|
|
2573
|
-
|
|
2683
|
+
}
|
|
2684
|
+
);
|
|
2685
|
+
const onPrintErr = wrapWasmCallback(
|
|
2686
|
+
"python3-worker",
|
|
2687
|
+
"printErr",
|
|
2688
|
+
(text) => {
|
|
2574
2689
|
if (typeof text === "string" && (text.includes("Could not find platform") || text.includes("LLVM Profile Error"))) {
|
|
2575
2690
|
return;
|
|
2576
2691
|
}
|
|
@@ -2582,11 +2697,18 @@ async function runPython(input) {
|
|
|
2582
2697
|
`);
|
|
2583
2698
|
}
|
|
2584
2699
|
}
|
|
2700
|
+
);
|
|
2701
|
+
Module = await createPythonModule({
|
|
2702
|
+
noInitialRun: true,
|
|
2703
|
+
preRun: [onPreRun],
|
|
2704
|
+
print: onPrint,
|
|
2705
|
+
printErr: onPrintErr
|
|
2585
2706
|
});
|
|
2586
2707
|
} catch (e) {
|
|
2708
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2587
2709
|
return {
|
|
2588
2710
|
success: false,
|
|
2589
|
-
error: `Failed to load CPython: ${
|
|
2711
|
+
error: `Failed to load CPython: ${message}`
|
|
2590
2712
|
};
|
|
2591
2713
|
}
|
|
2592
2714
|
activateDefense();
|
|
@@ -2598,9 +2720,10 @@ async function runPython(input) {
|
|
|
2598
2720
|
Module.FS.mkdir("/host");
|
|
2599
2721
|
Module.FS.mount(HOSTFS, { root: "/" }, "/host");
|
|
2600
2722
|
} catch (e) {
|
|
2723
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2601
2724
|
return {
|
|
2602
2725
|
success: false,
|
|
2603
|
-
error: `Failed to mount HOSTFS: ${
|
|
2726
|
+
error: `Failed to mount HOSTFS: ${message}`
|
|
2604
2727
|
};
|
|
2605
2728
|
}
|
|
2606
2729
|
const HTTPFS = createHTTPFS(backend, Module.FS);
|
|
@@ -2608,9 +2731,10 @@ async function runPython(input) {
|
|
|
2608
2731
|
Module.FS.mkdir("/_jb_http");
|
|
2609
2732
|
Module.FS.mount(HTTPFS, { root: "/" }, "/_jb_http");
|
|
2610
2733
|
} catch (e) {
|
|
2734
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2611
2735
|
return {
|
|
2612
2736
|
success: false,
|
|
2613
|
-
error: `Failed to mount HTTPFS: ${
|
|
2737
|
+
error: `Failed to mount HTTPFS: ${message}`
|
|
2614
2738
|
};
|
|
2615
2739
|
}
|
|
2616
2740
|
const setupCode = generateSetupCode(input);
|
|
@@ -2660,6 +2784,13 @@ function activateDefense() {
|
|
|
2660
2784
|
writable: true,
|
|
2661
2785
|
configurable: true
|
|
2662
2786
|
});
|
|
2787
|
+
const onViolation = wrapWasmCallback(
|
|
2788
|
+
"python3-worker",
|
|
2789
|
+
"onViolation",
|
|
2790
|
+
(v) => {
|
|
2791
|
+
postWorkerMessage({ type: "security-violation", violation: v });
|
|
2792
|
+
}
|
|
2793
|
+
);
|
|
2663
2794
|
defense = new WorkerDefenseInDepth({
|
|
2664
2795
|
excludeViolationTypes: [
|
|
2665
2796
|
// SharedArrayBuffer/Atomics: Used by sync-fs-backend.ts for synchronous
|
|
@@ -2670,26 +2801,26 @@ function activateDefense() {
|
|
|
2670
2801
|
// stub. Defense doesn't need to block it — it's already degraded.
|
|
2671
2802
|
"performance_timing"
|
|
2672
2803
|
],
|
|
2673
|
-
onViolation
|
|
2674
|
-
parentPort?.postMessage({ type: "security-violation", violation: v });
|
|
2675
|
-
}
|
|
2804
|
+
onViolation
|
|
2676
2805
|
});
|
|
2677
2806
|
}
|
|
2678
2807
|
process.on("uncaughtException", (e) => {
|
|
2679
|
-
|
|
2808
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2809
|
+
postWorkerMessage({
|
|
2680
2810
|
success: false,
|
|
2681
|
-
error: `Worker uncaught exception: ${
|
|
2811
|
+
error: `Worker uncaught exception: ${message}`
|
|
2682
2812
|
});
|
|
2683
2813
|
});
|
|
2684
2814
|
if (parentPort) {
|
|
2685
2815
|
if (workerData) {
|
|
2686
2816
|
runPython(workerData).then((result) => {
|
|
2687
2817
|
result.defenseStats = defense?.getStats();
|
|
2688
|
-
|
|
2818
|
+
postWorkerMessage(result);
|
|
2689
2819
|
}).catch((e) => {
|
|
2690
|
-
|
|
2820
|
+
const message = sanitizeUnknownError(e);
|
|
2821
|
+
postWorkerMessage({
|
|
2691
2822
|
success: false,
|
|
2692
|
-
error:
|
|
2823
|
+
error: message,
|
|
2693
2824
|
defenseStats: defense?.getStats()
|
|
2694
2825
|
});
|
|
2695
2826
|
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"./chunk-CBAJ47B3.js";import"./chunk-F55TLFGB.js";import"./chunk-SYMJJMQ4.js";import"./chunk-QI4EPYAT.js";import"./chunk-7MKBHGLS.js";import"./chunk-OJDRYQWQ.js";import"./chunk-L75XCEQX.js";import"./chunk-FD7SFJNJ.js";import"./chunk-YNYSPYQ5.js";import"./chunk-7L36YK2X.js";import"./chunk-GFQRA5P5.js";import"./chunk-NUFRM6SI.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as xanCommand};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"./chunk-3J4BCKUH.js";import"./chunk-SYMJJMQ4.js";import"./chunk-QI4EPYAT.js";import"./chunk-7MKBHGLS.js";import"./chunk-OJDRYQWQ.js";import"./chunk-L75XCEQX.js";import"./chunk-FD7SFJNJ.js";import"./chunk-YNYSPYQ5.js";import"./chunk-GFQRA5P5.js";import"./chunk-CCNMISUL.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as yqCommand};
|