{"_id":"unbash","_rev":"19-c8a1d521c284903b623a7452794561da","name":"unbash","dist-tags":{"latest":"4.0.11"},"versions":{"0.0.0":{"name":"unbash","version":"0.0.0","_id":"unbash@0.0.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"dist":{"shasum":"8cce7fa078931da42a6d68d5094d9d9865d8384f","tarball":"https://registry.npmjs.org/unbash/-/unbash-0.0.0.tgz","fileCount":1,"integrity":"sha512-cxK17efrDmF8CasxfpSufDVBlF2VKMkXbyxckv1A+CtxESKeqTRi1urc1n4EIPq36IXtg9kwlH6U3jsPzXCdPw==","signatures":[{"sig":"MEYCIQDRPALJoJLJnnopMOKZp7Iysxl0WC1TcrsuXJlifs1N4gIhAPZj/WM77dOK48ule16ESXLhWuAVzOU6I/QBFUROXdyn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":45},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"_npmVersion":"11.8.0","directories":{},"_nodeVersion":"24.13.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/unbash_0.0.0_1772033543979_0.8377270995957524","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"unbash","version":"1.0.0","author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@1.0.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"e19e9d096e20bb73fec92a782399186815ca1ea7","tarball":"https://registry.npmjs.org/unbash/-/unbash-1.0.0.tgz","fileCount":19,"integrity":"sha512-snIuKvZ57/0NtuheXlgWT3ZqAiodVDpQNY6euEYBKCQNarRIn3J9WdgEOn164DL6Lk7VMW8ArGIIelk6Q1M/aQ==","signatures":[{"sig":"MEUCIQCe1G01gD1rPl2qpR7zQKSsPoRExSUoxB6DMXJKgfpc7QIgUMMpBeAQ4uOcetr/6HxBY3Tj/w44RVa+pi9TxGn+teg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":244411},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"}},"gitHead":"436dff9c0b6c2bb459a3cf902ccc912e05737b10","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"rolldown dist/parser.js -f esm -m -o playground/parser.js && cd playground && zip -r ./playground.zip ."},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.9.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.14.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.2","devDependencies":{"oxfmt":"^0.35.0","mitata":"^1.0.34","oxlint":"^1.50.0","remark":"^15.0.1","rolldown":"1.0.0-rc.6","sh-syntax":"^0.5.8","typescript":"^5.8.3","@types/node":"^24.10.13","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.5","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.1.1","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_1.0.0_1772296250316_0.722450492944124","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"unbash","version":"1.0.1","author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@1.0.1","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"a1a17002099987ced121ce5d2828a7b016b5c639","tarball":"https://registry.npmjs.org/unbash/-/unbash-1.0.1.tgz","fileCount":19,"integrity":"sha512-oCK/pknTrncOJlrtV7m4YN254OC+Wo8b+TatgUYfpRnY+qCoEvKGLnN0aBn2D3dOe4fgomg88iC74LN68WDBNg==","signatures":[{"sig":"MEQCIH1zypngZp/UxjSAn1ibO6jQrRG2ps6MRizLs7pGZkPLAiAgd8qtcNC/phjjoeIF4S/OnpTfxhiKESy1ZC2eeOiqaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":249406},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"}},"gitHead":"e8822edfb6860e14a530e1bcb7d020b56c1e188b","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"rolldown dist/parser.js -f esm -m -o playground/parser.js && cd playground && zip -r ./playground.zip ."},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.9.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.14.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.2","devDependencies":{"oxfmt":"^0.35.0","mitata":"^1.0.34","oxlint":"^1.50.0","remark":"^15.0.1","rolldown":"1.0.0-rc.6","sh-syntax":"^0.5.8","typescript":"^5.8.3","@types/node":"^24.10.13","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.5","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.1.1","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_1.0.1_1772313473019_0.7229639064932574","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"unbash","version":"2.0.0","author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@2.0.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"2616d1ce5b5a7847d9ceec3071805421bac477c2","tarball":"https://registry.npmjs.org/unbash/-/unbash-2.0.0.tgz","fileCount":17,"integrity":"sha512-34tVxXqPlybuvKBxxGQfUeO5JOCUS0qUbDrjj6J0eXflUWN++i0i+4t8VSRn9LJMPzBFiaVgtVFut9tkPCcOXQ==","signatures":[{"sig":"MEUCIBIzT0SdkSSLQUH5Z0jfMhLNScxhYrzreDsbnwkZGVseAiEApZmLlLkvl0OsoaYzSIM7DbxiFhOe2w3Csb/cp9uQQGI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172938},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"2715771776b95574ba1201058e7f7b1a745fa3d3","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"npx rolldown src/parser.ts -f esm -m -o playground/parser.js && npx rolldown src/printer.ts -f esm -m -o playground/printer.js"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.9.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.14.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.2","devDependencies":{"oxfmt":"^0.35.0","mitata":"^1.0.34","oxlint":"^1.50.0","remark":"^15.0.1","rolldown":"1.0.0-rc.6","sh-syntax":"^0.5.8","typescript":"^5.8.3","@types/node":"^24.10.13","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.5","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.1.1","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_2.0.0_1772363993474_0.4706131272274696","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"unbash","version":"2.1.0","author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@2.1.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"205cf26ef73b7de4e33810476ca4050c4faf8e02","tarball":"https://registry.npmjs.org/unbash/-/unbash-2.1.0.tgz","fileCount":19,"integrity":"sha512-k8YrgRxCrhKMbnGaNeIzfcVmsAwhGmR1Bki1CWmoMz+0VQhOMbsfG2hOwle7yIPD0AfcPiLOlLZJ3TgRJ7uDRw==","signatures":[{"sig":"MEUCIFCTXjfxSI1xI7w7Qyj0VnbDRubvurtBfkEm3YbPk1YIAiEAz2d/3rBsZIwcBDGs5ZJWExdBmfpG3puDSkmdnYMH0Qg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":173730},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"ed71504a56e6c7c9afab0ac670760c19acf0535d","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"npx rolldown src/parser.ts -f esm -m -o playground/parser.js && npx rolldown src/printer.ts -f esm -m -o playground/printer.js"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"10.9.4","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"22.22.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.2","devDependencies":{"oxfmt":"^0.35.0","mitata":"^1.0.34","oxlint":"^1.50.0","remark":"^15.0.1","rolldown":"1.0.0-rc.6","sh-syntax":"^0.5.8","typescript":"^5.8.3","@types/node":"^24.10.13","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.5","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.1.1","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_2.1.0_1772374709939_0.11395364680694664","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"unbash","version":"2.2.0","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@2.2.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"ab65fcb3903aa5f2bc5ff8f057129ac2dd5bb2db","tarball":"https://registry.npmjs.org/unbash/-/unbash-2.2.0.tgz","fileCount":19,"integrity":"sha512-X2wH19RAPZE3+ldGicOkoj/SIA83OIxcJ6Cuaw23hf8Xc6fQpvZXY0SftE2JgS0QhYLUG4uwodSI3R53keyh7w==","signatures":[{"sig":"MEUCIQDYHGalwMEmcru6bgjEcsw8hn2ucM8F2YMoUHfBUOnPLgIgAdzEfrTfRo9e2PK8WraItM43n04Ii7+oxblZ/YpTvD0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":174524},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"df8ef13cf0b2b42f268dd92b79687c463a7a3253","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"npx rolldown src/parser.ts -f esm -m -o playground/parser.js && npx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"10.9.4","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"22.22.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.2","devDependencies":{"oxfmt":"^0.35.0","mitata":"^1.0.34","oxlint":"^1.50.0","remark":"^15.0.1","rolldown":"1.0.0-rc.6","sh-syntax":"^0.5.8","typescript":"^5.8.3","@types/node":"^24.10.13","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.5","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.1.1","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_2.2.0_1772393625336_0.9446652339164752","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"unbash","version":"3.0.0","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@3.0.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"57efd0217212ee4abcb820372c87b64ad3af687d","tarball":"https://registry.npmjs.org/unbash/-/unbash-3.0.0.tgz","fileCount":19,"integrity":"sha512-FeFPZ/WFT0mbRCuydiZzpPFlrYN8ZUpphQKoq4EeElVIYjYyGzPMxQR/simUwCOJIyVhpFk4RbtyO7RuMpMnHA==","signatures":[{"sig":"MEQCIFKpDDpLx9spLvNZsLoFCQfYF9ZxTxJRuLoB6nqxnqXeAiAvDyu03b00uiUN9IHo5QtGKxlbcgM3gyf+qpSUDEUkbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":176899},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"34e3f336b404fb7a6bd71ba8c9d0891fae005f6c","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"npx rolldown src/parser.ts -f esm -m -o playground/parser.js && npx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl"},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.11.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.14.1","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@10.29.2","devDependencies":{"oxfmt":"^0.35.0","mitata":"^1.0.34","oxlint":"^1.50.0","remark":"^15.0.1","rolldown":"1.0.0-rc.6","sh-syntax":"^0.5.8","typescript":"^5.8.3","@types/node":"^24.10.13","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.5","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.1.1","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_3.0.0_1776767791285_0.6298524370905749","host":"s3://npm-registry-packages-npm-production"}},"4.0.0":{"name":"unbash","version":"4.0.0","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.0","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"0eb5aff3f4c3388e0c4e53835681c9a18e9409d1","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.0.tgz","fileCount":19,"integrity":"sha512-J+0/entxYVSW3hcXVegG+ehVV/aB1LOLKwN6dEmQ6B/9KnLZc5Jfv4PA8w6XntGDW/7V/AAF30qXE2lr3ymIGA==","signatures":[{"sig":"MEYCIQDdr5+BNVSb6Z2a0QyoYxSygf2T89oYOuDapStfidL9DQIhAIZn+Ycqo/quxZf2QV9P/IKu5HBziq8tbDt8Kl3A2NI1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181866},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"4732faddc5142fa0931454b02b3c08be56529bbd","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"npx rolldown src/parser.ts -f esm -m -o playground/parser.js && npx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.16.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"22.22.3","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.53.0","mitata":"^1.0.34","oxlint":"^1.68.0","remark":"^15.0.1","rolldown":"1.1.0","sh-syntax":"^0.5.8","typescript":"^6.0.3","@types/node":"^24.13.1","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.9","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.0_1781002261263_0.20985123084378343","host":"s3://npm-registry-packages-npm-production"}},"4.0.1":{"name":"unbash","version":"4.0.1","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.1","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"efa4876b0f95ab86931546aa1e699e7e353de7ad","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.1.tgz","fileCount":19,"integrity":"sha512-1ajSo3813sDoVIHx4inJdUS4l5L2ic5cFiddemPiyjb/PZEoBAhFwHtbaEdRDFxbAKy7FCG7s5ww3/uCFawuIA==","signatures":[{"sig":"MEUCIDY6KK21DKz2BsP0Mn7qM3JS5R3gUZja1POHqIe29+smAiEAlyhRcZwdtdNI+3qJebQ176PZXYNgl3XVM7G8BXYO1yg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":180862},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"536fec2b717873d5d01ee3eb310506270658222d","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.16.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"22.22.3","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.53.0","mitata":"^1.0.34","oxlint":"^1.68.0","remark":"^15.0.1","rolldown":"1.1.0","sh-syntax":"^0.5.8","typescript":"^6.0.3","@types/node":"^24.13.1","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.9","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.1_1781003890093_0.9841009484087784","host":"s3://npm-registry-packages-npm-production"}},"4.0.2":{"name":"unbash","version":"4.0.2","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.2","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"79ec0fcca990e24c78e6bddcc9b8cb7d756533f0","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.2.tgz","fileCount":19,"integrity":"sha512-8gwNZ29+0/3zmXw7ToIHZtg6wK37xnniRUdBt7B27xZxaxfgR5tGMaGHT0t0dLtBV9fXE7zurh0s6Z1DHVjfWg==","signatures":[{"sig":"MEYCIQC3FUT1gtPA7nMJw/1c4iJaa6PlJZ4SVqefmNL+750WzQIhAMbPCOtZP5PharGJd7J6yuSyWmiMcdbtOBHyHxJSe0kl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":181266},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"31e27872e86021a16527e3d816d3f248efe52f15","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.17.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.9.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.53.0","mitata":"^1.0.34","oxlint":"^1.68.0","remark":"^15.0.1","rolldown":"1.1.0","sh-syntax":"^0.5.8","typescript":"^6.0.3","@types/node":"^24.13.1","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.9","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.2_1782637035027_0.3601678985846173","host":"s3://npm-registry-packages-npm-production"}},"4.0.3":{"name":"unbash","version":"4.0.3","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.3","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"cfa42311c8d558db020f6225a7889081078a89bd","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.3.tgz","fileCount":19,"integrity":"sha512-3cudTErfToSc4Ggv8XGXVNVli/xHKUtUZvaY5UVwhOcUPbQGz7PeaEnT/SAVgNziZtX67KEN9swMUYkLghxA1w==","signatures":[{"sig":"MEUCIQDtY7kJdE0UF2/S2Y02l8HjGUO+Uh9AekLDSzsfJ9nf9AIgfwu6UpHwKuigvUomC18OLrFulEfGDYNJB46G9OkKIMo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":184792},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"gitHead":"d12dd7849d9687ee71491860bc9f0c35be7c27b3","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.17.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"26.4.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.58.0","mitata":"^1.0.34","oxlint":"^1.73.0","remark":"^15.0.1","rolldown":"1.1.5","sh-syntax":"^0.6.0","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.3_1784048885385_0.006234633291361202","host":"s3://npm-registry-packages-npm-production"}},"4.0.4":{"name":"unbash","version":"4.0.4","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.4","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"d5f34d8788325c1ade67d0091a7dabfc38557ec0","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.4.tgz","fileCount":19,"integrity":"sha512-60m9IVGbavD6jholbxt0jVBXZkEB/HsMZq7Tyaghseve2/Sf0zQRAIfWsD34sde+DKP2tBxJS2wP88ZM0D1FhA==","signatures":[{"sig":"MEQCIHfp+ZBIC4VkOq+uwbDCNETRTPJhirOgCjyasVKRL0PpAiAQJyCGm8voND9hHHabi0v9nCo6JYo2+oZt43l/V67bKw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186010},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"12.0.1","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.18.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.58.0","mitata":"^1.0.34","oxlint":"^1.73.0","remark":"^15.0.1","rolldown":"1.1.5","sh-syntax":"^0.6.0","release-it":"^21.0.0","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.4_1785144691168_0.0719493715977153","host":"s3://npm-registry-packages-npm-production"}},"4.0.5":{"name":"unbash","version":"4.0.5","keywords":["ast","bash","lexer","parser","posix","scanner","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.5","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"a63cad7423d331404727b03d70b72b47bd804ff6","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.5.tgz","fileCount":23,"integrity":"sha512-EE9xv9cr93DSppe086Rnbq0jwG7MBCEe22JZ4UQ8Bn9RyUwDSoUpBmzdb5+7PzocdqBEb/K73FGPaQUMmLxTQQ==","signatures":[{"sig":"MEUCIQDQM2eZXxlcoV7H1p0HzvCoZmdCR059CGfsSeSR1QnadwIgYYrlmLXp24vvwY7EuzmKHrPfBWjrEq38YLjxGgw0d0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":257096},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"12.0.2","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.18.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.58.0","mitata":"^1.0.34","oxlint":"^1.73.0","remark":"^15.0.1","rolldown":"1.1.5","sh-syntax":"^0.6.0","release-it":"^21.0.0","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.5_1785743384712_0.9479651999032959","host":"s3://npm-registry-packages-npm-production"}},"4.0.6":{"name":"unbash","version":"4.0.6","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.6","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"73de6a8cfecd308d4fb40c672fdb8ad016c7f930","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.6.tgz","fileCount":23,"integrity":"sha512-YGBMSVG/WrA2vgaZbXVvxrGgoMcWZecyyS4foGt8clbtY7s1nIKNmt7Z9LR74XE6FkYTSqDmKk2lIOhOjIvmrw==","signatures":[{"sig":"MEUCIHXSBI6FV2afxfuarDztmmoCxNMvLyqxCDtpnYB+MYQ0AiEAhdLmbXYhVpQy730h/ifBuc9D7DSqgwpTGy4n90s29hg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":259057},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"12.0.2","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.18.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.58.0","mitata":"^1.0.34","oxlint":"^1.73.0","remark":"^15.0.1","rolldown":"1.1.5","sh-syntax":"^0.6.0","release-it":"^21.0.0","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.6_1785821042437_0.916118015612158","host":"s3://npm-registry-packages-npm-production"}},"4.0.7":{"name":"unbash","version":"4.0.7","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.7","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"a3b8fedb5f2873ed0749e004e351925e89dee219","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.7.tgz","fileCount":23,"integrity":"sha512-P3NODenm+qh2PwrP3gzJBx7a541oRtrUTRCyMH8K53P27oZjstMwf7A3CqwWtLLLOIUigRqjdEHSn2UHBQlASA==","signatures":[{"sig":"MEYCIQDdjzpaeHAUphQ+9o5P3oQEKlqTrkXwcBznIzDR4whbBQIhALYVpoMwgl97RT+H+TohqrK4sTy16zTCseOLmvKXPfEs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":265336},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"12.0.2","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.18.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.58.0","mitata":"^1.0.34","oxlint":"^1.73.0","remark":"^15.0.1","rolldown":"1.1.5","sh-syntax":"^0.6.0","release-it":"^21.0.0","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.0","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.7_1786096251798_0.9793297210308172","host":"s3://npm-registry-packages-npm-production"}},"4.0.8":{"name":"unbash","version":"4.0.8","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.8","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"1bf7e3a1ff166eb83c6658e0c1a1dd3ead2243f1","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.8.tgz","fileCount":23,"integrity":"sha512-gGRSq/2OXbvqC8vY23OY4tUpr66Fyzk+PmwVlUX4/lRsOBLX4pixwcRW1vLT5kZ98iWTbfcvXRgxBdKxy5E0XA==","signatures":[{"sig":"MEQCIDZ786QjfHbXRzmjk2Mx7pwzjTTCv48oe2+cc/7Eh7ZuAiAty2TWJ78adzv40Zc4/A5hBlq6c4IEXz37YnxifanUgw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270075},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.16.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.18.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.62.0","mitata":"^1.0.34","oxlint":"^1.77.0","remark":"^15.0.1","rolldown":"1.2.3","sh-syntax":"^0.6.0","release-it":"^21.0.1","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.1","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.8_1786177355635_0.6791770112400008","host":"s3://npm-registry-packages-npm-production"}},"4.0.9":{"name":"unbash","version":"4.0.9","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.9","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"a582853112a9412d5e6b3985c6bb5cd87a7ace51","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.9.tgz","fileCount":23,"integrity":"sha512-J8HTKzXbwi6oQKiKEbTKMsc30jKaU5vEzDejemz4bK8OqfENSPWWV8lW+Dl7rvcTTwBmAx/It4PUd1H9RjESIw==","signatures":[{"sig":"MEQCIGbUiTIh36hJpMLwd5hlshO7KpkWXZ0jXFmVI3T5kP6tAiAfTG7sb0um3Rqbsr+snVNOMpyWDsBR87mc3tg9nwuRFQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":277997},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.17.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.19.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.62.0","mitata":"^1.0.34","oxlint":"^1.77.0","remark":"^15.0.1","rolldown":"1.2.3","sh-syntax":"^0.6.0","release-it":"^21.0.1","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.1","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.9_1786206454693_0.7765530563395981","host":"s3://npm-registry-packages-npm-production"}},"4.0.10":{"name":"unbash","version":"4.0.10","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","_id":"unbash@4.0.10","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"homepage":"https://github.com/webpro-nl/unbash#readme","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"116c02b6a36cda03cb5730dcc110b9ce7e4abeb1","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.10.tgz","fileCount":23,"integrity":"sha512-b7zoBQvpWp0vuN5q2vK2RRBR2SvuruQAs50DApdDveBSn3eSYd84IaHodFqQIMlvY9K2VnyBUEXgwOBuGU9GBg==","signatures":[{"sig":"MEUCIFTekoddx1QfLRE/MO9BF2M1d/lDvZ+7L9mKE7V3b+7cAiEAgR4GQkgS7ltsPpcOx/8SQoYYBm58eZYVxFnrJ9a6ECI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279740},"type":"module","engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"11.17.0","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"_nodeVersion":"24.19.0","remarkConfig":{"plugins":["preset-webpro"]},"_hasShrinkwrap":false,"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.62.0","mitata":"^1.0.34","oxlint":"^1.77.0","remark":"^15.0.1","rolldown":"1.2.3","sh-syntax":"^0.6.0","release-it":"^21.0.1","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.1","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"tmp":"tmp/unbash_4.0.10_1786260698227_0.8468757207529864","host":"s3://npm-registry-packages-npm-production"}},"4.0.11":{"_id":"unbash@4.0.11","bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"dist":{"shasum":"694c177e8bf8865c1d570177f10ae538617f1577","tarball":"https://registry.npmjs.org/unbash/-/unbash-4.0.11.tgz","integrity":"sha512-FoSOKV7NEofQSkAefMVHam4ZPKYMxjAydxiV72UFEDNV/YofxjGfiZ2A9pZjdL/lRJzTjcu4PABo1JYJX8N5iQ==","fileCount":23,"unpackedSize":285714,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIH6jkpCLVIPBWm5E1ekKO79YR+dc46+ZwiZu2xSyPJ8UAiAO/fOWYvCSUsSlDgf9N/X+q6p/5GmAAXTi/oW0Ornxww=="}]},"name":"unbash","type":"module","author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"engines":{"node":">=14"},"exports":{".":{"types":"./dist/parser.d.ts","default":"./dist/parser.js"},"./printer":{"types":"./dist/printer.d.ts","default":"./dist/printer.js"}},"license":"ISC","scripts":{"lint":"oxlint","test":"node --test test/*.test.ts","bench":"node bench/all.ts","build":"tsc","format":"oxfmt","prepack":"tsc","release":"release-it","playground":"pnpx rolldown src/parser.ts -f esm -m -o playground/parser.js && pnpx rolldown src/printer.ts -f esm -m -o playground/printer.js && sed -i 's/id=\"version\">[^<]*/id=\"version\">'\"$(node -p \"require('.\\x2fpackage.json').version\")\"'/' playground/index.html"},"version":"4.0.11","_npmUser":{"name":"webpro","email":"lars@webpro.nl","approver":{"name":"webpro","email":"lars@webpro.nl"}},"homepage":"https://github.com/webpro-nl/unbash#readme","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"_npmVersion":"12.0.2","description":"Fast 0-deps bash parser written in TypeScript","directories":{},"maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"_nodeVersion":"24.19.0","remarkConfig":{"plugins":["preset-webpro"]},"packageManager":"pnpm@11.5.2","devDependencies":{"oxfmt":"^0.62.0","mitata":"^1.0.34","oxlint":"^1.77.0","remark":"^15.0.1","rolldown":"1.2.3","sh-syntax":"^0.6.0","release-it":"^21.0.1","typescript":"^7.0.2","@types/node":"^24.13.3","bash-parser":"^0.5.0","tree-sitter":"^0.25.1","web-tree-sitter":"^0.26.11","tree-sitter-bash":"^0.25.1","remark-preset-webpro":"^2.2.0","@ericcornelissen/bash-parser":"^0.5.3"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/unbash_4.0.11_1788290166092_0.3004667111706141"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-25T15:32:23.978Z","modified":"2026-09-01T19:16:06.508Z","0.0.0":"2026-02-25T15:32:24.120Z","1.0.0":"2026-02-28T16:30:50.445Z","1.0.1":"2026-02-28T21:17:53.164Z","2.0.0":"2026-03-01T11:19:53.623Z","2.1.0":"2026-03-01T14:18:30.098Z","2.2.0":"2026-03-01T19:33:45.481Z","3.0.0":"2026-04-21T10:36:31.421Z","4.0.0":"2026-06-09T10:51:01.360Z","4.0.1":"2026-06-09T11:18:10.223Z","4.0.2":"2026-06-28T08:57:15.104Z","4.0.3":"2026-07-14T17:08:05.504Z","4.0.4":"2026-07-27T09:31:31.255Z","4.0.5":"2026-08-03T07:49:44.791Z","4.0.6":"2026-08-04T05:24:02.522Z","4.0.7":"2026-08-07T09:50:51.890Z","4.0.8":"2026-08-08T08:22:35.741Z","4.0.9":"2026-08-08T16:27:34.813Z","4.0.10":"2026-08-09T07:31:38.312Z","4.0.11":"2026-09-01T19:16:06.393Z"},"bugs":{"url":"https://github.com/webpro-nl/unbash/issues"},"author":{"name":"Lars Kappert","email":"lars@webpro.nl"},"license":"ISC","homepage":"https://github.com/webpro-nl/unbash#readme","keywords":["ast","bash","bash-parser","lexer","parser","posix","scanner","shell","shell-parser","shell-script","shell-syntax","tokenizer","typescript"],"repository":{"url":"git+https://github.com/webpro-nl/unbash.git","type":"git"},"description":"Fast 0-deps bash parser written in TypeScript","maintainers":[{"name":"webpro","email":"lars@webpro.nl"}],"readme":"# unbash\n\nFast 0-deps bash parser written in TypeScript\n\n[![NPM Version][2]][1] [![NPM Downloads][3]][1]\n\n## Install\n\n```sh\nnpm install unbash\n```\n\n## When to use unbash?\n\nUse unbash when your input is Bash source: a pasted command, a complete script,\nor shell source embedded in another format, and you need to inspect its\nstructure without executing it. It returns a typed, source-positioned AST.\n\nExample use cases:\n\n- Classify commands, redirects, substitutions, and background execution for\n  permission prompts, allowlists, or audit findings\n- Statically inventory executables and literal file, configuration, and\n  dependency references in package scripts, CI steps, task-runner configs,\n  hooks, and source-code shell calls\n- Import or convert a supported command such as `curl` without folding\n  neighboring pipelines, logical chains, redirects, or comments into its\n  arguments\n- Attach diagnostics to generated or pasted Bash using source-positioned errors\n  and partial trees\n- Build explanations, visualizations, or structured previews of pipelines,\n  conditions, expansions, and nested commands\n- Find or migrate command invocations and flags with source-range edits that\n  leave surrounding formatting and comments untouched\n\nWhen Bash is embedded in JSON, YAML, or source code, use the host-language\nparser to extract the shell string first. unbash provides Bash structure and\nsource ranges within that string; the consumer owns command-specific argument\nsemantics and policy.\n\n## Supported syntax\n\nunbash supports commands, control flows, pipelines, redirects, assignments,\ncompound statements, parameter and word expansions, process and nested\nsubstitutions, coproc, heredocs, herestrings, nested and generated syntax, etc.\n\nNested commands remain structured inside parameter operands and array indexes,\narithmetic expressions, brace expansions, extglobs, redirect targets, and\nheredoc bodies. Nodes retain source positions and words retain both raw text and\ndequoted values.\n\nMalformed and incomplete input returns a best-effort partial AST with detected,\nsource-positioned errors. Recovery is bounded for deeply nested parameter and\narithmetic expansions, substitutions, subshells, braces, conditionals, loops,\n`select`, `case`, and `[[ ]]` groups.\n\nunbash does not execute code, perform shell expansion, provide a sandbox, or\ndecide whether a command is safe. Security-sensitive consumers must inspect word\nparts, nested scripts, and errors on each parsed script. unbash is a tolerant\nparser: for malformed or incomplete input, it recovers where possible and\nreturns a best-effort partial AST with source-positioned errors. It does not\ntarget PowerShell, `cmd.exe`, or other shell languages. Much POSIX `sh` syntax\nis also valid Bash.\n\nTo parse `process.argv` (`string[]`), use Node.js [`parseArgs`][4] or a CLI\nlibrary such as [yargs][5] or [citty][6].\n\n## Usage\n\n```ts\nimport { parse } from \"unbash\";\n\nconst ast = parse('if [ -f \"$1\" ]; then cat \"$1\"; fi');\n```\n\nResult:\n\n```js\n{\n  type: \"Script\",\n  commands: [{\n    type: \"Statement\",\n    command: {\n      type: \"If\",\n      clause: { type: \"CompoundList\", commands: [ /* [ -f \"$1\" ] */ ] },\n      then: { type: \"CompoundList\", commands: [ /* cat \"$1\" */ ] }\n    }\n  }]\n}\n```\n\nSee the full AST at [unbash.statichost.page#input=if \\[ -f...][7]\n\n### Word parts\n\nA `Word` holds its expansions in `parts`. This is a lazy getter, computed on\nfirst access (not an own enumerable property):\n\n```js\nconst word = parse(\"echo a$(id)b\").commands[0].command.suffix[0];\n\nword.parts; // [Literal, CommandExpansion, Literal]\n\nObject.keys(word); // [\"text\", \"pos\", \"end\"] — no `parts`\n({ ...word }); // same\nstructuredClone(word); // same\n```\n\nRead `parts` directly, or serialize with `JSON.stringify`, which includes it\nthrough `toJSON`. A generic walker driven by `Object.keys` finds no expansions\nat all, and reports no error while doing so:\n\n```js\nimport { parse } from \"unbash\";\n\nconst script = parse('echo \"$HOME\" $(mktemp)');\n\nfor (const statement of script.commands) {\n  const command = statement.command;\n  if (command.type !== \"Command\") continue;\n  for (const word of [command.name, ...command.suffix]) {\n    for (const part of word?.parts ?? []) {\n      if (part.type === \"CommandExpansion\") console.log(part.text);\n    }\n  }\n}\n// $(mktemp)\n```\n\nWord-like fields that can execute nested shell syntax expose the same structure.\n`BraceExpansion`, `ExtendedGlob`, and `ArithmeticWord` use `parts`; parameter\nand assignment array indexes use `indexParts`.\n\nPositions are zero-based UTF-16 code-unit offsets forming half-open `[pos, end)`\nranges in the source owned by the nearest `ParsedScript`. Root scripts and\nverbatim nested substitutions share the caller's source, so their ranges slice\nthat source directly:\n\n```js\nconst nested = word.parts.find((part) => part.type === \"CommandExpansion\").script;\nconst command = nested.commands[0].command;\n\nsource.slice(command.pos, command.end); // exact nested command source\n```\n\nA legacy backtick script whose body contains backslash escapes owns its decoded\nstring as a non-enumerable `source` property. Ordinary scripts nested inside it\nindex that decoded source. Object spread and `structuredClone` omit `source`\nbecause it is non-enumerable.\n\nParse errors inside a lazily parsed script surface on that script, not on the\nroot: check `errors` on every nested `script` while traversing. A consumer that\nonly reads the root `errors` array cannot tell that a substitution body failed\nto parse.\n\n### Print\n\nBasic opinionated printer, does not preserve whitespace or comments (except\nshebang):\n\n```ts\nimport { parse } from \"unbash\";\nimport { print } from \"unbash/printer\";\n\nconst ast = parse('if [ -f \"$1\" ]; then cat \"$1\"; fi');\nconst script = print(ast);\n```\n\nResult:\n\n```sh\nif [ -f \"$1\" ]; then\n  cat \"$1\"\nfi\n```\n\n## unbash vs tree-sitter-bash\n\n[tree-sitter-bash][8] is the right choice when you need:\n\n- Incremental parsing\n- CST output preserving all tokens and punctuation\n- Granular error recovery that wraps errors in `ERROR` nodes and continues\n  parsing\n\nunbash provides:\n\n- A typed, executable-syntax AST instead of a grammar CST\n- A synchronous, zero-dependency TypeScript package with no native addon, WASM\n  runtime, parser initialization, or query layer\n- Structured word parts, arithmetic and test-expression trees, recursively\n  parsed substitutions, and direct source positions\n- Best-effort error recovery that preserves a partial AST and collects errors\n- Also see [tree-sitter-bash gaps covered by unbash][9]\n\n## unbash vs sh-syntax\n\n[sh-syntax][10] is a WASM wrapper around the robust [mvdan/sh][11] Go parser. It\nis highly recommended if you need:\n\n- Support for multiple shell dialects (Bash, POSIX sh, mksh, Bats, and Zsh)\n- Mature, configurable formatting and pretty-printing\n\nunbash provides:\n\n- A zero-dependency, synchronous TypeScript API without WASM loading\n- A smaller, JSON-friendly Bash AST with lazy structured word parts, recursively\n  parsed substitutions, and direct source positions\n- Best-effort partial ASTs for malformed or incomplete editor and user input\n- Also see [sh-syntax gaps covered by unbash][12]\n\n## unbash vs bash-parser\n\n[bash-parser][13] (last publish: 2017) and its fork\n[@ericcornelissen/bash-parser][14] (community dependency maintenance fork ❤️ now\narchived) provide:\n\n- A POSIX-only mode that rejects bash-specific syntax\n\nunbash provides:\n\n- A zero-dependency architecture\n- A typed TypeScript API (ESM-only)\n- Best-effort error recovery that preserves a partial AST and collects errors\n- Structured AST nodes for parameter expansions, arithmetic expressions, and `[[\n]]` test expressions; `bash-parser` treats `[[ ]]` as ordinary commands and\n  `(( ))` as nested subshells\n- Herestrings, C-style `for`, `select`, process substitution, `coproc`, array\n  assignments, extglob, `;&`/`;;&` case fallthrough, Bash 5.3 command\n  substitutions, and `{variable}` file-descriptor redirects\n\n## Benchmarks\n\nParse throughput in MB/s, calculated from the median of 22 per-run p75 iteration times; higher is better. Parentheses show unbash's relative speed. Measured on Apple M1 Pro/32GB using Node.js 24.19.0.\n\n| Parser                       | short (1.1KiB) | advanced (0.9KiB) | medium (150KiB) | large (970KiB) |\n| ---------------------------- | -------------: | ----------------: | --------------: | -------------: |\n| **unbash**                   |       **76.5** |          **70.5** |        **95.3** |      **112.4** |\n| tree-sitter-bash (native)    |     4.60 (17x) |        6.55 (11x) |      15.07 (6x) |     11.92 (9x) |\n| tree-sitter-bash (WASM)      |     4.59 (17x) |        5.64 (12x) |      8.59 (11x) |     7.64 (15x) |\n| sh-syntax                    |   0.03 (2981x) |      0.03 (2015x) |      7.49 (13x) |     13.63 (8x) |\n| bash-parser                  |    0.27 (287x) |               n/a |             n/a |            n/a |\n| @ericcornelissen/bash-parser |    0.25 (301x) |               n/a |             n/a |            n/a |\n\nRun the benchmarks using Node.js v22+:\n\n```sh\npnpm install\nnode bench/all.ts\n```\n\n## Size\n\nThe parser bundle is 80KB minified and 19KB gzipped.\n\n## Playgrounds\n\n- [unbash.statichost.page][15]\n- [ast-explorer.dev][16]\n\n## License\n\nISC\n\n[1]: https://www.npmx.dev/package/unbash\n[2]: https://img.shields.io/npm/v/unbash?color=f56e0f\n[3]: https://img.shields.io/npm/dm/unbash?color=f56e0f\n[4]: https://nodejs.org/api/util.html#utilparseargsconfig\n[5]: https://yargs.js.org/\n[6]: https://www.npmjs.com/package/citty\n[7]: https://unbash.statichost.page/#input=if%20%5B%20-f%20%22%241%22%20%5D%3B%20then%20cat%20%22%241%22%3B%20fi\n[8]: https://github.com/tree-sitter/tree-sitter-bash\n[9]: https://github.com/webpro-nl/unbash/issues/6\n[10]: https://github.com/un-ts/sh-syntax\n[11]: https://github.com/mvdan/sh\n[12]: https://github.com/webpro-nl/unbash/issues/7\n[13]: https://github.com/vorpaljs/bash-parser\n[14]: https://github.com/ericcornelissen/bash-parser\n[15]: https://unbash.statichost.page\n[16]: https://ast-explorer.dev/#eNoVjDsKwzAQRK8yDK5CyAGS2nVAId02jixZAbFr/Kls393rbh7zeBsrn5xLqpV3jr5X/XVzcYgOKRaD8LoNzffTBqFotgkZf8XtUW14oTdRIHaLq00WYscwpRFtCO8g2psm75n3toPHCdz+Ivg=\n","readmeFilename":"README.md"}