6.2 KiB
Changelog
2025-08-18 - 4.2.2 - fix(smartarchive)
Improve tar entry streaming handling and add in-memory gzip/tgz tests
- Fix tar entry handling: properly consume directory entries (resume stream) and wait for entry end before continuing to next header
- Wrap tar file entries with a PassThrough so extracted StreamFile instances can be consumed while the tar extractor continues
- Handle nested archives correctly by piping resultStream -> decompressionStream -> analyzer -> unpacker, avoiding premature end signals
- Add and expand tests in test/test.gzip.ts: verify package.json and TS/license files after extraction, add in-memory gzip extraction test, and add real tgz-in-memory download+extraction test
- Minor logging improvements for tar extraction flow
2025-08-18 - 4.2.1 - fix(gzip)
Improve gzip streaming decompression, archive analysis and unpacking; add gzip tests
- Add a streaming DecompressGunzipTransform using fflate.Gunzip with proper _flush handling to support chunked gzip input and avoid buffering issues.
- Refactor ArchiveAnalyzer: introduce IAnalyzedResult, getAnalyzedStream(), and getDecompressionStream() to better detect mime types and wire appropriate decompression streams (gzip, zip, bzip2, tar).
- Use SmartRequest response streams converted via stream.Readable.fromWeb for URL sources in SmartArchive.getArchiveStream() to improve remote archive handling.
- Improve nested archive unpacking and SmartArchive export pipeline: more robust tar/zip handling, consistent SmartDuplex usage and backpressure handling.
- Enhance exportToFs: ensure directories, improved logging for relative paths, and safer write-stream wiring.
- Add comprehensive gzip-focused tests (test/test.gzip.ts) covering file extraction, stream extraction, header filename handling, large files, and a real-world tgz-from-URL extraction scenario.
2025-08-18 - 4.2.0 - feat(classes.smartarchive)
Support URL streams, recursive archive unpacking and filesystem export; improve ZIP/GZIP/BZIP2 robustness; CI and package metadata updates
- Add exportToFs(targetDir, fileName?) to write extracted StreamFile objects to the filesystem (ensures directories, logs relative paths, waits for write completion).
- Implement exportToStreamOfStreamFiles with recursive unpacking pipeline that handles application/x-tar (tar-stream Extract), application/zip (fflate Unzip), nested archives and StreamIntake for StreamFile results.
- Enhance getArchiveStream() to support URL/web streams (SmartRequest) and return Node Readable streams for remote archives.
- Make ZIP decompression more robust: accept ArrayBuffer-like chunks, coerce to Buffer before pushing to fflate.Unzip, and ensure SmartDuplex handling of results.
- Fixes and improvements to bzip2/gzip/tar tool implementations (various bug/formatting fixes, safer CRC and stream handling).
- Update CI workflows to use new registry image and adjust npmci install path; minor .gitignore additions.
- Package metadata tweaks: bugs URL and homepage updated, packageManager/pnpm fields adjusted.
- Documentation/readme expanded and polished with quick start, examples and API reference updates.
- Small test and plugin export cleanups (formatting and trailing commas removed/added).
- TypeScript/formatting fixes across many files (consistent casing, trailing commas, typings, tsconfig additions).
2025-08-18 - 4.1.0 - feat(classes.smartarchive)
Support URL web streams, add recursive archive unpacking and filesystem export, and improve ZIP decompression robustness
- ts/classes.smartarchive.ts: add exportToFs(targetDir, fileName?) to write extracted StreamFile objects to the filesystem (ensures directories, logs relative paths, waits for write completion).
- ts/classes.smartarchive.ts: implement exportToStreamOfStreamFiles with recursive unpacking pipeline that handles application/x-tar (tar-stream Extract), application/zip (fflate unzip), nested archives and StreamIntake for StreamFile results.
- ts/classes.smartarchive.ts: improve getArchiveStream() for URL sources by using SmartRequest.create().url(...).get() and converting the returned Web stream into a Node Readable stream.
- ts/classes.ziptools.ts: make ZIP decompression writeFunction more robust — accept non-Buffer chunks, coerce to Buffer before pushing to fflate.Unzip, and loosen the writeFunction typing to handle incoming ArrayBuffer-like data.
2024-10-13 - 4.0.39 - fix(core)
Fix dependencies and update documentation.
- Ensure package uses the latest dependencies
- Reviewed and grouped imports in TypeScript files
- Updated readme with advanced usage examples
2024-10-13 - 4.0.38 - fix(dependencies)
Update dependencies to latest versions
- Updated @push.rocks/smartfile to version 11.0.21
- Updated @push.rocks/smartpromise to version 4.0.4
- Updated @push.rocks/smartstream to version 3.0.46
- Updated @push.rocks/smarturl to version 3.1.0
- Updated file-type to version 19.5.0
- Updated @git.zone/tsbuild to version 2.1.84
- Updated @git.zone/tsrun to version 1.2.49
- Updated @push.rocks/tapbundle to version 5.3.0
2024-06-08 - 4.0.24 to 4.0.37 - Fixes and Updates
Core updates and bug fixes were implemented in versions 4.0.24 through 4.0.37.
- Repeated core updates and fixes applied consistently across multiple versions.
2024-06-06 - 4.0.22 to 4.0.23 - Descriptions and Fixes Updates
Efforts to update documentation and core features.
- "update description" in 4.0.22
- Updates to
tsconfig
andnpmextra.json
were performed. - Ongoing core fixes.
2023-11-06 - 4.0.0 - Major Update with Breaking Changes
Introduction of significant updates and breaking changes.
- Transition to new version 4.0.0 with core updates.
- Break in compatibility due to major structural changes with core functionalities.
2023-07-11 - 3.0.6 - Organizational Changes
Structural reorganization and updates to the organization schema.
- Switch to new organizational schema implemented.
2022-04-04 - 3.0.0 - Build Updates and Breaking Changes
Major build update introducing breaking changes.
- Introduction of ESM structure with breaking changes.
2016-01-18 - 0.0.0 to 1.0.0 - Initial Development and Launch
Initial software development and establishment of core features.
- Project set-up including Travis CI integration.
- Launch of the first full version with code restructuring.
- Added callback support.