{"_id":"@remix-run/tar-parser","_rev":"12-d3b81bf7eff768451f13666644742c49","name":"@remix-run/tar-parser","dist-tags":{"latest":"1.0.1"},"versions":{"0.4.0":{"name":"@remix-run/tar-parser","version":"0.4.0","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.4.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"chancestrickland","email":"hi@chance.dev"}],"homepage":"https://github.com/remix-run/remix/tree/v3/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"a06369fbe7f09f7d45648e0321ad009506df73c1","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.4.0.tgz","fileCount":19,"integrity":"sha512-aU8AKmxDKAKIZWil0XURxPLDIGpWfST3zSsUI5ohthqPiZ5KZwMuohadiMYNfyFpqgtVScO60J2R24dbdVdlkg==","signatures":[{"sig":"MEUCIFC6cG5wcdW4H9j7+MZu8eHBFT5Jjbjqaca3N5dR/N1SAiEA5BUKUgVG4XMhwT52ky6T0LjJl7RafAI8i+AvmAth4DY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":114977},"main":"./dist/tar-parser.cjs","type":"module","_from":"file:remix-run-tar-parser-0.4.0.tgz","types":"./dist/tar-parser.d.ts","module":"./dist/tar-parser.js","exports":{".":{"types":"./dist/tar-parser.d.ts","import":"./dist/tar-parser.js","default":"./dist/tar-parser.js","require":"./dist/tar-parser.cjs"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test ./src/**/*.test.ts","bench":"node --disable-warning=ExperimentalWarning ./bench/runner.ts","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm && pnpm run build:cjs","clean":"rm -rf dist","build:cjs":"esbuild src/tar-parser.ts --bundle --outfile=dist/tar-parser.cjs --format=cjs --platform=node --sourcemap","build:esm":"esbuild src/tar-parser.ts --bundle --outfile=dist/tar-parser.js --format=esm --platform=neutral --sourcemap","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/private/var/folders/n5/1lxhnzk56hg6b7vnl558364m0000gn/T/7b936a5a83eb343d4edcc0b9bbc26e89/remix-run-tar-parser-0.4.0.tgz","_integrity":"sha512-aU8AKmxDKAKIZWil0XURxPLDIGpWfST3zSsUI5ohthqPiZ5KZwMuohadiMYNfyFpqgtVScO60J2R24dbdVdlkg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.4.2","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"_nodeVersion":"24.2.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.5","@types/node":"^20.14.10","@remix-run/lazy-file":"^3.5.0"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.4.0_1753386536911_0.6261550095020469","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@remix-run/tar-parser","version":"0.5.0","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.5.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"6ef6f329c93daa86482b379bc7799948ee5eb28c","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.5.0.tgz","fileCount":17,"integrity":"sha512-J4p/1m0OZMDOfgVy5B9G86IZIhZSVtdcneqSfdGAxyKLRzf2Fp/JGdD6UCCKw/DHuEeq8r+VNx2ogojedcsQoA==","signatures":[{"sig":"MEUCIQDly/HRriqvMl4crbujlvGpsnX9VgeZMW/w79GV6em+NQIgNvJMCaEEMMFhTiBk+3SOx5CLgAzxd/31D/c23JExK0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":71778},"type":"module","_from":"file:remix-run-tar-parser-0.5.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node --disable-warning=ExperimentalWarning ./bench/runner.ts","build":"pnpm run clean && pnpm run build:types && pnpm run build:esm","clean":"rm -rf dist","build:esm":"esbuild src/index.ts --bundle --outfile=dist/index.js --format=esm --platform=neutral --sourcemap","typecheck":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json"},"_npmUser":{"name":"mjackson","email":"mjijackson+npm@gmail.com"},"_resolved":"/tmp/f5748d53bdfec74f97386bea4638d74f/remix-run-tar-parser-0.5.0.tgz","_integrity":"sha512-J4p/1m0OZMDOfgVy5B9G86IZIhZSVtdcneqSfdGAxyKLRzf2Fp/JGdD6UCCKw/DHuEeq8r+VNx2ogojedcsQoA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.6.1","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"_nodeVersion":"24.10.0","_hasShrinkwrap":false,"devDependencies":{"esbuild":"^0.25.10","@types/node":"^24.6.0","@remix-run/lazy-file":"^3.6.0"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.5.0_1761152661127_0.09312130156607945","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@remix-run/tar-parser","version":"0.6.0","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.6.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"8196c0effb9d0eb87fe68e6508bb7612c778238e","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.6.0.tgz","fileCount":19,"integrity":"sha512-TS2FgF2YvshMK6zx7lsg/vOCjfcUicHROPHxxrUcUxZnaWMEbj9kIS4bru796ODMRaJdzfLCjElEUCj0FHgeUg==","signatures":[{"sig":"MEUCIAjfZAKxhdWvU11ItlxdzFPWxWH1WbTAdhx84mnbAcukAiEA5KUX5j0WiEFgbBUxSfSFRKAzpKOfaopUWJWEeHisVXo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":47609},"type":"module","_from":"file:remix-run-tar-parser-0.6.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node --disable-warning=ExperimentalWarning ./bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eacbc2f-418b-46b4-a228-eb4834445301"}},"_resolved":"/tmp/e1157ff3e92a4d58266beaac1915e63e/remix-run-tar-parser-0.6.0.tgz","_integrity":"sha512-TS2FgF2YvshMK6zx7lsg/vOCjfcUicHROPHxxrUcUxZnaWMEbj9kIS4bru796ODMRaJdzfLCjElEUCj0FHgeUg==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.6.1","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"_nodeVersion":"24.11.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.6.0","@remix-run/lazy-file":"^3.7.0"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.6.0_1762301016975_0.7174150545595839","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@remix-run/tar-parser","version":"0.7.0","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.7.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"},{"name":"ryanflorence","email":"rpflorence@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"f5de38a2362ddd037c59db9ad8bacab7b053959f","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.7.0.tgz","fileCount":19,"integrity":"sha512-PW8JxEUzaGcnqxC5hBI8L9lK/Qz3oad6IGKZ+NExI3L7urVJUux+yCBrsme79DMBgS6hL+lgd/5LPFA5fSwF9A==","signatures":[{"sig":"MEYCIQCNqmU/uo8cdVcMoKg3JkCSGULaL/VSFkaOeMtScrCcWQIhAMU0kTRiYX/hNeSLWsZA1r6llnUoh2XImRgSbppIHZQg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":48342},"type":"module","_from":"file:remix-run-tar-parser-0.7.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"node --disable-warning=ExperimentalWarning --test './src/**/*.test.ts'","bench":"node --disable-warning=ExperimentalWarning ./bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eacbc2f-418b-46b4-a228-eb4834445301"}},"_resolved":"/tmp/61fb8832ebb1cedb487fdd2c883ab0ed/remix-run-tar-parser-0.7.0.tgz","_integrity":"sha512-PW8JxEUzaGcnqxC5hBI8L9lK/Qz3oad6IGKZ+NExI3L7urVJUux+yCBrsme79DMBgS6hL+lgd/5LPFA5fSwF9A==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.6.2","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"_nodeVersion":"24.11.1","_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.9.3","@types/node":"^24.6.0","@remix-run/fs":"^0.1.0"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.7.0_1763611921397_0.7475219607124177","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@remix-run/tar-parser","version":"0.7.1","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.7.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"56d273a6715939c96835240ca962c53e6cfe616c","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.7.1.tgz","fileCount":23,"integrity":"sha512-NZKTuA66rj0zqpljWAb6v147cNu5BtRCiv8FY5kn64ZPvLmoI62Ehm2hoUh0g0wJHeCNmgS5QZg1xhw6FX67SA==","signatures":[{"sig":"MEYCIQDqr0f+K4AvqnEnZ4g9UkHruYLwvlRy5OgjnmIHlpNSOAIhAKgKCKxz5nl4EF1abdoy+z5lQsR966NtG226+f4qbcTZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":52651},"type":"module","_from":"file:remix-run-tar-parser-0.7.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"remix-test","bench":"node ./bench/runner.ts","build":"tsgo -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix-test","typecheck":"tsgo --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eacbc2f-418b-46b4-a228-eb4834445301"}},"_resolved":"/tmp/931d1b0374e3dd938a979b18d7d69fb9/remix-run-tar-parser-0.7.1.tgz","_integrity":"sha512-NZKTuA66rj0zqpljWAb6v147cNu5BtRCiv8FY5kn64ZPvLmoI62Ehm2hoUh0g0wJHeCNmgS5QZg1xhw6FX67SA==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.11.0","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"_nodeVersion":"24.14.1","_hasShrinkwrap":false,"devDependencies":{"@types/node":"^24.6.0","@remix-run/fs":"0.4.3","@remix-run/test":"0.2.0","@remix-run/assert":"0.1.0","@typescript/native-preview":"7.0.0-dev.20251125.1"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.7.1_1777483826039_0.011282799527494669","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@remix-run/tar-parser","version":"0.8.0","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.8.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"4a73a6d7cd598db9fc8cbfe776b15ef5b7bd2d42","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.8.0.tgz","fileCount":23,"integrity":"sha512-q8x7KqkvNmkdg6EPaykDASSDf0WWGFI2Ik2YzgpRMDucV5I1XhBMyj8+nzFGbw8MCf9grX2CA17upu9b4vnL3A==","signatures":[{"sig":"MEUCIQDXPmazfnCWigLxE0uEQZ2+jf0L54hyANoE7EhrzmfKZgIgJinGVe0MxHM59mnUSN9bB2shJah7loZZu14bFGnhzqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCSmoJoLTa3FXxUEustBLCl3k2bZFsz0YIWvWkACvp8WQIhAKBXNDDFVWYMRtI7gYjPgySdmxJ1qJLAgdRlEna4jRBS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":78607},"type":"module","_from":"file:/tmp/remix-publish-tar-parser-r8QCQk/remix-run-tar-parser-0.8.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"remix test","bench":"node ./bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:8eacbc2f-418b-46b4-a228-eb4834445301"}},"_resolved":"/tmp/remix-publish-tar-parser-r8QCQk/remix-run-tar-parser-0.8.0.tgz","_integrity":"sha512-q8x7KqkvNmkdg6EPaykDASSDf0WWGFI2Ik2YzgpRMDucV5I1XhBMyj8+nzFGbw8MCf9grX2CA17upu9b4vnL3A==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.19.0","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"_nodeVersion":"24.20.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/fs":"0.4.6","@remix-run/test":"0.6.1","@remix-run/assert":"0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.8.0_1789770974588_0.20673013013229347","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"@remix-run/tar-parser","version":"0.8.1","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@0.8.1","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"b3ea8c5de10715e2d9d058e980b9351e82406778","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-0.8.1.tgz","fileCount":19,"integrity":"sha512-gA1dqrydc69wbHcUcky0ai6RDmVxLt/bm7uz69JyTEgLaVXNx/sV1t9zXtHpr8Qj6HxQmzJCYsyW4lqMArnoJw==","signatures":[{"sig":"MEUCIENIw5JexYfqACMy8Wgo8lvpp3eg3pZpjJNFGUfPOLtJAiEAoMf9f/Dk73Vzw1FoqjqyUwFheik1hr2oc5O6UaZjI2I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIA+j2edVxpC0M5llVp12WqYgtScO76R+0mnfU2eExsfPAiEAuSMhMeT/IyYGmqhzNLpPfBFfz8utc19nQOd4qxE/XVE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":77374},"type":"module","_from":"file:/tmp/remix-publish-tar-parser-cT0ju0/remix-run-tar-parser-0.8.1.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"remix test","bench":"node ./bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8eacbc2f-418b-46b4-a228-eb4834445301"}},"_resolved":"/tmp/remix-publish-tar-parser-cT0ju0/remix-run-tar-parser-0.8.1.tgz","_integrity":"sha512-gA1dqrydc69wbHcUcky0ai6RDmVxLt/bm7uz69JyTEgLaVXNx/sV1t9zXtHpr8Qj6HxQmzJCYsyW4lqMArnoJw==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.19.0","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/fs":"0.4.7","@remix-run/test":"0.6.2","@remix-run/assert":"0.3.1"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_0.8.1_1790631872539_0.3549718259268637","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@remix-run/tar-parser","version":"1.0.0","keywords":["tar","archive","parser","stream"],"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","_id":"@remix-run/tar-parser@1.0.0","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"5ae0b21c934f8c687b5bb3b6234ddf8904be7423","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-1.0.0.tgz","fileCount":19,"integrity":"sha512-rVLViqagV3naGGdpAm2wKWiE3s26xpX9KK9YqHqsmCyRQF1KSQvkR51WgzTD/iX7o49b3aLhySi9E7GAORUM6w==","signatures":[{"sig":"MEUCIA8XV6QEd2CQWLmT0vGHic7n6Y5MpBVpNJDpKOZZyLb9AiEAmdhen9eyqhdJ0aB0lmdkQovNcdYR14XKLh7HKXl/Oq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFeIZXt1bhqtWQEEcz34w4X6yIZ8vBCsF/LOkGADJrMqAiEA4C9HHb40qVvnXKBKYNLB9BHsfA3dn1da0Ul+fx10+6Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":77374},"type":"module","_from":"file:/tmp/remix-publish-tar-parser-N2d3GZ/remix-run-tar-parser-1.0.0.tgz","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"scripts":{"test":"remix test","bench":"node ./bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8eacbc2f-418b-46b4-a228-eb4834445301"}},"_resolved":"/tmp/remix-publish-tar-parser-N2d3GZ/remix-run-tar-parser-1.0.0.tgz","_integrity":"sha512-rVLViqagV3naGGdpAm2wKWiE3s26xpX9KK9YqHqsmCyRQF1KSQvkR51WgzTD/iX7o49b3aLhySi9E7GAORUM6w==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.19.0","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/fs":"1.0.0","@remix-run/test":"1.0.0","@remix-run/assert":"1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tar-parser_1.0.0_1790895460450_0.12458359606121294","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"_id":"@remix-run/tar-parser@1.0.1","bugs":{"url":"https://github.com/remix-run/remix/issues"},"dist":{"shasum":"59af847c2572e3269a9a19380126a0c4be9170df","tarball":"https://registry.npmjs.org/@remix-run/tar-parser/-/tar-parser-1.0.1.tgz","fileCount":19,"integrity":"sha512-NvdXpXMZg61vk3xtF+CSqiLKIh91c0R03/m6k2JQnEHN9YOCbYJRllpVh7GfR65RTudXrp5Ol9rmA0FFhLmM5w==","signatures":[{"sig":"MEQCIFeFncS9EXIqPzoOq3IUANGgXvQiE+kgOJ7YCPomUVsnAiAP04JgH6qLb788+jrBTKggt7JyS/6Wej7tNT8fQ1pgWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGMH3qbiw9IRvI5BB8ZGBsGvAm90SBlg9EZnIMo2/JegAiA5fLutvlZ7V72MTbM5plMzD4x/94LcbC0Ua8uB+TUI8A=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@remix-run%2ftar-parser@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":77856},"name":"@remix-run/tar-parser","type":"module","_from":"file:/tmp/remix-publish-tar-parser-cPkqgp/remix-run-tar-parser-1.0.1.tgz","author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./package.json":"./package.json"},"license":"MIT","scripts":{"test":"remix test","bench":"node ./bench/runner.ts","build":"tsc -p tsconfig.build.json","clean":"git clean -fdX","test:bun":"bun x --bun remix test","typecheck":"tsc --noEmit"},"version":"1.0.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"8eacbc2f-418b-46b4-a228-eb4834445301"}},"homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","keywords":["tar","archive","parser","stream"],"_resolved":"/tmp/remix-publish-tar-parser-cPkqgp/remix-run-tar-parser-1.0.1.tgz","_integrity":"sha512-NvdXpXMZg61vk3xtF+CSqiLKIh91c0R03/m6k2JQnEHN9YOCbYJRllpVh7GfR65RTudXrp5Ol9rmA0FFhLmM5w==","repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"_npmVersion":"11.19.0","description":"A fast, efficient parser for tar streams in any JavaScript environment","directories":{},"maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"sideEffects":false,"_nodeVersion":"24.21.0","_hasShrinkwrap":false,"devDependencies":{"typescript":"^7.0.2","@types/node":"^24.6.0","@remix-run/fs":"1.0.0","@remix-run/test":"1.0.0","@remix-run/assert":"1.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tar-parser_1.0.1_1792780794355_0.4140416189200289"}}},"time":{"created":"2025-07-24T19:48:56.837Z","modified":"2026-10-23T18:39:54.928Z","0.4.0":"2025-07-24T19:48:57.093Z","0.5.0":"2025-10-22T17:04:21.370Z","0.6.0":"2025-11-05T00:03:37.159Z","0.7.0":"2025-11-20T04:12:01.606Z","0.7.1":"2026-04-29T17:30:26.188Z","0.8.0":"2026-09-18T22:36:14.669Z","0.8.1":"2026-09-28T21:44:32.625Z","1.0.0":"2026-10-01T22:57:40.544Z","1.0.1":"2026-10-23T18:39:54.465Z"},"bugs":{"url":"https://github.com/remix-run/remix/issues"},"author":{"name":"Michael Jackson","email":"mjijackson@gmail.com"},"license":"MIT","homepage":"https://github.com/remix-run/remix/tree/main/packages/tar-parser#readme","keywords":["tar","archive","parser","stream"],"repository":{"url":"git+https://github.com/remix-run/remix.git","type":"git","directory":"packages/tar-parser"},"description":"A fast, efficient parser for tar streams in any JavaScript environment","maintainers":[{"name":"mjackson","email":"mjijackson+npm@gmail.com"}],"readme":"# tar-parser\n\nStreaming [tar archive](<https://en.wikipedia.org/wiki/Tar_(computing)>) parsing for JavaScript. `tar-parser` handles POSIX/GNU/PAX archives incrementally so large tar files can be processed without buffering the full payload.\n\n## Features\n\n- **Universal Runtime** - Runs anywhere JavaScript runs\n- **Web Streams** - Built on the standard [web Streams API](https://developer.mozilla.org/en-US/docs/Web/API/Streams_API), so it's composable with `fetch()` streams\n- **Format Support** - Supports POSIX, GNU, and PAX tar formats\n- **Memory Efficient** - Does not buffer anything in normal usage\n- **Zero Dependencies** - No external dependencies\n\n## Installation\n\n```sh\nnpm i remix\n```\n\n## Usage\n\nThe main parser interface is the `parseTar(archive, handler)` function:\n\n```ts\nimport { parseTar } from 'remix/tar-parser'\n\nlet response = await fetch('https://github.com/remix-run/remix/archive/refs/heads/main.tar.gz')\n\nawait parseTar(response.body.pipeThrough(new DecompressionStream('gzip')), (entry) => {\n  console.log(entry.name, entry.size)\n})\n```\n\nIf you're parsing an archive with filename encodings other than UTF-8, use the `filenameEncoding` option:\n\n```ts\nlet response = await fetch(/* ... */)\n\nawait parseTar(response.body, { filenameEncoding: 'latin1' }, (entry) => {\n  console.log(entry.name, entry.size)\n})\n```\n\nEntry sizes must be non-negative safe integers. Use `entry.body` to stream content, or `entry.bytes()`, `entry.arrayBuffer()`, or `entry.text()` to buffer it. The buffering methods allocate from the bytes received and consume the body once. If parsing fails before an entry's body is complete, reading that body rejects with the parsing error.\n\n```ts\nawait parseTar(archive, async (entry) => {\n  if (entry.header.type === 'file' && entry.name.endsWith('.txt')) {\n    console.log(entry.name, await entry.text())\n  }\n})\n```\n\n## Path Policy\n\nThe default `pathPolicy: 'relative'` requires nonempty relative entry names and link targets. `parseTarHeader()`, `parseTar()`, and `TarParser` throw `TarParseError` when paths start with `/` or a Windows drive prefix, or contain backslashes or embedded NULs. Validation applies to the final `entry.name` and, for symlinks and hard links, `entry.header.linkname` after ustar prefixes and GNU/PAX overrides, before invoking the entry handler.\n\nEntry names cannot contain `..` path components. Symlink targets are checked relative to the link's parent directory; hard-link targets are checked relative to the archive root. Link targets can contain `..` only when resolving each component stays within the archive:\n\n| Entry         | Type      | Target         | Result   |\n| ------------- | --------- | -------------- | -------- |\n| `lib/current` | Symlink   | `../shared/v2` | Allowed  |\n| `current`     | Symlink   | `../shared/v2` | Rejected |\n| `lib/current` | Hard link | `../shared/v2` | Rejected |\n| `lib/current` | Hard link | `shared/v2`    | Allowed  |\n\nValid paths retain their spelling, including `./` prefixes, trailing slashes, and allowed `..` components in link targets. GNU long names and link targets omit their terminating NUL under either policy.\n\nFor archive inspection, backups, or controlled extraction, set `pathPolicy: 'preserve'` to return decoded names and link targets without these restrictions. Archive limits and header structure validation still apply. The option works with all three parsing APIs:\n\n```ts\nawait parseTar(archive, { pathPolicy: 'preserve' }, (entry) => {\n  console.log(JSON.stringify({ name: entry.name, target: entry.header.linkname }))\n})\n```\n\nThese checks use archive paths without consulting the filesystem or following links. Consumers that extract files must still keep writes inside the extraction directory, including when existing or archived symlinks are present. Path validation does not guarantee filesystem containment. Paths can still contain newlines, so use context-appropriate escaping when displaying metadata or writing it to logs.\n\n## Limits\n\nBy default, `parseTar()` and `TarParser` limit each entry body to **2 MiB**, the total archive input to **20 MiB**, and the archive to **5,000 entries**. Override these limits with `maxEntrySize`, `maxTotalSize`, and `maxEntries`:\n\n```ts\nawait parseTar(\n  archive,\n  { maxEntrySize: 10 * 1024 * 1024, maxTotalSize: 100 * 1024 * 1024, maxEntries: 10_000 },\n  async (entry) => {\n    console.log(entry.name, (await entry.bytes()).byteLength)\n  },\n)\n```\n\n`maxEntrySize` and `maxEntries` also apply to PAX/GNU metadata entries. `maxEntries` excludes padding and end markers. `maxTotalSize` counts all input bytes, including headers and padding; when decompressing upstream, it counts decompressed bytes. Limits must be non-negative safe integers, or `Infinity` to disable an individual limit.\n\nExceeding a limit throws `MaxEntrySizeExceededError`, `MaxTotalSizeExceededError`, or `MaxEntriesExceededError`, all exported from `remix/tar-parser` and extending `TarParseError`.\n\n## Benchmark\n\n`tar-parser` performs on par with other popular tar parsing libraries on Node.js.\n\n```\n> @remix-run/tar-parser@0.0.0 bench /Users/michael/Projects/remix-the-web/packages/tar-parser\n> node ./bench/runner.ts\n\nPlatform: Darwin (24.0.0)\nCPU: Apple M1 Pro\nDate: 12/6/2024, 11:00:55 AM\nNode.js v22.8.0\n┌────────────┬────────────────────┐\n│ (index)    │ lodash npm package │\n├────────────┼────────────────────┤\n│ tar-parser │ '6.23 ms ± 0.58'   │\n│ tar-stream │ '6.72 ms ± 2.24'   │\n│ node-tar   │ '6.49 ms ± 0.44'   │\n└────────────┴────────────────────┘\n```\n\n## Related Packages\n\n- [`multipart-parser`](https://github.com/remix-run/remix/tree/main/packages/multipart-parser) - Fast, streaming multipart parser for JavaScript\n\n## Credits\n\n`tar-parser` is based on the excellent [tar-stream package](https://www.npmjs.com/package/tar-stream) (MIT license) and adopts the same core parsing algorithm, utility functions, and many test cases.\n\n## License\n\nSee [LICENSE](https://github.com/remix-run/remix/blob/main/LICENSE)\n","readmeFilename":"README.md"}