@jerryan/just-bash 3.8.0 → 3.10.0
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/CHANGELOG.md +38 -0
- package/README.md +5 -15
- package/dist/AGENTS.md +2 -2
- package/dist/Bash.d.ts +2 -4
- package/dist/bin/chunks/builtin-manifest-ORBIZM7I.js +3 -0
- package/dist/bin/chunks/{chmod-GX5SYTRL.js → chmod-S4ARARR4.js} +1 -1
- package/dist/bin/chunks/chunk-3ASHUC7C.js +44 -0
- package/dist/bin/{shell/chunks/chunk-7WBCA2BB.js → chunks/chunk-3DWQCLNP.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-3ROYEBJI.js → chunks/chunk-4JPWP5WS.js} +1 -1
- package/dist/bin/chunks/{chunk-QFTZKD5O.js → chunk-6TUILMPB.js} +1 -1
- package/dist/bin/chunks/{chunk-DRPHNXG7.js → chunk-7LGT4LHQ.js} +1 -1
- package/dist/bin/chunks/{chunk-MBREBDZQ.js → chunk-AIWBN36Z.js} +1 -1
- package/dist/bin/chunks/chunk-AQKIHX3Q.js +3 -0
- package/dist/bin/chunks/chunk-E2O6S35K.js +10 -0
- package/dist/bin/chunks/chunk-E54Z6VIE.js +12 -0
- package/dist/bin/{shell/chunks/chunk-F2PYTUMR.js → chunks/chunk-F4ACJZIY.js} +7 -6
- package/dist/bin/{shell/chunks/chunk-MPFNZYEA.js → chunks/chunk-GKJD4ULC.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-QJWFCA7P.js → chunks/chunk-HARVZWUX.js} +1 -1
- package/dist/bin/chunks/chunk-IRCAXXH6.js +14 -0
- package/dist/bin/chunks/{chunk-T6OIISUC.js → chunk-K65FCSAT.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-MF3GVFLC.js → chunks/chunk-L345YZ6R.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-6FGMEZZP.js → chunks/chunk-MWQMHODV.js} +1 -1
- package/dist/bin/chunks/{chunk-BB5VTPMQ.js → chunk-NSI6LMDS.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-ABP4OLJV.js → chunks/chunk-OXEDIWNZ.js} +1 -1
- package/dist/bin/chunks/chunk-QKJAAJ7J.js +3 -0
- package/dist/bin/chunks/{chunk-KMYJMEON.js → chunk-R7THHH4J.js} +1 -1
- package/dist/bin/chunks/chunk-UBA7DOWE.js +3 -0
- package/dist/bin/chunks/{chunk-VPSBWWXM.js → chunk-UNCYBFWT.js} +7 -6
- package/dist/bin/chunks/chunk-VMVXACZ5.js +6 -0
- package/dist/bin/chunks/chunk-Z3TCELKN.js +12 -0
- package/dist/bin/chunks/{cp-YLP7ULVT.js → cp-WRBRHVVD.js} +1 -1
- package/dist/bin/chunks/{diff-JSJ56EOK.js → diff-YLVT27CZ.js} +1 -1
- package/dist/bin/{shell/chunks/du-DH76GZJ3.js → chunks/du-YNAJTGCR.js} +1 -1
- package/dist/bin/{shell/chunks/find-MHC4QV6H.js → chunks/find-T3JZPTUX.js} +1 -1
- package/dist/bin/chunks/{flag-coverage-2H5CPEM6.js → flag-coverage-LVKHEUTL.js} +1 -1
- package/dist/bin/chunks/{gzip-UQZL4R74.js → gzip-EXJSFNCU.js} +1 -1
- package/dist/bin/chunks/js-exec-PLUMFEX6.js +99 -0
- package/dist/bin/chunks/js-exec-worker.js +4995 -0
- package/dist/bin/chunks/{ls-5Z45FV4U.js → ls-LOCOWLZ3.js} +1 -1
- package/dist/bin/chunks/{mkdir-YJ3SOVRP.js → mkdir-VHLJ3E65.js} +1 -1
- package/dist/bin/chunks/{mv-EOOP2TO3.js → mv-NAMOL2HF.js} +1 -1
- package/dist/bin/chunks/python3-J5GXF27H.js +14 -0
- package/dist/bin/{shell/chunks/readlink-EJ3IKLWW.js → chunks/readlink-BF435HNQ.js} +1 -1
- package/dist/bin/chunks/{rg-WHVR3YDT.js → rg-XF5U7GS2.js} +1 -1
- package/dist/bin/{shell/chunks/rm-B4LVIG7A.js → chunks/rm-L4RHENMV.js} +1 -1
- package/dist/bin/{shell/chunks/rmdir-PRNISPBA.js → chunks/rmdir-W73C4GEA.js} +1 -1
- package/dist/bin/{shell/chunks/sleep-DVFE2GSF.js → chunks/sleep-MOJQBZMY.js} +1 -1
- package/dist/bin/{shell/chunks/split-HIFKSV2A.js → chunks/split-2VXPZJJ4.js} +1 -1
- package/dist/bin/chunks/{sqlite3-KNN6V2W6.js → sqlite3-3S5HIA5W.js} +1 -1
- package/dist/bin/chunks/{timeout-YGFHQJKX.js → timeout-RQOWSWYG.js} +1 -1
- package/dist/bin/chunks/{which-4TPGVSBZ.js → which-G7X54RZL.js} +1 -1
- package/dist/bin/just-bash.js +243 -242
- package/dist/bin/shell/chunks/builtin-manifest-ORBIZM7I.js +3 -0
- package/dist/bin/shell/chunks/{chmod-GX5SYTRL.js → chmod-S4ARARR4.js} +1 -1
- package/dist/bin/shell/chunks/chunk-3ASHUC7C.js +44 -0
- package/dist/bin/{chunks/chunk-7WBCA2BB.js → shell/chunks/chunk-3DWQCLNP.js} +1 -1
- package/dist/bin/{chunks/chunk-3ROYEBJI.js → shell/chunks/chunk-4JPWP5WS.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-QFTZKD5O.js → chunk-6TUILMPB.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-DRPHNXG7.js → chunk-7LGT4LHQ.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-MBREBDZQ.js → chunk-AIWBN36Z.js} +1 -1
- package/dist/bin/shell/chunks/chunk-AQKIHX3Q.js +3 -0
- package/dist/bin/shell/chunks/chunk-E2O6S35K.js +10 -0
- package/dist/bin/shell/chunks/chunk-E54Z6VIE.js +12 -0
- package/dist/bin/{chunks/chunk-F2PYTUMR.js → shell/chunks/chunk-F4ACJZIY.js} +7 -6
- package/dist/bin/{chunks/chunk-MPFNZYEA.js → shell/chunks/chunk-GKJD4ULC.js} +1 -1
- package/dist/bin/{chunks/chunk-QJWFCA7P.js → shell/chunks/chunk-HARVZWUX.js} +1 -1
- package/dist/bin/shell/chunks/chunk-IRCAXXH6.js +14 -0
- package/dist/bin/shell/chunks/{chunk-T6OIISUC.js → chunk-K65FCSAT.js} +1 -1
- package/dist/bin/{chunks/chunk-MF3GVFLC.js → shell/chunks/chunk-L345YZ6R.js} +1 -1
- package/dist/bin/{chunks/chunk-6FGMEZZP.js → shell/chunks/chunk-MWQMHODV.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-BB5VTPMQ.js → chunk-NSI6LMDS.js} +1 -1
- package/dist/bin/{chunks/chunk-ABP4OLJV.js → shell/chunks/chunk-OXEDIWNZ.js} +1 -1
- package/dist/bin/shell/chunks/chunk-QKJAAJ7J.js +3 -0
- package/dist/bin/shell/chunks/{chunk-KMYJMEON.js → chunk-R7THHH4J.js} +1 -1
- package/dist/bin/shell/chunks/chunk-UBA7DOWE.js +3 -0
- package/dist/bin/shell/chunks/{chunk-VPSBWWXM.js → chunk-UNCYBFWT.js} +7 -6
- package/dist/bin/shell/chunks/chunk-VMVXACZ5.js +6 -0
- package/dist/bin/shell/chunks/chunk-Z3TCELKN.js +12 -0
- package/dist/bin/shell/chunks/{cp-YLP7ULVT.js → cp-WRBRHVVD.js} +1 -1
- package/dist/bin/shell/chunks/{diff-JSJ56EOK.js → diff-YLVT27CZ.js} +1 -1
- package/dist/bin/{chunks/du-DH76GZJ3.js → shell/chunks/du-YNAJTGCR.js} +1 -1
- package/dist/bin/{chunks/find-MHC4QV6H.js → shell/chunks/find-T3JZPTUX.js} +1 -1
- package/dist/bin/shell/chunks/{flag-coverage-2H5CPEM6.js → flag-coverage-LVKHEUTL.js} +1 -1
- package/dist/bin/shell/chunks/{gzip-UQZL4R74.js → gzip-EXJSFNCU.js} +1 -1
- package/dist/bin/shell/chunks/js-exec-PLUMFEX6.js +99 -0
- package/dist/bin/shell/chunks/{ls-5Z45FV4U.js → ls-LOCOWLZ3.js} +1 -1
- package/dist/bin/shell/chunks/{mkdir-YJ3SOVRP.js → mkdir-VHLJ3E65.js} +1 -1
- package/dist/bin/shell/chunks/{mv-EOOP2TO3.js → mv-NAMOL2HF.js} +1 -1
- package/dist/bin/shell/chunks/python3-J5GXF27H.js +14 -0
- package/dist/bin/{chunks/readlink-EJ3IKLWW.js → shell/chunks/readlink-BF435HNQ.js} +1 -1
- package/dist/bin/shell/chunks/{rg-WHVR3YDT.js → rg-XF5U7GS2.js} +1 -1
- package/dist/bin/{chunks/rm-B4LVIG7A.js → shell/chunks/rm-L4RHENMV.js} +1 -1
- package/dist/bin/{chunks/rmdir-PRNISPBA.js → shell/chunks/rmdir-W73C4GEA.js} +1 -1
- package/dist/bin/{chunks/sleep-DVFE2GSF.js → shell/chunks/sleep-MOJQBZMY.js} +1 -1
- package/dist/bin/{chunks/split-HIFKSV2A.js → shell/chunks/split-2VXPZJJ4.js} +1 -1
- package/dist/bin/shell/chunks/{sqlite3-KNN6V2W6.js → sqlite3-3S5HIA5W.js} +1 -1
- package/dist/bin/shell/chunks/{timeout-YGFHQJKX.js → timeout-RQOWSWYG.js} +1 -1
- package/dist/bin/shell/chunks/{which-4TPGVSBZ.js → which-G7X54RZL.js} +1 -1
- package/dist/bin/shell/shell.js +305 -304
- package/dist/bundle/browser.js +637 -611
- package/dist/bundle/chunks/builtin-manifest-7MJJDZ2T.js +2 -0
- package/dist/bundle/chunks/{chmod-TEY5MD2W.js → chmod-KMFNCMRX.js} +1 -1
- package/dist/bundle/chunks/chunk-2A4OZBCS.js +43 -0
- package/dist/bundle/chunks/{chunk-SE23TEGG.js → chunk-4CDTAUYP.js} +1 -1
- package/dist/bundle/chunks/chunk-4OKRFRMS.js +13 -0
- package/dist/bundle/chunks/{chunk-ATGOUOX2.js → chunk-4WRO2G22.js} +1 -1
- package/dist/bundle/chunks/{chunk-45QZRGYF.js → chunk-5KOWUQOZ.js} +7 -6
- package/dist/bundle/chunks/{chunk-6HO6HX7V.js → chunk-5NUTFEEG.js} +1 -1
- package/dist/bundle/chunks/{chunk-N3A4JVFJ.js → chunk-6IA4DXG2.js} +1 -1
- package/dist/bundle/chunks/{chunk-WE7BJ7YU.js → chunk-6IFH67ZB.js} +1 -1
- package/dist/bundle/chunks/chunk-6L6OYVLY.js +2 -0
- package/dist/bundle/chunks/chunk-BMBITA6Y.js +2 -0
- package/dist/bundle/chunks/chunk-BS6EJR2R.js +11 -0
- package/dist/bundle/chunks/{chunk-S6DNKKUL.js → chunk-CM4T4GB4.js} +1 -1
- package/dist/bundle/chunks/{chunk-MWL2I5BV.js → chunk-FXAKF2QS.js} +1 -1
- package/dist/bundle/chunks/chunk-H4AFUSSQ.js +9 -0
- package/dist/bundle/chunks/{chunk-GNPLDVBD.js → chunk-MMXJJCAE.js} +1 -1
- package/dist/bundle/chunks/{chunk-6QAM55HM.js → chunk-NFODJFHN.js} +1 -1
- package/dist/bundle/chunks/{chunk-LRFR25IP.js → chunk-O5OYOY3C.js} +7 -6
- package/dist/bundle/chunks/{chunk-HCKTU6IR.js → chunk-PASYAXFP.js} +1 -1
- package/dist/bundle/chunks/chunk-PS2RJNZZ.js +2 -0
- package/dist/bundle/chunks/chunk-THDUQVY3.js +11 -0
- package/dist/bundle/chunks/{chunk-DMWNBCXJ.js → chunk-TLPMB3FO.js} +1 -1
- package/dist/bundle/chunks/{chunk-FSKXIFYT.js → chunk-Y6UHNLT5.js} +1 -1
- package/dist/bundle/chunks/{chunk-XV2V56NQ.js → chunk-YFFU74KY.js} +1 -1
- package/dist/bundle/chunks/chunk-ZIQS5QAW.js +5 -0
- package/dist/bundle/chunks/{cp-UR762VVT.js → cp-P2D2L6PC.js} +1 -1
- package/dist/bundle/chunks/{diff-VDB6RXHO.js → diff-Z3XOLW44.js} +1 -1
- package/dist/bundle/chunks/{du-EQKH3UNA.js → du-YBSJVBXP.js} +1 -1
- package/dist/bundle/chunks/{find-RLKBCGJR.js → find-IUWEB4XQ.js} +1 -1
- package/dist/bundle/chunks/{flag-coverage-UMQ3BWDP.js → flag-coverage-SZ4AUPRQ.js} +1 -1
- package/dist/bundle/chunks/{gzip-KC5ENBD2.js → gzip-VUJBDHZ5.js} +1 -1
- package/dist/bundle/chunks/js-exec-6RW7WZCG.js +98 -0
- package/dist/bundle/chunks/js-exec-worker.js +4995 -0
- package/dist/bundle/chunks/{ls-WH5S4PPL.js → ls-ECKG2XHZ.js} +1 -1
- package/dist/bundle/chunks/{mkdir-Z6MMWH3D.js → mkdir-YL7XGMD7.js} +1 -1
- package/dist/bundle/chunks/{mv-WE7DBLEK.js → mv-IF55A2UD.js} +1 -1
- package/dist/bundle/chunks/python3-XHTOW7VA.js +13 -0
- package/dist/bundle/chunks/{readlink-JSRKXLLQ.js → readlink-7XGQ3PL7.js} +1 -1
- package/dist/bundle/chunks/{rg-JKB7DR66.js → rg-E6H2HACA.js} +1 -1
- package/dist/bundle/chunks/{rm-IGPLE632.js → rm-CWLMERIO.js} +1 -1
- package/dist/bundle/chunks/{rmdir-3WTXMVKI.js → rmdir-WKKBLZ54.js} +1 -1
- package/dist/bundle/chunks/{sleep-PPRBTSVR.js → sleep-25QUPVDK.js} +1 -1
- package/dist/bundle/chunks/{split-HUKVGJTW.js → split-NEU2K2YN.js} +1 -1
- package/dist/bundle/chunks/{sqlite3-KB3MXTTM.js → sqlite3-KJ5NMKBM.js} +1 -1
- package/dist/bundle/chunks/{timeout-C6WDYPLV.js → timeout-37GM7IIL.js} +1 -1
- package/dist/bundle/chunks/{which-UWVKETYW.js → which-BP5YY5BR.js} +1 -1
- package/dist/bundle/index.cjs +1134 -2660
- package/dist/bundle/index.js +210 -209
- package/dist/commands/js-exec/js-exec-worker.d.ts +35 -0
- package/dist/commands/js-exec/js-exec.d.ts +14 -1
- package/dist/commands/which/which.d.ts +10 -0
- package/dist/custom-commands.d.ts +5 -0
- package/dist/fs/path-utils.d.ts +0 -4
- package/dist/fs/vfs-template.d.ts +6 -0
- package/dist/interpreter/interpreter.d.ts +1 -1
- package/dist/interpreter/types.d.ts +1 -1
- package/dist/limits.d.ts +2 -5
- package/dist/timers.d.ts +9 -0
- package/dist/types.d.ts +9 -4
- package/package.json +8 -8
- package/dist/bin/chunks/chunk-2NJJXU4K.js +0 -27
- package/dist/bin/chunks/chunk-6JUPBMCR.js +0 -13
- package/dist/bin/chunks/chunk-CN4JKMTR.js +0 -8
- package/dist/bin/chunks/chunk-HWK7KFGB.js +0 -3
- package/dist/bin/chunks/chunk-PPVF2N6C.js +0 -3
- package/dist/bin/chunks/chunk-RTN6X652.js +0 -11
- package/dist/bin/chunks/chunk-RVPTAYDS.js +0 -4
- package/dist/bin/chunks/js-exec-T3SAB2B6.js +0 -1651
- package/dist/bin/chunks/python3-3ERN3L6S.js +0 -23
- package/dist/bin/shell/chunks/chunk-2NJJXU4K.js +0 -27
- package/dist/bin/shell/chunks/chunk-6JUPBMCR.js +0 -13
- package/dist/bin/shell/chunks/chunk-CN4JKMTR.js +0 -8
- package/dist/bin/shell/chunks/chunk-HWK7KFGB.js +0 -3
- package/dist/bin/shell/chunks/chunk-PPVF2N6C.js +0 -3
- package/dist/bin/shell/chunks/chunk-RTN6X652.js +0 -11
- package/dist/bin/shell/chunks/chunk-RVPTAYDS.js +0 -4
- package/dist/bin/shell/chunks/js-exec-T3SAB2B6.js +0 -1651
- package/dist/bin/shell/chunks/python3-3ERN3L6S.js +0 -23
- package/dist/bundle/chunks/chunk-2SMD2AUA.js +0 -3
- package/dist/bundle/chunks/chunk-3OBCZP7T.js +0 -12
- package/dist/bundle/chunks/chunk-4CC3OZPU.js +0 -2
- package/dist/bundle/chunks/chunk-A257L6QO.js +0 -7
- package/dist/bundle/chunks/chunk-B6OSJB22.js +0 -26
- package/dist/bundle/chunks/chunk-RWQWFXMH.js +0 -10
- package/dist/bundle/chunks/chunk-WXPNKIIH.js +0 -2
- package/dist/bundle/chunks/js-exec-ZQMIYQTH.js +0 -1650
- package/dist/bundle/chunks/python3-QB7OE256.js +0 -22
- package/dist/commands/js-exec/run-runtime.d.ts +0 -10
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import{createRequire} from"node:module";const require=createRequire(import.meta.url);
|
|
2
|
-
import{a as K}from"./chunk-N3A4JVFJ.js";import{b as q}from"./chunk-WNH3HOQA.js";import{a as Y,b as E}from"./chunk-KIGPB52X.js";import{c as B,d as v}from"./chunk-WXPNKIIH.js";import{a as G}from"./chunk-L2UW7DWF.js";import{a as Q}from"./chunk-DLL7UR66.js";import{c as _}from"./chunk-BKUWXPEM.js";import{b as N}from"./chunk-ZBUZKIPX.js";import{d as U}from"./chunk-GN6CQ3J4.js";import{a as z,b as $}from"./chunk-T5ZEIOJ3.js";import{a as D,b as g}from"./chunk-FOCWZZDE.js";import{a as C}from"./chunk-W5DWRFSU.js";import{a as W,b as H}from"./chunk-QAYAQNCG.js";import"./chunk-NCUTH6QL.js";import{fileURLToPath as st}from"node:url";import{Worker as ot}from"node:worker_threads";var u={NOOP:0,READ_FILE:1,WRITE_FILE:2,STAT:3,READDIR:4,MKDIR:5,RM:6,EXISTS:7,APPEND_FILE:8,SYMLINK:9,READLINK:10,LSTAT:11,CHMOD:12,REALPATH:13,RENAME:14,COPY_FILE:15,WRITE_FILE_RANGE:17,READ_RESULT_RANGE:18,WRITE_STDOUT:100,WRITE_STDERR:101,EXIT:102,HTTP_REQUEST:200,EXEC_COMMAND:300,INVOKE_TOOL:400},y={IDLE:0,REQUEST:1,CANCELLED:2},a={NONE:0,SUCCESS:1,ERROR:2},h={NONE:0,NOT_FOUND:1,IS_DIRECTORY:2,NOT_DIRECTORY:3,EXISTS:4,PERMISSION_DENIED:5,INVALID_PATH:6,IO_ERROR:7,NETWORK_ERROR:9,NETWORK_NOT_CONFIGURED:10,NOT_EMPTY:11,LOOP:12,FILE_TOO_LARGE:13,NO_SPACE:14,BUSY:15,READ_ONLY:16,CROSS_DEVICE:17},M=Object.assign(Object.create(null),{ENOENT:h.NOT_FOUND,EISDIR:h.IS_DIRECTORY,ENOTDIR:h.NOT_DIRECTORY,ENOTEMPTY:h.NOT_EMPTY,EEXIST:h.EXISTS,EPERM:h.PERMISSION_DENIED,EACCES:h.PERMISSION_DENIED,EINVAL:h.INVALID_PATH,ELOOP:h.LOOP,EFBIG:h.FILE_TOO_LARGE,ENOSPC:h.NO_SPACE,EBUSY:h.BUSY,EROFS:h.READ_ONLY,EXDEV:h.CROSS_DEVICE}),tt=Object.create(null);for(let[o,t]of Object.entries(M))tt[t]=o;var i={OP_CODE:0,REQUEST:4,PATH_LENGTH:8,DATA_LENGTH:12,RESULT_LENGTH:16,ERROR_CODE:20,FLAGS:24,MODE:28,RESULT_STATE:32,PATH_BUFFER:36,DATA_BUFFER:4132},O={PATH_BUFFER:4096,DATA_BUFFER:8388608,TOTAL:8392740},I={NONE:0,RECURSIVE:1,FORCE:2,MKDIR_RECURSIVE:1},f={IS_FILE:0,IS_DIRECTORY:1,IS_SYMLINK:2,MODE:4,SIZE:8,MTIME:16,TOTAL:24};function X(){return new Y(O.TOTAL)}var k=class{int32View;uint8View;dataView;constructor(t){this.int32View=new Int32Array(t),this.uint8View=new Uint8Array(t),this.dataView=new DataView(t)}getOpCode(){return E.load(this.int32View,i.OP_CODE/4)}setOpCode(t){E.store(this.int32View,i.OP_CODE/4,t)}getRequest(){return E.load(this.int32View,i.REQUEST/4)}setRequest(t){E.store(this.int32View,i.REQUEST/4,t)}getResultState(){return E.load(this.int32View,i.RESULT_STATE/4)}setResultState(t){E.store(this.int32View,i.RESULT_STATE/4,t)}getPathLength(){return E.load(this.int32View,i.PATH_LENGTH/4)}setPathLength(t){E.store(this.int32View,i.PATH_LENGTH/4,t)}getDataLength(){return E.load(this.int32View,i.DATA_LENGTH/4)}setDataLength(t){E.store(this.int32View,i.DATA_LENGTH/4,t)}getResultLength(){return E.load(this.int32View,i.RESULT_LENGTH/4)}setResultLength(t){E.store(this.int32View,i.RESULT_LENGTH/4,t)}getErrorCode(){return E.load(this.int32View,i.ERROR_CODE/4)}setErrorCode(t){E.store(this.int32View,i.ERROR_CODE/4,t)}getFlags(){return E.load(this.int32View,i.FLAGS/4)}setFlags(t){E.store(this.int32View,i.FLAGS/4,t)}getMode(){return E.load(this.int32View,i.MODE/4)}setMode(t){E.store(this.int32View,i.MODE/4,t)}getPath(){let t=this.getPathLength(),e=this.uint8View.slice(i.PATH_BUFFER,i.PATH_BUFFER+t);return new TextDecoder().decode(e)}setPath(t){let e=new TextEncoder().encode(t);if(e.length>O.PATH_BUFFER)throw new Error(`Path too long: ${e.length} > ${O.PATH_BUFFER}`);this.uint8View.set(e,i.PATH_BUFFER),this.setPathLength(e.length)}getData(){let t=this.getDataLength();return this.uint8View.slice(i.DATA_BUFFER,i.DATA_BUFFER+t)}setData(t){if(t.length>O.DATA_BUFFER)throw new Error(`Data too large: ${t.length} > ${O.DATA_BUFFER}`);this.uint8View.set(t,i.DATA_BUFFER),this.setDataLength(t.length)}getDataAsString(){let t=this.getData();return new TextDecoder().decode(t)}setDataFromString(t){let e=new TextEncoder().encode(t);this.setData(e)}getResult(){let t=this.getResultLength();return this.uint8View.slice(i.DATA_BUFFER,i.DATA_BUFFER+t)}setResult(t){if(t.length>O.DATA_BUFFER)throw new Error(`Result too large: ${t.length} > ${O.DATA_BUFFER}`);this.uint8View.set(t,i.DATA_BUFFER),this.setResultLength(t.length)}setResultPrefix(t){if(t.length>2147483647)throw new Error(`Result too large: ${t.length} exceeds int32`);let e=Math.min(t.length,O.DATA_BUFFER);this.uint8View.set(t.subarray(0,e),i.DATA_BUFFER),this.setResultLength(t.length)}getResultAsString(){let t=this.getResult();return new TextDecoder().decode(t)}setResultFromString(t){let e=new TextEncoder().encode(t);this.setResult(e)}encodeStat(t){this.uint8View[i.DATA_BUFFER+f.IS_FILE]=t.isFile?1:0,this.uint8View[i.DATA_BUFFER+f.IS_DIRECTORY]=t.isDirectory?1:0,this.uint8View[i.DATA_BUFFER+f.IS_SYMLINK]=t.isSymbolicLink?1:0,this.dataView.setInt32(i.DATA_BUFFER+f.MODE,t.mode,!0);let e=Math.min(t.size,Number.MAX_SAFE_INTEGER);this.dataView.setFloat64(i.DATA_BUFFER+f.SIZE,e,!0),this.dataView.setFloat64(i.DATA_BUFFER+f.MTIME,t.mtime.getTime(),!0),this.setResultLength(f.TOTAL)}decodeStat(){return{isFile:this.uint8View[i.DATA_BUFFER+f.IS_FILE]===1,isDirectory:this.uint8View[i.DATA_BUFFER+f.IS_DIRECTORY]===1,isSymbolicLink:this.uint8View[i.DATA_BUFFER+f.IS_SYMLINK]===1,mode:this.dataView.getInt32(i.DATA_BUFFER+f.MODE,!0),size:this.dataView.getFloat64(i.DATA_BUFFER+f.SIZE,!0),mtime:new Date(this.dataView.getFloat64(i.DATA_BUFFER+f.MTIME,!0))}}async waitUntilReady(t){let e=Date.now();for(;;){let s=this.getRequest();if(s===y.REQUEST)return!0;if(s!==y.IDLE)return!1;let r=Date.now()-e;if(r>=t)return!1;let n=t-r,l=E.waitAsync(this.int32View,i.REQUEST/4,y.IDLE,n);if(l.async&&await l.value==="timed-out")return!1}}waitForResult(t){return E.wait(this.int32View,i.RESULT_STATE/4,a.NONE,t)}notifyRequest(){return E.notify(this.int32View,i.REQUEST/4)}notifyResult(){return E.notify(this.int32View,i.RESULT_STATE/4)}reset(){this.setOpCode(u.NOOP),this.setRequest(y.IDLE),this.setResultState(a.NONE),this.setPathLength(0),this.setDataLength(0),this.setResultLength(0),this.setErrorCode(h.NONE),this.setFlags(I.NONE),this.setMode(0)}};function et(o){return o!==void 0&&Object.hasOwn(M,o)?M[o]:h.IO_ERROR}var b=class{fs;cwd;commandName;secureFetch;maxOutputSize;exec;invokeTool;protocol;running=!1;output={stdout:"",stderr:"",exitCode:0};outputLimitExceeded=!1;startTime=0;timeoutMs=0;lastResult=null;constructor(t,e,s,r,n=void 0,l=0,R=void 0,p=void 0){this.fs=e,this.cwd=s,this.commandName=r,this.secureFetch=n,this.maxOutputSize=l,this.exec=R,this.invokeTool=p,this.protocol=new k(t)}remainingMs(){return Math.max(0,this.timeoutMs-(Date.now()-this.startTime))}raceDeadline(t){let e=this.remainingMs();if(e<=0)return this.running=!1,this.output.exitCode=124,this.output.stderr+=`
|
|
3
|
-
${this.commandName}: execution timeout exceeded
|
|
4
|
-
`,Promise.reject(new Error("Operation timed out"));let s=t();return e===Number.POSITIVE_INFINITY?s:new Promise((r,n)=>{let l=B(()=>{this.running=!1,this.output.exitCode=124,this.output.stderr+=`
|
|
5
|
-
${this.commandName}: execution timeout exceeded
|
|
6
|
-
`,n(new Error("Operation timed out"))},e);s.then(R=>{v(l),r(R)},R=>{v(l),n(R)})})}async run(t){for(this.running=!0,this.startTime=Date.now(),this.timeoutMs=t;this.running;){if(Date.now()-this.startTime>=t){this.output.stderr+=`
|
|
7
|
-
${this.commandName}: execution timeout exceeded
|
|
8
|
-
`,this.output.exitCode=124;break}let s=this.remainingMs();if(!await this.protocol.waitUntilReady(s)){if(!this.running)break;this.output.stderr+=`
|
|
9
|
-
${this.commandName}: execution timeout exceeded
|
|
10
|
-
`,this.output.exitCode=124;break}if(!this.running)break;this.protocol.setRequest(y.IDLE);let n=this.protocol.getOpCode();await this.handleOperation(n),this.protocol.notifyResult()}return this.output}stop(){this.running=!1,this.lastResult=null,this.protocol.setRequest(y.CANCELLED),this.protocol.notifyRequest()}async handleOperation(t){try{switch(t){case u.READ_FILE:await this.handleReadFile();break;case u.WRITE_FILE:await this.handleWriteFile();break;case u.STAT:await this.handleStat();break;case u.LSTAT:await this.handleLstat();break;case u.READDIR:await this.handleReaddir();break;case u.MKDIR:await this.handleMkdir();break;case u.READ_RESULT_RANGE:this.handleReadResultRange();break;case u.WRITE_FILE_RANGE:await this.handleWriteFileRange();break;case u.RM:await this.handleRm();break;case u.EXISTS:await this.handleExists();break;case u.APPEND_FILE:await this.handleAppendFile();break;case u.SYMLINK:await this.handleSymlink();break;case u.READLINK:await this.handleReadlink();break;case u.CHMOD:await this.handleChmod();break;case u.REALPATH:await this.handleRealpath();break;case u.RENAME:await this.handleRename();break;case u.COPY_FILE:await this.handleCopyFile();break;case u.WRITE_STDOUT:this.handleWriteStdout();break;case u.WRITE_STDERR:this.handleWriteStderr();break;case u.EXIT:this.handleExit();break;case u.HTTP_REQUEST:await this.handleHttpRequest();break;case u.EXEC_COMMAND:await this.handleExecCommand();break;case u.INVOKE_TOOL:await this.handleInvokeTool();break;default:this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultState(a.ERROR)}}catch(e){this.setErrorFromException(e)}}publishResult(t){let e=typeof t=="string"?new TextEncoder().encode(t):t;this.lastResult=e,this.protocol.setResultPrefix(e),this.protocol.setResultState(a.SUCCESS)}handleReadResultRange(){let t=this.protocol.getFlags(),e=this.protocol.getMode(),s=this.lastResult;if(!s||t>=s.length){this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString(`No retained result for range read (offset=${t}, length=${e}, retained=${s?.length??"none"})`),this.protocol.setResultState(a.ERROR);return}this.protocol.setResult(s.subarray(t,t+e)),this.protocol.setResultState(a.SUCCESS)}resolvePath(t){return this.fs.resolvePath(this.cwd,t)}async handleReadFile(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readFileBuffer(t);this.publishResult(e)}catch(e){this.setErrorFromException(e)}}async handleWriteFileRange(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getFlags(),s=this.protocol.getData();try{if(e===0)await this.fs.writeFile(t,s);else{let r=await this.fs.stat(t);if(r.size!==e)throw new z("EIO",`non-sequential range write to '${t}': offset ${e} != size ${r.size}`);await this.fs.appendFile(t,s)}this.protocol.setResultState(a.SUCCESS)}catch(r){this.setErrorFromException(r)}}async handleWriteFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getData();try{await this.fs.writeFile(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleStat(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.stat(t);this.protocol.encodeStat(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleLstat(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.lstat(t);this.protocol.encodeStat(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleReaddir(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readdir(t);this.publishResult(JSON.stringify(e))}catch(e){this.setErrorFromException(e)}}async handleMkdir(){let t=this.resolvePath(this.protocol.getPath()),s=(this.protocol.getFlags()&I.MKDIR_RECURSIVE)!==0;try{await this.fs.mkdir(t,{recursive:s}),this.protocol.setResultState(a.SUCCESS)}catch(r){this.setErrorFromException(r)}}async handleRm(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getFlags(),s=(e&I.RECURSIVE)!==0,r=(e&I.FORCE)!==0;try{await this.fs.rm(t,{recursive:s,force:r}),this.protocol.setResultState(a.SUCCESS)}catch(n){this.setErrorFromException(n)}}async handleExists(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.exists(t);this.protocol.setResult(new Uint8Array([e?1:0])),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleAppendFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getData();try{await this.fs.appendFile(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleSymlink(){let t=this.protocol.getPath(),e=this.protocol.getDataAsString(),s=this.resolvePath(t);try{await this.fs.symlink(e,s),this.protocol.setResultState(a.SUCCESS)}catch(r){this.setErrorFromException(r)}}async handleReadlink(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.readlink(t);this.protocol.setResultFromString(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleChmod(){let t=this.resolvePath(this.protocol.getPath()),e=this.protocol.getMode();try{await this.fs.chmod(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleRealpath(){let t=this.resolvePath(this.protocol.getPath());try{let e=await this.fs.realpath(t);this.protocol.setResultFromString(e),this.protocol.setResultState(a.SUCCESS)}catch(e){this.setErrorFromException(e)}}async handleRename(){let t=this.resolvePath(this.protocol.getPath()),e=this.resolvePath(this.protocol.getDataAsString());try{await this.fs.mv(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}async handleCopyFile(){let t=this.resolvePath(this.protocol.getPath()),e=this.resolvePath(this.protocol.getDataAsString());try{await this.fs.cp(t,e),this.protocol.setResultState(a.SUCCESS)}catch(s){this.setErrorFromException(s)}}handleWriteStdout(){let t=this.protocol.getDataAsString();if(!this.tryAppendOutput("stdout",t)){this.outputLimitExceeded=!0,this.output.exitCode=1,this.appendOutputLimitError(),this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Output size limit exceeded"),this.protocol.setResultState(a.ERROR);return}this.protocol.setResultState(a.SUCCESS)}handleWriteStderr(){let t=this.protocol.getDataAsString();if(!this.tryAppendOutput("stderr",t)){this.outputLimitExceeded=!0,this.output.exitCode=1,this.appendOutputLimitError(),this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Output size limit exceeded"),this.protocol.setResultState(a.ERROR);return}this.protocol.setResultState(a.SUCCESS)}handleExit(){let t=this.protocol.getFlags();this.outputLimitExceeded?this.output.exitCode===0&&(this.output.exitCode=1):this.output.exitCode=t,this.protocol.setResultState(a.SUCCESS),this.running=!1}tryAppendOutput(t,e){return this.outputLimitExceeded?!1:this.maxOutputSize<=0?(t==="stdout"?this.output.stdout+=e:this.output.stderr+=e,!0):this.output.stdout.length+this.output.stderr.length+e.length>this.maxOutputSize?!1:(t==="stdout"?this.output.stdout+=e:this.output.stderr+=e,!0)}appendOutputLimitError(){if(this.maxOutputSize<=0)return;let t=`${this.commandName}: total output size exceeded (>${this.maxOutputSize} bytes), increase executionLimits.maxOutputSize
|
|
11
|
-
`,e=t.length>this.maxOutputSize?t.slice(0,this.maxOutputSize):t;if(this.output.stderr.includes("total output size exceeded"))return;let r=this.output.stdout.length+this.output.stderr.length+e.length-this.maxOutputSize;if(r>0)if(this.output.stdout.length>=r)this.output.stdout=this.output.stdout.slice(0,this.output.stdout.length-r);else{let n=r-this.output.stdout.length;this.output.stdout="",n>=this.output.stderr.length?this.output.stderr="":this.output.stderr=this.output.stderr.slice(0,this.output.stderr.length-n)}this.output.stderr+=e}async handleHttpRequest(){let t=this.secureFetch;if(!t){this.protocol.setErrorCode(h.NETWORK_NOT_CONFIGURED),this.protocol.setResultFromString("Network access not configured. Enable network in Bash options."),this.protocol.setResultState(a.ERROR);return}let e=this.protocol.getPath(),s=this.protocol.getDataAsString();try{let r=s?JSON.parse(s):{},n=this.remainingMs(),l=await this.raceDeadline(()=>t(e,{method:r.method,headers:r.headers,body:r.body,timeoutMs:n})),R=JSON.stringify({status:l.status,statusText:l.statusText,headers:l.headers,bodyBase64:q(l.body,"base64"),url:l.url});this.publishResult(R)}catch(r){let n=D(r instanceof Error?r.message:String(r));this.protocol.setErrorCode(h.NETWORK_ERROR),this.protocol.setResultFromString(n),this.protocol.setResultState(a.ERROR)}}async handleExecCommand(){let t=this.exec;if(!t){this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Command execution not available in this context."),this.protocol.setResultState(a.ERROR);return}let e=this.protocol.getPath(),s=this.protocol.getDataAsString(),r=new AbortController;try{let n={cwd:this.cwd,signal:r.signal};if(s){let p=JSON.parse(s);p.stdin&&(n.stdin=p.stdin),p.args&&Array.isArray(p.args)&&(n.args=p.args.map(m=>String(m)),e=G([e]))}let l=await this.raceDeadline(()=>t(e,n)),R=JSON.stringify({stdout:l.stdout,stderr:l.stderr,exitCode:l.exitCode});this.publishResult(R)}catch(n){r.abort();let l=n instanceof Error?n.message:String(n);this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString(l),this.protocol.setResultState(a.ERROR)}}async handleInvokeTool(){let t=this.invokeTool;if(!t){this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString("Tool invocation not available in this context."),this.protocol.setResultState(a.ERROR);return}let e=this.protocol.getPath(),s=this.protocol.getDataAsString();try{let r=await this.raceDeadline(()=>N.runTrustedAsync(()=>t(e,s)));this.publishResult(r)}catch(r){let n=g(r instanceof Error?r.message:String(r));this.protocol.setErrorCode(h.IO_ERROR),this.protocol.setResultFromString(n),this.protocol.setResultState(a.ERROR)}}setErrorFromException(t){let e=t instanceof Error?t.message:String(t),s=D(e);this.protocol.setErrorCode(et($(t))),this.protocol.setResultFromString(s),this.protocol.setResultState(a.ERROR)}};var rt={name:"python3",summary:"Execute Python code via CPython Emscripten",usage:"python3 [OPTIONS] [-c CODE | -m MODULE | FILE] [ARGS...]",description:["Execute Python code using CPython compiled to WebAssembly via Emscripten.","","This command runs Python in an isolated environment with access to","the virtual filesystem. Standard library modules are available."],options:["-c CODE Execute CODE as Python script","-m MODULE Run library module as a script","--version Show Python version","--help Show this help"],examples:['python3 -c "print(1 + 2)"','python3 -c "import sys; print(sys.version)"',"python3 script.py","python3 script.py arg1 arg2",`echo 'print("hello")' | python3`],notes:["CPython runs in WebAssembly, so execution may be slower than native Python.","Standard library modules are available (no pip install).","Maximum execution time is 30 seconds by default."]};function it(o){let t={code:null,module:null,scriptFile:null,showVersion:!1,scriptArgs:[]};if(o.length===0)return t;let e=o.findIndex(s=>!s.startsWith("-")||s==="-"||s==="--");for(let s=0;s<(e===-1?o.length:e);s++){let r=o[s];if(r==="-c")return s+1>=o.length?{stdout:"",stderr:`python3: option requires an argument -- 'c'
|
|
12
|
-
`,exitCode:2}:(t.code=o[s+1],t.scriptArgs=o.slice(s+2),t);if(r==="-m")return s+1>=o.length?{stdout:"",stderr:`python3: option requires an argument -- 'm'
|
|
13
|
-
`,exitCode:2}:(t.module=o[s+1],t.scriptArgs=o.slice(s+2),t);if(r==="--version"||r==="-V")return t.showVersion=!0,t;if(r.startsWith("-")&&r!=="-")return{stdout:"",stderr:`python3: unrecognized option '${r}'
|
|
14
|
-
`,exitCode:2}}if(e!==-1){let s=o[e];s==="--"?e+1<o.length&&(t.scriptFile=o[e+1],t.scriptArgs=o.slice(e+2)):(t.scriptFile=s,t.scriptArgs=o.slice(e+1))}return t}var V=new WeakMap;function nt(o){let t=V.get(o);return t||(t={executionQueue:[],activeExecution:null,poisonedError:null},V.set(o,t)),t}function Ut(){V=new WeakMap}var at=st(new URL("./worker.js",import.meta.url));function ct(o,t){if(!o||typeof o!="object")return{success:!1,error:"Malformed worker response"};let e=o;return typeof e.protocolToken!="string"||e.protocolToken!==t?{success:!1,error:"Malformed worker response: invalid protocol token"}:e.type==="security-violation"?{success:!1,error:`Security violation: ${typeof e.violation?.type=="string"?e.violation.type:"unknown"}`}:typeof e.success!="boolean"?{success:!1,error:"Malformed worker response: missing success flag"}:e.success?{success:!0}:{success:!1,error:typeof e.error=="string"&&e.error.length>0?e.error:"Worker execution failed"}}function P(o){if(o.poisonedError!==null){for(let c of o.executionQueue.splice(0))c.state==="queued"&&(c.state="settled",c.stopBridge(),c.settle({success:!1,error:o.poisonedError}));return}if(o.activeExecution!==null||o.executionQueue.length===0)return;for(;o.executionQueue.length>0&&o.executionQueue[0]?.state!=="queued";)o.executionQueue.shift();if(o.executionQueue.length===0)return;let t=o.executionQueue.shift();if(!t)return;t.state="running",o.activeExecution=t;let e;try{e=N.runTrusted(()=>new ot(at,{workerData:t.input}))}catch(c){let d=c instanceof Error?c.message:String(c);t.state="settled",t.settle({success:!1,error:g(d)}),o.activeExecution===t&&(o.activeExecution=null,P(o));return}t.worker=e;let s=!0,r=()=>{s&&(s=!1,e.removeListener("message",m),e.removeListener("error",A),e.removeListener("exit",L))},n=async(c,d)=>{if(!(o.activeExecution?.executionId!==t.executionId||t.state!=="running")){if(t.state="terminating",r(),t.settle(c),d&&!await t.controller.terminate(e)){let w="Worker termination was not acknowledged";t.worker=null,t.state="settled",o.poisonedError=w,o.activeExecution?.executionId===t.executionId&&(o.activeExecution=null),P(o);return}t.worker=null,t.state="settled",o.activeExecution?.executionId===t.executionId&&(o.activeExecution=null,P(o))}};t.cancel=c=>{n(c,!0)};let l=_(t.requireDefenseContext,"python3","worker message callback",c=>{try{t.controller.assertMessageSize(c,"response")}catch(d){n({success:!1,error:g(C(d))},!0);return}n(ct(c,t.input.protocolToken),!0)}),R=_(t.requireDefenseContext,"python3","worker error callback",c=>{let d=g(C(c));n({success:!1,error:d},!0)}),p=_(t.requireDefenseContext,"python3","worker exit callback",()=>{n({success:!1,error:"Worker exited unexpectedly"},!1)}),m=c=>{try{l(c)}catch(d){let S=d instanceof Error?d.message:String(d);n({success:!1,error:g(S)},!0)}},A=c=>{try{R(c)}catch(d){let S=d instanceof Error?d.message:String(d);n({success:!1,error:g(S)},!0)}},L=()=>{try{p()}catch(c){let d=c instanceof Error?c.message:String(c);n({success:!1,error:g(d)},!0)}};e.on("message",m),e.on("error",A),e.on("exit",L)}async function lt(o,t,e,s,r=[]){let n=X(),l=new b(n,e.fs,e.cwd,"python3",e.fetch,e.limits.maxOutputSize),R=e.limits.maxPythonTimeoutMs,p=nt(e.fs);if(p.poisonedError!==null)return{stdout:"",stderr:`python3: ${p.poisonedError}
|
|
15
|
-
`,exitCode:1};let m=new K({commandName:"python3",timeoutMs:R,signal:e.signal,maxMessageBytes:e.limits.maxWorkerMessageBytes}),A={protocolToken:m.protocolToken,sharedBuffer:n,pythonCode:o,stdin:t,cwd:e.cwd,env:Q(e.env),args:r,scriptPath:s,timeoutMs:R,maxFileSize:e.limits.maxStringLength};m.assertMessageSize({...A,sharedBuffer:void 0},"request");let L=new Promise(S=>{let w=!1,T={executionId:Symbol("python3 execution"),input:A,settle:F=>{w||(w=!0,m.close(),S(F))},requireDefenseContext:e.requireDefenseContext,state:"queued",worker:null,controller:m,stopBridge:()=>l.stop?.(),cancel:()=>{}};T.cancel=F=>{if(T.state!=="queued")return;T.state="settled";let x=p.executionQueue.indexOf(T);x!==-1&&p.executionQueue.splice(x,1),T.settle(F),P(p)};let J=_(e.requireDefenseContext,"python3","worker cancellation callback",F=>{l.stop?.(),T.cancel({success:!1,error:F==="abort"?m.abortMessage():m.timeoutMessage()})}),j=F=>{try{J(F)}catch(x){let Z=x instanceof Error?x.message:String(x);T.cancel({success:!1,error:g(Z)})}};m.arm(j),m.isCanceled||(p.executionQueue.push(T),P(p))}),[c,d]=await Promise.all([l.run(R).catch(S=>({stdout:"",stderr:`python3: bridge error: ${g(C(S))}
|
|
16
|
-
`,exitCode:1})),L.catch(S=>({success:!1,error:g(C(S))}))]);if(!d.success&&d.error){let S=g(d.error),w=d.error===m.timeoutMessage()||d.error===m.abortMessage();return{stdout:c.stdout,stderr:`${c.stderr}python3: ${S}
|
|
17
|
-
`,exitCode:c.exitCode||(w?124:1)}}return{...c}}var ht={name:"python3",async execute(o,t){if(H(o))return W(rt);let e=it(o);if("exitCode"in e)return e;if(e.showVersion)return{stdout:`Python 3.13.2 (Emscripten)
|
|
18
|
-
`,stderr:"",exitCode:0};let s,r,n=t.stdin;if(e.code!==null)s=e.code,r="-c";else if(e.module!==null){if(!/^[a-zA-Z_][a-zA-Z0-9_.]*$/.test(e.module))return{stdout:"",stderr:`python3: No module named '${e.module.slice(0,200)}'
|
|
19
|
-
`,exitCode:1};s=`import runpy; runpy.run_module('${e.module}', run_name='__main__')`,r=e.module}else if(e.scriptFile==="-")s=U(t.stdin),n="",r="-";else if(e.scriptFile!==null){let l=t.fs.resolvePath(t.cwd,e.scriptFile);if(!await t.fs.exists(l))return{stdout:"",stderr:`python3: can't open file '${e.scriptFile}': [Errno 2] No such file or directory
|
|
20
|
-
`,exitCode:2};try{s=await t.fs.readFile(l),r=e.scriptFile}catch(R){let p=D(R.message);return{stdout:"",stderr:`python3: can't open file '${e.scriptFile}': ${p}
|
|
21
|
-
`,exitCode:2}}}else if(U(t.stdin).trim())s=U(t.stdin),n="",r="<stdin>";else return{stdout:"",stderr:`python3: no input provided (use -c CODE, -m MODULE, or provide a script file)
|
|
22
|
-
`,exitCode:2};return lt(s,n,t,r,e.scriptArgs)}},kt={name:"python",async execute(o,t){return ht.execute(o,t)}};export{Ut as _resetExecutionQueue,ht as python3Command,kt as pythonCommand};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { ExecResult, RuntimeCommandContext } from "../../types.js";
|
|
2
|
-
interface RunJsOptions {
|
|
3
|
-
source: string;
|
|
4
|
-
scriptPath: string;
|
|
5
|
-
scriptArgs: string[];
|
|
6
|
-
bootstrapCode?: string;
|
|
7
|
-
isModule: boolean;
|
|
8
|
-
}
|
|
9
|
-
export declare function executeWithRun(options: RunJsOptions, ctx: RuntimeCommandContext): Promise<ExecResult>;
|
|
10
|
-
export {};
|