Releases: ayuhito/modern-tar
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
v0.5.3
v0.5.2
Overview
Includes performance improvements for packing, bug fixes and hardens Windows environments for unpacking ☘️
- fix(pack): apply invalid directory mode on stream source by @ayuhito in #80
- perf(pack): use 512KB read buffer on large files by @ayuhito in #81
- fix(unpack): sanitize windows paths for traversal by @ayuhito in #82
- perf(path): simplify unicode cache by @ayuhito in #83
- fix(unpack): handle self referential hardlinks by @ayuhito in #84
- fix(unpack): strip trailing slashes by @ayuhito in #85
Full Changelog: v0.5.1...v0.5.2
v0.5.1
Overview
packTar now supports overriding any metadata when using sources 🧷
import { packTar } from 'modern-tar/fs';
const sources = [
{
type: "file",
source: "./package.json",
target: "project/package.json",
mtime: new Date("2024-01-01T00:00:00Z"),
uid: 1001,
gid: 1002,
uname: "builder",
gname: "ci",
mode: 0o644
}
];
const tarStream = packTar(sources);Full Changelog: v0.5.0...v0.5.1