just-bash 2.12.2 → 2.12.4
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/dist/bin/chunks/awk2-RGDNV4HO.js +2 -0
- package/dist/bin/chunks/{base64-YXBFJFHG.js → base64-43M2R3GA.js} +1 -1
- package/dist/bin/{shell/chunks/cat-3J7U3HHI.js → chunks/cat-XZIJZXKP.js} +1 -1
- package/dist/bin/chunks/chunk-4C4F4EKM.js +2 -0
- package/dist/bin/{shell/chunks/chunk-MZKPWGID.js → chunks/chunk-54G6AE72.js} +23 -23
- package/dist/bin/chunks/chunk-55QIFSKH.js +36 -0
- package/dist/bin/chunks/chunk-6MF2IYQX.js +10 -0
- package/dist/bin/{shell/chunks/chunk-NEQEZ32M.js → chunks/chunk-CGE2EHYP.js} +3 -3
- package/dist/bin/chunks/chunk-DGFDVZ4N.js +21 -0
- package/dist/bin/chunks/chunk-EO5AH4U7.js +5 -0
- package/dist/bin/chunks/{chunk-2SIXTZCJ.js → chunk-EZS766DD.js} +4 -4
- package/dist/bin/{shell/chunks/chunk-THLAHQXV.js → chunks/chunk-FA2CHD73.js} +1 -1
- package/dist/bin/chunks/{chunk-BARKRZDC.js → chunk-GOJZHH3L.js} +1 -1
- package/dist/bin/chunks/{chunk-435ZOZCY.js → chunk-J4WYAO5Q.js} +1 -1
- package/dist/bin/chunks/chunk-LHN3LRVT.js +100 -0
- package/dist/bin/chunks/chunk-MRP4ZCD7.js +6 -0
- package/dist/bin/chunks/{chunk-JNPUO56K.js → chunk-NDP6L74Z.js} +1 -1
- package/dist/bin/chunks/chunk-PWZZGTFL.js +13 -0
- package/dist/bin/chunks/{chunk-3NVWSLHI.js → chunk-Q3FNZYGG.js} +99 -99
- package/dist/bin/{shell/chunks/chunk-7SWOLTCR.js → chunks/chunk-Q4WHWGOT.js} +1 -1
- package/dist/bin/chunks/chunk-SY2WM5RM.js +14 -0
- package/dist/bin/chunks/chunk-SYG3IW7P.js +2 -0
- package/dist/bin/chunks/chunk-SYL34GE7.js +21 -0
- package/dist/bin/chunks/{chunk-DREQRXNN.js → chunk-V5YFCVCZ.js} +1 -1
- package/dist/bin/chunks/chunk-V7VIJQD6.js +6 -0
- package/dist/bin/chunks/chunk-WMYKQURM.js +2 -0
- package/dist/bin/chunks/chunk-WO4B7WUT.js +2 -0
- package/dist/bin/{shell/chunks/chunk-5U7Q4GUC.js → chunks/chunk-WWZVR5NN.js} +4 -4
- package/dist/bin/chunks/{cut-HDHQDWRG.js → cut-5EY2XPXX.js} +1 -1
- package/dist/bin/chunks/expr-VEFRBJT4.js +2 -0
- package/dist/bin/chunks/flag-coverage-K6IBGWAC.js +2 -0
- package/dist/bin/chunks/{gzip-RQ5RIFJV.js → gzip-LHOO65AN.js} +1 -1
- package/dist/bin/chunks/jq-VBB2XIZS.js +2 -0
- package/dist/bin/chunks/ln-BEOFQJNP.js +2 -0
- package/dist/bin/chunks/python3-JX5PXXTX.js +17 -0
- package/dist/bin/chunks/sed-BYFYBR4A.js +2 -0
- package/dist/bin/chunks/sleep-E3K6M6BN.js +2 -0
- package/dist/bin/chunks/{sort-NZSEYCI6.js → sort-7GENYU2I.js} +1 -1
- package/dist/bin/chunks/sqlite3-SJHZFBT2.js +2 -0
- package/dist/bin/{shell/chunks/tar-VIYVHMER.js → chunks/tar-W5GBTEDZ.js} +1 -1
- package/dist/bin/chunks/time-AWAKKRSE.js +2 -0
- package/dist/bin/chunks/timeout-OLS72AZG.js +2 -0
- package/dist/bin/chunks/tr-LZF57GYP.js +2 -0
- package/dist/bin/chunks/{uniq-FZWFZEN5.js → uniq-TMSAIZM3.js} +1 -1
- package/dist/bin/chunks/worker.js +92 -29
- package/dist/bin/chunks/xan-BJ66NSYT.js +2 -0
- package/dist/bin/chunks/yq-GPYVGU2N.js +2 -0
- package/dist/bin/just-bash.js +294 -294
- package/dist/bin/shell/chunks/awk2-RGDNV4HO.js +2 -0
- package/dist/bin/shell/chunks/{base64-YXBFJFHG.js → base64-43M2R3GA.js} +1 -1
- package/dist/bin/{chunks/cat-3J7U3HHI.js → shell/chunks/cat-XZIJZXKP.js} +1 -1
- package/dist/bin/shell/chunks/chunk-4C4F4EKM.js +2 -0
- package/dist/bin/{chunks/chunk-MZKPWGID.js → shell/chunks/chunk-54G6AE72.js} +23 -23
- package/dist/bin/shell/chunks/chunk-55QIFSKH.js +36 -0
- package/dist/bin/shell/chunks/chunk-6MF2IYQX.js +10 -0
- package/dist/bin/{chunks/chunk-NEQEZ32M.js → shell/chunks/chunk-CGE2EHYP.js} +3 -3
- package/dist/bin/shell/chunks/chunk-DGFDVZ4N.js +21 -0
- package/dist/bin/shell/chunks/chunk-EO5AH4U7.js +5 -0
- package/dist/bin/shell/chunks/{chunk-2SIXTZCJ.js → chunk-EZS766DD.js} +4 -4
- package/dist/bin/{chunks/chunk-THLAHQXV.js → shell/chunks/chunk-FA2CHD73.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-BARKRZDC.js → chunk-GOJZHH3L.js} +1 -1
- package/dist/bin/shell/chunks/{chunk-435ZOZCY.js → chunk-J4WYAO5Q.js} +1 -1
- package/dist/bin/shell/chunks/chunk-LHN3LRVT.js +100 -0
- package/dist/bin/shell/chunks/chunk-MRP4ZCD7.js +6 -0
- package/dist/bin/shell/chunks/{chunk-JNPUO56K.js → chunk-NDP6L74Z.js} +1 -1
- package/dist/bin/shell/chunks/chunk-PWZZGTFL.js +13 -0
- package/dist/bin/shell/chunks/{chunk-3NVWSLHI.js → chunk-Q3FNZYGG.js} +99 -99
- package/dist/bin/{chunks/chunk-7SWOLTCR.js → shell/chunks/chunk-Q4WHWGOT.js} +1 -1
- package/dist/bin/shell/chunks/chunk-SY2WM5RM.js +14 -0
- package/dist/bin/shell/chunks/chunk-SYG3IW7P.js +2 -0
- package/dist/bin/shell/chunks/chunk-SYL34GE7.js +21 -0
- package/dist/bin/shell/chunks/{chunk-DREQRXNN.js → chunk-V5YFCVCZ.js} +1 -1
- package/dist/bin/shell/chunks/chunk-V7VIJQD6.js +6 -0
- package/dist/bin/shell/chunks/chunk-WMYKQURM.js +2 -0
- package/dist/bin/shell/chunks/chunk-WO4B7WUT.js +2 -0
- package/dist/bin/{chunks/chunk-5U7Q4GUC.js → shell/chunks/chunk-WWZVR5NN.js} +4 -4
- package/dist/bin/shell/chunks/{cut-HDHQDWRG.js → cut-5EY2XPXX.js} +1 -1
- package/dist/bin/shell/chunks/expr-VEFRBJT4.js +2 -0
- package/dist/bin/shell/chunks/flag-coverage-K6IBGWAC.js +2 -0
- package/dist/bin/shell/chunks/{gzip-RQ5RIFJV.js → gzip-LHOO65AN.js} +1 -1
- package/dist/bin/shell/chunks/jq-VBB2XIZS.js +2 -0
- package/dist/bin/shell/chunks/ln-BEOFQJNP.js +2 -0
- package/dist/bin/shell/chunks/python3-JX5PXXTX.js +17 -0
- package/dist/bin/shell/chunks/sed-BYFYBR4A.js +2 -0
- package/dist/bin/shell/chunks/sleep-E3K6M6BN.js +2 -0
- package/dist/bin/shell/chunks/{sort-NZSEYCI6.js → sort-7GENYU2I.js} +1 -1
- package/dist/bin/shell/chunks/sqlite3-SJHZFBT2.js +2 -0
- package/dist/bin/{chunks/tar-VIYVHMER.js → shell/chunks/tar-W5GBTEDZ.js} +1 -1
- package/dist/bin/shell/chunks/time-AWAKKRSE.js +2 -0
- package/dist/bin/shell/chunks/timeout-OLS72AZG.js +2 -0
- package/dist/bin/shell/chunks/tr-LZF57GYP.js +2 -0
- package/dist/bin/shell/chunks/{uniq-FZWFZEN5.js → uniq-TMSAIZM3.js} +1 -1
- package/dist/bin/shell/chunks/xan-BJ66NSYT.js +2 -0
- package/dist/bin/shell/chunks/yq-GPYVGU2N.js +2 -0
- package/dist/bin/shell/shell.js +234 -234
- package/dist/bundle/browser.js +671 -671
- package/dist/bundle/chunks/awk2-XLDR2J4Q.js +1 -0
- package/dist/bundle/chunks/{base64-A3SGWC34.js → base64-4YMZCVJ5.js} +1 -1
- package/dist/bundle/chunks/{cat-C2OBLGHA.js → cat-RDUMLXKC.js} +1 -1
- package/dist/bundle/chunks/chunk-2OHMPZNZ.js +20 -0
- package/dist/bundle/chunks/chunk-3RCXHB4E.js +4 -0
- package/dist/bundle/chunks/chunk-CCNMISUL.js +1 -0
- package/dist/bundle/chunks/chunk-DOTBQEPN.js +5 -0
- package/dist/bundle/chunks/chunk-GENDESYN.js +1 -0
- package/dist/bundle/chunks/chunk-H4QOE4W3.js +99 -0
- package/dist/bundle/chunks/{chunk-C6ZZC5FL.js → chunk-K5BTXJQC.js} +99 -99
- package/dist/bundle/chunks/chunk-KAZYKNBG.js +13 -0
- package/dist/bundle/chunks/{chunk-KAEMRWOH.js → chunk-KMEYNNUA.js} +1 -1
- package/dist/bundle/chunks/{chunk-FO655G4V.js → chunk-LTZRCH7N.js} +23 -23
- package/dist/bundle/chunks/{chunk-XULIVM35.js → chunk-N4QLRJ32.js} +1 -1
- package/dist/bundle/chunks/{chunk-5CJQNRNJ.js → chunk-NTP6TTH5.js} +1 -1
- package/dist/bundle/chunks/{chunk-IBFD7QQD.js → chunk-QJ7O6ZN3.js} +1 -1
- package/dist/bundle/chunks/chunk-QUME7R6S.js +9 -0
- package/dist/bundle/chunks/{chunk-U7QI5ZS5.js → chunk-RVT3MU3A.js} +4 -4
- package/dist/bundle/chunks/{chunk-6NY2AP72.js → chunk-SDNKECQQ.js} +4 -4
- package/dist/bundle/chunks/chunk-T2EHE3CV.js +1 -0
- package/dist/bundle/chunks/chunk-TBAWQWQB.js +12 -0
- package/dist/bundle/chunks/chunk-TXBZCHCQ.js +5 -0
- package/dist/bundle/chunks/chunk-VYV3YE2F.js +35 -0
- package/dist/bundle/chunks/{chunk-UJIR5V54.js → chunk-W42IGK5R.js} +1 -1
- package/dist/bundle/chunks/{chunk-7BQDVPII.js → chunk-WAN3B6E3.js} +1 -1
- package/dist/bundle/chunks/{chunk-7C6RBHP3.js → chunk-WKFATFPP.js} +3 -3
- package/dist/bundle/chunks/chunk-XXZ46GOX.js +20 -0
- package/dist/bundle/chunks/chunk-ZK6J6F7O.js +1 -0
- package/dist/bundle/chunks/{cut-LO6YYY5P.js → cut-OPC3VAGB.js} +1 -1
- package/dist/bundle/chunks/expr-74QHYJL5.js +1 -0
- package/dist/bundle/chunks/flag-coverage-VGF5NAZP.js +1 -0
- package/dist/bundle/chunks/{gzip-Y4N2UKE7.js → gzip-AQXSGOVS.js} +1 -1
- package/dist/bundle/chunks/jq-JQXAVWNT.js +1 -0
- package/dist/bundle/chunks/ln-RI2SJGXU.js +1 -0
- package/dist/bundle/chunks/python3-TSPOVUHX.js +16 -0
- package/dist/bundle/chunks/sed-CJFW7UYO.js +1 -0
- package/dist/bundle/chunks/sleep-TFDNFOXK.js +1 -0
- package/dist/bundle/chunks/{sort-T7TNLWXL.js → sort-DCNRDA7U.js} +1 -1
- package/dist/bundle/chunks/sqlite3-CTI4ZW7L.js +1 -0
- package/dist/bundle/chunks/{tar-E2DVQEWO.js → tar-Y6LP5EBC.js} +1 -1
- package/dist/bundle/chunks/time-WBKSMCJ6.js +1 -0
- package/dist/bundle/chunks/timeout-O7WSXY5H.js +1 -0
- package/dist/bundle/chunks/tr-GVTWMRZB.js +1 -0
- package/dist/bundle/chunks/{uniq-ZXE4O5XB.js → uniq-SUNANL47.js} +1 -1
- package/dist/bundle/chunks/worker.js +92 -29
- package/dist/bundle/chunks/xan-VMLUNIDS.js +1 -0
- package/dist/bundle/chunks/yq-QXIYE3MW.js +1 -0
- package/dist/bundle/index.cjs +852 -852
- package/dist/bundle/index.js +242 -242
- package/dist/commands/awk/interpreter/context.d.ts +2 -0
- package/dist/commands/awk/interpreter/interpreter.d.ts +2 -0
- package/dist/commands/query-engine/evaluator.d.ts +3 -0
- package/dist/interpreter/defense-aware-command-context.d.ts +6 -0
- package/dist/interpreter/interpreter.d.ts +8 -0
- package/dist/interpreter/types.d.ts +5 -0
- package/dist/timers.d.ts +2 -11
- package/dist/types.d.ts +13 -0
- package/package.json +1 -1
- package/dist/bin/chunks/awk2-ZE5HJBNV.js +0 -2
- package/dist/bin/chunks/chunk-2FFXXW3F.js +0 -14
- package/dist/bin/chunks/chunk-4E3LY6YK.js +0 -10
- package/dist/bin/chunks/chunk-4FNW6LFM.js +0 -5
- package/dist/bin/chunks/chunk-4PZYIYYG.js +0 -36
- package/dist/bin/chunks/chunk-6L4K3UGO.js +0 -100
- package/dist/bin/chunks/chunk-EPIOK4SY.js +0 -6
- package/dist/bin/chunks/chunk-IYZRLSTQ.js +0 -2
- package/dist/bin/chunks/chunk-JJHAWOIB.js +0 -2
- package/dist/bin/chunks/chunk-K47SEEPI.js +0 -6
- package/dist/bin/chunks/chunk-KPWFKFSD.js +0 -21
- package/dist/bin/chunks/chunk-RYXW3SZQ.js +0 -13
- package/dist/bin/chunks/chunk-VZKEP45B.js +0 -21
- package/dist/bin/chunks/expr-MLHUWFYI.js +0 -2
- package/dist/bin/chunks/flag-coverage-LQ37DA4R.js +0 -2
- package/dist/bin/chunks/jq-CXSPO2J5.js +0 -2
- package/dist/bin/chunks/ln-5TCJXDGY.js +0 -2
- package/dist/bin/chunks/python3-74B25WCY.js +0 -17
- package/dist/bin/chunks/sed-DNLJZZXZ.js +0 -2
- package/dist/bin/chunks/sleep-GUJH2AMQ.js +0 -2
- package/dist/bin/chunks/sqlite3-57UI7HYL.js +0 -2
- package/dist/bin/chunks/time-FAWHHOMA.js +0 -2
- package/dist/bin/chunks/timeout-4O4YYRTS.js +0 -2
- package/dist/bin/chunks/tr-4V5A3V2C.js +0 -2
- package/dist/bin/chunks/xan-7NIVZ3HP.js +0 -2
- package/dist/bin/chunks/yq-L5ZSGLLO.js +0 -2
- package/dist/bin/shell/chunks/awk2-ZE5HJBNV.js +0 -2
- package/dist/bin/shell/chunks/chunk-2FFXXW3F.js +0 -14
- package/dist/bin/shell/chunks/chunk-4E3LY6YK.js +0 -10
- package/dist/bin/shell/chunks/chunk-4FNW6LFM.js +0 -5
- package/dist/bin/shell/chunks/chunk-4PZYIYYG.js +0 -36
- package/dist/bin/shell/chunks/chunk-6L4K3UGO.js +0 -100
- package/dist/bin/shell/chunks/chunk-EPIOK4SY.js +0 -6
- package/dist/bin/shell/chunks/chunk-IYZRLSTQ.js +0 -2
- package/dist/bin/shell/chunks/chunk-JJHAWOIB.js +0 -2
- package/dist/bin/shell/chunks/chunk-K47SEEPI.js +0 -6
- package/dist/bin/shell/chunks/chunk-KPWFKFSD.js +0 -21
- package/dist/bin/shell/chunks/chunk-RYXW3SZQ.js +0 -13
- package/dist/bin/shell/chunks/chunk-VZKEP45B.js +0 -21
- package/dist/bin/shell/chunks/expr-MLHUWFYI.js +0 -2
- package/dist/bin/shell/chunks/flag-coverage-LQ37DA4R.js +0 -2
- package/dist/bin/shell/chunks/jq-CXSPO2J5.js +0 -2
- package/dist/bin/shell/chunks/ln-5TCJXDGY.js +0 -2
- package/dist/bin/shell/chunks/python3-74B25WCY.js +0 -17
- package/dist/bin/shell/chunks/sed-DNLJZZXZ.js +0 -2
- package/dist/bin/shell/chunks/sleep-GUJH2AMQ.js +0 -2
- package/dist/bin/shell/chunks/sqlite3-57UI7HYL.js +0 -2
- package/dist/bin/shell/chunks/time-FAWHHOMA.js +0 -2
- package/dist/bin/shell/chunks/timeout-4O4YYRTS.js +0 -2
- package/dist/bin/shell/chunks/tr-4V5A3V2C.js +0 -2
- package/dist/bin/shell/chunks/xan-7NIVZ3HP.js +0 -2
- package/dist/bin/shell/chunks/yq-L5ZSGLLO.js +0 -2
- package/dist/bundle/chunks/awk2-T6LHPVZE.js +0 -1
- package/dist/bundle/chunks/chunk-5BFLZVGH.js +0 -20
- package/dist/bundle/chunks/chunk-7DBA735O.js +0 -5
- package/dist/bundle/chunks/chunk-7KHLIOOW.js +0 -4
- package/dist/bundle/chunks/chunk-AOFQVUAD.js +0 -99
- package/dist/bundle/chunks/chunk-BAAVD5NO.js +0 -20
- package/dist/bundle/chunks/chunk-BEFDX7IY.js +0 -1
- package/dist/bundle/chunks/chunk-KPFCTJEX.js +0 -12
- package/dist/bundle/chunks/chunk-LN5KAJOV.js +0 -5
- package/dist/bundle/chunks/chunk-NBAARP4B.js +0 -1
- package/dist/bundle/chunks/chunk-RHOPHAL6.js +0 -35
- package/dist/bundle/chunks/chunk-SL4FN3A5.js +0 -9
- package/dist/bundle/chunks/chunk-YIY2RKBW.js +0 -13
- package/dist/bundle/chunks/expr-3572LAOT.js +0 -1
- package/dist/bundle/chunks/flag-coverage-MPLWXQQK.js +0 -1
- package/dist/bundle/chunks/jq-MYSLFARY.js +0 -1
- package/dist/bundle/chunks/ln-YAIFIHCT.js +0 -1
- package/dist/bundle/chunks/python3-6BKA3FYA.js +0 -16
- package/dist/bundle/chunks/sed-3ZCNFRHI.js +0 -1
- package/dist/bundle/chunks/sleep-LB7FI6AB.js +0 -1
- package/dist/bundle/chunks/sqlite3-FVNA4KNF.js +0 -1
- package/dist/bundle/chunks/time-AGNW2ZY6.js +0 -1
- package/dist/bundle/chunks/timeout-VN35D5O7.js +0 -1
- package/dist/bundle/chunks/tr-2N7Q3KKJ.js +0 -1
- package/dist/bundle/chunks/xan-VTO4FP3H.js +0 -1
- package/dist/bundle/chunks/yq-JRZFRYSK.js +0 -1
|
@@ -10,6 +10,19 @@ import { createRequire } from "node:module";
|
|
|
10
10
|
import { dirname } from "node:path";
|
|
11
11
|
import { parentPort, workerData } from "node:worker_threads";
|
|
12
12
|
|
|
13
|
+
// src/fs/sanitize-error.ts
|
|
14
|
+
function sanitizeErrorMessage(message) {
|
|
15
|
+
if (!message) return message;
|
|
16
|
+
let sanitized = message.replace(/\n\s+at\s.*/g, "");
|
|
17
|
+
sanitized = sanitized.replace(
|
|
18
|
+
/(?:\/(?:Users|home|private|var|opt|Library|System|usr|etc|tmp|nix|snap))\b[^\s'",)}\]:]*/g,
|
|
19
|
+
"<path>"
|
|
20
|
+
);
|
|
21
|
+
sanitized = sanitized.replace(/node:internal\/[^\s'",)}\]:]+/g, "<internal>");
|
|
22
|
+
sanitized = sanitized.replace(/[A-Z]:\\[^\s'",)}\]:]+/g, "<path>");
|
|
23
|
+
return sanitized;
|
|
24
|
+
}
|
|
25
|
+
|
|
13
26
|
// src/security/blocked-globals.ts
|
|
14
27
|
function getBlockedGlobals() {
|
|
15
28
|
const globals = [
|
|
@@ -1253,9 +1266,27 @@ var WorkerDefenseInDepth = class {
|
|
|
1253
1266
|
}
|
|
1254
1267
|
};
|
|
1255
1268
|
|
|
1269
|
+
// src/security/wasm-callback.ts
|
|
1270
|
+
function sanitizeUnknownError(error) {
|
|
1271
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1272
|
+
return sanitizeErrorMessage(message);
|
|
1273
|
+
}
|
|
1274
|
+
function wrapWasmCallback(component, phase, callback) {
|
|
1275
|
+
return (...args) => {
|
|
1276
|
+
try {
|
|
1277
|
+
return callback(...args);
|
|
1278
|
+
} catch (error) {
|
|
1279
|
+
const message = sanitizeUnknownError(error);
|
|
1280
|
+
throw new Error(`${component} ${phase} callback failed: ${message}`);
|
|
1281
|
+
}
|
|
1282
|
+
};
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1256
1285
|
// src/timers.ts
|
|
1257
|
-
var
|
|
1258
|
-
var
|
|
1286
|
+
var nativeSetTimeout = globalThis.setTimeout.bind(globalThis);
|
|
1287
|
+
var nativeClearTimeout = globalThis.clearTimeout.bind(globalThis);
|
|
1288
|
+
var nativeSetInterval = globalThis.setInterval.bind(globalThis);
|
|
1289
|
+
var nativeClearInterval = globalThis.clearInterval.bind(globalThis);
|
|
1259
1290
|
var _SharedArrayBuffer = globalThis.SharedArrayBuffer;
|
|
1260
1291
|
var _Atomics = globalThis.Atomics;
|
|
1261
1292
|
var _performanceNow = performance.now.bind(performance);
|
|
@@ -2413,9 +2444,8 @@ function createHTTPFS(backend, FS) {
|
|
|
2413
2444
|
});
|
|
2414
2445
|
lastResponse = encoder.encode(JSON.stringify(result));
|
|
2415
2446
|
} catch (e) {
|
|
2416
|
-
|
|
2417
|
-
|
|
2418
|
-
);
|
|
2447
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2448
|
+
lastResponse = encoder.encode(JSON.stringify({ error: message }));
|
|
2419
2449
|
}
|
|
2420
2450
|
}
|
|
2421
2451
|
delete stream.hostContent;
|
|
@@ -2543,6 +2573,16 @@ sys.modules['jb_http'] = jb_http
|
|
|
2543
2573
|
`;
|
|
2544
2574
|
}
|
|
2545
2575
|
var cachedStdlibZip = new Uint8Array(readFileSync(stdlibZipPath));
|
|
2576
|
+
function postWorkerMessage(message) {
|
|
2577
|
+
try {
|
|
2578
|
+
parentPort?.postMessage(message);
|
|
2579
|
+
} catch (error) {
|
|
2580
|
+
console.debug(
|
|
2581
|
+
"[python3-worker] failed to post worker message:",
|
|
2582
|
+
sanitizeUnknownError(error)
|
|
2583
|
+
);
|
|
2584
|
+
}
|
|
2585
|
+
}
|
|
2546
2586
|
async function runPython(input) {
|
|
2547
2587
|
const backend = new SyncFsBackend(input.sharedBuffer);
|
|
2548
2588
|
const createPythonModule = require2(`${cpythonDir}/python.cjs`);
|
|
@@ -2551,17 +2591,20 @@ async function runPython(input) {
|
|
|
2551
2591
|
const pendingStderr = [];
|
|
2552
2592
|
let Module;
|
|
2553
2593
|
try {
|
|
2554
|
-
|
|
2555
|
-
|
|
2556
|
-
preRun
|
|
2557
|
-
|
|
2558
|
-
|
|
2559
|
-
|
|
2560
|
-
|
|
2561
|
-
|
|
2562
|
-
|
|
2563
|
-
|
|
2564
|
-
|
|
2594
|
+
const onPreRun = wrapWasmCallback(
|
|
2595
|
+
"python3-worker",
|
|
2596
|
+
"preRun",
|
|
2597
|
+
(mod) => {
|
|
2598
|
+
mod.FS.mkdirTree("/lib");
|
|
2599
|
+
mod.FS.writeFile("/lib/python313.zip", cachedStdlibZip);
|
|
2600
|
+
mod.ENV.PYTHONHOME = "/";
|
|
2601
|
+
mod.ENV.PYTHONPATH = "/lib/python313.zip";
|
|
2602
|
+
}
|
|
2603
|
+
);
|
|
2604
|
+
const onPrint = wrapWasmCallback(
|
|
2605
|
+
"python3-worker",
|
|
2606
|
+
"print",
|
|
2607
|
+
(text) => {
|
|
2565
2608
|
if (moduleReady) {
|
|
2566
2609
|
backend.writeStdout(`${text}
|
|
2567
2610
|
`);
|
|
@@ -2569,8 +2612,12 @@ async function runPython(input) {
|
|
|
2569
2612
|
pendingStdout.push(`${text}
|
|
2570
2613
|
`);
|
|
2571
2614
|
}
|
|
2572
|
-
}
|
|
2573
|
-
|
|
2615
|
+
}
|
|
2616
|
+
);
|
|
2617
|
+
const onPrintErr = wrapWasmCallback(
|
|
2618
|
+
"python3-worker",
|
|
2619
|
+
"printErr",
|
|
2620
|
+
(text) => {
|
|
2574
2621
|
if (typeof text === "string" && (text.includes("Could not find platform") || text.includes("LLVM Profile Error"))) {
|
|
2575
2622
|
return;
|
|
2576
2623
|
}
|
|
@@ -2582,11 +2629,18 @@ async function runPython(input) {
|
|
|
2582
2629
|
`);
|
|
2583
2630
|
}
|
|
2584
2631
|
}
|
|
2632
|
+
);
|
|
2633
|
+
Module = await createPythonModule({
|
|
2634
|
+
noInitialRun: true,
|
|
2635
|
+
preRun: [onPreRun],
|
|
2636
|
+
print: onPrint,
|
|
2637
|
+
printErr: onPrintErr
|
|
2585
2638
|
});
|
|
2586
2639
|
} catch (e) {
|
|
2640
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2587
2641
|
return {
|
|
2588
2642
|
success: false,
|
|
2589
|
-
error: `Failed to load CPython: ${
|
|
2643
|
+
error: `Failed to load CPython: ${message}`
|
|
2590
2644
|
};
|
|
2591
2645
|
}
|
|
2592
2646
|
activateDefense();
|
|
@@ -2598,9 +2652,10 @@ async function runPython(input) {
|
|
|
2598
2652
|
Module.FS.mkdir("/host");
|
|
2599
2653
|
Module.FS.mount(HOSTFS, { root: "/" }, "/host");
|
|
2600
2654
|
} catch (e) {
|
|
2655
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2601
2656
|
return {
|
|
2602
2657
|
success: false,
|
|
2603
|
-
error: `Failed to mount HOSTFS: ${
|
|
2658
|
+
error: `Failed to mount HOSTFS: ${message}`
|
|
2604
2659
|
};
|
|
2605
2660
|
}
|
|
2606
2661
|
const HTTPFS = createHTTPFS(backend, Module.FS);
|
|
@@ -2608,9 +2663,10 @@ async function runPython(input) {
|
|
|
2608
2663
|
Module.FS.mkdir("/_jb_http");
|
|
2609
2664
|
Module.FS.mount(HTTPFS, { root: "/" }, "/_jb_http");
|
|
2610
2665
|
} catch (e) {
|
|
2666
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2611
2667
|
return {
|
|
2612
2668
|
success: false,
|
|
2613
|
-
error: `Failed to mount HTTPFS: ${
|
|
2669
|
+
error: `Failed to mount HTTPFS: ${message}`
|
|
2614
2670
|
};
|
|
2615
2671
|
}
|
|
2616
2672
|
const setupCode = generateSetupCode(input);
|
|
@@ -2660,6 +2716,13 @@ function activateDefense() {
|
|
|
2660
2716
|
writable: true,
|
|
2661
2717
|
configurable: true
|
|
2662
2718
|
});
|
|
2719
|
+
const onViolation = wrapWasmCallback(
|
|
2720
|
+
"python3-worker",
|
|
2721
|
+
"onViolation",
|
|
2722
|
+
(v) => {
|
|
2723
|
+
postWorkerMessage({ type: "security-violation", violation: v });
|
|
2724
|
+
}
|
|
2725
|
+
);
|
|
2663
2726
|
defense = new WorkerDefenseInDepth({
|
|
2664
2727
|
excludeViolationTypes: [
|
|
2665
2728
|
// SharedArrayBuffer/Atomics: Used by sync-fs-backend.ts for synchronous
|
|
@@ -2670,26 +2733,26 @@ function activateDefense() {
|
|
|
2670
2733
|
// stub. Defense doesn't need to block it — it's already degraded.
|
|
2671
2734
|
"performance_timing"
|
|
2672
2735
|
],
|
|
2673
|
-
onViolation
|
|
2674
|
-
parentPort?.postMessage({ type: "security-violation", violation: v });
|
|
2675
|
-
}
|
|
2736
|
+
onViolation
|
|
2676
2737
|
});
|
|
2677
2738
|
}
|
|
2678
2739
|
process.on("uncaughtException", (e) => {
|
|
2679
|
-
|
|
2740
|
+
const message = sanitizeErrorMessage(e.message);
|
|
2741
|
+
postWorkerMessage({
|
|
2680
2742
|
success: false,
|
|
2681
|
-
error: `Worker uncaught exception: ${
|
|
2743
|
+
error: `Worker uncaught exception: ${message}`
|
|
2682
2744
|
});
|
|
2683
2745
|
});
|
|
2684
2746
|
if (parentPort) {
|
|
2685
2747
|
if (workerData) {
|
|
2686
2748
|
runPython(workerData).then((result) => {
|
|
2687
2749
|
result.defenseStats = defense?.getStats();
|
|
2688
|
-
|
|
2750
|
+
postWorkerMessage(result);
|
|
2689
2751
|
}).catch((e) => {
|
|
2690
|
-
|
|
2752
|
+
const message = sanitizeUnknownError(e);
|
|
2753
|
+
postWorkerMessage({
|
|
2691
2754
|
success: false,
|
|
2692
|
-
error:
|
|
2755
|
+
error: message,
|
|
2693
2756
|
defenseStats: defense?.getStats()
|
|
2694
2757
|
});
|
|
2695
2758
|
});
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{a,b}from"./chunk-Q4WHWGOT.js";import"./chunk-GZHFXDDO.js";import"./chunk-QSDVMMYI.js";import"./chunk-V7VIJQD6.js";import"./chunk-UYBH3FNE.js";import"./chunk-4PRVMER6.js";import"./chunk-WO4B7WUT.js";import"./chunk-EO5AH4U7.js";import"./chunk-SE4C7FJY.js";import"./chunk-5WFYIUU2.js";import"./chunk-6KZRLMG3.js";import"./chunk-OBH7XN5N.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as xanCommand};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import{a,b}from"./chunk-Q3FNZYGG.js";import"./chunk-QSDVMMYI.js";import"./chunk-V7VIJQD6.js";import"./chunk-UYBH3FNE.js";import"./chunk-4PRVMER6.js";import"./chunk-WO4B7WUT.js";import"./chunk-EO5AH4U7.js";import"./chunk-SE4C7FJY.js";import"./chunk-SYG3IW7P.js";import"./chunk-6KZRLMG3.js";import"./chunk-GTNBSMZR.js";import"./chunk-KGOUQS5A.js";export{b as flagsForFuzzing,a as yqCommand};
|