@neoware_inc/neozipkit 0.5.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/README.md +134 -0
- package/dist/browser/ZipkitBrowser.d.ts +27 -0
- package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
- package/dist/browser/ZipkitBrowser.js +303 -0
- package/dist/browser/ZipkitBrowser.js.map +1 -0
- package/dist/browser/index.d.ts +9 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.esm.d.ts +12 -0
- package/dist/browser/index.esm.d.ts.map +1 -0
- package/dist/browser/index.esm.js +46 -0
- package/dist/browser/index.esm.js.map +1 -0
- package/dist/browser/index.js +38 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser-esm/index.d.ts +9 -0
- package/dist/browser-esm/index.js +50211 -0
- package/dist/browser-esm/index.js.map +7 -0
- package/dist/browser-umd/index.d.ts +9 -0
- package/dist/browser-umd/index.js +50221 -0
- package/dist/browser-umd/index.js.map +7 -0
- package/dist/browser-umd/index.min.js +39 -0
- package/dist/browser.d.ts +9 -0
- package/dist/browser.js +38 -0
- package/dist/core/ZipCompress.d.ts +99 -0
- package/dist/core/ZipCompress.d.ts.map +1 -0
- package/dist/core/ZipCompress.js +287 -0
- package/dist/core/ZipCompress.js.map +1 -0
- package/dist/core/ZipCopy.d.ts +175 -0
- package/dist/core/ZipCopy.d.ts.map +1 -0
- package/dist/core/ZipCopy.js +310 -0
- package/dist/core/ZipCopy.js.map +1 -0
- package/dist/core/ZipDecompress.d.ts +57 -0
- package/dist/core/ZipDecompress.d.ts.map +1 -0
- package/dist/core/ZipDecompress.js +155 -0
- package/dist/core/ZipDecompress.js.map +1 -0
- package/dist/core/ZipEntry.d.ts +138 -0
- package/dist/core/ZipEntry.d.ts.map +1 -0
- package/dist/core/ZipEntry.js +829 -0
- package/dist/core/ZipEntry.js.map +1 -0
- package/dist/core/Zipkit.d.ts +315 -0
- package/dist/core/Zipkit.d.ts.map +1 -0
- package/dist/core/Zipkit.js +647 -0
- package/dist/core/Zipkit.js.map +1 -0
- package/dist/core/ZstdManager.d.ts +56 -0
- package/dist/core/ZstdManager.d.ts.map +1 -0
- package/dist/core/ZstdManager.js +144 -0
- package/dist/core/ZstdManager.js.map +1 -0
- package/dist/core/components/HashCalculator.d.ts +138 -0
- package/dist/core/components/HashCalculator.d.ts.map +1 -0
- package/dist/core/components/HashCalculator.js +360 -0
- package/dist/core/components/HashCalculator.js.map +1 -0
- package/dist/core/components/Logger.d.ts +73 -0
- package/dist/core/components/Logger.d.ts.map +1 -0
- package/dist/core/components/Logger.js +156 -0
- package/dist/core/components/Logger.js.map +1 -0
- package/dist/core/components/ProgressTracker.d.ts +43 -0
- package/dist/core/components/ProgressTracker.d.ts.map +1 -0
- package/dist/core/components/ProgressTracker.js +112 -0
- package/dist/core/components/ProgressTracker.js.map +1 -0
- package/dist/core/components/Support.d.ts +64 -0
- package/dist/core/components/Support.d.ts.map +1 -0
- package/dist/core/components/Support.js +71 -0
- package/dist/core/components/Support.js.map +1 -0
- package/dist/core/components/Util.d.ts +26 -0
- package/dist/core/components/Util.d.ts.map +1 -0
- package/dist/core/components/Util.js +95 -0
- package/dist/core/components/Util.js.map +1 -0
- package/dist/core/constants/Errors.d.ts +52 -0
- package/dist/core/constants/Errors.d.ts.map +1 -0
- package/dist/core/constants/Errors.js +67 -0
- package/dist/core/constants/Errors.js.map +1 -0
- package/dist/core/constants/Headers.d.ts +170 -0
- package/dist/core/constants/Headers.d.ts.map +1 -0
- package/dist/core/constants/Headers.js +194 -0
- package/dist/core/constants/Headers.js.map +1 -0
- package/dist/core/encryption/Manager.d.ts +58 -0
- package/dist/core/encryption/Manager.d.ts.map +1 -0
- package/dist/core/encryption/Manager.js +121 -0
- package/dist/core/encryption/Manager.js.map +1 -0
- package/dist/core/encryption/ZipCrypto.d.ts +172 -0
- package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
- package/dist/core/encryption/ZipCrypto.js +554 -0
- package/dist/core/encryption/ZipCrypto.js.map +1 -0
- package/dist/core/encryption/index.d.ts +9 -0
- package/dist/core/encryption/index.d.ts.map +1 -0
- package/dist/core/encryption/index.js +17 -0
- package/dist/core/encryption/index.js.map +1 -0
- package/dist/core/encryption/types.d.ts +29 -0
- package/dist/core/encryption/types.d.ts.map +1 -0
- package/dist/core/encryption/types.js +12 -0
- package/dist/core/encryption/types.js.map +1 -0
- package/dist/core/index.d.ts +27 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +59 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/version.d.ts +5 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +31 -0
- package/dist/core/version.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/node/ZipCompressNode.d.ts +123 -0
- package/dist/node/ZipCompressNode.d.ts.map +1 -0
- package/dist/node/ZipCompressNode.js +565 -0
- package/dist/node/ZipCompressNode.js.map +1 -0
- package/dist/node/ZipCopyNode.d.ts +165 -0
- package/dist/node/ZipCopyNode.d.ts.map +1 -0
- package/dist/node/ZipCopyNode.js +347 -0
- package/dist/node/ZipCopyNode.js.map +1 -0
- package/dist/node/ZipDecompressNode.d.ts +197 -0
- package/dist/node/ZipDecompressNode.d.ts.map +1 -0
- package/dist/node/ZipDecompressNode.js +678 -0
- package/dist/node/ZipDecompressNode.js.map +1 -0
- package/dist/node/ZipkitNode.d.ts +466 -0
- package/dist/node/ZipkitNode.d.ts.map +1 -0
- package/dist/node/ZipkitNode.js +1426 -0
- package/dist/node/ZipkitNode.js.map +1 -0
- package/dist/node/index.d.ts +25 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +54 -0
- package/dist/node/index.js.map +1 -0
- package/dist/types/index.d.ts +45 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/examples/README.md +261 -0
- package/examples/append-data.json +44 -0
- package/examples/copy-zip-append.ts +139 -0
- package/examples/copy-zip.ts +152 -0
- package/examples/create-zip.ts +172 -0
- package/examples/extract-zip.ts +118 -0
- package/examples/list-zip.ts +161 -0
- package/examples/test-files/data.json +116 -0
- package/examples/test-files/document.md +80 -0
- package/examples/test-files/document.txt +6 -0
- package/examples/test-files/file1.txt +48 -0
- package/examples/test-files/file2.txt +80 -0
- package/examples/tsconfig.json +44 -0
- package/package.json +167 -0
- package/src/browser/ZipkitBrowser.ts +305 -0
- package/src/browser/index.esm.ts +32 -0
- package/src/browser/index.ts +19 -0
- package/src/core/ZipCompress.ts +370 -0
- package/src/core/ZipCopy.ts +434 -0
- package/src/core/ZipDecompress.ts +191 -0
- package/src/core/ZipEntry.ts +917 -0
- package/src/core/Zipkit.ts +794 -0
- package/src/core/ZstdManager.ts +165 -0
- package/src/core/components/HashCalculator.ts +384 -0
- package/src/core/components/Logger.ts +180 -0
- package/src/core/components/ProgressTracker.ts +134 -0
- package/src/core/components/Support.ts +77 -0
- package/src/core/components/Util.ts +91 -0
- package/src/core/constants/Errors.ts +78 -0
- package/src/core/constants/Headers.ts +205 -0
- package/src/core/encryption/Manager.ts +137 -0
- package/src/core/encryption/ZipCrypto.ts +650 -0
- package/src/core/encryption/index.ts +15 -0
- package/src/core/encryption/types.ts +33 -0
- package/src/core/index.ts +42 -0
- package/src/core/version.ts +33 -0
- package/src/index.ts +19 -0
- package/src/node/ZipCompressNode.ts +618 -0
- package/src/node/ZipCopyNode.ts +437 -0
- package/src/node/ZipDecompressNode.ts +793 -0
- package/src/node/ZipkitNode.ts +1706 -0
- package/src/node/index.ts +40 -0
- package/src/types/index.ts +68 -0
- package/src/types/modules.d.ts +22 -0
- package/src/types/opentimestamps.d.ts +1 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import ZipkitNode from './ZipkitNode';
|
|
2
|
+
import ZipEntry from '../core/ZipEntry';
|
|
3
|
+
/**
|
|
4
|
+
* ZipDecompressNode - Node.js file-based decompression operations
|
|
5
|
+
*
|
|
6
|
+
* Independent decompression implementation for Node.js environments.
|
|
7
|
+
* All decompression logic is implemented directly without delegating to ZipDecompress.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const zipkitNode = new ZipkitNode();
|
|
12
|
+
* const decompressNode = new ZipDecompressNode(zipkitNode);
|
|
13
|
+
* await decompressNode.extractToFile(entry, './output/file.txt');
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare class ZipDecompressNode {
|
|
17
|
+
private zipkitNode;
|
|
18
|
+
private static loggingEnabled;
|
|
19
|
+
/**
|
|
20
|
+
* Creates a new ZipDecompressNode instance
|
|
21
|
+
* @param zipkitNode - ZipkitNode instance to use for ZIP operations
|
|
22
|
+
*/
|
|
23
|
+
constructor(zipkitNode: ZipkitNode);
|
|
24
|
+
/**
|
|
25
|
+
* Internal logging method - only logs if class logging is enabled
|
|
26
|
+
*/
|
|
27
|
+
private log;
|
|
28
|
+
/**
|
|
29
|
+
* Extract file directly to disk with true streaming (no memory buffering)
|
|
30
|
+
* Public method that validates file mode and extracts entry to file
|
|
31
|
+
*
|
|
32
|
+
* This method processes chunks as they are decompressed and writes them
|
|
33
|
+
* directly to disk, maintaining minimal memory footprint regardless of file size.
|
|
34
|
+
* This is the recommended method for file extraction to avoid memory issues.
|
|
35
|
+
*
|
|
36
|
+
* @param entry ZIP entry to extract
|
|
37
|
+
* @param outputPath Path where the file should be written
|
|
38
|
+
* @param options Optional extraction options including progress callback
|
|
39
|
+
* @throws Error if not a File-based ZIP
|
|
40
|
+
*/
|
|
41
|
+
extractToFile(entry: ZipEntry, outputPath: string, options?: {
|
|
42
|
+
skipHashCheck?: boolean;
|
|
43
|
+
onProgress?: (bytes: number) => void;
|
|
44
|
+
}): Promise<void>;
|
|
45
|
+
/**
|
|
46
|
+
* Extract file to Buffer (in-memory) for file-based ZIP
|
|
47
|
+
*
|
|
48
|
+
* This method extracts a ZIP entry directly to a Buffer without writing to disk.
|
|
49
|
+
* This is ideal for reading metadata files (like NZIP.TOKEN) that don't need
|
|
50
|
+
* to be written to temporary files.
|
|
51
|
+
*
|
|
52
|
+
* @param entry ZIP entry to extract
|
|
53
|
+
* @param options Optional extraction options including progress callback
|
|
54
|
+
* @returns Promise that resolves to Buffer containing the extracted file data
|
|
55
|
+
* @throws Error if not a File-based ZIP or if extraction fails
|
|
56
|
+
*/
|
|
57
|
+
extractToBuffer(entry: ZipEntry, options?: {
|
|
58
|
+
skipHashCheck?: boolean;
|
|
59
|
+
onProgress?: (bytes: number) => void;
|
|
60
|
+
}): Promise<Buffer>;
|
|
61
|
+
/**
|
|
62
|
+
* Test entry integrity without extracting to disk
|
|
63
|
+
* Validates CRC-32 or SHA-256 hash without writing decompressed data
|
|
64
|
+
*
|
|
65
|
+
* This method processes chunks as they are decompressed and validates them,
|
|
66
|
+
* but discards the decompressed data instead of writing to disk. This is useful
|
|
67
|
+
* for verifying ZIP file integrity without extracting files.
|
|
68
|
+
*
|
|
69
|
+
* @param entry ZIP entry to test
|
|
70
|
+
* @param options Optional test options including progress callback
|
|
71
|
+
* @returns Promise that resolves to an object containing the verified hash (if SHA-256) or undefined
|
|
72
|
+
* @throws Error if validation fails (INVALID_CRC or INVALID_SHA256) or if not a File-based ZIP
|
|
73
|
+
*/
|
|
74
|
+
testEntry(entry: ZipEntry, options?: {
|
|
75
|
+
skipHashCheck?: boolean;
|
|
76
|
+
onProgress?: (bytes: number) => void;
|
|
77
|
+
}): Promise<{
|
|
78
|
+
verifiedHash?: string;
|
|
79
|
+
}>;
|
|
80
|
+
/**
|
|
81
|
+
* Read compressed data from file and yield one block at a time
|
|
82
|
+
*
|
|
83
|
+
* MEMORY EFFICIENCY: Yields compressed data chunks one at a time without accumulation.
|
|
84
|
+
* Each chunk is read from disk and yielded immediately, allowing downstream processing
|
|
85
|
+
* (decryption, decompression) to handle one block at a time.
|
|
86
|
+
*
|
|
87
|
+
* @param fileHandle - File handle to read from
|
|
88
|
+
* @param entry - ZIP entry to read compressed data for
|
|
89
|
+
* @param chunkSize - Optional chunk size override (defaults to ZipkitServer's bufferSize)
|
|
90
|
+
* @returns Async generator yielding compressed data chunks one at a time
|
|
91
|
+
*/
|
|
92
|
+
private readCompressedDataStream;
|
|
93
|
+
/**
|
|
94
|
+
* Handles: reading compressed data, optional decryption, decompression, hashing, and writing
|
|
95
|
+
* Internal method that takes fileHandle as parameter
|
|
96
|
+
*/
|
|
97
|
+
private extractToFileInternal;
|
|
98
|
+
/**
|
|
99
|
+
* Extract file to Buffer (in-memory) for file-based ZIP
|
|
100
|
+
* Internal method that takes fileHandle as parameter
|
|
101
|
+
*
|
|
102
|
+
* MEMORY EFFICIENCY: Accumulates decompressed chunks into a Buffer.
|
|
103
|
+
* For small files (like metadata), this is acceptable. For large files,
|
|
104
|
+
* consider using extractToFile() instead.
|
|
105
|
+
*/
|
|
106
|
+
private extractToBufferInternal;
|
|
107
|
+
/**
|
|
108
|
+
* Test entry integrity without writing to disk
|
|
109
|
+
* Internal method that takes fileHandle as parameter
|
|
110
|
+
*/
|
|
111
|
+
private testEntryInternal;
|
|
112
|
+
/**
|
|
113
|
+
* Decompress data stream and write to file
|
|
114
|
+
*
|
|
115
|
+
* MEMORY EFFICIENCY: Processes decompressed chunks one at a time.
|
|
116
|
+
* Pipeline: compressedStream → decompressStream() → hashCalc → writeStream
|
|
117
|
+
* - Each decompressed chunk is written immediately without accumulation
|
|
118
|
+
* - Hash calculation is incremental (HashCalculator)
|
|
119
|
+
* - Progress callbacks are invoked per chunk
|
|
120
|
+
*
|
|
121
|
+
* Handles decompression, hash calculation, file writing, and verification.
|
|
122
|
+
* Internal method only
|
|
123
|
+
*/
|
|
124
|
+
private unCompressToFile;
|
|
125
|
+
/**
|
|
126
|
+
* Decompress data stream and accumulate to Buffer
|
|
127
|
+
*
|
|
128
|
+
* MEMORY EFFICIENCY: Accumulates decompressed chunks into a Buffer.
|
|
129
|
+
* For small files (like metadata), this is acceptable. For large files,
|
|
130
|
+
* consider using unCompressToFile() instead.
|
|
131
|
+
*
|
|
132
|
+
* Pipeline: compressedStream → decompressStream() → hashCalc → Buffer accumulation
|
|
133
|
+
* - Each decompressed chunk is accumulated into a Buffer
|
|
134
|
+
* - Hash calculation is incremental (HashCalculator)
|
|
135
|
+
* - Progress callbacks are invoked per chunk
|
|
136
|
+
*
|
|
137
|
+
* Handles decompression, hash calculation, and Buffer accumulation.
|
|
138
|
+
* Internal method only
|
|
139
|
+
*/
|
|
140
|
+
private unCompressToBuffer;
|
|
141
|
+
/**
|
|
142
|
+
* Decompress data stream and validate hash without writing to disk
|
|
143
|
+
*
|
|
144
|
+
* MEMORY EFFICIENCY: Processes decompressed chunks one at a time.
|
|
145
|
+
* Pipeline: compressedStream → decompressStream() → hashCalc → validation
|
|
146
|
+
* - Each decompressed chunk is validated immediately without accumulation
|
|
147
|
+
* - Hash calculation is incremental (HashCalculator)
|
|
148
|
+
* - Progress callbacks are invoked per chunk
|
|
149
|
+
* - No file writing - data is discarded after validation
|
|
150
|
+
*
|
|
151
|
+
* Handles decompression, hash calculation, and verification.
|
|
152
|
+
* Internal method only
|
|
153
|
+
*/
|
|
154
|
+
private unCompressToTest;
|
|
155
|
+
/**
|
|
156
|
+
* Decompress data stream chunk by chunk
|
|
157
|
+
*
|
|
158
|
+
* MEMORY EFFICIENCY: Processes compressed data one block at a time.
|
|
159
|
+
* - For STORED: Passes through chunks unchanged (no accumulation)
|
|
160
|
+
* - For DEFLATED: Uses pako streaming inflate (maintains state across chunks)
|
|
161
|
+
* - For ZSTD: Collects all chunks (ZSTD limitation - requires full buffer)
|
|
162
|
+
*
|
|
163
|
+
* Pipeline: readCompressedDataStream() → DecryptionStream.decrypt() → decompressStream() → writeStream
|
|
164
|
+
*
|
|
165
|
+
* Internal method only
|
|
166
|
+
*/
|
|
167
|
+
private decompressStream;
|
|
168
|
+
/**
|
|
169
|
+
* Streaming deflate decompression using pako
|
|
170
|
+
*
|
|
171
|
+
* MEMORY EFFICIENCY: Processes compressed chunks one at a time.
|
|
172
|
+
* - Inflator maintains decompression state across chunks
|
|
173
|
+
* - Decompressed chunks are yielded immediately after processing each compressed chunk
|
|
174
|
+
* - No accumulation of compressed data (except in pako's internal buffers)
|
|
175
|
+
*/
|
|
176
|
+
private inflateStream;
|
|
177
|
+
/**
|
|
178
|
+
* Streaming ZSTD decompression
|
|
179
|
+
*/
|
|
180
|
+
private zstdDecompressStream;
|
|
181
|
+
/**
|
|
182
|
+
* Inflate data using pako (internal use only)
|
|
183
|
+
*/
|
|
184
|
+
private inflate;
|
|
185
|
+
/**
|
|
186
|
+
* Zstd decompress method (now async with ZstdManager)
|
|
187
|
+
* Internal method only
|
|
188
|
+
*/
|
|
189
|
+
private zstdDecompressSync;
|
|
190
|
+
/**
|
|
191
|
+
* Uncompress compressed data buffer (now async for Zstd)
|
|
192
|
+
* Handles decompression and hash verification
|
|
193
|
+
* Internal method only
|
|
194
|
+
*/
|
|
195
|
+
private unCompress;
|
|
196
|
+
}
|
|
197
|
+
//# sourceMappingURL=ZipDecompressNode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ZipDecompressNode.d.ts","sourceRoot":"","sources":["../../src/node/ZipDecompressNode.ts"],"names":[],"mappings":"AAiBA,OAAO,UAAU,MAAM,cAAc,CAAC;AAEtC,OAAO,QAAQ,MAAM,kBAAkB,CAAC;AASxC;;;;;;;;;;;;GAYG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,UAAU,CAAa;IAG/B,OAAO,CAAC,MAAM,CAAC,cAAc,CAAkB;IAE/C;;;OAGG;gBACS,UAAU,EAAE,UAAU;IAQlC;;OAEG;IACH,OAAO,CAAC,GAAG;IAUX;;;;;;;;;;;;OAYG;IACG,aAAa,CACjB,KAAK,EAAE,QAAQ,EACf,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACtC,GACA,OAAO,CAAC,IAAI,CAAC;IAQhB;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACtC,GACA,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;;;;;;;;;OAYG;IACG,SAAS,CACb,KAAK,EAAE,QAAQ,EACf,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;KACtC,GACA,OAAO,CAAC;QAAE,YAAY,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAYrC;;;;;;;;;;;OAWG;YACY,wBAAwB;IAqCvC;;;OAGG;YACW,qBAAqB;IAyDnC;;;;;;;OAOG;YACW,uBAAuB;IAiDrC;;;OAGG;YACW,iBAAiB;IAkD/B;;;;;;;;;;;OAWG;YACW,gBAAgB;IA8E9B;;;;;;;;;;;;;;OAcG;YACW,kBAAkB;IA0DhC;;;;;;;;;;;;OAYG;YACW,gBAAgB;IA2D9B;;;;;;;;;;;OAWG;YACY,gBAAgB;IAsB/B;;;;;;;OAOG;YACY,aAAa;IA6B5B;;OAEG;YACY,oBAAoB;IA+BnC;;OAEG;IACH,OAAO,CAAC,OAAO;IAMf;;;OAGG;YACW,kBAAkB;IAchC;;;;OAIG;YACW,UAAU;CAyCzB"}
|