{ "name": "just-bash", "version": "3.1.0", "description": "A simulated bash environment with virtual filesystem", "repository": { "type": "git", "url": "git+https://github.com/vercel-labs/just-bash.git" }, "homepage": "https://github.com/vercel-labs/just-bash#readme", "bugs": { "url": "https://github.com/vercel-labs/just-bash/issues" }, "type": "module", "main": "dist/bundle/index.js", "types": "dist/index.d.ts", "exports": { ".": { "browser": "./dist/bundle/browser.js", "require": { "types": "./dist/index.d.cts", "default": "./dist/bundle/index.cjs" }, "import": { "types": "./dist/index.d.ts", "default": "./dist/bundle/index.js" } }, "./browser": { "types": "./dist/browser.d.ts", "import": "./dist/bundle/browser.js" } }, "files": [ "dist/bundle/", "dist/bin/", "dist/*.d.ts", "dist/*.d.cts", "dist/ast/*.d.ts", "dist/commands/**/*.d.ts", "dist/commands/sqlite3/worker.js", "dist/fs/**/*.d.ts", "dist/interpreter/**/*.d.ts", "dist/network/**/*.d.ts", "dist/parser/*.d.ts", "dist/sandbox/*.d.ts", "dist/utils/*.d.ts", "vendor/cpython-emscripten/", "README.md", "CHANGELOG.md", "dist/AGENTS.md" ], "bin": { "just-bash": "./dist/bin/just-bash.js", "just-bash-shell": "./dist/bin/shell/shell.js" }, "publishConfig": { "access": "public" }, "keywords": [], "author": "Malte and Claude", "license": "Apache-2.0", "devDependencies": { "@types/ini": "^4.1.1", "@types/node": "^25.0.3", "@types/papaparse": "^5.5.2", "@types/sprintf-js": "^1.1.4", "@types/sql.js": "^1.4.9", "@types/turndown": "^5.0.6", "@vitest/coverage-v8": "^4.0.18", "esbuild": "^0.27.2", "fast-check": "^3.23.2", "knip": "^5.41.1", "typescript": "^5.9.3", "vitest": "^4.0.16" }, "dependencies": { "seek-bzip": "^2.0.0", "diff": "^8.0.2", "fast-xml-parser": "^5.7.3", "file-type": "^21.2.0", "ini": "^6.0.0", "minimatch": "^10.1.1", "modern-tar": "^0.7.3", "papaparse": "^5.5.3", "quickjs-emscripten": "^0.32.0", "re2js": "^1.2.1", "smol-toml": "^1.6.0", "sprintf-js": "^1.1.3", "sql.js": "^1.13.0", "turndown": "^7.2.2", "yaml": "^2.8.2" }, "optionalDependencies": { "@mongodb-js/zstd": "^7.0.0", "node-liblzma": "^2.0.3" }, "scripts": { "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", "build:clean": "find dist -name '*.test.js' -delete && find dist -name '*.test.d.ts' -delete", "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", "build:lib": "esbuild dist/index.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bundle --chunk-names=chunks/[name]-[hash] --banner:js='import{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --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", "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", "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", "build:cli": "esbuild dist/cli/just-bash.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node\nimport{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip", "build:shell": "esbuild dist/cli/shell.js --bundle --splitting --platform=node --format=esm --minify --outdir=dist/bin/shell --entry-names=[name] --chunk-names=chunks/[name]-[hash] --banner:js='#!/usr/bin/env node\nimport{createRequire} from\"node:module\";const require=createRequire(import.meta.url);' --external:sql.js --external:quickjs-emscripten --external:@mongodb-js/zstd --external:node-liblzma --external:seek-bzip", "validate": "pnpm lint && pnpm knip && pnpm typecheck && pnpm build && pnpm check:worker-sync && pnpm test:run && pnpm test:wasm && pnpm test:dist", "typecheck": "tsc --noEmit", "lint": "pnpm lint:banned", "check:worker-sync": "node scripts/check-worker-sync.js", "lint:banned": "node scripts/check-banned-patterns.js", "lint:fix": "pnpm --workspace-root lint:fix", "knip": "knip", "test": "vitest", "test:run": "vitest run --exclude src/security/fuzzing/ --exclude src/commands/python3/ --exclude src/commands/sqlite3/ --exclude src/commands/js-exec/ --exclude src/agent-examples/python-scripting.test.ts", "test:dist": "vitest run src/cli/just-bash.bundle.test.ts", "test:unit": "vitest run --config vitest.unit.config.ts", "test:wasm": "vitest run --config vitest.wasm.config.ts", "test:comparison": "vitest run --config vitest.comparison.config.ts", "test:comparison:record": "RECORD_FIXTURES=1 vitest run --config vitest.comparison.config.ts", "test:coverage": "vitest run --coverage", "test:coverage:unit": "vitest run --config vitest.unit.config.ts --coverage", "test:fuzz": "vitest run src/security/fuzzing/", "test:fuzz:long": "FUZZ_RUNS=10000 vitest run src/security/fuzzing/", "shell": "npx tsx src/cli/shell.ts", "dev:exec": "npx tsx src/cli/exec.ts" } }