just-bash 2.14.3 → 2.14.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/bin/chunks/{awk2-DB6QZAC5.js → awk2-E4ZIJMAJ.js} +1 -1
  3. package/dist/bin/chunks/chunk-24DJ4XAS.js +18 -0
  4. package/dist/bin/chunks/{chunk-BGGF3ELU.js → chunk-B5DAHNDY.js} +1 -1
  5. package/dist/bin/{shell/chunks/chunk-ZUDPEMHG.js → chunks/chunk-BSEJNQWT.js} +1 -1
  6. package/dist/bin/chunks/{chunk-JDNI5HBX.js → chunk-C6FRS5UB.js} +3 -3
  7. package/dist/bin/chunks/{chunk-EONWONZV.js → chunk-DH7TPGPX.js} +1 -1
  8. package/dist/bin/chunks/chunk-EFPTD2CS.js +36 -0
  9. package/dist/bin/chunks/chunk-HGVUOC6C.js +140 -0
  10. package/dist/bin/{shell/chunks/chunk-22NDZXS5.js → chunks/chunk-NAOEMXWM.js} +2 -2
  11. package/dist/bin/{shell/chunks/chunk-PNI5NMXP.js → chunks/chunk-O6W3JFVY.js} +1 -1
  12. package/dist/bin/{shell/chunks/chunk-OXHVTSNH.js → chunks/chunk-P43NQKUN.js} +1 -1
  13. package/dist/bin/chunks/chunk-S7RKNZUQ.js +287 -0
  14. package/dist/bin/{shell/chunks/chunk-RA3TG4UK.js → chunks/chunk-SA4CENEN.js} +7 -7
  15. package/dist/bin/chunks/{chunk-ARI4VLCN.js → chunk-SDOJRQF5.js} +1 -1
  16. package/dist/bin/{shell/chunks/chunk-S3QAKT3R.js → chunks/chunk-VECTAALH.js} +1 -1
  17. package/dist/bin/chunks/chunk-W47FXOOV.js +14 -0
  18. package/dist/bin/{shell/chunks/chunk-A5UGPLEI.js → chunks/chunk-ZHOMXJBD.js} +11 -11
  19. package/dist/bin/{shell/chunks/expansion-QUT3FT7V.js → chunks/expansion-H3VFC532.js} +1 -1
  20. package/dist/bin/chunks/{expr-G4EF4POQ.js → expr-VPJ77DR7.js} +1 -1
  21. package/dist/bin/chunks/find-O2KKT6KZ.js +2 -0
  22. package/dist/bin/{shell/chunks/flag-coverage-QMWFYZRC.js → chunks/flag-coverage-4SWQHVCF.js} +1 -1
  23. package/dist/bin/{shell/chunks/grep-7BJ7HFBM.js → chunks/grep-XUPY5Q52.js} +1 -1
  24. package/dist/bin/{shell/chunks/jq-DVZM2CEN.js → chunks/jq-A2KWQWN4.js} +1 -1
  25. package/dist/bin/chunks/{python3-JUJKPBFB.js → python3-V2HDKCNM.js} +1 -1
  26. package/dist/bin/chunks/rg-G2G2ZO5L.js +2 -0
  27. package/dist/bin/chunks/{sed-WWXBUNG3.js → sed-BM4W22OD.js} +1 -1
  28. package/dist/bin/{shell/chunks/sqlite3-CVNFMP3Z.js → chunks/sqlite3-JPU62KSL.js} +1 -1
  29. package/dist/bin/chunks/sqlite3-worker.js +1728 -0
  30. package/dist/bin/chunks/tar-6PJ22BMV.js +2 -0
  31. package/dist/bin/chunks/{xan-3G6YA5O6.js → xan-D2GMWBRV.js} +1 -1
  32. package/dist/bin/chunks/{yq-CWUVVSHY.js → yq-EAXN747B.js} +1 -1
  33. package/dist/bin/just-bash.js +238 -238
  34. package/dist/bin/shell/chunks/{awk2-DB6QZAC5.js → awk2-E4ZIJMAJ.js} +1 -1
  35. package/dist/bin/shell/chunks/chunk-24DJ4XAS.js +18 -0
  36. package/dist/bin/shell/chunks/{chunk-BGGF3ELU.js → chunk-B5DAHNDY.js} +1 -1
  37. package/dist/bin/{chunks/chunk-ZUDPEMHG.js → shell/chunks/chunk-BSEJNQWT.js} +1 -1
  38. package/dist/bin/shell/chunks/{chunk-JDNI5HBX.js → chunk-C6FRS5UB.js} +3 -3
  39. package/dist/bin/shell/chunks/{chunk-EONWONZV.js → chunk-DH7TPGPX.js} +1 -1
  40. package/dist/bin/shell/chunks/chunk-EFPTD2CS.js +36 -0
  41. package/dist/bin/shell/chunks/chunk-HGVUOC6C.js +140 -0
  42. package/dist/bin/{chunks/chunk-22NDZXS5.js → shell/chunks/chunk-NAOEMXWM.js} +2 -2
  43. package/dist/bin/{chunks/chunk-PNI5NMXP.js → shell/chunks/chunk-O6W3JFVY.js} +1 -1
  44. package/dist/bin/{chunks/chunk-OXHVTSNH.js → shell/chunks/chunk-P43NQKUN.js} +1 -1
  45. package/dist/bin/shell/chunks/chunk-S7RKNZUQ.js +287 -0
  46. package/dist/bin/{chunks/chunk-RA3TG4UK.js → shell/chunks/chunk-SA4CENEN.js} +7 -7
  47. package/dist/bin/shell/chunks/{chunk-ARI4VLCN.js → chunk-SDOJRQF5.js} +1 -1
  48. package/dist/bin/{chunks/chunk-S3QAKT3R.js → shell/chunks/chunk-VECTAALH.js} +1 -1
  49. package/dist/bin/shell/chunks/chunk-W47FXOOV.js +14 -0
  50. package/dist/bin/{chunks/chunk-A5UGPLEI.js → shell/chunks/chunk-ZHOMXJBD.js} +11 -11
  51. package/dist/bin/{chunks/expansion-QUT3FT7V.js → shell/chunks/expansion-H3VFC532.js} +1 -1
  52. package/dist/bin/shell/chunks/{expr-G4EF4POQ.js → expr-VPJ77DR7.js} +1 -1
  53. package/dist/bin/shell/chunks/find-O2KKT6KZ.js +2 -0
  54. package/dist/bin/{chunks/flag-coverage-QMWFYZRC.js → shell/chunks/flag-coverage-4SWQHVCF.js} +1 -1
  55. package/dist/bin/{chunks/grep-7BJ7HFBM.js → shell/chunks/grep-XUPY5Q52.js} +1 -1
  56. package/dist/bin/{chunks/jq-DVZM2CEN.js → shell/chunks/jq-A2KWQWN4.js} +1 -1
  57. package/dist/bin/shell/chunks/{python3-RRCCYJKA.js → python3-TG6BXZCZ.js} +1 -1
  58. package/dist/bin/shell/chunks/rg-G2G2ZO5L.js +2 -0
  59. package/dist/bin/shell/chunks/{sed-WWXBUNG3.js → sed-BM4W22OD.js} +1 -1
  60. package/dist/bin/{chunks/sqlite3-CVNFMP3Z.js → shell/chunks/sqlite3-JPU62KSL.js} +1 -1
  61. package/dist/bin/shell/chunks/tar-6PJ22BMV.js +2 -0
  62. package/dist/bin/shell/chunks/{xan-3G6YA5O6.js → xan-D2GMWBRV.js} +1 -1
  63. package/dist/bin/shell/chunks/{yq-CWUVVSHY.js → yq-EAXN747B.js} +1 -1
  64. package/dist/bin/shell/shell.js +225 -225
  65. package/dist/bundle/browser.js +607 -605
  66. package/dist/bundle/chunks/{awk2-RRKCSTJR.js → awk2-BBAGSFUB.js} +1 -1
  67. package/dist/bundle/chunks/chunk-2TRDZQLB.js +17 -0
  68. package/dist/bundle/chunks/chunk-3BS5SKQH.js +139 -0
  69. package/dist/bundle/chunks/{chunk-B53Y5JFV.js → chunk-3H6UQG3A.js} +7 -7
  70. package/dist/bundle/chunks/chunk-6Z5SFZXK.js +286 -0
  71. package/dist/bundle/chunks/{chunk-YSHZL3MF.js → chunk-B74TABJS.js} +3 -3
  72. package/dist/bundle/chunks/{chunk-43RSSTFA.js → chunk-BGSUD5R5.js} +1 -1
  73. package/dist/bundle/chunks/{chunk-XIZSGUXJ.js → chunk-HKLCLINH.js} +1 -1
  74. package/dist/bundle/chunks/{chunk-GJTDUJ5Q.js → chunk-K6LIBGJA.js} +1 -1
  75. package/dist/bundle/chunks/{chunk-NRZWEENR.js → chunk-KRBPSX3W.js} +1 -1
  76. package/dist/bundle/chunks/{chunk-BAQA74XA.js → chunk-SNN4IESC.js} +1 -1
  77. package/dist/bundle/chunks/{chunk-HP7NBOKN.js → chunk-TP4BZANS.js} +11 -11
  78. package/dist/bundle/chunks/{chunk-5PYKJV42.js → chunk-V5MWI2OL.js} +1 -1
  79. package/dist/bundle/chunks/chunk-XKWWSDBF.js +35 -0
  80. package/dist/bundle/chunks/{chunk-U6NMAV24.js → chunk-YMMW5UAP.js} +2 -2
  81. package/dist/bundle/chunks/chunk-YULBWSET.js +13 -0
  82. package/dist/bundle/chunks/{chunk-VBEY5J6R.js → chunk-ZZO3UDB3.js} +1 -1
  83. package/dist/bundle/chunks/{expansion-UGGADTZC.js → expansion-VBDYWVZR.js} +1 -1
  84. package/dist/bundle/chunks/{expr-DNFUYZGY.js → expr-YYCVMXE3.js} +1 -1
  85. package/dist/bundle/chunks/find-DH2ALKQS.js +1 -0
  86. package/dist/bundle/chunks/{flag-coverage-XLSDDMFQ.js → flag-coverage-6JEX67RU.js} +1 -1
  87. package/dist/bundle/chunks/{grep-2UMHPO7Y.js → grep-2HUTXO5U.js} +1 -1
  88. package/dist/bundle/chunks/{jq-LCDWFF5Y.js → jq-LYZFFBZB.js} +1 -1
  89. package/dist/bundle/chunks/{python3-BFV3N3GY.js → python3-DNGS4G3E.js} +1 -1
  90. package/dist/bundle/chunks/rg-XNF3R3II.js +1 -0
  91. package/dist/bundle/chunks/{sed-OFX3F4FE.js → sed-JAPPVBEU.js} +1 -1
  92. package/dist/bundle/chunks/{sqlite3-56UMWEY3.js → sqlite3-TE5AIOTF.js} +1 -1
  93. package/dist/bundle/chunks/sqlite3-worker.js +1728 -0
  94. package/dist/bundle/chunks/tar-MZQD7NO4.js +1 -0
  95. package/dist/bundle/chunks/{xan-EY6QWK2V.js → xan-UD7JYIL2.js} +1 -1
  96. package/dist/bundle/chunks/{yq-M7NFNNED.js → yq-OAKYHSXH.js} +1 -1
  97. package/dist/bundle/index.cjs +847 -845
  98. package/dist/bundle/index.js +174 -174
  99. package/dist/commands/search-engine/matcher.d.ts +6 -0
  100. package/dist/commands/search-engine/regex.d.ts +13 -0
  101. package/dist/commands/sqlite3/sqlite3.d.ts +1 -0
  102. package/dist/commands/sqlite3/worker.js +1728 -0
  103. package/dist/network/dns-pin.d.ts +43 -0
  104. package/package.json +4 -3
  105. package/dist/bin/chunks/chunk-2HVFB2TU.js +0 -287
  106. package/dist/bin/chunks/chunk-CM4532DS.js +0 -36
  107. package/dist/bin/chunks/chunk-DU4S5MUI.js +0 -13
  108. package/dist/bin/chunks/chunk-LTL632J4.js +0 -140
  109. package/dist/bin/chunks/chunk-TTNNO45C.js +0 -17
  110. package/dist/bin/chunks/find-7CVMEZBO.js +0 -2
  111. package/dist/bin/chunks/rg-DK6FRF6Q.js +0 -2
  112. package/dist/bin/chunks/tar-GTGFEWDS.js +0 -2
  113. package/dist/bin/shell/chunks/chunk-2HVFB2TU.js +0 -287
  114. package/dist/bin/shell/chunks/chunk-CM4532DS.js +0 -36
  115. package/dist/bin/shell/chunks/chunk-DU4S5MUI.js +0 -13
  116. package/dist/bin/shell/chunks/chunk-LTL632J4.js +0 -140
  117. package/dist/bin/shell/chunks/chunk-TTNNO45C.js +0 -17
  118. package/dist/bin/shell/chunks/find-7CVMEZBO.js +0 -2
  119. package/dist/bin/shell/chunks/rg-DK6FRF6Q.js +0 -2
  120. package/dist/bin/shell/chunks/tar-GTGFEWDS.js +0 -2
  121. package/dist/bundle/chunks/chunk-75FNCC7W.js +0 -286
  122. package/dist/bundle/chunks/chunk-HWBSOZZR.js +0 -35
  123. package/dist/bundle/chunks/chunk-PYDZ2LCK.js +0 -16
  124. package/dist/bundle/chunks/chunk-RAFHQYLP.js +0 -139
  125. package/dist/bundle/chunks/chunk-RQ254MFG.js +0 -12
  126. package/dist/bundle/chunks/find-KNMMLVJD.js +0 -1
  127. package/dist/bundle/chunks/rg-KYSTAD4Q.js +0 -1
  128. package/dist/bundle/chunks/tar-LYLTEJV3.js +0 -1
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Pin DNS resolution for the actual fetch to the IPs that were validated
3
+ * by the preflight private-range check, defeating DNS rebinding.
4
+ *
5
+ * How it works:
6
+ * - `dns.lookup` is monkey-patched once globally to consult an
7
+ * AsyncLocalStorage store. When called inside a `pinDns(...)` async
8
+ * context for the same hostname, it returns the pre-validated address
9
+ * without performing any network DNS query.
10
+ * - Calls outside any pinning context (or for a different hostname)
11
+ * are delegated to the original `dns.lookup`.
12
+ *
13
+ * Why `dns.lookup` and not `dns.promises.lookup`:
14
+ * - Node's `net.connect`/`tls.connect` (used by undici under `globalThis.fetch`)
15
+ * reads `dns.lookup` at call time and uses the callback form.
16
+ * - We do not patch the promises form because it's not on the connect path.
17
+ *
18
+ * Browser builds: this module is imported transitively from `fetch.ts`
19
+ * (re-exported via `just-bash/browser`). `node:dns` is aliased to a
20
+ * stub by the browser build, but `node:async_hooks` cannot be aliased
21
+ * via a static import. We therefore lazy-load both via `require()`
22
+ * inside an `IS_BROWSER === false` guard so esbuild can dead-code
23
+ * eliminate the Node-only path. In the browser the exported `pinDns`
24
+ * is a passthrough that just runs the callback (the preflight that
25
+ * would have produced a `PinnedAddress` always throws first because
26
+ * `node:dns` is unavailable, so the passthrough is unreachable).
27
+ */
28
+ export interface PinnedAddress {
29
+ hostname: string;
30
+ address: string;
31
+ family: 4 | 6;
32
+ }
33
+ /**
34
+ * Run `fn` with `dns.lookup` for `pinned.hostname` resolving to
35
+ * `pinned.address`/`pinned.family`. Resolutions for other hostnames
36
+ * pass through to the original `dns.lookup`.
37
+ */
38
+ export declare function pinDns<T>(pinned: PinnedAddress, fn: () => Promise<T>): Promise<T>;
39
+ /**
40
+ * @internal Exposed for tests to verify the patched dns.lookup behaves
41
+ * correctly inside and outside a pinning context.
42
+ */
43
+ export declare function _ensureDnsHookInstalled(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "just-bash",
3
- "version": "2.14.3",
3
+ "version": "2.14.5",
4
4
  "description": "A simulated bash environment with virtual filesystem",
5
5
  "repository": {
6
6
  "type": "git",
@@ -37,6 +37,7 @@
37
37
  "dist/*.d.cts",
38
38
  "dist/ast/*.d.ts",
39
39
  "dist/commands/**/*.d.ts",
40
+ "dist/commands/sqlite3/worker.js",
40
41
  "dist/fs/**/*.d.ts",
41
42
  "dist/interpreter/**/*.d.ts",
42
43
  "dist/network/**/*.d.ts",
@@ -75,7 +76,7 @@
75
76
  "dependencies": {
76
77
  "seek-bzip": "^2.0.0",
77
78
  "diff": "^8.0.2",
78
- "fast-xml-parser": "5.3.3",
79
+ "fast-xml-parser": "^5.7.3",
79
80
  "file-type": "^21.2.0",
80
81
  "ini": "^6.0.0",
81
82
  "minimatch": "^10.1.1",
@@ -96,7 +97,7 @@
96
97
  "scripts": {
97
98
  "build": "rm -rf dist && tsc && pnpm build:lib && pnpm build:lib:cjs && pnpm build:browser && pnpm build:cli && pnpm build:shell && pnpm build:worker && pnpm build:clean && cp dist/index.d.ts dist/index.d.cts && sed '1,/^-->/d' AGENTS.npm.md > dist/AGENTS.md",
98
99
  "build:clean": "find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete",
99
- "build:worker": "esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js",
100
+ "build:worker": "esbuild src/commands/python3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/python3/worker.js --external:../../../vendor/cpython-emscripten/* && cp src/commands/python3/worker.js dist/commands/python3/worker.js && mkdir -p dist/bin/chunks && cp src/commands/python3/worker.js dist/bin/chunks/worker.js && mkdir -p dist/bundle/chunks && cp src/commands/python3/worker.js dist/bundle/chunks/worker.js && esbuild src/commands/js-exec/js-exec-worker.ts --bundle --platform=node --format=esm --outfile=src/commands/js-exec/js-exec-worker.js --external:quickjs-emscripten && cp src/commands/js-exec/js-exec-worker.js dist/commands/js-exec/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bin/chunks/js-exec-worker.js && cp src/commands/js-exec/js-exec-worker.js dist/bundle/chunks/js-exec-worker.js && esbuild src/commands/sqlite3/worker.ts --bundle --platform=node --format=esm --outfile=src/commands/sqlite3/worker.js --external:sql.js && mkdir -p dist/commands/sqlite3 && cp src/commands/sqlite3/worker.js dist/commands/sqlite3/worker.js && cp src/commands/sqlite3/worker.js dist/bin/chunks/sqlite3-worker.js && cp src/commands/sqlite3/worker.js dist/bundle/chunks/sqlite3-worker.js",
100
101
  "build:lib": "esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip",
101
102
  "build:lib:cjs": "esbuild dist/index.js --bundle --platform=node --format=cjs --minify --outfile=dist/bundle/index.cjs --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip",
102
103
  "build:browser": "esbuild dist/browser.js --bundle --platform=browser --format=esm --minify --outfile=dist/bundle/browser.js --external:diff --external:minimatch --external:sprintf-js --external:turndown --external:node:zlib --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip --define:__BROWSER__=true --alias:node:dns=./src/shims/browser-unsupported.js",