just-bash 2.12.7 → 2.12.8

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 (94) hide show
  1. package/dist/bin/chunks/{awk2-EB5SCHVW.js → awk2-J2PNSA7C.js} +1 -1
  2. package/dist/bin/{shell/chunks/chunk-BBRVF6XE.js → chunks/chunk-2V53PP6G.js} +1 -1
  3. package/dist/bin/chunks/{chunk-ROMKUVHI.js → chunk-AXWFPG37.js} +1 -1
  4. package/dist/bin/chunks/{chunk-VCKKRS7V.js → chunk-CZFRRDQC.js} +1 -1
  5. package/dist/bin/{shell/chunks/chunk-5MUD3WB2.js → chunks/chunk-MO4RPBN2.js} +1 -1
  6. package/dist/bin/{shell/chunks/chunk-JX6YLHDX.js → chunks/chunk-OOJCYVYF.js} +1 -1
  7. package/dist/bin/{shell/chunks/chunk-OLN6BSO3.js → chunks/chunk-REGSV3X5.js} +1 -1
  8. package/dist/bin/chunks/{chunk-ZNPXCE5B.js → chunk-UG4GMDQL.js} +1 -1
  9. package/dist/bin/{shell/chunks/chunk-DHFZMFUW.js → chunks/chunk-UPUMZYZE.js} +1 -1
  10. package/dist/bin/chunks/{chunk-IRCLOW32.js → chunk-VVFGRIJZ.js} +1 -1
  11. package/dist/bin/chunks/{chunk-QTII62YM.js → chunk-WS6P4H4S.js} +1 -1
  12. package/dist/bin/chunks/{chunk-PIBXJ3VX.js → chunk-YAEF6X2N.js} +1 -1
  13. package/dist/bin/chunks/{chunk-NTKUVXEL.js → chunk-YU6OGPZR.js} +2 -2
  14. package/dist/bin/{shell/chunks/chunk-PLKGKTIS.js → chunks/chunk-ZYQQ6B7B.js} +1 -1
  15. package/dist/bin/chunks/{flag-coverage-7GOZYXJT.js → flag-coverage-CFWN3JJN.js} +1 -1
  16. package/dist/bin/{shell/chunks/jq-P457LMHU.js → chunks/jq-JFXEKNLN.js} +1 -1
  17. package/dist/bin/chunks/{python3-45TMCI4M.js → python3-KI2FQWSN.js} +1 -1
  18. package/dist/bin/{shell/chunks/sed-UV2LTNVK.js → chunks/sed-3C6IBX5L.js} +1 -1
  19. package/dist/bin/chunks/sleep-ND6FZRZ4.js +2 -0
  20. package/dist/bin/{shell/chunks/sqlite3-B3P3OMPI.js → chunks/sqlite3-TZEE4O7U.js} +1 -1
  21. package/dist/bin/chunks/tar-TOWX2TDU.js +2 -0
  22. package/dist/bin/chunks/timeout-JJWIFL7W.js +2 -0
  23. package/dist/bin/chunks/worker.js +81 -0
  24. package/dist/bin/chunks/{xan-FZB7FHX3.js → xan-M6MLWZCU.js} +1 -1
  25. package/dist/bin/chunks/yq-YWUQUXJJ.js +2 -0
  26. package/dist/bin/just-bash.js +166 -166
  27. package/dist/bin/shell/chunks/{awk2-EB5SCHVW.js → awk2-J2PNSA7C.js} +1 -1
  28. package/dist/bin/{chunks/chunk-BBRVF6XE.js → shell/chunks/chunk-2V53PP6G.js} +1 -1
  29. package/dist/bin/shell/chunks/{chunk-ROMKUVHI.js → chunk-AXWFPG37.js} +1 -1
  30. package/dist/bin/shell/chunks/{chunk-VCKKRS7V.js → chunk-CZFRRDQC.js} +1 -1
  31. package/dist/bin/{chunks/chunk-5MUD3WB2.js → shell/chunks/chunk-MO4RPBN2.js} +1 -1
  32. package/dist/bin/{chunks/chunk-JX6YLHDX.js → shell/chunks/chunk-OOJCYVYF.js} +1 -1
  33. package/dist/bin/{chunks/chunk-OLN6BSO3.js → shell/chunks/chunk-REGSV3X5.js} +1 -1
  34. package/dist/bin/shell/chunks/{chunk-ZNPXCE5B.js → chunk-UG4GMDQL.js} +1 -1
  35. package/dist/bin/{chunks/chunk-DHFZMFUW.js → shell/chunks/chunk-UPUMZYZE.js} +1 -1
  36. package/dist/bin/shell/chunks/{chunk-IRCLOW32.js → chunk-VVFGRIJZ.js} +1 -1
  37. package/dist/bin/shell/chunks/{chunk-QTII62YM.js → chunk-WS6P4H4S.js} +1 -1
  38. package/dist/bin/shell/chunks/{chunk-PIBXJ3VX.js → chunk-YAEF6X2N.js} +1 -1
  39. package/dist/bin/shell/chunks/{chunk-NTKUVXEL.js → chunk-YU6OGPZR.js} +2 -2
  40. package/dist/bin/{chunks/chunk-PLKGKTIS.js → shell/chunks/chunk-ZYQQ6B7B.js} +1 -1
  41. package/dist/bin/shell/chunks/{flag-coverage-7GOZYXJT.js → flag-coverage-CFWN3JJN.js} +1 -1
  42. package/dist/bin/{chunks/jq-P457LMHU.js → shell/chunks/jq-JFXEKNLN.js} +1 -1
  43. package/dist/bin/shell/chunks/{python3-IV3DBMHM.js → python3-E5X6WBBU.js} +1 -1
  44. package/dist/bin/{chunks/sed-UV2LTNVK.js → shell/chunks/sed-3C6IBX5L.js} +1 -1
  45. package/dist/bin/shell/chunks/sleep-ND6FZRZ4.js +2 -0
  46. package/dist/bin/{chunks/sqlite3-B3P3OMPI.js → shell/chunks/sqlite3-TZEE4O7U.js} +1 -1
  47. package/dist/bin/shell/chunks/tar-TOWX2TDU.js +2 -0
  48. package/dist/bin/shell/chunks/timeout-JJWIFL7W.js +2 -0
  49. package/dist/bin/shell/chunks/{xan-FZB7FHX3.js → xan-M6MLWZCU.js} +1 -1
  50. package/dist/bin/shell/chunks/yq-YWUQUXJJ.js +2 -0
  51. package/dist/bin/shell/shell.js +166 -166
  52. package/dist/bundle/browser.js +425 -425
  53. package/dist/bundle/chunks/{awk2-VPBKDCSO.js → awk2-FUVZGMX2.js} +1 -1
  54. package/dist/bundle/chunks/{chunk-X36DXRVC.js → chunk-24IMIIXA.js} +1 -1
  55. package/dist/bundle/chunks/{chunk-72EQZSVH.js → chunk-5QMZ5MUS.js} +2 -2
  56. package/dist/bundle/chunks/{chunk-7YDOWJ75.js → chunk-A5O5YHGN.js} +1 -1
  57. package/dist/bundle/chunks/{chunk-U5FWK6IA.js → chunk-AKVMAONP.js} +1 -1
  58. package/dist/bundle/chunks/{chunk-KZ7BI7TV.js → chunk-D4QDMGEB.js} +1 -1
  59. package/dist/bundle/chunks/{chunk-X3CVFNQZ.js → chunk-GOV5EKKI.js} +1 -1
  60. package/dist/bundle/chunks/{chunk-AUD37QB3.js → chunk-IUWCBQII.js} +1 -1
  61. package/dist/bundle/chunks/{chunk-VSWTMNI3.js → chunk-JDMQDJYE.js} +1 -1
  62. package/dist/bundle/chunks/{chunk-C7ZTXK5C.js → chunk-JKLUDNMU.js} +1 -1
  63. package/dist/bundle/chunks/{chunk-VBF2GWEM.js → chunk-V3IEYMEA.js} +1 -1
  64. package/dist/bundle/chunks/{chunk-6HBBXB3L.js → chunk-WECLUBEQ.js} +1 -1
  65. package/dist/bundle/chunks/{chunk-4YPFHVJJ.js → chunk-ZLJ5TCLC.js} +1 -1
  66. package/dist/bundle/chunks/{chunk-BED5HSP2.js → chunk-ZXL7TQLN.js} +1 -1
  67. package/dist/bundle/chunks/{flag-coverage-NT32EG6Q.js → flag-coverage-VML3BMJT.js} +1 -1
  68. package/dist/bundle/chunks/{jq-NLRWI2Q6.js → jq-SSCW4AAA.js} +1 -1
  69. package/dist/bundle/chunks/{python3-G2ZUJAQL.js → python3-2OHR6PZU.js} +1 -1
  70. package/dist/bundle/chunks/{sed-2BILOGNL.js → sed-DISNI47D.js} +1 -1
  71. package/dist/bundle/chunks/sleep-VZFPZFWA.js +1 -0
  72. package/dist/bundle/chunks/{sqlite3-VEDNWJL6.js → sqlite3-7F22DOIP.js} +1 -1
  73. package/dist/bundle/chunks/tar-232RCEFK.js +1 -0
  74. package/dist/bundle/chunks/timeout-QCU4INQT.js +1 -0
  75. package/dist/bundle/chunks/worker.js +81 -0
  76. package/dist/bundle/chunks/{xan-KSDYKKEK.js → xan-K7XYDHFV.js} +1 -1
  77. package/dist/bundle/chunks/yq-WTK3HUOR.js +1 -0
  78. package/dist/bundle/index.cjs +604 -604
  79. package/dist/bundle/index.js +228 -228
  80. package/dist/network/allow-list/shared.d.ts +8 -0
  81. package/dist/network/types.d.ts +15 -1
  82. package/package.json +1 -1
  83. package/dist/bin/chunks/sleep-3WHM7JMW.js +0 -2
  84. package/dist/bin/chunks/tar-SO3XDDIW.js +0 -2
  85. package/dist/bin/chunks/timeout-BYB3L2JA.js +0 -2
  86. package/dist/bin/chunks/yq-H7D2U3HS.js +0 -2
  87. package/dist/bin/shell/chunks/sleep-3WHM7JMW.js +0 -2
  88. package/dist/bin/shell/chunks/tar-SO3XDDIW.js +0 -2
  89. package/dist/bin/shell/chunks/timeout-BYB3L2JA.js +0 -2
  90. package/dist/bin/shell/chunks/yq-H7D2U3HS.js +0 -2
  91. package/dist/bundle/chunks/sleep-IUBP5GMH.js +0 -1
  92. package/dist/bundle/chunks/tar-LKO7DKAK.js +0 -1
  93. package/dist/bundle/chunks/timeout-TL4Q5YKZ.js +0 -1
  94. package/dist/bundle/chunks/yq-HIQ4WMDY.js +0 -1
@@ -43,6 +43,14 @@ export declare function expectBlocked(env: EnvAdapter, url: string, expectedUrl?
43
43
  * Utility for testing that a URL is blocked due to private IP
44
44
  */
45
45
  export declare function expectBlockedPrivate(env: EnvAdapter, url: string, expectedUrl?: string): Promise<void>;
46
+ /**
47
+ * Utility for testing that a URL is blocked due to DNS-resolved private IP
48
+ */
49
+ export declare function expectBlockedDnsPrivate(env: EnvAdapter, url: string, expectedUrl?: string): Promise<void>;
50
+ /**
51
+ * Utility for testing that a URL is blocked due to DNS resolution failure (fail-closed)
52
+ */
53
+ export declare function expectBlockedDnsFailure(env: EnvAdapter, url: string, expectedUrl?: string): Promise<void>;
46
54
  /**
47
55
  * Utility for testing that a URL succeeds with expected mock response
48
56
  */
@@ -4,6 +4,13 @@
4
4
  * Network access is disabled by default. To enable network access (e.g., for curl),
5
5
  * you must explicitly configure allowed URLs.
6
6
  */
7
+ /**
8
+ * DNS lookup result used for private IP resolution checks
9
+ */
10
+ export interface DnsLookupResult {
11
+ address: string;
12
+ family: number;
13
+ }
7
14
  /**
8
15
  * HTTP methods that can be allowed
9
16
  */
@@ -55,7 +62,8 @@ export interface NetworkConfig {
55
62
  maxResponseSize?: number;
56
63
  /**
57
64
  * Reject URLs with private/loopback IP addresses as hostnames.
58
- * This is a URL/hostname-level check only (no DNS resolution).
65
+ * Performs both lexical hostname checks and DNS resolution to catch
66
+ * domains that resolve to private IPs (e.g., DNS rebinding attacks).
59
67
  * Useful for mitigating SSRF attacks. Default: false (opt-in).
60
68
  *
61
69
  * When enabled, the private IP check is enforced even when
@@ -63,6 +71,12 @@ export interface NetworkConfig {
63
71
  * internal/loopback addresses are never reachable.
64
72
  */
65
73
  denyPrivateRanges?: boolean;
74
+ /**
75
+ * @internal Override DNS resolution for testing.
76
+ * When set, used instead of the default `dns.lookup` for the
77
+ * denyPrivateRanges DNS rebinding check.
78
+ */
79
+ _dnsResolve?: (hostname: string) => Promise<DnsLookupResult[]>;
66
80
  }
67
81
  /**
68
82
  * Result of a network fetch operation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "just-bash",
3
- "version": "2.12.7",
3
+ "version": "2.12.8",
4
4
  "description": "A simulated bash environment with virtual filesystem",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-ROMKUVHI.js";import"./chunk-YTIURC67.js";import"./chunk-JX6YLHDX.js";import"./chunk-NTKUVXEL.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as sleepCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-QTII62YM.js";import"./chunk-YMMJLYIX.js";import"./chunk-NTKUVXEL.js";import"./chunk-SE4C7FJY.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as tarCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-VCKKRS7V.js";import"./chunk-YTIURC67.js";import"./chunk-4OALHZXB.js";import"./chunk-JX6YLHDX.js";import"./chunk-NTKUVXEL.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as timeoutCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-ZNPXCE5B.js";import"./chunk-QSDVMMYI.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-6KZRLMG3.js";import"./chunk-SYG3IW7P.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as yqCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-ROMKUVHI.js";import"./chunk-YTIURC67.js";import"./chunk-JX6YLHDX.js";import"./chunk-NTKUVXEL.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as sleepCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-QTII62YM.js";import"./chunk-YMMJLYIX.js";import"./chunk-NTKUVXEL.js";import"./chunk-SE4C7FJY.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as tarCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-VCKKRS7V.js";import"./chunk-YTIURC67.js";import"./chunk-4OALHZXB.js";import"./chunk-JX6YLHDX.js";import"./chunk-NTKUVXEL.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as timeoutCommand};
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- import{a,b}from"./chunk-ZNPXCE5B.js";import"./chunk-QSDVMMYI.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-6KZRLMG3.js";import"./chunk-SYG3IW7P.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as yqCommand};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-X3CVFNQZ.js";import"./chunk-3ZUFRYJ4.js";import"./chunk-7YDOWJ75.js";import"./chunk-72EQZSVH.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as sleepCommand};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-BED5HSP2.js";import"./chunk-X2AJGDEF.js";import"./chunk-72EQZSVH.js";import"./chunk-YNYSPYQ5.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as tarCommand};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-6HBBXB3L.js";import"./chunk-3ZUFRYJ4.js";import"./chunk-7YDOWJ75.js";import"./chunk-IPJHKYVM.js";import"./chunk-72EQZSVH.js";import"./chunk-74CEPOFO.js";import"./chunk-DXB73IDG.js";export{b as flagsForFuzzing,a as timeoutCommand};
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-C7ZTXK5C.js";import"./chunk-SYMJJMQ4.js";import"./chunk-KZ7BI7TV.js";import"./chunk-DZZS6SJP.js";import"./chunk-OJDRYQWQ.js";import"./chunk-X36DXRVC.js";import"./chunk-72EQZSVH.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};