just-bash 2.12.7 → 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.
Files changed (200) hide show
  1. package/README.md +89 -3
  2. package/dist/AGENTS.md +1 -1
  3. package/dist/Bash.d.ts +17 -0
  4. package/dist/bin/chunks/{awk2-EB5SCHVW.js → awk2-VTJMI54B.js} +1 -1
  5. package/dist/bin/chunks/chunk-3YMCKZTY.js +14 -0
  6. package/dist/bin/chunks/{chunk-O5B6WWQQ.js → chunk-A3HQTYHR.js} +1 -1
  7. package/dist/bin/chunks/chunk-AAW7UMPO.js +9 -0
  8. package/dist/bin/chunks/{chunk-ROMKUVHI.js → chunk-AXWFPG37.js} +1 -1
  9. package/dist/bin/chunks/{chunk-BBRVF6XE.js → chunk-B3RU2PUI.js} +27 -27
  10. package/dist/bin/chunks/chunk-CQG2HEAL.js +5 -0
  11. package/dist/bin/chunks/chunk-DOXYBGNA.js +12 -0
  12. package/dist/bin/chunks/{chunk-PIBXJ3VX.js → chunk-GR23MPTT.js} +1 -1
  13. package/dist/bin/chunks/{chunk-35JD7YEM.js → chunk-HJEHIH4P.js} +13 -13
  14. package/dist/bin/chunks/{chunk-ZNPXCE5B.js → chunk-LGF54XJQ.js} +1 -1
  15. package/dist/bin/{shell/chunks/chunk-5MUD3WB2.js → chunks/chunk-MO4RPBN2.js} +1 -1
  16. package/dist/bin/chunks/chunk-N6KA6G3Q.js +11 -0
  17. package/dist/bin/{shell/chunks/chunk-JX6YLHDX.js → chunks/chunk-OOJCYVYF.js} +1 -1
  18. package/dist/bin/{shell/chunks/chunk-2BC3N3L2.js → chunks/chunk-ORUYSLP4.js} +4 -4
  19. package/dist/bin/{shell/chunks/chunk-OLN6BSO3.js → chunks/chunk-SDLWFYVT.js} +2 -2
  20. package/dist/bin/chunks/{chunk-STOAUD75.js → chunk-THNL3XFF.js} +8 -8
  21. package/dist/bin/chunks/{chunk-DHFZMFUW.js → chunk-UPUMZYZE.js} +1 -1
  22. package/dist/bin/chunks/{chunk-ZJGIBTWD.js → chunk-V7ZOPVQS.js} +1 -1
  23. package/dist/bin/chunks/{chunk-IRCLOW32.js → chunk-VVFGRIJZ.js} +1 -1
  24. package/dist/bin/chunks/{chunk-QTII62YM.js → chunk-WS6P4H4S.js} +1 -1
  25. package/dist/bin/{shell/chunks/chunk-NTKUVXEL.js → chunks/chunk-YU6OGPZR.js} +2 -2
  26. package/dist/bin/{shell/chunks/chunk-PLKGKTIS.js → chunks/chunk-ZO5PSLKR.js} +2 -2
  27. package/dist/bin/{shell/chunks/curl-3GMIPMCI.js → chunks/curl-B64SIJOD.js} +1 -1
  28. package/dist/bin/chunks/env-NTPN5QYM.js +2 -0
  29. package/dist/bin/{shell/chunks/expansion-JBCP2CHQ.js → chunks/expansion-2RO5M3QC.js} +1 -1
  30. package/dist/bin/chunks/{find-MTLF23HX.js → find-GAYRV4IF.js} +1 -1
  31. package/dist/bin/chunks/flag-coverage-IRM4GISL.js +2 -0
  32. package/dist/bin/{shell/chunks/help-4H52JYYC.js → chunks/help-DVG4AAGE.js} +1 -1
  33. package/dist/bin/chunks/{jq-P457LMHU.js → jq-V7FYGIKO.js} +1 -1
  34. package/dist/bin/chunks/js-exec-YGYYZEEQ.js +97 -0
  35. package/dist/bin/chunks/js-exec-worker.js +4368 -0
  36. package/dist/bin/chunks/python3-EIXZW3LO.js +12 -0
  37. package/dist/bin/chunks/rg-C6KMBFNG.js +2 -0
  38. package/dist/bin/{shell/chunks/sed-UV2LTNVK.js → chunks/sed-3C6IBX5L.js} +1 -1
  39. package/dist/bin/chunks/sleep-ND6FZRZ4.js +2 -0
  40. package/dist/bin/chunks/{sqlite3-B3P3OMPI.js → sqlite3-TZEE4O7U.js} +1 -1
  41. package/dist/bin/chunks/tar-TOWX2TDU.js +2 -0
  42. package/dist/bin/{shell/chunks/time-GZSHCM77.js → chunks/time-VSKBXRQH.js} +1 -1
  43. package/dist/bin/chunks/timeout-Z24MNWOP.js +2 -0
  44. package/dist/bin/chunks/worker.js +168 -33
  45. package/dist/bin/chunks/xan-MOZFJGMY.js +2 -0
  46. package/dist/bin/chunks/xargs-SCYIFXOW.js +2 -0
  47. package/dist/bin/chunks/yq-JJLSDDST.js +2 -0
  48. package/dist/bin/just-bash.js +211 -210
  49. package/dist/bin/shell/chunks/{awk2-EB5SCHVW.js → awk2-VTJMI54B.js} +1 -1
  50. package/dist/bin/shell/chunks/chunk-3YMCKZTY.js +14 -0
  51. package/dist/bin/shell/chunks/{chunk-O5B6WWQQ.js → chunk-A3HQTYHR.js} +1 -1
  52. package/dist/bin/shell/chunks/chunk-AAW7UMPO.js +9 -0
  53. package/dist/bin/shell/chunks/{chunk-ROMKUVHI.js → chunk-AXWFPG37.js} +1 -1
  54. package/dist/bin/shell/chunks/{chunk-BBRVF6XE.js → chunk-B3RU2PUI.js} +27 -27
  55. package/dist/bin/shell/chunks/chunk-CQG2HEAL.js +5 -0
  56. package/dist/bin/shell/chunks/chunk-DOXYBGNA.js +12 -0
  57. package/dist/bin/shell/chunks/{chunk-PIBXJ3VX.js → chunk-GR23MPTT.js} +1 -1
  58. package/dist/bin/shell/chunks/{chunk-35JD7YEM.js → chunk-HJEHIH4P.js} +13 -13
  59. package/dist/bin/shell/chunks/{chunk-ZNPXCE5B.js → chunk-LGF54XJQ.js} +1 -1
  60. package/dist/bin/{chunks/chunk-5MUD3WB2.js → shell/chunks/chunk-MO4RPBN2.js} +1 -1
  61. package/dist/bin/shell/chunks/chunk-N6KA6G3Q.js +11 -0
  62. package/dist/bin/{chunks/chunk-JX6YLHDX.js → shell/chunks/chunk-OOJCYVYF.js} +1 -1
  63. package/dist/bin/{chunks/chunk-2BC3N3L2.js → shell/chunks/chunk-ORUYSLP4.js} +4 -4
  64. package/dist/bin/{chunks/chunk-OLN6BSO3.js → shell/chunks/chunk-SDLWFYVT.js} +2 -2
  65. package/dist/bin/shell/chunks/{chunk-STOAUD75.js → chunk-THNL3XFF.js} +8 -8
  66. package/dist/bin/shell/chunks/{chunk-DHFZMFUW.js → chunk-UPUMZYZE.js} +1 -1
  67. package/dist/bin/shell/chunks/{chunk-ZJGIBTWD.js → chunk-V7ZOPVQS.js} +1 -1
  68. package/dist/bin/shell/chunks/{chunk-IRCLOW32.js → chunk-VVFGRIJZ.js} +1 -1
  69. package/dist/bin/shell/chunks/{chunk-QTII62YM.js → chunk-WS6P4H4S.js} +1 -1
  70. package/dist/bin/{chunks/chunk-NTKUVXEL.js → shell/chunks/chunk-YU6OGPZR.js} +2 -2
  71. package/dist/bin/{chunks/chunk-PLKGKTIS.js → shell/chunks/chunk-ZO5PSLKR.js} +2 -2
  72. package/dist/bin/{chunks/curl-3GMIPMCI.js → shell/chunks/curl-B64SIJOD.js} +1 -1
  73. package/dist/bin/shell/chunks/env-NTPN5QYM.js +2 -0
  74. package/dist/bin/{chunks/expansion-JBCP2CHQ.js → shell/chunks/expansion-2RO5M3QC.js} +1 -1
  75. package/dist/bin/shell/chunks/{find-MTLF23HX.js → find-GAYRV4IF.js} +1 -1
  76. package/dist/bin/shell/chunks/flag-coverage-IRM4GISL.js +2 -0
  77. package/dist/bin/{chunks/help-4H52JYYC.js → shell/chunks/help-DVG4AAGE.js} +1 -1
  78. package/dist/bin/shell/chunks/{jq-P457LMHU.js → jq-V7FYGIKO.js} +1 -1
  79. package/dist/bin/shell/chunks/js-exec-VYG74FQ3.js +97 -0
  80. package/dist/bin/shell/chunks/python3-WO3WFGMS.js +12 -0
  81. package/dist/bin/shell/chunks/rg-C6KMBFNG.js +2 -0
  82. package/dist/bin/{chunks/sed-UV2LTNVK.js → shell/chunks/sed-3C6IBX5L.js} +1 -1
  83. package/dist/bin/shell/chunks/sleep-ND6FZRZ4.js +2 -0
  84. package/dist/bin/shell/chunks/{sqlite3-B3P3OMPI.js → sqlite3-TZEE4O7U.js} +1 -1
  85. package/dist/bin/shell/chunks/tar-TOWX2TDU.js +2 -0
  86. package/dist/bin/{chunks/time-GZSHCM77.js → shell/chunks/time-VSKBXRQH.js} +1 -1
  87. package/dist/bin/shell/chunks/timeout-Z24MNWOP.js +2 -0
  88. package/dist/bin/shell/chunks/xan-MOZFJGMY.js +2 -0
  89. package/dist/bin/shell/chunks/xargs-SCYIFXOW.js +2 -0
  90. package/dist/bin/shell/chunks/yq-JJLSDDST.js +2 -0
  91. package/dist/bin/shell/shell.js +208 -208
  92. package/dist/bundle/browser.js +594 -594
  93. package/dist/bundle/chunks/{awk2-VPBKDCSO.js → awk2-POPGKRAI.js} +1 -1
  94. package/dist/bundle/chunks/{chunk-X36DXRVC.js → chunk-24IMIIXA.js} +1 -1
  95. package/dist/bundle/chunks/{chunk-72EQZSVH.js → chunk-5QMZ5MUS.js} +2 -2
  96. package/dist/bundle/chunks/{chunk-DZZS6SJP.js → chunk-7TSDKFEO.js} +1 -1
  97. package/dist/bundle/chunks/{chunk-7YDOWJ75.js → chunk-A5O5YHGN.js} +1 -1
  98. package/dist/bundle/chunks/{chunk-KZ7BI7TV.js → chunk-BBXLRYSX.js} +2 -2
  99. package/dist/bundle/chunks/{chunk-TRD56HID.js → chunk-FEIOJCZD.js} +1 -1
  100. package/dist/bundle/chunks/{chunk-X3CVFNQZ.js → chunk-GOV5EKKI.js} +1 -1
  101. package/dist/bundle/chunks/{chunk-AUD37QB3.js → chunk-IUWCBQII.js} +1 -1
  102. package/dist/bundle/chunks/chunk-JCMONG3T.js +13 -0
  103. package/dist/bundle/chunks/{chunk-D2FZX7A2.js → chunk-LPQPILI2.js} +8 -8
  104. package/dist/bundle/chunks/chunk-MJWMXCEJ.js +10 -0
  105. package/dist/bundle/chunks/{chunk-2GOYXRRP.js → chunk-MLXIYONF.js} +4 -4
  106. package/dist/bundle/chunks/chunk-NAERJDUW.js +8 -0
  107. package/dist/bundle/chunks/{chunk-OKEHYWBE.js → chunk-NYQYO467.js} +13 -13
  108. package/dist/bundle/chunks/{chunk-C7ZTXK5C.js → chunk-O2DBFL6Z.js} +1 -1
  109. package/dist/bundle/chunks/{chunk-VSWTMNI3.js → chunk-OARHFVLG.js} +2 -2
  110. package/dist/bundle/chunks/{chunk-U5FWK6IA.js → chunk-RUF7WQ7U.js} +1 -1
  111. package/dist/bundle/chunks/chunk-TOMNU26N.js +4 -0
  112. package/dist/bundle/chunks/{chunk-4YPFHVJJ.js → chunk-UNYNJIFU.js} +27 -27
  113. package/dist/bundle/chunks/{chunk-VBF2GWEM.js → chunk-V3IEYMEA.js} +1 -1
  114. package/dist/bundle/chunks/chunk-YTNYSM6T.js +11 -0
  115. package/dist/bundle/chunks/{chunk-BED5HSP2.js → chunk-ZXL7TQLN.js} +1 -1
  116. package/dist/bundle/chunks/{curl-KM2ZAUR6.js → curl-FCIO57JJ.js} +1 -1
  117. package/dist/bundle/chunks/env-5EPCWSXR.js +1 -0
  118. package/dist/bundle/chunks/{expansion-XG7G47TX.js → expansion-ENLSRCXJ.js} +1 -1
  119. package/dist/bundle/chunks/{find-DOIVMX6X.js → find-TPUOAIUQ.js} +1 -1
  120. package/dist/bundle/chunks/flag-coverage-SPT2DN2I.js +1 -0
  121. package/dist/bundle/chunks/{help-IA5CMGR4.js → help-VVWX7SA5.js} +1 -1
  122. package/dist/bundle/chunks/{jq-NLRWI2Q6.js → jq-DIRZBOTX.js} +1 -1
  123. package/dist/bundle/chunks/js-exec-R2LSP7M4.js +96 -0
  124. package/dist/bundle/chunks/js-exec-worker.js +4368 -0
  125. package/dist/bundle/chunks/python3-DH2SBOI3.js +11 -0
  126. package/dist/bundle/chunks/rg-FOQSCCX3.js +1 -0
  127. package/dist/bundle/chunks/{sed-2BILOGNL.js → sed-DISNI47D.js} +1 -1
  128. package/dist/bundle/chunks/sleep-VZFPZFWA.js +1 -0
  129. package/dist/bundle/chunks/{sqlite3-VEDNWJL6.js → sqlite3-7F22DOIP.js} +1 -1
  130. package/dist/bundle/chunks/tar-232RCEFK.js +1 -0
  131. package/dist/bundle/chunks/{time-XL42Z4U5.js → time-FABCOJJU.js} +1 -1
  132. package/dist/bundle/chunks/timeout-VRKMCG72.js +1 -0
  133. package/dist/bundle/chunks/worker.js +168 -33
  134. package/dist/bundle/chunks/xan-BXDXYEIB.js +1 -0
  135. package/dist/bundle/chunks/xargs-I6EZUCYF.js +1 -0
  136. package/dist/bundle/chunks/yq-XMVSIL6Z.js +1 -0
  137. package/dist/bundle/index.cjs +976 -877
  138. package/dist/bundle/index.js +245 -245
  139. package/dist/commands/js-exec/fetch-polyfill.d.ts +6 -0
  140. package/dist/commands/js-exec/js-exec.d.ts +11 -0
  141. package/dist/commands/js-exec/module-shims.d.ts +29 -0
  142. package/dist/commands/js-exec/path-polyfill.d.ts +6 -0
  143. package/dist/commands/js-exec/worker.d.ts +30 -0
  144. package/dist/commands/python3/worker.d.ts +1 -0
  145. package/dist/commands/query-engine/safe-object.d.ts +11 -0
  146. package/dist/commands/registry.d.ts +13 -2
  147. package/dist/commands/{python3/fs-bridge-handler.d.ts → worker-bridge/bridge-handler.d.ts} +25 -8
  148. package/dist/commands/{python3 → worker-bridge}/protocol.d.ts +6 -3
  149. package/dist/commands/{python3/sync-fs-backend.d.ts → worker-bridge/sync-backend.d.ts} +25 -4
  150. package/dist/index.d.cts +3 -3
  151. package/dist/index.d.ts +3 -3
  152. package/dist/interpreter/interpreter.d.ts +3 -0
  153. package/dist/interpreter/types.d.ts +8 -0
  154. package/dist/limits.d.ts +3 -1
  155. package/dist/network/allow-list/shared.d.ts +8 -0
  156. package/dist/network/types.d.ts +15 -1
  157. package/dist/types.d.ts +12 -0
  158. package/package.json +12 -11
  159. package/dist/bin/chunks/chunk-47HZU3SY.js +0 -5
  160. package/dist/bin/chunks/chunk-N4EU64Y4.js +0 -9
  161. package/dist/bin/chunks/chunk-VCKKRS7V.js +0 -12
  162. package/dist/bin/chunks/chunk-VIYJJTN2.js +0 -14
  163. package/dist/bin/chunks/env-HOVBNLUR.js +0 -2
  164. package/dist/bin/chunks/flag-coverage-7GOZYXJT.js +0 -2
  165. package/dist/bin/chunks/python3-45TMCI4M.js +0 -17
  166. package/dist/bin/chunks/rg-34GE6REQ.js +0 -2
  167. package/dist/bin/chunks/sleep-3WHM7JMW.js +0 -2
  168. package/dist/bin/chunks/tar-SO3XDDIW.js +0 -2
  169. package/dist/bin/chunks/timeout-BYB3L2JA.js +0 -2
  170. package/dist/bin/chunks/xan-FZB7FHX3.js +0 -2
  171. package/dist/bin/chunks/xargs-GBL6PZ2K.js +0 -2
  172. package/dist/bin/chunks/yq-H7D2U3HS.js +0 -2
  173. package/dist/bin/shell/chunks/chunk-47HZU3SY.js +0 -5
  174. package/dist/bin/shell/chunks/chunk-N4EU64Y4.js +0 -9
  175. package/dist/bin/shell/chunks/chunk-VCKKRS7V.js +0 -12
  176. package/dist/bin/shell/chunks/chunk-VIYJJTN2.js +0 -14
  177. package/dist/bin/shell/chunks/env-HOVBNLUR.js +0 -2
  178. package/dist/bin/shell/chunks/flag-coverage-7GOZYXJT.js +0 -2
  179. package/dist/bin/shell/chunks/python3-IV3DBMHM.js +0 -17
  180. package/dist/bin/shell/chunks/rg-34GE6REQ.js +0 -2
  181. package/dist/bin/shell/chunks/sleep-3WHM7JMW.js +0 -2
  182. package/dist/bin/shell/chunks/tar-SO3XDDIW.js +0 -2
  183. package/dist/bin/shell/chunks/timeout-BYB3L2JA.js +0 -2
  184. package/dist/bin/shell/chunks/xan-FZB7FHX3.js +0 -2
  185. package/dist/bin/shell/chunks/xargs-GBL6PZ2K.js +0 -2
  186. package/dist/bin/shell/chunks/yq-H7D2U3HS.js +0 -2
  187. package/dist/bundle/chunks/chunk-3RA5L262.js +0 -8
  188. package/dist/bundle/chunks/chunk-6HBBXB3L.js +0 -11
  189. package/dist/bundle/chunks/chunk-EX62JIX3.js +0 -13
  190. package/dist/bundle/chunks/chunk-ZSJYNBAF.js +0 -4
  191. package/dist/bundle/chunks/env-XZY4LKEO.js +0 -1
  192. package/dist/bundle/chunks/flag-coverage-NT32EG6Q.js +0 -1
  193. package/dist/bundle/chunks/python3-G2ZUJAQL.js +0 -16
  194. package/dist/bundle/chunks/rg-RAICUFGG.js +0 -1
  195. package/dist/bundle/chunks/sleep-IUBP5GMH.js +0 -1
  196. package/dist/bundle/chunks/tar-LKO7DKAK.js +0 -1
  197. package/dist/bundle/chunks/timeout-TL4Q5YKZ.js +0 -1
  198. package/dist/bundle/chunks/xan-KSDYKKEK.js +0 -1
  199. package/dist/bundle/chunks/xargs-2BBAQDTC.js +0 -1
  200. package/dist/bundle/chunks/yq-HIQ4WMDY.js +0 -1
@@ -1,2 +1,2 @@
1
1
  #!/usr/bin/env node
2
- import{a,b}from"./chunk-PIBXJ3VX.js";import"./chunk-PLKGKTIS.js";import"./chunk-ZJGIBTWD.js";import"./chunk-4PRVMER6.js";import"./chunk-5MUD3WB2.js";import"./chunk-NTKUVXEL.js";import"./chunk-SE4C7FJY.js";import"./chunk-5WFYIUU2.js";import"./chunk-6KZRLMG3.js";import"./chunk-OBH7XN5N.js";import"./chunk-SYG3IW7P.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as jqCommand};
2
+ import{a,b}from"./chunk-GR23MPTT.js";import"./chunk-ZO5PSLKR.js";import"./chunk-V7ZOPVQS.js";import"./chunk-4PRVMER6.js";import"./chunk-MO4RPBN2.js";import"./chunk-YU6OGPZR.js";import"./chunk-SE4C7FJY.js";import"./chunk-5WFYIUU2.js";import"./chunk-6KZRLMG3.js";import"./chunk-OBH7XN5N.js";import"./chunk-SYG3IW7P.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as jqCommand};
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env node
2
+ import{a as F,b as M}from"./chunk-N6KA6G3Q.js";import"./chunk-4OALHZXB.js";import"./chunk-MY5PY2PL.js";import"./chunk-QZNF3Y3J.js";import{a as k,b as T}from"./chunk-OOJCYVYF.js";import{a as C}from"./chunk-4PRVMER6.js";import{b}from"./chunk-YU6OGPZR.js";import{a as p}from"./chunk-SYG3IW7P.js";import{b as j}from"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.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
3
+
4
+ Usage: js-exec [OPTIONS] [-c CODE | FILE] [ARGS...]
5
+
6
+ Options:
7
+ -c CODE Execute inline code
8
+ -m, --module Enable ES module mode (import/export)
9
+ --strip-types Strip TypeScript type annotations
10
+ --version, -V Show version
11
+ --help Show this help
12
+
13
+ Examples:
14
+ js-exec -c "console.log(1 + 2)"
15
+ js-exec script.js
16
+ js-exec app.ts
17
+ echo 'console.log("hello")' | js-exec
18
+
19
+ File Extension Auto-Detection:
20
+ .js script mode (module mode if top-level await detected)
21
+ .mjs ES module mode
22
+ .ts, .mts ES module mode + TypeScript stripping
23
+
24
+ Node.js Compatibility:
25
+ Code written for Node.js largely works here. Both require and import
26
+ are supported, the node: prefix works, and standard globals like process,
27
+ console, and fetch are available. All I/O is synchronous.
28
+
29
+ Available modules:
30
+ fs, path, child_process, process, console,
31
+ os, url, assert, util, events, buffer, stream,
32
+ string_decoder, querystring
33
+
34
+ fs (global, require('fs'), or import from 'node:fs'):
35
+ readFileSync, writeFileSync, appendFileSync, copyFileSync, renameSync
36
+ readdirSync, mkdirSync, rmSync, unlinkSync, rmdirSync
37
+ statSync, lstatSync, existsSync, realpathSync, chmodSync
38
+ symlinkSync, readlinkSync, readFileBuffer
39
+ fs.promises.readFile, fs.promises.writeFile, fs.promises.access, ...
40
+
41
+ path: join, resolve, dirname, basename, extname, normalize,
42
+ relative, isAbsolute, parse, format, sep, delimiter
43
+
44
+ child_process:
45
+ execSync(cmd) throws on non-zero exit, returns stdout
46
+ spawnSync(cmd, args) returns { stdout, stderr, status }
47
+
48
+ process (also global): argv, cwd(), exit(), env, platform, arch,
49
+ version, versions
50
+
51
+ os: platform(), arch(), homedir(), tmpdir(), type(), hostname(),
52
+ EOL, cpus(), endianness()
53
+
54
+ url: URL, URLSearchParams, parse(), format()
55
+
56
+ assert: ok(), equal(), strictEqual(), deepEqual(), throws(),
57
+ doesNotThrow(), fail()
58
+
59
+ util: format(), inspect(), promisify(), types, inherits()
60
+
61
+ events: EventEmitter (on, once, emit, off, removeListener, ...)
62
+
63
+ buffer: Buffer.from(), Buffer.alloc(), Buffer.concat(),
64
+ Buffer.isBuffer(), toString(), slice(), equals()
65
+
66
+ stream: Readable, Writable, Duplex, Transform, PassThrough, pipeline
67
+
68
+ string_decoder: StringDecoder (write, end)
69
+
70
+ querystring: parse(), stringify(), escape(), unescape()
71
+
72
+ Other Globals:
73
+ console log (stdout), error/warn (stderr)
74
+ fetch(url, opts) HTTP; returns Promise<Response> (Web Fetch API)
75
+ URL, URLSearchParams, Headers, Request, Response
76
+ Buffer Buffer.from(), Buffer.alloc(), etc.
77
+
78
+ Not Available:
79
+ http, https, net, tls, crypto, zlib, dns, cluster, worker_threads,
80
+ vm, v8, readline, and other Node.js built-in modules that require
81
+ native bindings. Use fetch() for HTTP requests.
82
+
83
+ Limits:
84
+ Memory: 64 MB per execution
85
+ Timeout: 10 s (60 s with network; configurable via maxJsTimeoutMs)
86
+ Engine: QuickJS (compiled to WebAssembly)
87
+ `;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'
88
+ `,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}'
89
+ `,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
90
+ `,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)}
91
+ `,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)
92
+ `,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
93
+ `,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)}
94
+ `,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)
95
+ `,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
96
+
97
+ ${A}`,exitCode:1}}};export{le as jsExecCommand,ue as nodeStubCommand};