Skip to content

Releases: ayuhito/modern-tar

v0.7.5

22 Feb 08:54
79e4d4b

Choose a tag to compare

Overview

  • fix(options): strip relative hardlink linknames by @ayuhito in #118

Full Changelog: v0.7.4...v0.7.5

v0.7.4

18 Feb 04:25

Choose a tag to compare

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

16 Dec 11:30
f69f393

Choose a tag to compare

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

19 Nov 09:36
f5f376b

Choose a tag to compare

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

14 Nov 10:03
6af3441

Choose a tag to compare

Overview

Small bug fix related to cancelling streams in the web decoder and clarifying documentation related to draining streams 🏑

  • fix(web): centralize stream cancellation logic by @ayuhito in #98

Full Changelog: v0.7.0...v0.7.1

v0.7.0

13 Nov 06:14
877d26c

Choose a tag to compare

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 streamTimeout option from UnpackOptions.

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

24 Oct 03:13
a20fa3c

Choose a tag to compare

Overview

Resolves a bug when unpacking and repacking directories using the Web API helpers received mismatched headers 🐛

  • fix(pack): accept parsed tar entry with data by @ayuhito in #93

Full Changelog: v0.6.0...v0.6.1

v0.6.0

23 Oct 06:39
7dbb7e4

Choose a tag to compare

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;
}
  • fix(web): do not return data on bodyless entries for pack by @ayuhito in #92

Full Changelog: v0.5.5...v0.6.0

v0.5.5

22 Oct 06:21
a3468f7

Choose a tag to compare

Overview

Fixes an edge case related to the map helper interacting with empty paths when unpacking tar files 🐍

  • fix(options): handle invalid entries after map by @ayuhito in #90

Full Changelog: v0.5.4...v0.5.5

v0.5.4

16 Oct 01:58
9c4d224

Choose a tag to compare

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.

  • fix(exports): use types versions for old node bundlers by @ayuhito in #88

Full Changelog: v0.5.3...v0.5.4