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.
- package/CHANGELOG.md +24 -0
- package/dist/bin/chunks/{awk2-DB6QZAC5.js → awk2-E4ZIJMAJ.js} +1 -1
- package/dist/bin/chunks/chunk-24DJ4XAS.js +18 -0
- package/dist/bin/chunks/{chunk-BGGF3ELU.js → chunk-B5DAHNDY.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-ZUDPEMHG.js → chunks/chunk-BSEJNQWT.js} +1 -1
- package/dist/bin/chunks/{chunk-JDNI5HBX.js → chunk-C6FRS5UB.js} +3 -3
- package/dist/bin/chunks/{chunk-EONWONZV.js → chunk-DH7TPGPX.js} +1 -1
- package/dist/bin/chunks/chunk-EFPTD2CS.js +36 -0
- package/dist/bin/chunks/chunk-HGVUOC6C.js +140 -0
- package/dist/bin/{shell/chunks/chunk-22NDZXS5.js → chunks/chunk-NAOEMXWM.js} +2 -2
- package/dist/bin/{shell/chunks/chunk-PNI5NMXP.js → chunks/chunk-O6W3JFVY.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-OXHVTSNH.js → chunks/chunk-P43NQKUN.js} +1 -1
- package/dist/bin/chunks/chunk-S7RKNZUQ.js +287 -0
- package/dist/bin/{shell/chunks/chunk-RA3TG4UK.js → chunks/chunk-SA4CENEN.js} +7 -7
- package/dist/bin/chunks/{chunk-ARI4VLCN.js → chunk-SDOJRQF5.js} +1 -1
- package/dist/bin/{shell/chunks/chunk-S3QAKT3R.js → chunks/chunk-VECTAALH.js} +1 -1
- package/dist/bin/chunks/chunk-W47FXOOV.js +14 -0
- package/dist/bin/{shell/chunks/chunk-A5UGPLEI.js → chunks/chunk-ZHOMXJBD.js} +11 -11
- package/dist/bin/{shell/chunks/expansion-QUT3FT7V.js → chunks/expansion-H3VFC532.js} +1 -1
- package/dist/bin/chunks/{expr-G4EF4POQ.js → expr-VPJ77DR7.js} +1 -1
- package/dist/bin/chunks/find-O2KKT6KZ.js +2 -0
- package/dist/bin/{shell/chunks/flag-coverage-QMWFYZRC.js → chunks/flag-coverage-4SWQHVCF.js} +1 -1
- package/dist/bin/{shell/chunks/grep-7BJ7HFBM.js → chunks/grep-XUPY5Q52.js} +1 -1
- package/dist/bin/{shell/chunks/jq-DVZM2CEN.js → chunks/jq-A2KWQWN4.js} +1 -1
- package/dist/bin/chunks/{python3-JUJKPBFB.js → python3-V2HDKCNM.js} +1 -1
- package/dist/bin/chunks/rg-G2G2ZO5L.js +2 -0
- package/dist/bin/chunks/{sed-WWXBUNG3.js → sed-BM4W22OD.js} +1 -1
- package/dist/bin/{shell/chunks/sqlite3-CVNFMP3Z.js → chunks/sqlite3-JPU62KSL.js} +1 -1
- package/dist/bin/chunks/sqlite3-worker.js +1728 -0
- package/dist/bin/chunks/tar-6PJ22BMV.js +2 -0
- package/dist/bin/chunks/{xan-3G6YA5O6.js → xan-D2GMWBRV.js} +1 -1
- package/dist/bin/chunks/{yq-CWUVVSHY.js → yq-EAXN747B.js} +1 -1
- package/dist/bin/just-bash.js +238 -238
- package/dist/bin/shell/chunks/{awk2-DB6QZAC5.js → awk2-E4ZIJMAJ.js} +1 -1
- package/dist/bin/shell/chunks/chunk-24DJ4XAS.js +18 -0
- package/dist/bin/shell/chunks/{chunk-BGGF3ELU.js → chunk-B5DAHNDY.js} +1 -1
- package/dist/bin/{chunks/chunk-ZUDPEMHG.js → shell/chunks/chunk-BSEJNQWT.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-JDNI5HBX.js → chunk-C6FRS5UB.js} +3 -3
- package/dist/bin/shell/chunks/{chunk-EONWONZV.js → chunk-DH7TPGPX.js} +1 -1
- package/dist/bin/shell/chunks/chunk-EFPTD2CS.js +36 -0
- package/dist/bin/shell/chunks/chunk-HGVUOC6C.js +140 -0
- package/dist/bin/{chunks/chunk-22NDZXS5.js → shell/chunks/chunk-NAOEMXWM.js} +2 -2
- package/dist/bin/{chunks/chunk-PNI5NMXP.js → shell/chunks/chunk-O6W3JFVY.js} +1 -1
- package/dist/bin/{chunks/chunk-OXHVTSNH.js → shell/chunks/chunk-P43NQKUN.js} +1 -1
- package/dist/bin/shell/chunks/chunk-S7RKNZUQ.js +287 -0
- package/dist/bin/{chunks/chunk-RA3TG4UK.js → shell/chunks/chunk-SA4CENEN.js} +7 -7
- package/dist/bin/shell/chunks/{chunk-ARI4VLCN.js → chunk-SDOJRQF5.js} +1 -1
- package/dist/bin/{chunks/chunk-S3QAKT3R.js → shell/chunks/chunk-VECTAALH.js} +1 -1
- package/dist/bin/shell/chunks/chunk-W47FXOOV.js +14 -0
- package/dist/bin/{chunks/chunk-A5UGPLEI.js → shell/chunks/chunk-ZHOMXJBD.js} +11 -11
- package/dist/bin/{chunks/expansion-QUT3FT7V.js → shell/chunks/expansion-H3VFC532.js} +1 -1
- package/dist/bin/shell/chunks/{expr-G4EF4POQ.js → expr-VPJ77DR7.js} +1 -1
- package/dist/bin/shell/chunks/find-O2KKT6KZ.js +2 -0
- package/dist/bin/{chunks/flag-coverage-QMWFYZRC.js → shell/chunks/flag-coverage-4SWQHVCF.js} +1 -1
- package/dist/bin/{chunks/grep-7BJ7HFBM.js → shell/chunks/grep-XUPY5Q52.js} +1 -1
- package/dist/bin/{chunks/jq-DVZM2CEN.js → shell/chunks/jq-A2KWQWN4.js} +1 -1
- package/dist/bin/shell/chunks/{python3-RRCCYJKA.js → python3-TG6BXZCZ.js} +1 -1
- package/dist/bin/shell/chunks/rg-G2G2ZO5L.js +2 -0
- package/dist/bin/shell/chunks/{sed-WWXBUNG3.js → sed-BM4W22OD.js} +1 -1
- package/dist/bin/{chunks/sqlite3-CVNFMP3Z.js → shell/chunks/sqlite3-JPU62KSL.js} +1 -1
- package/dist/bin/shell/chunks/tar-6PJ22BMV.js +2 -0
- package/dist/bin/shell/chunks/{xan-3G6YA5O6.js → xan-D2GMWBRV.js} +1 -1
- package/dist/bin/shell/chunks/{yq-CWUVVSHY.js → yq-EAXN747B.js} +1 -1
- package/dist/bin/shell/shell.js +225 -225
- package/dist/bundle/browser.js +607 -605
- package/dist/bundle/chunks/{awk2-RRKCSTJR.js → awk2-BBAGSFUB.js} +1 -1
- package/dist/bundle/chunks/chunk-2TRDZQLB.js +17 -0
- package/dist/bundle/chunks/chunk-3BS5SKQH.js +139 -0
- package/dist/bundle/chunks/{chunk-B53Y5JFV.js → chunk-3H6UQG3A.js} +7 -7
- package/dist/bundle/chunks/chunk-6Z5SFZXK.js +286 -0
- package/dist/bundle/chunks/{chunk-YSHZL3MF.js → chunk-B74TABJS.js} +3 -3
- package/dist/bundle/chunks/{chunk-43RSSTFA.js → chunk-BGSUD5R5.js} +1 -1
- package/dist/bundle/chunks/{chunk-XIZSGUXJ.js → chunk-HKLCLINH.js} +1 -1
- package/dist/bundle/chunks/{chunk-GJTDUJ5Q.js → chunk-K6LIBGJA.js} +1 -1
- package/dist/bundle/chunks/{chunk-NRZWEENR.js → chunk-KRBPSX3W.js} +1 -1
- package/dist/bundle/chunks/{chunk-BAQA74XA.js → chunk-SNN4IESC.js} +1 -1
- package/dist/bundle/chunks/{chunk-HP7NBOKN.js → chunk-TP4BZANS.js} +11 -11
- package/dist/bundle/chunks/{chunk-5PYKJV42.js → chunk-V5MWI2OL.js} +1 -1
- package/dist/bundle/chunks/chunk-XKWWSDBF.js +35 -0
- package/dist/bundle/chunks/{chunk-U6NMAV24.js → chunk-YMMW5UAP.js} +2 -2
- package/dist/bundle/chunks/chunk-YULBWSET.js +13 -0
- package/dist/bundle/chunks/{chunk-VBEY5J6R.js → chunk-ZZO3UDB3.js} +1 -1
- package/dist/bundle/chunks/{expansion-UGGADTZC.js → expansion-VBDYWVZR.js} +1 -1
- package/dist/bundle/chunks/{expr-DNFUYZGY.js → expr-YYCVMXE3.js} +1 -1
- package/dist/bundle/chunks/find-DH2ALKQS.js +1 -0
- package/dist/bundle/chunks/{flag-coverage-XLSDDMFQ.js → flag-coverage-6JEX67RU.js} +1 -1
- package/dist/bundle/chunks/{grep-2UMHPO7Y.js → grep-2HUTXO5U.js} +1 -1
- package/dist/bundle/chunks/{jq-LCDWFF5Y.js → jq-LYZFFBZB.js} +1 -1
- package/dist/bundle/chunks/{python3-BFV3N3GY.js → python3-DNGS4G3E.js} +1 -1
- package/dist/bundle/chunks/rg-XNF3R3II.js +1 -0
- package/dist/bundle/chunks/{sed-OFX3F4FE.js → sed-JAPPVBEU.js} +1 -1
- package/dist/bundle/chunks/{sqlite3-56UMWEY3.js → sqlite3-TE5AIOTF.js} +1 -1
- package/dist/bundle/chunks/sqlite3-worker.js +1728 -0
- package/dist/bundle/chunks/tar-MZQD7NO4.js +1 -0
- package/dist/bundle/chunks/{xan-EY6QWK2V.js → xan-UD7JYIL2.js} +1 -1
- package/dist/bundle/chunks/{yq-M7NFNNED.js → yq-OAKYHSXH.js} +1 -1
- package/dist/bundle/index.cjs +847 -845
- package/dist/bundle/index.js +174 -174
- package/dist/commands/search-engine/matcher.d.ts +6 -0
- package/dist/commands/search-engine/regex.d.ts +13 -0
- package/dist/commands/sqlite3/sqlite3.d.ts +1 -0
- package/dist/commands/sqlite3/worker.js +1728 -0
- package/dist/network/dns-pin.d.ts +43 -0
- package/package.json +4 -3
- package/dist/bin/chunks/chunk-2HVFB2TU.js +0 -287
- package/dist/bin/chunks/chunk-CM4532DS.js +0 -36
- package/dist/bin/chunks/chunk-DU4S5MUI.js +0 -13
- package/dist/bin/chunks/chunk-LTL632J4.js +0 -140
- package/dist/bin/chunks/chunk-TTNNO45C.js +0 -17
- package/dist/bin/chunks/find-7CVMEZBO.js +0 -2
- package/dist/bin/chunks/rg-DK6FRF6Q.js +0 -2
- package/dist/bin/chunks/tar-GTGFEWDS.js +0 -2
- package/dist/bin/shell/chunks/chunk-2HVFB2TU.js +0 -287
- package/dist/bin/shell/chunks/chunk-CM4532DS.js +0 -36
- package/dist/bin/shell/chunks/chunk-DU4S5MUI.js +0 -13
- package/dist/bin/shell/chunks/chunk-LTL632J4.js +0 -140
- package/dist/bin/shell/chunks/chunk-TTNNO45C.js +0 -17
- package/dist/bin/shell/chunks/find-7CVMEZBO.js +0 -2
- package/dist/bin/shell/chunks/rg-DK6FRF6Q.js +0 -2
- package/dist/bin/shell/chunks/tar-GTGFEWDS.js +0 -2
- package/dist/bundle/chunks/chunk-75FNCC7W.js +0 -286
- package/dist/bundle/chunks/chunk-HWBSOZZR.js +0 -35
- package/dist/bundle/chunks/chunk-PYDZ2LCK.js +0 -16
- package/dist/bundle/chunks/chunk-RAFHQYLP.js +0 -139
- package/dist/bundle/chunks/chunk-RQ254MFG.js +0 -12
- package/dist/bundle/chunks/find-KNMMLVJD.js +0 -1
- package/dist/bundle/chunks/rg-KYSTAD4Q.js +0 -1
- 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
|
+
"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.
|
|
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",
|