@push.rocks/smartarchive 5.0.1 → 5.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist_ts/00_commitinfo_data.js +2 -2
- package/dist_ts/classes.archiveanalyzer.d.ts +1 -1
- package/dist_ts/classes.archiveanalyzer.js +34 -4
- package/dist_ts/classes.smartarchive.d.ts +4 -4
- package/dist_ts/classes.smartarchive.js +45 -26
- package/dist_ts/classes.tartools.d.ts +74 -23
- package/dist_ts/classes.tartools.js +190 -139
- package/dist_ts/index.d.ts +2 -6
- package/dist_ts/index.js +7 -11
- package/dist_ts/paths.js +1 -1
- package/dist_ts/plugins.d.ts +4 -9
- package/dist_ts/plugins.js +9 -13
- package/{dist_ts → dist_ts_shared}/bzip2/bititerator.d.ts +1 -1
- package/dist_ts_shared/bzip2/bititerator.js +50 -0
- package/{dist_ts → dist_ts_shared}/bzip2/bzip2.d.ts +2 -2
- package/{dist_ts → dist_ts_shared}/bzip2/bzip2.js +1 -1
- package/{dist_ts → dist_ts_shared}/bzip2/index.d.ts +1 -1
- package/dist_ts_shared/bzip2/index.js +92 -0
- package/dist_ts_shared/classes.bzip2tools.d.ts +10 -0
- package/dist_ts_shared/classes.bzip2tools.js +14 -0
- package/dist_ts_shared/classes.gziptools.d.ts +26 -0
- package/dist_ts_shared/classes.gziptools.js +38 -0
- package/dist_ts_shared/classes.tartools.d.ts +30 -0
- package/dist_ts_shared/classes.tartools.js +78 -0
- package/dist_ts_shared/classes.ziptools.d.ts +31 -0
- package/dist_ts_shared/classes.ziptools.js +103 -0
- package/{dist_ts → dist_ts_shared}/errors.js +1 -1
- package/dist_ts_shared/index.d.ts +8 -0
- package/dist_ts_shared/index.js +14 -0
- package/{dist_ts → dist_ts_shared}/interfaces.d.ts +17 -7
- package/{dist_ts → dist_ts_shared}/interfaces.js +1 -1
- package/dist_ts_shared/plugins.d.ts +9 -0
- package/dist_ts_shared/plugins.js +14 -0
- package/dist_ts_web/00_commitinfo_data.d.ts +8 -0
- package/dist_ts_web/00_commitinfo_data.js +9 -0
- package/dist_ts_web/index.d.ts +1 -0
- package/dist_ts_web/index.js +4 -0
- package/dist_ts_web/plugins.d.ts +1 -0
- package/dist_ts_web/plugins.js +4 -0
- package/npmextra.json +13 -7
- package/package.json +24 -13
- package/readme.md +154 -46
- package/ts/00_commitinfo_data.ts +1 -1
- package/ts/classes.archiveanalyzer.ts +33 -5
- package/ts/classes.smartarchive.ts +48 -27
- package/ts/classes.tartools.ts +217 -153
- package/ts/index.ts +7 -11
- package/ts/plugins.ts +8 -16
- package/{ts → ts_shared}/bzip2/bititerator.ts +1 -1
- package/{ts → ts_shared}/bzip2/bzip2.ts +2 -2
- package/{ts → ts_shared}/bzip2/index.ts +6 -6
- package/ts_shared/classes.bzip2tools.ts +14 -0
- package/ts_shared/classes.gziptools.ts +42 -0
- package/ts_shared/classes.tartools.ts +89 -0
- package/ts_shared/classes.ziptools.ts +107 -0
- package/ts_shared/index.ts +17 -0
- package/{ts → ts_shared}/interfaces.ts +18 -7
- package/ts_shared/plugins.ts +22 -0
- package/ts_web/00_commitinfo_data.ts +8 -0
- package/ts_web/index.ts +4 -0
- package/ts_web/plugins.ts +3 -0
- package/dist_ts/bzip2/bititerator.js +0 -50
- package/dist_ts/bzip2/index.js +0 -92
- package/dist_ts/classes.bzip2tools.d.ts +0 -7
- package/dist_ts/classes.bzip2tools.js +0 -11
- package/dist_ts/classes.gziptools.d.ts +0 -53
- package/dist_ts/classes.gziptools.js +0 -116
- package/dist_ts/classes.ziptools.d.ts +0 -56
- package/dist_ts/classes.ziptools.js +0 -171
- package/dist_ts/smartarchive.classes.smartarchive.d.ts +0 -34
- package/dist_ts/smartarchive.classes.smartarchive.js +0 -116
- package/dist_ts/smartarchive.paths.d.ts +0 -2
- package/dist_ts/smartarchive.paths.js +0 -4
- package/dist_ts/smartarchive.plugins.d.ts +0 -14
- package/dist_ts/smartarchive.plugins.js +0 -19
- package/ts/classes.bzip2tools.ts +0 -16
- package/ts/classes.gziptools.ts +0 -138
- package/ts/classes.ziptools.ts +0 -196
- /package/{dist_ts → dist_ts_shared}/errors.d.ts +0 -0
- /package/{ts → ts_shared}/errors.ts +0 -0
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
/**
|
|
3
|
-
* Transform stream for GZIP compression using fflate
|
|
4
|
-
*/
|
|
5
|
-
export class GzipCompressionTransform extends plugins.stream.Transform {
|
|
6
|
-
constructor(level = 6) {
|
|
7
|
-
super();
|
|
8
|
-
// Create a streaming Gzip compressor
|
|
9
|
-
this.gzip = new plugins.fflate.Gzip({ level }, (chunk, final) => {
|
|
10
|
-
this.push(Buffer.from(chunk));
|
|
11
|
-
if (final) {
|
|
12
|
-
this.push(null);
|
|
13
|
-
}
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
_transform(chunk, encoding, callback) {
|
|
17
|
-
try {
|
|
18
|
-
this.gzip.push(chunk, false);
|
|
19
|
-
callback();
|
|
20
|
-
}
|
|
21
|
-
catch (err) {
|
|
22
|
-
callback(err);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
_flush(callback) {
|
|
26
|
-
try {
|
|
27
|
-
this.gzip.push(new Uint8Array(0), true);
|
|
28
|
-
callback();
|
|
29
|
-
}
|
|
30
|
-
catch (err) {
|
|
31
|
-
callback(err);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Transform stream for GZIP decompression using fflate
|
|
37
|
-
*/
|
|
38
|
-
export class GzipDecompressionTransform extends plugins.stream.Transform {
|
|
39
|
-
constructor() {
|
|
40
|
-
super();
|
|
41
|
-
// Create a streaming Gunzip decompressor
|
|
42
|
-
this.gunzip = new plugins.fflate.Gunzip((chunk, final) => {
|
|
43
|
-
this.push(Buffer.from(chunk));
|
|
44
|
-
if (final) {
|
|
45
|
-
this.push(null);
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
_transform(chunk, encoding, callback) {
|
|
50
|
-
try {
|
|
51
|
-
this.gunzip.push(chunk, false);
|
|
52
|
-
callback();
|
|
53
|
-
}
|
|
54
|
-
catch (err) {
|
|
55
|
-
callback(err);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
_flush(callback) {
|
|
59
|
-
try {
|
|
60
|
-
this.gunzip.push(new Uint8Array(0), true);
|
|
61
|
-
callback();
|
|
62
|
-
}
|
|
63
|
-
catch (err) {
|
|
64
|
-
callback(err);
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* GZIP compression and decompression utilities
|
|
70
|
-
*/
|
|
71
|
-
export class GzipTools {
|
|
72
|
-
/**
|
|
73
|
-
* Get a streaming compression transform
|
|
74
|
-
*/
|
|
75
|
-
getCompressionStream(level) {
|
|
76
|
-
return new GzipCompressionTransform(level);
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* Get a streaming decompression transform
|
|
80
|
-
*/
|
|
81
|
-
getDecompressionStream() {
|
|
82
|
-
return new GzipDecompressionTransform();
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Compress data synchronously
|
|
86
|
-
*/
|
|
87
|
-
compressSync(data, level) {
|
|
88
|
-
const options = level !== undefined ? { level } : undefined;
|
|
89
|
-
return Buffer.from(plugins.fflate.gzipSync(data, options));
|
|
90
|
-
}
|
|
91
|
-
/**
|
|
92
|
-
* Decompress data synchronously
|
|
93
|
-
*/
|
|
94
|
-
decompressSync(data) {
|
|
95
|
-
return Buffer.from(plugins.fflate.gunzipSync(data));
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Compress data asynchronously
|
|
99
|
-
* Note: Uses sync version for Deno compatibility (fflate async uses Web Workers
|
|
100
|
-
* which have issues in Deno)
|
|
101
|
-
*/
|
|
102
|
-
async compress(data, level) {
|
|
103
|
-
// Use sync version wrapped in Promise for cross-runtime compatibility
|
|
104
|
-
return this.compressSync(data, level);
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Decompress data asynchronously
|
|
108
|
-
* Note: Uses sync version for Deno compatibility (fflate async uses Web Workers
|
|
109
|
-
* which have issues in Deno)
|
|
110
|
-
*/
|
|
111
|
-
async decompress(data) {
|
|
112
|
-
// Use sync version wrapped in Promise for cross-runtime compatibility
|
|
113
|
-
return this.decompressSync(data);
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5nemlwdG9vbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLmd6aXB0b29scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLGNBQWMsQ0FBQztBQUd4Qzs7R0FFRztBQUNILE1BQU0sT0FBTyx3QkFBeUIsU0FBUSxPQUFPLENBQUMsTUFBTSxDQUFDLFNBQVM7SUFHcEUsWUFBWSxRQUEyQixDQUFDO1FBQ3RDLEtBQUssRUFBRSxDQUFDO1FBRVIscUNBQXFDO1FBQ3JDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzlELElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzlCLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsVUFBVSxDQUNSLEtBQWEsRUFDYixRQUF3QixFQUN4QixRQUEwQztRQUUxQyxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0IsUUFBUSxFQUFFLENBQUM7UUFDYixDQUFDO1FBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztZQUNiLFFBQVEsQ0FBQyxHQUFZLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sQ0FBQyxRQUEwQztRQUMvQyxJQUFJLENBQUM7WUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMs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
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
import type { IArchiveEntry, TCompressionLevel } from './interfaces.js';
|
|
3
|
-
/**
|
|
4
|
-
* Transform stream for ZIP decompression using fflate
|
|
5
|
-
* Emits StreamFile objects for each file in the archive
|
|
6
|
-
*/
|
|
7
|
-
export declare class ZipDecompressionTransform extends plugins.smartstream.SmartDuplex<Buffer, plugins.smartfile.StreamFile> {
|
|
8
|
-
private streamtools;
|
|
9
|
-
private unzipper;
|
|
10
|
-
constructor();
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Streaming ZIP compression using fflate
|
|
14
|
-
* Allows adding multiple entries before finalizing
|
|
15
|
-
*/
|
|
16
|
-
export declare class ZipCompressionStream extends plugins.stream.Duplex {
|
|
17
|
-
private files;
|
|
18
|
-
private finalized;
|
|
19
|
-
constructor();
|
|
20
|
-
/**
|
|
21
|
-
* Add a file entry to the ZIP archive
|
|
22
|
-
*/
|
|
23
|
-
addEntry(fileName: string, content: Buffer | plugins.stream.Readable, options?: {
|
|
24
|
-
compressionLevel?: TCompressionLevel;
|
|
25
|
-
}): Promise<void>;
|
|
26
|
-
/**
|
|
27
|
-
* Finalize the ZIP archive and emit the compressed data
|
|
28
|
-
*/
|
|
29
|
-
finalize(): Promise<void>;
|
|
30
|
-
_read(): void;
|
|
31
|
-
_write(_chunk: Buffer, _encoding: BufferEncoding, callback: (error?: Error | null) => void): void;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* ZIP compression and decompression utilities
|
|
35
|
-
*/
|
|
36
|
-
export declare class ZipTools {
|
|
37
|
-
/**
|
|
38
|
-
* Get a streaming compression object for creating ZIP archives
|
|
39
|
-
*/
|
|
40
|
-
getCompressionStream(): ZipCompressionStream;
|
|
41
|
-
/**
|
|
42
|
-
* Get a streaming decompression transform for extracting ZIP archives
|
|
43
|
-
*/
|
|
44
|
-
getDecompressionStream(): ZipDecompressionTransform;
|
|
45
|
-
/**
|
|
46
|
-
* Create a ZIP archive from an array of entries
|
|
47
|
-
*/
|
|
48
|
-
createZip(entries: IArchiveEntry[], compressionLevel?: TCompressionLevel): Promise<Buffer>;
|
|
49
|
-
/**
|
|
50
|
-
* Extract a ZIP buffer to an array of entries
|
|
51
|
-
*/
|
|
52
|
-
extractZip(data: Buffer): Promise<Array<{
|
|
53
|
-
path: string;
|
|
54
|
-
content: Buffer;
|
|
55
|
-
}>>;
|
|
56
|
-
}
|
|
@@ -1,171 +0,0 @@
|
|
|
1
|
-
import * as plugins from './plugins.js';
|
|
2
|
-
/**
|
|
3
|
-
* Transform stream for ZIP decompression using fflate
|
|
4
|
-
* Emits StreamFile objects for each file in the archive
|
|
5
|
-
*/
|
|
6
|
-
export class ZipDecompressionTransform extends plugins.smartstream.SmartDuplex {
|
|
7
|
-
constructor() {
|
|
8
|
-
super({
|
|
9
|
-
objectMode: true,
|
|
10
|
-
writeFunction: async (chunkArg, streamtoolsArg) => {
|
|
11
|
-
this.streamtools ? null : (this.streamtools = streamtoolsArg);
|
|
12
|
-
this.unzipper.push(Buffer.isBuffer(chunkArg) ? chunkArg : Buffer.from(chunkArg), false);
|
|
13
|
-
return null;
|
|
14
|
-
},
|
|
15
|
-
finalFunction: async () => {
|
|
16
|
-
this.unzipper.push(Buffer.from(''), true);
|
|
17
|
-
await plugins.smartdelay.delayFor(0);
|
|
18
|
-
await this.streamtools.push(null);
|
|
19
|
-
return null;
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
this.unzipper = new plugins.fflate.Unzip(async (fileArg) => {
|
|
23
|
-
let resultBuffer;
|
|
24
|
-
fileArg.ondata = async (_flateError, dat, final) => {
|
|
25
|
-
resultBuffer
|
|
26
|
-
? (resultBuffer = Buffer.concat([resultBuffer, Buffer.from(dat)]))
|
|
27
|
-
: (resultBuffer = Buffer.from(dat));
|
|
28
|
-
if (final) {
|
|
29
|
-
const streamFile = plugins.smartfile.StreamFile.fromBuffer(resultBuffer);
|
|
30
|
-
streamFile.relativeFilePath = fileArg.name;
|
|
31
|
-
this.streamtools.push(streamFile);
|
|
32
|
-
}
|
|
33
|
-
};
|
|
34
|
-
fileArg.start();
|
|
35
|
-
});
|
|
36
|
-
this.unzipper.register(plugins.fflate.UnzipInflate);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Streaming ZIP compression using fflate
|
|
41
|
-
* Allows adding multiple entries before finalizing
|
|
42
|
-
*/
|
|
43
|
-
export class ZipCompressionStream extends plugins.stream.Duplex {
|
|
44
|
-
constructor() {
|
|
45
|
-
super();
|
|
46
|
-
this.files = new Map();
|
|
47
|
-
this.finalized = false;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Add a file entry to the ZIP archive
|
|
51
|
-
*/
|
|
52
|
-
async addEntry(fileName, content, options) {
|
|
53
|
-
if (this.finalized) {
|
|
54
|
-
throw new Error('Cannot add entries to a finalized ZIP archive');
|
|
55
|
-
}
|
|
56
|
-
let data;
|
|
57
|
-
if (Buffer.isBuffer(content)) {
|
|
58
|
-
data = content;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
// Collect stream to buffer
|
|
62
|
-
const chunks = [];
|
|
63
|
-
for await (const chunk of content) {
|
|
64
|
-
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
65
|
-
}
|
|
66
|
-
data = Buffer.concat(chunks);
|
|
67
|
-
}
|
|
68
|
-
this.files.set(fileName, {
|
|
69
|
-
data: new Uint8Array(data),
|
|
70
|
-
options: options?.compressionLevel !== undefined ? { level: options.compressionLevel } : undefined,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Finalize the ZIP archive and emit the compressed data
|
|
75
|
-
*/
|
|
76
|
-
async finalize() {
|
|
77
|
-
if (this.finalized) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
this.finalized = true;
|
|
81
|
-
const filesObj = {};
|
|
82
|
-
for (const [name, { data, options }] of this.files) {
|
|
83
|
-
filesObj[name] = options ? [data, options] : data;
|
|
84
|
-
}
|
|
85
|
-
// Use sync version for Deno compatibility (fflate async uses Web Workers)
|
|
86
|
-
try {
|
|
87
|
-
const result = plugins.fflate.zipSync(filesObj);
|
|
88
|
-
this.push(Buffer.from(result));
|
|
89
|
-
this.push(null);
|
|
90
|
-
}
|
|
91
|
-
catch (err) {
|
|
92
|
-
throw err;
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
_read() {
|
|
96
|
-
// No-op: data is pushed when finalize() is called
|
|
97
|
-
}
|
|
98
|
-
_write(_chunk, _encoding, callback) {
|
|
99
|
-
// Not used for ZIP creation - use addEntry() instead
|
|
100
|
-
callback(new Error('Use addEntry() to add files to the ZIP archive'));
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* ZIP compression and decompression utilities
|
|
105
|
-
*/
|
|
106
|
-
export class ZipTools {
|
|
107
|
-
/**
|
|
108
|
-
* Get a streaming compression object for creating ZIP archives
|
|
109
|
-
*/
|
|
110
|
-
getCompressionStream() {
|
|
111
|
-
return new ZipCompressionStream();
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* Get a streaming decompression transform for extracting ZIP archives
|
|
115
|
-
*/
|
|
116
|
-
getDecompressionStream() {
|
|
117
|
-
return new ZipDecompressionTransform();
|
|
118
|
-
}
|
|
119
|
-
/**
|
|
120
|
-
* Create a ZIP archive from an array of entries
|
|
121
|
-
*/
|
|
122
|
-
async createZip(entries, compressionLevel) {
|
|
123
|
-
const filesObj = {};
|
|
124
|
-
for (const entry of entries) {
|
|
125
|
-
let data;
|
|
126
|
-
if (typeof entry.content === 'string') {
|
|
127
|
-
data = new TextEncoder().encode(entry.content);
|
|
128
|
-
}
|
|
129
|
-
else if (Buffer.isBuffer(entry.content)) {
|
|
130
|
-
data = new Uint8Array(entry.content);
|
|
131
|
-
}
|
|
132
|
-
else if (entry.content instanceof plugins.smartfile.SmartFile) {
|
|
133
|
-
data = new Uint8Array(entry.content.contents);
|
|
134
|
-
}
|
|
135
|
-
else if (entry.content instanceof plugins.smartfile.StreamFile) {
|
|
136
|
-
const buffer = await entry.content.getContentAsBuffer();
|
|
137
|
-
data = new Uint8Array(buffer);
|
|
138
|
-
}
|
|
139
|
-
else {
|
|
140
|
-
// Readable stream
|
|
141
|
-
const chunks = [];
|
|
142
|
-
for await (const chunk of entry.content) {
|
|
143
|
-
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
|
|
144
|
-
}
|
|
145
|
-
data = new Uint8Array(Buffer.concat(chunks));
|
|
146
|
-
}
|
|
147
|
-
if (compressionLevel !== undefined) {
|
|
148
|
-
filesObj[entry.archivePath] = [data, { level: compressionLevel }];
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
filesObj[entry.archivePath] = data;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// Use sync version for Deno compatibility (fflate async uses Web Workers)
|
|
155
|
-
const result = plugins.fflate.zipSync(filesObj);
|
|
156
|
-
return Buffer.from(result);
|
|
157
|
-
}
|
|
158
|
-
/**
|
|
159
|
-
* Extract a ZIP buffer to an array of entries
|
|
160
|
-
*/
|
|
161
|
-
async extractZip(data) {
|
|
162
|
-
// Use sync version for Deno compatibility (fflate async uses Web Workers)
|
|
163
|
-
const result = plugins.fflate.unzipSync(data);
|
|
164
|
-
const entries = [];
|
|
165
|
-
for (const [path, content] of Object.entries(result)) {
|
|
166
|
-
entries.push({ path, content: Buffer.from(content) });
|
|
167
|
-
}
|
|
168
|
-
return entries;
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy56aXB0b29scy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NsYXNzZXMuemlwdG9vbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxjQUFjLENBQUM7QUFHeEM7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLHlCQUEwQixTQUFRLE9BQU8sQ0FBQyxXQUFXLENBQUMsV0FBaUQ7SUFpQmxIO1FBQ0UsS0FBSyxDQUFDO1lBQ0osVUFBVSxFQUFFLElBQUk7WUFDaEIsYUFBYSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsQ0FBQyxDQUFDO2dCQUM5RCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDaEIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQWtDLENBQUMsRUFDdEYsS0FBSyxDQUNOLENBQUM7Z0JBQ0YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsYUFBYSxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxQyxNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNyQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7U0FDRixDQUFDLENBQUM7UUFoQ0csYUFBUSxHQUFHLElBQUksT0FB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
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
-
import * as plugins from './smartarchive.plugins.js';
|
|
3
|
-
export declare class SmartArchive {
|
|
4
|
-
constructor();
|
|
5
|
-
/**
|
|
6
|
-
* extracts an archive from a given url
|
|
7
|
-
*/
|
|
8
|
-
extractArchiveFromUrlToFs(urlArg: string, targetDir: string): Promise<void>;
|
|
9
|
-
/**
|
|
10
|
-
* extracts an archive from a given filePath on disk
|
|
11
|
-
* @param filePathArg
|
|
12
|
-
* @param targetDirArg
|
|
13
|
-
*/
|
|
14
|
-
extractArchiveFromFilePathToFs(filePathArg: string, targetDirArg: string): Promise<void>;
|
|
15
|
-
/**
|
|
16
|
-
* extracts to Observable
|
|
17
|
-
* where the Observable is emitting smartfiles
|
|
18
|
-
*/
|
|
19
|
-
extractArchiveFromBufferToObservable(bufferArg: Buffer): Promise<plugins.smartrx.rxjs.ReplaySubject<plugins.smartfile.Smartfile>>;
|
|
20
|
-
extractArchiveWithIntakeAndReplaySubject(): {
|
|
21
|
-
intake: plugins.smartstream.StreamIntake<Buffer>;
|
|
22
|
-
replaySubject: plugins.smartrx.rxjs.ReplaySubject<plugins.smartfile.Smartfile>;
|
|
23
|
-
};
|
|
24
|
-
/**
|
|
25
|
-
* extracts to Observable
|
|
26
|
-
*/
|
|
27
|
-
extractArchiveFromUrlToObservable(urlArg: string): Promise<plugins.smartrx.rxjs.ReplaySubject<plugins.smartfile.Smartfile>>;
|
|
28
|
-
extractArchiveFromUrlToStream(): Promise<void>;
|
|
29
|
-
extractArchiveFromFilePathToStream(): Promise<void>;
|
|
30
|
-
extractArchiveFromStreamToStream(): Promise<void>;
|
|
31
|
-
packFromStreamToStream(): Promise<void>;
|
|
32
|
-
packFromDirPathToStream(): Promise<void>;
|
|
33
|
-
packFromDirPathToFs(): Promise<void>;
|
|
34
|
-
}
|
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
import * as plugins from './smartarchive.plugins.js';
|
|
2
|
-
import * as paths from './smartarchive.paths.js';
|
|
3
|
-
export class SmartArchive {
|
|
4
|
-
constructor() { }
|
|
5
|
-
/**
|
|
6
|
-
* extracts an archive from a given url
|
|
7
|
-
*/
|
|
8
|
-
async extractArchiveFromUrlToFs(urlArg, targetDir) {
|
|
9
|
-
const parsedPath = plugins.path.parse(urlArg);
|
|
10
|
-
const uniqueFileName = plugins.smartunique.uni() + parsedPath.ext;
|
|
11
|
-
plugins.smartfile.fs.ensureDir(paths.nogitDir); // TODO: totally remove caching needs
|
|
12
|
-
const downloadPath = plugins.path.join(paths.nogitDir, uniqueFileName);
|
|
13
|
-
const downloadedArchive = (await plugins.smartrequest.getBinary(urlArg)).body;
|
|
14
|
-
await plugins.smartfile.memory.toFs(downloadedArchive, downloadPath);
|
|
15
|
-
await this.extractArchiveFromFilePathToFs(downloadPath, targetDir);
|
|
16
|
-
await plugins.smartfile.fs.remove(downloadPath);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* extracts an archive from a given filePath on disk
|
|
20
|
-
* @param filePathArg
|
|
21
|
-
* @param targetDirArg
|
|
22
|
-
*/
|
|
23
|
-
async extractArchiveFromFilePathToFs(filePathArg, targetDirArg) {
|
|
24
|
-
console.log(`extracting ${filePathArg}`);
|
|
25
|
-
const done = plugins.smartpromise.defer();
|
|
26
|
-
filePathArg = plugins.smartpath.transform.makeAbsolute(filePathArg);
|
|
27
|
-
targetDirArg = plugins.smartpath.transform.makeAbsolute(targetDirArg);
|
|
28
|
-
const readableStream = plugins.smartfile.fsStream.createReadStream(filePathArg);
|
|
29
|
-
const extractPipeStop = plugins.tarStream.extract();
|
|
30
|
-
extractPipeStop.on('entry', async (header, stream, next) => {
|
|
31
|
-
const targetFilePath = plugins.path.join(targetDirArg, header.name);
|
|
32
|
-
const parsedPath = plugins.path.parse(targetFilePath);
|
|
33
|
-
await plugins.smartfile.fs.ensureDir(parsedPath.dir);
|
|
34
|
-
const writeStream = plugins.smartfile.fsStream.createWriteStream(targetFilePath);
|
|
35
|
-
stream.pipe(writeStream);
|
|
36
|
-
stream.on('end', () => {
|
|
37
|
-
console.log(`extracted ${header.name}`);
|
|
38
|
-
next();
|
|
39
|
-
});
|
|
40
|
-
stream.resume();
|
|
41
|
-
});
|
|
42
|
-
extractPipeStop.on('finish', () => {
|
|
43
|
-
console.log(`Sucessfully extracted ${filePathArg}!`);
|
|
44
|
-
done.resolve();
|
|
45
|
-
});
|
|
46
|
-
// lets run the stream
|
|
47
|
-
readableStream.pipe(plugins.gunzipMaybe()).pipe(extractPipeStop);
|
|
48
|
-
await done.promise;
|
|
49
|
-
}
|
|
50
|
-
/**
|
|
51
|
-
* extracts to Observable
|
|
52
|
-
* where the Observable is emitting smartfiles
|
|
53
|
-
*/
|
|
54
|
-
async extractArchiveFromBufferToObservable(bufferArg) {
|
|
55
|
-
const { intake, replaySubject } = this.extractArchiveWithIntakeAndReplaySubject();
|
|
56
|
-
intake.pushData(bufferArg);
|
|
57
|
-
intake.signalEnd();
|
|
58
|
-
return replaySubject;
|
|
59
|
-
}
|
|
60
|
-
extractArchiveWithIntakeAndReplaySubject() {
|
|
61
|
-
const intake = new plugins.smartstream.StreamIntake();
|
|
62
|
-
const replaySubject = new plugins.smartrx.rxjs.ReplaySubject();
|
|
63
|
-
const readableStream = intake.getReadableStream();
|
|
64
|
-
const extractPipeStop = plugins.tarStream.extract();
|
|
65
|
-
extractPipeStop.on('entry', (header, stream, next) => {
|
|
66
|
-
let fileBuffer;
|
|
67
|
-
stream.on('data', (chunkArg) => {
|
|
68
|
-
if (!fileBuffer) {
|
|
69
|
-
fileBuffer = chunkArg;
|
|
70
|
-
}
|
|
71
|
-
else {
|
|
72
|
-
fileBuffer = Buffer.concat([fileBuffer, chunkArg]);
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
stream.on('end', () => {
|
|
76
|
-
replaySubject.next(new plugins.smartfile.Smartfile({
|
|
77
|
-
base: null,
|
|
78
|
-
contentBuffer: fileBuffer,
|
|
79
|
-
path: `${header.name}`,
|
|
80
|
-
}));
|
|
81
|
-
next();
|
|
82
|
-
});
|
|
83
|
-
stream.resume();
|
|
84
|
-
});
|
|
85
|
-
extractPipeStop.on('finish', () => {
|
|
86
|
-
replaySubject.complete();
|
|
87
|
-
});
|
|
88
|
-
// lets run the stream
|
|
89
|
-
readableStream.pipe(plugins.gunzipMaybe()).pipe(extractPipeStop);
|
|
90
|
-
return {
|
|
91
|
-
intake,
|
|
92
|
-
replaySubject,
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* extracts to Observable
|
|
97
|
-
*/
|
|
98
|
-
async extractArchiveFromUrlToObservable(urlArg) {
|
|
99
|
-
const response = await plugins.smartrequest.getBinary(urlArg);
|
|
100
|
-
const replaySubject = this.extractArchiveFromBufferToObservable(response.body);
|
|
101
|
-
return replaySubject;
|
|
102
|
-
}
|
|
103
|
-
// TODO
|
|
104
|
-
async extractArchiveFromUrlToStream() { }
|
|
105
|
-
// TODO
|
|
106
|
-
async extractArchiveFromFilePathToStream() { }
|
|
107
|
-
// TODO
|
|
108
|
-
async extractArchiveFromStreamToStream() { }
|
|
109
|
-
// TODO
|
|
110
|
-
async packFromStreamToStream() { }
|
|
111
|
-
// TODO
|
|
112
|
-
async packFromDirPathToStream() { }
|
|
113
|
-
// TODO
|
|
114
|
-
async packFromDirPathToFs() { }
|
|
115
|
-
}
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLmNsYXNzZXMuc21hcnRhcmNoaXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhcmNoaXZlLmNsYXNzZXMuc21hcnRhcmNoaXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMkJBQTJCLENBQUM7QUFDckQsT0FBTyxLQUFLLEtBQUssTUFBTSx5QkFBeUIsQ0FBQztBQUVqRCxNQUFNLE9BQU8sWUFBWTtJQUN2QixnQkFBZSxDQUFDO0lBRWhCOztPQUVHO0lBQ0ksS0FBSyxDQUFDLHlCQUF5QixDQUFDLE1BQWMsRUFBRSxTQUFpQjtRQUN0RSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLGNBQWMsR0FBRyxPQUFPLENBQUMsV0FBVyxDQUFDLEdBQUcsRUFBRSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFDbEUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLHFDQUFxQztRQUNyRixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzlFLE1BQU0sT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sSUFBSSxDQUFDLDhCQUE4QixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNuRSxNQUFNLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxD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
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import * as plugins from './smartarchive.plugins.js';
|
|
2
|
-
export const packageDir = plugins.path.join(plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../');
|
|
3
|
-
export const nogitDir = plugins.path.join(packageDir, './.nogit');
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLnBhdGhzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvc21hcnRhcmNoaXZlLnBhdGhzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxPQUFPLE1BQU0sMkJBQTJCLENBQUM7QUFFckQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUN6QyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUMvRCxLQUFLLENBQ04sQ0FBQztBQUNGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUMifQ==
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as path from 'path';
|
|
2
|
-
export { path };
|
|
3
|
-
import * as smartfile from '@push.rocks/smartfile';
|
|
4
|
-
import * as smartpath from '@push.rocks/smartpath';
|
|
5
|
-
import * as smartpromise from '@push.rocks/smartpromise';
|
|
6
|
-
import * as smartrequest from '@push.rocks/smartrequest';
|
|
7
|
-
import * as smartunique from '@push.rocks/smartunique';
|
|
8
|
-
import * as smartstream from '@push.rocks/smartstream';
|
|
9
|
-
import * as smartrx from '@push.rocks/smartrx';
|
|
10
|
-
export { smartfile, smartpath, smartpromise, smartrequest, smartunique, smartstream, smartrx };
|
|
11
|
-
import gunzipMaybe from 'gunzip-maybe';
|
|
12
|
-
import tar from 'tar';
|
|
13
|
-
import tarStream from 'tar-stream';
|
|
14
|
-
export { gunzipMaybe, tar, tarStream };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
// node native scope
|
|
2
|
-
import * as path from 'path';
|
|
3
|
-
export { path };
|
|
4
|
-
// @pushrocks scope
|
|
5
|
-
import * as smartfile from '@push.rocks/smartfile';
|
|
6
|
-
import * as smartpath from '@push.rocks/smartpath';
|
|
7
|
-
import * as smartpromise from '@push.rocks/smartpromise';
|
|
8
|
-
import * as smartrequest from '@push.rocks/smartrequest';
|
|
9
|
-
import * as smartunique from '@push.rocks/smartunique';
|
|
10
|
-
import * as smartstream from '@push.rocks/smartstream';
|
|
11
|
-
import * as smartrx from '@push.rocks/smartrx';
|
|
12
|
-
export { smartfile, smartpath, smartpromise, smartrequest, smartunique, smartstream, smartrx };
|
|
13
|
-
// third party scope
|
|
14
|
-
import gunzipMaybe from 'gunzip-maybe';
|
|
15
|
-
// @ts-ignore
|
|
16
|
-
import tar from 'tar';
|
|
17
|
-
import tarStream from 'tar-stream';
|
|
18
|
-
export { gunzipMaybe, tar, tarStream };
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRhcmNoaXZlLnBsdWdpbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9zbWFydGFyY2hpdmUucGx1Z2lucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0I7QUFDcEIsT0FBTyxLQUFLLElBQUksTUFBTSxNQUFNLENBQUM7QUFFN0IsT0FBTyxFQUFFLElBQUksRUFBRSxDQUFDO0FBRWhCLG1CQUFtQjtBQUNuQixPQUFPLEtBQUssU0FBUyxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxTQUFTLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxLQUFLLFlBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUN6RCxPQUFPLEtBQUssWUFBWSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pELE9BQU8sS0FBSyxXQUFXLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxLQUFLLFdBQVcsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssT0FBTyxNQUFNLHFCQUFxQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUUvRixvQkFBb0I7QUFDcEIsT0FBTyxXQUFXLE1BQU0sY0FBYyxDQUFDO0FBRXZDLGFBQWE7QUFDYixPQUFPLEdBQUcsTUFBTSxLQUFLLENBQUM7QUFDdEIsT0FBTyxTQUFTLE1BQU0sWUFBWSxDQUFDO0FBRW5DLE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUFDIn0=
|
package/ts/classes.bzip2tools.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { SmartArchive } from './classes.smartarchive.js';
|
|
2
|
-
import * as plugins from './plugins.js';
|
|
3
|
-
|
|
4
|
-
import { unbzip2Stream } from './bzip2/index.js';
|
|
5
|
-
|
|
6
|
-
export class Bzip2Tools {
|
|
7
|
-
smartArchiveRef: SmartArchive;
|
|
8
|
-
|
|
9
|
-
constructor(smartArchiveRefArg: SmartArchive) {
|
|
10
|
-
this.smartArchiveRef = smartArchiveRefArg;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
getDecompressionStream() {
|
|
14
|
-
return unbzip2Stream();
|
|
15
|
-
}
|
|
16
|
-
}
|