feat(classes.smartarchive): Support URL streams, recursive archive unpacking and filesystem export; improve ZIP/GZIP/BZIP2 robustness; CI and package metadata updates

This commit is contained in:
2025-08-18 01:29:06 +00:00
parent ed5f590b5f
commit 780db4921e
23 changed files with 812 additions and 622 deletions

View File

@@ -1,5 +1,5 @@
import type { SmartArchive } from './classes.smartarchive.js';
import * as plugins from './plugins.js'
import * as plugins from './plugins.js';
// This class wraps fflate's gunzip in a Node.js Transform stream
export class CompressGunzipTransform extends plugins.stream.Transform {
@@ -7,7 +7,11 @@ export class CompressGunzipTransform extends plugins.stream.Transform {
super();
}
_transform(chunk: Buffer, encoding: BufferEncoding, callback: plugins.stream.TransformCallback) {
_transform(
chunk: Buffer,
encoding: BufferEncoding,
callback: plugins.stream.TransformCallback,
) {
plugins.fflate.gunzip(chunk, (err, decompressed) => {
if (err) {
callback(err);
@@ -26,7 +30,11 @@ export class DecompressGunzipTransform extends plugins.stream.Transform {
super();
}
_transform(chunk: Buffer, encoding: BufferEncoding, callback: plugins.stream.TransformCallback) {
_transform(
chunk: Buffer,
encoding: BufferEncoding,
callback: plugins.stream.TransformCallback,
) {
// Use fflate's gunzip function to decompress the chunk
plugins.fflate.gunzip(chunk, (err, decompressed) => {
if (err) {
@@ -41,10 +49,8 @@ export class DecompressGunzipTransform extends plugins.stream.Transform {
}
}
export class GzipTools {
constructor() {
}
constructor() {}
public getCompressionStream() {
return new CompressGunzipTransform();