Releases: ayuhito/modern-tar
v0.7.5
v0.7.4
Overview
A few correctness fixes and security enhancements 🛡️
- Fix parsing of archives with type=link entries with size!=0 by @ayuhito in #116
- Fix parsing of archives with directories that have type=FILE name=.../ by @ayuhito in #115
- fix(tar): prevent prototype pollution in PAX headers by @ayuhito in #117
- fix(fs): strip sticky bits 857578e
Full Changelog: v0.7.3...v0.7.4
v0.7.3
Overview
Bug fixes and minor improvements in bundle size ✂️
- refactor(fs): remove duplicate discard state by @ayuhito in #109
- perf(tar): skip callback when discarding by @ayuhito in #110
- fix(web): discard stream instead of cancelling stream by @ayuhito in #111
- refactor(web): rely on unpacker state helper by @ayuhito in #112
Full Changelog: v0.7.2...v0.7.3
v0.7.2
Overview
Lots of minor performance improvements to reduce our memory overhead and small correctness bug fixes 🔨
- perf(pcache): return strings instead of objects by @ayuhito in #99
- perf(path): skip ascii normalization by @ayuhito in #100
- docs(bench): use mitata and add more workloads by @ayuhito in #101
- perf(normalize): skip cache if only ascii to save memory by @ayuhito in #102
- fix(unpack): root dir mkdir race condition by @ayuhito in #104
- fix(tar): read octal should handle sizes larger than int32 by @ayuhito in #105
- perf(chunk): reallocate with fresh array with empty queue by @ayuhito in #106
- fix(cache): add bounds to all caches by @ayuhito in #107
Full Changelog: v0.7.1...v0.7.2
v0.7.1
v0.7.0
Overview
⚡ This release makes modern-tar comparable or faster than other existing libraries in the ecosystem with a new architecture and various low-level optimizations!
Breaking ❗
- Removed
streamTimeoutoption fromUnpackOptions.
What's Changed
- perf: use pull architecture and leaner streams by @ayuhito in #95
- fix(web): decoder should not wait for last chunk by @ayuhito in #96
Full Changelog: v0.6.1...v0.7.0
v0.6.1
v0.6.0
Overview
This is a breaking change for the Web API packTar function where the returned data property can now either be undefined or a Uint8Array.
This is needed since we need to be able to differentiate bodyless entries like directory which have no data, or empty files which instead needs to be represented as Uint8Array(0) 🪴
/**
* Represents an extracted entry with fully buffered content.
*
* For bodyless entries (directories, symlinks, hardlinks), `data` will be `undefined`.
* For files (including empty files), `data` will be a `Uint8Array`.
*/
export interface ParsedTarEntryWithData {
header: TarHeader;
- data: Uint8Array;
+ data?: Uint8Array;
}Full Changelog: v0.5.5...v0.6.0
v0.5.5
v0.5.4
Overview
This adds support for older tsconfig.json setups that may support newer Node versions, but still are configured to use the old node10 package resolution mechanism.
Full Changelog: v0.5.3...v0.5.4