just-bash 2.12.8 → 2.13.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/README.md +89 -3
- package/dist/AGENTS.md +1 -1
- package/dist/Bash.d.ts +17 -0
- package/dist/bin/chunks/{awk2-J2PNSA7C.js → awk2-VTJMI54B.js} +1 -1
- package/dist/bin/chunks/chunk-3YMCKZTY.js +14 -0
- package/dist/bin/chunks/{chunk-O5B6WWQQ.js → chunk-A3HQTYHR.js} +1 -1
- package/dist/bin/chunks/chunk-AAW7UMPO.js +9 -0
- package/dist/bin/chunks/{chunk-2V53PP6G.js → chunk-B3RU2PUI.js} +27 -27
- package/dist/bin/chunks/chunk-CQG2HEAL.js +5 -0
- package/dist/bin/chunks/chunk-DOXYBGNA.js +12 -0
- package/dist/bin/{shell/chunks/chunk-YAEF6X2N.js → chunks/chunk-GR23MPTT.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-35JD7YEM.js → chunks/chunk-HJEHIH4P.js} +13 -13
- package/dist/bin/chunks/{chunk-UG4GMDQL.js → chunk-LGF54XJQ.js} +1 -1
- package/dist/bin/chunks/chunk-N6KA6G3Q.js +11 -0
- package/dist/bin/chunks/{chunk-2BC3N3L2.js → chunk-ORUYSLP4.js} +4 -4
- package/dist/bin/chunks/{chunk-REGSV3X5.js → chunk-SDLWFYVT.js} +1 -1
- package/dist/bin/chunks/{chunk-STOAUD75.js → chunk-THNL3XFF.js} +8 -8
- package/dist/bin/chunks/{chunk-ZJGIBTWD.js → chunk-V7ZOPVQS.js} +1 -1
- package/dist/bin/chunks/{chunk-ZYQQ6B7B.js → chunk-ZO5PSLKR.js} +2 -2
- package/dist/bin/{shell/chunks/curl-3GMIPMCI.js → chunks/curl-B64SIJOD.js} +1 -1
- package/dist/bin/chunks/env-NTPN5QYM.js +2 -0
- package/dist/bin/{shell/chunks/expansion-JBCP2CHQ.js → chunks/expansion-2RO5M3QC.js} +1 -1
- package/dist/bin/{shell/chunks/find-MTLF23HX.js → chunks/find-GAYRV4IF.js} +1 -1
- package/dist/bin/{shell/chunks/flag-coverage-CFWN3JJN.js → chunks/flag-coverage-IRM4GISL.js} +1 -1
- package/dist/bin/{shell/chunks/help-4H52JYYC.js → chunks/help-DVG4AAGE.js} +1 -1
- package/dist/bin/{shell/chunks/jq-JFXEKNLN.js → chunks/jq-V7FYGIKO.js} +1 -1
- package/dist/bin/chunks/js-exec-YGYYZEEQ.js +97 -0
- package/dist/bin/chunks/js-exec-worker.js +4368 -0
- package/dist/bin/chunks/python3-EIXZW3LO.js +12 -0
- package/dist/bin/chunks/rg-C6KMBFNG.js +2 -0
- package/dist/bin/{shell/chunks/time-GZSHCM77.js → chunks/time-VSKBXRQH.js} +1 -1
- package/dist/bin/chunks/{timeout-JJWIFL7W.js → timeout-Z24MNWOP.js} +1 -1
- package/dist/bin/chunks/worker.js +87 -33
- package/dist/bin/chunks/{xan-M6MLWZCU.js → xan-MOZFJGMY.js} +1 -1
- package/dist/bin/chunks/xargs-SCYIFXOW.js +2 -0
- package/dist/bin/chunks/{yq-YWUQUXJJ.js → yq-JJLSDDST.js} +1 -1
- package/dist/bin/just-bash.js +158 -157
- package/dist/bin/shell/chunks/{awk2-J2PNSA7C.js → awk2-VTJMI54B.js} +1 -1
- package/dist/bin/shell/chunks/chunk-3YMCKZTY.js +14 -0
- package/dist/bin/shell/chunks/{chunk-O5B6WWQQ.js → chunk-A3HQTYHR.js} +1 -1
- package/dist/bin/shell/chunks/chunk-AAW7UMPO.js +9 -0
- package/dist/bin/shell/chunks/{chunk-2V53PP6G.js → chunk-B3RU2PUI.js} +27 -27
- package/dist/bin/shell/chunks/chunk-CQG2HEAL.js +5 -0
- package/dist/bin/shell/chunks/chunk-DOXYBGNA.js +12 -0
- package/dist/bin/{chunks/chunk-YAEF6X2N.js → shell/chunks/chunk-GR23MPTT.js} +1 -1
- package/dist/bin/{chunks/chunk-35JD7YEM.js → shell/chunks/chunk-HJEHIH4P.js} +13 -13
- package/dist/bin/shell/chunks/{chunk-UG4GMDQL.js → chunk-LGF54XJQ.js} +1 -1
- package/dist/bin/shell/chunks/chunk-N6KA6G3Q.js +11 -0
- package/dist/bin/shell/chunks/{chunk-2BC3N3L2.js → chunk-ORUYSLP4.js} +4 -4
- package/dist/bin/shell/chunks/{chunk-REGSV3X5.js → chunk-SDLWFYVT.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-STOAUD75.js → chunk-THNL3XFF.js} +8 -8
- package/dist/bin/shell/chunks/{chunk-ZJGIBTWD.js → chunk-V7ZOPVQS.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-ZYQQ6B7B.js → chunk-ZO5PSLKR.js} +2 -2
- package/dist/bin/{chunks/curl-3GMIPMCI.js → shell/chunks/curl-B64SIJOD.js} +1 -1
- package/dist/bin/shell/chunks/env-NTPN5QYM.js +2 -0
- package/dist/bin/{chunks/expansion-JBCP2CHQ.js → shell/chunks/expansion-2RO5M3QC.js} +1 -1
- package/dist/bin/{chunks/find-MTLF23HX.js → shell/chunks/find-GAYRV4IF.js} +1 -1
- package/dist/bin/{chunks/flag-coverage-CFWN3JJN.js → shell/chunks/flag-coverage-IRM4GISL.js} +1 -1
- package/dist/bin/{chunks/help-4H52JYYC.js → shell/chunks/help-DVG4AAGE.js} +1 -1
- package/dist/bin/{chunks/jq-JFXEKNLN.js → shell/chunks/jq-V7FYGIKO.js} +1 -1
- package/dist/bin/shell/chunks/js-exec-VYG74FQ3.js +97 -0
- package/dist/bin/shell/chunks/python3-WO3WFGMS.js +12 -0
- package/dist/bin/shell/chunks/rg-C6KMBFNG.js +2 -0
- package/dist/bin/{chunks/time-GZSHCM77.js → shell/chunks/time-VSKBXRQH.js} +1 -1
- package/dist/bin/shell/chunks/{timeout-JJWIFL7W.js → timeout-Z24MNWOP.js} +1 -1
- package/dist/bin/shell/chunks/{xan-M6MLWZCU.js → xan-MOZFJGMY.js} +1 -1
- package/dist/bin/shell/chunks/xargs-SCYIFXOW.js +2 -0
- package/dist/bin/shell/chunks/{yq-YWUQUXJJ.js → yq-JJLSDDST.js} +1 -1
- package/dist/bin/shell/shell.js +164 -164
- package/dist/bundle/browser.js +534 -534
- package/dist/bundle/chunks/{awk2-FUVZGMX2.js → awk2-POPGKRAI.js} +1 -1
- package/dist/bundle/chunks/{chunk-DZZS6SJP.js → chunk-7TSDKFEO.js} +1 -1
- package/dist/bundle/chunks/{chunk-D4QDMGEB.js → chunk-BBXLRYSX.js} +2 -2
- package/dist/bundle/chunks/{chunk-TRD56HID.js → chunk-FEIOJCZD.js} +1 -1
- package/dist/bundle/chunks/chunk-JCMONG3T.js +13 -0
- package/dist/bundle/chunks/{chunk-D2FZX7A2.js → chunk-LPQPILI2.js} +8 -8
- package/dist/bundle/chunks/chunk-MJWMXCEJ.js +10 -0
- package/dist/bundle/chunks/{chunk-2GOYXRRP.js → chunk-MLXIYONF.js} +4 -4
- package/dist/bundle/chunks/chunk-NAERJDUW.js +8 -0
- package/dist/bundle/chunks/{chunk-OKEHYWBE.js → chunk-NYQYO467.js} +13 -13
- package/dist/bundle/chunks/{chunk-JKLUDNMU.js → chunk-O2DBFL6Z.js} +1 -1
- package/dist/bundle/chunks/{chunk-JDMQDJYE.js → chunk-OARHFVLG.js} +1 -1
- package/dist/bundle/chunks/{chunk-AKVMAONP.js → chunk-RUF7WQ7U.js} +1 -1
- package/dist/bundle/chunks/chunk-TOMNU26N.js +4 -0
- package/dist/bundle/chunks/{chunk-ZLJ5TCLC.js → chunk-UNYNJIFU.js} +27 -27
- package/dist/bundle/chunks/chunk-YTNYSM6T.js +11 -0
- package/dist/bundle/chunks/{curl-KM2ZAUR6.js → curl-FCIO57JJ.js} +1 -1
- package/dist/bundle/chunks/env-5EPCWSXR.js +1 -0
- package/dist/bundle/chunks/{expansion-XG7G47TX.js → expansion-ENLSRCXJ.js} +1 -1
- package/dist/bundle/chunks/{find-DOIVMX6X.js → find-TPUOAIUQ.js} +1 -1
- package/dist/bundle/chunks/{flag-coverage-VML3BMJT.js → flag-coverage-SPT2DN2I.js} +1 -1
- package/dist/bundle/chunks/{help-IA5CMGR4.js → help-VVWX7SA5.js} +1 -1
- package/dist/bundle/chunks/{jq-SSCW4AAA.js → jq-DIRZBOTX.js} +1 -1
- package/dist/bundle/chunks/js-exec-R2LSP7M4.js +96 -0
- package/dist/bundle/chunks/js-exec-worker.js +4368 -0
- package/dist/bundle/chunks/python3-DH2SBOI3.js +11 -0
- package/dist/bundle/chunks/rg-FOQSCCX3.js +1 -0
- package/dist/bundle/chunks/{time-XL42Z4U5.js → time-FABCOJJU.js} +1 -1
- package/dist/bundle/chunks/{timeout-QCU4INQT.js → timeout-VRKMCG72.js} +1 -1
- package/dist/bundle/chunks/worker.js +87 -33
- package/dist/bundle/chunks/{xan-K7XYDHFV.js → xan-BXDXYEIB.js} +1 -1
- package/dist/bundle/chunks/xargs-I6EZUCYF.js +1 -0
- package/dist/bundle/chunks/{yq-WTK3HUOR.js → yq-XMVSIL6Z.js} +1 -1
- package/dist/bundle/index.cjs +956 -857
- package/dist/bundle/index.js +145 -145
- package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
- package/dist/commands/js-exec/js-exec.d.ts +11 -0
- package/dist/commands/js-exec/module-shims.d.ts +29 -0
- package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
- package/dist/commands/js-exec/worker.d.ts +30 -0
- package/dist/commands/python3/worker.d.ts +1 -0
- package/dist/commands/query-engine/safe-object.d.ts +11 -0
- package/dist/commands/registry.d.ts +13 -2
- package/dist/commands/{python3/fs-bridge-handler.d.ts → worker-bridge/bridge-handler.d.ts} +25 -8
- package/dist/commands/{python3 → worker-bridge}/protocol.d.ts +6 -3
- package/dist/commands/{python3/sync-fs-backend.d.ts → worker-bridge/sync-backend.d.ts} +25 -4
- package/dist/index.d.cts +3 -3
- package/dist/index.d.ts +3 -3
- package/dist/interpreter/interpreter.d.ts +3 -0
- package/dist/interpreter/types.d.ts +8 -0
- package/dist/limits.d.ts +3 -1
- package/dist/types.d.ts +12 -0
- package/package.json +12 -11
- package/dist/bin/chunks/chunk-47HZU3SY.js +0 -5
- package/dist/bin/chunks/chunk-CZFRRDQC.js +0 -12
- package/dist/bin/chunks/chunk-N4EU64Y4.js +0 -9
- package/dist/bin/chunks/chunk-VIYJJTN2.js +0 -14
- package/dist/bin/chunks/env-HOVBNLUR.js +0 -2
- package/dist/bin/chunks/python3-KI2FQWSN.js +0 -17
- package/dist/bin/chunks/rg-34GE6REQ.js +0 -2
- package/dist/bin/chunks/xargs-GBL6PZ2K.js +0 -2
- package/dist/bin/shell/chunks/chunk-47HZU3SY.js +0 -5
- package/dist/bin/shell/chunks/chunk-CZFRRDQC.js +0 -12
- package/dist/bin/shell/chunks/chunk-N4EU64Y4.js +0 -9
- package/dist/bin/shell/chunks/chunk-VIYJJTN2.js +0 -14
- package/dist/bin/shell/chunks/env-HOVBNLUR.js +0 -2
- package/dist/bin/shell/chunks/python3-E5X6WBBU.js +0 -17
- package/dist/bin/shell/chunks/rg-34GE6REQ.js +0 -2
- package/dist/bin/shell/chunks/xargs-GBL6PZ2K.js +0 -2
- package/dist/bundle/chunks/chunk-3RA5L262.js +0 -8
- package/dist/bundle/chunks/chunk-EX62JIX3.js +0 -13
- package/dist/bundle/chunks/chunk-WECLUBEQ.js +0 -11
- package/dist/bundle/chunks/chunk-ZSJYNBAF.js +0 -4
- package/dist/bundle/chunks/env-XZY4LKEO.js +0 -1
- package/dist/bundle/chunks/python3-2OHR6PZU.js +0 -16
- package/dist/bundle/chunks/rg-RAICUFGG.js +0 -1
- package/dist/bundle/chunks/xargs-2BBAQDTC.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as yr}from"./chunk-ZXL7TQLN.js";import{b as Ar}from"./chunk-
|
|
1
|
+
import{b as yr}from"./chunk-ZXL7TQLN.js";import{b as Ar}from"./chunk-O2DBFL6Z.js";import{b as $r}from"./chunk-UNYNJIFU.js";import"./chunk-F55TLFGB.js";import"./chunk-SYMJJMQ4.js";import{c as Sr}from"./chunk-IUWCBQII.js";import{b as wr}from"./chunk-MDLLFABN.js";import{b as xr}from"./chunk-MLXIYONF.js";import{b as vr}from"./chunk-A65PWWJC.js";import{b as kr}from"./chunk-MHTUABJP.js";import{b as qr}from"./chunk-4HHKTUW3.js";import{b as Cr}from"./chunk-HJQJAYMS.js";import{b as br}from"./chunk-PP6PSHAB.js";import{d as Ir,e as Mr,f as jr}from"./chunk-LTZRCH7N.js";import{b as tr}from"./chunk-YTNYSM6T.js";import{b as lr}from"./chunk-JCMONG3T.js";import{b as ur}from"./chunk-A7A2DBEE.js";import{b as pr}from"./chunk-RVT3MU3A.js";import{b as er}from"./chunk-APT7OOP2.js";import{b as dr}from"./chunk-XKQRETAK.js";import{b as cr}from"./chunk-5V6VZH6T.js";import"./chunk-EIZGF4BS.js";import{b as hr}from"./chunk-CR5AFCPT.js";import{c as or,d as ar}from"./chunk-R6QSAL5T.js";import{b as sr}from"./chunk-LL3S3NLB.js";import{c as ir,d as gr}from"./chunk-D6CWQ5DW.js";import{b as mr}from"./chunk-RUF7WQ7U.js";import"./chunk-BBXLRYSX.js";import{b as Fr}from"./chunk-QJ7O6ZN3.js";import{b as zr}from"./chunk-TLSUDHID.js";import{b as fr}from"./chunk-D7MEQ3VN.js";import{b as nr}from"./chunk-GOV5EKKI.js";import"./chunk-3ZUFRYJ4.js";import{b as R}from"./chunk-ALLTKNUZ.js";import{b as U}from"./chunk-4Q4SM6WR.js";import{b as V}from"./chunk-XVDPCNWR.js";import{b as W}from"./chunk-RPNGRAAP.js";import{c as X,d as Y}from"./chunk-NAERJDUW.js";import{c as Z,d as _}from"./chunk-VOBGTVA6.js";import{b as N}from"./chunk-NCNPKYJZ.js";import{b as rr}from"./chunk-TOMNU26N.js";import{b as G}from"./chunk-VJFXDYWH.js";import{b as H}from"./chunk-PYSFUGCK.js";import{b as J}from"./chunk-VYOJP4TV.js";import{b as K}from"./chunk-MYE6AGBJ.js";import{b as L}from"./chunk-LWEGUNWT.js";import{b as O}from"./chunk-A7ICOL4V.js";import{b as P}from"./chunk-55VFSPNA.js";import{b as Q}from"./chunk-LPQPILI2.js";import{b as y}from"./chunk-WKFATFPP.js";import{b as A}from"./chunk-Z7JVV2SM.js";import{b as $}from"./chunk-SDNKECQQ.js";import{b as S}from"./chunk-JVPRLUMK.js";import{b as T}from"./chunk-XXZ46GOX.js";import{b as B}from"./chunk-QCDB2VPH.js";import{b as D}from"./chunk-F23WWYKW.js";import{b as E}from"./chunk-D4J545R4.js";import{b as w}from"./chunk-DCAAORBQ.js";import{b as x}from"./chunk-GXVXFKBA.js";import{b as v}from"./chunk-5QVNJEHU.js";import"./chunk-X2AJGDEF.js";import{d as k,e as q,f as C}from"./chunk-YS3AZT3J.js";import"./chunk-J642UCRS.js";import{b}from"./chunk-NYQYO467.js";import"./chunk-7TSDKFEO.js";import"./chunk-VLGZJRPG.js";import{b as I}from"./chunk-V3IEYMEA.js";import{b as M}from"./chunk-OARHFVLG.js";import{b as j}from"./chunk-KMEYNNUA.js";import{b as t}from"./chunk-IP7G3BNA.js";import{b as l}from"./chunk-NUYSJFDK.js";import{b as u}from"./chunk-A4JSPFCI.js";import{b as p}from"./chunk-FGALERPA.js";import{b as e}from"./chunk-4GTNDTRF.js";import{b as d}from"./chunk-A4HU7SVR.js";import{b as c}from"./chunk-HJWBQKYG.js";import{b as h}from"./chunk-64BAICW3.js";import"./chunk-HDQ56CKY.js";import"./chunk-RH6GWZAJ.js";import"./chunk-A5O5YHGN.js";import"./chunk-IPJHKYVM.js";import"./chunk-OJDRYQWQ.js";import"./chunk-24IMIIXA.js";import"./chunk-5QMZ5MUS.js";import"./chunk-YNYSPYQ5.js";import{b as i}from"./chunk-GCTKCWKD.js";import{b as g}from"./chunk-TXBZCHCQ.js";import"./chunk-7L36YK2X.js";import{b as m}from"./chunk-T56QNPHK.js";import"./chunk-EEXR5ZDP.js";import"./chunk-GFQRA5P5.js";import{b as F}from"./chunk-V7TAPXDL.js";import"./chunk-NUFRM6SI.js";import{b as z}from"./chunk-64CW2LGZ.js";import"./chunk-CCNMISUL.js";import{b as f}from"./chunk-OCS6LSEM.js";import"./chunk-HWKDQ44K.js";import{b as n}from"./chunk-OCLXQMOG.js";import"./chunk-44UOCSGV.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";var Er=[i,g,m,F,z,f,n,t,l,u,p,e,d,c,h,w,x,v,k,q,C,b,I,M,j,y,A,$,S,T,B,D,E,G,H,J,K,L,O,P,Q,R,U,V,W,X,Y,Z,_,N,rr,or,ar,sr,ir,gr,mr,Fr,zr,fr,nr,tr,lr,ur,pr,er,dr,cr,hr,wr,xr,vr,kr,qr,Cr,br,Ir,Mr,jr,yr,Ar,$r,Sr];function Tr(){return Er}var Br=new Map;for(let r of Tr())Br.set(r.name,new Set(r.flags.map(o=>o.flag)));function Fa(r,o,Dr){let a=Br.get(o);if(!(!a||a.size===0))for(let s of Dr)a.has(s)&&r.hit(`cmd:flag:${o}:${s}`)}export{Fa as emitFlagCoverage};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-MLXIYONF.js";import"./chunk-IPJHKYVM.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as helpCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a,b}from"./chunk-
|
|
1
|
+
import{a,b}from"./chunk-RUF7WQ7U.js";import"./chunk-BBXLRYSX.js";import"./chunk-7TSDKFEO.js";import"./chunk-OJDRYQWQ.js";import"./chunk-24IMIIXA.js";import"./chunk-5QMZ5MUS.js";import"./chunk-YNYSPYQ5.js";import"./chunk-7L36YK2X.js";import"./chunk-GFQRA5P5.js";import"./chunk-NUFRM6SI.js";import"./chunk-CCNMISUL.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as jqCommand};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import{a as F,b as M}from"./chunk-MJWMXCEJ.js";import"./chunk-XHM67O4N.js";import"./chunk-RH6GWZAJ.js";import{a as k,b as T}from"./chunk-A5O5YHGN.js";import"./chunk-IPJHKYVM.js";import{a as C}from"./chunk-OJDRYQWQ.js";import{b}from"./chunk-5QMZ5MUS.js";import{a as p}from"./chunk-CCNMISUL.js";import{b as j}from"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";import{AsyncLocalStorage as L}from"node:async_hooks";import{randomBytes as R}from"node:crypto";import{fileURLToPath as U}from"node:url";import{Worker as I}from"node:worker_threads";var J=1e4,D=6e4,W=new L,A=`js-exec - Sandboxed JavaScript/TypeScript runtime with Node.js-compatible APIs
|
|
2
|
+
|
|
3
|
+
Usage: js-exec [OPTIONS] [-c CODE | FILE] [ARGS...]
|
|
4
|
+
|
|
5
|
+
Options:
|
|
6
|
+
-c CODE Execute inline code
|
|
7
|
+
-m, --module Enable ES module mode (import/export)
|
|
8
|
+
--strip-types Strip TypeScript type annotations
|
|
9
|
+
--version, -V Show version
|
|
10
|
+
--help Show this help
|
|
11
|
+
|
|
12
|
+
Examples:
|
|
13
|
+
js-exec -c "console.log(1 + 2)"
|
|
14
|
+
js-exec script.js
|
|
15
|
+
js-exec app.ts
|
|
16
|
+
echo 'console.log("hello")' | js-exec
|
|
17
|
+
|
|
18
|
+
File Extension Auto-Detection:
|
|
19
|
+
.js script mode (module mode if top-level await detected)
|
|
20
|
+
.mjs ES module mode
|
|
21
|
+
.ts, .mts ES module mode + TypeScript stripping
|
|
22
|
+
|
|
23
|
+
Node.js Compatibility:
|
|
24
|
+
Code written for Node.js largely works here. Both require and import
|
|
25
|
+
are supported, the node: prefix works, and standard globals like process,
|
|
26
|
+
console, and fetch are available. All I/O is synchronous.
|
|
27
|
+
|
|
28
|
+
Available modules:
|
|
29
|
+
fs, path, child_process, process, console,
|
|
30
|
+
os, url, assert, util, events, buffer, stream,
|
|
31
|
+
string_decoder, querystring
|
|
32
|
+
|
|
33
|
+
fs (global, require('fs'), or import from 'node:fs'):
|
|
34
|
+
readFileSync, writeFileSync, appendFileSync, copyFileSync, renameSync
|
|
35
|
+
readdirSync, mkdirSync, rmSync, unlinkSync, rmdirSync
|
|
36
|
+
statSync, lstatSync, existsSync, realpathSync, chmodSync
|
|
37
|
+
symlinkSync, readlinkSync, readFileBuffer
|
|
38
|
+
fs.promises.readFile, fs.promises.writeFile, fs.promises.access, ...
|
|
39
|
+
|
|
40
|
+
path: join, resolve, dirname, basename, extname, normalize,
|
|
41
|
+
relative, isAbsolute, parse, format, sep, delimiter
|
|
42
|
+
|
|
43
|
+
child_process:
|
|
44
|
+
execSync(cmd) throws on non-zero exit, returns stdout
|
|
45
|
+
spawnSync(cmd, args) returns { stdout, stderr, status }
|
|
46
|
+
|
|
47
|
+
process (also global): argv, cwd(), exit(), env, platform, arch,
|
|
48
|
+
version, versions
|
|
49
|
+
|
|
50
|
+
os: platform(), arch(), homedir(), tmpdir(), type(), hostname(),
|
|
51
|
+
EOL, cpus(), endianness()
|
|
52
|
+
|
|
53
|
+
url: URL, URLSearchParams, parse(), format()
|
|
54
|
+
|
|
55
|
+
assert: ok(), equal(), strictEqual(), deepEqual(), throws(),
|
|
56
|
+
doesNotThrow(), fail()
|
|
57
|
+
|
|
58
|
+
util: format(), inspect(), promisify(), types, inherits()
|
|
59
|
+
|
|
60
|
+
events: EventEmitter (on, once, emit, off, removeListener, ...)
|
|
61
|
+
|
|
62
|
+
buffer: Buffer.from(), Buffer.alloc(), Buffer.concat(),
|
|
63
|
+
Buffer.isBuffer(), toString(), slice(), equals()
|
|
64
|
+
|
|
65
|
+
stream: Readable, Writable, Duplex, Transform, PassThrough, pipeline
|
|
66
|
+
|
|
67
|
+
string_decoder: StringDecoder (write, end)
|
|
68
|
+
|
|
69
|
+
querystring: parse(), stringify(), escape(), unescape()
|
|
70
|
+
|
|
71
|
+
Other Globals:
|
|
72
|
+
console log (stdout), error/warn (stderr)
|
|
73
|
+
fetch(url, opts) HTTP; returns Promise<Response> (Web Fetch API)
|
|
74
|
+
URL, URLSearchParams, Headers, Request, Response
|
|
75
|
+
Buffer Buffer.from(), Buffer.alloc(), etc.
|
|
76
|
+
|
|
77
|
+
Not Available:
|
|
78
|
+
http, https, net, tls, crypto, zlib, dns, cluster, worker_threads,
|
|
79
|
+
vm, v8, readline, and other Node.js built-in modules that require
|
|
80
|
+
native bindings. Use fetch() for HTTP requests.
|
|
81
|
+
|
|
82
|
+
Limits:
|
|
83
|
+
Memory: 64 MB per execution
|
|
84
|
+
Timeout: 10 s (60 s with network; configurable via maxJsTimeoutMs)
|
|
85
|
+
Engine: QuickJS (compiled to WebAssembly)
|
|
86
|
+
`;function N(t){let e={code:null,scriptFile:null,showVersion:!1,scriptArgs:[],isModule:!1,stripTypes:!1};if(t.length===0)return e;for(let r=0;r<t.length;r++){let s=t[r];if(s==="-m"||s==="--module"){e.isModule=!0;continue}if(s==="--strip-types"){e.stripTypes=!0;continue}if(s==="-c")return r+1>=t.length?{stdout:"",stderr:`js-exec: option requires an argument -- 'c'
|
|
87
|
+
`,exitCode:2}:(e.code=t[r+1],e.scriptArgs=t.slice(r+2),e);if(s==="--version"||s==="-V")return e.showVersion=!0,e;if(s.startsWith("-")&&s!=="-"&&s!=="--")return{stdout:"",stderr:`js-exec: unrecognized option '${s}'
|
|
88
|
+
`,exitCode:2};if(s==="--")return r+1<t.length&&(e.scriptFile=t[r+1],e.scriptArgs=t.slice(r+2)),e;if(!s.startsWith("-"))return e.scriptFile=s,e.scriptArgs=t.slice(r+1),e}return e}var i=null,w=null,c=[],o=null,H=U(new URL("./worker.js",import.meta.url));function m(){for(;c.length>0&&c[0].canceled;)c.shift();if(o||c.length===0)return;let t=c.shift();if(!t)return;o=t,z().postMessage(o.input)}function $(t,e){if(!t||typeof t!="object")return{success:!1,error:"Malformed worker response"};let r=t;return typeof r.protocolToken!="string"||r.protocolToken!==e?{success:!1,error:"Malformed worker response: invalid protocol token"}:typeof r.success!="boolean"?{success:!1,error:"Malformed worker response: missing success flag"}:r.success?{success:!0}:{success:!1,error:typeof r.error=="string"&&r.error.length>0?r.error:"Worker execution failed"}}function z(){if(w&&(T(w),w=null),i)return i;let t=b.runTrusted(()=>new I(H));return i=t,t.on("message",e=>{if(i===t){if(o){let r=$(e,o.input.protocolToken);o.resolve(r),o=null}c.length>0?m():V()}}),t.on("error",e=>{if(i===t){o&&(o.resolve({success:!1,error:p(e.message)}),o=null);for(let r of c)r.resolve({success:!1,error:"Worker crashed"});c.length=0,i=null}}),t.on("exit",()=>{i===t&&(i=null,o&&(o.resolve({success:!1,error:"Worker exited unexpectedly"}),o=null),c.length>0&&m())}),t}function V(){w=k(()=>{i&&!o&&c.length===0&&(i.terminate(),i=null)},5e3)}async function Q(t,e,r,s=[],n,u,a){return W.getStore()?{stdout:"",stderr:`js-exec: recursive invocation is not supported
|
|
89
|
+
`,exitCode:1}:G(t,e,r,s,n,u,a)}async function G(t,e,r,s=[],n,u,a){let h=F(),d=e.exec,S=d?(l,O)=>W.run(!0,()=>d(l,O)):void 0,P=new M(h,e.fs,e.cwd,"js-exec",e.fetch,e.limits?.maxOutputSize??0,S),v=e.limits?.maxJsTimeoutMs??J,y=e.fetch?Math.max(v,D):v,B={protocolToken:R(16).toString("hex"),sharedBuffer:h,jsCode:t,cwd:e.cwd,env:C(e.env),args:s,scriptPath:r,bootstrapCode:n,isModule:u,stripTypes:a,timeoutMs:y},E,_=new Promise(l=>{E=l}),f={input:B,resolve:()=>{}},q=k(()=>{if(o===f){let l=i;l&&(i=null,l.terminate()),o=null,m()}else f.canceled=!0,o||m();f.resolve({success:!1,error:`Execution timeout: exceeded ${y}ms limit`})},y);f.resolve=l=>{T(q),E(l)},c.push(f),m();let[x,g]=await Promise.all([P.run(y),_.catch(l=>({success:!1,error:p(l.message)}))]);return!g.success&&g.error?{stdout:x.stdout,stderr:`${x.stderr}js-exec: ${p(g.error)}
|
|
90
|
+
`,exitCode:x.exitCode||1}:x}var le={name:"js-exec",async execute(t,e){if(j(t))return{stdout:A,stderr:"",exitCode:0};let r=N(t);if("exitCode"in r)return r;if(r.showVersion)return{stdout:`QuickJS (quickjs-emscripten)
|
|
91
|
+
`,stderr:"",exitCode:0};let s,n;if(r.code!==null)s=r.code,n="-c";else if(r.scriptFile!==null){let d=e.fs.resolvePath(e.cwd,r.scriptFile);if(!await e.fs.exists(d))return{stdout:"",stderr:`js-exec: can't open file '${r.scriptFile}': No such file or directory
|
|
92
|
+
`,exitCode:2};try{s=await e.fs.readFile(d),n=d}catch(S){return{stdout:"",stderr:`js-exec: can't open file '${r.scriptFile}': ${p(S.message)}
|
|
93
|
+
`,exitCode:2}}}else if(e.stdin.trim())s=e.stdin,n="<stdin>";else return{stdout:"",stderr:`js-exec: no input provided (use -c CODE or provide a script file)
|
|
94
|
+
`,exitCode:2};let u=r.isModule,a=r.stripTypes;n&&n!=="-c"&&n!=="<stdin>"&&((n.endsWith(".mjs")||n.endsWith(".mts")||n.endsWith(".ts"))&&(u=!0),(n.endsWith(".ts")||n.endsWith(".mts"))&&(a=!0)),!u&&/\bawait\s+[\w([`]/.test(s)&&(u=!0);let h=e.jsBootstrapCode;return Q(s,e,n,r.scriptArgs,h,u,a)}},ue={name:"node",async execute(){return{stdout:"",stderr:`node: this sandbox uses js-exec instead of node
|
|
95
|
+
|
|
96
|
+
${A}`,exitCode:1}}};export{le as jsExecCommand,ue as nodeStubCommand};
|